X-DOC: Полное руководство по настройке интерфейса SAP PO. Часть 3. Публикация службы REST и преобразование сообщений.
1. Разработка RFC на стороне SAP
Разработайте RFC, поддерживающий удаленный доступ:
FUNCTION yfm_xl_rest_demo.
*"----------------------------------------------------------------------
*"*"本地接口:
*" IMPORTING
*" VALUE(IV_CARRID) TYPE S_CARR_ID
*" VALUE(IV_FLDATE) TYPE S_DATE OPTIONAL
*" EXPORTING
*" VALUE(ES_RETURN) TYPE SCARR
*" TABLES
*" ET_DATA STRUCTURE SFLIGHT OPTIONAL
*"----------------------------------------------------------------------
SELECT SINGLE * FROM scarr WHERE carrid = @iv_carrid INTO @es_return.
SELECT * FROM sflight
WHERE carrid = @iv_carrid
AND ( @iv_fldate IS INITIAL OR ( @iv_fldate IS NOT INITIAL AND fldate GE @iv_fldate ) )
INTO TABLE @et_data.
ENDFUNCTION.
тест:
2. Конфигурация интерфейса ПО
2.1. Конфигурация PO SLD
2.2. Конфигурация ESB на стороне PO
2.3. Конфигурация PO-терминала IB
2.4. Тест почтальона
3. Конфигурация преобразования сообщений
Вернитесь к конфигурации ESB, добавьте пакеты преобразования и настройте конфигурацию сопоставления сообщений MM.
Конфигурация стороны IB
Прикреплено: xsd-файл внешнего определения
ED_XL_REST_DEMO_REQ.xsd .
<?xml version="1.0" encoding="utf-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:xlevon.cn" targetNamespace="urn:xlevon.cn">
<xsd:element name="MT_XL_REST_DEMO_REQ" type="DT_XL_REST_DEMO_REQ" />
<xsd:complexType name="DT_XL_REST_DEMO_REQ">
<xsd:sequence>
<xsd:element name="carrier_id" type="xsd:string" minOccurs="0" />
<xsd:element name="flight_date" type="xsd:string" minOccurs="0" />
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
ED_XL_REST_DEMO_RES.xsd
<?xml version="1.0" encoding="utf-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:xlevon.cn" targetNamespace="urn:xlevon.cn">
<xsd:element name="MT_XL_REST_DEMO_RES" type="DT_XL_REST_DEMO_RES" />
<xsd:complexType name="DT_XL_REST_DEMO_RES">
<xsd:sequence>
<xsd:element name="header" minOccurs="0" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="carrier_id" type="xsd:string" minOccurs="0" />
<xsd:element name="carrier_name" type="xsd:string" minOccurs="0" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="body" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="list" minOccurs="0" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="carrier_id" type="xsd:string" minOccurs="0" />
<xsd:element name="connection_id" type="xsd:string" minOccurs="0" />
<xsd:element name="flight_date" type="xsd:string" minOccurs="0" />
<xsd:element name="PRICE" type="xsd:string" minOccurs="0" />
<xsd:element name="CURRENCY" type="xsd:string" minOccurs="0" />
<xsd:element name="PLANETYPE" type="xsd:string" minOccurs="0" />
<xsd:element name="SEATSMAX" type="xsd:string" minOccurs="0" />
<xsd:element name="SEATSOCC" type="xsd:string" minOccurs="0" />
<xsd:element name="PAYMENTSUM" type="xsd:string" minOccurs="0" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
Оригинал статьи, при перепечатке указывайте источник - Секретные материалы