実験:フローで取引先を【関連情報と共にコピー】してみた

実験:フローで取引先を【関連情報と共にコピー】してみた

機能を理解するためには、やはり実際に触るのが一番です。レコード情報の取得、レコードのコピーの作成について練習してみました。
実験:フローで取引先を【関連情報と共にコピー】してみた
36
実験:フローで取引先を【関連情報と共にコピー】してみた
Admin
2022/07/01 11:18:53
※当初のフロー完成図が間違っていたため、差し替えました。

ワークフローとプロセスビルダーのリタイア(廃止):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月の最新情報


gilde tech(for Salesforce)」に入会しませんか?
登録すると、「gilde tech」に掲載されているSalesforceのノウハウを全部閲覧できるだけでなく、自分が知っている知識を発信し、他の会員と交流することもできます。
またSalesforceの知識習得に役立つイベント情報も得ることができます。
是非ここで得た知識を業務に活かしてください!
36
コメント