繰り返しを使用してレコードを作成して更新する
学習の目的
この単元を完了すると、次のことができるようになります。
- 複数のレコードをフロー画面上で一度に作成する方法を理解する。
- 繰り返しとその項目を設定し、レコードの表示と編集を行う方法を理解する。
ループが必要になる別のユースケースを見ていきましょう。このケースでは、実装にもう少し手順が必要になります。
繰り返しを使用して 1 つの画面で複数のデータアクションを実行する
Pyroclastic, Inc. の営業担当は、新しい見込み客のもとを頻繁に訪問します。初回のミーティングはいつもスムーズに進みません。営業担当が、ミーティングの出席者それぞれに情報を 1 人ずつ尋ねて、出席者ごとに取引先責任者レコードを作成および更新しなければならないためです。このプロセスは、クリック操作やページの読み込みが多いせいで、さらに面倒になります。重要な営業活動の流れを止めずに、作業を素早く進められるインターフェースを作成するよう依頼されました。
幸い、繰り返し画面コンポーネントはこのユースケース向けに設計されています。繰り返しを使用すると、1 つの画面で、データのまとまりをすばやく入力および更新できます。取引先上のボタンから実行し、その取引先の既存の取引先責任者を表示して、その取引先に取引先責任者を追加作成できるフローを作成しましょう。
画面上で繰り返しコンポーネントを実行すると、定義した収集済みレコードと、一連の項目が表示されます。ユーザーが [Add (追加)] ボタンをクリックすると、同じ項目セットがもう 1 つ画面に追加されます。ユーザーは必要な数だけ [Add (追加)] をクリックして、任意の数のレコードを定義できます。
画面フローを作成して既存の取引先責任者を取得する
まず、フローを作成します。次に、現在の取引先の ID を受け取るための変数を使用します。その後、[Get Records (レコードを取得)] 要素を作成して、取引先の既存の取引先責任者を取得します。
- 画面フローを作成します。
- 現在の取引先責任者の ID を格納する変数を作成します。
- [リソース種別] で [変数] を選択します。
- [API Name (API 参照名)] に「
varAccountID」と入力します。
- [データ型] で [テキスト] を選択します。
- [Availability Outside the Flow (フロー外部での可用性)] で [Available for input (入力で使用可能)] を選択します。
-
[Done (完了)] をクリックします。
- [リソース種別] で [変数] を選択します。
- フローキャンバスで、[Get records (レコードを取得)] 要素を作成します。
- [Label (表示ラベル)] に「
Get Existing Contacts(既存の取引先責任者を取得)」と入力します。
[API Name (API 参照名)] に「Get_Existing_Contacts」と自動入力されます。
- [Object (オブジェクト)] で [Contact (取引先責任者)] を選択します。
- [Condition Requirements (条件の要件)] で [All Conditions Are Met (AND) (すべての条件に一致 (AND))] を選択します。
- [Field (項目)] で [Account ID (取引先 ID)] を選択します。
- [Operator (演算子)] で [Equals (次の文字列と一致する)] を選択します。
- [Value (値)] で [varAccountID] を選択します。
- [How Many Records to Store (保存するレコード数)] で、[All records (すべてのレコード)] を選択します。
- [Label (表示ラベル)] に「
- フローを保存します。
- [Flow Label (フロー表示ラベル)] に「
Mass Create & Update Contacts(取引先責任者の一括作成と更新)」と入力します。
[Flow API Name (フロー API 参照名)] に「Mass_Create_Update_Contacts」と自動入力されます。
- [Flow Label (フロー表示ラベル)] に「
繰り返し項目を含む画面を作成する
次に、取得したい取引先責任者の項目を含む繰り返しコンポーネントを使用して、画面を作成します。取得した既存の取引先責任者を反映するように、各項目のデフォルト値を設定してください。
- [Get Existing Contacts (既存の取引先責任者を取得)] 要素の後に画面要素を追加します。
- [Label (表示ラベル)] に「
Get Details(詳細を取得)」と入力します。
[API Name (API 参照名)] に「Get_Details」と自動入力されます。
- [Label (表示ラベル)] に「
- 画面キャンバスで、コンポーネントリストの [Display (表示)] セクションまでスクロールし、繰り返しコンポーネントを追加します。
- [API Name (API 参照名)] に「
ContactRepeater」と入力します。
- [API Name (API 参照名)] に「
- コンポーネントリストから [Name (名前)] をドラッグして、繰り返しコンポーネントの [Drag components to include in the repeater here (繰り返しに含めるコンポーネントをここにドラッグ)] ボックスにドロップします。
繰り返しは、内部に含まれるコンポーネントだけを繰り返すため、コンポーネントを必ず繰り返し内にドラッグしてください。この最初のコンポーネントでは、コンポーネントを正しい位置にドラッグすると、[Drag components to include in the repeater here (繰り返しに含めるコンポーネントをここにドラッグ)] ボックスが緑色に変わります。
- [API Name (API 参照名)] に「
Name(名前)」と入力します。
- ほかの項目は、今はデフォルトのままにします。
- [API Name (API 参照名)] に「
- [Components (コンポーネント)] リストから [Text (テキスト)] を繰り返しコンポーネントにドラッグします。
テキストコンポーネントを正しい位置にドラッグすると、繰り返し内のコンポーネント (現時点では [Name (名前)] コンポーネントのみ) が緑色に変わります。- [Label (表示ラベル)] に「
Title(役職)」と入力します。
[API Name (API 参照名)] に「Title」と自動入力されます。
- ほかの項目は、今はデフォルトのままにします。
- [Label (表示ラベル)] に「
- [Components (コンポーネント)] リストから [Email (メール)] を繰り返しコンポーネントにドラッグします。
- [API Name (API 参照名)] に「
Email(メール)」と入力します。
- 表示ラベルが「
Emaill」であることを確認します。
- ほかの項目は、今はデフォルトのままにします。
- [API Name (API 参照名)] に「
- [Components (コンポーネント)] リストから [Phone (電話)] を繰り返しコンポーネントにドラッグします。
- [API Name (API 参照名)] には「
Business_Phone」と入力します。
- [Label (表示ラベル)] に「
Business Phone(会社電話)」と入力します。
- ほかの項目は、今はデフォルトのままにします。
- [API Name (API 参照名)] には「
-
[Done (完了)] をクリックします。
- フローを保存します。
![前の手順に対応する [New Screen (新規画面)] ウィンドウと画面キャンバス。](https://res.cloudinary.com/hy4kyit2a/f_auto,fl_lossy,q_70/learn/modules/loops-in-flow-builder/create-and-update-records-with-a-repeater/images/ja-JP/d28b75d22dcb3f3cb8cb2885d91ade43_kix.2nc8dtb2qbsz.png)
すべての項目が [Remove (削除)] ボタンより上にあり、繰り返しの境界ボックス内に収まっていることを確認することで、すべての項目が繰り返し内にあることを目視で検証できます。
現時点で必要な項目は以上です。ただし、これらの項目が繰り返しコンポーネントで適切に動作するようにするには、もう少し設定が必要です。
既存レコードのデフォルト項目値を設定する
これらの画面コンポーネントは、新しい取引先責任者を作成するためだけのものではありません。既存の取引先責任者を編集するためにも、これらの画面コンポーネントを使用しますが、現時点ではフローはそのことを理解していません。最終的にフローには、入力されたデータを取引先責任者レコードに反映する要素が含まれますが、それでもフローは、これらのコンポーネントが実際のレコード項目を表しているとは認識できません。そのため、繰り返し内のコンポーネントがどのコレクション変数に対応しているのかを繰り返しに指定し、さらに各コンポーネントがどの項目に対応しているのかを指定する必要があります。これらの設定を行うことで、フローは既存の取引先責任者から取得した各項目値を、どこに表示すればよいかを理解できるようになります。
この項目とコンポーネントの対応付けは、各コンポーネントの Default Value (デフォルト値) 項目で行います。繰り返しに事前入力済みの項目を含むコレクション変数を指定すると、コンポーネントは [Repeater Prepopulated Items (繰り返しの事前入力された項目)] というセクションを通して、その事前入力データにアクセスできるようになります。
![[Repeater Prepopulated Items (繰り返しの事前入力された項目)] セクションは、画面コンポーネントの [Default Value (デフォルト値)] 項目でリソースピッカーを開いたときに表示されます。](https://res.cloudinary.com/hy4kyit2a/f_auto,fl_lossy,q_70/learn/modules/loops-in-flow-builder/create-and-update-records-with-a-repeater/images/ja-JP/09c6f406fced1faa05f2a9424eaebaa8_kix.8ir1tn6rlie9.png)
このセクションは、繰り返し内に含まれているコンポーネントの値を選択する場合にのみ表示され、かつ、その繰り返しにデータソースが設定されている場合にのみ表示されます。このセクションでは、[Get Existing Contacts (既存の取引先責任者を取得)] 要素で取得した取引先責任者など、フローのコレクション変数にアクセスできるため、繰り返し内のコンポーネントでコレクションの値を使用できます。フローで画面が実行されると、繰り返しはコレクション内の各項目に対して 1 組のコンポーネントを事前入力した状態で表示します。その後、ユーザーが画面上で既存レコードに変更を加えると、フローを設定して、それらの変更をレコードに保存できるようになります。
それでは、繰り返しと各コンポーネントのデフォルト値を設定していきましょう。
- 画面キャンバスで、ほかのコンポーネントを含んでいる繰り返しコンポーネントを選択します。
繰り返しを選択するには、[Add (追加)] ボタンの近くの領域をクリックします。正しい場所にマウスを合わせると、その中に含まれているコンポーネントの周囲が青い枠で囲まれるのでわかります。![項目の下 ([Add (追加)] ボタンの近く) にマウスを合わせてクリックし、繰り返しコンポーネントを選択します。](https://res.cloudinary.com/hy4kyit2a/f_auto,fl_lossy,q_70/learn/modules/loops-in-flow-builder/create-and-update-records-with-a-repeater/images/ja-JP/b91a08a14c48aab55cbc18fe79df449c_kix.fxalwsn4q72l.png)
- 繰り返しの設定パネルで [Configure Data Source (データソースを設定)] をクリックします。
- [Collection for Prepopulated Items (事前入力項目のコレクション)] で [Contacts from Get Existing Contacts ([Get Existing Contacts (既存の取引先責任者を取得)] からの取引先責任者)] を選択します。
この項目は、繰り返し内に表示する既存レコードがどのコレクションに含まれているかを指定します。
- [Collection for Prepopulated Items (事前入力項目のコレクション)] で [Contacts from Get Existing Contacts ([Get Existing Contacts (既存の取引先責任者を取得)] からの取引先責任者)] を選択します。
- 画面キャンバスで [Name (名前)] コンポーネントを選択します。
- [Name (名前)] コンポーネントのプロパティで、[First Name (名)] 項目の [Repeater Prepopulated Items (繰り返しの事前入力項目)] セクションまでスクロールします。
-
[Contacts from Get Existing Contacts ([Get Existing Contacts (既存の取引先責任者を取得)] からの取引先責任者)] を選択し、次に [FirstName] を選択します。
- [Last Name (姓)] 項目でも、[Repeater Prepopulated Items (繰り返しの事前入力項目)] セクションから [Contacts from Get Existing Contacts ([Get Existing Contacts (既存の取引先責任者を取得)] からの取引先責任者)] を選択し、[LastName] を選択します。
- [Name (名前)] コンポーネントのプロパティで、[First Name (名)] 項目の [Repeater Prepopulated Items (繰り返しの事前入力項目)] セクションまでスクロールします。
- 画面キャンバスで [Title (役職)] コンポーネントを選択します。
- [Default Value (デフォルト値)] に [Contacts from Get Existing Contacts ([Get Existing Contacts (既存の取引先責任者を取得)] からの取引先責任者)] を選択し、次に [Title (役職)] を選択します。
- [Default Value (デフォルト値)] に [Contacts from Get Existing Contacts ([Get Existing Contacts (既存の取引先責任者を取得)] からの取引先責任者)] を選択し、次に [Title (役職)] を選択します。
- 画面キャンバスで [Email (メール)] コンポーネントを選択します。
- [Value (値)] で [Contacts from Get Existing Contacts ([Get Existing Contacts (既存の取引先責任者を取得)] からの取引先責任者)] を選択し、次に [Email (メール)] を選択します。
一部のコンポーネントでは、[Value (値)] 項目がほかのコンポーネントにある [Default Value (デフォルト値)] 項目と同じ役割を果たします。各項目の役割が分からない場合は、その項目の横にある
にマウスを合わせると詳細を確認できます。
- [Value (値)] で [Contacts from Get Existing Contacts ([Get Existing Contacts (既存の取引先責任者を取得)] からの取引先責任者)] を選択し、次に [Email (メール)] を選択します。
- 画面キャンバスで [Business Phone (会社電話)] コンポーネントを選択します。
- [Value (値)] で [Contacts from Get Existing Contacts ([Get Existing Contacts (既存の取引先責任者を取得)] からの取引先責任者)] を選択し、次に [Phone (電話)] を選択します。
- [Value (値)] で [Contacts from Get Existing Contacts ([Get Existing Contacts (既存の取引先責任者を取得)] からの取引先責任者)] を選択し、次に [Phone (電話)] を選択します。
-
[Done (完了)] をクリックします。
- フローを保存します。
これで、このフローにおける画面部分の設定は完了です。次の単元では、ループと、その中でコレクション変数に追加するための割り当て要素を作成します。
