Требования к функциональному модулю
Создание функционального модуля
Создать класс реализации бизнес логики
Построение функционального модуля
Создание объекта Migration Cockpit
Дана методика создания объектов миграции в SAP S/4HANA Migration Cockpit на основе пользовательского функционального модуля. Приведены подробные шаги по разработке функционального модуля для добавления записей в z таблицу и показаноего использования для миграции данных.
Архитекторы бизнес-процессов, консультанты по миграции данных, ABAP разработчики, участвующие во внедрении SAP S/4HANA.
Migration Cockpit – новый инструмент для миграции данных в систему S/4HANA, пришедший на смену Legacy System Migration Workbench LSMW. Поставляется вместе с системой S/4HANA, содержит порядка 100 предварительно настроенных объектов миграции готовых к использованию без какого-либо программирования. Составной частью Migration Cockpit является Разработчик объектов миграции, транзакция LTMOM. С его помощью можно адаптировать стандартные объекты для требований проекта или создать новый объект для миграции сущностей, отсутствующих в стандартной поставке. Если требуется мигрировать данные в Z объекты необходимо разработать соответствующий функциональный модуль, отвечающий требованиям Migration Cockpit. Приведенный ниже пример загрузки данных в пользовательскую таблицу исторических данных ценовых условий реализован в системе SAP S/4HANA 1909.
Нота 2590165 - SAP S/4HANA Migration Cockpit - Creating Your own Function Modules содержит основные рекомендации по созданию программы для объекта миграции и может служить хорошим стартом для построения решения. Соблюдены основные требования к функциональному модулю для использования в качестве API:
В качестве примера рассмотрим загрузку данных в пользовательскую таблицу ZSD_HISTCOND «История цен», поля которой приведены в Таблице 1.
Таблица 1 Поля таблицы БД ZSD_HISTCOND
Архитектура модуля предусматривает определение интерфейсов ввода и вывода, соответствующих требованиям Migration Cockpit. Бизнес логика, валидация входных данных, сбор предупреждений и сообщений об ошибках реализованы в классе.
В транзакции SE11 выбрать опцию Тип Данных. Ввести наименование ZSD_HISTCOND_TT. Создать Тип Таблицы. Тип строки ZSD_HISTCOND - целевая таблица БД. Результат приведен на Рис. 1.
Рис. 1 Создание Типа таблицы ZSD_HISTCOND_TT
В транзакции SE80 Навигатор по объектам создать класс как показано на Рис. 2
Рис. 2 Создание класса
Определить методы класса по данным из Таблицы 2.
Таблица 2 Методы класса ZCL_SD_HISTZPR_GEN
Настроить параметры методов по данным из Таблицы 3 и текстовые элементы по Таблице 4.
Таблица 3 Параметры методов класса ZCL_SD_HISTZPR_GEN
Таблица 4 Текстовые элементы класса
Скопировать и вставить код, приведенный в Листинге 1. Сохранить введенный код и активировать.
METHOD create.
DATA: ls_hist TYPE zsd_histcond,
lt_hist TYPE TABLE OF zsd_histcond,
ls_messages TYPE bapiret2.
LOOP AT it_zsdhistcond ASSIGNING FIELD-SYMBOL(<ls_zsdhistcond>).
IF <ls_zsdhistcond>-matnr IS INITIAL OR
<ls_zsdhistcond>-datbi IS INITIAL OR
<ls_zsdhistcond>-datab IS INITIAL.
set_return_message(
EXPORTING
iv_type = 'E'
iv_id = 'SD024'
iv_number = 000
iv_message_v1 = TEXT-001
iv_message_v2 = space
iv_message_v3 = space
iv_message_v4 = space
IMPORTING
et_messages = et_messages ).
RETURN.
ENDIF.
ls_hist-matnr = <ls_zsdhistcond>-matnr.
ls_hist-datbi = <ls_zsdhistcond>-datbi.
ls_hist-datab = <ls_zsdhistcond>-datab.
ls_hist-kbetr = <ls_zsdhistcond>-kbetr.
APPEND ls_hist TO lt_hist.
ENDLOOP.
MODIFY zsd_histcond FROM TABLE lt_hist.
set_return_message(
EXPORTING
Для прочтения полной версии статьи необходимо зайти как зарегистрированный пользователь.
Дмитрий Тарасов (Рейтинг: 320) 12:22, 17 мая 2020
Интересно было бы посмотреть, что если есть зависимости между несколькими таблицами, и нужно сохранить консистенцию данных при миграции.
Также интересно сравнить данный метод с прямой миграцией, которая доступна с версии 1909.
Пока никому не понравилось
Олег Точенюк (Рейтинг: 11279)
Пока никому не понравилось
Даньшин Алексей (Рейтинг: 394)
Пока никому не понравилось
Олег Точенюк (Рейтинг: 11279)
Пока никому не понравилось
Даньшин Алексей (Рейтинг: 394)
Пока никому не понравилось