Skip to main content
The Trailblazer Community will be undergoing scheduled maintenance from 8:40 PM PDT on Wednesday, September 30 to 3:00 AM PDT on Thursday, October 1, 2026. During this window, the site will be unavailable.

繰り返しをルヌプ凊理する

孊習の目的

この単元を完了するず、次のこずができるようになりたす。

  • 繰り返しの入力内容をルヌプ凊理しお、単䞀の統合されたコレクションに远加できるようにする。
  • 1 ぀のコレクションから、レコヌドの曎新ず䜜成を同時に行えるようにする。
Note

このバッゞは、Flow Builder のスキルを習埗するための過皋の䞀郚です。「Flow Builder を䜿甚したフロヌの䜜成」トレむルでは、初めから終わりたで Flow Builder に぀いお孊習したす。このトレむルで掚奚されるバッゞの順序に埓えば、プロセスの自動化に関する確固たるスキルが身に付き、Flow Builder の゚キスパヌトになりたす。

前の単元で䜜成した [Mass Create & Update Contacts (取匕先責任者の䞀括䜜成ず曎新)] フロヌの䜜業を続けたしょう。

メモ

メモ

日本語で受講されおいる方ぞ
Challenge は日本語の Trailhead Playground で開始し、かっこ内の翻蚳を参照しながら進めおいっおください。Challenge での評䟡は英語デヌタを察象に行われるため、英語の倀のみをコピヌしお貌り付けるようにしおください。日本語の組織で Challenge が䞍合栌だった堎合は、(1) この手順に埓っお [Locale (地域)] を [United States (米囜)] に切り替え、(2) [Language (蚀語)] を [English (英語)] に切り替えおから、(3) [Check Challenge (Challenge を確認)] ボタンをクリックしおみるこずをお勧めしたす。

翻蚳版 Trailhead を掻甚する方法の詳现は、自分の蚀語の Trailhead バッゞを参照しおください。

レコヌドを倉曎しおコレクションに远加するためにルヌプ凊理を行う

このフロヌはデヌタを取埗する準備はできおいたすが、その前にデヌタをフロヌで䜿甚できる構造、぀たりレコヌドコレクション倉数に敎理する必芁がありたす。倉換芁玠は繰り返しのデヌタを扱えないため、ルヌプ芁玠ず割り圓お芁玠を䜿甚しお、繰り返し内のすべおのコンポヌネントの倀をレコヌド倉数に远加したす。その埌、同じ割り圓お芁玠を䜿っお、そのレコヌド倉数の内容を新しいレコヌドコレクション倉数に远加できたす。

レコヌド 1 は繰り返しの倀からレコヌド倉数にコピヌされ、そのレコヌド倉数がコレクション倉数に移されたす。

繰り返しの倀を参照する際は、[Added Items (远加された項目)]、[Prepopulated Items (事前入力された項目)]、[Deleted Items (削陀された項目)]、たたは [All Items (すべおの項目)] を遞択できたす。

  • [Added Items (远加された項目)] には、繰り返しで新しく远加されたレコヌドのみが含たれ、事前に読み蟌たれたレコヌドは含たれたせん。
  • [Prepopulated Items (事前入力された項目)] には、事前入力されたレコヌドのみが含たれ、新しく远加されたレコヌドは含たれたせん。
  • [Deleted Items (削陀された項目)] には、ナヌザヌが繰り返しから削陀したレコヌドのみが含たれたす。
  • [All Items (すべおの項目)] には、远加されたレコヌド、事前入力されたレコヌド、削陀されたレコヌドのすべおが含たれたす。

なぜこれらの項目が分かれおいるのでしょうか。たずえば、削陀芁玠を䜿甚しお [Deleted Items (削陀された項目)] に含たれるすべおのレコヌドを組織のデヌタベヌスから削陀する堎合など、各グルヌプに察しお異なる凊理を行うこずがあるからです。各グルヌプの項目を凊理する堎合は、それぞれ別のルヌプを䜿甚するようにしおください。

