Common Data Service 第3弾(笑)
最近 CDSばっかり連投していないかって?
それなりに理由がありますが、それはおいおいTwitterにて。
さて今回は
PowerAppsでリレーションシップ付エンティティを操作する方法です。
リレーションシップが付いたエンティティは、モデル駆動型だと
それはそれはものすごーく楽勝に使えるので
ホントめちゃくちゃリレーションはりまくりになるのですが
キャンパスアプリだと、ちょーっと癖がありますので
以下に纏めます。
CDSのエンティティ
#MicrosoftFlow で CommonDataService の 特定レコードを操作する方法
こちらと同じエンティティを使用します。
PowerAppsでのデータ更新方法には二通りあります
Form
なぜか数式エラーが・・・
これですね。
どうもCDSを読込ませると、こんな風に数式エラーが出てしまいます。
Nameの数式エラー
MaxLengthプロパティがなんかおかしいよ?って言ってきています。
これには曖昧性除去演算子を使用してデータソースを指定する必要があるようです。
曖昧性除去演算子ですねー
— Mina (@ma_00336) August 22, 2019
Thanks Mina!!
なので、このように書き換えます。
DataSourceInfo([@cds_relation_updt_tbl], DataSourceInfo.MaxLength, "crc70_name")
ユーザーの数式エラー
これも、調べた結果、曖昧性除算演算子を使うことで対処することができます。
発生している箇所はItemsプロパティですね。
このように書き換えます。
Choices([@cds_relation_updt_tbl].crc70_SystemUser)
あとは、表示させたいフィールドを適宜選択することで
選択項目を自由に設定することができるようになります。
Patch関数
もう一つは、Patch関数を指定するやり方です。
こちらは、自分で好きなようにフォームをカスタマイズしたいときに重宝します。
ドロップダウンボックス
ドロップダウンボックスのItemsには、Formの時と同様のパラメータを指定します。
Choices([@cds_relation_updt_tbl].crc70_SystemUser)
そして、Valueにて、一覧として表示する項目を指定します。
送信ボタン
OnSelectにPatch関数を使用します。
以下のように記述すると良いでしょう。
Patch(
cds_relation_updt_tbl,
Defaults(
cds_relation_updt_tbl
),
{
Name:TextInput1.Text,
crc70_SystemUser:Dropdown1.SelectedText
}
)
※Patch関数の詳しい使い方は以下のリファレンスをご確認ください。
https://docs.microsoft.com/ja-jp/powerapps/maker/canvas-apps/functions/function-patch
最後に
Formの数式エラーについては、今後改善される可能性があります。
改善されると、上記で記載したことをすることなく、より簡単に利用することができると思いますので、それまでの間は上記の対応にて回避してください。