PowerAppsで物品管理ツールを作成しているときにCDSの重複チェック(キー設定)ではまったことをメモ書き程度ですが共有します。
そもそもCDSって方は,以下を一読することをお勧めします。
https://docs.microsoft.com/ja-jp/powerapps/maker/common-data-service/data-platform-intro
はまりどころ1 フィールド作成時のプライマリーキーはデフォルトでは重複チェックされない
データベースでは一意のデータとして登録したいフィールドがあります。基本的にそれがプライマリーフィールドとなり,重複時はエラーで登録できないと思います。
CDSは初期フィールドを作成するとプライマリーフィールドが設定されます(例えば物品管理であれば管理番号)。通常,重複するプライマリーフィールドの値を登録するとエラーが出るかと思いますが,デフォルトのCDSでは重複して登録できます!(困ります)
理由
プライマリーフィールドはキーではないため,重複チェックはされない。
(エンティティを作成した際自動で作成されるフィールドが一意識別子のキーとなります。)
対策
エンティティのキー設定画面から自分で作成したフィールドを設定(ここでは管理番号)することで,重複チェックされるキーとなります。
おすすめ参考サイトは以下です。
https://www.d3654.be/cds-entity-key-setting/
はまりどころ2 正しくキー設定したのに動作テスト時に重複チェックしてくれない
はまりどころ1で設定したキーの動作テストをしたところ,キーで設定した値で重複チェックがされず,重複登録できてしまう!
理由
キー設定後は適用されるまでしばらく時間がかかる(設定画面でコミットを押したのに・・・)
対策
しばらく待ってからテストをすると正しく動作します。(私は15分ほど待った後に反映されていました。)
他にもはまったことが増えたら追記します。皆さんもよければコメントで教えてください。