Передача российских инфотипов по ALE

Передача российских инфотипов по ALE

VirVit One comment
Интеграция SAP

В стандарте SAP HCM есть российские инфотипы. В стандарте SAP передача российских инфотипов по ALE почему-то не есть. Ее нет от слова совсем. Сегодня мы с вами настроим передачу любых инфотипов по ALE, а заодно повторим немного настройку ALE. Рассматривать будем две ситуации: передачу коротких инфотипов и передачу длинных инфотипов.

Передача коротких инфотипов по ALE

Короткий инфотип, это инфотип, размер которого влезает в один сегмент. Как проверить? Открываем SE11, открываем структуру инфотипа в формате PXXXX, складываем размеры всех полей. 1 сегмент может хранить 1000 символов. Если структура длиннее, то это длинный инфотип, если короче, то… короче понятно, что короче 😉

В транзакции WE31 создаем новый сегмент для инфотипа. Правило именования Z1PXXXX, хотя можно и длиннее, но для версий системы 4.6+. Первые три символа всегда Z1P или Y1P. Чтобы не вводить все данные руками из SE11 можно создать через шаблон. В меню Segment -> Create with template выбираем DDIC структуру PXXXX. При сохранении сегмента система проверит размерность на соответствие 1000 символов.

Вот мой сегмент для ИТ 0293.

Создание IDOC сегмента

Создание IDOC сегмента

Не забываем релизнуть сегмент в меню.

 

В системах отправителя и получателя для этого ИТ прописываем наш сегмент в ракурсе T777D:

В обеих системах в WE30 создаем расширение для базового типа сообщения. У меня это выглядит вот так.

Добавляем сегмент в структуру.

Полдела сделано. На главном экране в меню Edit опять релизим наше расширение. Остались пустяки.

В WE82 прописываем наше расширение для типа сообщения HRMD_A.

Прописываем расширение в профиле партнера в WE20

Заходим в PFAL и шлем его нафиг.

 

 

Передача длинных инфотипов по ALE

Здесь чуток замороченнее.

Суммарно мы можем передать не более 3000 символов, это 3 сегмента. Мы аналогичным способом создаем сегменты, но с одним отличием. Нам для соединения сегментов в одну запись инфотипа нужно их идентифицировать. Поэтому мы в начале каждого сегмента закладываем ключевые поля из структуры PSKEY. Логика работы такова, что мы при формировании IDOC делим длинный ИТ на кусочки, но в каждом кусочке есть один уникальный ключ. Почти как блокчейн для HR 🙂 При получении IDOC во входящей системе мы кусочки соединяем и сохраняем в одну запись инфотипа.

Чтобы кусочки не расползлись по всему IDOC, мы их делаем зависимыми друг от друга.

И осталось теперь системе сказать, что у нас один инфотип обслуживается двумя сегментами. В T777D прописываем все сегменты, начиная со старшего.

Запустили PFAL и получили вот такую картинку:

Первый сегмент заполнился, а второй нет.

Все потому, что неправильно ты, Дядя Федор, бутерброд ешь (с) Кот Матроскин.

Создаем в CMOD расширение.

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

EXIT_SAPLRHAL_003 – расчленение
EXIT_SAPLRHAL_004 – склеивание

Я сделал два ФМника.

ZCONVERT_P0294_TO_Z1PA0294
ZCONVERT_Z1PA0294_TO_P0294

по названию можно догадаться, что один конвертирует инфотип в сегмент, второй наоборот. Обратите внимание, что конвертирует в один, старший сегмент.

Ниже исходники обоих. После этого активируем ФМ, проект расширений и запускаем PFAL. И все работает. Не забываем еще про механизм преобразования данных на лету.

Я передавал данные в рамках одной системы, поэтому у меня все настройки и ФМ в одной системе, вам же надо разделить по системам приемникам/получателям.

Поделитесь с друзьями и коллегами! Вам это ничего не стоит, а нас мотивирует на новые подвиги!

 

 

 

One comment

Роман Величко

Март 7, 2018 в 10:57 дп

Мелкий оптимизационный хинт. ZXHALU04 надо реализовывать только если нужно добавить доп сегменты к стандартным (ну например, расширение 0001 инфотипа), если мы полностью снуля делаем свой инфотип то достаточно реализовать ФМ именно такого названия где NNNN это номер Вашего инфотипа. В примере Виталика, ФМ надо было назвать просто CONVERT_P0294_TO_Z1P0924 и его бы вызвал сам PFAL без ZXHALU04, так как сначала вызывается ФМ и потом ZXHALU04.

 

Вы должны быть авторизованы, чтобы оставить комментарий.