同じパターンのレコード作成を自動化

同じパターンのレコード作成を自動化

同じ作業を繰り返してるな、、、と思ったら自動化を検討するチャンスです。 面倒くさい!って大事な気づきですよね。
同じパターンのレコード作成を自動化
64
同じパターンのレコード作成を自動化
nagamin
2024/01/09 08:58:23
こんにちは!

今回は、同じパターンのレコード作成について
実装した内容のポイントを2つご紹介いたします。

親オブジェクトに対して、タスクを管理するカスタムオブジェクトが2種類あります。
このタスク管理用のレコードを作成する自動化について、異なる要件の実装を行いました。
[事例1]親レコードが作成されたら、やらなければならないタスクが決まっている場合
[事例2]親レコードの内容に応じて、テンプレートからタスクの内容をコピーしたい場合


まずは、1つめの事例です。

[事例1]親レコードが作成されたら、やらなければならないタスクが決まっている場合

Point!:レコードタイプっていうオブジェクトがあるんだね。

【前提】

・商談を参照する「商談タスク管理」というカスタムオブジェクトを作成しています。
・「商談タスク管理」ではレコードタイプを複数使用しており、タスクの種類ごとにレコードタイプを作成しています。
 例)資料A作成
   資料B作成

【要件】

”小規模商談”というレコードタイプの商談が作成されたら、商談タスク管理(API参照名:OppTask__c)レコードを用意されているレコードタイプの数だけ作成します。

【設定の詳細】

1.商談タスク管理オブジェクトにレコードタイプをタスク分作成


2.商談作成時のレコードトリガフローを作成

起動条件:レコードタイプ:小規模商談 の商談が作成されたとき


2-①.レコードタイプオブジェクトのレコードを取得

「レコードタイプ」のオブジェクトから各オブジェクトで作成されているレコードタイプの情報を取得できます。
(参考)オブジェクトリファレンス:RecordType
・sObject種別・・・商談タスク管理(OppTask__c)
・有効・・・True


2-②.①で取得されたレコードコレクション変数をループ



2-③.レコード変数(varOppTaskRecord)に割り当て

[レコード変数 (a)] varOppTaskRecord
・データ型:レコード
・複数の値を許可(コレクション):False
・オブジェクト:商談
・フロー外部での可用性:False

[割り当て]
・変数 (a) > レコードタイプID ← loopの現在の項目 > レコードID
・変数 (a) > 商談タスク管理名 ← loopの現在の項目 > 名前
・変数 (a) > 商談       ← $Record > 商談ID


2-④.③のレコード変数を レコードコレクション変数(varOppTaskRecords)に割り当て

[レコード変数 (b)] varOppTaskRecords
・データ型:レコード
・複数の値を許可(コレクション):True
・オブジェクト:商談
・フロー外部での可用性:False

[割り当て]
・変数 (b)  varOppTaskRecords  追加  変数(a)  varOppTaskRecord


2-⑤.④のコレクション変数の値でレコードを作成



【動作の確認】

”小規模商談”レコードタイプの商談レコードを作成すると、、、
商談タスク管理のレコードタイプと同じ名前・同じ数の商談タスク管理レコードが作成できました!
タスクの種類が増えても、レコードタイプを追加すればOKです!

実際の設定では

・数式を使って商談タスク管理名に取引先名を追加
・タスクがソートできるようにナンバリングする項目を追加
などの設定を加えるとよさそうですね。


次に

[事例2]レコードの内容に応じて、テンプレートからタスクの内容をコピーしたい場合

Point!:レコード選択肢セットなるものを使ってみた

【前提】

Salesforceに関する要望・お問い合わせをSalesforceのカスタムオブジェクト「SFヘルプデスク」で受け取っています。対応内容を記録するタスク管理用の子レコード「SFタスク管理」を作成します。
定例で行う作業については、テンプレートを用意しており、件名、手順・注意事項が記載されています。
  例)ユーザ登録
    データローダ作業

【要件】

・「SFタスク管理」オブジェクトへテンプレート(API参照名:Template__c)」項目(チェックボックス型)を作成。テンプレートとして登録するレコードはTrueへ
・親レコードから アクションで画面フローを呼び出し
・コピーしたいテンプレートを選択
・必要な項目値をコピーして、レコード作成


【動作の確認】

設定詳細の解説の前に、完成後のオペレーションをご覧ください。

「SFタスク管理」を作成します。

「テンプレート」項目にチェックを入れた「ユーザ登録」と「データローダ作業」という件名のレコードを作成し、テンプレートとして登録しておきます。
(コピーしたい項目)
  ・件名
  ・ステータス
  ・依頼内容

1.「SFヘルプデスク」レコードから、画面フローを起動する「タスク管理作成」ボタンを押下

2.コピーしたいテンプレートを選択

3.完了

テンプレートから必要項目をコピー
起動した「SFヘルプデスク」に紐づく「SFタスク管理」レコードが作成されました。
適宜編集します。



【フローの詳細】


①スタート画面

・表示テキスト
・選択肢ルックアップ を配置
  選択肢にレコード選択肢セット を設定(詳細下図)
  レコード選択肢セットの中で、変数の割り当てまで行えました。便利、、

②レコード変数を割り当て

選択した選択肢以外から設定する値を割り当てます。
紐づけのため、起動したレコードIDを「SFヘルプデスク」に割り当てます
(参考)Salesforceヘルプ:recordId の作成
↑↑自動でトリガしたレコード変数を格納してくれる魔法の変数です。


③変数「varSFTaskRecord」の値からレコードを作成


④完了画面


システム改修なしで、テンプレートの修正が可能です!


実際の設定では、、、
・「テンプレート」項目は、管理者のみ表示・編集可
・テンプレートとして登録されているレコードは編集できないよう入力規則を設定
・「件名」項目のコピー処理は、テンプレートレコードで”(件名)”と設定している文字列部分について、親レコードの件名に置き換える
・テンプレートに紐づいている複数子レコードをコピー
など設定しました。

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