前回”OData(odata.type)”を利用することで、PowerApps のコンボボックスへ初期値を設定する方法を紹介しました。詳細はこちら↓からご確認ください。
■前回の記事
コンボボックスの初期値を操る、たった2つの方法?
該当コントロールの[DefaultSelectedItems]プロパティへ下記のように指定することで初期値を設定しました。当方の周囲では所謂”おまじない”と呼ばれている方法です。
{
'@odata.type':"#Microsoft.Azure.Connectors.SharePoint.SPListExpandedReference"
,Value: "※初期値にしたい値の文字列"
}
さて、前回のラストで引っ張ってしまった”おまじない”で注意しなければならないポイントとは?いったい何でしょう?
結論
前述で示したJSonで書き換えるべき"※初期値にしたい値の文字列"に、データソースから生成されている**選択肢に存在しない値が設定できてしまいます。**そして、その状態では記事投稿時の仕様では PowerApps のアプリではエラーになりません。つまり、業務上では不正なデータをデータソース側(例えば SharePoint Online のリスト)へ書き込めてしまいます。
現象の説明
どのような状況になるか?前回の記事で利用した SharePoint Online のリストと、そこから生成したアプリで検証してみましょう。
-
アプリを起動してデータ登録
上のイメージでもわかるように、PowerApps ではデータソース側の選択肢に存在しない値でもデータ登録できてしまいます。一覧表示、詳細表示、編集、全てエラーは発生しません。
そして、リストの該当アイテムも存在しない値で登録されてしまいます。ちなみに、このアイテムをSharePoint上で編集しようとすると、不正な値はブランクになります。
まとめ
- OData を利用した”おまじない”は選択肢にない値も設定できてしまう
- 選択肢に存在しない値でも、PowerApps アプリとしては登録可能
- データ登録時にエラーにならない、ということ
- データソース側でも、見かけ上はデータ登録されている
- ただし、データソース側の仕組み(例えば、SPOのリスト機能)で編集する際どうなるか?はデータソース側に依存
おそらく、PowerApps 含めて”仕組み”としては問題無いデータなんでしょうね。なので、アプリケーションとデータソースとしてはエラーにならずに動作可能なのかと想定しております。(※公式な情報が無いため詳細は不明)
ただし、業務などの観点、つまり利用者からの視点からみると『意図しない値がデータソースに存在する』という状態になります。
この状態、気持ち悪いですよね?
PowerApps のアプリでデータ登録を実施し、データソース側にアイテムが登録されたら○○する、という Microsoft Flow が組んであったり、データソース側をそのまま何かに利用する、という状況を想像してください。
ね?気持ち悪いですよね・・・
と、いうことで”おまじない”を利用する際は、注意しましょう、というネタでした。
おまけ:ドロップダウンの初期値を設定する方法
コンボボックスに初期値を設定する方法は説明しました。では、その兄弟というか、そっくりさんのドロップダウンに初期値を設定する方法は?
簡単です。[Default]プロパティにテキストを設定するだけです。
コンボボックスに初期値を設定する方法はテクニックが必要ですが、ドロップダウンは単純でわかりやすいですね。
それでは、皆さま、素晴らしい Power Platform Life を!