Salesforceでフローを作成しよう～参照関係の積み上げ集計項目（子レコード作成、削除、更新対応）～

こんにちは
本橋孝昭です


今回は参照関係で積み上げ集計項目のようにレコード数の確認をする場合のフローを作成します

今回の内容は動画でも公開しています

https://youtu.be/PMSgiy_3h24

<iframe width="560" height="315" src="https://www.youtube.com/embed/PMSgiy_3h24" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>


例として
・カスタムオブジェクトと取引先があり主従関係で結ばれている。
取引先レコードにそれぞれ紐づくカスタムオブジェクトのレコード件数を取引先で表示させたい

という場合、取引先に積み上げ集計項目を作成すれば解決できますね
（余談ですが商談と取引先は参照関係ですが標準オブジェクトの特性上取引先に積み上げ集計項目作成は可能です。）

しかし、ケースと取引先のような関係の場合（デフォルトの）リレーションは参照関係です

そのため、
・取引先に紐づくケースが何件あるか項目で集計したい
という場合、取引先に積み上げ集計項目が作成できないので

ステップ１　取引先にカスタム項目（数値）作成
ステップ２　フローを作成しケースレコード作成時、削除時、更新時に自動で起動して、さきほどステップ１で作成した項目を更新するフロー作成

という設定が必要になります

今回は、その疑似的積み上げ集計項目を作成するための　フローを中心に解説します


## 前提条件（ステップ１）取引先にカスタム数値項目を作成
まずは取引先にカスタム項目を作成しましょう
（今回、作成した項目のAPI参照名は「CaseCount__c」にしました）

![取引先作成１.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/531631/224149e1-ae31-7df9-27f5-a077f5e4bf9b.png)


## ステップ２ー１　フローを作成しよう１～ケース作成時にステップ１項目が更新されるフロー

まずは
・ケース作成時にそのケースに紐づく取引先の項目を更新し計算する

というフローを作成します

フロー概要はこちらです
![フロー1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/531631/28e4eb1c-7cf7-1433-dd33-b0752723083f.png)


それぞれこのような設定になっています
![フロー1-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/531631/f3c0032c-ff86-f1eb-538a-19b189c2fc3d.png)


![フロー1-2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/531631/613b5d15-5344-24a7-909c-94c00005de98.png)

![フロー1-3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/531631/4b89e198-1428-3a70-cefc-0c9fe3d3e2fa.png)

![フロー.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/531631/461d96f4-d010-62b5-0034-47839d02049a.png)


なお、このフローを作成するにあたり
CaseCount　という名前の変数を先に作成してください

![フロー1-5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/531631/447b5bc7-e34e-9a5f-f72b-0e57e3ebdcef.png)


以上で作成時の積み上げ集計項目のようなフロー設定は完了です

しかしこれでは
・レコード削除時には集計結果がそのままではないか
と思った方、多いかと思います

そうです。このフローでは削除時の自動計算はできません

次は削除時の設定について見ていきましょう


## ステップ２ー２　フローを作成しよう２～ケース削除にステップ１項目が更新されるフロー

概要はこちらです

![フロー２.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/531631/4ad805af-99b6-b088-b228-ef042597e93d.png)

それぞれの概要はこちらです

![フロー2-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/531631/667db9a3-cc0f-c0b2-8ca2-b70b8903c235.png)


![フロー2-2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/531631/33829a4a-09f4-51b9-1b15-d3ebff5d7ff0.png)

![フロー2-3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/531631/476c3488-9bb4-b66d-ae9b-34d7079ceab3.png)

![フロー2-4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/531631/6496b6d3-0890-1118-04be-f82158569e28.png)

いかがでしょうか

一見すると難しそうですが、先ほどステップ２－１で作成したフローとほとんど同じなので、慣れてしまえば早く作成できますね

しかしながらこれでは
・ステップ２－１ではケース作成時のフロー
・ステップ２－２ではケース削除時のフロー
を作成しましたが、これでは

・もしもケースを会社Aに紐づけて作成後、後で誤ったことに気づきケースを会社Aから会社Bに紐づけなおす

という動きには対応できてませんね（この場合、会社Aと会社Bにそれぞれステップ１で作成した項目を更新させる動きになりますね）

その更新時のフローを以下で説明します


## ステップ２ー３　フローを作成しよう３～ケース更新時にステップ１項目が更新されるフロー


概要は以下となります

![ステップ３.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/531631/1fc69c11-8575-e0ef-06be-2c0eeee66a8e.png)

詳細は以下となります

![フロー３－１.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/531631/036505d3-ea01-fd48-899e-343b64bdf79a.png)


![フロー３－２.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/531631/ea4e60e1-7ebf-9347-0cae-4969497e7e1e.png)

![フロー3-3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/531631/515d8a7b-3f37-2946-07ea-c3c3862428b0.png)

![フロー３－４.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/531631/df0e3b66-cc11-be7b-2933-382a450f7e9f.png)

![フロー3-5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/531631/a8c6db1a-d048-4d62-40a7-ecd0e1c8f271.png)

![フロー3-6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/531631/9b7b2b2d-242c-17c5-d237-a18940d1837b.png)

なお、このフローを作成する際に
CaseCount2
という変数を作成しました

![end.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/531631/05ebd99c-27bb-700a-0dcb-df7296aeb304.png)