LoginSignup
1
1
Qiita×Findy記事投稿キャンペーン 「今の開発組織でトライしたこと・トライしていること・トライしようとしていること」

Salesforceでフローを作成しよう~2つの親オブジェクトを持つ子オブジェクトで2つ同じ親オブジェクトを持つレコードを作成させない方法

Last updated at Posted at 2024-04-20

こんにちは
本橋孝昭です

今回はSalesforceフローを使い
・2つの親オブジェクトを持つ子オブジェクトで2つ同じ親オブジェクトを持つレコードを作成させない方法
についてご紹介します

今回の内容は動画でも解説しています

例としてこちらのようなオブジェクト構成がSalesforceであったとします

連結オブジェクト.png

求人掲載オブジェクトのレコードを作成する際
・職種 レコード
・職務 レコード
を紐づけて作成しますが

1.求人掲載作成時に 職種A 職務aのレコードを紐づけて作成
→成功
2.次に求人掲載作成時に 職種A 職務aのレコードを紐づけて作成
→失敗(さきほどの1職種も職務も同じ親なので作成できないようにする)

3.次に求人掲載作成時に 職種A 職務bのレコードを紐づけて作成
→成功(職種Aと職務aは組み合わせがすでにあるが職種Aと職務bの組み合わせの求人掲載レコードは無いから)

上記のような設定ができるフローを作成します

こちらのフローを作成すれば不要な重複のようなデータを作成することを防ぐので大変便利になりますね

なお今回は分かりやすいようにフロー作成の例として
・親1は「親1オブジェクト」(Parent1__c)
・親2は「親2オブジェクト」(Parent2__c)
・子は「子オブジェクト」(Child__c)

とします

それではフローの設定画面を見ていきます

フロー全体像

001フロー.png

フロー詳細

image.png

※最後のANDは ID 次の文字列に一致しない {!$Record.Id} です

002フロー.png

0022フロー.png

003フロー.png

※もちろんエラーメッセージは任意で大丈夫です
今回は例としてこのようなエラーメッセージを作成しました

親1オブジェクトと親2オブジェクトで全く同じデータのものがあります。
こちら同じものがすでにあるので保存はできないです。
同じデータはこちらです
https://wise-koala-1v6x88-dev-ed.trailblaze.lightning.force.com/lightning/r/Child__c/{!GetChild.Id}/view

なお、このURLは例でありSalesforce環境により異なります
(「wise-koala-1v6x88-dev-ed.trailblaze.」は他環境により異なります)
もしもそちらの環境で設定したい場合、子オブジェクトのレコード(なんでもいいので)を開きそのURLをコピペして貼ることが確実です

フロー123.png

これでフローの設定は完成です

フローを有効にして、子レコード作成時に親1オブジェクトと親2オブジェクトレコードの紐づけがすでにある場合エラーを起こしレコード保存ができなくなります

124フロー.png

そして表示されるURLを見ると作成しようとしている親1と親2がすでに紐づいている子オブジェクトのレコードが表示されます

(上記画像でいうと「親1-A」と「親2-A」が紐づく子オブジェクトのレコードがURLで表示されます)

おまけ アクションの挙動

こちらのフローのエラーメッセージはレコード作成アクション時でも発生することが確認しました

例として親1オブジェクトにこのようなアクションを作成してページレイアウトに表示させると、親1オブジェクトレコードから子オブジェクトのレコード作成が可能ですね

126フロー.png

しかしながら、アクションからの子オブジェクトのレコード作成でも今回のような条件で子レコード作成の場合同様のエラーを発生することが可能です

127フロー.png

今回のようなフローを作成すれば重複するようなレコード作成を防ぐことが出来そうですね
ぜひいろいろと試してみてください

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1