Common Data Service のプライマリフィールドとキーについて で紹介したキーについて、先日一意制約がうまく動作しないという話がありました。
再現手順
任意のエンティティで一意制約をかけたい列に対してキーを設定します。
以下は取引先企業に対して、取引先企業名と電子メールに対して制約を書けています。
次にエンティティの保存をクリックして変更を反映します。
理由と対処
キーを作成すると、バックグランドジョブでインデックスが作成されますが、いくつかの理由で上記問題が発生します。
- 既に重複レコードがある
- インデックスが作成される前にレコードを作成してしまった
対処
まずは現在のキー作成のステータスを確認します。
2. 「設定」の右側にある下矢印をクリックして、ソリューションを選択。
3.「アンマネージドソリューション」のビューより「Common Data Services Default Solution」を選択。
4. エンティティを展開して、キーを確認。ここではステータスが失敗になっている。
5. エラーをクリックして詳細を確認。重複データが既にある旨が表示されいている。
この場合は、すでに重複しているレコードの値を変更して、気W-再作成してください。
ステータスが失敗でも完了でもない場合は、時間がかかっているだけですので、しばらく待ってからステータスを再度確認してください。
まとめ
CDS の画面にもステータスが出るといいのですが、現在は上記手順で確認が必要です。思ったように動作しない場合は確認してみてください。