Studio 7 での NetSuite コネクタの設定方法

このコネクタは、連動関係として Mule アプリケーションに追加すれば Anypoint Studio で使用できます。

Studio でコネクタをインストールする

  1. Anypoint Studio で Mule プロジェクトを開きます。

  2. コネクタを連動関係として pom.xml ファイルに追加します。

    <dependency>
      <groupId>org.mule.connectors</groupId>
      <artifactId>mule-netsuite-connector</artifactId>
      <version>8.0.0</version>
      <classifier>mule-plugin</classifier>
    </dependency>

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 署名アルゴリズムの種別

ユースケース: Studio

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.0.x EE) 以降を選択します。

  • [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

関連情報

Was this article helpful?

💙 Thanks for your feedback!

Edit on GitHub