Создание собственного backend-сервиса для процесса Processes and Forms
Создание собственного backend-сервиса для процесса Processes and Forms.
Работая с функциональностью SAP Processes and Forms (неважно, будь то FPM или PDF), вам придется столкнуться с таким определением, как backend-сервис, с помощью которого вы сможете определить необходимые для вашего процесса проверки, какую-то логику, по которой должны сохраняться данные в результате успешного (или не совсем) выполнения процесса.
Back-end services provide the business logic that can be used in the form scenarios. To have data transferred to the back-end services, you link the form fields to the back-end services.
You use this function to determine which back-end services are used in the form scenario and assign form fields to the back-end services.
SAP предоставляет несколько стандартных backend-сервисов для работы с процессами, при этом оставляет для консультанта возможность выбора, какие именно сервисы он будет использовать для работы своего процесса.
См. Settings for Back-End Service SAP_PA
См. Settings for Back-End Service SAP_PT
Чтобы получить свой собственный backend-сервис, необходимо создать внедрения для BAdI HRASR00GEN_SERVICE_BASIC и HRASR00GEN_SERVICE_ADVANCED. Более подробно про эти BAdI можно ознакомиться, прочитав справочную информацию вендора, находящуюся по следующему пути в SPRO:
IMG: Personnel Management -> HR Administrative Services -> Configuration of Forms -> Cross-Form Settings -> Define Generic Services -> BAdI: Implement Generic Services
IMG: Personnel Management -> HR Administrative Services -> Configuration of Forms -> Cross-Form Settings -> Define Generic Services -> BAdI: Implement Enhanced Generic Services
Settings for Generic Services
Use
You use this function to configure the generic services for your form scenario.If you use a generic service, you can link the form fields to the parameters or fields of the operations of this generic service. You can use an operation more than once in a form scenario. This enables you to link the form fields to field groups that link to operations, rather than linking them directly to operations. More than one field group can reference the same operation.
Пример создания собственного backend-сервиса для процесса
1. Создание внедрения для BAdI HRASR00GEN_SERVICE_ADVANCED
Допустим, что для некоего процесса "Z_REFERENCE_REQUEST" мне необходимо создать свой собственный back-end сервис
Раскройте дерево объектов для вашего процесса до уровня Back-End Services, используя транзакцию HRASR_DT
Нажмите на кнопку
Создайте новую запись в настроечной таблице, содержащую наименование нового backend-сервиса
Сохраните внесенные изменения.
Затем нажмите на кнопку и нажмите на кнопку создания нового внедрения
Введите наименование нового(ой) Enhancement Implementation (реализации расширения) по аналогии с тем, что указано на рисунке ниже
Затем введите наименование нового внедрения
Определите значение фильтра для созданного внедрения. Для этого раскройте узел Filter Val. и нажмите на кнопку
В качестве значения фильтра укажите наименование сервиса, созданного ранее
Активируйте созданное внедрение.
2. Создание внедрения для BAdI HRASR00GEN_SERVICE_BASIC
Запустите транзакцию SE19, введите наименование Enhancement Implementation, которое было создано ранее, и нажмите на кнопку Change
На следующем экране нажмите на кнопку создания нового внедрения
Выберите BAdI HRASR00GEN_SERVICE_BASIC, наименование создаваемого внедрения, в качестве реализующего класса выберите класс, созданный ранее
N.B. Реализующий класс для обоих внедрений BAdI HRASR00GEN_SERVICE_ADVANCED и HRASR00GEN_SERVICE_BASIC должен быть общим. Иначе, могут возникнуть проблемы при обработке полей, используемых в вашем процессе.**
Нажмите Enter. Система сформирует сообщение об ошибке следующего вида
Исправим ее, добавив требуемый интерфейс в созданный нами класс
Не забудьте активировать класс, после выполенных изменений.
Определите значение фильтра для созданного внедрения
Активируйте созданное внедрение.
3. Присвоение нового сервиса процессу
Добавьте новый backend-сервис для своего процесса, используя транзакцию HRASR_DT