Studio を使用した NetSuite Connector の設定

Studio プロジェクトへのコネクタの追加

Anypoint Studio には、Studio プロジェクトにコネクタを追加する 2 つの方法があります。Studio タスクバーの Exchange ボタンから追加するか、[Mule Palette (Mule パレット)] ビューから追加します。

Exchange を使用してコネクタを追加する

  1. Studio で Mule プロジェクトを作成します。

  2. Studio タスクバーの左上にある Exchange アイコン (X)​ をクリックします。

  3. Exchange で、[Login (ログイン)]​ をクリックし、Anypoint Platform のユーザー名とパスワードを指定します。

  4. Exchange で、「netsuite」を検索します。

  5. コネクタを選択して [Add to project (プロジェクトに追加)]​ をクリックします。

  6. 画面の指示に従ってコネクタをインストールします。

Studio でコネクタに追加する

  1. Studio で Mule プロジェクトを作成します。

  2. [Mule Palette (Mule パレット)] ビューで、[(X) Search in Exchange ((X) Exchange 内を検索)]​ をクリックします。

  3. [Add Modules to Project (モジュールをプロジェクトに追加)]​ で、検索項目に「netsuite」と入力します。

  4. [Available modules (使用可能なモジュール)]​ で、このコネクタの名前をクリックします。

  5. [Add (追加)]​ をクリックします。

  6. [Finish (完了)]​ をクリックします。

Studio で設定する

  1. コネクタの操作を Studio キャンバスにドラッグします。

  2. グローバルコネクタ設定にリストされている認証メカニズムを選択します。次のいずれかを選択できます。

    設定 説明

    Login Authentication (ログイン認証)

    コネクタが送信する最初の要求で SuiteTalk のログイン API コールを使用して NetSuite とのセッションを確立します。

    Request Based Authentication (要求ベース認証)

    この戦略を使用すると、ログインを呼び出して NetSuite に対して認証する代わりに、各要求の SOAP ヘッダーでユーザーのログイン情報を送信できます。

    Single Sign-On Authentication (シングルサインオン認証)

    これは、環境ユーザー名とパスワードを使用しないトークンベースの認証システムです。この場合は、privateKey とその他の情報を指定します。コネクタは、認証トークンを生成し、最初の要求で ssoLogin​ API コールを使用して NetSuite とのセッションを確立します。

    Token Authentication (トークン認証)

    シングルサインオンログイン認証に類似するトークンベースの認証システムです。ただし、openssl を使用して生成された privateKey を使用する代わりに、コンシューマーおよびトークンのキー/シークレットの組み合わせを使用します。これらは NetSuite 環境内で確立されます。

  3. 選択に応じて、次の項目を設定します。

    1. Login Authentication (ログイン認証)

      login authentication (ログイン認証)
      パラメーター 説明

      Name (名前)

      後ほど参照するために設定の名前を入力します。

      メール

      NetSuite UI のログインメールを入力します。

      Password (パスワード)

      NetSuite UI にログインするためのパスワードを入力します。

      アカウント。

      SuiteTalk NetSuite Web サービスのアカウント ID を入力します。通常これは、NetSuite Sandbox UI 内の [Setup (設定)] > [Integration (インテグレーション)] > [Web Service Preferences (Web サービスプリファレンス)] にあります。

      Role Id (ロール ID)

      SuiteTalk でのユーザーのロール ID を入力します。これによってプロセッサー権限が決まります。

      Application Id (アプリケーション ID)

      使用するインテグレーションレコードに対応するアプリケーション ID を入力します。

    2. Request Based Authentication (要求ベース認証)

      request based authentication (要求ベース認証)
      パラメーター 説明

      Name (名前)

      後ほど参照するために設定の名前を入力します。

      メール

      NetSuite UI のログインメールを入力します。

      Password (パスワード)

      NetSuite UI にログインするためのパスワードを入力します。

      アカウント。

      SuiteTalk NetSuite Web サービスのアカウント ID を入力します。通常これは、NetSuite Sandbox UI 内の [Setup (設定)] > [Integration (インテグレーション)] > [Web Service Preferences (Web サービスプリファレンス)] にあります。

      Role Id (ロール ID)

      SuiteTalk でのユーザーのロール ID を入力します。これによってプロセッサー権限が決まります。

      Application Id (アプリケーション ID)

      使用するインテグレーションレコードに対応するアプリケーション ID を入力します。

    3. SSO Authentication (SSO 認証)

      request based authentication (要求ベース認証)
      パラメーター 説明

      Name (名前)

      後ほど参照できるように設定の名前を入力します。

      SSO Library (SSO ライブラリ)

      [Add Dependency (連動関係を追加)] をクリックし、SSO 連動関係を Maven 連動関係形式で追加します。

      Partner Id (パートナー ID)

      マッピングプロセスで使用されるパートナー ID を入力します。

      Partner Account (パートナーアカウント)

      SuiteTalk NetSuite Web サービスのアカウント ID を入力します。

      Company ID (会社 ID)

      マッピングプロセスでコネクタがトークンを生成するために使用する会社 ID を入力します。

      User ID (ユーザー ID)

      マッピングプロセスでコネクタがトークンを生成するために使用するユーザー ID を入力します。

      Key File (キーファイル)

      プロジェクトから選択する privateKey ファイル名を入力します。このファイルは、NetSuite の仕様に従って生成された .der ファイルである必要があります。これは、会社 ID とユーザー ID を暗号化して ssoLogin 用のトークンにするために使用されます。

      Application Id (アプリケーション ID)

      使用するインテグレーションレコードに対応するアプリケーション ID を入力します。

    4. Token Authentication (トークン認証)

      request based authentication (要求ベース認証)
      パラメーター 説明

      Consumer Key (コンシューマーキー)

      使用するトークンベース認証対応のインテグレーションレコードのコンシューマーキーを入力します。

      Consumer Secret (コンシューマーシークレット)

      使用するトークンベース認証対応のインテグレーションレコードのコンシューマーシークレットを入力します。

      Token ID (トークン ID)

      NetSuite 環境内で生成されたユーザーとインテグレーションの一意の組み合わせを表すトークン ID を入力します。

      Token Secret (トークンシークレット)

      ユーザー/インテグレーションの各組み合わせに対するトークンシークレットを入力します。

      アカウント。

      SuiteTalk NetSuite Web サービスのアカウント ID を入力します。通常これは、NetSuite Sandbox UI 内の [Set Up (セットアップ)] > [Integration (インテグレーション)] > [Web Service Preferences (Web サービスプリファレンス)] にあります。

      Signature algorithm (署名アルゴリズム)

      HMAC 署名アルゴリズムの種別

