0

我在 biztalk 中传递一条消息,导致以下挂起消息:

内部异常:根据消息部分数据评估可区分字段 MessageStatus 时发生故障。消息部分数据至少不包含由 XPath 表达式(如下所列)指定的对应于可区分字段的节点之一。出现这个错误的原因可能是消息部分数据没有初始化或者消息部分数据不符合消息

在我的编排中,我使用了一个映射,该映射将一个名为 textID 的 ID 映射到我构造的消息“MessageAttempt”中的 textID 字段。我还有一个名为 MessageStatus 的字段,其值设置为“Nothing”,不要与 .

在我的地图之后,我使用消息分配形状将 MessageAttempt.MessageStatus 元素设置为“已尝试”,代码如下:

Message_MessageAttempt.MessageStatus = var_Attempt;

我整天都在想办法解决这个问题。我在编排的不同分支上有一个类似的 ConstructedMessage/Transform/Assignment 形状,设置相同并且工作正常。我不确定我可能会错过什么。

4

1 回答 1

1

XPath 函数找不到元素。这有两个可能的原因。

  1. 该元素不存在。如果它不存在,则必须先创建它。您可以在地图中通过将其 value 属性设置为<empty>或使用空的 String Concatenate functoid 并将其输出到该节点来执行此操作。
    您应该能够通过进入群组中心、打开挂起的消息并查看消息部分来验证这一点。您会发现它不包含 XPath 引用的节点。

  2. 消息中的命名空间没有正确限定。如果您不为消息使用名称空间前缀而仅依赖默认/空 xmlns,则编排中的 XPath 会遇到问题。

于 2015-03-21T12:34:21.860 回答