SAP Idocs. Создание и настройка указателей изменений для Idoc с нуля

SAP Idocs. Создание и настройка указателей изменений для Idoc с нуля

Последовательно разложив составляющие процесса настройки/разработки пользовательского Idoc, было бы неплохо сделать тоже самое для процесса настройки/разработки указателей изменений в привязке к вновь настроенному Idoc. Именно эту цель я хочу преследовать, публикуя данную заметку, так как она видится мне логичным продолжением ранее опубликованного материала.

Предыстория

См. заметку SAP Idocs. Создание, настройка пользовательского Idoc с нуля

Задача

Активировать возможность создания указателя изменений для пользовательского типа сообщений. Указатель изменений должен формироваться при корректировке инфо-типа кадрового администрирования. На основании созданного указателя изменений сформировать Idoc для отправки в другую SAP систему.

Матчасть

См. Change Pointer (Master Data Distribution)

См. Distributing Master Data with the SMD Tool

Шаг 1. Активация создания указателей изменений (транзакция BD61)

Активируйте возможность создания указателей изменений в системе, посредством запуска транзакции BD61

Шаг 2. Реализация механизма формирования указателей изменений

Согласно поставленной мной задачи, указатель изменений должен формироваться в момент редактирования записи инфо-типа кадрового администрирования.

Работу по отслеживанию изменения инфо-типов на себя берет реализация BAdI HRPAD00INFTY (которая пока отсутствует). Работу же по созданию указателя изменений (aka change pointer) возьмет на себя вызов ФМ CHANGE_POINTERS_CREATE_DIRECT в новой реализации BAdI.

См. заметку Как определить дополнительную логику для PA инфо-типа?

Создать новое внедрение для BAdI можно посредством работы с транзакцией SE18

N.B. Отдельно хочу отметить, что весь ниже представленный в заметке ABAP код используется исключительно для демонстрации варианта решения задачи, описанной в ее начале, и нуждается в обязательной доработке, если его применение планируется в какой-либо проектной задаче.

Также хочу отметить, что по умолчанию система SAP не управляет индикаторами (Insert, Update, Delete) вновь создаваемых указателей изменений. В зависимости от бизнес-потребности, которая может появиться в проектной деятельности, логику их формирования и присвоения указателю изменений придется продумывать консультанту и разработчику.

Шаг 3. Проверка создания указателя изменений для типа сообщения

На следующем видеофрагменте представлена последовательность действий, в результате которой выполняется последовательное создание/редактирование/удаление записи кадрового инфо-типа с последующей проверкой появления записи указателя в таблице BDCP2.

Шаг 4. Настройка модели распределения

Используя транзакцию BD64, выполните присвоение типа сообщения системе-партнеру, куда должен быть отправлен сформированный на основании указателя изменения Idoc.

См. Model Distribution

Шаг 5. ФМ для создания Idoc из указателя изменений (транзакция SE37)

На основании указателя изменений, который сохранен в таблице BDCP2, необходимо сформировать Idoc с соответствующим содержимым. Сделать это без применения ABAP, к сожалению, не представляется возможным. Но данная задача перестает казаться непосильной, принимая во внимание тот факт, что исходный код для нового ФМ можно подсмотреть в уже созданных функциональных методах, находящихся по маске MASTERIDOC_CREATE_SMD_* в транзакции SE37. Для демонстрации далее, я попробую пошалить следующим образом.

Пожалуйста, обратите свое внимание на то, что после того, как указатель изменений был успешно обработан, в таблице BDCP2 необходимо установить об этом соответствующую отметку (BDCP2-ROCESS = X). В ABAP это можно сделать посредством вызова ФМ CHANGE_POINTERS_STATUS_WRITE.

Шаг 6. Присвоение ФМ по созданию Idoc типу сообщения (транзакция BD60)

Выполните присвоение вновь созданного ФМ соответствующему типу сообщений в транзакции BD60.

Шаг 7. Активация указателя изменений для типа сообщения (транзакция BD50)

Активируйте создание указателя изменений для соответствующего типа сообщения в транзакции BD50

Шаг 8. Тестирование процесса создания Idoc из указателя изменений

Как я уже описывал в одной из своих ранних заметок, посвященных созданию Idoc'ов из change pointer'ов, после того, как запись указателя попадает в таблицу BDCP2, программа RBDMIDOC должна завершить этот нетривиальный процесс, обработав нужные типы сообщений.

См. заметку SAP IDocs. Указатели изменений

На следующем видеофрагменте представлена последовательность действий, в результате которой выполняется последовательное создание указателей изменений с сопутствующим запуском программы RBDMIDOC, а также просмотром результата передачи сформированного Idoc в систему-приемник. Напомню, что в моем примере Idoc отправляется из клиента #800 в клиент #810 в пределах одной системы. В "соседнем" манданте системы, в результате отправки Idoc'a выполняется проверка его статуса, и внесенных изменений в основные мастер данные работника, для которого был создан Idoc.

Как оперативно отключить создание указателей изменений для определенного типа сообщений?

Деактивируйте затребованный тип сообщения в транзакции BD50. См. описание пункта # 7 -Активация указателя изменений для типа сообщения

На следующем видеофрагменте представлена последовательность действий в которой выполняется изменение основных данных работника при включенной опции формирования указателей изменений, а также аналогичные действия при отключенной опции формирования указателей.