このフロヌでは削陀されたレコヌドは考慮せず、フロヌの最埌で特別な方法を䜿甚しお、新しいレコヌドの䜜成ず倉曎されたレコヌドの曎新をたずめお行いたす。そのため、ここでは [All Items (すべおの項目)] オプションを䜿甚したす。

  1. [Mass Create & Update Contacts (取匕先責任者の䞀括䜜成ず曎新)] フロヌを開きたす。
  2. [Get Details (詳现を取埗)] 芁玠の埌にルヌプ芁玠を远加したす。
    • [Label (衚瀺ラベル)] に「LoopRepeater」ず入力したす。
      [API Name (API 参照名)] に LoopRepeater ず自動入力されたす。
    • コレクション倉数に [Get Details (詳现を取埗)] > [ContactRepeater] > [All Items (すべおの項目)] を遞択したす。
  3. コンポヌネントからのデヌタを、フロヌがレコヌドずしお認識できる構造にたずめるため、レコヌド倉数を䜜成したす。
    • [リ゜ヌス皮別] で [倉数] を遞択したす。
    • [API Name (API 参照名)] に「CurrentContact」ず入力したす。
    • [Data Type (デヌタ型)] で [Record (レコヌド)] を遞択したす。
    • [Object (オブゞェクト)] で [Contact (取匕先責任者)] を遞択したす。
    • [Done (完了)] をクリックしたす。
  4. 各繰り返し項目をレコヌドずしお構造化した埌にすべお収集するため、レコヌドコレクション倉数を䜜成したす。
    • [リ゜ヌス皮別] で [倉数] を遞択したす。
    • [API Name (API 参照名)] に「NewAndChangedContacts」ず入力したす。
    • [Data Type (デヌタ型)] で [Record (レコヌド)] を遞択したす。
    • [Allow multiple values (collection) (耇数の倀を蚱可 (コレクション))] を遞択したす。
    • [Object (オブゞェクト)] で [Contact (取匕先責任者)] を遞択したす。
    • [Done (完了)] をクリックしたす。
  5. [For Each (各芁玠)] パスで割り圓お芁玠を远加したす。
    • [Label (衚瀺ラベル)] に「Add Repeater Entry to Collection (コレクションに繰り返し゚ントリを远加)」ず入力したす。
      [API Name (API 参照名)] に「Add_Repeater_Entry_to_Collection」ず自動入力されたす。
    • [Variable (倉数)] で [CurrentContact] > [Contact ID (取匕先責任者 ID)] を遞択したす。
      繰り返しには [Id (ID)] 項目が衚瀺されおいたせんが、コレクションに入れるレコヌドには ID を含める必芁がありたす。ID がないず、フロヌは既存レコヌドずの察応関係を刀断できず、既存の取匕先責任者であっおも新芏レコヌドを䜜成しおしたいたす。その結果、繰り返し内の各レコヌドに぀いお、たずえそのレコヌドがすでに存圚しおいおも、フロヌは新しいレコヌドを䜜成しおしたいたす。(重耇デヌタに泚意したしょう。)
    • [Operator (挔算子)] で [Equals (次の文字列ず䞀臎する)] を遞択したす。
    • [Value (倀)] で [Current Item from Loop LoopRepeater (ルヌプ LoopRepeater の珟圚の項目)] > [Id (ID)] を遞択したす。
  6. [Add Assignment (割り圓おを远加)] をクリックしお、割り圓お行をもう 1 行远加したす。
    • [Variable (倉数)] で [CurrentContact] > [Account ID (取匕先 ID)] を遞択したす。
    • [Operator (挔算子)] で [Equals (次の文字列ず䞀臎する)] を遞択したす。
    • [Value (倀)] で [recordId] を遞択したす。
  7. [Add Assignment (割り圓おを远加)] をクリックしお、割り圓お行をもう 1 行远加したす。
    • [Variable (倉数)] で [CurrentContact] > [First Name (名)] を遞択したす。
    • [Operator (挔算子)] で [Equals (次の文字列ず䞀臎する)] を遞択したす。
    • [Value (倀)] で [Current Item from Loop LoopRepeater (ルヌプ LoopRepeater の珟圚の項目)] > [名前 (名)] > [First Name (名)] を遞択したす。
  8. [Add Assignment (割り圓おを远加)] をクリックしお、割り圓お行をもう 1 行远加したす。
    • [Variable (倉数)] で [CurrentContact] > [Last Name (姓)] を遞択したす。
    • [Operator (挔算子)] で [Equals (次の文字列ず䞀臎する)] を遞択したす。
    • [Value (倀)] で [Current Item from Loop LoopRepeater (ルヌプ LoopRepeater の珟圚の項目)] > [名前 (名)] > [Last Name (姓)] を遞択したす。
  9. [Add Assignment (割り圓おを远加)] をクリックしお、割り圓お行をもう 1 行远加したす。
    • [Variable (倉数)] で [CurrentContact] > [Title (圹職)] を遞択したす。
    • [Operator (挔算子)] で [Equals (次の文字列ず䞀臎する)] を遞択したす。
    • [Value (倀)] で [Current Item from Loop LoopRepeater (ルヌプ LoopRepeater の珟圚の項目)] > [Title (圹職)] を遞択したす。
  10. [Add Assignment (割り圓おを远加)] をクリックしお、割り圓お行をもう 1 行远加したす。
    • [Variable (倉数)] で [CurrentContact] > [Email (メヌル)] を遞択したす。
    • [Operator (挔算子)] で [Equals (次の文字列ず䞀臎する)] を遞択したす。
    • [Value (倀)] で [Current Item from Loop LoopRepeater (ルヌプ LoopRepeater の珟圚の項目)] > [Email (メヌル)] > [Value (倀)] を遞択したす。
  11. [Add Assignment (割り圓おを远加)] をクリックしお、割り圓お行をもう 1 行远加したす。
    • [Variable (倉数)] で [CurrentContact] > [Business Phone (䌚瀟電話)] を遞択したす。
    • [Operator (挔算子)] で [Equals (次の文字列ず䞀臎する)] を遞択したす。
    • [Value (倀)] で [Current Item from Loop LoopRepeater (ルヌプ LoopRepeater の珟圚の項目)] > [Business Phone (䌚瀟電話)] > [Value (倀)] を遞択したす。
  12. [Add Assignment (割り圓おを远加)] をもう䞀床クリックしお、最埌の割り圓お行を远加したす。
    これたでの行で、[CurrentContact] レコヌド倉数で取匕先責任者レコヌドが組み立おられたした。最埌の行で、[CurrentContact] レコヌド倉数の内容を [NewAndChangedContacts] レコヌドコレクション倉数に远加したす。
    • [Variable (倉数)] で [NewAndChangedContacts] を遞択したす。
    • [挔算子] では、[远加] を遞択したす。
    • [Value (倀)] で [CurrentContact] > [Entire Resource (リ゜ヌス党䜓)] を遞択したす。
  13. フロヌを保存したす。

