今回は、PowerAppsにおいて、SubmitFormで追加されたレコードに対してPatch関数を使う方法についてご紹介します。どちらかと個人的な備忘用の記事になりますが、もし皆様の参考になれば幸いです。
目次
Patch関数とは
Patch関数とは、データソースのレコードを作成・更新する際に使用される関数です。
指定したデータソースのレコードに対して、フィールドの値を動的に変更したり、新しいデータを追加できます。
なお、本記事では以下の3種類の変更方法だけをまとめます。
<全てSubmitFormされたレコードに対して>
- パターン1:「テキスト列」を変更する方法
- パターン2:「選択肢列」を変更する方法
- パターン3:「ユーザー列」を変更する方法
パターン1:「テキスト列」を変更する方法
Patch関数でテキスト列を変更する場合、以下を参考に関数を入力。
//参考
Patch(
リスト名,
フォーム名.LastSubmit,
{列名: "上書きしたい文字列を入力"})
例としては以下のとおり。
//例
Patch(
Patch関数テスト, //リスト名
Form1.LastSubmit, //フォーム名
{テキスト列: "かきくけこPatch"}) //リスト列(表示列名)及び文字列
パターン2:「選択肢列」を変更する方法
Patch関数で選択肢列を変更する場合、以下を参考に関数を入力。
//参考
Patch(
リスト名,
フォーム名.LastSubmit,
{列名: {Value: "選択肢の内容"}})
例としては以下のとおり。
Patch(
Patch関数テスト, //リスト名
Form1.LastSubmit, //フォーム名
{選択肢列: {Value: "選択肢B"}}) //リスト名(表示列名)及び選択肢
選択肢の場合、テキスト列と比較すると「{ }」で囲う箇所・記載内容が異なるので注意です。
パターン3:「ユーザー列」を変更する方法
最後にPatch関数でユーザー列を変更する場合、以下を参考に関数を入力。
//参考
Patch(
リスト名,
フォーム名.LastSubmit,
{
列名: {
Claims: "i:0#.f|membership|" & Lower(メールアドレス),
Department: "",
DisplayName: "",
Email: "",
JobTitle: "",
Picture: ""
}
}
例としては以下のとおりです。
//例
Patch(
Patch関数テスト, //リスト名
Form1.LastSubmit, //フォーム名
{
ユーザー列: { //リスト名(表示列名)
Claims: "i:0#.f|membership|" & Lower(User().Email), //操作者のアドレスを指定
Department: "",
DisplayName: "",
Email: "",
JobTitle: "",
Picture: ""
}
}
ユーザー列の場合、テキスト列と比較すると入力項目が大幅に異なるので注意です。
まとめ
本記事では、SubmitForm後のPatch関数適用について、3パターンに分けてご紹介しました。
タスク管理アプリ等の場合、ステータスを「完了済み」にするなど活用法はあるかなと思いますので、是非参考にしてください。
最後までご覧いただきありがとうございました。