Change Pointers (Указатели изменений)

Привет.

Поговорим сегодня об указателях изменений. Это такая штука, которая регистрирует у себя изменения объектов, которые вам нужно передать по ALE в другую систему. Например, поменяли инфотип в HR, система создает указатель изменения на этот табельный номер и инфотип, а затем отправляет только измененные данные. Это позволяет увеличить производительность систем и сократить объемы передаваемой информации между системами. Иначе говоря, пропадает необходимость оправлять каждый раз все данные по всем табельным номерам.

Настраиваются указатели очень просто.

1. Транзакция BD61 — активировать указатели изменений по всей системе
2. Транзакция BD50 — Активировать указатели изменений для конкретного вида сообщений (объекта). Например, данные по HR относятся к HRMD_A.
3. Программа RBDMIDOC — Запланируйте программу RBDMIDOC для периодической отправки объектов (IDOC) по ALE. Программа считывает таблицы указателей, создает IDOC и помещает в ALE слой для отправки в другие системы.

Периодически таблицу с указателями желательно чистить. Это можно делать вручную (транзакция BD22) или с помощью запланированной в фоне программы RBDCPCLR.

Если вам нужно определить на уровне полей, какое изменение должно вызывать создание документа изменения, то в транзакции SE11 выбираем элемент данных, переходим на закладку «Прочие характеристики» (Further characteristics) и ставим галочку «Документ изменений» ( Change document). Теперь изменение поля с таким элементом данных во всех инфотипах будет вызывать создание документа изменения, и его отправку по ALE.

Change Pointers (Указатели изменений): 7 комментариев

  1. metha

    Дополнение. Чтобы это уж наверняка работало надо обязательно настроить модели распределения (bd54) так как из чендж поинтера (ЧП :mrgreen: ) айдок создаётся только на основе модели. Если погрузится ещё глубже то увидим массу бадишек и юзерэкзитов как в исходящих айдоках так и во входящих.
    Что касается элементов данных и доменов не уверен насчёт ЧП имхо они создаются на основе настроек t777d, а не на основе доменов/элементов, настойки доменов элементов влияют на журналирование инфотипов.

  2. VirVit Автор записи

    Похоже ты прав. В тр BD52 можно указать сообщение, бизнес объект и таблицу/поля, при которых будет формироваться указатель.

  3. metha

    Дополнение №2. Если Вы передаете помимом стандартного сообщения HRMD_A еще и расширение к нему ZZZZ (разработка расширений через WE30,WE31), то в исходящей системе надо: 1) настроить через WE20 распределение с учетом расширения айдока WE30, 2) !обязательно!) зерелизить следующий USER-EXIT ZXHALU08, в котором должны быть следюущие строчки F_IDOC_CONTROL-CIMTYP = ‘ZZZ’. ZZZ это имя расширения айдока из WE30.

    Надо это делать для того чтобы исходящие айдоки не сваливались в синтаксическую ошибку структуры айдока.

  4. yegorm

    Мне кажется, надо еще уточнить, что определение на уровне полей в SE11 (последний абзац) — это не универсальная вещь. Это работает, если указатели пишутся через документы изменений, а это не всегда так. Например, в HR ALE, мне кажется, это не так.

  5. metha

    В то и дело, что документы изменений это не change pointers 😉 Вит, это признаёт…

  6. metha

    п.с. документы изменений и ЧПшки пишутся последовательно в базу, сначала одни потом другие и то если каждый отдельно активирован через спро.

  7. Alex

    metha, спасибо за дополнение номер 2, оказалось очень ценным.
    Его вообще можно в саму статью добавить как Update

Добавить комментарий