Tech Dynamics 365 (CRM)

Microsoft Dynamics 365 (CRM) を中心とした技術情報を提供しています。

WebAPIでレコードを新規作成する (Xrm.WebApi.createRecord)

こんにちは。

今回は、WebAPIを使用してレコードを新規作成する方法をご紹介します。

さっそくですが、以下のシナリオを想定して実装を行ってみましょう。
・「取引先担当者」エンティティの「携帯電話」フィールドに番号が入力された際に、連絡先エンティティ(カスタム)にレコードを自動作成する


連絡先エンティティの作成

以下のカスタムエンティティを事前に作成しておきます。
 ・エンティティ名:連絡先 (new_renrakusaki)
 ・プライマリ フィールド:名前 (new_name)
 ・カスタム フィールド:電話番号 (new_telno)
f:id:westcoastline:20190902173449p:plain


JavaScriptの作成

以下のWebリソースを事前に登録しておきます。
 ・名前:new_CreateRenrakusaki.js
 ・表示名:CreateRenrakusaki.js
 ・種類:スクリプト (JScript)
 ・言語:(設定なし)
 ※[テキスト エディター] ボタンを押下して、以下のJavaScriptを貼り付けて保存してください。

function CreateRenrakusaki(executionContext) {
    // 実行コンテキストの取得
    var formContext = executionContext.getFormContext();
    // 携帯電話が登録されたら連絡先を自動で作成
    var lastname = formContext.getAttribute("lastname").getValue();
    var firstname = formContext.getAttribute("firstname").getValue();
    var mobilephone = formContext.getAttribute("mobilephone").getValue();
    if (mobilephone != null) {
        var data = {
            "new_name": lastname + " " + firstname,
            "new_telno": mobilephone
        }
        Xrm.WebApi.createRecord("new_renrakusaki", data).then(
            function success(result) {
                alert("連絡先を新規作成しました。");
            },
            function (error) {
                alert("連絡先の作成に失敗しました。");
            }
        );
    }
}

レコードを作成するために『Xrm.WebApi.createRecord』というAPIを使用します。
詳しい情報は以下のリファレンスを参考にしてください。
docs.microsoft.com


JavaScriptの登録

Webリソースとして登録したJavaScriptを、取引先担当者の携帯電話が変更された際に実行されるようにします。
(1) 取引先担当者エンティティのフォームエディターから、[フォームのプロパティ] をクリックします。

(2) フォーム ライブラリ内の [追加] ボタンをクリックして、先程登録したWebリソースを追加します。
f:id:westcoastline:20190902174434p:plain

(3) 携帯電話フィールドをダブルクリックして、フィールドのプロパティから[イベント] タブを開きます。
f:id:westcoastline:20190902175822p:plain

(4)イベント ハンドラー内の [追加] ボタンをクリックして、以下の様に設定を行います。
 ※「実行コンテキストを最初のパラメーターとして渡す」にチェックを入れてください。
f:id:westcoastline:20190902174700p:plain

(5)フォームエディターのリボンから [保存] をクリックして保存し、その後、[公開] をクリックして設定の反映を行います。

実装は以上で完了となります。


動作確認

それでは、実際に取引先担当者画面の携帯電話フィールドに番号を入れてみましょう。
入力後、「連絡先を新規作成しました。」というアラートがポップアップ表示されたら成功です。
f:id:westcoastline:20190902175151p:plain

連絡先エンティティに遷移し、レコードが作成されていることを確認してください。
f:id:westcoastline:20190902175230p:plain