多対多関係の、レコードを紐づかせる方法|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 33 times, 1 visits today)