在SQL Server 集成服务中使用开源SharePoint List组件对SharePoint列表进行ETL操作!

        通过SharePoint编程方式可以实现非常强大的功能,但同时也会增加工作量,影响生产效率,有没有更简单的方式进行快速开发和部署呢?答案是肯定的,本文利用了开源Sharepoint List组件在SSIS中进行ETL,通过进行相关的配置和设置就可以实现Sharepoint列表到数据库,此插件SharePoint List Source and Destination的下载网址:http://sqlsrvintegrationsrv.codeplex.com/releases/view/17652 ,注意有两个版本,请对应SSIS的安装版本,如下图:

    

      安装成功后会在SSIS数据流中控制流项中出现,如下图:

       

       有以下的应用场景:例如项目合同的付款信息是以Sharepoint的列表形式由各个项目经理维护的,但权限是严格控制的,本人只能维护和查看自己的项目合同付款信息。通过在列表中建立各个项目的文件夹就可以对权限进行严格控制(具体项目合同付款信息在此文件夹下维护),但同时进行数据馈送的方式进行报表开发的时候,列表中会带有文件夹的数据行,而且不能进行过滤,会有“脏数据”,数据馈送的方式开发报表请参考本博的《自助式微软BI工具PowerPivot入门篇(二)!》,因此考虑通过Sharepoint列表同步的方式,过滤“脏数据”,Sharepoint列表编程实现方式请参考本博的《使用SQL Server 集成服务中结合SharePoint的客户端模型进行SharePoint列表的同步实践!》,本文主要介绍通过SharePoint List Source and Destination组件的实现方式。

        在列表文件夹权限设置可以在“项目权限”授权,如下图:

           如果无法在列表中创建文件夹,则需要在列表设置的高级设置中设置,如下图:       

           首先为sharepooint登录账户(该开源组件需要使用的身份账号),建立个人视图,并设置相应的筛选条件,目的就是为了取列表所有项目信息(不包括文件夹),如下图: 

   

       

  

    设置完“test”列表视图后,显示如下图:

    

          点击“张三”文件夹后显示,如下图:

         

         其次在SSIS中进行操作,填一个开源组件的Sharepoint连接器,如下图:

        

          在Sharepoint连接器中,设置Sharepoint的身份验证,如下图:

         

          在数据流的控制流项中添加一个Sharepoint List Source,如下图:

         

          在Sharepoint List Source中,选择添加的Sharepoint 连接器,如下图:

         

             其中SiteListViewName就是上面设置的列表个人视图,IsRecursive为真就是要获取列表文件夹的项目信息,具体设置如下图:

            

            

            

             最后,添加一个ADO NET Destination(也可以添加其他的目标数据源),如下图:

            

             

         

           进行列映射配置,如下图:

          

           在数据库中的自定义列表的查询结果如下图:

          

           如果以上的操作就完成ETL,根据具体需求,可以开发配置更为强大的功能。

本博客为软件人生原创,欢迎转载,转载请标明出处:http://www.cnblogs.com/nbpowerboy/archive/2013/04/17/3026944.html。演绎或用于商业目的,但是必须保留本文的署名软件人生(包含链接)。如您有任何疑问或者授权方面的协商,请给我留言。
原文地址:https://www.cnblogs.com/nbpowerboy/p/3026944.html