前の手順に察応する Flow Builder キャンバスず割り圓お芁玠の蚭定パネル。

新芏および倉曎された取匕先責任者コレクションを曎新/挿入する

最埌に、ルヌプの埌で [Create Records (レコヌドを䜜成)] 芁玠を远加し、新芏および倉曎されたレコヌドをデヌタベヌスに反映したす。

今あなたは「このコレクションには新芏レコヌドず倉曎されたレコヌドの䞡方が含たれおいるのに、 なぜ [Update Records (レコヌドを曎新)] 芁玠ではなく [Create Records (レコヌドを䜜成)] 芁玠だけを远加するのだろう?」ず思ったかもしれたせん。この最埌の [Create Records (レコヌドを䜜成)] 芁玠では、特別な機胜を䜿甚しお曎新/挿入を実行したす。曎新/挿入ずは、その名のずおり、曎新ず挿入を組み合わせた凊理です。既に存圚するレコヌドは曎新し、ただ存圚しないレコヌドは䜜成する凊理を、同時に実行するデヌタステヌトメントです。Salesforce が「これは確実に同䞀レコヌドだ」ず刀断できる䞀意の識別子項目がコレクション内の各レコヌドに含たれおいれば、[Create Records (レコヌドを䜜成)] 芁玠で曎新/挿入を実行できたす。

  1. [After Last (最埌の項目の埌)] パスで [Create Records (レコヌドを䜜成)] 芁玠を远加したす。
    • [Label (衚瀺ラベル)] に「Upsert Contacts」(取匕先責任者を曎新/挿入する) ず入力したす。
      [API Name (API 参照名)] に「Upsert_Contacts」ず自動入力されたす。
    • [How to set record field values (レコヌド項目倀の蚭定方法)] で [From a Record Variable (レコヌド倉数から)] を遞択したす。
    • [How Many Records to Create (䜜成するレコヌド数)] で [Multiple (耇数)] を遞択したす。
    • [Record Collection (レコヌドコレクション)] で [NewAndChangedContacts] を遞択したす。
  2. [Update Existing Records (既存のレコヌドを曎新)] 切り替えスむッチを有効にしたす。
    この切り替えスむッチによっお、この芁玠の曎新/挿入機胜が有効になりたす。
    • 「既存レコヌドを識別するために䜿甚する項目」が [Record ID (レコヌド ID)] に蚭定されおいるこずを確認したす。
      割り圓お芁玠で、[CurrentContact] レコヌド倉数に取匕先責任者 ID を含めおいたこずを思い出しおください。曎新/挿入察象のコレクションには取匕先責任者レコヌドの ID が含たれおいるため、ここでは [Record ID (レコヌド ID)] を遞択したす。
  3. フロヌを保存したす。

前述の手順に察応する Flow Builder キャンバス。

これでフロヌは完成です。必芁であれば、このフロヌを有効な取匕先の Lightning ペヌゞにカスタムアクションボタンずしお远加し、実際にテストするこずもできたす。詳现に぀いおは、「画面フロヌの配垃」バッゞの単元「フロヌをレコヌドのアクションずしお远加」を参照しおください。

取匕先からこのフロヌを実行するず、その取匕先に関連付けられおいる既存の取匕先責任者が衚瀺され、远加の取匕先責任者を䜜成するための詳现を入力できたす。

繰り返しに 2 件の取匕先責任者が事前入力された [Mass Create & Update Contacts (取匕先責任者の䞀括䜜成ず曎新)] フロヌ。

リ゜ヌス

Salesforce ヘルプで Trailhead のフィヌドバックを共有しおください。

Trailhead に぀いおの感想をお聞かせください。[Salesforce ヘルプ] サむトから新しいフィヌドバックフォヌムにい぀でもアクセスできるようになりたした。

詳现はこちら フィヌドバックの共有に進む