Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
7
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

@rnakamuramartiny

#PowerApps キャンパスアプリでリレーションシップ付エンティティを操作する

Common Data Service 第3弾(笑)

最近 CDSばっかり連投していないかって?
それなりに理由がありますが、それはおいおいTwitterにて。

さて今回は

PowerAppsでリレーションシップ付エンティティを操作する方法です。
リレーションシップが付いたエンティティは、モデル駆動型だと
それはそれはものすごーく楽勝に使えるので
ホントめちゃくちゃリレーションはりまくりになるのですが
キャンパスアプリだと、ちょーっと癖がありますので
以下に纏めます。

CDSのエンティティ

#MicrosoftFlow で CommonDataService の 特定レコードを操作する方法
こちらと同じエンティティを使用します。

image.png

image.png

PowerAppsでのデータ更新方法には二通りあります

Form

Formオブジェクトを使用したやり方ですね。
image.png

とりあえずこういう風に読み込んでみましょう
image.png

なぜか数式エラーが・・・

image.png

これですね。
どうもCDSを読込ませると、こんな風に数式エラーが出てしまいます。

Nameの数式エラー

image.png

MaxLengthプロパティがなんかおかしいよ?って言ってきています。
これには曖昧性除去演算子を使用してデータソースを指定する必要があるようです。

Thanks Mina!!

なので、このように書き換えます。

DataSourceInfo([@cds_relation_updt_tbl], DataSourceInfo.MaxLength, "crc70_name")

これで、Nameの数式エラーが消えました。
image.png

ユーザーの数式エラー

これも、調べた結果、曖昧性除算演算子を使うことで対処することができます。
発生している箇所はItemsプロパティですね。
image.png

このように書き換えます。

Choices([@cds_relation_updt_tbl].crc70_SystemUser)

あとは、表示させたいフィールドを適宜選択することで
選択項目を自由に設定することができるようになります。

image.png

Patch関数

もう一つは、Patch関数を指定するやり方です。
こちらは、自分で好きなようにフォームをカスタマイズしたいときに重宝します。

image.png

ドロップダウンボックス

ドロップダウンボックスのItemsには、Formの時と同様のパラメータを指定します。

Choices([@cds_relation_updt_tbl].crc70_SystemUser)

そして、Valueにて、一覧として表示する項目を指定します。
image.png

送信ボタン

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の数式エラーについては、今後改善される可能性があります。
改善されると、上記で記載したことをすることなく、より簡単に利用することができると思いますので、それまでの間は上記の対応にて回避してください。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
7
Help us understand the problem. What are the problem?