在Biztalk表达式编辑器中添加元素

时间:2016-11-30 20:09:33

标签: biztalk

我有一个发送电子邮件的编排,我试图写出包含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 - 采购订单变更通知:(买方名称)+(买方城市)+(买方国家)

1 个答案:

答案 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;