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


     

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

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

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

    比如,可以从下面这样的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帮助文件,使用方法请看帮助。

        
    使用时看起来像这样:


     

    存在问题

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

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

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

    暂时解决方案:

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

    问题分析:

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

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

        问题最新进展:
       
        经过测试,在使用中设计管道(btp)时,不要设置Excel组件属性的任何默认值,保持所有属性为空,在部署后就可保持正常修改Excel组件的属性。

  • 相关阅读:
    一个浏览器循环刷新网页的例子
    Ajax和JSON基础
    HTML-第三章构建模块小结
    HTML-元素属性
    入前端坑的第一天
    JZOJ 【2021.11.10NOIP提高组联考】
    LG P2633 Count on a tree
    JZOJ 7339.改试卷
    [CEOI2017] Building Bridges
    拉格朗日插值法
  • 原文地址:https://www.cnblogs.com/chnking/p/910982.html
Copyright © 2020-2023  润新知