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