Меню

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

|

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

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

Функциональный модуль с RFC — программа SAP, которую можно вызвать из другой системы посредством RFC. Обобщенное программирование — парадигма программирования, заключающаяся в таком описании данных и алгоритмов, которое можно применять к различным типам данных, не меняя само это описание, Это реализуется через создание параметризованных шаблонов, которые можно затем конкретизировать для реальных классов и алгоритмов. Идея лежит в том, чтобы тело программных модулей было как можно более общим (базовым) и соответственно более легко используемым повторно. Сериализация — процесс преобразования объекта в поток байтов для его хранения или передачи в память, базу данных или файл. Основной целью при этом является сохранение состояния объекта с возможностью его повторного создания при необходимости. Обратный процесс называется десериализацией.

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

На рис. 1 показан результат — таблица с настроенной структурой, составленная из общих типов данных.

Рис. 1. Пример простой структуры определения с общими типами данных

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

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

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

Примечание.

Существенная доля переносов данных в системе SAP выполняется посредством вызова ABAP с RFC-функцией. Именно поэтому общий перенос данных стоит в ряду важных и широко применяемых операций. Основа переноса данных — общий подход к созданию определения типа или структуры данных.

Перед отправкой данных обратно в вызывающую систему туда следует передать определение вашей уникальной структуры. Сначала с помощью общего типа данных DFIES (рис. 2) передайте определение настроенной структуры в вызывающую систему. Тип данных DFIES доступен в словаре данных (DDIC) в любой системе SAP. Далее отправьте в вызывающую систему данные с релевантной структурой. Этот процесс, как было сказано выше, в статье не описан.

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

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

Войти