PowerAppsとflowで入力チェック処理
概要
PowerAppsのキャンバスアプリケーションで入力チェック処理を実装する。
チェク処理自体はFlowで実施する。
PowerAppsからFlowに画面の入力値をJSONメッセージにして引数で渡す。
Flowで入力チェック処理結果を応答メッセージとして、処理結果コード値とエラーメッセージを文字列で
返却する。
エラー表示はラベルコントロールを使う。
ラベルコントロールの値を動的に変更するために、ローカル変数を使用する。
PowerAppsとFlowとの引数と応答メッセージの値は文字列のみを使用する。
PowerAppsの画面の作成
キャンバスアプリを新規作成し、Screen1にラベル、入力テキスト、ラベル、ボタンを順に貼り付ける。
コントロール | 名前 | テキスト |
---|---|---|
ラベル | Label1 | 理由: |
入力テキスト | TextInput1 | (空白) |
ラベル | LblErrorMessage | (空白) |
ボタン | BtnCommit | 入力チェックテスト |
テスト用の画面レイアウト
画面の表示イベントでエラー表示用変数を初期化する。
Screen1のOnVisibleに下記の式を入力する。
UpdateContext({ErrorMessage:""});
UpdateContextは変数を更新する処理を行う。
引数はJSONメッセージで指定する。
上記はErrorMessage変数を空白文字列で初期化している。
LblErrorMessageと変数を紐付ける
LblErrorMessageのText属性に下記の変数名を入力する。
ErrorMessage
この設定によりErrorMessage変数の値がLblErrorMessageコントロールに表示される。
CheckValueフローの作成
PowerAppsボタンをトリガーとするCheckValueフローを作成し、上記のようにアクション追加する。
変数の初期化はPowerApps応答で返却する変数の初期化を行っている。
JSONの解析はPowerAppsからの引数をJSONメッセージとして受け取るため、受け取ったJSONメッセージ
を変数に解析する。
条件アクションはチェック処理を実施する。
JSON解析
判定処理
JSONから取得したwhyの値が空文字列の場合はresult=1、messageにエラーメッセージを設定する。
FlowからPowerAppsへの値の返却
resultとmessageを返却する。
ともに文字列とする、Flowの型とPowerAppsの型がBoolや数値だとうまく判定処理で一致しないため、
文字列を使用する。
また、Flowで使用する変数を追加、更新した場合はPowerAppsからFlowの参照がうまくいかない場合がある。
その場合は一旦、PowerAppsからFlowへの参照を削除してから追加しなおす必要がある。
PowerApps側のボタンのOnSelectの処理
BtnCommitびOnSelectに下記の式を入力する。
UpdateContext({params:JSON({why:If(IsBlank(TextInput1.Text),"",TextInput1.Text)})});
UpdateContext({result:CheckValue.Run(params)});
UpdateContext({ErrorMessage:If(result.result="0","",result.message)});
If(result.result="0",KintaiFlow.Run(params),"");
1行目:params変数にJSONメッセージを設定。未入力の時にNullを渡すとFlow側のJSON解析処理でエラーになるため、空文字を渡す。
2行目:params変数を引数としてCheckValueフローを起動し、応答メッセージをresult変数に設定。
3行目:resultメッセージのresultの値が0の場合は正常終了なので、ErrorMessage変数を空文字列で初期化。0以外の場合はresult.messageを設定。
4行目:チェック処理が正常終了の場合に本来の起動したい処理(KintaiFlow)を起動。
実行例
未入力の場合
入力した場合
フロー側の処理ログ
Flow側の呼び出し履歴からFlowの処理ログが確認できる。
バージョン
アプリ | バージョン |
---|---|
powerapps | 3.19081.20 |
Author And Source
この問題について(PowerAppsとflowで入力チェック処理), 我々は、より多くの情報をここで見つけました https://qiita.com/sukkyxp/items/bdeb6d214419a662448b著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .