【IT168技术文档】
针对使用动态端口输出文件一文,fred提出如何避免文件被覆盖,以及如何使用xml某个数据项作为文件名的一部分。本文简单介绍如何实现。
一、创建一个空的Biztalk Server项目DynamicOutFile,设置程序集密钥文件。
二、创建一个简单的架构文件SimpleSchema.xsd,用来设置消息的类型。升级UserID节点,如图所示。 
三、并使用架构文件生成一个test.xml文件,用来进行测试。
四、创建一个业务流程,添加一个业务流程,为该流程添加InMsg和OutMsg消息,其类型均为OutFileName.SimpleSchema。
五、为业务流程添加一个接收消息操作ReceiveMsg、一个消息赋值AssignOutMsg以及一个发送消息操作SendMsg。连同消息赋值一起产生的构造消息,设置名称为ConstructOutMsg,设置构造的消息为OutMsg。
六、为业务流程添加一个InPort端口,使用Microsoft.BizTalk.DefaultPipelines.XMLReceive管道从C:\In文件夹下接收*.*文件。
七、为业务流程添加一个OutPort端口,使用Microsoft.BizTalk.DefaultPipelines.XMLTransmit管道,动态输出文件。
八、设置AssignOutMsg的表达式为:
OutMsg=InMsg;
OutMsg(FILE.CopyMode)=0;
OutPort(Microsoft.XLANGs.BaseTypes.Address)=@"file://c:\out\" +
System.DateTime.Now.ToString("yyyyMMdd") + "_" +
InMsg(DynamicOutFile.UserID) + ".xml";
九、将InPort端口与ReceiveMsg相连接,将OutPort端口与SendMsg相连接,设置ReceiveMsg的激活为Ture。 
十、编译并布署项目,将test.xml放入c:\in文件夹下面,进行测试.