如何以一对多关系在 SSIS 中使用 C sharp 脚本链接 2 条记录?
有一些很好的信息可以使用 CRM 2011 和 EntityReference 或关系类来做到这一点。不幸的是,我不能使用这些类,因为我在 SSIS 2008 中这样做。
也许这可以通过 Lookup 或 Moniker 来完成,但需要注意细节。
谢谢
如何以一对多关系在 SSIS 中使用 C sharp 脚本链接 2 条记录?
有一些很好的信息可以使用 CRM 2011 和 EntityReference 或关系类来做到这一点。不幸的是,我不能使用这些类,因为我在 SSIS 2008 中这样做。
也许这可以通过 Lookup 或 Moniker 来完成,但需要注意细节。
谢谢
如果您能够使用 Crm 4 中的Lookup类,则很容易为 1 到 Many 建立关系,就像真正设置任何其他属性一样。
要从 Crm 获取另一条记录的 guid,您需要发出带有 QueryExpression 的 RetrieveMultiple。
例如:
//Build the QueryExpression, the condition should give us a single record
QueryExpression query = new QueryExpression("contact");
query.Criteria = new FilterExpression();
query.Criteria.AddCondition(new ConditionExpression("someidfield", ConditionOperator.Equal, "ABC123");
BusinessEntityCollection entities = service.RetrieveMultiple(query);
//In theory we could get multiple records here, but we will assume we only get the one
DynamicEntity contact = (DynamicEntity)entities.BusinessEntities.First();
Guid existingContactId = (Guid)contact["contactid"];
Lookup lookupToExisitingContact = new Lookup();
lookupToExisitingContact.Value = existingContactId;
lookupToExisitingContact.type = "contact";
DynamicEntity newContact = new DynamicEntity("contact");
newContact["firstname"] = "James";
newContact["parentcontactid"] = lookupToExisitingContact;
service.Create(newContact);
我同时使用企业 ID 和 guid。见下文。它仍然需要一些工作,但我觉得我正朝着正确的方向前进。
首先合并加入和拆分检查订单是否已存在于 CRM 中。就我而言,如果确实如此,我不想采取任何行动。第二个 Merge Join 1 实际上什么都不做,只是使用业务密钥获取联系人的 GUID。