Загрузка Z-полей с помощью LSMW
На большинстве проектов для различных документов (объектов) системы выполняются доработки, в том числе создаются новые поля в таблицах. На этапе миграции данных, либо в процессе продуктивной работы с системой может возникнуть необходимость массовой загрузки данных «расширенных» документов, при этом встает вопрос, каким образом выполнить загрузку данных в такие новые поля. В этой статье приводится рекомендация по решению этой задачи стандартными средствами LSMW.
В основе предлагаемого метода лежит использование специальной структуры EXTENSIONIN. Связь внутри программы загрузки осуществляется через ссылочную структуру E1BPPAREX. Данная структура имеет 5 текстовых полей: 4 по 240 символов и одно поле 30 символов. Таким образом, всего структура содержит строку из 1000 символов. Данная строка представляет собой последовательную комбинацию значений полей из структуры расширения любой таблицы. Также строка содержит поле с именем структуры, для которой выполнено расширение.
Для работы со стандартным средством существует ограничение – дополнительные (новые) поля таблицы не должны иметь тип P. Однако, даже если бизнес-процесс требует использования именно этого типа данных, предусмотрены расширения обработки данных структуры EXTENSIONIN с помощью BADI. В расширении можно произвести перекодировку цифрового поля в текстовое.
Структура E1BPPAREX представлена следующим образом:
Поле |
Тип |
Длина |
Название |
STRUCTURE |
C |
30 |
|
VALUEPART1 |
C |
240 |
|
VALUEPART2 |
С |
240 |
|
VALUEPART3 |
С |
240 |
|
VALUEPART4 |
С |
240 |
|
Поле STRUCTURE содержит имя структуры BAPI, которая в процессе обработки дополняется новыми полями. В зависимости от документа в системе, это может быть и структура заголовка, и структура позиций. Также как правило, необходима передача индикаторов изменяемых полей с помощью дополнительной структуры индикаторов, имеющий символ «X» в конце названия.
Далее рассмотрен пример заполнения полей для заявки на закупку.
Таблица позиций заявки EBAN расширена следующей структурой полей:
Include CI_EBANDB:
Поле |
Тип |
Длина |
Название |
ZFIELD1 |
C |
5 |
Текстовое |
Если хотите прочитать статью полностью и оставить свои комментарии присоединяйтесь к sapland
ЗарегистрироватьсяУ вас уже есть учетная запись?
Войти
Обсуждения 1
Комментарий от
Евгений Тенищев
| 21 октября 2020, 23:21
Пока, если честно, не понятно как это реализовать в lsmw.