Skip to main content
Register now for TDX! Join the must-attend event to experience what’s next and learn how to build it.

フローを設計する

学習の目的

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

  • フロー設計の準備をする。
  • NetSuite で更新された在庫品目を Salesforce の商品や関連付けられた価格表エントリと自動的に同期するフローを設計する。

フロー設計の準備をする

「MuleSoft Composer の基本」で説明したように、フローはシステムとデータを統合するために組み合わせて設定する一連のステップです。フローを設計する前に、フローで実行する必要があるタスクを適切なステップ (フローコンポーネント形式) にマップする必要があります。紙と鉛筆を使ってこれを行うことで、フローをどのようなものにするか考えをまとめることができます。

以下は、前の単元で説明した NTO のユースケースのマッピングの一例です。

タスク

フローコンポーネント

NetSuite で更新された在庫品目を見つけます。

商品の更新時に NetSuite から実行されるトリガー。

対応する商品 (ある場合) を取得する。

NetSuite 品目 ID が在庫品目の内部 ID と同じである Sales Cloud の商品をすべて取得するアクションステップ。

Sales Cloud に対応する商品が存在するかどうかを判断する。

商品のリストが空 (つまり Sales Cloud に商品が存在しない) かどうかを評価する If/Else ブロック。

対応する商品が存在しない場合

If ブロック内:

  • Sales Cloud で、適切な在庫品目の詳細 (在庫品目の内部 ID など) が設定された商品を作成します。
  • NetSuite で、関連付けられた商品 ID を使用して在庫品目を更新します。
  • Sales Cloud で、商品の価格表エントリを作成します。

対応する商品が存在する場合

If/Else ブロックの Else ブランチ内:

  • Sales Cloud で、適切な在庫品目の詳細を使用して商品を更新します。
  • 商品に関連付けられた価格表エントリをすべて取得する。
  • For Each ブロックを使用して価格表エントリのリストを反復処理する。
  • For Each ブロック内で、Sales Cloud の商品に関連付けられた価格表エントリを更新する。

MuleSoft コンポーネントでは、デフォルトで作業が検証され、手順の各ステップにアプリケーション内コンテキストヘルプが提供されます。たとえば、システムに接続を追加すると、MuleSoft コンポーザーで接続がテストされ、機能することが確認されます。その後で、次のステップに進むことができます。また、フローの作成を簡単にするために、MuleSoft コンポーザーから各ステップ内で必須項目を入力するように要求されます。

ベストプラクティスとして、フローの作成時には、フローが完成するまで数個のステップを追加しながらテストを繰り返します。

Note

大規模なインテグレーションタスクがある場合は、タスクを管理可能なサイズに小分けにして、それぞれにフローを作成することをお勧めします。これにより、フローをより簡単かつ迅速に作成、テスト、実行して、タスクを完了できるようになります。

フローを設計する

NetSuite で更新された在庫品目を Salesforce の商品や関連付けられた価格表エントリと同期するインテグレーションフローを設計する準備が整いました。

Note

このセクションの最後に、このフローのソリューションがあります。フローの設計で問題が発生した場合は、ソリューションフローを参照してください。

次の手順に従ってフローを設計します。

NTO 組織から Mulesoft コンポーザーを起動します。

  1. ユーザー名とパスワードを使用して NTO 組織にログインします。
  2. アプリケーションランチャーに Composer と入力して [MuleSoft Composer] を選択します。

新しいフローを作成します。

  1. [Create New Flow (新規フローを作成)] をクリックします。
  2. デフォルトのフロー名の横にある鉛筆アイコンをクリックします。
  3. フローに Sync NetSuite Inventory Items to Salesforce Products and Price Book Entries (NetSuite の在庫品目を Salesforce の商品や在庫価格表エントリと同期) と名前を付けて、[Save (保存)] をクリックします。

NetSuite 接続を使用してフローのトリガーを作成します。

  1. [NetSuite] をクリックします。
  2. [Add new NetSuite connection (新しい NetSuite 接続を追加)] をクリックします。
    メモ: NetSuite に初めて接続する場合は、このオプションが表示されません。次のステップに進んでください。
  3. NetSuite の接続パラメーター値が記載されたテキストファイルを参照して、必須の値を入力し、接続表示名を NTO NetSuite にして、[Create (作成)] をクリックします。MuleSoft Composer で接続が自動的にテストされます。エラーメッセージが表示されなければ、正常に接続されていて、フローの最初のステップ (トリガー) が表示されます。

