フローの高速作成を使ってレコードの一括作成を行う【Salesforce】
初めてVisualWork Flowの高速作成を使ったので、使い方をまとめました。
まず目的から。
都市マスタというオブジェクトに市町村名と金額が1〜3まであります。今回の都市マスタには北海道179市町村(つまり179レコード)が入っています。
一方、指示書にはテキスト1〜3があって、その下に多対多の関係になるように実行書があります。
指示書を作ると、指示書と都市マスタそれぞれの情報を持った実行書が作られるようにしたいというのが今回の目的です。
都市マスタはこんな感じ。
手順ですが、最初にフローを作ります。
スタートは高速検索から。
都市マスタのデータを一括で引っ張ってきましょう。
高速検索で使うSオブジェクトコレクション変数は都市マスタを参照するように作ります。
次にループです。ループ対象は先ほど作ったSオブジェクトコレクション変数です。ループ変数はSオブジェクト変数を新規作成します。
ループ変数に使うSオブジェクト変数は、ループ対象のSオブジェクトコレクション変数と同じオブジェクトを見に行くように作ります。
次に割り当てですが、その前に一つポイントがあって、今回作成するオブジェクトに関するSオブジェクト変数を作成しておきます。
割り当ての画面です。変数の方に先ほど作ったSオブジェクト変数を、値の方にループのループ変数として割り当てたSオブジェクト変数を当てます。
Sオブジェクト変数への値の割り当て方ですが、オブジェクト変数からドリルダウンすることができます。そして値を入れたい項目を選びます。値の方も同じです。
あと新規作成で、今回のように他オブジェクトとリレーションを行う場合にはそれを忘れないようにする必要があります。都市マスタと実行書の関係のようにレコードごとに異なるレコードとリレーションを作る場合は値はSオブジェクト変数でIDを選びます。
指示書と実行書のように一つのレコードと紐付く場合は変数で大丈夫です。変数を作る際には入力のみにして、プロセスビルダーで値を与えられるようにしておいてください。
そして高速作成をやる場合はもう一つ割り当てを作ります。変数側には新しくSオブジェクトコレクション変数を入れます。値には先ほどの割り当てで変数として使ったSオブジェクト変数を入れます。
新しく作るSオブジェクトコレクション変数は作成するオブジェクトを選びます。
最後に高速作成です。割り当ての変数は割り当て2回目で作ったSオブジェクトコレクション変数です。
あとはリレーションを作っていってください。高速検索を開始に指定して、フローの有効化も行っておいてください。
あとはプロセスビルダーです。プロセスビルダーで今回作ったフローを実行するように設定してください。フロー変数への値割り当てを忘れずに。
さて、実行してみます。こんな指示書を作ってみます。
保存すると、実行書が作られていることがわかります。金額の値は各都市マスタの情報を引っ張ってきています。
レポートを作ってレコードがきちんと作られているか確認しましたがちゃんと北海道の市区町村分の179レコードありました。