Power Fx の使用
Power Fx は Microsoft Power Platform 全体で使用されるローコード言語です。 Power Apps キャンバス アプリを構築する場合は、Power Fx を理解されているかもしれません。 また、Power Fx は、Power Apps モデル駆動型コマンド バー コマンドを使用したカスタム ロジックの実装にも使用できます。 コマンド バー ロジックでは完全な Power Fx 言語機能のサブセットを使用できます。
コマンドをカスタマイズする際に、Power Fx を使用できる場所が 2 つあります。
OnSelect - このロジックは、ユーザーがコマンド ボタンを選択した場合に実行されます。
Visible - このロジックは、アプリを実行しているユーザーにコマンドを非表示にするか表示するかを確認するために実行されます。
OnSelect の構成
コマンドが選択される場合に Power Fx ロジックを使用するには、アクション プロパティが式を実行するように構成されていることを確認します。 アクションは、画面の左側の コマンド ウィンドウにあります。
構成されている場合は、数式バーが有効であり、Power Fx ロジックを入力できます。 このオプションは新しいコマンドに対して既定となっています。 ただし、式バーが無効になっている場合は、ロジックに JavaScript を使用するコマンドの使用が一般的です。
ページの上部にある数式バーを使用して、カスタム ロジックを入力できます。
既定の式は単に「true」です。これでは、アクションは何も実行されません。 選択された場合にアクションを実行するには、コマンドに対して独自のロジックを入力する必要があります。
また、コマンド ウィンドウで開いている数式バーを選択して、変更する数式バーに焦点を当てることができます。
ユーザーがコマンドを選択すると、フォーム データに対する保留中の変更が保存され、OnSelect ロジックが実行されます。 この順序により、コマンドの実行時点でのデータの状態が一貫したものになります。
表示方法の構成
既定では、コマンド バーに追加された新しいコマンドが表示されます。 コマンドの表示方法プロパティを条件式で表示するに変更すると、コマンドを表示するかどうかを決定するために評価される数式を提供できます。 表示設定は、左側の コマンド ウィンドウで確認および変更できます。
ページの上部にある数式バーを使用して、コマンドのカスタム表示設定ロジックを入力できます。
既定の式は単に「true」であり、コマンドが常に表示されることに注意してください。 既定値を変更するには、独自の true/false ロジックを指定する必要があります。 式の評価結果が「false」の場合、コマンドは表示されません。
表示方法の式は、その依存値のいずれかが変化した場合に再評価されます。 これにより、コマンドの表示方法がデータおよびユーザー アクションの現在の条件に対応できます。 たとえば、グリッドのすべての行が選択された後、ボタンを表示できない場合があります。
現在アクティブなデータ
現在アクティブなデータを参照する機能は、コマンドの式を記述する際の重要な機能です。 たとえば、コマンド バーがテーブル行のメイン フォームにある場合、現在アクティブなデータは行です。 コマンド バーがメイン グリッド上にある場合、現在アクティブなデータはグリッドに表示される行のテーブルになります。
選択したプロパティを使用して、現在アクティブなデータにアクセスできます。 選択したプロパティは、実行時に自動的に入力されます。 選択したプロパティには複数のフィールドがあります。使用可能なフィールドは、選択されている項目が 1 つか、項目のテーブルかによって異なります。
| フィールド | 型 | 説明 |
|---|---|---|
| 品目 | DataSource からのレコード | 単一の行を選択されている場合、またはフォームに単一の行が表示されている場合にのみ使用できます。 入力されていない場合は、空白に設定されます。 たとえば、次の式は、アカウントの評価列の値を確認します。 Self.Selected.Item.'Account Rating'>20 |
| AllItems | DataSource のレコードのテーブル | DataSource から選択されたすべての行。 たとえば、次の式は選択した件数を確認します。 CountRows(Self.Selected.AllItems) > 0 |
| 状態 | 列挙型 | ホスティング コントロールが編集 (=0)、新規 (=1)、または表示 (=2) 状態にあることを示します。 |
| 未保存 | ブール値 | Selected または SelectedItems に未保存の変更がある場合は「true」を返します。 それ以外の場合は「false」を返します。 |
データ ソースからのデータ
Selected プロパティからのデータの操作に加えて、他の Microsoft Dataverse テーブルにデータの照会と保存もできます。 たとえば、次の式では、取引先企業行の名前が "新しい取引先企業名" に変更されます。
Patch(Accounts, Self.Selected.Item, {'Account Name': "New Account name"})
テーブル間のリレーションシップを使用して、関連行にアクセスすることもできます。 たとえば、次の式は、現在選択している品目の関連する循環予定にアクセスします。
Self.Selected.Item.'Recurring Appointments'
現在、Microsoft Dataverse は、コマンド ロジックを使用できる唯一のデータ ソースです。
一般的なシナリオ
コマンドで Power Fx ロジックを使用すると、発生さまざまなユース ケースを処理できます。 以下は、実装可能な一般的なユース ケースの例の一部です。
現在のデータに基づいて関連行を作成します。 たとえば、潜在的な営業案件の値に基づいて、一連のスケジュール済フォローアップ コールを作成します。
内部または外部の Web サイトに移動します。 たとえば、検索パラメーターとして行の会社名を渡している現在の会社のニュース サイトで検索を行うかもしれません。
現在の行のデータを変更します。 たとえば、アクティブなサービス顧客を追跡するサービス テーブルがあるかもしれません。 非アクティブな行でコマンドを選択すると、新しいサービスの状態を反映するように行にさまざまな値を設定することで、顧客へのサービスを再度アクティブにできます。
RecordInfo を使用して、コマンドが表示されるべきタイミングを確認します。 RecordInfo は、データ ソースの特定のレコードについての情報を取得するために使用できます。 たとえば、ユーザーが編集アクセス許可を持っているかを確認し、持っている場合はコマンドのみを表示できます。
コマンドに対して Power Fx ロジックの実装を開始すると、独自のアプリに対する他の一意のユース ケースを作成したいと考えるでしょう。