【问题标题】:Biztalk Distinguished field issueBiztalk 杰出领域问题
【发布时间】:2015-03-20 19:53:11
【问题描述】:

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

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

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

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

Message_MessageAttempt.MessageStatus = var_Attempt;

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

【问题讨论】:

  • 在您的编排中在构造之后放置一个断点,并查看消息的外观以及它是否具有 MessageStatus 节点以及它的父节点是什么。

标签: biztalk biztalk-mapper biztalk-orchestrations


【解决方案1】:

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

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

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

【讨论】:

  • 尽管必须区分 3 个字段,但最终还是以作业形式完成了所有工作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-26
  • 1970-01-01
相关资源
最近更新 更多