Dataverseには選択肢列という用意された選択肢から値を選択する列の種類があります。
結論検索列(リレーション)を使用した方が簡単ですが、この選択肢列のローカル選択肢を動的に選べるようにする手順を紹介します。
グローバル選択肢とローカル選択肢
Dataverseの選択肢列のプロパティに、グローバルな選択肢と同期しますか?という項目があります。
ここではいを選択するとグローバルな選択肢から値を選択することができるようになります。
「この選択肢を同期する相手」を選択すると用意された選択肢のリストから選択することができます。
「新しい選択」を選択すると、新規でグローバルな選択肢を作成することができます。
グローバル選択肢は他の選択肢列でも使用することができます。
いいえを選択すると、その列のみで使用可能なローカル選択肢を作成することができます。
グローバル選択肢かローカル選択肢かは列の作成時にのみ選択可能で、変更は不可です。
ユーザーの選択結果や静的な値での選択肢列更新
フォームやPatch関数では以下のようにコンボボックスなどの選択結果を参照することで、データソースに選択肢列の値を保存することができます。
または以下のように選択肢列の名前.更新する値とすることで静的に更新値を設定でき、選択肢列の値の変更が可能です。
ユーザーの選択結果ではなく、自動でステータスを変更したい
上記の方法で更新は可能ですが、SharePointリストの選択肢列のようにChoices関数で選択肢の一覧を取得して、操作結果によって更新する値を可変にすることはできません。
LookUp関数でレコードを絞ると、以下のように型エラーとなってしまいます。
この解決方法は、以下の3つがあります。
- 検索列で他のテーブルとリレーションを組む(推奨)
- コレクションで静的な更新値と更新値のテーブルを作成する
- ギャラリーで静的な更新値と更新値のテーブルを作成する
リレーションが最もおすすめですが、テーブルを作成するのも面倒で選択肢が多くてコレクションを作るのも面倒な場合に使えるギャラリーで静的な更新値と更新値のテーブルを作成する方法を紹介します。
以下のステータス列を作成します。
アプリにギャラリーを追加し、以下の数式を設定します。
Choices(注文.'ステータス (crc68_status)')
ギャラリーにラベルを追加してステータスを一覧表示します。
ギャラリーにラベルを追加したことでAddColumns関数でテキスト値を含むテーブルを取得できるようになりました。
以下の数式を用いることで選択肢列の更新値をロジックによって可変にすることができます。
コメント