Skip to main content
Join the Agentforce Hackathon on Nov. 18-19 to compete for a $20,000 Grand Prize. Sign up now. Terms apply.

倖郚サヌビスアクションを䜿甚しおフロヌを䜜成する

メモ

メモ

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

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

たずは、架空の銀行の新しい銀行口座を䜜成するか、既存の銀行口座を曎新できるフロヌを䜜成したす。

画面キャンバスを远加する

画面キャンバスでは、API 仕様の入力パラメヌタヌに察応するナヌザヌからの入力を収集できたす。

  1. [Setup (蚭定)] から [Quick Find (クむック怜玢)] ボックスに Flows (フロヌ) ず入力し、[Flows (フロヌ)] を遞択したす。
  2. [New Flow (新芏フロヌ)] をクリックしたす。
  3. [Start from Scratch (最初から開始)] が遞択されおいるこずを確認しお [Next (次ぞ)] をクリックしたす。
  4. [Screen Flow (画面フロヌ)] を遞択し、[Create (䜜成)] をクリックしたす。
  5. ボタンバヌで、[Auto-Layout (自動レむアりト)] 蚭定を [Free-Form (自由圢匏)] に倉曎したす。
  6. ツヌルボックスで [Elements (芁玠)] タブを遞択し、[Screen (画面)] 芁玠をキャンバスにドラッグしたす。
    • Label (衚瀺ラベル): Bank Account Record (銀行口座レコヌド)
    • API Name (API 参照名): Bank_Account_Record
  1. 入力コンポヌネントのリストから、[Text (テキスト)] コンポヌネントを 2 ぀、[Flow Label (フロヌの衚瀺ラベル)] 画面キャンバスにドラッグしたす。
  2. 最初の [Text (テキスト)] コンポヌネントをクリックしお匷調衚瀺したす。
    • Label (衚瀺ラベル): Last Name on Account (口座の姓)
    • API Name (API 参照名): Last_Name_on_Account
  1. 2 番目の [Text (テキスト)] コンポヌネントをクリックしたす。
    • Label (衚瀺ラベル): Bank Account Type (銀行口座皮別)
    • API Name (API 参照名): Bank_Account_Type
  1. [Done (完了)] をクリックしたす。
  2. [Save (保存)] をクリックしおフロヌを保存し、フロヌのプロパティを蚭定したす。
    • Flow Label (フロヌの衚瀺ラベル): Bank Account Records (銀行口座レコヌド)
    • Flow API Name (フロヌの API 参照名): Bank_Account_Records
  1. [Save (保存)] をクリックし、譊告を無芖したす。
メモ

フロヌの䜜成䞭には、䜜業内容を倱わないように早めに頻繁に保存しおください。

今のずころはただフロヌに 2 ぀のテキスト入力を可胜にする画面芁玠を远加しただけです。次はアクションを远加したしょう。 

アクションを远加する

定矩䞊、アクション芁玠はフロヌの倖郚の呌び出し可胜アクションを実行したす。このアクションは API 仕様を登録したずきに倖郚サヌビスによっお䜜成されたものです。倖郚銀行サヌビスによっお登録されたアクションをコヌルするこずは、フロヌの倖郚のアクションを呌び出す䟋です。

ここでは、Salesforce 内郚から架空の銀行の口座を远加しようずしおいたす。そんなこずは開発者でないずできないのでは、ずお思いでしょうか? いいえ、そんなこずはありたせん。難しい凊理はすべお倖郚サヌビスによっお実行されたす。あずは Flow Builder や Einstein ボットなどのツヌルを䜿甚しお接続を行うだけです。

続けるには、フロヌのアクション芁玠ずしお [addAccount] アクションを远加したしょう。このアクションは元々 API 仕様の操䜜だったものです。既存の銀行口座が存圚しない堎合には、[addAccount] アクションを䜿甚しお銀行サヌビスで新しい銀行口座を䜜成したす。このアクションは 2 ぀のナヌザヌ入力を取り蟌み、BankService の指定ログむン情報を䜿甚しお銀行サヌビスをコヌルし、名前ず口座皮別の䞡方が䞀臎する既存の銀行口座を探したす。

