Sapforum.Biz

Инструменты => ABAP - Инструментальные средства => Техники расширений системы SAP => Тема начата: Uukrul от Январь 28, 2016, 03:22:02 pm

Название: 1 - A3_Вступление
Отправлено: Uukrul от Январь 28, 2016, 03:22:02 pm
Общий обзор

Система SAP  развивается уже более 40 лет, за это время количество поддерживаемых бизнес процессов и вариантов их использования, наверное, исчисляется сотнями тысяч. Для конфигурирования поведения системы в рамках бизнес процесса, предоставляется специальное конфигурационное меню системы (Транзакция SPRO). Однако, на практике, возникают ситуации, когда конфигурирования становится не достаточным и требуется программное вмешательство в работу стандартных алгоритмов системы.

Разработчики системы SAP, «иногда» понимали, что они не смогут перекрыть все варианты построения бизнес-процесса клиента. Например, какие-то специфические проверки при формировании значений в полях ввода. Конечно, с одной стороны очень просто активировать маску ввода для любого поля экрана которое не привязано к проверочной таблице. Однако, если в внутри маски, например символы с 5 по 8 должны содержать код балансовой единицы, которую надо проверить на существование, то или требуется реализовать на уровне системы какой-то сложный анализатор масок ввода, с привязкой к проверочным таблицам или использовать другие механизмы проверки значений. Самым простым способом является предоставление возможности включения программного кода проверки – клиенту, внедряющему у себя систему SAP. Однако, методика включения такого кода может быть очень различной. Самый простой способ, это разрешение модификации стандартного кода, в конечном итоге получаем систему класса 1С, без вообще какой либо возможность обновления версий или применения стандартных патчей, исправляющих проблемы как безопасности, так и бизнес-логики  в работе приложений. Второй вариант, это разработка механизмов включения пользовательского кода в стандартную бизнес-логику работы программы.

Компания SAP изначально пошла по второму пути, т.е. реализация механизмов позволяющих пользователю включать собственный код без нарушения стандартного кода системы. При этом компания гарантирует без проблемное обновление такой системы, т.е. если вы правильно написали код в точке расширения. Конечно, для пользователей оставили так же возможность использования и первого варианта, т.е. модификацию стандартного кода, но для этого требуется получить код на модификацию объекта системы. Варианты изменения стандартного кода путем получения ключа на модифицируемый объект не рассматриваем, такая модификация, по моему мнению и, кажется мнению компании SAP, является нарушением стандарта, что может привести в дальнейшем к проблемам как в поддержке системы, в случае каких-либо ошибок в работе модифицируемого вами кода. Поэтому, будем рассматривать второй вариант, т.е. использование стандартных механизмов расширения системы.

В общем случае, точки, в которых можно расширить пользовательскую логику работы системы, называются точками пользовательского расширения системы (User Exits). Однако, в связи с тем, что система развивается и существует уже более 20 лет (имеется в виду версия SAP R/3), вместе с системой менялись взгляды и подходы к реализации точек пользовательских расширений. Поэтому к настоящему моменту система имеет множество различных вариантов использования программных расширений. При этом техника их использования и имеющиеся возможность в каждом из вариантов, иногда кардинально отличаются друг от друга.

Исторически возможные реализации и техники пользовательских замещений перерождались и развивались. В общем виде можно представить следующую модель используемых техник, рисунок 1: Эволюция техник расширения системы

В настоящий момент в системе  используются и доступны для разработчиков следующие техники расширений: