プログラマ38の日記

主にプログラムメモです。

Salesforce: lightning:picklistPath について調べたこと

lightning:picklistPath について調べて考えたことのメモです。

 

f:id:crmprogrammer38:20200424092312p:plain

上記のように、lightning:picklistPathは、いわゆるパスをLightning Componentタグで書ける機能で、次の特徴があります。

  1. パスのように表示する選択リストの項目を変数で指定できる
  2. パスの更新ボタンはない
  3. 連動選択リストの連動関係の連動項目(制御される側)でも表示される選択リスト値は連動関係の設定は関係ない
  4. レコードタイプ毎で使える選択リスト値を設定した場合は、そのレコードタイプで表示可能な選択リスト値が表示される

 

最初調べた時は、連動関係を使って2段階のステータスで制御している時にパスを2つ表示できたらいいなという期待をもって調べたのですが、3の連動関係に関係なく選択リストが表示されるのでうーんとなってました。

やりたかったのはこんな感じで、下のパスは連動項目が表示されるイメージです。

f:id:crmprogrammer38:20200424092612p:plain

 

タグをかけばこれが実現できたら便利なのにと思ってましたが、次を実装することで対処できるのでアイデアを残しておこうと思います。(実現するために色々な設定をしていてメンテナンス性は度外視しています)

  1. 連動関係の連動項目を、制御される制御項目毎に別項目として定義する、この項目はレイアウトに表示しない
  2. lightning:picklistPathを使い、制御項目の値に応じて該当する選択リスト項目を表示する
  3. lightning:picklistPathでは更新ボタンがないので、lightning:picklistPath上で選択リストが選択されたらそのタイミングで更新する処理を実装する。(onselectで、確認メッセージ表示と、選択リスト値の更新を行う。選択リスト値を更新する際に、別項目として定義した選択リスト値と、元になる連動関係の連動項目の両方を更新する)
  4. パス上ではなく、連動項目側を変更されたら、連動項目に該当する選択リスト項目も同期するようにトリガを実装する

上記で、2段階のパスが実装できます。

実装の詳細は次で記載します。

 

crmprogrammer38.hatenablog.com