Меню

Перенос комплексных типов данных с помощью RFC

|

Перед отправкой данных в другую систему необходимо проверить, что обе системы используют один и тот же тип данных. Если используется уникальный составной тип данных из вызываемой системы, сначала следует отправить его определение в вызывающую систему и воссоздать этот тип данных. Если это уникальный комплексный тип данных из вызванной системы, необходимо разобрать комплексную структуру данных.

Ключевое понятие

Для определения комплексной структуры данных в исходной системе можно разработать общий подход с разложением структуры на несколько экземпляров простых типов данных в четко заданной последовательности для отправки в целевую/принимающую систему. Далее выполняется сборка этих экземпляров в полную структуру данных.

При взаимодействии двух систем SAP структура данных должна быть синхронизирована. Иногда эта структура данных является комплексной структурой из вложенной таблицы/структуры и элементов данных. Как правило, определение комплексной структуры данных жестко закодировано в обеих системах, и чтобы выполнить перенос данных с таким определением структуры требуются программы с жестким кодом.

Для более сложных типов структур данных требуются более зависящие от структуры данных программы. Это делает процесс разработки негибким, затратным по усилиям и неэффективным. Поскольку определение простых типов данных можно передать из исходной системы в целевую с помощью общего программирования, вы можете разложить определение комплексной структуры данных на несколько экземпляров простых типов данных в заданной последовательности. В каждом экземпляре в целевую систему передается определение простого типа данных. В целевой/принимающей системе вы снова собираете эти определения типов данных в комплексную структуру данных согласно установленной последовательности.

Такой метод значительно повышает эффективность кода при разработке интерфейсов и не вызывает в будущем трудностей при сопровождении.

Давайте определим комплексный тип данных. Под этим я имею в виду вложенную структуру данных, показанную на рис. 1.

Рис. 1. Определение комплексной структуры ts_rec

Тип TS_COMP — это структура, которая состоит из четырехзначного признака compcode и string loc. Структура type ts_rec состоит из имени строки, структуры типа TS_COMP и члена таблицы типа uja_t_dim_member.

Чтобы лучше понять комплексный тип структуры данных ts_rec, визуализируем его. Я объявляю таблицу dt_rec, которая относится к типу структуры ts_rec. Далее я заполняю таблицу DT_REC двумя записями. Теперь она выглядит как в режиме отладки на рис. 2.

Рис. 2. Таблица DT_REC, определенная как таблица с типом структуры TS_REC

Дважды щелкните по DT_REC (рис. 2). Откроется экран, показанный на рис. 3. Теперь таблица отображается с подробными данными двух записей (рис. 3).

Рис. 3. Подробные данные двух записей

В поле в столбце Name [строка] указано значение Simulation. Поле в столбце COMP [глубокая структура] является структурой. Поле в столбце MEMBER [внутренняя таблица] является таблицей, поэтому следует развернуть поле COMP первой записи, дважды щелкнув Structure: deep в первой строке. Появятся подробные данные, как показано на рис. 4. На экране вы видите поля и соответствующие значения для структуры COMP первой записи.

Рис. 4. Значение структуры VCOMP первой записи

Поля и соответствующие значения для структуры COMP второй записи показаны на рис. 5.

Рис. 5. Значение структуры COMP второй записи

На рис. 6 представлены значения для члена первой записи. Как видно на рис. 3, MEMBER является третьим полем структуры. MEMBER — это таблица из двух записей, представленная на рис. 6. Я присвоил значение MBR_11 в виде первой записи таблицы MEMBER, а значение MBR_12 в виде второй записи таблицы MEMBER.

Оформите подписку sappro и получите полный доступ к материалам SAPPRO

У вас уже есть подписка?

Войти