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

问题描述 投票:1回答:1

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

  1. 使用服务查询我需要的许多Dynamics CRM登录名和密码。这有利于在用户名/密码更改时工作而无需干预。
  2. 使用三个脚本组件。每个都从所有组织检索一种实体类型的所有数据。
  3. 使用该数据可以执行与问题无关的更多操作。

这是一种可行的方法吗?我需要哪些工具才能实现这一目标? (O365 sdk / restful queries / etc)

如果这仅适用于Dynamics 365 Online,那就没问题。

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

enter image description here

c# rest ssis dynamics-crm dynamics-crm-online
1个回答
1
投票

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

  1. 将数据类型为Object的包变量添加到包中 - 它将包含带有参数的Recordset。
  2. 添加数据流以读取平面文件数据源 (对于您可以在数据流中读取的任何数据源,它们的工作方式相同)
  3. 将Recordset Destination添加到数据流,将您在步骤1中创建的包变量分配给VariableName Custom Property并选择Input Columns(顶部复选框选择所有列)
  4. 切换回Control Flow并添加Foreach循环容器
  5. 根据需要添加尽可能多的Package变量,以参数化您的工作包连接,任务等,并通过在Variables列表中选择它们将其范围设置为Foreach循环容器,然后单击Move Variable图标(带箭头的框)
  6. 打开Foreach属性并切换到Collection选项卡。 将枚举器更改为Foreach ADO Enumerator 选择您的Package变量作为ADO object source variable 保留Enumeration模式的默认值为Rows in first table
  7. 切换到“变量映射”选项卡,并将Recordset列的列索引分配给在步骤5中创建的所需目标变量。
  8. 将执行包任务添加到Foreach循环容器,并在“包”选项卡上连接工作包。
  9. 在“参数绑定”选项卡上,将步骤5中的循环范围主包变量分配给相应的Child包参数。
© www.soinside.com 2019 - 2024. All rights reserved.