Biztalk:如何通过WCF自定义端口将msgbody中的文件名传递到存储过程

Biztalk:如何通过WCF自定义端口将msgbody中的文件名传递到存储过程,biztalk,biztalk-2010,Biztalk,Biztalk 2010,我的BizTalk应用程序具有文件传入端口和WCFCustom发送端口 WCFCustom发送端口正在调用存储过程,并通过指定模板属性将消息体作为xml参数传递到此存储过程,如下面的屏幕截图所示 消息正文由bts msg Body标记指定 问题: 1.是否有任何方法将文件名作为附加参数传递到存储过程中 2.是否有向存储过程发送多个参数的方法 第2条的答案是,是否可以将多个参数发送到存储过程中。 是的 <ns0:StoredProc xmlns:ns0="http://schemas.mic

我的BizTalk应用程序具有文件传入端口和WCFCustom发送端口

WCFCustom发送端口正在调用存储过程,并通过指定模板属性将消息体作为xml参数传递到此存储过程,如下面的屏幕截图所示

消息正文由bts msg Body标记指定

问题:

1.是否有任何方法将文件名作为附加参数传递到存储过程中

2.是否有向存储过程发送多个参数的方法


第2条的答案是,是否可以将多个参数发送到存储过程中。 是的

<ns0:StoredProc xmlns:ns0="http://schemas.microsoft.com/Sql/2008/05/Procedures/dbo">
<ns0:document>
<bts-msg-body xmlns="http://www.microsoft.com/schemas/bts2007" encoding="base64"/>
</ns0:document>
<ns0:documentname>
Test
</ns0:documentname>
</ns0:StoredProc>

试验
如何从MessageContext属性填充documentname,这是我无法理解的一点。也许其他人可以提出一个建议

  • 是的,有一个提升的属性
  • 是的,根据迪杰格拉夫的回答
  • 我的做法是:

    • 使用“使用适配器服务”BizTalk项目外接程序为存储过程生成架构,该架构可以包含多个参数的元素(示例),也可以手动创建一个
    • 编辑架构以指定包含文件名的元素升级为“”。这将导致XML汇编程序将该值从消息上下文复制到字段中
    • 创建一个映射,将传入消息作为CDATA复制到消息体元素中。将此映射添加到您的发送端口
    • 使用XMLTransmit管道从消息上下文填充文件名字段

    如果您的文件不是XML,您可能需要自定义管道组件而不是标准映射(我将使用SDK中的FixMsg示例)。

    我认为您希望它是一个仅用于消息传递的解决方案,而不使用BizTalk编排创建包含文件名和文件负载的XML消息?因为使用编排和XML消息很容易做到。我无法在模板中找到任何访问的上下文属性的方法,这是在不创建自定义管道组件的情况下使其仅作为消息工作所需的方法。是的,创建自定义管道组件是实现此目的的一种方法,但我很好奇是否可以在没有管道组件的情况下执行此操作。嘿,伯特,诀窍是,我不想将标记从消息映射到存储过程参数,因为我想将任何xml文件从文件端口传输到WCFCustom端口。存储过程将根据xml根名称检测文件类型并相应地执行操作。我想我应该尝试使用FixMsg组件。将其放在管道的开头,并将其设置为像
    和append
    ]>
    这样的前缀,以便它与存储过程的模式匹配。然后在组装阶段使用XMLAssembler,文件名将添加到参数中。