Создание собственного 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.

См. Configuration of Back-End Services

SAP предоставляет несколько стандартных backend-сервисов для работы с процессами, при этом оставляет для консультанта возможность выбора, какие именно сервисы он будет использовать для работы своего процесса.

См. Settings for Back-End Service SAP_PA

См. Settings for Back-End Service SAP_PT

См. Settings for Back-End Service SAP_PD

См. Settings for Generic Services

Чтобы получить свой собственный 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.

См. Settings for Generic Services

Пример создания собственного backend-сервиса для процесса

1. Создание внедрения для BAdI HRASR00GEN_SERVICE_ADVANCED

Допустим, что для некоего процесса  "Z_REFERENCE_REQUEST" мне необходимо создать свой собственный back-end сервис

Раскройте дерево объектов для вашего процесса до уровня Back-End Services, используя транзакцию HRASR_DT

Рисунок 2.

Нажмите на кнопку 

Создайте новую запись в настроечной таблице, содержащую наименование нового backend-сервиса

Сохраните внесенные изменения.

Затем нажмите на кнопку  и нажмите на кнопку создания нового внедрения

Рисунок 5.

Введите наименование нового(ой) Enhancement Implementation (реализации расширения) по аналогии с тем, что указано на рисунке ниже

Рисунок 6.

Затем введите наименование нового внедрения

Рисунок 7.

Определите значение фильтра для созданного внедрения. Для этого раскройте узел Filter Val. и нажмите на кнопку 

Рисунок 8.

В качестве значения фильтра укажите наименование сервиса, созданного ранее

Рисунок 9.

Активируйте созданное внедрение.

2. Создание внедрения для BAdI HRASR00GEN_SERVICE_BASIC

Запустите транзакцию SE19, введите наименование Enhancement Implementation, которое было создано ранее,  и нажмите на кнопку Change

Рисунок 10.

На следующем экране нажмите на кнопку создания нового внедрения

Рисунок 11.

Выберите BAdI HRASR00GEN_SERVICE_BASIC, наименование создаваемого внедрения, в качестве реализующего класса выберите класс, созданный ранее

Рисунок 12.

N.B. Реализующий класс для обоих внедрений BAdI HRASR00GEN_SERVICE_ADVANCED и HRASR00GEN_SERVICE_BASIC должен быть общим. Иначе, могут возникнуть проблемы при обработке полей, используемых в вашем процессе.**

Нажмите Enter. Система сформирует сообщение об ошибке следующего вида

Рисунок 13.

Исправим ее, добавив требуемый интерфейс в созданный нами класс

Рисунок 14.

Не забудьте активировать класс, после выполенных изменений.

Определите значение фильтра для созданного внедрения

Рисунок 15.

Активируйте созданное внедрение.

3. Присвоение нового сервиса процессу

Добавьте новый backend-сервис для своего процесса, используя транзакцию HRASR_DT