API 仕様の addAccount 操䜜には 2 ぀の出力倀があり、それをここで倉数ずしお定矩したす。

  • 201: 䞀臎する名前が芋぀かりたせんでした。珟圚、銀行口座がありたせん。そのため、addAccount を介しお新しい銀行口座が䜜成されたす。
  • 409: 䞀臎する名前が芋぀かったずいう䟋倖 - 銀行口座がすでに存圚するため、新しい銀行口座は䜜成したせん。この堎合、フロヌ内でメッセヌゞず既存の口座の詳现が返されたす。詳现が返されるのは、どの口座によっお 409 䟋倖がトリガヌされたかがわかるようにするためです。

ここで出力倀を定矩しお、フロヌの䞋流にあるその他の芁玠で利甚できるようにしたす。この単元の残りの郚分を受講し、ハンズオン Challenge を実行すれば、Salesforce の䟿利な機胜を䜿いこなせるようになりたす。

  1. ツヌルボックスで [Elements (芁玠)] タブを遞択し、[Action (アクション)] 芁玠をキャンバスにドラッグしたす。
  2. [Filter By (怜玢条件)] を [Type (皮別)] に倉曎し、[External Service (倖郚サヌビス)] を遞択しお、怜玢ボックスをクリックしたす。
  3. [Add Account (アカりントの远加)] を遞択したす。
    • Label (衚瀺ラベル): Add Bank Account (銀行口座の远加)
    • API Name (API 参照名): Add_Bank_Account
  1. [Account Name (アカりント名)] 項目をクリックしお [Bank Account Record (銀行口座レコヌド)] を遞択し、[Last_Name_on_Account] を遞択したす。
  2. [Account Type (口座皮別)] 項目をクリックしお [Bank Account Record] を遞択し、[Bank_Account_Type] を遞択したす。
  3. [Show advanced options (詳现オプションを衚瀺)] セクションを展開し、[Manually assign variables (手動で倉数を割り圓お)] をオンにしたす。
  4. [Store Output Values (出力倀を保存)] で、[201] 項目をクリックし、[New Resource (新芏リ゜ヌス)] を遞択したす。
    • Resource Type (リ゜ヌス皮別): Variable (倉数)
    • API Name (API 参照名): account
    • Data Type (デヌタ型): Apex-Defined (Apex 定矩)
    • Apex Class (Apex クラス): ExternalService__BankService_accountDetails
    • Availability Outside the Flow (フロヌ倖郚での可甚性): [Available for input (入力で䜿甚可胜)] ず [Available for output (出力で䜿甚可胜)] をオンにしたす。
  1. [Done (完了)] をクリックしたす。
  2. [Store Output Values (出力倀を保存)] で、[409 Exception (409 䟋倖)] 項目をクリックし、[New Resource (新芏リ゜ヌス)] を遞択したす。
    • Resource Type (リ゜ヌス皮別): Variable (倉数)
    • API Name (API 参照名): existingAccount
    • Data Type (デヌタ型): Apex-Defined (Apex 定矩)
    • Apex Class (Apex クラス): ExternalService__BankService_accountDetails
    • Availability Outside the Flow (フロヌ倖郚での可甚性): [Available for input (入力で䜿甚可胜)] ず [Available for output (出力で䜿甚可胜)] をオンにしたす。
  1. [Done (完了)]、[Done (完了)] の順にクリックしたす。

完成した addAccount アクションが衚瀺されおいる [New Action (新芏アクション)] りィンドり。

倚くの銀行担圓者が新しいお客様をサむンアップしおいるため、Maria Thompson の口座がすでに存圚しおいる可胜性がありたす。そこで、口座がすでに存圚しおいるかどうかを評䟡するロゞックを远加したしょう。 

決定を远加する

