BizTalk Orchestration execute Flat file disassembler ReceivePipeline

需求是这样,在一个inbound XML中有个一点节点使用平文件的方式存放,还要解析比如固定长度或根据特殊字符截取字段

也就是需要在流程里面先把输入的XML的节点先读出来,这个方式有很多可以直接升级属性,或调用Xpath来获取,在流程里面调用执行receivepipeline的方法也非常简单。

 

1
2
3
4
5
6
7
8
9
10
fstr="1001078604000107860400060M1000269  100287128         CONN                ((PLT)) CONNECTOR                                                                                                                                               0000002500AM    14-00NO_PORDER      001SNK15167       6301519046        CN                1SNK15167-KFM      \r\n2001078604000107860400063M1000269  100293499         CAP                 CERAMIC CAPACITOR                                                                                                                                               0000010000AM    14-00NO_PORDER      001SNK15217       4200134227        CHN               1SNK15217-KFM      \r\n";
doc=new System.Xml.XmlDocument();
msgcrt.CreateMyMessage(doc,fstr);
 
 
vpipline = Microsoft.XLANGs.Pipeline.XLANGPipelineManager.ExecuteReceivePipeline
(typeof(BizTalkPipline.ReceiveFlilePipeline), doc );
Message_2 =null; //初始化输出消息。
vpipline .MoveNext(); //IElement的默认方法。
vpipline .GetCurrent(Message_2 );

  

  难的是怎么把string Convert XLangMessage。找了我好久

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
[Serializable]
   public class StringStreamFactory : Microsoft.XLANGs.BaseTypes.IStreamFactory
   {
       private string m_mystringdata;
 
       public StringStreamFactory(string stringdata)
       {
           m_mystringdata = stringdata;
       }
 
 
       public System.IO.Stream CreateStream()
       {
           return new System.IO.MemoryStream(System.Text.UTF8Encoding.UTF8.GetBytes(m_mystringdata));
       }
   }
 
   [Serializable]
   public class StringMessageCreator
   {
       public void CreateMyMessage(Microsoft.XLANGs.BaseTypes.XLANGMessage mydestmsg,string content)
       {
           mydestmsg[0].LoadFrom(new StringStreamFactory(content));
       }
   }

  

posted @   阿新  阅读(361)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
历史上的今天:
2008-08-06 XML Encryption in .Net
2006-08-06 解决Microsoft Visual Studio Code Name "Orcas" 不能安装的问题
点击右上角即可分享
微信分享提示