В этой книге приводятся практические решения задач с использованием транзакции

LSMW для загрузки данных на основе методов Batch Input, BAPI и

Direct Input. Примеры базируются на бизнес-сценарии миграции данных.

Продолжение книги.

Часть 1  Часть 2  Часть 3

Шаг 6: мэппинг (соответствие) полей источника [данных] и полей записи пакетного ввода

Дважды щелкаем по шагу Maintain Field Mapping and Conversion Rules (рис. 2.30).

Рис. 2.30. Переход к шагу ведение мэппинга полей и правил преобразования (Maintain Filed Mapping and Conversion Rules)

На данном шаге необходимо произвести мэппинг полей между структурой типа сообщения BAPI и структурой входного источника данных. В отличие от пакетного ввода в этом методе сложно использовать функцию Auto Field Mapping (так как ID полей BAPI отличаются от ID поле на экране). Поэтому нам необходимо вручную произвести мэппинг полей. Прежде чем переходить к следующему шагу, нам нужно вспомнить, что у нас пример с внутренней нумерацией материала (то есть Number Range ведется в SAP ERP, а не задается вручную; если бы вручную, это был бы простой пример — с указанием любого номера в файле). Таким образом, нам нужно предусмотреть генерацию номера материала в процессе загрузчика. Генерация номера объекта в SAP делается с помощью ФМ NUMBER_GET_NEXT; объект для материалов — MATERIALNR (можно видеть через параметры транзакции MMNR). Чтобы определить, какой number range соответствует виду материала, нужно запустить транзакцию SPRO и перейти к соответствующему виду материала (рис. 2.31, рис. 2.32, рис. 2.33, рис. 2.34).

Рис. 2.31. Переход к настройкам диапазона номеров для вида материала в транзакции SPRO

Рис. 2.32. Переход к группе интервалов диапазона номеров для вида материала

Рис. 2.33. Переход к нужному виду материала 

Рис. 2.34. Подробный просмотр номера диапазона номеров в виде материала

Таким образом, в нашем случае параметры для запуска ФМ такие (рис. 2.35):

Рис. 2.35. Параметры запуска функционального модуля NUMBER_GET_NEXT для получения номера материала

Чтобы получить номер материала для записи, нам нужно ввести глобальную переменную. Для этого включим отображение глобальных переменных и блоков кода (рис. 2.36 и рис. 2.37).

Рис. 2.36. Скрытие/отображение полей и блоков кода

Рис. 2.37. Отмечаем галочками, какие именно поля и блоки кода нужно отображать

Дважды щелкаем по строке _GLOBAL_DATA_ (рис. 2.38). В блоке _GLOBAL_DATA_ нам нужно дописать код, представленный в таблице 2.4 (рис. 2.39).

Рис. 2.38. Двойным щелчком по блоку _GLOBAL_DATA_ переходим к ведению кода

Табл. 2.4. Дополнительный код в разделе _GLOBAL_DATA_ 

Рис. 2.39. Вводим нужный код в блоке _GLOBAL_DATA_

Сохраняем и выходим из экрана ввода кода. Затем дважды щелкаем по блоку «__BEGIN_OF_TRANSACTION__». Вставляем код: clear g_matnr. Переходим на следующую строку и идем по меню: Edit -> Statement Template (рис. 2.40).

В итоге код должен быть таким, как показано в таблице 2.5.

Табл. 2.5. Код для генерации кода в блоке BEGIN_OF_TRANSACTION

Чтобы сделать мэппинг полей структур, нужно проработать каждое поле. Описание каждого нужного нам поля приведем в таблицах 2.6.а–2.6.ё. Более того, необходимо заполнить так называемые X-структуры. X-структуры содержат те же поля, что и основные структуры, но в них необходимо указать с помощью значения X: будет ли поле обрабатываться. Если мы не заполним эти структуры, то обновления полей (или передачи данных) не произойдет.

Табл. 2.6.а. Поля структуры BAPI и то, как их нужно заполнять

Табл. 2.6.б. Поля структуры BAPI и то, как их нужно заполнять

