我有一个发送电子邮件的编排,我试图写出包含XML节点的电子邮件。我想在主题中写下以下内容: EDI 860 - PO变更通知:(买方名称),(买方城市),(买方国家)
这就是我在表达式中写的:
emailSubject = "EDI 860 - PO Change Notification:"+"/*[local-name()='Name' and namespace-uri()='']/*[local-name()='buyer_name' and namespace-uri()='']"+"/*[local-name()='Name' and namespace-uri()='']/*[local-name()='city' and namespace-uri()='']"+"/*[local-name()='Name' and namespace-uri()='']/*[local-name()='state' and namespace-uri()='']";
这是对的吗?我对业务流程和编写表达式都很陌生。我在写作时没有遇到任何错误,它似乎是有效的语言,但我没有测试环境来尝试它。我担心电子邮件目前会出现如下:
EDI 860 - 采购订单变更通知:(买方名称)+(买方城市)+(买方国家)
答案 0 :(得分:1)
首先。获取测试环境或至少在开发环境中测试它。你不应该发布任何未经过测试的东西。
不,它不会那样,请参阅Using XPaths in Message Assignment
它必须看起来像下面你也告诉它它是一个xpath并具有消息的名称(msg)
myString = xpath(msg, "string(/*/book[1]/title)");
即使它有效,它看起来就像第二个例子,因为你没有在字符串连接中添加逗号。
此外,您可能希望查看在架构中使用可分辨字段,而不是尝试使用XPath。这将使您更容易引用有效负载中的元素,并使开发人员更容易阅读(它仍然使用XPaths)。
要使用尊贵字段,您只需参阅消息名称&字段名称
e.g。
emailSubject = "EDI 860 - PO Change Notification:"+ msg.Name.buyer_name + "," + msg.Name.city + "," + msg.Name.state;