亲爱的各位,服务器,
经过这些天,这是我在SAP社区的第一个博客。
业务要求
在SAP PI中将一个平面文件拆分为多个XML,条件是生成的XML需要有预定义的行项目计数。
解决方案
我们确实有将平面文件拆分为多个文件的博客(不使用BPM)。在这个博客中,我将解释将一个平面文件(包含头文件、行项目和尾文件)拆分为多个XML文件所涉及的映射逻辑,其中每个目标文件都应根据用户需求具有特定的行项目计数。
我没有解释整个端到端场景,但只有映射部分。
考虑下面的csv文件,南昌大数据,它有一个标题、15行项目(在本例中)和一个尾部。假设目标XML文件最多需要5行项目(该值将是动态的)。因此,购物返利,在这种情况下,我们需要将文件拆分为3个XML。
输入CSV文件
对于字段名称,请参阅PI结构的快照。
预期目标XML
这里的行项目计数是每XML 5个
PI结构
除了发送方结构中的关键字段之外,返利app怎么用,发送方和接收方结构都将看起来相似。需要在发送方文件通道中启用FCC。
请确保目标消息的出现在消息映射的"签名"选项卡下设置为0..unbounded。
另外,需要在"签名"选项卡中维护一个参数—以指示每个拆分文件中要显示的行项目计数。
映射逻辑
MM中使用了两个自定义项,
分割消息–处理标题和尾随记录。
分割行项目–处理行项目记录。
分割消息自定义项
接受三个输入并产生一个输出。
计数项目–指定输入XML中的行项目总数。
输入值–指定相应的输入值(随时间变化)关于字段)
N–此值来自参数化映射(参数:行\项\否)–指示每个目标XML文件中要存在多少行项目。
一个输出(结果)。
分割行\项UDF
参数与上述UDF类似。
MT \ U接收器
如前所述,UDF有三个输入,第一个是源端行项目的计数,物联网是什么,第二个是常量[CC],第三个是映射签名中维护的参数。第二个参数将根据UDF逻辑在输出端生成。这里只关心UDF结果的上下文变化和发生,而不关心其值。您可以对结果使用显示队列。
头和尾节点
头和尾节点的映射逻辑相似。
头和尾字段
头和尾字段的映射方式相似。标题中的键对应于银行名称,而对于拖车,键是TRL。只有自定义项的第二个参数会根据目标字段而改变。
行项目节点
映射逻辑会有所不同,以生成行项目节点。
行项目字段
行项目的所有字段都一一映射。键对应于IFSC\ U代码。
我们已完成映射。请完成端到端的设计和配置。
FCC在发送方文件通道
然后将输入文件放在源目录中,您可以看到文件在目标目录中被拆分。您还可以使用counter选项生成带有序列号的目标文件。
使用此方法,我们可以将平面文件动态拆分为任意数量的XML文件。