邀朋友种豆,一起分享吧
喜欢购买正品行货?那就去品牌街

如何在SSIS中读取 SharePoint List

来自:种豆 时间:2018-01-01 阅读:7816次 原文链接

前言

由于项目需要, 我们会从SharePoint 上读取一些配置数据, 同时也有可能执行一些回写操作去更新SharePoint 的数据. 之前没有做过这样的操作, 有的也应该是通过 C# 编程去获取或者写入一些数据. 查阅了一些相关的文章, 自己也动手测试了一下如何在 SSIS Package 中访问SharePoint List 并将数据写入 SharePoint List.

两个操作

读取SharePoint List 的数据到数据库

从数据库中筛选一些数据然后插入到一个新的 SharePoint List 中

这些操作不涉及到任何SharePoint 能够实现的功能, 仅仅只是演示如何通过 SSIS 来完成这些操作, 也无关这个读写逻辑是否合理了.

步骤一 – 安装 SharePoint List Source and Destination

由于SSIS 是没有SharePoint 操作的控件的, 但是目前已经有比较成型的第三方工具可以使用.

到 CodePlex 中去下载这个控件 http://sqlsrvintegrationsrv.codeplex.com/releases/view/17652

                   

我目前的测试环境是 VS 2008, 我下载的是第一个, 应该也能兼容到 VS 2010. 如果是 2012 版本, 应该可以使用第二个 2012 的 Beta 版本. 其安装和操作的过程大同小异.

下载之后安装, 然后打开 VS 2008 , 在项目中 Data Flow Source 工具栏或者其他工具拦点击右键选择 Choose Items 后就会出现这个界面.

如果是VS 2010 或者 VS 2012 有可能不需要我们手动的添加这两个控件, 也有可能连 SSIS Data Flow Items 可能都找不到. 那么很有可能就是在安装的同时, 这两个控件就已经自动的添加到 Data Flow 的工具箱了.

VS 2008 还是这样来选择一下, 然后就能在工具箱看到这两个控件了, 一个是Source, 一个是Target.

默认情况下它们会出现在 General 下面

你可以按照分类把 SharePoint List Source 拖放到 Data Flow Sources 和 Data Flow Destinations 中

这样第一步配置和安装的过程就算是完成了.

步骤二 –  读取 SharePoint List 的数据到数据库表

这里有一个List – Area Code, 现在我们要把这个List 中的 Area Code, Region, Timezone Offset 还有 Description的内容读取到数据库中.

在设计 SSIS 的阶段也可以根据数据源的数据来创建表, 但是最好根据实际需求先创建好表, 结构如下

USE BIWork
GO
    
IF OBJECT_ID('dbo.Area_Code','U') IS NOT NULL
DROP TABLE dbo.Area_Code
GO
    
CREATE TABLE dbo.Area_Code
(
      ACID INT PRIMARY KEY IDENTITY(1,1),
      AreaCode NVARCHAR(10) NOT NULL,
      Region NVARCHAR(10),
      TimeOffset NVARCHAR(10),
      Descript NTEXT
)

创建 SSIS 项目和Package 包, 并在 Control Flow 中添加一个Data Flow, 命名为 Extract SharePoint List

在这个Data Flow 中, 添加 SharePoint List Source

在编辑SharePoint List Source 之前先要创建一个 SharePoint Connection Manager. 注意 – 不同的版本可能有一些区别, 有的版本不需要 Connection Manager , 没有这一项.

在 Connection Manager 中 New Connection 选择 SPCRED就可以了.

顺便把数据库的 Connection Manager 都创建好, 创建完的结果应该是

一个是 BIWORK 数据库的连接, 另外两个都是SharePoint 的连接, 后面都会用到.

下面就要对 SharePoint List Source 进行编辑

在 SharePoint List Source 的Connection Manager 中选择好刚创建的连接.

Component Properties 中 有几个地方要注意

由于在 SharePoint 中访问List 的URL 是http://biwork/Lists/Area%20Code/AllItems.aspx

因此在填写 SiteURL 的时候就只应该填写 Lists 之前的部分http://biwork

在 SiteListName 中填写上需要访问的List 名称, 在这里我们访问的是 Area Code.

不需要的Column 直接删除掉, 只保留需要的Column, 这样可以提高效率.

就点击保存, 那么这样 SharePoint List Source 配置就完成了.

添加一个 OLE DB Destination

查看本栏目:database/SQLServer/

Mapping 的选择

保存后执行Package并查询数据库结果

Description 中有其它的 HTML 标签, 应该是在设置 SharePoint List 的时候 Description Column 的类型是 Multiple line of Text 因此对应的数据库 Descript 类型也是 NTEXT 的, 其它单行的数据就没有出现HTML 标签.

步骤三 – 将数据库中的数据导入到新的SharePoint List

创建一个新的List, 并查询数据库中 Time Offset 为-5的数据插入到这个新的List 中 – New Area

创建 Data Flow Task 并且在 OLE DB Source 中使用查询语句筛选出 Time Offset 为 -5 的数据

SELECT AreaCode,       RegionFROM dbo.Area_CodeWHERE TimeOffset =-5

创建 SharePoint List Destination

Component Properties 配置

SiteListName – New Area

SiteURL – http://biwork

Input Column 中应该要刷新一下才能看到 Mapping 信息

Insert Into SharePoint List Data Flow

执行Package 包

检查 SharePoint List  - New Area 添加成功

这样就完成对 SharePoint List 的读取和写入操作了.

 
关于种豆 ┊ 联系我们 ┊ 免责声明 ┊ 发帖须知 ┊ 请提意见 ┊ 站点地图
本站为个人爱好兴趣分享网站,不代表本人观点,如有侵权请联系QQ3033380280进行处理
sowsoy.com 版权所有 Copyright©2010-2021 备案号:蜀ICP备2020025376号-3
Email:sowsoy#hotmail.com