关闭

发布一个biztalk 解析Excel文件到xml消息的管道组件

标签: excelxmlchmfileqq
941人阅读 评论(0) 收藏 举报
分类:

pipeline component主要功能是通过ODBCexcel驱动把excel文件转成xml的消息。

excel文件可以是biztalk通过从各种适配器获得,比如从fileftpmsmqhttp等等适配器获得excel文件的数据,excel文件的数据通过适配器进入到接收管道后,此组件在接收管道中处理excel文件的数据并转换成xml格式。

比如,可以从下面这样的excel文件:


 

转换成这样的xml格式:

<ns0:employees xmlns:ns0="http://chnking">

  <contact>

    <ContactID>1</ContactID>

    <FirstName>Gustavo</FirstName>

    <LastName>Achong</LastName>

    <EmailAddress>gustavo0@adventure-works.com</EmailAddress>

    <Phone>398-555-0132</Phone>

  </contact>

  <contact>

    <ContactID>2</ContactID>

    <FirstName>Catherine</FirstName>

    <LastName>Abel</LastName>

    <EmailAddress>catherine0@adventure-works.com</EmailAddress>

    <Phone>747-555-0171</Phone>

  </contact>

</ns0:employees>

  

安装

ExcelPipelineComponentSetup.msi文件,直接安装。安装有两个条件:

l         系统安装有framework2.0,如果没有,安装程序提示系统没有安装framework2.0,退出安装。

l         系统安装有biztalk 2006,如果没有安装biztalk 2006,安装程序会提示,退出安装。

安装好后,在程序中生成一个biztalk Excel decoder component程序组,其中有个chm帮助文件,使用方法请看帮助。

   
安装文件下载:/Files/chnking/ExcelPipelineComponentSetup.rar

存在问题

在设计环境中设置此组件的各个属性,部署后使用正常。

但是如果部署后,在biztalk administrator console中使用此组件的管道中修改了组件的任意属性,则会出现问题。

问题表现为组件的预设属性在运行时可能会读不到,有些属性的值变为空,可能导致管道执行失败。再把属性值改回到默认值也已经不起作用。这时只能修改使用这个管道的接收位置的属性,把使用这个管道的接收位置的接收管道改为其它管道,然后关闭。之后再重新打开,把管道再改回到要使用的管道。这样可以恢复到组件预设的属性。

暂时解决方案:

在开发环境中把组件的属性设置好,然后部署,在biztalk administrator console中不要修改此组件的属性。
   如果确实需要修改组件属性,在开发环境中修改,然后重新部署。

问题分析:

通过源码单步调试组件,发现部署后没有在biztalk administrator console中修改此组件的任何属性的情况下,组件实现的IPersistPropertyBag接口的Load方法(从环境中读取组件预设属性的方法)只执行一次。如果biztalk administrator console中修改此组件的任何属性后,IPersistPropertyBag接口的Load方法就会被执行两次,第一次从环境读取的属性正确,第二次再执行读属性就会有问题,有的属性没有读到。

奇怪的是,这时为什么Load方法会被执行两次。有朋友知道此问题的解决方法请告知,我的QQ362682

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:100455次
    • 积分:1692
    • 等级:
    • 排名:千里之外
    • 原创:59篇
    • 转载:0篇
    • 译文:1篇
    • 评论:45条
    文章分类