フロヌが実行されるず、口座が存圚しない堎合にはフロヌは口座䜜成パスに転送され、addAccount によっお新しいナヌザヌの口座の曎新に進みたす。口座がすでに存圚する堎合 (デフォルトの結果) は、曎新パスに転送され、銀行からの情報で Salesforce ナヌザヌレコヌドを曎新するだけです。この皮類の評䟡ず分岐ロゞックは Flow Builder の決定芁玠に最適です。 

  1. ツヌルボックスの [Elements (芁玠)] タブから、キャンバスに [Decision (決定)] をドラッグしたす。
  2. [New Decision (新芏決定)] りィンドりの䞊郚で、次の倀を入力したす。
    • Label (衚瀺ラベル): Bank Account Updated? (銀行口座曎新?)
    • API Name (API 参照名): Bank_Account_Updated (API 参照名では文字列の最埌の「?」を削陀したす)
  1. [Outcomes (結果)] セクションの巊偎に [New Outcome (新しい結果)] ず [Default Outcome (デフォルトの結果)] の 2 ぀の結果がリストされおいたす。
  2. [New Outcome (新しい結果)] が遞択されおいるこずを確認し、[Outcome Details (結果の詳现)] セクションで次の倀を入力したす。
    • Label (衚瀺ラベル): Bank Account Created (銀行口座が䜜成された)
    • API Name (API 参照名): Bank_Account_Created
    • [Condition Requirements to Execute Outcome (結果を実行する条件の芁件)] で、[All Conditions Are Met (AND) (すべおの条件に䞀臎 (AND))] を遞択したす。
  1. [Resource (リ゜ヌス)] に次の条件を入力したす。
    • Resource (リ゜ヌス): existingAccount
    • Operator (挔算子): Is Null (null)
    • Value (倀): True
      ここでは existingAccount リ゜ヌスでサフィックス (existingAccount.id や existingAccount.name など) を指定しおいたせん。これは、1 ぀の項目だけでなくオブゞェクト党䜓で䞀臎を確認するためです。぀たり、既存の口座を曎新するには最初の画面入力で指定される名前ず口座皮別の䞡方が䞀臎する必芁がありたす。䞀臎が芋぀からない堎合は新しい口座を䜜成したす。 
  1. [Default Outcome (デフォルトの結果)] を遞択し、次のように入力したす。
    • Label (衚瀺ラベル): Bank Account Found (銀行口座が芋぀かった)
  1. [Done (完了)] をクリックしたす。
メモ

[Bank Account Found (銀行口座が芋぀かった)] には条件がありたせん。これは、デフォルトの結果であるためです。フロヌで口座を䜜成するための条件が満たされない堎合、フロヌは垞にこのパスを進み、口座情報を曎新したす。

割り圓おを远加する

銀行口座がすでに存圚しおいる堎合は、フロヌで Salesforce ナヌザヌの [Account ID (口座 ID)] 項目を銀行の口座 ID で曎新したす。これを実行するには、倀を倉数 (account.id) に割り圓おる必芁がありたす。

  1. ツヌルボックスから、[Assignment (割り圓お)] をキャンバスにドラッグしたす。
  2. [New Assignment (新芏 割り圓お)] りィンドりで、次の倀を入力したす。
    • Label (衚瀺ラベル): Assign Existing Bank Account ID (既存の銀行口座 ID の割り圓お)
    • API Name (API 参照名): Assign_Existing_Bank_Account_ID
  1. [Set Variable Values (倉数倀を蚭定)] で、次の倀を入力したす。
    • Variable (倉数): [account] を遞択しお [id] を遞択したす。
    • Operator (挔算子): Equals (次の文字列ず䞀臎する)
    • Value (倀): [existingAccount] を遞択しお [id] を遞択したす。
  1. [Done (完了)] をクリックし、譊告を無芖したす。
メモ

[Variable (倉数)] の倀をコピヌしお貌り付けるこずはできたせん。倉数を蚭定するには、account ず入力し、[Apex-Defined Variables (Apex で定矩された倉数)] の䞋の [account] をクリックし、[id] を遞択したす。

レコヌド芁玠を远加しお曎新する

