長年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をカンマ区切りで受け取る仕様だったので、
そのように設定します。
VFページへのリンクを表す数式を用意し、画面に表示させます。
②フローを呼び出すリストボタンを作成
③レイアウトに表示
多分これで移植完了できると思います。