コンポーネントの入力フィールドをマップする

コンポーネントは、カスタム入力プロパティを使用してデータを送信または処理するための入力値を受け取ることができます。 この記事では、特定のテーブルまたはレコードの特定のスキーマで1つ以上の入力プロパティを期待するこのようなコンポーネントの操作と、コンポーネントの入力フィールドをデータ ソースの列にマップする方法について学習します。

ヒント

コンポーネントのカスタム入力および出力プロパティについては、コンポーネントのカスタム プロパティ を参照してください。

列のマッピング

RenameColumns() 関数を使用して、入力列を選択するための入力プロパティ スキーマに一致するために、テーブルの 1 つ以上の列の名前を変更します。

たとえば、次の形式のテーブル入力を期待するコンポーネントについて考えてみます。

Flavor UnitPrice QuantitySold
Strawberry 1.99 20
Chocolate 2.99 45

この入力プロパティは、テーブルのデータ型を想定しています。

テーブルのデータ型を想定したカスタム入力プロパティ。

入力プロパティのスキーマは、次の式のようになります。

Table({Flavor: "Strawberry",UnitPrice: 1.99, QuantitySold:20})

テーブルとサンプルの値として定義されたカスタム入力プロパティ式。

このコンポーネントを使用するアプリには、次のコンポーネントスキーマと一致しない IceCreams テーブルを持っています。

FlavorName Price SaleNumber
Strawberry 1.99 20
Chocolate 2.99 45

IceCreams テーブルのスキーマ

正しいフィールドをマップするには、期待される列の名前を変更する RenameColumn() 関数を使用します。

RenameColumns(IceCreams,"cra56_flavorname","Flavor","cra56_price","UnitPrice","cra56_salenumber","QuantitySold")

RenameColumns 関数を使用して正しい列でカスタム入力プロパティ マッピングを使用するコンポーネントを使用するアプリ。

コンポーネントが期待する入力フィールドは、データ ソースの一致する列にマップされるようになりました。

レコードのマッピング

With() 関数を使用して、単一レコードをマッピングします。

たとえば、マッピング列の 前の例 から継続する場合、アプリ内のコンポーネントのカスタム入力プロパティには、次のスキーマを持つレコードの種類が必要です。

{Flavor: "Strawberry",UnitPrice: 1.99, QuantitySold: 20}

レコードとサンプルの値として定義されたカスタム入力プロパティ式。

IceCreams データ ソースは、列名を FlavorNamePrice、とSaleNumber のように予期することから、コンポーネントがアプリに追加されたら、レコードのマッピングを変更する必要があります。

With() 関数を使って、IceCreams テーブルの列を選択して、それらをコンポーネントの入力フィールドにマッピングします。

With(Gallery3.Selected,{Flavor:FlavorName,UnitPrice:Price,QuantitySold:SaleNumber})

データ ソーススキーマにマップされたアプリのコンポーネント レコード。

次のアニメーションは、アプリに追加されたコンポーネントの例を示しています。これは、ギャラリー (コンポーネントの上) から選択されたレコードを示しています。

下のコンポーネント インスタンス テキストを変更して、上のギャラリーからレコードを選択したことを示すアニメーション。

テーブルのマッピング

ForAll() 関数を使用して、アプリに追加されたコンポーネントによって期待されるレコードでレコードのテーブルをマッピングします。

たとえば、マップ列 例の最後で、ForAll() 関数を使って、各行のコンポーネントのフィールドを指すように、テーブル全体を特定の列にマッピングします。

ForAll(IceCreams,{Flavor:FlavorName,UnitPrice:Price,QuantitySold:SaleNumber})

すべてのレコードに対して ForAll() 関数を使用してテーブルをマッピングします。

ドロップダウンを使用したマッピング (非推奨)

テーブルまたはレコードの種類の入力プロパティを期待するアプリに追加されたコンポーネントの 詳細 タブをクリックし、ドロップダウン オプションを使用してフィールド マッピングを選択します。 このマッピングは規定で割り当てられており、適切なマッピング フィールドを手動で選択しない限り、マッピングによって期待される結果が得られない場合があります。

たとえば、次のアニメーションは、列の名前を変更するために数式が更新されていることを示しています。 このドロップダウンを使用した規定のフィールド選択は手動で更新する必要があるため、画面上のコンポーネントはフィールド マッピングを変更しません。

アプリに追加されたコンポーネントの詳細プロパティ セクションのドロップダウンを使用してフィールド マッピングを選択するための非推奨のメソッド。

ドロップダウンを使用してマッピングを選択するこの方法は、非推奨 になりました。 代わりに、この記事で前述した レコード、または テーブル のマッピングの方法を使用します。

ドロップダウン オプションを使用して、既存のアプリのマッピングを選択することもできますが、お勧めしません。 新しいアプリの場合、このオプションは規定では使用できません。 この非推奨の機能をオンまたはオフにするには、設定 > 今後の機能 > 引退 に移動して、コンポーネント入力の自動フィールド割り当てを許可する を選択します。

コンポーネント入力設定の自動フィールド割り当てを許可する

設定をオンにするときは、Power Apps Studio でアプリを保存して再度開くようにしてください。 再度開いたら、入力プロパティの数式を更新して数式の検証をトリガーし、ドロップダウン オプションが [詳細プロパティ] ペインに表示されるようにします。

関連情報