Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从自定义代码修改Biztalk消息_Biztalk - Fatal编程技术网

从自定义代码修改Biztalk消息

从自定义代码修改Biztalk消息,biztalk,Biztalk,免责声明:我完全是biztalk新手 我需要能够读取并可能编辑biztalk消息中的4个节点;最好是在我进行服务调用时从c#helper类完成,并且为此编写单元测试 我已经将这个类连接起来,它与XLANGMessage类一起工作,我遇到的问题是在编排中的这一点上,消息是基于模式的类型,似乎没有任何方法可以修改它 我读了一些书,找到了一些想法,但还不能确定这些想法是否可以从自定义代码中使用。1编写一个映射,将传入的消息转换为所需的类型 或 2在助手组件中编写类似的内容来转换消息 公共XML文档转换

免责声明:我完全是biztalk新手

我需要能够读取并可能编辑biztalk消息中的4个节点;最好是在我进行服务调用时从c#helper类完成,并且为此编写单元测试

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


我读了一些书,找到了一些想法,但还不能确定这些想法是否可以从自定义代码中使用。

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

2在助手组件中编写类似的内容来转换消息

公共XML文档转换消息(XLANGMessage消息)

然后将结果文档以形状形式传递给biztalk消息

responseMessage=xmlDocument


如果你愿意,你可能会有更好的表现

1编写映射以将传入消息转换为所需类型

2在助手组件中编写类似的内容来转换消息

公共XML文档转换消息(XLANGMessage消息)

然后将结果文档以形状形式传递给biztalk消息

responseMessage=xmlDocument


如果你愿意,你可能会有更好的表现

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

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

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

  return sourceMessage;
}

最好考虑的是将所有的C辅助方法声明为静态的。这将避免在脱水过程中取消/序列化助手类时出现任何问题。

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

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

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

  return sourceMessage;
}

最好考虑的是将所有的C辅助方法声明为静态的。这将避免在脱水过程中取消/序列化助手类时出现任何问题。

BizTalk消息是不可变的吗


但是,一般来说,通过创建“更正”业务流程并在传入消息参数上使用“按引用传递”选项,可以修改现有消息。

BizTalk消息是不可变的吗


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

感谢您澄清引擎处理XLANGMessage和XmlDocument之间的转换,我将能够清理代码,我已经非常清楚这一点。最后,我丢失了消息分配形状。有没有可能在不使用通用XmlDocument类型的情况下保持这种方法的便利性来假装可变性?我需要先使用映射构造一条消息,然后修改循环中的节点。感谢您澄清引擎处理XLANGMessage和XmlDocument之间的转换,我将能够很好地清理代码。最后,我丢失了消息分配形状。有没有可能在不使用通用XmlDocument类型的情况下保持这种方法的便利性来假装可变性?我需要首先使用映射构造消息,然后修改循环中的节点。