Сегодня я расскажу Вам кое-что интересное. Усаживайтесь поудобней. Начнем)

На днях мой коллега Саша (имена изменены), поделился историей своего недавнего расследования. Началось оно с того, что ему потребовалось сформировать строку адреса сотрудника.

Часть 1. Интрига

Если вы abap-разработчик и специализируетесь на модуле HCM, то эту задачу вы решали неоднократно, например вызовом ФМ-а HR_RU_GET_ADDRESS. Вот и Саша решил его использовать.

Напомню, что для использования ФМ-а HR_RU_GET_ADDRESS, ему на вход необходимо подать структуру 6-го  Инфо-типа и таблицу с форматом (см. ниже), по которому он сформирует строку.

Рис 1

Вернемся к нашей истории…

Открыв программу в режиме редактирования, и имея под рукой пример вызова ФМ-а (словом, как и я) Саша начал формировать строку с тегами. Улица — [u] <U>, дом — [h] <H>, корпус — ??? Хм — подумал он. Корпус…?

Набрав в консоли ‘pa30’ и открыв Инфо-тип Адреса он увидел заполненное поле «Номер строения».

Рис 2

Именно это поле и хотела видеть в адресе консультант Анита.

Итак, поле на месте, но как его считать ФМ-ом?

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

Часть 2. Справка

Нажав F1, Саша открыл справку.

Рис 3

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

Рис 4

Что ж, делать нечего, и Саша решил трассировать…

Часть 3. Трассировка

Не тратя попусту время, вооружившись отладчиком, Саша погрузился в полный тайн мир кода. Строчка за строчкой и он вышел на след. Взгляните сами:

Рис 5

У ФМ-а HR_RU_GET_ADDRESS появился новый входной параметр — P3433!

Это уже зацепка! — возможно подумал Саша.

Параметр необязательный, поэтому он сразу его и не заметил.

Отступление:

Дело в том, что в начале 2018 года SAP добавил новый Инфо-тип 3433 Дополнительные адресные данные (RU). Связано это с переходом с КЛАДР на ФИАС.

Рис 6

Теперь, часть полей экрана 0006 ИТ будет храниться в ИТ 3433. Некоторую дополнительную информацию по ИТ3433 можно найти здесь, здесь и здесь.

Пройдя еще некоторое количество строк, он нашел потерявшийся тег <F>, который спрятавшись среди других смотрел прямо на него. Как вы уже догадались, это и есть наш корпус.

Рис 6

Часть 4. Вместо заключения

Итак, что мы имеем:

1. Интерфейс ФМ-а HR_RU_GET_ADDRESS изменился. Теперь он принимает на вход структуру Инфо-типа 3433 Дополнительные адресные данные (RU);

2. Появился новый тег — <F> — корпус.

Спасибо за уделенное время.

Заходите еще)

P.S.

О том, как добавить запись в ИТ 3433 читайте здесь.