Поговорим сегодня об указателях изменений. Указатели изменений это такая штука, которая регистрирует изменения объектов, которые вам нужно передать по ALE в другую систему. Например, поменяли инфотип в HR, система создает указатель изменения на этот табельный номер и инфотип, а затем отправляет только измененные данные. Это позволяет увеличить производительность систем и сократить объемы передаваемой информации между системами. Иначе говоря, пропадает необходимость отправлять каждый раз все данные по всем табельным номерам.
Настраиваются указатели изменений очень просто.
1. Транзакция BD61 — активировать указатели изменений по всей системе
2. Транзакция BD50 — Активировать указатели изменений для конкретного вида сообщений (объекта). Например, данные по HR относятся к HRMD_A.
3. Программа RBDMIDOC — Запланируйте программу RBDMIDOC для периодической отправки объектов (IDOC) по ALE. Программа считывает таблицы указателей, создает IDOC и помещает в ALE слой для отправки в другие системы.
Периодически таблицу с указателями изменений желательно чистить. Это можно делать вручную (транзакция BD22) или с помощью запланированной в фоне программы RBDCPCLR.
Если вам нужно определить на уровне полей, какое изменение должно вызывать создание документа изменения, то в транзакции SE11 выбираем элемент данных, переходим на закладку «Прочие характеристики» (Further characteristics) и ставим галочку «Документ изменений» ( Change document). Теперь изменение поля с таким элементом данных во всех инфотипах будет вызывать создание документа изменения, и его отправку по ALE.
7 комментариев
metha
Дополнение. Чтобы это уж наверняка работало надо обязательно настроить модели распределения (bd54) так как из чендж поинтера (ЧП ) айдок создаётся только на основе модели. Если погрузится ещё глубже то увидим массу бадишек и юзерэкзитов как в исходящих айдоках так и во входящих.
Что касается элементов данных и доменов не уверен насчёт ЧП имхо они создаются на основе настроек t777d, а не на основе доменов/элементов, настойки доменов элементов влияют на журналирование инфотипов.
VirVit
Похоже ты прав. В тр BD52 можно указать сообщение, бизнес объект и таблицу/поля, при которых будет формироваться указатель.
metha
Дополнение №2. Если Вы передаете помимом стандартного сообщения HRMD_A еще и расширение к нему ZZZZ (разработка расширений через WE30,WE31), то в исходящей системе надо: 1) настроить через WE20 распределение с учетом расширения айдока WE30, 2) !обязательно!) зерелизить следующий USER-EXIT ZXHALU08, в котором должны быть следюущие строчки F_IDOC_CONTROL-CIMTYP = ‘ZZZ’. ZZZ это имя расширения айдока из WE30.
Надо это делать для того чтобы исходящие айдоки не сваливались в синтаксическую ошибку структуры айдока.
yegorm
Мне кажется, надо еще уточнить, что определение на уровне полей в SE11 (последний абзац) — это не универсальная вещь. Это работает, если указатели пишутся через документы изменений, а это не всегда так. Например, в HR ALE, мне кажется, это не так.
metha
В то и дело, что документы изменений это не change pointers 😉 Вит, это признаёт…
metha
п.с. документы изменений и ЧПшки пишутся последовательно в базу, сначала одни потом другие и то если каждый отдельно активирован через спро.
Alex
metha, спасибо за дополнение номер 2, оказалось очень ценным.
Его вообще можно в саму статью добавить как Update