WSO2 SAP Adapter: невозможно отправить данные таблиц в вызове BAPI RFC - PullRequest
0 голосов
/ 05 июня 2018

Я пытаюсь выполнить вызов SAP BAPI RFC, используя WSO2 6.2 EI (я также пробовал WSO2 ESB 5.0.0 с теми же результатами).XML-запрос содержит данные для структур ввода и некоторые данные таблицы.Данные входных структур успешно отправлены и получены на стороне SAP.Данные таблиц не отправляются WSO2 (как указано в файлах трассировки для вызова SAP).Я взглянул на исходный код, и кажется, что проблема уже была сообщена и исправлена ​​(https://wso2.org/jira/browse/ESBJAVA-3011), но, что удивительно, даже в последней версии WSO2 все еще есть старый код, который все еще имеет проблему (если я не смотрю внеправильное место) - org.wso2.carbon.transports.sap_1.0.0.jar (присутствует в каталоге плагинов).

Ниже приведен пример запроса:

<body>
<bapirfc xmlns="" name="ZTEMP_CREATE">
<import>
<structure name="LS_ORDER_HEADER_IN">
<field name="DOC_TYPE">ZZZ</field>
<field name="SALES_ORG">1111</field>
</structure>
</import>
<tables> 
<table name="LT_PARTNERS">
<row id="0">
<field name="PARTN_ROLE">DG</field>
<field name="PARTN_NUMB">0000000075</field>
</row>
</table>
</tables>
</bapirfc>
</body>

Импортданные структуры для структуры "LS_ORDER_HEADER_IN" отправляются и принимаются успешно. Но данные таблиц "LT_PARTNERS" отправляются как пустые данные из WSO2. Есть ли исправление или обновление, доступные для адаптера SAP для устранения этой проблемы, и если да, то как это можно сделатья обновляю свою установку wso2 ei, чтобы использовать ее?

1 Ответ

0 голосов
/ 05 июня 2018

Я использую ESB 4.8.1 с org.wso2.carbon.transports.sap_1.0.0.jar, чтобы без проблем выполнять вызовы BAPI RFC.

Можете ли вы попробовать следующий тестовый прокси, чтобы увидеть,вообще работает?

    <?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse"
       name="SAPProxy"
       transports="https,http"
       statistics="disable"
       trace="disable"
       startOnLoad="true">
   <target>
      <inSequence>
         <payloadFactory media-type="xml" description="BAPIPayload">
            <format>
               <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
                  <soap:Body>
                     <bapirfc xmlns="" name="Z_CONVERT_IBAN_2_BANK_ACCOUNT">
                        <import>
                           <field name="I_IBAN">123456789</field>
                        </import>
                     </bapirfc>
                  </soap:Body>
               </soap:Envelope>
            </format>
            <args/>
         </payloadFactory>
         <send>
            <endpoint name="sap-endpoint">
               <address uri="bapi:/yourconf"/>
            </endpoint>
         </send>
         <log level="full">
            <property name="step" value="--- AFTER SEND TO SAP 2 --"/>
         </log>
      </inSequence>
      <outSequence>
         <log level="full">
            <property name="step" value="--- RESULT FROM SAP --"/>
         </log>
         <send/>
      </outSequence>
      <faultSequence>
         <log level="full">
            <property name="step" value="--- FAULT --"/>
         </log>
         <drop/>
      </faultSequence>
   </target>
   <description/>
</proxy>
...