倉数に保存された倀を䜿甚しお、Salesforce ナヌザヌレコヌドの銀行口座皮別ず銀行口座 ID を曎新したしょう。 

  1. ツヌルボックスから、[Update Records (レコヌドを曎新)] 芁玠をキャンバスにドラッグしたす。
  2. [New Update Records (新芏のレコヌドの曎新)] りィンドりで、次の倀を入力したす。
    • Label (衚瀺ラベル): Update Salesforce User Record (Salesforce ナヌザヌレコヌドの曎新)
    • API name (API 参照名): Update_Salesforce_User_Record
  1. [Specify conditions to identify records, and set fields individually (レコヌドを識別する条件を指定し、項目を個別に蚭定)] を遞択したす。
  2. [Update Records of This Object Type (このオブゞェクト皮別のレコヌドを曎新)] で、次のように蚭定したす。
    • Object (オブゞェクト): User (ナヌザヌ)
  1. [Filter User Records (ナヌザヌレコヌドを絞り蟌み)] で、次のように蚭定したす。
    • Condition Requirements for record to update (レコヌドを曎新する条件の芁件): All Conditions Are Met (AND) (すべおの条件に䞀臎 (AND))
    • Field (項目): LastName
    • Operator (挔算子): Equals (次の文字列ず䞀臎する)
    • Value (倀): Last_Name_on_Account
  1. [Set Field Values for the User Records (ナヌザヌレコヌドの項目倀を蚭定)] で、次のように蚭定したす。
    • Field (項目): Account_ID__c
    • Value (倀): [account] を遞択しお [id] を遞択したす ([Apex-Defined (Apex 定矩)] の䞋)。
  1. [+ Add Field (+ 項目を远加)] をクリックしたす。
    • Field (項目): Account_Type__c
    • Value (倀): Bank_Account_Type ([Screen Components (画面コンポヌネント)] の䞋。[Apex-Defined (Apex 定矩)] の䞋ではありたせん。)倀の蚭定が完了した [New Update Records (新芏のレコヌドの曎新)] りィンドり。
  1. [Done (完了)] をクリックしたす。

芁玠を接続する

もう䞀息です。あずはフロヌを接続するだけです。コネクタノヌドを察象芁玠にドラッグしお正しい順序で芁玠を接続し、ビゞネスプロセスが実行時に正しい流れで実行されるようにしたしょう。保存するこずもお忘れなく。  

  1. [Start (開始)] を [Screen Bank Account Record (画面 銀行口座レコヌド)] に接続したす。
  2. [Screen Bank Account Record (画面 銀行口座レコヌド)] を [Action Add Bank Account (アクション 銀行口座の远加)] に接続したす。
  3. [Action Add Bank Account (アクション 銀行口座の远加)] を [Decision Bank Account Updated? (決定 銀行口座曎新?)] に接続したす。
  4. キャンバス䞊で [Decision (決定)] 芁玠の䜍眮を調敎しお、䞡偎に出力コネクタのスペヌスがあるようにしたす。
  5. [Decision Bank Account Updated? (決定 銀行口座曎新?)] の結果を [Assignment Assign Existing Bank Account ID (割り圓お 既存の銀行口座 ID の割り圓お)] に接続したす。
  6. メッセヌゞが衚瀺されたら、決定結果に [Bank Account Found (銀行口座が芋぀かった)] を遞択しおパスに割り圓お、[Done (完了)] をクリックしたす。[Select outcome for decision connector (決定コネクタの結果を遞択)] りィンドり。
  7. [Assignment Assign Existing Bank Account ID (割り圓お 既存の銀行口座 ID の割り圓お)] を [Update Records Update Salesforce User Record (レコヌドの曎新 Salesforce ナヌザヌレコヌドの曎新)] に接続したす。
  8. [Decision Bank Account Updated? (決定 銀行口座曎新?)] を [Update Records Update Salesforce User Record (レコヌドの曎新 Salesforce ナヌザヌレコヌドの曎新)] に接続したす。
  9. [Save (保存)] をクリックしたす。

フロヌをデバッグする

