SAP IDocs. Указатели изменений
SAP IDocs. Указатели изменений.
Пояснение к вопросу
Любое изменение в HR мастер-данных может послужить триггером для создания указателя изменений, который затем трансформируется в IDoc. Данный механизм может быть использован для случаев, когда, необходимо непрерывно (не единовременно) передавать изменения по персоналу в какие-нибудь внешние системы (как HR, так и не HR подобные). Предлагаю рассмотреть простенький пример генерации документа изменений после внесения корректировок в PA инфо-тип.
Решение вопроса
Для начала откройте соответствующий раздел IMG, выполнив транзакцию SALE
IDoc Interface / Application Link Enabling (ALE) -> Modelling and Implementing Business Processes -> Master Data Distribution

1. Activate Change Pointers - Generally
Выполнив настройку «Activate Change Pointers - Generally» вы, фактически, включаете механизм создания документов изменений в SAP системе

После активации данной настройки документы изменений будут складываться в таблицу BDCP2.
2. Activate Change Pointers for Message Types
Выполнив настройку «Activate Change Pointers for Message Types», вы конкретизируете для каких типов сообщений необходимо формировать документы изменений

Типы сообщений можно создать/просматривать в транзакции WE81
3. Reduce Change Pointers for Message Type
Для каждого типа сообщений можно определить дополнительную обработку формирования его документа изменений, создав внедрение для BAdI BDCP_BEFORE_WRITE.
Например, на время работы какой-то пользовательской программы, вносящей изменения в кадровые инфо-типы, вы хотите отключить создание документов изменений. Метод FILTER_BDCPV_BEFORE_WRITE к вашим услугам!
Для создаваемого внедрения не забудьте выбрать соответствующий тип сообщения

4. Create IDocs from Change Pointers
После того, как документ изменений будет сформирован, необходимо сгенерировать IDoc. За вас это сделает программа RBDMIDOC. От вас потребуется разве что настроить вариант, и запланировать программу для работы в фоновом режиме. Сделать это можно, выполнив настройку «Create IDocs from Change Pointers -> Define Variants»

5. Тестирование. Формирование документа изменений
На следующем видеофрагменте отражена последовательность действий при которой происходит вызов внедрения BAdI BDCP_BEFORE_WRITE и последующее формирование документа изменений. По сформированному ключу затем можно выполнить поиск соответствующей записи в таблице BDCP2
6. Тестирование. Формирование IDoc
Выполните программу RBDMIDOC для соответствующего типа сообщений
IDoc успешно сформирован. Посмотреть его содержимое возможно через транзакцию WE02

Обратите внимание, что после того, как программа RBDMIDOC отработала и IDoc успешно сформирован, в таблице BDCP2 для соответствующего ключа записи будет установлена метка обработки (BDCP2-PROCESS = X)

P.S. Никогда не используйте ABAP конструкции, представленные в качестве примера в этой заметке (break username). Использование таких конструкций негативно влияет на карму. Причем не только вашу. Жму руку