0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

VFを呼び出すカスタムボタンをLEXでも使えるようにする(リストボタン編)

Last updated at Posted at 2024-11-15

長年Classic環境で運用されていた、VFページを呼び出すJavaScriptカスタムボタン。


1.png

これをLightning Experience環境でも使えるようにしたい。
(LEXではJSが使用不可のため、作り直しが必要となる)

方針としては、既存のVFページやコントローラクラスに手を入れる必要はなく
JS内で設定しているURLにリンクを飛ばせればよい。今回は画面フローで実装します。
※URLパスおよびパラメータ(SFIDをカンマ区切りで連結)を設定

Classicではカスタムボタンを押した瞬間にVFを開きますが、
LEXでは画面フロー内に表示したリンクをクリックすることでVFに遷移します。
操作がワンクッション増えてしまうが、ベストな実現方法が思いつかなかったので
他に良いやり方があれば教えてください。

①フローを作成する

先頭で簡単なエラーチェックした後、適切なURLを作成して画面にリンクとして表示する
画面フローを用意します。
2.png

リソースに「ids」変数を用意することが必須です。
これがあることで、リストビュー画面で選択したレコードのSFIDがセットされた状態でフローが実行されます。
スペルが間違っていてもうまく機能しません。詳細ページボタン編
登場した「recordId」はIが大文字でしたが、「ids」はすべて小文字です。
4.png

idsの各要素に対して実行するループ内で、URLパラメータを割り当てます。
今回移植したコントローラクラスでは、SFIDをカンマ区切りで受け取る仕様だったので、
そのように設定します。
5.png

VFページへのリンクを表す数式を用意し、画面に表示させます。
6.png

7.png

②フローを呼び出すリストボタンを作成

9.png

指定するURLは、フローのAPI参照名を指定します。
8.png

③レイアウトに表示

10.png

多分これで移植完了できると思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?