0

如何以一对多关系在 SSIS 中使用 C sharp 脚本链接 2 条记录?

有一些很好的信息可以使用 CRM 2011 和 EntityReference 或关系类来做到这一点。不幸的是,我不能使用这些类,因为我在 SSIS 2008 中这样做。

也许这可以通过 Lookup 或 Moniker 来完成,但需要注意细节。

谢谢

4

2 回答 2

0

如果您能够使用 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);
于 2012-10-22T21:55:38.653 回答
0

我同时使用企业 ID 和 guid。见下文。它仍然需要一些工作,但我觉得我正朝着正确的方向前进。

首先合并加入和拆分检查订单是否已存在于 CRM 中。就我而言,如果确实如此,我不想采取任何行动。第二个 Merge Join 1 实际上什么都不做,只是使用业务密钥获取联系人的 GUID。

在此处输入图像描述

于 2014-09-18T16:29:13.917 回答