wso2 - WSO2 SAP 适配器:无法在 BAPI RFC 调用中发送表数据
问题描述
我正在尝试使用 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 安装以使用它?
解决方案
我正在使用 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>
推荐阅读
- postgresql - 为什么独特的约束在 Ecto 中不起作用?
- python - 为什么在管道组件上调用通信()而不是最后一个会产生损坏的输出?
- linux - 如何在 bash 脚本中优化 cp 函数?
- wordpress - WooCommerce 根据变化以编程方式设置属性
- javascript - 我正在尝试添加一个带有 HTML、CSS 和 Javascript 的下拉菜单
- javascript - 从计数器添加数字,但也使用新计数器创建新按钮
- c++ - 如何直接从 Vim 运行 cpp 程序?
- php - 无法在 laravel 7 中上传图片
- python - 根据另一列中的值删除数据框中的前 2 行
- python - Python 3 按特定键值过滤有序 dict 项的列表