PowerApps で、SharePoint のカスタムリストや Excelファイルなどからアプリを作成すると、カンタンに一覧画面と詳細画面と登録画面(編集画面兼用)が作成され、すぐにアプリとして最低限利用できるようになります。ただし、ひと手間加えようとすると急に挫折ポイントがあったりします。前回投稿した記事などもそうです。
さて、今回の要件は、この即席アプリだと登録画面でデータを登録すると一覧画面に戻りますが、登録完了後にサンクス画面に移動してから更に一覧画面に戻りたい場合です。ここにもトラップがありました(トラップと感じたのは僕だけかもしれませんが…)。
■既定の動作の確認
まず即席アプリの現時点の挙動をおさらいします。
▼一覧画面から「+」をタップ
▼登録画面に入力
▼右上のチェックアイコンが登録
▼一覧画面に戻り、登録された事を確認
■サンクス画面を追加
では、サンクス画面を追加します。
▼ホームタブの「新しい画面」→「空」をクリック
▼スクリーン名を「ThanksScreen」に変更
▼適当に配置しサンクス画面を作成
「一覧へ戻る」ボタンには一覧画面である「BrowseScreen1」に行く設定をします。
■登録完了したらサンクス画面(ThanksScreen)に遷移させる方法
ここに初心者が陥りやすい落とし穴があります(僕も落ちました)。感覚的にはEditScreen1にある右上のチェックアイコンをタップすると登録されてスクリーンが遷移するので、このアイコンにサンクス画面に遷移されるような関数を書けば良いのかな?と思います。
▼チェックアイコンのコントロールのOnSelectを見るとこんな感じの関数が指定されています
ん?SubmitForm関数はあるけど、ここにBackやNavigateが書かれていない。よくわからないけどとりあえず…
▼後ろにNavigate関数でサンクス画面(ThanksScreen)に遷移する関数を書けばOKかな?
と思って動作確認してみると…サンクス画面には遷移しないんですよね。う~ん…と悩みながら色々調べると、どうやらフォーム登録後に遷移するスクリーンを指定する場所はここじゃなかったんです。
▼正解はEditFormのOnSuccessでした。
ここに一つ前のスクリーンに戻るBack()が書かれています。つまり、ボタンが押されたら画面が遷移するのではなく、このフォームがサクセスになると一つ前の画面に戻るよという事です。こりゃちょっとわからなかった…。てことで…
▼Back()を削除してNavigateでサンクス画面(ThanksScreen)に遷移する関数を書きます。
さて、動作確認します。
▼登録画面の右上のチェックアイコンをタップすると
▼サンクス画面に移動しました!
という事で、フォーム登録後の遷移先の指定がボタンではなくフォームそのものにあった事に気が付きにくいと感じたのは僕だけでしょうか。いずれにせよ、このような挫折ポイントは人によって相違はありますが、こういうところを徐々に覚えておけば、だんだん慣れてきますね。なので、自分の備忘録用にも僕は脱初心者のためにも挫折ポイントとその答えを徐々に書いていこうと思います。同じところでハマった人が抜け出せたら幸いです。