salesforceのDeploy to Severがfield integrity exceptionで失敗する時の対処法

eclipseから参照関係のカスタム項目を持つオブジェクトを含むプロジェクトをデプロイしようとしてvalidateすると、以下のエラーが出て、デプロイできない場合があります。

Problem: field integrity exception: unknown (must specify either cascade delete or restrict delete for required lookup foreign key)

直訳すると、外部キーを参照している項目なので、「cascade delete」なのか「restrict delete」なのかを指定してください ということのようです。

項目の設定のところで、該当する箇所は、「参照関係オプション」の「参照レコードが削除された場合の対処方法」というところになります。

ただ、その上の項目、「必須項目」の部分で「値の入力を必須にする」にチェックを入れておくと、「この項目の値をクリアします。」の方が選択できなくなるのですが、それだと、明示的に選んだことになっていないようでした。。。

このせいで少し原因解明に手間取ってしまったのですが、必須項目のオプションを外し、「この項目の値をクリアします。

この項目を必須にした場合、このオプションは選択できません。」の方を選択すると、無事デプロイできるようになりました。

ただ、参照項目が入力を必須にしなければならない項目の場合、少し困ってしまいますので、私の場合は、入力規則を作成し、入力項目が空の場合はエラーメッセージを表示するようにすることで回避しました。

参照項目なので、何か入力された場合には、その参照してしる項目の値でない場合にはエラーになりますので、空の場合を防げば問題ありません。