記事公開日
最終更新日
モデル駆動型アプリ概説 ③ビジネスプロセスの定義

こんにちは。システムソリューション営業本部の吾妻です。
「モデル駆動型アプリ概説」連載の第3回目として、モデル駆動型アプリを作成する際の「ビジネスプロセスの定義」に関する手順をご紹介していこうと思います。
モデル駆動型アプリの作成手順(復習)
モデル駆動型アプリを作成するための手順として、以下のものがありました。今回は「ビジネスプロセスの定義」のために、前回用意したDataverseテーブルに対して、ビジネスルールやクラウドフローといったコンポーネントを追加していきます。手順 | 内容 |
①ビジネスデータのモデル化 | |
②ビジネスプロセスの定義 | 一貫性のあるビジネスプロセスを定義して、誰でも確実にタスクを実施できるようにする ・ビジネスルール ・Dataverseプロセス ・リアルタイムワークフロー ・アクション ・Power Automate ・ビジネスプロセスフロー ・クラウドフロー ・インスタントフロー ・スケジュールされたフロー ・デスクトップフロー(RPA) |
③モデル駆動型アプリの作成 | |
④セキュリティロールの構成 | |
⑤アプリの共有 | |
⑥応用的なカスタマイズ |
用語
今回利用する各機能についてご紹介します。「ビジネスプロセスの定義」に関するコンポーネントは、モデル駆動型アプリのUIに反映されるものと、UIは持たずにバックグラウンドで処理を行うものに分けられます。例えば、データ入力の進捗状況を可視化するビジネスプロセスフローはUIを持ち、特定の列の値に応じて他の列の値を設定するビジネスルールはUIを持ちません。UIを持つコンポーネントを実装することで、モデル駆動型アプリにどのように反映されるかは、次の「実装例」の項目にスクリーンショットを載せていますので併せて確認してみてください。
また、UIの有無とは別に、元々Dynamicsに由来していたクラシックな機能と、Power Apps用のモダンな機能という区分もあり、混在していて分かりにくくなっているため、類似した機能それぞれの違いに着目して整理していく必要があります。
- ビジネスルール
…レコードの列の値が条件を満たす際にアクションを行う(複数選択の選択肢列、ファイル列、言語列に対しては利用できない)
- スコープ
- エンティティ(テーブルとテーブルのすべてのフォーム)
…モデル駆動型アプリとキャンバスアプリ、API経由の操作でも適用したい場合に選択する - すべてのフォーム
…モデル駆動型アプリで、当該テーブルのすべての画面に適用したい場合に選択する - 特定のフォーム
…モデル駆動型アプリで、特定の1画面だけに適用したい場合に選択する
- エンティティ(テーブルとテーブルのすべてのフォーム)
- 条件に指定できる比較演算子の例(文字列型の場合)
…A列の値とB列の値を比較したり、A列の値と固定値を比較したりできる- 次の値と等しい / 等しくない
- 次の値を含む / 含まない
- 次の値で始まる / 始まらない
- 次の値で終わる / 終わらない
- 値が未設定 / 設定済み
- キャンバスアプリ/モデル駆動型アプリで利用できるアクション
- 列の値を設定する
- 列の値をクリアする
- 列の要件レベルを設定する
- データを検証し、エラー メッセージを表示する
- モデル駆動型アプリのみで利用できるアクション
- 列を表示または非表示にする
- 列を有効化または無効化する
- ビジネスインテリジェンスに基づいてビジネスレコメンデーションを作成する
…A列に〇〇という値が設定されているので、B列にも◇◇という値を設定しましょう、とサジェストするアクション
- スコープ
- Dataverseプロセス(Dataverseバックグラウンドワークフロー)
…リアルタイムワークフローとアクション(バックグラウンドワークフロー)の総称。リアルタイムワークフローとアクションは、基本的には共通の画面から作成・編集するが、そこに含めるステップとして指定できる処理の種類が異なる
- リアルタイムワークフロー
…ユーザーが画面から操作する必要のないビジネスプロセスを自動化する - アクション(バックグラウンドワークフロー、クラシックワークフロー)
…カスタムプロセスアクション、カスタムアクションとも呼ばれる
…アクションでは、リアルタイムワークフローで使用できるすべてのステップに加えて、「値の割り当て」ステップも利用できる
…Power Automateクラウドフローへの移行が推奨されている
- リアルタイムワークフロー
- ビジネスプロセスフロー
…Power Appsモデル駆動型アプリのプロセスバーにユーザーが実行するべきプロセスと進捗状況を表示して、すべてのユーザーが迷わずに一定の手順で実行できるようにする - クラウドフロー(自動フロー)
…Dataverseレコードが書き込まれたり、メールを受信したりといったイベントによってトリガーされ、1つ以上のアクションを自動的に実行する(自動フローとインスタントフロー、スケジュールされたフローの3つあわせてクラウドフローと呼ぶこともある)
- インスタントフロー
…ユーザーがモバイルアプリ(iOSアプリ、Androidアプリ、Windowsストアアプリ)のPower Appsボタンをクリックしたタイミングでトリガーされ、1つ以上のアクションを自動的に実行する - スケジュールされたフロー
…日次などの設定したタイミングでトリガーされ、1つ以上のアクションを自動的に実行する(単位: 秒、分、時間、日、週間、ヶ月)
- インスタントフロー
- デスクトップフロー
…レガシーソフトウェア上で本来手動で行う手順を、RPAで自動化する
…あくまでも現行システムの仕様・制約から、クラウドフローでAPI連携することができない場合の一時的な回避策として考え、まずはクラウドフローによる自動化ができないか、運用・業務フローを変更できないかを検討した方が良い
…以下の種類が存在するが、Power Automate for Desktop以外は廃止済み
- Power Automate for Desktop(インストーラーをダウンロードするか、Microsoftストア経由でインストールできる)
- Selenium IDE(廃止)
- Windows レコーダー (V1)(廃止)
Power Automateデスクトップフローについては以下の記事もご覧ください。
実装例
上記の各コンポーネントについて、メーカーポータルで編集している様子やモデル駆動型アプリに反映された状態のサンプルを示します。ビジネスルール | ||
![]() |
ビジネスルールの編集画面 | |
![]() |
ビジネスルールをアクティブ化した状態でモデル駆動型アプリを開くと、ビジネスルールで設定した条件に応じて、エラーメッセージが表示されたり、レコメンデーションが表示されたりする | |
リアルタイムワークフロー | ||
![]() |
リアルタイムワークフローを作成する場合、モダンなUIから作成することができないため、クラシックなUIから「プロセス」の「新規」作成を行い、カテゴリとして「ワークフロー」を選択したうえで「このワークフローをバックグラウンドで実行する(推奨)」のチェックを外す | |
![]() |
リアルタイムワークフローのステップとして追加できる処理の例 | |
アクション | ||
![]() |
アクションを作成する場合、モダンなUIから「アクション」を新規作成する | |
![]() |
アクションのステップとして追加できる処理の例 | |
ビジネスプロセスフロー | ||
![]() |
ビジネスプロセスフローの編集画面 | |
![]() |
ビジネスプロセスフローをアクティブ化した状態でモデル駆動型アプリを開くと、フォームの上部にプロセスバーが表示され、プロセスの所要時間や進捗状況を確認することができるようになる | |
クラウドフロー | ||
![]() |
自動フローの例 | |
![]() |
インスタントフローの例 | |
![]() |
スケジュールされたフローの例 | |
デスクトップフロー(RPA) | ||
![]() |
クライアントPCにインストールした「デスクトップ用 Power Automate」でデスクトップフローを実行している例 | |
まとめ
今回は、モデル駆動型アプリを作成する際の「ビジネスプロセスの定義」に関する手順について、簡単にご紹介しました。属人化を防いで、誰でも簡単にタスクを実行できるように実装するために、いずれの機能も非常に役立ちます。今回定義したものをもとに、次回の記事では、モデル駆動型アプリを作成し、中身を実装する方法についてご紹介できればと考えています。QESの Power Platform サポート&アプリカタログサービス は、キャンバスアプリやモデル駆動型アプリ、Power Pagesといった各種Power Platform製品群の導入、環境構築、弊社で開発したカタログアプリのご提供などを行うサービスです。まずはお気軽にお問い合わせください。
このブログで参照されている、Microsoft、Windows、その他のマイクロソフト製品およびサービスは、米国およびその他の国におけるマイクロソフトの商標または登録商標です。