SSIS困境:多个站点上的相同SharePoint列表的动态OData连接

时间:2014-06-10 18:27:15

标签: sharepoint ssis odata

使用OData SharePoint列表源和动态更改的连接字符串(在OData连接管理器中)时出现问题。我的数据流任务内部的OData源无法验证从父包执行DFT时出现错误消息“无法从运行时连接管理器获取受管连接”。

我做了一些广泛的谷歌搜索,无情地梳理了论坛;但是,我还没有找到任何似乎能解决这个问题的方法。任何寻求解决方案的帮助都将不胜感激!

以下是主要SSIS包的一般流程:

  1. 截断登台表
  2. 从SQL表中获取所有网站集URL及其GUID
  3. 为每个网站集执行包任务(foreach ADO循环容器)
    1. 从UserInformationList(OData源)
    2. 中提取数据
    3. 为此网站集的GUID添加列
    4. 将数据加载到临时表
  4. 等。 。
  5. 主要包装: SSIS Main Package Control Flow

    儿童套餐控制流程: SSIS UserInformationList Package Control Flow

    E-L UserInformationList DFT: SSIS UserInformationList Data Flow Task

    包含错误消息的输出: SSIS Package Output Containing Error Message

    在测试整个解决方案时,当OData源在验证期间失败时,所有内容(任务,参数,变量等)都会正常运行,直到3.1(见上文)。更改源和连接管理器的唯一方面是连接管理器的URL和ConnectionString;我在每个站点上访问的特定SharePoint列表永远不会更改。当解决方案进入子包时,在进入DFT之前,会正确设置Connection Manager的URL和ConnectionString。

    通过执行包任务测试子包时,使用硬编码的参数值,子包无法验证。

    仅测试子包时,没有错误,列表信息按预期存储在数据库中。但是,通过单独测试,OData连接管理器使用包参数的默认值。

    到目前为止我尝试过的事情:

    • DelayValidation设为True
    • 将调试运行时间从64位更改为32位(并再次返回)
    • 使用集合指定列表(在OData源代码编辑器中)
    • 使用资源路径指定列表(在OData源代码编辑器中)
    • 将子包作为Farm Admin执行
    • 以农场管理员身份运行解决方案

    其他信息:

    • SharePoint 2013
    • 2012年Visual Studios数据工具
    • Microsoft的OData SQL Server 2012来源

3 个答案:

答案 0 :(得分:0)

我认为您无法访问源共享点,或者您没有传递正确的凭据,这就是您收到此错误的原因。请使用有效连接并测试您的连接。

答案 1 :(得分:0)

当我从数据库中读取OData源的URL时,我遇到了同样的问题。在我的情况下,我传递了旧的URL值,该值在SharePoint端已更改,即数据库的URL值为http://sharepointsite/News但实际站点已由用户修改为http://sharepointsite/NewsUpdated 因此,请检查您的案例中的传递URL值,以防您仍然遇到此问题

答案 2 :(得分:0)

我遇到了同样的问题,看起来在启动循环容器时,您需要为URL变量提供一个有效值,否则它将被这种方式覆盖,但是如果我愿意“ 0”或null我将得到与您相同的错误