ユースケース: NetSuite RESTlet のコール

このユースケースは、NetSuite インスタンスにデプロイされた RESTlet をコールする方法を示しています。

これらの手順に従うことで、次のことを実行できます。

  • 顧客レコードを作成する。

  • 顧客レコードを取得する。

  • レコードを削除します。

前提条件

  • Java 8

  • Anypoint Studio 7.0.x

  • Mule Runtime 4.0.x EE

  • DataWeave 2.0

  • NetSuite インスタンスへのアクセス権と mule-app.properties​ ファイル内のログイン情報

RESTlet としてのスクリプトのデプロイ

  1. サンプル JavaScript スクリプトを作成します。

    // Get a standard NetSuite record
    function getRecord(datain)
    {
        return nlapiLoadRecord(datain.recordtype, datain.id);
        // for example, recordtype="customer", id="769"
    }
    
    // Create a standard NetSuite record
    
    function createRecord(datain)
    {
        var err = new Object();
    
        // Validate if mandatory record type is set in the request
        if (!datain.recordtype)
        {
            err.status = "failed";
            err.message= "missing recordtype";
            return err;
        }
    
        var record = nlapiCreateRecord(datain.recordtype);
    
        for (var fieldname in datain)
        {
          if (datain.hasOwnProperty(fieldname))
          {
            if (fieldname != 'recordtype' && fieldname != 'id')
            {
              var value = datain[fieldname];
                if (value && typeof value != 'object')
                // ignore other type of parameters
                {
                  record.setFieldValue(fieldname, value);
                }
            }
          }
        }
        var recordId = nlapiSubmitRecord(record);
        nlapiLogExecution('DEBUG','id='+recordId);
        var nlobj = nlapiLoadRecord(datain.recordtype,recordId);
        return nlobj;
    }
    
    // Delete a standard NetSuite record
    function deleteRecord(datain)
    {
      nlapiDeleteRecord(datain.recordtype, datain.id);
      // for example: recordtype="customer", id="769"
    
    }
  2. アカウントの SuiteScript と Web サービスを有効にします。NetSuite にログインし、[Set Up (セットアップ)] > [Company (会社)] > [Enable Features (機能の有効化)] > [SuiteCloud] をクリックします。

    SuiteScript の有効化
  3. 新しいスクリプトを作成し、以前に作成したファイルをアップロードします。[Customization (カスタマイズ)] > [Scripting (スクリプト)] > [Scripts (スクリプト)] > [New (新規)] に移動します。

  4. スクリプトファイルを選択し、[Create Script Record (スクリプトレコードの作成)] をクリックし、[RESTlet] を選択します。

    スクリプト種別の選択
  5. アップロードしたスクリプトの内容を使用してフォームに入力し、スクリプトをデプロイします。

    スクリプトの設定
  6. 利用者を選択すると、次のページが表示されます。外部 URL のスクリプト番号とデプロイ番号をメモします。これらは、RESTlet をコールするために必要です。

    スクリプトのデプロイ

プロジェクトのインポート

  • [File (ファイル)] > [Import (インポート)] に移動します。

  • [Anypoint Studio] フォルダーの下の [External Location (外部の場所)] から [Anypoint Studio Project (Anypoint Studio プロジェクト)] を選択します。

  • デモプロジェクトフォルダーへのルートパスを指定します。

  • Mule Runtime (4.1.1) 以降を選択します。

  • [Finish (完了)] をクリックします。

  • src/main/resources/mule-app.properties​ ファイル内でログイン情報、デプロイしたスクリプト、デプロイ ID を設定します。

    netsuite.email=
    netsuite.password=
    netsuite.account=
    netsuite.roleId=
    netsuite.applicationId=
    netsuite.subsidiary=
    netsuite.script=
    netsuite.deploy=
    1. [Global Element Configuration (グローバル要素の設定)] を開きます。

    2. [Test Connection (接続をテスト)] ボタンをクリックして、Sandbox と接続されていることを確認します。

      接続のテストは重要なステップです。接続性に問題があると、このユースケースのどの部分も実行できず、DataSense を使用することもできません。

    3. ポップアップに成功メッセージが表示されます。

      接続のテスト
    4. ブラウザーを開き、URL http://localhost:8081​ にアクセスします。 デプロイされたアプリケーションが表示されます。

      デモインデックス

フローについて

  1. html-form-flow: ​parseTemplate​ コンポーネントを使用して HTML フォームを表示します。

    フロー HTML フォーム
  2. restletGet: RESTlet の GET 関数をコールします。

    フロー HTML フォーム
  3. restletPost: RESTlet の POST 関数をコールします。

    フロープロセッサー 1
  4. restletDelete: RESTlet の DELETE 関数をコールします。

    フロープロセッサー 1

次のステップ

Studio を設定したら、「例」​トピックで詳細な設定アイデアを参照してください。