※当初のフロー完成図が間違っていたため、差し替えました。
「
ワークフローとプロセスビルダーのリタイア(廃止):2022年6月の最新情報」のスケジュールのとおりであれば、ワークフローとプロセスビルダーの引退は着実に迫っています。
Salesforceさんが一生懸命フローを使いやすいように改修してくださっていますが、その変化にも追いつけておらず、「そろそろちゃんとフローの知識をアップデートして設定手順を説明できるようにならなければ」とようやく焦ってきましたので、近頃勉強を兼ねてフローを作っています。
今回は勉強のために作ったフローを、自分の振り返りのため、また同じように「今フロー勉強中です!」という方の何かしらの参考になればと思い、ここで共有させていただきます。
※実験なので、後述するレコード変数「recordId」以外の表示ラベル、API参照名などは、ご自身でわかりやすい文字列にして大丈夫です。
※とても長い記事になっていますので、同じ内容の設定を繰り返す部分は割愛しています。
やりたいこと
・標準の取引先オブジェクトで、【関連情報と共にコピー】のアクションをと同じようなことができるようにしたい。
・コピーする予定の関連レコードは取引先責任者と商談。
・コピー後のレコード名には、判別できるように「コピー」を追加したい。
実際に使用するとなると注意点は色々ありますが、今回はこれらの実現を目標とします。
想定する操作の流れ
ユーザ側の操作の流れです。
1.コピーしたい取引先レコードの画面を開く。
2.「関連情報と共にコピー」アクションを選択する。
3.一緒にコピーするレコードとして、取引先責任者か商談、または両方を選択する。
4.「次へ」をクリックする。
5.処理の完了画面で、コピーとして作成された取引先レコード画面のリンクを表示する。
コピーとして作成されたレコードのレコード名には「コピー」が追加され、元のレコードと同じように取引先に取引先責任者と商談が紐づけられている。
使用する機能
・画面フロー
・カスタムアクション
フローの作成
フローの完成図(?)です。上から順に設定していきます。
流れにそって手順を記載するため、必要な変数も、その都度作っていきます。
なお、取引先責任者レコードをコピーする⑩~⑮の手順は、商談レコードをコピーする④~⑨の手順と同様の内容になるため、今回の記事では省略しますが、詳細を確認されたい方は、
「
「フローで取引先を【関連情報と共にコピー】してみた」の「取引先責任者」編」にまとめていますので、そちらもあわせてご確認ください。
「画面フロー」の選択
1.[設定>プロセスの自動化>フロー]の画面で、【新規フロー】をクリックします。
2.「画面フロー」を選択し、【作成】をクリックします。
レコード変数「recordId」の作成
元の取引先レコードの情報を受け取り、取引先のコピーを作成するための情報の入れ物となる変数を作成します。
1.「新規リソース」をクリックします。
2.次の内容で変数を作成します。
リソース種別:変数
API参照名:recordId ※必ずこのAPI参照名にしてください。Iだけ大文字になります。
データ型:レコード
複数の値を許可(コレクション):チェックしない
オブジェクト:取引先
フロー外部での可用性:✔「入力で使用可能」にチェックする
-------------------------------------------
変数「recordId」について操作しているレコードの情報をフローに渡すため、「recordId」というAPI参照名を作成します。データ型は、テキスト型かレコード型になります。
・テキスト型を選択した場合、レコードIdの情報を持つことになるため、元のレコードの項目値などを取得するためには、Idを検索条件としてレコードを取得する必要があります。
・レコード型を選択した場合、元のレコードの情報をすべて受け取るため、レコード取得を行う必要はありません。
◇ SALESFORCE ヘルプ >ドキュメント >SALESFORCE SUMMER '20 リリースノート >Lightning ページまたはクイックアクションからフローを起動するときにレコードを渡す-------------------------------------------
①画面:「関連レコードを選択」画面の作成
①-1.「画面」の要素を追加します。
「画面フロー」の下の+をクリックして、「画面」を選択します。
①-2.「チェックボックスグループ」のコンポーネントを中央のプレビューへドラッグして画面に追加します。
①-3.画面プレビューのチェックボックスグループを選択した状態で、右側で詳細を設定していきます。
「選択肢」の上まで、次のように設定します。
表示ラベル:この取引先と共にコピーするレコードを選択してください。
*画面に表示されるテキストです。
API参照名:SelectRecord
*わかりやすい名前を設定します。
必須:✓(チェックを入れます)
データ型:テキスト
ユーザが複数のオプションを選択できるようにする:はい
コンポーネントの種類:チェックボックスグループ
①-4.選択肢の項目で「+新規選択肢リソース」をクリックし、選択肢の詳細を入力後、【完了】をクリックします。
リソース種別:選択肢
API参照名:Opportunities
選択肢表示ラベル:商談
*テキストで「商談」と入力します。
データ型:テキスト
選択肢の値:商談
*テキストで「商談」と入力します。
①-5.「+選択肢を追加」をクリックして、同じように「取引先責任者」の選択肢を作成します。
API参照名:Contact
選択肢表示ラベル:取引先責任者
*テキストで「取引先責任者」と入力します。
データ型:テキスト
選択肢の値:取引先責任者
*テキストで「商談」と入力します。
①-6.コンポーネントを表示するタイミングを設定します。
デフォルト値:設定しません。
コンポーネントを表示するタイミング:常に
①-7.画面のプロパティを設定します。
プレビューのヘッダーを選択して、「画面のプロパティ」を表示させます。
今回は、ヘッダーとフッターを設定します。フッターの設定はデフォルトのままです。すべて設定し終えたら、【完了】をクリックします。
表示ラベル:関連レコードを選択
API参照名:ScreenSelectRecord
ヘッダーを設定:✓ヘッダーを表示
ヘルプを提供:*今回は使用しません。ユーザに画面上で説明を行いたいときに使用してください。
*以降はデフォルトの設定のままです。
フッターを設定:✓フッターを表示
②割り当て:元の取引先レコードのIDを保存&取引先名に「コピー」の文字列を追加
「+」をクリックし、「割り当て」を追加します。
②-1.では、作成しておいたレコード変数「recordId」の取引先名に「コピー」を追加します。
変数:recordId >Name(取引先名)
演算子:追加
値:コピー *「コピー」と入力します。
-------------------------------------------
recordIdの役割レコード変数「recordId」は、元の取引先レコードのデータを持っている状態です。後でこの変数を使ってレコードを作成(取引先をコピー)するので、新しくコピーとして作成する取引先レコードの項目値のデータでもあります。ここで新しい取引先レコードの取引先名に「コピー」を追加しておくことで、取引先コピー用のデータを完成させます。
-------------------------------------------
②-2.では、新しく変数「OriginalAccountID」を作成し、元の取引先レコードのIDを保存します。
「+新規リソース」をクリックしてリソース種別で変数を選択し、次の内容で変数を作成します。
API参照名:OriginalAccountID
データ型:テキスト
フロー外部での可用性:チェックなし
「割り当ての編集」画面に戻り、次のように割り当ての設定を行います。
変数:OriginalAccountID
演算子:次の文字列と一致する
値:recordId >Id(取引先ID)
【完了】をクリックします。
③作成:取引先のコピーレコードを作成
「+」をクリックし、「レコードを作成」を追加します。
次のように設定します。
表示ラベル:取引先のコピーを作成
API参照名:CreateAccountCopy
作成するレコード数:1
レコード項目の設定方法:レコードからのすべての値を使用
これらの値からレコードを作成:recordId
最後に【完了】をクリックします。
④決定:商談コピーの決定
「+」をクリックし、「決定」を追加します。
次のように設定します。
表示ラベル:商談コピーの決定
API参照名:DesicionCopyOpportunity
結果 1つめ結果の詳細:はい
結果のAPI参照名:Yes00
結果を実行する条件の要件:すべての条件に一致(AND)
リソース:SelectRecord|
演算子:次の文字列と一致する|
値:Opportunity
結果2つめ結果の詳細:いいえ
デフォルトの結果の表示ラベルを「いいえ」に変更します。
最後に【完了】をクリックします。
⑤レコードを取得:関連する商談レコードを取得
「+」をクリックし、「レコードを取得」を追加します。
次のように設定します。
表示ラベル:関連する商談レコードを取得
API参照名:GetRelatedOpportunities
このオブジェクトのレコードを取得:商談
商談レコードを絞り込み:
条件の概要:すべての条件に一致(AND)
項目の値:AccountId(取引先ID)|演算子:次の文字列と一致する|値:OriginalAccountId
商談レコードを並び替え:並び替えなし
保存するレコード数:すべてのレコード
レコードデータの保存方法:すべての項目を自動的に保存
最後に【完了】をクリックします。
⑥ループ:商談をループ
「+」をクリックし、「ループ」を追加します。
次のように設定します。
表示ラベル:商談をループ
API参照名:LoopOpportunities
コレクション変数を選択:{!GetRelatedOpportunities}*先ほど取得した商談コレクションを選択します。
コレクションを反復処理するための方向を指定します。:最初の項目から最後の項目へ
最後に【完了】をクリックします。
⑦割り当て:商談に値を割り当て
「項目ごと」の下の「+」をクリックし、「割り当て」を追加します。
次のように設定します。
表示ラベル:商談に値を割り当て
API参照名:AssignOpportunityValue
変数値を設定:⑦-1.では、商談をループして取得した商談レコードの取引先IDを、③で新しく作成された取引先レコードのIDに置き換えます。
変数:{!LoopOpportunities.AccountId}(ループ Opportunities の現在の項目 >取引先ID)
演算子:次の文字列と一致する
値:recordId >Id(取引先ID)
-------------------------------------------
recordIdのデータは更新されるrecordIdの値は、フロー内で作成されたレコードの値に置き換えられます。ここでは、新しく作成された取引先レコードの情報になっています。
-------------------------------------------
⑦-2.では、商談をループして取得した商談レコードの商談名に「コピー」を追加します。
変数:{!LoopOpportunities.Name}(ループ Opportunities の現在の項目 >商談名)
演算子:追加
値:コピー *「コピー」と入力します。
最後に【完了】をクリックします。
⑧割り当て:商談コレクションに値を割り当て
「+」をクリックし、「割り当て」を追加します。
⑦で各商談レコードの項目に値を割り当てたものを、レコード作成用のコレクション変数に割り当てます。
次のように設定します。
表示ラベル:商談コレクションに値を割り当て
API参照名:AssignOpportunityCollection
変数値を設定:
新しく変数「NewOpportunityCollection」を作成します。
「+新規リソース」をクリックしてリソース種別で変数を選択し、次の内容で変数を作成します。
API参照名:NewOpportunityCollection
データ型:レコード
複数の値を許可(コレクション):✓チェックする
オブジェクト:商談
フロー外部での可用性:チェックなし
「割り当ての編集」画面に戻り、次のように割り当ての設定を行います。
変数:NewOpportunityCollection
演算子:追加
値:{!LoopOpportunities}(ループ LoopOpportunities の現在の項目)
【完了】をクリックします。
⑨レコードを作成:商談レコードのコピーを作成
「最後の項目の後」の下の「+」をクリックし、「レコードを作成」を追加します。
次のように設定します。
表示ラベル:商談レコードのコピーを作成
API参照名:CreateOppCopy
作成するレコード数:複数
値を選択して複数のレコードを作成:NewOpportunityCollection
【完了】をクリックします。
⑩~⑮ 取引先責任者のコピー
④~⑨までの商談のコピーとほぼ同じ内容になります。「
「フローで取引先を【関連情報と共にコピー】してみた」の「取引先責任者」編」に手順がありますので、詳細を確認されたい方は、こちらの記事をご参照ください。
⑯画面:関連情報と共にコピー完了
「+」をクリックし、「画面」を追加します。
⑯-1.「テキスト」のコンポーネントを中央のプレビューへドラッグして画面に追加します。
⑯-2.プレビューの右側で、表示テキストを編集します。
今回は次のように設定しました。
API参照名:LinkNewAccountRecord
テキスト:コピーした取引先はこちらをクリックして確認してください。
「こちら」の部分に、新しく作成した取引先のリンクを設定します。
https://XXXXXXXXXXXXX.lightning.force.com/lightning/r/Account/{!recordId.Id}/view・どのレコードでも構わないので、取引先レコードの詳細画面を開き、URLをコピーします。
・「リソースを挿入…」でレコード変数 「recordId」のID(recordId>Id)を選択し、URLのレコードIDの部分に挿入します。
⑯-3.プレビューのヘッダーを選択して、「画面のプロパティ」を表示させます。
今回は、ヘッダーとフッターを設定します。フッターの設定はデフォルトのままです。すべて設定し終えたら、【完了】をクリックします。
表示ラベル:関連情報と共にコピー完了
API参照名:EndScreen
ヘッダーを設定:✓ヘッダーを表示
ヘルプを提供:*今回は使用しません。ユーザに画面上で説明を行いたいときに使用してください。
*以降はデフォルトの設定のままです。
フッターを設定:✓フッターを表示
フローを保存し、デバッグして挙動を確認後、有効化します。
これで、フローの作成は完了です!
アクションの作成
ユーザがフローを利用できるように、カスタムアクションを作成し、取引先レコードのページレイアウトに追加します。
1.取引先オブジェクトの「ボタン、リンク、およびアクション」のページを開き、【新規アクション】をクリックします。
2.アクション情報を入力します。
次のように設定し、保存します。
アクション種別:フロー
フロー:作成したフローを選択
標準の表示ラベル種別:ーなしー
表示ラベル:☆関連情報と共にコピー *お好きな名前でどうぞ。
名前:CloneAccountWRWN *お好きな名前でどうぞ。
3.ページレイアウトに追加します。
アクションを配置したい取引先のページレイアウトを開き、先ほど作成したアクションを追加します。
想定どおりになっているかを確認
取引先レコードで、追加したアクションを選択します。
コピーしたいレコードとして、取引先責任者と商談の両方にチェックを入れて、【次へ】をクリックします。
新しい取引先レコードのリンクをクリックします。
※リンク先のページが開いたことを確認してから、こちらの画面で【完了】をクリックします。
「コピー」が追加された取引先レコード、そしてそれに紐づく取引先責任者と商談レコードがコピーされています!成功です。
<コピーされたレコード>
<コピー元のレコード>
あくまでも実験です
今回のフローは、練習のために作成したものです。実際に取引先を関連情報と共にコピーとなると、考慮してフロー内で調整しなければならない部分や、運用でカバーする部分も出てくることが予想されますので、もしこちらのフローを参照される場合は、十分に検証を行ってください。
関連記事
「フローで取引先を【関連情報と共にコピー】してみた」の「取引先責任者」編レコードのファイルを自動で削除するフローSpring’22で承認プロセスの結果からフローがトリガできるようになる様子フローで積み上げ集計(その1)フローで積み上げ集計(その2)毎月N日に起動させるフローリストビューで選択したレコードを一括削除してみるワークフローのFlow移行ツール:Migration to Flow(Beta)を試してみましたワークフローとプロセスビルダーのリタイア(廃止):2022年6月の最新情報