インテグレーションユースケースを検証する
学習の目的
この単元を完了すると、次のことができるようになります。
- Salesforce で新規作成または更新された商品を NetSuite の在庫品目やアセンブリ品目と常に同期させるという課題について説明する。
- MuleSoft Composer を使用して、Salesforce で新規作成または更新された商品を NetSuite の在庫品目やアセンブリ品目と同期する方法を説明する。
- フローの作成準備をする。
始める前に
このモジュールは「MuleSoft Composer のインストールと設定」に基づいて作成されているため、先に進む前にこちらのモジュールを必ず受講してください。先行のモジュールと同様に、インテグレーションフローを作成して実行するためには「MuleSoft Composer ユーザー」権限セットが必要です。
このモジュールでは、受講者が MuleSoft Composer ユーザーとして認証されていると想定しています。ただし、MuleSoft Composer ユーザーでなくても問題ありません。このまま読み進み、手順をどのように実行するかを学習してください。MuleSoft Composer は Trailhead Playground で使用できないため、記載の手順を Trailhead Playground で実行しないでください。
この単元では、アウトドアやレクリエーション用品の小売企業である Northern Trail Outfitters (NTO) のシステム管理者としての職務に取り組みます。まず、NTO が直面しているインテグレーションの課題を検証し、MuleSoft Composer のインテグレーションソリューションについて理解します。次に、フローの作成の準備方法を学習します。
インテグレーションの課題
では、NTO が直面しているインテグレーションの課題を見てみましょう。NTO の営業チームは、Sales Cloud を使用してお客様に販売する商品を管理しています。在庫品目やアセンブリ品目の管理には NetSuite を使用しています。
前述のとおり、NetSuite で在庫品目とは、売買の対象となる物理的な商品のことです。アセンブリ品目は、在庫品目、非在庫品目、サービス品目、手数料、他のアセンブリ品目など、構成品目を組み合わせたものです。アセンブリ品目は、ストックされている関連品目で構成されます。
現在、営業チームはインテグレーションタスクを手作業で行っています。新しい商品が加わったり商品が更新されたりするたびに、営業担当がまず Sales Cloud で、適切な詳細を使用して商品を作成または更新します。次に、NetSuite に対応する在庫品目が存在するかどうかを判断します。
- 在庫品目が存在しない場合は、NetSuite で、適切な商品の詳細 (関連付けられた商品 ID など) を使用して新しい在庫品目を作成します。続いて Sales Cloud で、在庫品目に関連付けられた内部 ID を使用して商品を更新します。
- 在庫品目が存在する場合は、NetSuite で、適切な商品の詳細を使用してその在庫品目を更新します。
最後に NetSuite で、適切な商品と在庫品目の詳細を使用して、関連付けられた在庫品目を含む新しいアセンブリ品目を作成します。
このプロセスは時間がかかり、ミスが起こりやすいため、チームは自動化したいと考えています。
インテグレーションソリューション
この解決策として、Sales Cloud と NetSuite 間のインテグレーションを自動化して、ニアリアルタイムのインテグレーションを実現する必要があります。このために、MuleSoft Composer を使用して、Salesforce で新規作成または更新された商品を NetSuite の在庫品目やアセンブリ品目と自動的に同期するインテグレーションフローを作成します。具体的には、このフローで次のタスクを実行します。
- Sales Cloud で新規作成または更新された商品を見つけます。
- NetSuite に対応する在庫品目が存在するかどうかを判断します。
- 在庫品目が存在しない場合:
- NetSuite で、適切な商品の詳細 (関連付けられた商品 ID など) を使用して新しい在庫品目を作成します。
- Sales Cloud で、関連付けられた在庫品目の内部 ID を使用して商品を更新します。
- 在庫品目が存在する場合は、NetSuite で、適切な商品の詳細を使用して在庫品目を更新します。
- NetSuite で、適切な商品と在庫品目の詳細を使用して、関連付けられた在庫品目を含む新しいアセンブリ品目を作成します。
MuleSoft Composer を使用するソリューションを実装するには、次のフロー作成タスクを実行します。
- フローの作成準備をする。
- フローを設計してテストする。
- フローをアクティブ化する。
- フローを監視してトラブルシューティングする。
上記のタスクの実行方法については、このモジュールの後続の単元で説明します。
フローの作成準備をする
では始めましょう。
まず、フローで使用するシステムやアセットに関する必要な情報をすべて収集します。次の表は、フローの接続先となるシステムと、各システムに必要な情報を示しています。
システム | 必要な情報 |
---|---|
NTO の Sales Cloud |
|
NetSuite |
|
フローの設計時とテスト時は、上記のシステムやデータをテスト環境で使用することがベストプラクティスです。テストの終了後、本番用のシステムとデータを使用してフローを実行します。
次に、Salesforce 環境と NetSuite 環境の前提条件について説明します。
Salesforce 環境の前提条件
前提条件として、Salesforce と同期するフローを作成して実行する Sandbox 組織と本番組織が必要です。
メモ: フローを設計してテストする Sandbox 組織がない場合は、開発者組織を使用できます。
次の手順に従って無料の開発者組織にサインアップします。
- https://developer.salesforce.com/signup にアクセスします。
- 連絡先情報を入力します。
- 一意のユーザー名を入力します。
- [サインアップ] をクリックして、お知らせメールが届くまで待ちます。
- お知らせメールのリンクをクリックして、パスワードを設定します。
次に、MuleSoft Composer を使用して Salesforce への接続を作成するときに、MuleSoft Composer に権限を付与するプロンプトが表示されます。Sandbox 組織と本番組織の両方の Salesforce アカウントで、MuleSoft Composer に次の権限を付与する準備ができていることを確認します。
- ID URL サービスにアクセスする。
- API を使用してユーザーデータを管理する。
- いつでも要求を実行する。
続いて、Salesforce の商品で新しい在庫品目の内部 ID をキャプチャするために、NTO 組織の商品オブジェクトに [NetSuite Item ID (NetSuite 品目 ID)] というカスタムテキスト項目が作成されていることを確認します。以下は、NTO 組織の商品の [NetSuite Item ID (NetSuite 品目 ID)] の一例です。
カスタム項目の作成方法については、「Salesforce オブジェクトのカスタマイズ」を参照してください。
最後に、ご存知のとおり、Sales Cloud では各商品に標準価格が設定され、標準価格表が関連付けられています。作成または更新する商品の価格を取得するために、フローが組織の標準価格表にアクセスする必要があります。ここで、標準価格表の ID を確認しておきます。次の手順を実行します。
- ユーザー名とパスワードを使用して NTO 組織にログインします。
- アプリケーションランチャーに
価格表
と入力し、[価格表] を選択します。 -
[標準価格表] をクリックします。標準価格表が表示されます。URL の末尾のほうに表示されている ID をメモします。この例では 01s1U000005mSpYQAU です。フローでこの ID を使用します。
NetSuite 環境の前提条件
管理者ロールの NetSuite ユーザーは、MuleSoft Composer の NetSuite Connector を使用して、NetSuite と MuleSoft Composer がサポートする他のシステム間のインテグレーションタスクを実行できます。MuleSoft Composer を使用して NetSuite への接続を作成する前に、NetSuite ユーザーに NetSuite 管理者ロールが割り当てられていることを確認します。
最初に、新しい各在庫品目で関連付けられた商品 ID をキャプチャするために、NetSuite の [Inventory Item (在庫品目)] フォームに [Salesforce Product ID (Salesforce 商品 ID)] という自由形式のカスタムテキスト項目を作成する必要があります。次の手順を実行します。
- ユーザー名とパスワードを使用して、NetSuite にログインします。
- [List (リスト)] | [Accounting (会計)] | [Items (品目)] | [New (新規)] をクリックします。[New Item (新規品目)] ページが表示されます。
-
[Inventory Item (在庫品目)] をクリックします。[Inventory Item (在庫品目)] フォームが表示されます。この例では、[Custom Form (カスタムフォーム)] 項目の名前を [Custom Inventory Part Form (カスタム在庫部品フォーム)] にします。
- [Customization (カスタマイズ)] | [Lists, Records, & Field (リスト、レコード、項目)] | [Item Field (品目項目)] | [New (新規)] をクリックします。
- 項目に次の値を入力します。
- Label (表示ラベル):
Salesforce Product ID
(Salesforce 商品 ID) - Type (データ型): Free-Form Text (自由形式のテキスト)
- Label (表示ラベル):
- [Applies To (適用先)] タブで、[INVENTORY ITEM (在庫品目)] を選択します。
- [Display (表示)] タブをクリックし、[SUBTAB (サブタブ)] 選択リストから [Main (メイン)] を選択して [Save (保存)] をクリックします。
- [Customization (カスタマイズ)] | [Forms (フォーム)] | [Entry Forms (エントリフォーム)] をクリックします。[Custom Entry Forms (カスタムエントリフォーム)] が表示されます。
- [Custom Inventory Part Form (カスタム在庫部品フォーム)] の横にある [Edit (編集)] をクリックします。
- [Fields (項目)] タブをクリックします。
- [Salesforce Product ID (Salesforce 商品 ID)] までスクロールダウンして、[Field Group (項目グループ)] 項目の [Primary Information (プライマリ情報)] を選択します。
- [Save (保存)] をクリックします。
- [List (リスト)] | [Accounting (会計)] | [Items (品目)] | [New (新規)] をクリックします。[New Item (新規品目)] ページが表示されます。
-
[Inventory Item (在庫品目)] をクリックします。[Primary Information (プライマリ情報)] セクションに [Salesforce Product ID (Salesforce 商品 ID)] 項目が表示されます。
次に、NetSuite に 内部 ID を表示可能にするために、[Home (ホーム)] | [Set Preferences (個人設定の設定)] をクリックし、[Show Internal ID (内部 ID を表示)] チェックボックスをオンにして、[Save (保存)] をクリックします。
ここで、フローが [Inventory Item (在庫品目)] フォームと [Assembly/Bill of Materials (アセンブリ/部品表)] フォームにアクセスして、在庫品目とアセンブリ品目を作成する必要があります。この 2 つのフォームの各項目の内部 ID を判断して、フローで入力できるようにします。
[Inventory Item (在庫品目)] フォームから見ていきましょう。[Subsidiary (関連子会社)] 項目の値の中に [Honeycomb Mfg] があります。
フローで必要となる Honeycomb Mfg の内部 ID を確認する必要があります。NetSuite の [Search (検索)] 項目に、subsidiaries
(関連子会社) と入力し、[Page: Subsidiaries (ページ: 関連子会社)] を選択します。各関連子会社の内部 ID が表示されます。Honeycomb Mfg の内部 ID は 1 です。この ID を使用して、フローの各在庫品目の [Subsidiary (関連子会社)] 項目に値を入力します。
次に、[Inventory Item (在庫品目)] フォームの [Accounting (会計)] タブを見ると、税額表が S1 になっています。
フローで必要となる S1 税額表の内部 ID を見つける必要があります。次の手順を実行します。
- [Search (検索)] 項目に、
tax schedules
(税額表) と入力し、[Page: Tax Schedules (ページ: 税額表)] を選択します。 - [S1] をクリックして、[Search (検索)] リンクをクリックします。
-
[Submit (送信)] をクリックして、税額表のグローバル検索を実行します。各税額表の内部 ID が表示されます。S1 の内部 ID は 1 です。この ID を使用して、フローの各在庫品目の [Tax Schedule (税額表)] 項目に値を入力します。
次に、[Assembly/Bill of Materials (アセンブリ/部品表)] フォームを見てみましょう。[Subsidiary (関連子会社)] 項目の値の中に [Honeycomb Mfg] があります。フローでは、各在庫品目と関連付けられているアセンブリ品目に、同じ関連子会社の値を設定する必要があります。値が異なっていると、実行時に INVALID_SUB というエラーコードとともに、「You may not add members to a group/kit/assembly unless the subsidiaries for those members completely contain the subsidiaries of the group/kit/assembly. (メンバーの関連子会社にグループ/キット/アセンブリの関連子会社がすべて含まれていない限り、そのメンバーをグループ/キット/アセンブリに追加できません。)」というエラーメッセージが表示されます。Honeycomb Mfg の内部 ID は 1 です。この ID を使用して、フローの各アセンブリ品目の [Subsidiary (関連子会社)] 項目に値を入力します。
[Assembly/Bill of Materials (アセンブリ/部品表)] フォームの [Accounting (会計)] タブに、[Tax Schedule (税額表)] 項目があります。S1 税額表の内部 ID は 1 です。この ID を使用して、フローの各アセンブリ品目の [Tax Schedule (税額表)] 項目に値を入力します。
[Assembly/Bill of Materials (アセンブリ/部品表)] フォームの [Manufacturing (製造)] タブで、フローが品目、BOM 数量、税額表などの項目を使用して [Components (部品)] セクションに関連付けられた在庫品目の値を入力する必要があります。
[Assembly/Bill of Materials (アセンブリ/部品表)] フォームの [Sales/Pricing (販売/価格設定)] タブで、フローが [USA (米国)] サブリストにある [QTY 0 (数量 0)] 列の [List Price (リスト価格)] 行に値を入力する必要があります。各割引率の価格は NetSuite で自動的に計算されます。
フローで値を入力する必要がある [Inventory Item (在庫品目)] フォームと [Assembly/Bill of Materials (アセンブリ/部品表)] フォームの各種の項目の説明は以上です。
最後に、NetSuite 接続の値を確認しましょう。
NetSuite 接続のパラメーター
MuleSoft Composer を使用して NetSuite への接続を作成するときは、以下のパラメーターに値を指定する必要があります。
接続表示名
接続表示名は任意の名前です。
アカウント
NetSuite アカウントを見つける手順は、次のとおりです。
- NetSuite で、[Setup (設定)] | [Integration (インテグレーション)] | [SOAP Web Services Preferences (SOAP Web サービスプリファレンス)] をクリックします。
- アカウント ID を任意のテキストファイルにコピーして保存します。
コンシューマーキーとコンシューマーシークレット
NetSuite 接続用のコンシューマーキーとコンシューマーシークレットを生成する手順は、次のとおりです。
- [Setup (設定)] | [Company (会社)] | [Enable Features (機能の有効化)] をクリックします。
- [SuiteCloud] をクリックします。
- [Manage Authentication (認証の管理)] セクションまでスクロールダウンして、[Token-based Authentication (トークンベースの認証)] チェックボックスをオンにします。
- [SuiteCloud Terms of Service (SuiteCloud 利用規約)] ページで [I Agree (同意します)] をクリックします。
- [Save (保存)] をクリックします。
- [Setup (設定)] | [Integration (インテグレーション)] | [Manage Integrations (インテグレーションの管理)] | [New (新規)] をクリックします。
- インテグレーションを次のように設定して [Save (保存)] をクリックすると、コンシューマーキーとコンシューマーシークレットが生成されます。
- Name (名前):
Composer Integration
(Composer のインテグレーション) - State (状態): Enabled (有効)
- Token-based Authentication (トークンベースの認証): オン
- TBA: Authorization Flow (TBA: 認証フロー): オフ
- OAuth 2.0 Authorization Code Grant (OAuth 2.0 認証コード許可): オフ
- User Credentials (ユーザーログイン情報): オフ
- Name (名前):
- コンシューマーキーとコンシューマーシークレットをテキストファイルにコピーして保存します。
トークン ID とトークンシークレット
NetSuite 接続用のトークン ID とトークンシークレットを生成する手順は、次のとおりです。
- [Setup (設定)] | [Users/Roles (ユーザー/ロール)] | [Access Tokens (アクセストークン)] | [New (新規)] をクリックします。
- アクセストークンを次のように設定して [Save (保存)] をクリックすると、トークン ID とトークンシークレットが生成されます。
- Application Name (アプリケーション名):
Composer Integration
(Composer のインテグレーション) - Token Name (トークン名):
Composer Integration - [あなたのユーザー名], Administrator
- Application Name (アプリケーション名):
- トークン ID とトークンシークレットを同じテキストファイルにコピーします。MuleSoft Composer を使用して NetSuite 接続を設定するときに、このテキストファイルの値をすべて使用します。
MuleSoft Composer を使用したフローの作成準備の最初の手順を実行しました。次の単元では、フローを設計する方法を学習します。