使用脚本组件作为来自多个Microsoft Dynamics CRM实施的数据源是否可行?

时间:2017-07-12 16:14:33

标签: c# rest ssis dynamics-crm dynamics-crm-online

我有一个Microsoft Dynamics CRM实施的动态登录名和密码列表。我正在创建一个SSIS作业,需要从这些组织中检索多个实体。目前,Kingswaysoft有一个用于Microsoft Dynamics CRM的SSIS集成工具包,用于检索数据。不幸的是,使用Kingswaysoft会导致至少60个 Dynamics CRM Source 组件,120个 Sort 组件和60个 Merge Joins 。这不仅需要永远创造,而且维护起来也很困难。我更愿意:

  1. 使用服务查询我需要的许多Dynamics CRM登录名和密码。这有利于在用户名/密码更改时工作而无需干预。
  2. 使用三个脚本组件。每个都从所有组织中检索一种实体类型的所有数据。
  3. 使用该数据做更多与问题无关的事情。
  4. 这是一种可行的方法吗? 我需要哪些工具才能实现这一目标? (O365 sdk / restful queries / etc)

    如果这仅适用于Dynamics 365 Online,那没关系。

    下面是我需要为每个组织的数据做些什么的例子。

    enter image description here

1 个答案:

答案 0 :(得分:1)

要创建一个(ForEach)循环容器,迭代您打算用作参数的一组数据,请将以下项添加到" master"包:

  1. 将数据类型Object的包变量添加到您的包中 - 它会 包含带有参数的Recordset。

  2. 添加数据流以读取您的平面文件数据源
    (可行 您可以在数据流中读取的任何数据源都相同

  3. 将Recordset目标添加到数据流,分配包 您在步骤1中创建的变量VariableName自定义属性 并选择输入列(顶部复选框选择所有列)

  4. 切换回控制流程并添加Foreach循环容器

  5. 添加尽可能多的Package变量,以便参数化您的 工作包程序连接,任务等,并将其范围设置为 Foreach循环容器通过在变量列表中选择它们 点击Move Variable图标(带箭头的框)

  6. 打开Foreach属性并切换到Collection标签 将枚举器更改为Foreach ADO Enumerator
    选择 您的Package变量为ADO object source variable 枚举模式,默认为Rows in first table

  7. 切换到变量映射标签并指定列索引 将Recordset列添加到您创建的所需目标变量中 在第5步。

  8. 执行包任务添加到Foreach循环容器和 在标签上连接您的工作包。

  9. 参数绑定标签上,指定循环范围的主控 包含从步骤5到相应Child包的变量 参数。