我正在尝试使用WSO2 6.2 EI进行SAP BAPI RFC调用(我也尝试了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安装以使用它?
答案 0 :(得分:0)
我使用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>