Power Fx を使用してコマンドにロジックを追加する

完了

モデル駆動型アプリでは、カスタム ボタンを追加できるフォームとビューの上部にあるコマンド バーがサポートされます。 Power Fx を使用すると、ボタンを選択したときの動作、ボタンが表示されるかどうか、選択したレコードとの対話方法を制御できます。

コマンド実行とは?

コマンドを使用すると、作成者はコマンド デザイナーを使用して、モデル駆動型アプリのコマンド バーにカスタム ボタンを追加できます。 JavaScript を記述するのではなく、キャンバス アプリで使用されるのと同じ数式言語である Power Fx 式を記述して、ボタンの動作と可視性を定義します。

Note

キャンバス アプリで動作する Power Fx 関数の多くは、コマンド実行でもサポートされています。 Set()Collect()UpdateContext()など、一部の関数はサポートされていません。また、キャンバス固有の状態管理に依存する関数もあります。

OnSelect

OnSelect プロパティは、ユーザーがボタンを選択したときに実行される内容を定義します。 ここでサポートされている任意の Power Fx 関数を使用できます。

たとえば、現在選択されている取引先レコードの名前を更新するには、次のようにします。

Patch(Accounts, Self.Selected.Item, {'Account Name': "Contoso"})

別の画面またはビューに移動するには:

Navigate(Accounts)

アクションを実行する前に確認ダイアログを表示するには:

If(
    Confirm("Are you sure?", { ConfirmButton: "Yes", CancelButton: "No" }),
    Patch(Accounts, Self.Selected.Item, {Status: "Closed"})
)

表示

Visible プロパティは、コマンド バーにボタンを表示するかどうかを制御します。 trueまたはfalseを返す Power Fx 式に設定します。

たとえば、グリッドで 1 つ以上のレコードが選択されている場合にのみボタンを表示するには、次のようにします。

CountRows(Self.Selected.AllItems) > 0

特定のフィールド値を持つレコードに対してのみボタンを表示するには:

Self.Selected.Item.'Account Rating' > 20

選択済みプロパティ

コマンドの Power Fx 式内では、 Self.Selected オブジェクトを使用すると、アプリで現在選択されているレコードにアクセスできます。

Property 返品 Description
Self.Selected.Item 単一レコード 現在選択されているレコード。 何も選択されない場合、または複数のレコードが選択されている場合は空白。
Self.Selected.AllItems レコード一覧 現在選択されているすべてのレコード。 何も選択していない場合は空。
Self.Selected.State Enum フォームが編集 (0)、新規 (1)、またはビュー (2) のどちらの状態にあるか。

ユーザーに通知する

コマンドの実行後にアプリ ユーザーにバナー メッセージを表示するには、 Notify 関数を使用します。

Notify("Record updated successfully.")

次に、実践的な演習で完全なモデル駆動型アプリを構築することで、スキルを実践します。