从XML文档(Redux)读取多个记录

2020-09-23 12:25发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)一年多以前,我问了这个问题: ...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


一年多以前,我问了这个问题:

https://archive.sap.com/discussions/thread/3818944

从本质上讲,如何将一个包含多个标签的XML文档读入(或拼合)到一个或多个输入流中? 我意识到适配器到流机制不允许一个适配器将输入发送到多个流,因此我对如何使用基于XML的适配器感到困惑。 文档中没有太多信息,没有可用的示例代码。

例如,一个XML文档如下所示:

 <?xml版本=" 1.0"编码=" utf-8"?> 
<协议> <端口/> 0123
HEAD123


1234
HEAD456





还有更多标签
如何定义一个ESP模式来接收所有数据? 我已经与发送此数据的人员进行了交谈,他们已经同意包括可能出现的每个标签,即使它们没有数据也是如此(如上所示)。 某些子标签名称在名称不同的父标签中使用时会重复(例如,上面的长度和标头)。

在上面提到的问题中,我正在使用XML文件适配器,建议是针对不同的模式多次读取同一文件。 那确实不是一个可行的解决方案。 对于这个项目,我将通过套接字适配器接收此数据,并且该数据将仅发送一次,因此我必须一次性获得所有数据。

请帮助!

谢谢

8条回答
天桥码农
2020-09-23 12:50

再见,

我使用第三方的XML进行了一些测试,并且很难对其进行扁平化,因此也许我可以说服他们这样做并避免使用自定义适配器路由。

我使用的是xml文件适配器,而不是套接字适配器,因此它的行为可能有所不同,但是我对适配器的行为有一些疑问。 我正在运行ESP 5.1 SP12 PL03。

1。 每次启动适配器时,它都会发送一条记录,在所有列中都为空。 如果套接字适配器中的设置相同,则每个xml文档可能只有一条记录,实际上使输入数据加倍。 这是一个错误吗? 我应该在事件中举报吗?

2。 似乎只能在属性中指定数据。 嵌套标签不起作用。 (查看ID = 4的数据)

3。 正确定义的XML标记(我认为)未发送到ESP(请看ID = 3的数据)。 请注意属性后的右括号。

再次感谢您的建议和帮助。 确实帮助我清除了有关如何进行操作的想法。

ESP代码:

创建模式S_xmlIn(
     ID字符串
     端口字符串
     长度字符串,
     标头字符串
 );

 创建输入流xmlIn SCHEMA S_xmlIn;

 将ATTACH INPUT ADAPTER XML_IN TYPE toolkit_file_xmllist_input插入xmlIn
 性质
 dir ='C:/data',
 文件='tx1Attr.xml'
 ;
 

tx1Attr.xml

 <?xml version =" 1.0" encoding =" US-ASCII"?>
 
 
 
  
   4  <端口> 666  <长度> 0439  
00121

一周热门 更多>