※こちらは過去に公開していたブログからの移行記事です。
オブジェクト固有のアクションの関連(子オブジェクト)レコード作成って便利ですよね。
ページレイアウトのアクションに表示できたり、親レコードの項目値を子レコードへ引き継ぐこともできるので作成することが多いです。
その挙動確認の際、まれに自分の画面では表示されているのに、他の人の画面では表示されていない?!ということがあります。
レコード作成のアクションが表示されていない人がいる!
例えば、取引先で子取引先レコードを作成するアクションを作り、ページレイアウトに表示させたとき。
↓のようになることがあります。
考えられる理由として……
1. そのオブジェクトへのアクセス権がない?
2. そのオブジェクトのレコード作成権限がない?
3. プロファイルでページレイアウトが違う?
ということが真っ先に考えられるのではないでしょうか?
しかし今回の場合、
1. そのオブジェクトへのアクセス権がない?
→ 今回設定したのは取引先。そうなると取引先そのものが見れないはず(=そのユーザは取引先へのアクセス権はある)?
2. そのオブジェクトのレコード作成権限がない?
→取引先のレコード作成権限は付与してされています!
3. プロファイルでページレイアウトが違う?
→ ページレイアウトの割り当てを見ると、シス管と当該プロファイルに割り当てられているページレイアウトは一緒です。
なんでだ…??と思いレコードを必死に観察してみると…他のユーザの画面にリレーションを作成している項目である「親取引先」項目が表示されていない?!
原因は項目レベルセキュリティだった!
実は、新規レコード作成アクションでは、プロファイルの項目レベルセキュリティ」で親オブジェクトへの参照項目にアクセス権がなければ表示されません。
そのユーザのプロファイルの項目レベルセキュリティを確認したところ、「親取引先」項目に対してアクセス権が外されていました。
そのため、アクセス権を付与すると、
変更したプロファイルのユーザの取引先レコードにも、「子取引先作成」アクションが表示されるようになりました。
もしプロファイルによって表示されるアクションが違う!という場合は、項目レベルセキュリティもチェックしてみてくださいね。
関連記事
主従関係の子オブジェクトを作成するアクションは主従関係の親からしか作成できない…。アクション ③オブジェクト固有のアクションを作成する(プレミアムコンテンツ)
{{i18n("articles.view.premium")}}