SSISでCシャープスクリプトを使用して1対多の関係で2つのレコードをリンクするにはどうすればよいですか?
CRM 2011 と EntityReference または Relationship Classes を使用してこれを行うための良い情報がいくつかあります。残念ながら、SSIS 2008 でこれを行っているため、これらのクラスを使用できません。
おそらく、これは Lookup または Moniker を使用して実行できますが、詳細が必要です。
ありがとう
SSISでCシャープスクリプトを使用して1対多の関係で2つのレコードをリンクするにはどうすればよいですか?
CRM 2011 と EntityReference または Relationship Classes を使用してこれを行うための良い情報がいくつかあります。残念ながら、SSIS 2008 でこれを行っているため、これらのクラスを使用できません。
おそらく、これは Lookup または Moniker を使用して実行できますが、詳細が必要です。
ありがとう
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);
ビジネス ID と GUID の両方を使用します。下記参照。まだ少し作業が必要ですが、正しい方向に進んでいるように感じます。
注文がCRMにすでに存在するかどうかを最初にマージ結合および分割チェックします。私の場合、そうであれば、何の行動も取りたくありません。2 番目の Merge Join 1 は実際には何もせず、ビジネス キーを使用して連絡先の GUID を取得するだけです。