フローを設計する
学習の目的
この単元を完了すると、次のことができるようになります。
- フロー設計の準備をする。
- Salesforce の新規または更新された成立商談を NetSuite の販売注文と自動的に同期するフローを設計する。
フロー設計の準備をする
「MuleSoft Composer の基本」で説明したように、フローはシステムとデータを統合するために組み合わせて設定する一連のステップです。フローを設計する前に、フローチャートを使用してフローのステップを計画します。どのようなフローになるかを把握するために、鉛筆を使って紙に書くことができます。
前の単元で説明した NTO ユースケースのインテグレーションフローのステップをすべて含むフローチャートの例を次に示します。
この NTO ユースケースのフローを作成するタスクと関連するフローコンポーネントの詳細な説明は、次のとおりです。
タスク | フローコンポーネント |
---|---|
Sales Cloud で新規または更新された成立商談を見つける。 |
フェーズが商談成立、NetSuite 注文 ID が空、という条件を満たす新規または更新された商談に対する Sales Cloud からのトリガー。後者の条件により NetSuite に一致する販売注文がないことが確認されるため、重複する販売注文は作成されません。 |
商談に関連付けられている取引先を取得する。 |
Sales Cloud にある商談と同じ取引先 ID を使用する取引先のリストを取得するアクションステップ。 |
商談に関連付けられているすべての商談商品を取得する。 |
Sales Cloud にある商談と同じ商談 ID を使用する商談商品のリストを取得するアクションステップ。 |
次のタスクを実行する。
|
For Each ブロックを使用して、取引先のリストを反復処理します。 For Each ブロックには次が含まれます。
|
MuleSoft Composer ではデフォルトで作業が検証され、手順の各ステップでアプリケーション内コンテキストヘルプが提供されます。たとえば、システムに接続を追加すると、MuleSoft Composer で接続がテストされるため、正常に機能することを確認したうえで次のステップに進むことができます。また、各ステップ内の必須項目を入力するように MuleSoft Composer から求められます。これでフローのビルドが簡単になります。
フローの構築のベストプラクティスは、数ステップごとにテストを繰り返しながらフローを完成させることです。
次のデモ動画で、MuleSoft Composer を使用して Salesforce を NetSuite に接続する方法を確認してください。
フローを設計する
Salesforce の新規または更新された成立商談を NetSuite の販売注文と同期するインテグレーションフローを設計する準備ができました。
次の手順に従ってフローを設計します。
NTO 組織から MuleSoft Composer を起動します。
- ユーザー名とパスワードを使用して NTO 組織にログインします。
- アプリケーションランチャーに
Composer
と入力して [MuleSoft Composer] を選択します。
新しいフローを作成します。
- [Create New Flow (新規フローを作成)] をクリックします。
- デフォルトのフロー名の横にある鉛筆アイコンをクリックします。
- フローに
Sync Salesforce Opportunities to NetSuite Sales Orders
(Salesforce の商談を NetSuite の販売注文に同期) と名前を付け、[Save (保存)] をクリックします。
NTO Sandbox 組織の接続を使用してフローのトリガーを作成します。
- [Salesforce] をクリックします。
-
[Add new Salesforce connection (新しい Salesforce 接続を追加)] をクリックし、NTO Sandbox 組織への接続を作成します。
メモ: 初めての Salesforce 接続の場合、このオプションは表示されません。次のステップに進んでください。 - この接続に
NTO sandbox org
(NTO Sandbox 組織) と名前を付けます。 -
[This is a sandbox organization (これは Sandbox 組織です)] チェックボックスをオンにして、[Create (作成)] をクリックします。
メモ: 開発者組織を使用する場合は、このチェックボックスの選択をスキップして [Create (作成)] をクリックします。 - NTO の Sandbox 組織のユーザー名とパスワードを入力して、[Log In to Sandbox (Sandbox にログイン)] をクリックします。
- [Allow (許可)] をクリックして、MuleSoft Composer に「ID URL サービスにアクセス」、「API を使用してユーザーデータを管理」、「いつでも要求を実行」権限を付与します。MuleSoft Composer で接続が自動的にテストされます。エラーメッセージが表示されていない場合は接続が確立し、フローの最初のステップ (トリガー) が表示されます。
NTO 組織で商談が作成または更新されるたびにフローを開始するトリガーを設定します。
- [Choose an event that starts this flow (このフローを開始するイベントを選択)] 項目内をクリックして [New or updated record (新規または更新されたレコード)] を選択します。
- [Object Type (オブジェクト種別)] 項目に
Opportunity
(商談) と入力します。 - [Conditions to filter the objects (オブジェクトを絞り込む条件)] 選択リストで、[All conditions must be met (AND) (すべての条件を満たす必要がある (AND))] を選択します。
- 項目として [Stage (フェーズ)]、演算子として [Equals (次の文字列と一致する)]、値として
[Closed Won (商談成立)]
を選択します。 - [Add a condition (条件を追加)] をクリックし、項目として [NetSuite Order ID (NetSuite 注文 ID)]、演算子として [Is Empty (空)] を選択します。
- [Sample Output (サンプル出力)] セクションを見ると、NTO 組織の成立商談の項目と関連付けられているサンプル値が表示されています。これで、正しい組織に接続されていることを確認でき、フローの今後のステップで使用できるデータの構造がわかります。
- [Save (保存)] をクリックしてフローを保存します。
既存の NTO Sandbox 組織の接続を使用してフローの 2 番目のステップを作成します。
- プラスアイコンをクリックしてステップを追加します。
-
[Salesforce] をクリックし、[NTO sandbox org (NTO Sandbox 組織)] をクリックします。
メモ: 既存の NTO Sandbox 組織の接続を再利用します。
トリガー商談と同じ取引先 ID を使用するすべての取引先のリストを取得するステップを設定します。
- [Action (アクション)] 項目をクリックし、[Get records (レコードを取得)] を選択します。
- [Object Type (オブジェクト種別)] 項目に
Account
(取引先) と入力します。 - [Conditions to filter the objects (オブジェクトを絞り込む条件)] 選択リストで、[All conditions must be met (AND) (すべての条件を満たす必要がある (AND))] を選択します。
- 項目として [Account ID (取引先 ID)]、演算子として [Equals (次の文字列と一致する)]、値としてフローのステップ 1 の [Account Id (取引先 ID)] を選択します。これで商談に関連付けられている取引先が選択されます。Salesforce にある商談はすべて取引先に関連付けられています。
既存の NTO Sandbox 組織の接続を使用してフローの 3 番目のステップを作成します。
- プラスアイコンをクリックしてステップを追加します。
- [Salesforce] をクリックし、[NTO sandbox org (NTO Sandbox 組織)] をクリックします。
トリガー商談と同じ商談 ID を使用するすべての商談商品のリストを取得する 3 番目のステップを設定します。
- [Action (アクション)] 項目をクリックし、[Get records (レコードを取得)] を選択します。
- [Object Type (オブジェクト種別)] 項目に
Opportunity Product
(商談商品) と入力します。 - [Conditions to filter the objects (オブジェクトを絞り込む条件)] 選択リストで、[All conditions must be met (AND) (すべての条件を満たす必要がある (AND))] を選択します。
- 項目として [Opportunity Id (商談 ID)]、演算子として [Equals (次の文字列と一致する)]、値としてフローのステップ 1 の [Opportunity ID (商談 ID)] を選択します。
取引先のリストを反復処理する For Each ブロックを作成して設定します。
- プラスアイコンをクリックしてステップを追加します。
- スクロールダウンして [For Each] をクリックします。
- [Input list (入力リスト)] 項目で、フローのステップ 2 の [List of Account (取引先のリスト)] を選択します。
NTO の NetSuite 接続を使用して For Each ブロック内にフローの 4 番目のステップを作成します。
- プラスアイコンをクリックして For Each 内にステップを追加します。
- [NetSuite] をクリックします。
-
[Add new NetSuite connection (新規 NetSuite 接続を追加)] をクリックします。
メモ: これが初めての NetSuite 接続である場合、このオプションは表示されません。次のステップに進んでください。 - NetSuite 接続パラメーターの値を含むテキストファイルを使用して、
NTO NetSuite
を接続表示名として必要な値を入力し、[Create (作成)] をクリックします。MuleSoft Composer で接続が自動的にテストされます。エラーメッセージが表示されていない場合は接続が確立し、フローの 4 番目のステップが表示されます。
NetSuite で関連付けられたすべての商談商品を含む販売注文を作成する 4 番目のステップを設定します。
- [Action (アクション)] 項目をクリックし、[Create Record (レコードを作成)] を選択します。
- [Type of Record (レコードタイプ)] 項目に
SALES_ORDER
と入力します。 - [Select Optional Fields (省略可能な項目を選択)] をクリックします。
- 検索項目を使用して、以下の項目を見つけて選択し、[Apply (適用)] をクリックします。[Item List (品目リスト)] という項目が、[Record (レコード)] > [Item List (品目リスト)] > [Item (品目)] に自動的に追加されます。これは、Salesforce の商談商品リストにマップする NetSuite の品目リストです。
ヒント: 検索する項目のキーワードを入力し、表示された関連項目を選択します。キーワードを消去して次の項目でプロセスを繰り返します。すべての項目を選択したら、[Apply (適用)] をクリックします。- [Record (レコード)] > [ExternalId (外部 ID)]
- [Record (レコード)] > [Tran Date (トランザクション日)]
- [Record (レコード)] > [Entity (エンティティ)] > [InternalId (内部 ID)]
- [Record (レコード)] > [Entity (エンティティ)] > [Name (名前)]
- [Record (レコード)] > [Item List (品目リスト)] > [Item (品目)]
- Amount (金額)
- Description (説明)
- Gross Amt (総額)
- Quantity (数量)
- [Record (レコード)] > [Item List (品目リスト)] > [Item (品目)] > [Item (品目)] > [InternalId (内部 ID)]
- [Record (レコード)] > [Item List (品目リスト)] > [Item (品目)] > [Item (品目)] > [Name (名前)]
- 次のように、販売注文の項目をフローの先行するステップで取得された対応する項目にマップします。
- [Record (レコード)] > [ExternalId (外部 ID)] = ステップ 1 の [Opportunity ID (商談 ID)]
- [Record (レコード)] > [Tran Date (トランザクション日)] = ステップ 1 の [Last Modified Date (最終更新日)]
- [Record (レコード)] > [Entity (エンティティ)] > [InternalId (内部 ID)] = ステップ 2 の [NetSuite Customer ID (NetSuite 顧客 ID)]
- [Record (レコード)] > [Entity (エンティティ)] > [Name (名前)] = ステップ 2 の [Account Name (取引先名)]
- [Record (レコード)] > [Item List (品目リスト)] > [Item (品目)]
- [Item List (品目リスト)] = ステップ 3 の [List of Opportunity Product (商談商品のリスト)]
- [Amount (金額)] = ステップ 3 の [Total Price (合計金額)]
- [Description (説明)] = ステップ 3 の [Line Description (明細説明)]
- [Gross Amt (総額)] = ステップ 3 の [List Price (リスト価格)]
- [Quantity (数量)] = ステップ 3 の [Quantity (数量)]
- [Record (レコード)] > [Item List (品目リスト)] > [Item (品目)] > [Item (品目)] > [InternalId (内部 ID)] = ステップ 3 の [Product Code (商品コード)]
- [Record (レコード)] > [Item List (品目リスト)] > [Item (品目)] > [Item (品目)] > [Name (名前)] = ステップ 3 の [Opportunity Product Name (商談商品名)]
既存の NTO Sandbox 組織の接続を使用して For Each ブロック内にフローの 5 番目のステップを作成します。
- プラスアイコンをクリックして For Each 内にステップを追加します。
- [Salesforce] をクリックし、[NTO sandbox org (NTO Sandbox 組織)] をクリックします。
関連付けられた販売注文の内部 ID で Sales Cloud 内のトリガー商談を更新する 5 番目ステップを設定します。
- [Action (アクション)] 項目内をクリックして、[Update record (レコードを更新)] を選択します。
- [Object Type (オブジェクト種別)] 項目に
Opportunity
(商談) と入力します。必須項目であるため、[Opportunity ID (商談 ID)] が自動的に選択されます。 - [Select Optional Fields (省略可能な項目を選択)] をクリックします。
- 検索ツールを使用して [NetSuite Order ID (NetSuite 注文 ID)] を選択し、[Apply (適用)] をクリックします。
- 次のように、商談の項目をフローの先行するステップで取得された対応する項目に対応付けます。
- [Opportunity ID (商談 ID)] = ステップ 1 の [Opportunity ID (商談 ID)]
- [NetSuite Order ID (NetSuite 注文 ID)] = ステップ 4 の [Internal ID (内部 ID)]
- フローを保存します。フロー全体は次のようになります。
ここまで順調ですね。次の単元では、フローが想定どおりに機能することを確認するテストの実行方法を学習します。