NetSuite で在庫品目が更新されるたびにフローを開始するトリガーを設定します。

  1. [Choose an event that starts this flow (このフローを開始するイベントを選択)] 項目をクリックして、[Updated Record (レコードの更新)] を選択します。
  2. [Type of Record (レコードタイプ)] 項目に、INVENTORY_ITEM と入力します。
  3. [Save (保存)] をクリックしてフローを保存します。

トリガーを実行した在庫品目と一致する Salesforce の商品をすべて取得する、フローの 2 つ目のステップを作成します。

  1. プラスアイコンをクリックしてステップを追加します。
  2. [Salesforce] をクリックします。
  3. [Add new Salesforce connection (新しい Salesforce 接続を追加)] をクリックして、NTO Sandbox 組織への接続を作成します。
    メモ: Salesforce に初めて接続する場合は、このオプションが表示されません。次のステップに進んでください。
  4. 接続に NTO sandbox org (NTO Sandbox 組織) と名前を付けます。
  5. [This is a sandbox organization (これは Sandbox 組織です)] チェックボックスをオンにして、[Create (作成)] をクリックします。
    メモ: 開発者組織を使用する場合は、このチェックボックスの選択をスキップして、[Create (作成)] をクリックします。
  6. NTO の Sandbox 組織のユーザー名とパスワードを入力して、[Log In to Sandbox (Sandbox にログイン)] をクリックします。
  7. [Allow (許可)] をクリックして、MuleSoft コンポーザーに「ID URL サービスにアクセス」、「API を使用してユーザーデータを管理」、および「いつでも要求を実行」権限を付与します。MuleSoft Composer で接続が自動的にテストされます。エラーメッセージが表示されていない場合は接続が確立され、フローの 2 つ目のステップが表示されます。

在庫品目と一致する商品をすべて取得する 2 つ目のステップを設定します。

  1. [Action (アクション)] 項目をクリックし、[Get records (レコードを取得)] を選択します。
  2. [Object Type (オブジェクト種別)] 項目に、Product (商品) と入力します。
  3. [Conditions to filter the objects (オブジェクトを絞り込む条件)] 選択リストで、[All conditions must be met (AND) (すべての条件を満たす必要がある (AND))] を選択します。
  4. 項目に [NetSuite Item ID (NetSuite 品目 ID)]、演算子に [Equals (次の値と一致する)] を選択し、フローのステップ 1 の [Record (レコード)]> [InternalId] を選択します。

在庫品目に対応する商品があるかどうかを判断する If/Else ブロックを作成して設定します。

  1. プラスアイコンをクリックしてステップを追加します。
  2. 下にスクロールして [If/Else Block (If/Else ブロック)] をクリックします。デフォルトでは [All conditions must be met (AND) (すべての条件を満たす必要がある (AND))] が選択されています。
  3. 項目にフローのステップ 2 の [List of Product (商品のリスト)]、演算子に [Is empty (空)] を選択します。この条件を満たした場合は、Sales Cloud にこの在庫品目に対応する商品がないことになります。その場合は、If ブランチの後続の 3 つのステップ (Salesforce での商品の作成、NetSuite での在庫品目の更新、Salesforce での価格表エントリの作成) が実行されます。

Sales Cloud で商品を作成する 3 つ目のステップを If/Else ブロックの If ブランチ内に作成します。

  1. プラスアイコンをクリックして If ブランチ内にステップを追加します。
  2. [Salesforce] をクリックして、[NTO sandbox org (NTO Sandbox 組織)] をクリックします。

Sales Cloud で在庫品目の内部 ID が設定された商品を作成する 3 つ目のステップを設定します。

  1. [Action (アクション)] 項目をクリックし、[Create new record (新しいレコードを作成)] を選択します。
  2. [Object Type (オブジェクト種別)] 項目に、Product (商品) と入力します。[Product Name (商品名)] は必須項目のため、自動的に選択されます。
  3. [Add Fields (項目を追加)] をクリックします。
  4. 検索項目を使用して、次の項目を見つけて選択し、[Add (追加)] をクリックします。
    ヒント: 検索する項目のキーワードを入力し、表示された関連項目を選択します。キーワードを消去して次の項目でプロセスを繰り返します。すべての項目の選択が完了したら、[Add (追加)] をクリックします。
    • Active (有効)
    • NetSuite Item ID (NetSuite 品目 ID)
    • Product Code (商品コード)
    • Product Description (商品説明)
  1. 商品項目を、フローのステップ 1 で取得した在庫品目の対応する項目に次のようにマップします。
    • Product Name (商品名) = [Record (レコード)] > [Display Name (表示名)]
    • Active (アクティブ) = true
    • NetSuite Item ID (NetSuite 品目 ID) = [Record (レコード)] > [InternalID]
    • Product Code (商品コード) = [Record (レコード)] > [Item ID (品目 ID)]
    • Product Description (商品説明) = [Record (レコード)] > [Purchase Description (購入説明)]