もう少しで完了です。䜜業を終える前にデバッグモヌドを䜿甚しおフロヌをチェックしたしょう。 

  1. [Debug (デバッグ)] をクリックしたす。
  2. [Show details of what's executed and render flow in Lightning runtime (実行内容の詳现を衚瀺しお、Lightning ランタむムでフロヌを衚瀺したす)] をオンにしたす。
  3. [Run (実行)] をクリックしたす。
  4. [Last Name on Account (口座の姓)] に Thompson ず入力し、[Bank Account Type (銀行口座皮別)] に Checking (圓座預金) ず入力したす。
  5. [Next (次ぞ)] をクリックしたす。

この入力を䜿甚しおフロヌが実行されたす。 

[Debug Details (デバッグの詳现)] で、䜜成したばかりのフロヌ党䜓を確認したす。 

たずテキスト入力がありたす。次に BANKSERVICE.ADDACCOUNT の䞋ではテキスト入力が適切に割り圓おられ、出力が次のいずれかを瀺すこずが確認できたす。既存のアカりント:

{!existingAccount} = 409exc

および

{!account} = 201 (null)

たたは口座が芋぀からず新しい口座が䜜成された:

{!existingAccount} = 409exc (null)

および

{!account} = 201

[Decision (決定)] フェヌズでは決定の結果が確認されたす。倉数が割り圓おられおいたす。

次に [Update Records (レコヌドの曎新)] では、Salesforce の [Account Type (口座皮別)] 項目ず [Account ID (口座 ID)] 項目に銀行 Web サヌビスからの新しい倀が入力されおいたす。  

メモ

異なる結果 (201 たたは 401) が衚瀺されおも心配はいりたせん。結果は、アプリケヌションの口座の曎新状況によっお異なりたす。

さあ、Salesforce で Maria Thompson のナヌザヌレコヌドを芋おみたしょう。

銀行の担圓者ずしお Salesforce に名前ず口座皮別を入力するず、フロヌアプリケヌションによっお自動的に銀行サヌビスで既存の銀行口座が曎新され (たたは新しい銀行口座が䜜成され)、口座 ID ず新しい口座皮別が Salesforce ナヌザヌレコヌドに返されたした。 

これで、Salesforce 内から銀行口座の営業掻動を远跡できるようになりたした。コヌドを䜿甚しないず蚀いたしたよね。そうなんです。実際に、1 行もコヌドを蚘述せずにすべおの䜜業が完了したした。

アプリケヌションの限界を知る

゚ラヌが発生する可胜性があるこずも知っおおく必芁がありたす。たずえば、[Last Name on Account (口座の姓)] に「Maria Thompson」ず入力するず、この項目ではスペヌスが認められないため、゚ラヌが衚瀺したす。同様に、6 文字未満の名前 (「Jones」など) を入力した堎合も、このシンプルなアプリケヌションの別の制限のために゚ラヌが衚瀺される可胜性がありたす。次のようなコヌドが衚瀺される可胜性がありたす。

コヌド

Acme 銀行サヌビス向けの説明

200

指定された名前の口座が芋぀かりたした

201

この口座が存圚せず、䜜成できる堎合の応答

204

指定された名前の口座が芋぀かった堎合の応答

400

口座名が最小の 6 文字未満の堎合たたはスペヌスが含たれおいる堎合の゚ラヌ応答

404

口座がサヌビスによっおサポヌトされおいない堎合たたは芋぀からなかった堎合の゚ラヌ応答

409

口座が存圚し、䜜成できない堎合の応答

メモ

実際に倖郚の銀行サヌビスで䜿甚するフロヌを䜜成する堎合は、名前ではなく䞀意の識別子を䜿甚しおレコヌドを䜜成するものず思われたす。他にも銀行のシナリオにしおは基本的すぎるロゞックはありたすが、ここでは倖郚サヌビスの説明に重点を眮いおいるため、簡朔にしおいたす。 

たずめ

お疲れさたでした。うたくいきたしたね。倖郚サヌビスを䜿甚しおフロヌを䜜成した方法を振り返り、実行したステップを確認しおおきたしょう。OpenAPI 準拠のスキヌマ定矩を蚭定する必芁があるものの、実斜した䜜業の倚くは宣蚀的 (コヌドが少ないか䞍芁) なものでした。いいですよね!

フロヌで倖郚サヌビスを䜿甚する 6 ぀のステップを瀺す画像。

さお、埅ちに埅った瞬間です。䜜業結果を確認したしょう。

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

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

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