点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中) 嗨,专家。 ...
点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中) 嗨,专家。 ...
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
嗨,专家。
包含属性的重复元素的PI/ABAP代理映射-无法处理ABAP中顶级元素的text()内容。
SAP PI版本7.5 sp11。
我们在PI映射和ABAP代理中创建的结果结构方面存在问题。
在我们的消息映射的两侧都需要以下xsd。 我们只是在顶层进行映射,而在PI中测试映射时会遇到所有数据。
当我们生成代理时,它会创建一个表来表示消息元素。
表类型包含关联的属性(规则,严重性,原因和消息),但是关联元素的text()内容无处可去..在PI映射屏幕中,我们看到了文本,但是Proxy无处可寻 去。
一切都可以编译,但是当我们运行代理时,如果元素" Message"中包含任何文本(即其内容或值),则会引发异常–由于不满足Message元素文本的事实 从而使xml格式错误。
请参见下面的示例xml内容:高亮显示的文本导致异常。
作为一种解决方法,我们尝试在图形映射中将顶级" Message"元素映射到其关联的" message" 属性,然后将顶级Message元素的内容设置为null(在 下面的映射中的replacestring函数)。 我们希望将其应用于数组中Message元素的所有出现,但事实并非如此! 这样可以解决该异常,并且结果可以在消息结构表条目的代理和调用程序中看到,但是只有到那时,消息表的首次出现行的message属性中才能看到任何文本- 其余为空。 其他属性值在那里,但消息属性为空白。 因此看来,通过清除(使文本化)映射中的文本,它对于所有后续Message元素仍然保持清除状态。
任何人都可以建议我们如何更改输出XSD,以便Abap将创建正确的结构以允许Message元素的内容(text()),或者可以选择我们需要添加到映射中的内容以确保 相同的过程适用于所有出现的Message,而不仅仅是第一个。 谢谢
正在使用来自输出xsd后期映射的样本(对此生成的代理结果)。 预映射xsd没有message属性,我们希望元素中的文本值内容进入属性message
示例输出XML消息和数据...。突出显示的文本值是导致我们出现问题的原因
<消息部分="完整的RdSAP"规则="从完整的RdSAP数据集中丢失"严重性" 4"原因="缺少">"> 未定义日期区域
<消息部分=" Full RdSAP"规则="从完整的RdSAP数据集中丢失"严重性" 4"原因=" Missing"> 未定义地形类型
<消息部分="完整的RdSAP"规则="从完整的RdSAP数据集中丢失"严重性" 4"原因="缺少">"> 未定义仪表类型
我们什么都不用替换Message元素的值,但这应该是在将元素值移动到属性之后
Abap结构将Message元素转换为表格,并且每个Message元素的text()内容值都没有位置,如果不清除它,则会在代理中收到异常,因为无法处理文本。/p>
消息行类型...
(74.8 kB)
嗨,大卫!
我建议将令牌放入动态配置中(例如,在消息映射中使用UDF),然后在REST Receiver通道中进一步从DC取回该值并将其用于Value中 HTTP标头的模式。
关于此,Evgeniy。
一周热门 更多>