【问题标题】:How to construct message for WCF request message in Biztalk 2010如何在 Biztalk 2010 中为 WCF 请求消息构造消息
【发布时间】:2011-11-12 06:59:45
【问题描述】:

我是 BizTalk 新手,谁能帮我在 BizTalk 2010 中解决以下场景?

在 BizTalk 编排中,需要将消息 (xml) 作为参数发送到 WCF 服务;该服务将返回一条消息作为结果。如下图所示。

我的问题和疑问是如何构造“SimRequest”消息,这是 WCF 自动生成的消息部分(当我使用“添加生成的项目”来消费 WCF 时),另一个消息部分是“SimResponse”。

这是我对消息分配形状的表达:

varIncomingMessage = msgPI;

varStringParam = varIncomingMessage.OuterXml;
varOutMessage.LoadXml("I dont know what should be put here. Hard code the data schema of the SimRequest Message?");
msgSimRequest.parameters = varOutMessage;
msgSimRequest.parameters.msg = varStringParam;

如果我的问题不清楚或者您需要我提供更多信息,请告诉我。提前致谢。

扎兰

【问题讨论】:

    标签: wcf biztalk


    【解决方案1】:

    在 BizTalk 中,您可以构建一个消息实例:

    1. 使用转换(理想方式),这意味着创建地图。当在您的构造形状内执行转换时,它将创建消息的一个实例,或者
    2. 通过在与您在上面的示例中执行此操作类似的分配中构造它,除了使用静态辅助方法可能更容易执行此操作。如果您需要将 Biztalk 消息作为参数传递给该方法,请使用 Microsoft.XLANGs.BaseTypes 库中的 XLANGMessage 类型。您首先需要生成消息架构的 .net 表示(使用 xsd.exe 或 svcutil.exe),以便您可以使用 XLANGPart.RetrieveAs(typeOf(xxx)) 反序列化消息。要将消息传递出去,您可以让 .net 方法返回 XmlDocument 类型,只要 XML 映射到消息架构,BizTalk 就会为您处理转换。

    希望这会有所帮助。

    你能告诉我更多关于如何在 作业

    它与您所拥有的类似,只是您使用 XmlDocument 类型,并且 BizTalk 将为您执行隐式转换。

    假设您有一个名为 SimRequest.xsd 的架构,并且您创建了一个名为 MySimRequestMessage 的此类编排消息。

    您需要定义一个System.Xml.XmlDocument 类型的变量来保存XML,我们称之为xmlDocSimRequest。

    然后在你的作业形状中:

    xmlDocSimRequest = new System.Xml.XmlDocument();
    xmlDocSimRequest.LoadXml("<SimRequest xmlns='http://blahblah'>...some data here</SimRequest>");
    
    // Cast to your message - it's as simple as
    MySimRequestMessage = xmlDocSimRequest;
    

    要生成 XML,您可以在 Visual Studio 中右键单击架构文件并选择“生成实例”,这将为您生成一个可以作为起点的基本 XML 文件。注意:要使用上述方法,您需要将您使用的 XML 中的所有双引号替换为单引号。

    【讨论】:

    • 嗨休,感谢您的快速回复。你能告诉我更多关于如何在作业中构造味精的细节吗?我上面的表达不起作用......(我在代码中留下了我的问题:)
    • 如果选择transform,如何将整个输入消息(xml)转换为输出消息的字段(元素)值?
    • 关于您的映射问题 - 您有两个选择,使用 biztalk 中的映射工具或编写您自己的 XSL 转换。我更喜欢最后一个。
    • 我为您扩展了上面的答案。顺便说一句@zalan,您应该养成将人们的回答标记为答案的习惯。这是正确和礼貌的做法。
    • "要生成 xml,您可以在 Visual Studio 中右键单击您的架构文件并选择“生成实例”,这将为您生成一个可以作为起点的基本 xml 文件。"这正是我正在寻找的答案。如果我的问题不够清楚,我很抱歉。我现在已将您的回复标记为答案。谢谢。 '
    猜你喜欢
    • 2012-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多