BizTalk Orchestration execute Flat file disassembler ReceivePipeline

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

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

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。找了我好久

[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));
       }
   }

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏编程

用户输入input&int

1、input():让程序暂停,等待用户输入一些文本,获取用户输入后再执行下一行代码,例如: car = input("请问你需要租什么样的车:") print...

2040
来自专栏大内老A

ASP.NET MVC的Model元数据提供机制的实现

在前面的介绍中我们已经提到过表示Model元数据的ModelMetadata对象最终是通过一个名为ModelMetadataProvider的组件提供的,接下来...

2176
来自专栏marsggbo

python多线程学习笔记(超详细)

python threading 多线程 一. Threading简介 首先看下面的没有用Threading的程序 import threading,time ...

2188
来自专栏大内老A

ASP.NET MVC下基于异常处理的完整解决方案

EntLib的异常处理应用块(Exception Handling Application Block)是一个不错的异常处理框架,它使我们可以采用配置的方式来定...

1946
来自专栏猿份到

LeakCanary源码浅析

在Android开发中最让人们头疼的就是内存泄漏了,今天来介绍一个查看内存是否泄漏的工具LeakCanary,并通过研究源码明白它是如何分析和查找存在泄漏信息的...

3505
来自专栏大内老A

一个简易版的T4代码生成"框架"

对于企业开发来说,代码生成在某种意义上可以极大地提高开发效率和质量。在众多代码生成方案来说,T4是一个不错的选择,今天花了点时间写了一个简易版本的T4代码生成的...

2157
来自专栏技术博客

Asp.Net Web API 2第十六课——Parameter Binding in ASP.NET Web API(参数绑定)

阅读本文之前,您也可以到Asp.Net Web API 2 系列导航进行查看 http://www.cnblogs.com/aehyok/p/3446289.h...

953
来自专栏张戈的专栏

Linux运维基础技能: 脚本编程与Linux命令

本系列文章一共三篇,分别为《脚本编程与 Linux 命令》、《接入层与网络基础》和《 MySQL 与 SQL 优化》,由腾讯高级工程师 luaruan(阮永顺)...

2002
来自专栏屈定‘s Blog

设计模式--动态代理的思考

在一些第三方框架中经常能看到动态代理的案例,尤其是RPC框架,ORM框架等,该篇将分析这些实现的原理,另外延伸在业务中的使用示例.

1313
来自专栏Danny的专栏

探秘BOF 和EOF

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/huyuyang6688/article/...

1153

扫码关注云+社区

领取腾讯云代金券