3

1対多の関係を持つ2つのテーブルを備えたSQLServerDBのセットアップがあります。このようなもの:

タイプ:

ID   Type
===========
1    mammal    
2    fish    
3    insect

ペット:

ID    Name   Foreign Key
=======================
1    Paris   1 (mammal)    
2    Michael 2 (fish)    
3    Mardy   1 (mammal)

一体どうやってこれをCRMで再現できますか?CRMは、独自の主キーGUIDと関係フィールドを作成するのが好きだと知っています。特に、crm guiを介してレコードと関係を作成するのではなく、スクリプトを介して大量のデータ(100万以上のレコード)を定期的にインポートするため、表形式の関係の整合性を維持したいと思います。ありがとう。

4

2 に答える 2

4

同じ状況で、追加のフィールドを持つ2つのエンティティ(整数ID)を作成しました。関係はCRMのデフォルトです。「Pets」フォームに「Type」エンティティの「ID」を保持する場合は、「Pets」フォームに非表示フィールドを追加できます(整数-Type_ID)。そして、タイプの変更でこれを更新します。

これらのエンティティをスクリプトからのみ使用する場合は、この非表示のType_IDは必要ないと思います。クエリのパフォーマンスは理想的ではないかもしれませんが、これは機能します:)

編集:もう1つ、CRMでIDを生成する必要がある場合は、一意のIDを生成するためのプラグインを作成する必要があります。これは、エンティティの作成時に実行されます。

それが役に立てば幸い

于 2012-10-17T12:15:29.637 に答える
2

CRM はその PK を GUID として保存するため、これらの GUID を介してのみ FK を定義できます。

lazarus が述べたように、ExternalID intフィールドを含む Pets エンティティと PetTypes エンティティの両方を作成します。

インポート スクリプトは、インポートするすべてのレコードの両方の GUID を検索する必要があります。

read record
lookup PetTypes Guid for PetTypes.ExternalID = [pettype.id from record]
create if not exists
lookup Pets Guid for Pets.ExternalID = [id from record]
create if not exists
set Pets.PetTypes = new EntityReference() with PetTypes.ID (=guid)
save crm record
于 2012-10-17T12:24:47.800 に答える