多対多関係の、レコードを紐づかせる方法|JavaScript,PowerApps,many to many

前回の記事では、JavaScriptにて多対多関係のレコードを取得する方法について紹介しました。
取得することができたら、
今度はレコードを紐づかせることもしたいと思うはずです。
この記事では、JavaScriptにて多対多関係のレコードを紐づかせる方法を紹介します。
ほぼコピペで使用できるようなコードを紹介していますので、ぜひ実装の参考にしてくださいね。
では、早速みていきましょう。
準備する情報
まずは、必要な情報を整理したいと思います。
以下が必要なものです。
必要な情報
- 多対多関係の論理名
- 基準となるレコードがあるテーブルの論理名(主エンティティ)
- 基準となるレコードのID
- 紐付けたいレコードがあるテーブルの論理名(関連エンティティ)
- 紐付けたいレコードのID配列
それぞれの入力例は、次章で紹介するコードで紹介します。
コード
では、先ほどの情報が準備できたらコードを紹介します。
準備した情報を最初の変数定義に当てはめてください。
// 可変部分を変数として定義
var relationshipName = "relationshipName"; // 多対多関係の名前
var targetEntityType = "targetEntityType"; // 主要エンティティタイプ
var targetEntityId = "xxxxx-xxxxx-xxxxx-xxxxx-xxxxx"; // 主要エンティティのID(この例では既に変数として定義されている)
var relatedEntityType = "relatedEntityType"; // 関連エンティティタイプ
var relatedEntitiesArray =["xxxxx-xxxxx-xxxxx-xxxxx-xxxxx","xxxxx-xxxxx-xxxxx-xxxxx-xxxxx"]; // 関連エンティティのID配列
// 関連付けリクエストの構築
var manyToManyAssociateRequest = {
getMetadata: () => ({
boundParameter: null,
parameterTypes: {},
operationType: 2,
operationName: "Associate"
}),
relationship: relationshipName,
target: {
entityType: targetEntityType,
id: targetEntityId
},
relatedEntities: relatedEntitiesArray.map(industry => ({
entityType: relatedEntityType,
id: industry
}))
};
// Web APIを使って関連付けリクエストを実行
Xrm.WebApi.online.execute(manyToManyAssociateRequest).then(
(success) => {
console.log("Success", success);
},
(error) => {
console.log("Error", error);
}
);
この処理を行うことで、実際に多対多関係のレコードを紐づけることができます。

executeメソッドは、関連付けだけでなく、関連付けの解除やCRUD処理なども行うことができます。
CRUD処理などは、他のCreateRecordなどの関数で行うことができますが、多対多関係の関連付けは、executeメソッドのみでしか行うことができません。
ぜひ活用してもらえればと思います。
まとめ
今回は、多対多関係のレコードを関連づけるコードについて紹介しました。
1対多や多対1関係での紐付けには、以下の記事を参考にしてください。(もちろんexecute関数を使用して実行することも可能です。)
(Visited 42 times, 1 visits today)