BizTalk Orchestration execute Flat file disassembler ReceivePipeline
2024-09-22 11:48:55
需求是这样,在一个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));
}
}
最新文章
- C++多态(二)——函数重载(overloading)和操作符重载
- css知多少(5)——选择器
- Android中的IOC框架,完全注解方式就可以进行UI绑定和事件绑定
- Functions
- JS常用的设计模式(8)——访问者模式
- 视频流服务器配置[windows平台][转]
- DATASNAP倒底能承受多大的负载能力
- Android Environment 判断sd卡是否挂载 获取sd卡目录
- register_globals(全局变量注册开关)
- 在android中,如何去掉webview读取网页后点击网页上的按钮出现的方框
- vue cli 3.x的history 和 hash模式切换的问题
- java实现字符串和LIST,MAP转换
- Ubuntu: 软件库(software repositories)
- Node——服务器上安装Node.js
- 解决WPF中异常导致的程序Crash
- UML和模式应用4:初始阶段(3)--需求制品之用例模型
- 模板 图的遍历 bfs+dfs 图的最短路径 Floyed+Dijkstra
- 170301、使用Spring AOP实现MySQL数据库读写分离案例分析
- electron快速开始
- 成为Java高手的25个学习目标