0

SSISでCシャープスクリプトを使用して1対多の関係で2つのレコードをリンクするにはどうすればよいですか?

CRM 2011 と EntityReference または Relationship Classes を使用してこれを行うための良い情報がいくつかあります。残念ながら、SSIS 2008 でこれを行っているため、これらのクラスを使用できません。

おそらく、これは Lookup または Moniker を使用して実行できますが、詳細が必要です。

ありがとう

4

2 に答える 2

0

Crm 4のLookupクラスを使用できれば、1 対多の関係を簡単に構築できます。これは、他の属性を実際に設定するのと同じです。

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にすでに存在するかどうかを最初にマージ結合および分割チェックします。私の場合、そうであれば、何の行動も取りたくありません。2 番目の Merge Join 1 は実際には何もせず、ビジネス キーを使用して連絡先の GUID を取得するだけです。

ここに画像の説明を入力

于 2014-09-18T16:29:13.917 に答える