3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

#PowerApps Patch 関数の結果を取得する

Posted at

以前、Form コントロールで SubmitForm と LastSubmit を利用した例を紹介しました。

「Patch 関数でも同じようなコトできないの?」という質問をいただいたので、今回は Patch 関数で同様の効果を得たいネタです。

Patch 関数

念のため、公式情報は下記です。

公式に記載されていますが、Patch 関数の戻り値は変更または作成したレコードになります。

※念のため該当箇所のスクショ(2023/09/19 時点)
image.png

Patch の戻り値は、変更または作成したレコードです。 レコードを作成した場合、戻り値にはデータ ソースによって自動的に生成されたプロパティが含まれる場合があります。 ただし、戻り値は、関連するテーブルのフィールドの値を提供しません。

つまり、Patch 関数の戻り値を得れば Form コントロールの LastSubmit と同様なコトが実現できる、ですね。

実際に試してみた

簡単なアプリで動作を確認してみました。

検証用アプリの概要

左上の[データ生成]ボタンで Collection を作成しています。
右側のテキストインプットコントロールに入力した値で、ギャラリーコントロールで選択されている対象の名前(Name)を Patch 関数で更新します。
image.png
既に、コレクションを作成した後の画面です。

Collection はこちら。

ClearCollect(
    colWk,
    {Name: "愛知 家康", Age: 26, Gender: "男"},
    {Name: "岐阜 千姫", Age: 24, Gender: "女"},
    {Name: "三重 忠勝", Age: 32, Gender: "男"}
)

[Patch で Name 変更]ボタンの関数はこんな感じです。

UpdateContext( {locRet: Patch(colWk, Gallery.Selected, {Name:TextInput.Text}) } )

locRet コンテキスト変数へ Patch 関数の結果を保持しています。右下の青色背景の箇所には locRet の結果をラベルで 1 つずつ表示するようにしました。
image.png
その他、詳細は割愛です。気になる方はご自身で試行錯誤してください。こういう検証は思った以上に良い訓練になりますよ。

検証してみる

ギャラリーコントロールの 3 番目を変更してみます。

  1. ギャラリー 3番目を選択して Name を変更する準備
    image.png
    右下の青い背景の箇所は、まだブランクです。

  2. Patch 関数を実行
    image.png
    Patch 関数の戻り値である locRet.Name などが反映されたので、青い背景の箇所に値が反映されました。

編集画面に戻り、デバッグ表示で Patch 関数の戻り値を保持している変数を確認してみます。
image.png
変数に続けて "."(ドット)でレコードの要素へアプローチできていますね。
公式情報どおり、戻り値で更新結果が確認可能です。

まとめ

Patch 関数の結果は 戻り値 で判別可能です!

SharePoint Online のリストで疑似的なリレーションを実現したい際などで活躍すると思います。そんな必要性に迫られた際には思い出してあげてください。

普段は気にしなくても不都合無い話題かもしれない、とも言えますw

それでは、皆さま、素晴らしい Power Platform Life を!

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?