Biztalk 开发之 使用xml数据项构造输出文件路径【转】

 针对使用动态端口输出文件一文,fred提出如何避免文件被覆盖,以及如何使用xml某个数据项作为文件名的一部分。本文简单介绍如何实现。

    一、创建一个空的Biztalk Server项目DynamicOutFile,设置程序集密钥文件。关于设置程序集密钥文件请参考文献1。

    二、创建一个简单的架构文件SimpleSchema.xsd,用来设置消息的类型。升级UserID节点,如图所示。

  

    三、并使用架构文件生成一个test.xml文件,用来进行测试。关于创建架构,请参考文献2;关于架构文件生成实例文件,请参考文献3;

    四、创建一个业务流程,添加一个业务流程,为该流程添加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文件夹下面,进行测试.

--------------------------------------------------------------------------------

    参考文献:

    文献1 Biztalk 排错之 需要强名称程序集 http://blog.csdn.net/fengfangfang/archive/2006/07/11/904725.aspx
    文献2 Biztalk 开发之 如何快速创建架构 http://blog.csdn.net/fengfangfang/archive/2006/07/04/874252.aspx
    文献3 架构和实例的验证  http://blog.csdn.net/fengfangfang/archive/2006/07/04/874477.aspx
    文献4 使用动态端口输出文件  http://blog.csdn.net/fengfangfang/archive/2006/08/02/1010087.aspx



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1040639


[收藏到我的网摘]   [发送Trackback]  fengfangfang发表于 2006年08月09日 09:44:00




特别推荐: 关闭

评论

#   jhtchina 发表于2006-11-18 21:41:00  IP: 210.22.108.*
InMsg(DynamicOutFile.UserID)
这句话是什么意思?
我不清楚,帮我讲解一下,谢谢

#   jhtchina 发表于2006-11-18 21:41:00  IP: 210.22.108.*
InMsg(DynamicOutFile.UserID)
这句话是什么意思?
我不清楚,帮我讲解一下,谢谢

#   fengfangfang 发表于2006-11-20 12:19:00  IP: 218.249.44.*
InMsg是指传进去的消息实例

DynamicOutFile.UserID是工程名称和升级的UserID结点, 通过这种方式来进行调用时,DynamicOutFile.UserID相当于消息InMsg的一个属性,InMsg(DynamicOutFile.UserID) 便相当于是获取了该消息的UserID属性值

#   jingqiu5 发表于2006-12-25 15:39:17  IP: 221.224.52.*
我正要学习Biztalk Server.谢谢您的文章.好好学习.
原文地址:https://www.cnblogs.com/cxd4321/p/898666.html