REST适配器中的XPath表达式

2020-09-08 03:56发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)专家您好, 我正在尝试在XPa...

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

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


专家您好,

我正在尝试在XPath Expression中使用子字符串函数进行模式替换。

根据下面的wiki,我们可以在"接收方确定"条件编辑器中使用它

https://wiki.scn.sap.com/wiki/display/XI/Xpath+Condition+in+Receiver+Determination

但是当我尝试在使用XPath Expression的Receiver REST适配器中将其应用于模式替换时,它无法正常工作,请为我提供指导。

我尝试使用XPath表达式使用模式替换为我的REST URL动态添加查询字符串

预期的URL:http://host:port/service/path?sid = {SID}&recipient = {RCVPRN}&sender = {SNDPRN}

我尝试了几种方法,但是都没有给出预期的结果。

/INVOIC02/IDOC/EDI_DC40 [substring(SNDPRN,1,3)]

/INVOIC02/IDOC/EDI_DC40 [substring(//SNDPRN,1,3)]

/INVOIC02/IDOC/EDI_DC40 [substring(SNDPRN,1,3)]/SNDPRN

我尝试给substring函数提供1个参数,以检查是否可以在xpath中应用该函数,然后出现以下异常。

XPath:/INVOIC02/IDOC/EDI_DC40 [substring(SNDPRN)]

"/img/INVOIC02/IDOC/EDI_DC40 [substring(SNDPRN)]"; 消息:" javax.xml.transform.TransformerException:com.sun.org.apache.xpath.internal.functions.FuncSubstring仅允许2或3个参数-com.sun.org.apache.xpath.internal.functions.FuncSubstring仅允许 2或3个参数"

这意味着我们可以应用此子字符串函数,但不确定如何将xpath作为参数(在我的情况下为SNDPRN)传递给子字符串函数

注意:我不能在此处使用映射

请对此进行指导。

一如既往

纳吉什

rest-poc-xpath-with-substring.jpg (69.6 kB)
6条回答
路亽曱_Ryan
2020-09-08 04:34

嗨,

关于REST的一件奇怪的事情是,在RECEIVER适配器中,它需要接收方有效负载而不是发送方有效负载,因此请映射 SNDPRN到接收器结构中的一个字段,然后执行xpath。 或转到适配器特定属性(ASMA)。
https: //blogs.sap.com/2014/12/18/pi-rest-adapter-using-dynamic-attributes/

致谢,

Vikas

一周热门 更多>