関連付けられた商品 ID を使用して在庫品目を更新するフローの 4 つ目のステップを If ブランチ内に作成します。

  1. プラスアイコンをクリックして If 分岐にステップを追加します。
  2. [NetSuite] をクリックして、[NTO NetSuite] をクリックします。

関連付けられた商品 ID を使用して在庫品目を更新する 4 つ目のステップを設定します。

  1. [Action (アクション)] 項目内をクリックして、[Update Record (レコードを更新)] を選択します。
  2. [Type of Record (レコードタイプ)] 項目に、INVENTORY_ITEM と入力します。
  3. [ID Type (ID 種別)] 項目で、[INTERNAL (内部)] を選択します。[Record Id (レコード ID)] は必須項目のため、自動的に選択されます。
  4. [Add Fields (項目を追加)] をクリックします。
  5. 検索項目に salesforce と入力し、[Salesforce Product ID (Salesforce 商品 ID)] を選択して [Add (追加)] をクリックします。
  6. 在庫品目項目を、フローの先行するステップに次のようにマップします。
    • Record Id (レコード ID) = ステップ 1 の [Record (レコード)] > [InternalId]
    • Salesforce Product ID (Salesforce 商品 ID) = ステップ 3 の [Id (ID)]

Sales Cloud で商品の価格表エントリを作成するフローの 5 つ目のステップを If ブランチ内に作成します。

  1. プラスアイコンをクリックして If ブランチ内にステップを追加します。
  2. [Salesforce] をクリックして、[NTO sandbox org (NTO Sandbox 組織)] をクリックします。

Sales Cloud で商品の価格表エントリを作成する 5 つ目のステップを設定します。

  1. [Action (アクション)] 項目をクリックし、[Create new record (新しいレコードを作成)] を選択します。
  2. [Object Type (オブジェクト種別)] 項目に、Price Book Entry (価格表エントリ) と入力します。[List Price (リスト価格)]、[Pricebook2Id]、[Product2Id] は必須項目のため、自動的に表示されます。
  3. [Add Fields (項目を追加)] をクリックします。
  4. 検索ツールを使用して [Active (アクティブ)] を選択し、[Add (追加)] をクリックします。
  5. 価格表エントリ項目を、フローの先行するステップに次のようにマップします。
    • List Price (リスト価格) = ステップ 1 の [Record (レコード)] > [Cost (コスト)]
    • Pricebook2Id = 01s1U000005mSpYQAU。単元 1 で取得した標準価格表の値です。
    • Product2Id = ステップ 3 の [Id (ID)]
    • Active (アクティブ) = true

If/Else ブロック内に、在庫品目に対応する既存の商品を更新し、その商品に関連付けられた価格表エントリを更新する Else ブランチを作成します。

  1. If/Else ブロックの下部にある [Add Else (Else を追加)] をクリックします。

Sales Cloud で関連付けられた在庫品目の詳細を使用して、既存の商品を更新するフローの 6 つ目のステップを Else ブランチ内に作成します。

  1. プラスアイコンをクリックして Else ブランチ内にステップを追加します。
  2. [Salesforce] をクリックして、[NTO sandbox org (NTO Sandbox 組織)] をクリックします。

Sales Cloud で関連付けられた在庫品目の詳細を使用して、既存の商品を更新する 6 つ目のステップを設定します。

  1. [Action (アクション)] 項目内をクリックして、[Update record (レコードを更新)] を選択します。
  2. [Object Type (オブジェクト種別)] 項目に、Product (商品) と入力します。[Product ID (商品 ID)] は必須項目のため、自動的に選択されます。
  3. [Add Fields (項目を追加)] をクリックします。
  4. [Active (アクティブ)]、[Product Description (商品説明)]、[Product Name (商品名)] を選択して、[Add (追加)] をクリックします。
  5. 商品項目を、フローのステップ 1 で取得した在庫品目の対応する項目に次のようにマップします。
    • Product ID (商品 ID) = [Record (レコード)] > [Custom Field List (カスタム項目リスト)] > [Salesforce Product ID (Salesforce 商品 ID)]
    • Active (アクティブ) = true
    • Product Description (商品説明) = [Record (レコード)] > [Purchase Description (購入説明)]
    • Product Name (商品名) = [Record (レコード)] > [Display Name (表示名)]

