Winter'21でSalesforceのページレイアウトに動的フォームという機能がリリースされた。
これまでのページレイアウトでは表現力が足りてねぇなと思っていた。
動的フォームがリリースされ、ヘルプを見る感じ、イイ感じな気がする!ということで使ってみた。確かに「やれることは増えたな」と思う一方で、細かいところで「なんでや」と思う点がボロボロと・・・。
個人的に気になったところを制限、注意点としてまとめておこうかと思う。きっと誰かの設計の助けになるはず。
前提:Winter'21
Salesforceで動的フォームでページレイアウトを作る
Salesforceで動的フォームを作る手順をずらっと並べようかと思ったのだが、思っていたのだが、思ってしまったのだが、ヘルプに基本的な事書いてあるから、そっちに委ねよう。
公式ヘルプの参考:動的フォームへのレコードページの移行
従来のレコード詳細ページを動的フォームに変更したときの具体例を示そう。
👇が動的フォームを適用する前の詳細タブの画面。
👇が動的フォームを適用した後の詳細タブの画面。
通常のレコード詳細のページレイアウトで言うところの、「情報」セクションの部分が「項目」の所に配置され、それ以外の部分が「追加項目」の部分に配置されているようだ。ただ、セクションBを見ると分かる通り、空白部が上詰めされている。
Salesforceの動的フォームでできるようになったこと
Salesforceの動的フォームを使うことで、ページレイアウト内の配置の自由度が上がった。それによって、かなり不満に思っていたところが改善されていた。大きくは2つあるので紹介しよう。
セクション間にコンポーネントを追加できる
これこそ、動的フォームを使う醍醐味なのかもしれないが、セクション間に別のコンポーネントを追加できるようになった。これまでは、「レコード詳細」として1枚のページレイアウトを、ドン、と配置するしかなかったが、項目のセクションの間に入れられるようになったので、説明分を入れることができるようになった。具体的に示すと👇みたいな感じ。
編集中に表示/非表示がリアルタイムで反映される
なんと、編集中に、項目の表示/非表示ができるようになっている。個人的にはかなり嬉しい。条件によって、入力できる項目を表示/非表示できるようになるので、ミスを減らせる入力ができるようになった。
具体例を示そう。
チェックボックス項目「カスタム項目D」がONになった時にのみ、テキスト項目「カスタム項目E」が入力できるようにしたいとき。
これが
↓ こんな感じになる。
設定としては、項目に対して、表示条件を指定するだけでよいので、お手軽ですな。
Salesforceの動的フォームの制限・注意事項
Salesforceの動的フォームは良いことばかりじゃない。Winter'21でリリースされたばかりだからか、イマイチな部分も多くある。いかに、私が感じた、イマチチな部分を紹介しよう。レイアウトを設計するときには注意されたし。
モバイルではつかない
モバイルで表示すると次のような表示になる。動的フォームで定義した「項目セクション」部分は表示されていない。うーん。まあ、モバイルで使えないからと言って、困ることはそんなにないか?と思わなくもないけど、不十分な感じがしなくもない。
参考サイト:動的フォームとモバイル
コミュニティでは使えない
動的フォームはあくまで、Lightningプラットフォームでだけ使えるっぽい。ポータルサイトでオブジェクト詳細ページを表示して見たけど、反映されてないね。有効化の操作でも、コミュニティに対してする有効化って感じじゃなかったから、使えないのだろう。
実際にコミュニティの詳細ページを見ると👇になる。
標準オブジェクトでは使えない
動的フォームは標準オブジェクトでは使えないんだと。なんでや!?
動的フォームは、カスタムオブジェクトのレコードページでのみサポートされます。
空白が使えない
一番最初に示してある具体例で、上詰めになっている、と示したのを覚えているだろうか。じつは空白が使えなくなっているのだ。Lightningアプリケーションビルダーにも、空白のコンポーネントがない。
これは個人的には割と致命的。なんで使え無くなっとんねん。ページレイアウトを作るのには、必須の機能やろ。
「印刷用に表示」はレコード詳細が使われる
動的フォームで最高のレイアウトにしたとしても、「印刷用に表示」で印刷できるのはレコード詳細の表示である。せっかくレイアウトを整理して、操作性や可読性を上げた画面を作っても、印刷するのには使えない。ペーパーレスが進んでいる世の中だから、ギリ我慢できなくはないかな。
セクションを閉じた状態が保存されない
通常のレコード詳細のセクションだと、セクションを閉じると、別ページに遷移した場合などに、もう一度表示すると閉じた状態が保存されたまま表示できる。
こういうの👇が保存されない。
操作性という観点では、地味に良い仕様だと思っていたのだが、動的フォームの項目セクションでは閉じた状態が保存されない。機能的にダウングレードやん。
タブオーダーが違う
通常のレコード詳細のタブオーダーは横向き固定なんだが、動的フォームだと項目セクション内で縦方向固定だったりする。番号を付けると、👇の順番だ。
そもそも、レコード詳細のタブオーダーはLightninプラットフォームだと縦向きに設定しても横向きにしかならない。これ、不具合なんじゃねぇの?と思っていたが、まあ、それは良いとしよう。が、今度は縦方向に固定になっている。仕様は統一してほしいものだ。
詳細ページと一緒に使うとどうなるか?
レアなパターンで言うと、動的フォームの「項目セクション」とレコード詳細を一緒にしたときに、片方を編集モードにすると、もう片方は編集モードにならない。
下の緑の部分が「項目セクション」、青の部分が「レコード詳細」にしていて、「項目セクション」の鉛筆マークをクリックして編集モードにしたときの図だ。
「項目セクション」にある項目は変更できるが、「レコード詳細」にある項目は変更できなくなっている。
シチュエーションとしては、それほど多くないパターンだろうが、これはこれでイマイチスペックだなぁ、と思う。
まとめ:Salesforceで動的フォームの今後に期待
Salesforceの動的フォームはWinter'21でリリースされたばかりの機能だから、今後アップデートが入る機能だと思われる。本記事でまとめた内容が改善されるか、されないかはSalesforce次第だが、ユーザーにとっても、開発者にとっても良い機能にしてもらいたい。