1

免责声明:我是一个完整的 biztalk 新手。

我需要能够阅读并可能编辑 biztalk 消息中的 4 个节点;最好这需要从 ac# helper 类中完成,因为我正在进行服务调用并且还为此编写了单元测试。

我已经连接了这个类,它可以与 XLANGMessage 类一起使用,我遇到的问题是在编排中的这一点,消息是基于模式的类型,我似乎没有任何方法可以修改它。

我做了一些阅读并找到了一些想法,但无法确认其中任何一个是否可以从自定义代码中工作。

4

3 回答 3

1

1 编写一个映射来将传入的消息转换为所需的类型

或者

2 在你的帮助组件中写这样的东西来转换消息

公共 XmlDocument TransformMessage(XLANGMessage 消息)

然后将结果文档传递给消息分配形状中的 biztalk 消息。

响应消息 = xmlDocument;

如果您传递流而不是消息,您可能会获得更好的性能。

于 2013-03-18T19:09:46.073 回答
0

您可以轻松地将消息传入和传出 C# 助手类。最简单的方法是将输入参数和返回值视为 System.Xml.XmlDocument 类型。XLANG/s 引擎将安全地从 XLANGMessage 类型来回转换为 XmlDocument。

由于您实际上是在创建消息的“新”实例(消息在 BizTalk 中是不可变的),因此需要在消息分配形状中执行对帮助程序类的调用,外部构造形状构造原始消息的副本。

public static XmlDocument UpdateMyMessage(XmlDocument sourceMessage)
{
  /* Do stuff to your Message here */

  return sourceMessage;
}

要考虑的最佳实践是将所有 C# 辅助方法声明为静态。这将避免在脱水期间对助手类进行反序列化/序列化的任何问题。

于 2013-03-19T22:12:09.240 回答
0

BizTalk 消息是不可变的吗?

然而,一般来说,通过创建“纠正”编排并在传入消息参数上使用按引用传递选项,可以修改现有消息。

于 2015-07-22T17:39:33.503 回答