Sales Cloud で既存の商品と商品 ID や価格表 ID が同じ価格表エントリをすべて取得するフローの 7 つ目のステップを作成します。

  1. プラスアイコンをクリックしてステップを追加します。
  2. [Salesforce] をクリックして、[NTO sandbox org (NTO Sandbox 組織)] をクリックします。

関連付けられた商品 ID と価格表 ID を使用して価格表エントリをすべて取得する 7 つ目のステップを設定します。このステップの結果、価格表エントリのリストが生成されるため、フローの次のステップでこのリストを反復処理して、既存の商品に関連付けられた価格表エントリを更新できます。

  1. [Action (アクション)] 項目をクリックし、[Get records (レコードを取得)] を選択します。
  2. [Object Type (オブジェクト種別)] 項目に、Price Book Entry (価格表エントリ) と入力します。
  3. [Conditions to filter the objects (オブジェクトを絞り込む条件)] 選択リストで、[All conditions must be met (AND) (すべての条件を満たす必要がある (AND))] を選択します。
  4. 項目に [Product2Id]、演算子に [Equals (次の値と一致する)] を選択し、フローのステップ 6 の ID を指定します。
  5. 項目に [Pricebook2Id]、演算子に [Equals (次の値と一致する)] を選択し、01s1U000005mSpYQAU と入力します。単元 1 で取得した標準価格表の値です。

フローのステップ 7 で取得した価格表エントリのリストを反復処理する For Each ブロックを Else ブランチ内に作成して設定します。

  1. Else ブランチのプラスアイコンをクリックします。
  2. スクロールダウンして [For Each] を選択します。
  3. [Input list (入力リスト)] 項目で、フローのステップ 7 の [List of Price Book Entry (価格表エントリのリスト)] を選択します。

Sales Cloud で既存の商品に関連付けられた価格表エントリを更新するフローの 8 つ目のステップを For Each ブロック内に作成します。

  1. プラスアイコンをクリックして Else ブランチ内にステップを追加します。
  2. [Salesforce] をクリックして、[NTO sandbox org (NTO Sandbox 組織)] をクリックします。

Sales Cloud で既存の商品に関連付けられた価格表エントリを更新する 8 つ目のステップを For Each ブロック内に作成します。

  1. [Action (アクション)] 項目をクリックして、[Create or update record (レコードの作成または更新)] を選択します。
  2. [Object Type (オブジェクト種別)] 項目に、Price Book Entry (価格表エントリ) と入力します。[External ID Field to Match (照合する外部 ID 項目)] は必須項目のため、自動的に表示されます。
  3. [External ID Field to Match (照合する外部 ID 項目)] 項目で、[Price Book Entry ID (価格表エントリ ID)] を選択します。[Price Book Entry ID (価格表エントリ ID)] は必須項目のため、自動的に選択されます。
  4. [Add Fields (項目を追加)] をクリックします。
  5. [Active (アクティブ)][List Price (リスト価格)] を追加して、[Add (追加)] をクリックします。
  6. 価格表エントリ項目を、フローの先行するステップに次のようにマップします。
    • Price Book Entry ID (価格表エントリ ID) = ステップ 7 の [Price Book Entry ID (価格表エントリ ID)]
    • Active (アクティブ) = true
    • List Price (リスト価格) = ステップ 1 の [Record (レコード)] > [Cost (コスト)]
  1. フローを保存します。フロー全体は次のようになります。
    NetSuite で更新された在庫品目がトリガーとして表示されているフローのステップ 1。NetSuite 品目 ID がステップ 1 の在庫品目の内部 ID と一致する必要があるという条件を満たす商品をすべて取得するフローのステップ 2。ステップ 2 の商品のリストが空かどうかを判断する条件が表示されているフローの If/Else ブロックの If ブランチ。ステップ 1 の在庫品目の詳細 (内部 ID、品目 ID、購入説明など) を使用して商品を作成する If ブランチ内のフローのステップ 3。ステップ 3 の商品 ID を使用して在庫品目を更新する If ブランチ内のフローのステップ 4。ステップ 1 のコストを使用して新しい価格表エントリを作成する If ブランチ内のフローのステップ 5。If/Else ブロックの Else ブランチと、ステップ 1 の購入説明と表示名を使用して商品を更新する Else ブランチ内のフローのステップ 6。ステップ 6 の商品 ID と標準価格表 ID を使用して価格表エントリをすべて取得する Else ブランチ内のフローのステップ 7。フローのステップ 7 の価格表エントリのリストを反復処理する Else ブランチの For Each ブロック。ステップ 1 のコストを使用して価格表エントリを更新する For Each ブロックのフローのステップ 8。

成功です。次の単元では、フローが想定どおりに機能することを確認するテストの実行方法を学習します。

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

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

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