PowerApps|JavaScriptでデータを追加する方法~createRecord~

PowerAppsのJavaScriptを使って、
データを追加したいと思う時があると思います。

ボタンの中に組み込んだり、データの更新時に動かしたりなど。。。

こんなときには、JavaScriptをPowerAppsに組み込んでこそ、動かすことができます。

今回は、PowerAppsで組み込むJavaScriptで特定のテーブルにデータを追加する方法について紹介していきます。

実際に私は、それらを実装して運用していますので、動作は保証させていただきます。

CreateRecordの基本〜JavaScriptからレコードを追加する〜

createRecordは、
Xrm.WebApiというPowerAppsが提供しているAPIを使用します。

基本的な書き方については以下のように書きます。

let entityLogicalName = "テーブルの論理名"
let data = {
    "列の論理名":"追加したいデータ"
}//追加したいデータを入れる。

Xrm.WebApi.online.createRecord(entityLogicalName, data).then(
    function success(result) {
        var newEntityId = result.id; // 作成されたレコードのID
        // 成功時の処理
    },
    function error(error) {
        // エラー時の処理
    }
);

引数は2つあり、テーブルの論理名と追加したいデータです。

テーブルの論理名には、
PowerAppsであなたがデータを追加したいテーブルの論理名を入れます。

dataには、追加したいデータを入れます。

テーブルの中で必須の項目になっている部分は、
必ず入れる必要があります。入れないと、エラーが吐かれてしまうので、気をつけてください。

dataには、列の論理名と追加したいデータをオブジェクト型で格納しましょう。

検索型の列にデータを追加したい場合

普通にレコードを追加する場合には、上記のコードで十分ですが、

データの中には、「検索」型の列がある場合があります。

そこにデータを追加する場合には、一工夫が必要ですので、ここからはその書き方について紹介します。

変更する部分は、変数dataの構造です。

準備するのは以下の3つです。

  1. 検索列の論理名
  2. 検索列と繋がっているテーブルの論理名
  3. 検索列と繋げたいレコードのID
あべべ

「検索列と繋げたいレコードのID」は

検索列と繋がっているテーブル内のどのレコードと紐づけるかを決める必要があるので、紐付け対レコードのIDを指定します。

IDは、テーブル名と同じ名前の列に書いてあります。

let entityName = "検索列の論理名"
let entityType = "検索列と繋がっているテーブルの論理名"
let targetRecoedId = "検索列と繋げたいレコードのID"


let data = {
     entityName + "@odata.bind" : "/" + entityType + "s(" + targetRecoedId + ")"
}

//以降は同様

このようにdataを指定してあげることで、検索列の紐づくレコードを設定してあげることができます。

検索列の紐づくIDを取得するには、どうすれば良いか。

必要なIDはいくつかありますが、それらが可変になる場合もあると思います。

その場合には、RetriveRecord と MultipleRetriveRecordという関数を使用します。

以下の記事で紹介していますので、参考にしてみてください。

まとめ

今回は、PowerAppsの組み込みJavaScriptでレコードを追加する方法について紹介しました。

レコードの追加、更新、削除、取得などの処理を行えるようになることで、とても組み込みJavaScriptを使用したPowerAppsの実装の幅が広がります。

ぜひ活用してみてくださいね。では、また。

(Visited 253 times, 1 visits today)