如何通过与BiztalkAdministrationConsole中的FileReceiveName同名的发送端口发送文件?

时间:2018-06-15 08:38:31

标签: biztalk

我收到一封附有附件的电子邮件。

我通过接收位置检索电子邮件。

通过管道检索附件。

然后我有一个消息来自管道的发送端口。

我希望发送端口发布文件与附件中文件的名称相同。

我读到在发送端口配置中设置文件名时必须使用宏%SourceFileName%。

我试过了,但是文件名字面上是%SourceFileName%。

我停止了发送端口以检查FileReceivedName是什么,这就是我想要的。 Message with Send Port stopped

这些是发送端口配置。 Send Port Configurations

我重新启动发送端口后发布的文件。 Result of File published

3 个答案:

答案 0 :(得分:0)

$fasm boot.asm $qemu-system-x86_64 -drive format=raw,media=disk,if=floppy,file=./boot.bin floppy.img消息上下文属性的宏,通常由FILE或FTP适配器添加到消息上下文中,但不是SMTP。您可以在业务流程或接收管道中自己设置此属性,然后您就可以在发送端口上使用%SourceFileName%宏。

答案 1 :(得分:0)

您可以在管道中提升上下文属性(特别是ReceivedFileName),并使用宏来获取此属性,就像您对ReceivedFileName所做的那样。看一下 thread

答案 2 :(得分:0)

从mime-properties获取附件文件名,并在发送过程中提升ReceivedFileName属性以获取%SourceFileName%。

  public IBaseMessage Execute(IPipelineContext pContext, IBaseMessage pInMsg) {

        IBaseMessagePart bodyPart = pInMsg.BodyPart;          

        if (bodyPart != null)
        {
            string fileName = (string)pInMsg.Context.Read("ReceivedFileName", "http://schemas.microsoft.com/BizTalk/2003/file-properties");
            fileName = fileName.Substring(fileName.LastIndexOf("\\") + 1);
            pInMsg.BodyPart.PartProperties.Write("FileName", "http://schemas.microsoft.com/BizTalk/2003/mime-properties", fileName);                
        }

        return pInMsg;}