Табл. 2.6.в'. Поля структуры BAPI и то, как их нужно заполнять 

Табл. 2.6.в". Поля структуры BAPI и то, как их нужно заполнять

Табл. 2.6.г. Поля структуры BAPI и то, как их нужно заполнять

Табл. 2.6.д. Поля структуры BAPI и то, как их нужно заполнять

Табл. 2.6.е. Поля структуры BAPI и то, как их нужно заполнять

Табл. 2.6.ё. Поля структуры BAPI и то, как их нужно заполнять

Чтобы заполнить X-структуры, перейдем по меню Extras -> Complete X Structures (рис. 2.41).

Рис. 2.41. Автоматическое заполнение X-структур

При этом система может создать как корректные, так и некорректные правила. Некорректные правила — удаляем через кнопку Initial (рис. 2.42).

Рис. 2.42. Удаление некорректного правила преобразования через кнопку Initial

Это мы должны сделать с каждой X-структурой. Обращаем внимание, что некоторые поля (FUNCTION, PLANT, MATERIAL) в X-структурах должны быть заполнены значениями, а не отметками X. Также на последнем шаге, чтобы знать номер материала, мы выведем сообщение номером создаваемого материала. Дважды щелкаем по пункту «__END_OF_TRANSACTION__» (рис. 2.43).

Рис. 2.43. Переходим к блоку _END_OF_TRANSACTION_

Вставляем код, представленный в таблице 2.7 (рис. 2.44). После добавления кода вид блока _END_OF_PROCESSING_ немного поменяется, и блок будет выглядеть, как представлено на рис. 2.45.

Табл. 2.7. ABAP-код для вставки в блок кода _END_OF_TRANSACTION_

Рис. 2.44. Вставка кода в блок _END_OF_TRANSACTION_

Рис. 2.45. Вид блока кода _END_OF_PROCESSING_ после добавления кода

Сохраняем мэппинг полей (присвоение полей), чтобы перейти к шагу Specify Files (рис. 2.46).

Рис. 2.46. Сохранение мэппинга полей

Шаг 7: указание пути к файлу

После мэппинга полей следующим шагом можем быть шаг Maintain Fixed Values, Translations, User-Defined Routines. Об этом шаге будет рассказано позже. В текущей главе в качестве следующего шага будет Specify Files. Однако прежде чем указывать путь к файлу, необходимо создать файл по нужному нам формату. Для создания входного файла будем использовать Excel. Первый файл для проверки загрузчика разумно создавать на 2–3 записи; так как в случае проблем можно их быстро устранить. Первую строку в Excel заполняем техническими именами полей входной структуры. А строки, начиная со 2-й, заполним уже конкретными значениями. От построчной структуры к структуре по столбцам можно переходить с помощью функции транспонирования (англ. =TRANSPOSE). В итоге структура входного файла должна быть следующая (как представлено на рис. 2.47).

Рис. 2.47. Формат д данныхля загрузки в Excel

Рис. 2.48. Данные, преобразованные б в текстовый формат .txt

Затем мы сохраним Excel как файл в формате .xlsx, скопируем все данные и сохраним в блокноте (в формате .txt) (можно выполнить операцию Save As — Сохранить как). На выходе должен получиться файл в формате txt с табуляторами в качестве разделителей. После преобразования в текст файл будет выглядеть, как представлено на рис. 2.48.

После создания текстового файла переходим к указанию его в качестве файла-источника. Дважды щелкаем по шагу Specify Files (рис. 2.49).

Рис. 2.49. Переход к пункту Specify Files с помощью двойного щелчка

Ставим курсор на строку On the PC (Frontend) и нажимаем кнопку Add Entry (рис. 2.50).

Рис. 2.50. С помощью кнопки Add Entry добавляем входной файл

Указываем путь к файлу, имя файла (то описание, которое мы хотим видеть на экране); в качестве

Если хотите прочитать статью полностью и оставить свои комментарии присоединяйтесь к sapland

У вас уже есть учетная запись?

Войти