[SFDC vs D365]ページレイアウトとフォームの違い比較

さて、フォームの細かい設定についても軽く触れたところで、ページレイアウトと比較をしたいと思います。

スポンサーリンク

ページレイアウトとフォーム違い比較

まとめると、以下の表のような形になります。

設定可能な列数

セクション内に配置できる最大列数となります。

セクション分け

セクションを分けることができます。

セクション分け

タブ分けすることができます。
ページレイアウトには標準で用意されていません。

必須設定

必須項目に設定可能かどうかを指定できます。

ページレイアウトの場合は、項目自体が必須項目でなくても、レイアウト上は必須項目にすることができます
この設定のギャップは、画面から入力した場合と、データインポートした場合で使い分けする場合に有効的で、ユーザ任せになってしまう画面入力の精度を上げることができます。

一方のフォームは、フィールドの必須項目に依存し、フォーム上で必須項目を設定することはできません。

読み取り設定

ページレイアウト上またはフォーム上から読み取り専用項目として表示のみの設定することができます。
こちらは、必須項目と違いフォームでも設定可能です。
ワークフローなどで自動設定する項目や、データインポートでのみ設定するような項目に対して使用します。

同じ項目の複数配置

フォームは同一項目を複数配置することができます。
複数配置したとしても、1つ更新すれば他に配置した同じ項目も同時に反映されます。
タブやセクション単位で情報を出し分けする場合、概要情報など共有的に表示したいときは同一項目の複数配置を使用します。

画面の埋め込み

ページレイアウト上、フォーム上に(ほぼ)任意の画面を埋め込むことができます。
ページレイアウトはVisualforce、フォームはHTMLのWebリソースを埋め込むこそが可能です。

連動選択リスト

レイアウトというよりは項目設定にはなりますが、ページレイアウトは連動選択リストがサポートされています。
これにより、選んだ選択肢に応じて他の項目の選択肢が動的に変わることが可能です。
D365は連動選択リストがサポートされていませんが、スクリプトを使用すれば同じような動作の実現は可能です。

レコードタイプ別設定

ページレイアウトはレコードタイプに応じて使用できるページレイアウトを変えることができます
一方のフォームは、D365にレコードタイプという概念がありませんので、当然フォームの切り替えがありません。
ただし、こちらもスクリプトを実装すれば、表示項目を動的に変えることか可能です

プロファイル・ロールセキュリティ別設定

プロファイル・ロールセキュリティによって使用できるページレイアウト・フォームが決定します。
詳しくは後述します。

複数フォーム

ページレイアウトはプロファイルとレコードタイプの組み合わせにより、1つのページレイアウトが使用されることになります
一方のフォームは、ログインユーザが属するセキュリティロールに付与されたフォームが使用可能です
そのフォームが複数該当するのであれば、複数見ることが可能です。
フォームには優先順位が設けられており、優先順位が高いものがデフォルトで表示されますが、違うフォームに切り替えることが可能です。

コントローライベント

選択リストで値を選択したときやテキストに値を入力したときなどコンポーネントイベントが発生したとき、OnChangeやOnLoadイベントで独自にビジネスロジックをカスタマイズの可否を表します。
ページレイアウトでは基本できませんが(高度なことをすればできるレベル)、フォームはそれぞれのコンポーネントに対し、イベントの受け口があるため、そこにスクリプトを書き込む形となります。
これがあるお陰て、フォームの方は小回りが効きやすいです。

セキュリティについて

プロファイル・セキュリティロールの所でも触れましたが、ページレイアウトとフォームのアクセス権が若干異なります。

ページレイアウトは自分が所属しているプロファイル+レコードタイプの組み合わせによりマトリックスによりページレイアウトが割り当てられます。

その為、使用できるページレイアウトは必ず1つになります。

フォームは、フォーム単位で使用可能なセキュリティロールを割り当てます。

コンポーネントの[エンティティ]→[エンティティ名]→[フォーム]から対象フォームにチェックをいれて以下アイコンを押すと

使用可能なセキュリティロールを選択するダイアログが出るので設定してOK。

こうして、使用できるフォームは参照画面の左上からフォームの選択が可能になります。

移行を想定したときに

以上の比較結果から、システムをSFDCからD365(またはその逆)に移行するとき、○→×になっている機能について対策を立てる必要があります。

例えば、連動選択リストを使用していればオプションセットのOnChangeイベントでスクリプトを記載して、制御項目の選択肢を変更するなどの処理に置き換える必要があります。

特にボリューミーなのがレコードタイプによるレイアウトの切り替えなので、工数と相談してスクリプトをゴリゴリ描くのか、レコードタイプを整理するのかをプロジェクト内でうまく判断できるようにしましょう。

そーこーしてるうちに、もう少しで試用期間の30日になっちゃう。
う〜ん、全然進んでないなぁ〜。
試用期間延長しないと。

コメント