長年Classic環境で運用されていた、VFページを呼び出す処理を実装したJavaScriptカスタムボタン。
これをLightning Experience環境でも使えるようにしたい
(LEXではJSが使用不可のため、作り直しが必要となる)
方針としては、既存のVFページやコントローラクラスに手を入れる必要はなく
JS内で設定しているURLにリンクを飛ばせればよい。今回は画面フローで実装することにする。
※URLパスおよびパラメータ(SFIDをカンマ区切りで連結)を設定する
Classicではカスタムボタンを押した瞬間にVFを開くが、
LEXでは画面内に表示したリンクをクリックすることでVFに遷移する。
操作がワンクッション増えてしまうが、ベストな実現方法が思いつかなかったので
他に良いやり方があれば教えてください。
↓
①フローを作成する
先頭で簡単なエラーチェックした後、適切なURLを作成して画面にリンクとして表示するだけ。
リソースに「ids」変数を用意することが必須です。
これがあることで、リストビュー画面で選択したレコードのSFIDがセットされた状態でフローが実行されます。
スペルが間違っていてもうまく機能しません。詳細ページボタン編で
登場した「recordId」はIが大文字でしたが、「ids」はすべて小文字です。
idsの各要素に対して実行するループ内で、URLパラメータを割り当てます。
今回移植したコントローラクラスでは、SFIDをカンマ区切りで受け取る仕様だったので、
そのように設定します。
VPページへのリンクを表す数式を用意し、画面に表示させます。
③レイアウトに表示
~~~
多分これで移植完了できると思います。