NetSuite

NetSuite コネクタを使用すると、NetSuite データに対して挿入、削除、更新、読み取りオペレーションを実行できます。

準備

NetSuite コネクタを使用する前に、次の作業を行います。

  • Google Cloud プロジェクトで次の操作を行います。
    • コネクタを構成するユーザーに roles/connectors.admin IAM ロールを付与します。
    • コネクタに使用するサービス アカウントに、次の IAM ロールを付与します。
      • roles/secretmanager.viewer
      • roles/secretmanager.secretAccessor

      サービス アカウントは特別なタイプの Google アカウントで、Google API のデータにアクセスするのに認証を受ける必要がある人間以外のユーザーを表します。サービス アカウントがない場合は、サービス アカウントを作成する必要があります。詳細については、サービス アカウントを作成するをご覧ください。

    • 次のサービスを有効にします。
      • secretmanager.googleapis.com(Secret Manager API)
      • connectors.googleapis.com(Connectors API)

      サービスを有効にする方法については、サービスを有効にするをご覧ください。

    以前にプロジェクトでこうしたサービスを有効にしていない場合は、コネクタを構成するときにそれを有効にすることを求められます。

コネクタを構成する

コネクタを構成するには、データソース(バックエンド システム)への接続を作成する必要があります。接続はデータソースに特有です。つまり、多数のデータソースがある場合は、データソースごとに別々の接続を作成する必要があります。接続を作成する手順は次のとおりです。

  1. Cloud コンソールで、[Integration Connectors] > [接続] ページに移動し、Google Cloud プロジェクトを選択または作成します。

    [接続] ページに移動

  2. [+ 新規作成] をクリックして [接続の作成] ページを開きます。
  3. [ロケーション] セクションで、接続のロケーションを選択します。
    1. リージョン: プルダウン リストからロケーションを選択します

      コネクタをサポートしているリージョンは次のとおりです。

      サポートされているすべてのリージョンのリストについては、ロケーションをご覧ください。

    2. [Next] をクリックします。
  4. [接続の詳細] セクションで、次の操作を行います。
    1. コネクタ: 使用可能なコネクタのプルダウン リストから [NetSuite] を選択します。
    2. コネクタのバージョン: 使用可能なバージョンのプルダウン リストからコネクタのバージョンを選択します。
    3. [接続名] フィールドに、接続インスタンスの名前を入力します。

      接続名は次の条件を満たす必要があります。

      • 接続名には英字、数字、ハイフンを使用できます。
      • 文字は小文字のみを使用できます。
      • 接続名の先頭には英字を設定し、末尾には英字または数字を設定する必要があります。
      • 接続名は 63 文字以内で指定してください。
    4. 必要に応じて、接続インスタンスの [説明] を入力します。
    5. サービス アカウント: 必要なロールを持つサービス アカウントを選択します。
    6. 必要に応じて、接続ノードの設定を構成します。

      • ノードの最小数: 接続ノードの最小数を入力します。
      • ノードの最大数: 接続ノードの最大数を入力します。

      ノードは、トランザクションを処理する接続の単位(またはレプリカ)です。1 つの接続でより多くのトランザクションを処理するには、より多くのノードが必要になります。逆に、より少ないトランザクションを処理するには、より少ないノードが必要になります。ノードがコネクタの料金に与える影響については、接続ノードの料金をご覧ください。値を入力しない場合は、デフォルトで最小ノード数は 2 に設定され(可用性を高めるため)、最大ノード数は 50 に設定されます。

    7. Account Id: ユーザー名が NetSuite に関連付けられている企業アカウント。
    8. Aggregate Column Mode: 集計列の扱われ方を指定します。
    9. Application Id: バージョン 2020.1 以降、NetSuite へのリクエストにはアプリケーション ID が必要です。
    10. Custom Field Permissions: カスタム フィールド権限のカンマ区切りのリスト。includeCustomFieldColumns よりも細かく制御できます。
    11. Include Child Tables: 子テーブルを表示するかどうかを示すブール値。
    12. Include Custom Field Columns: カスタム フィールド列を含めるかどうかを示すブール値。
    13. Include Custom List Tables: カスタムリストに基づいてテーブルを使用するかどうかを示すブール値。
    14. Include Custom Record Tables: カスタム レコードタイプに基づいてテーブルを使用するかどうかを示すブール値。
    15. Include Reference Columns: レコード参照を表すフィールドからデータを取得する際に含める列を表すカンマ区切りのリスト。
    16. Maximum Concurrent Sessions: 接続で使用可能な同時セッションの最大数。
    17. Net Suite Date Format: NetSuite UI で設定された優先日付形式。
    18. Net Suite Long Date Format: NetSuite UI で設定された優先日付形式。
    19. Netsuite Metadata Folder: NetSuite からメタデータ ファイルをダウンロードするためのディレクトリへのパス。最適なパフォーマンスを得るには、これを設定します。
    20. Report Doubles As Decimal: 倍精度 10 進数としてレポートするかどうかを示します。
    21. Request Memorized Transactions: NetSuite からトランザクションを取得する際に記憶されたトランザクションをリクエストするかどうかを示すブール値。
    22. Role Id: RoleId は、NetSuite へのログインに使用されるロールの InternalId です。ユーザーのデフォルトのロールを使用するには、空のままにします。
    23. スキーマ: 使用するスキーマのタイプ。 次のいずれかの値を選択できます。
      • SuiteTalk - SOAP ベースの接続用。
      • SuiteSQL - REST ベースの接続用。
    24. Use Async Services: 挿入、更新、削除時に非同期サービスを使用するかどうかを示すブール値。
    25. Use Internal Names For Customizations: カスタマイズに内部名を使用するかどうかを示すブール値。
    26. Use Upserts: 挿入オペレーションの使用時に upsert を実行するかどうかを示すブール値。
    27. User Timezone Offset: NetSuite の設定の [Home] > [Preferences] > [Time Zone] で定義されたユーザー タイムゾーン オフセット。例: EST。
    28. Row Scan Depth: テーブルの列を動的に決定するときにスキャンする行数。
    29. Use proxy: このチェックボックスを選択して、接続用のプロキシ サーバーを構成し、次の値を構成します。
      • Proxy Auth Scheme: プロキシ サーバーで認証する認証タイプを選択します。次の認証タイプがサポートされています。
        • 基本: 基本的な HTTP 認証。
        • ダイジェスト: ダイジェスト HTTP 認証。
      • Proxy User: プロキシ サーバーでの認証に使用されるユーザー名。
      • プロキシ パスワード: ユーザーのパスワードの Secret Manager シークレット。
      • Proxy SSL Type: プロキシ サーバーへの接続時に使用する SSL タイプ。次の認証タイプがサポートされています。
        • 自動: デフォルトの設定。URL が HTTPS URL の場合は、[トンネル] オプションが使用されます。URL が HTTP URL の場合、[なし] オプションが使用されます。
        • 常に: 接続は常に SSL 対応です。
        • なし: 接続は SSL に対応していません。
        • トンネル: 接続はトンネリング プロキシ経由で行われます。プロキシ サーバーがリモートホストへの接続を開き、トラフィックはプロキシを経由するようになります。
      • [Proxy Server] セクションで、プロキシ サーバーの詳細を入力します。
        1. [+ 宛先を追加] をクリックします。
        2. [宛先の種類] を選択します。
          • Host address: 宛先のホスト名または IP アドレスを指定します。

            バックエンドへのプライベート接続を確立する場合は、次のようにします。

    30. 必要に応じて、[+ ラベルを追加] をクリックして Key-Value ペアの形式でラベルを接続に追加します。
    31. [Next] をクリックします。
  5. [宛先] セクションに、接続するリモートホスト(バックエンド システム)の詳細を入力します。
    1. 宛先タイプ: 宛先の詳細は、ホストアドレスまたはサービス アタッチメントとして指定できます。次のいずれかの宛先タイプを選択します。
      • ホストアドレス: 宛先のホスト名または IP アドレスを指定する場合。
      • サービス アタッチメント: 内部 IP アドレスのプライベート エンドポイントを指定する場合。サービス アタッチメントを使用すると、外部ネットワークから内部 IP アドレスを非表示にできます。Private Service Connect 機能を使用して、Google Cloud でサービス アタッチメントを作成できます。Private Service Connect の構成については、マネージド サービスを公開するをご覧ください。

      選択した宛先タイプに基づいて、ホストアドレスまたはサービス アタッチメント名を入力します。

      他の宛先を入力するには、[+Add destination] をクリックします。

    2. [Next] をクリックします。
  6. [認証] セクションで、認証の詳細を入力します。
    1. [認証タイプ] を選択し、関連する詳細を入力します。

      NetSuite 接続でサポートされる認証タイプは次のとおりです。

      • ユーザー名とパスワードを指定する
      • トークンベースの認証
      • OAuth 2.0 認証コードの付与
    2. これらの認証タイプの構成方法については、認証を構成するをご覧ください。

    3. [Next] をクリックします。
  7. レビュー: 接続と認証の詳細を確認します。
  8. [Create(作成)] をクリックします。

認証を構成する

使用する認証に基づいて詳細を入力します。

  • ユーザー名とパスワードを指定する

    ユーザー名とパスワードの認証。これは、Netsuite バージョン 2020.2 以前に対してのみ有効です。

    • ユーザー名: コネクタのユーザー名
    • パスワード: コネクタに関連付けられたパスワードを含む Secret Manager の Secret。
  • トークンベースの認証

    NetSuite のトークンベースの認証。これは SuiteTalkSuiteQL の両方のスキームで使用できます。

    • OAuth クライアント ID: アプリケーションが作成されたときに表示されるコンシューマ キー。
    • OAuth クライアント シークレット: アプリケーションの作成時に表示されるコンシューマ シークレットを含む Secret Manager の Secret。
    • OAuth アクセス トークン: アクセス トークンが作成されたときのトークン ID。
    • OAuth アクセス トークン シークレット: アクセス トークンが作成されたときのトークン シークレットを含む Secret Manager の Secret。
  • OAuth 2.0 - 認証コード
  • 接続の承認は、ウェブベースのユーザー ログインフローによって行われます。これは SuiteQL スキームに対してのみ有効です。

    • クライアント ID: アクセス トークンのリクエストに使用されるクライアント ID。
    • スコープ: 必要なスコープのカンマ区切りリスト。
    • クライアント シークレット: アクセス トークンのリクエストに使用されるクライアント シークレット。

    Authorization code 認証タイプの場合は、接続を作成した後、認証を構成するためにいくつかの追加手順を行う必要があります。詳しくは、接続作成後の追加手順をご覧ください。

接続作成後の追加手順

認証に OAuth 2.0 - Authorization code を選択した場合は、接続の作成後に次の追加の手順を行う必要があります。

  1. 接続ページで、新しく作成された接続を見つけます。

    新しいコネクタの [ステータス] は [承認が必要] になります。

  2. [承認が必要] をクリックします。

    これにより、[承認の編集] ペインが表示されます。

  3. [リダイレクト URI] の値を外部アプリケーションにコピーします。
  4. 認可の詳細を確認します。
  5. [Authorize(承認)] をクリックします。

    認可が成功すると、[接続] ページの接続ステータスが「有効」に設定されます。

認証コードの再認可

Authorization code 認証タイプを使用しているユーザーが、バックエンド NetSuite アプリケーションの構成を変更した場合は、NetSuite 接続を再承認する必要があります。接続を再認可するには、次の手順を行います。

  1. [接続] ページで必要な接続をクリックします。

    これにより、[接続の詳細] ページが開きます。

  2. [編集] をクリックして、接続の詳細を編集します。
  3. [認証] セクションで [OAuth 2.0 - 認証コード] の詳細を確認します。

    必要に応じて必要な変更を加えます。

  4. [Save] をクリックします。接続の詳細ページに移動します。
  5. [認証] セクションで [承認の編集] をクリックします。これにより、[承認] ペインが表示されます。
  6. [Authorize(承認)] をクリックします。

    認可が成功すると、[接続] ページの接続ステータスが「有効」に設定されます。

エンティティ、オペレーション、アクション

すべての Integration Connectors が、接続されたアプリケーションのオブジェクトを抽象化するレイヤを提供します。アプリケーションのオブジェクトには、この抽象化を通じてのみアクセスできます。抽象化は、エンティティ、オペレーション、アクションとして公開されます。

  • エンティティ: エンティティは、接続されているアプリケーションやサービスのオブジェクト、またはプロパティのコレクションと考えることができます。エンティティの定義は、コネクタによって異なります。たとえば、データベース コネクタでは、テーブルがエンティティであり、ファイル サーバー コネクタでは、フォルダがエンティティです。また、メッセージング システム コネクタでは、キューがエンティティです。

    ただし、コネクタでいずれのエンティティもサポートされていない、またはエンティティが存在しない可能性があります。その場合、Entities リストは空になります。

  • オペレーション: エンティティに対して行うことができるアクティビティです。エンティティに対して次のいずれかのオペレーションを行うことができます。

    使用可能なリストからエンティティを選択すると、そのエンティティで使用可能なオペレーションのリストが生成されます。オペレーションの詳細については、コネクタタスクのエンティティ オペレーションをご覧ください。ただし、コネクタがどのエンティティ オペレーションもサポートしていない場合、サポートされていないオペレーションは Operations リストに表示されません。

  • アクション: コネクタ インターフェースを介して統合で使用できる最初のクラス関数です。アクションを使用すると、1 つまたは複数のエンティティに対して変更を加えることができます。また、使用できるアクションはコネクタごとに異なります。ただし、コネクタがどのアクションもサポートしていない可能性があります。その場合は、Actions リストが空になります。

システムの上限

FTP コネクタは、ノードごとに 1 秒あたり 1 件のトランザクションを処理することができ、この上限を超えるトランザクションはすべてスロットルされます。 デフォルトでは、Integration Connectors は、接続に 2 つのノードを割り当てます(可用性を高めるため)。

Integration Connectors に適用される上限の詳細については、上限をご覧ください。

エンティティ オペレーションの例

このセクションでは、このコネクタでエンティティ オペレーションの一部を実行する方法について説明します。

例 - すべてのクレジットメモを一覧表示する

この例では、CreditMemo エンティティ内のすべてのクレジットメモを一覧表示します。

  1. [Configure connector task] ダイアログで、[Entities] をクリックします。
  2. Entity から CreditMemo を選択します。
  3. [List] オペレーションを選択してから、[完了] をクリックします。
  4. 必要に応じて、コネクタタスクの [タスク入力] セクションでフィルタ句を指定して、結果セットをフィルタリングできます。 フィルタ句の値は、常に単一引用符(')で囲んで指定します。

例 - クレジットメモ レコードを取得する

この例では、CreditMemo エンティティから、指定した ID のレコードを取得します。

  1. [Configure connector task] ダイアログで、[Entities] をクリックします。
  2. Entity から CreditMemo を選択します。
  3. [Get] オペレーションを選択してから、[完了] をクリックします。
  4. [コネクタタスクの [タスク入力 セクションで [entityId] をクリックし、[デフォルト値] フィールドに 1083723 を入力します。

    ここで、1083723CreditMemo エンティティの一意のレコード ID です。

例 - 顧客レコードを作成する

この例では、Customer エンティティに レコードを作成します。

  1. [Configure connector task] ダイアログで、[Entities] をクリックします。
  2. Entity から Customer を選択します。
  3. [Create] オペレーションを選択してから、[完了] をクリックします。
  4. [コネクタ] タスクの [タスク入力] セクションで、connectorInputPayload をクリックし、Default Valueフィールドに次のような値を入力します。
    {
    "CompanyName": "Test1",
    "Email": "test3@gmail.com"
    }

    統合に成功すると、コネクタタスクの connectorOutputPayload フィールドの値は次のようになります。

    [{
    "InternalId": "4767"
    }]

例 - 販売注文を更新する

この例では、SalesOrder エンティティに レコードを作成します。

  1. [Configure connector task] ダイアログで、[Entities] をクリックします。
  2. Entity から SalesOrder を選択します。
  3. [Update] オペレーションを選択してから、[完了] をクリックします。
  4. [コネクタ] タスクの [タスク入力] セクションで、connectorInputPayload をクリックし、Default Valueフィールドに次のような値を入力します。
    {
    "Email": "test2@gmail.com",
    "Entity_InternalId": "1709",
    "Item_InternalId": "945"
     }
  5. [entityID] をクリックし、[デフォルト値] フィールドに「1086949」と入力します。

    統合に成功すると、コネクタタスクの connectorOutputPayload フィールドの値は次のようになります。

    [{
    "InternalId": "1086949"
    }]

Terraform を使用して接続を作成する

Terraform リソースを使用して、新しい接続を作成できます。

Terraform 構成を適用または削除する方法については、基本的な Terraform コマンドをご覧ください。

接続作成用の Terraform テンプレートのサンプルを表示するには、サンプル テンプレートをご覧ください。

Terraform を使用してこの接続を作成する場合は、Terraform 構成ファイルで次の変数を設定する必要があります。

パラメータ名 データ型 必須 説明
account_id STRING True ユーザー名が NetSuite に関連付けられている企業アカウント。
aggregate_column_mode STRING False 集計列の扱われ方を指定します。
application_id STRING False バージョン 2020.1 以降、NetSuite へのリクエストにはアプリケーション ID が必要です。
custom_field_permissions STRING False カスタム フィールド権限のカンマ区切りのリスト。includeCustomFieldColumns よりも細かく制御できます。
include_child_tables BOOLEAN False 子テーブルを表示するかどうかを示すブール値。
include_custom_field_columns BOOLEAN False カスタムフィールド列を含めるかどうかを示すブール値。
include_custom_list_tables BOOLEAN False カスタムリストに基づいてテーブルを使用するかどうかを示すブール値。
include_custom_record_tables BOOLEAN False カスタム レコードタイプに基づいてテーブルを使用するかどうかを示すブール値。
include_reference_columns STRING False レコード参照を表すフィールドからデータを取得する際に含める列を表すカンマ区切りのリスト。
maximum_concurrent_sessions INTEGER False 接続で使用可能な同時セッションの最大数。
net_suite_date_format STRING False NetSuite UI で設定された優先日付形式。
net_suite_long_date_format STRING False NetSuite UI で設定された優先日付形式。
netsuite_metadata_folder STRING False NetSuite からメタデータ ファイルをダウンロードするためのディレクトリへのパス。最適なパフォーマンスを得るには、これを設定します。
report_doubles_as_decimal BOOLEAN False 倍精度 10 進数としてレポートするかどうかを示します。
request_memorized_transactions BOOLEAN False NetSuite からトランザクションを取得する際に記憶されたトランザクションをリクエストするかどうかを示すブール値。
role_id STRING False RoleId は、NetSuite へのログインに使用されるロールの InternalId です。ユーザーのデフォルトのロールを使用するには、空のままにします。
schema STRING True 使用するスキーマのタイプ。
use_async_services BOOLEAN False 挿入、更新、削除時に非同期サービスを使用するかどうかを示すブール値。
use_internal_names_for_customizations BOOLEAN False カスタマイズに内部名を使用するかどうかを示すブール値。
use_upserts BOOLEAN False 挿入オペレーションの使用時に upsert を実行するかどうかを示すブール値。
user_timezone_offset STRING False NetSuite の設定の [Home] > [Preferences] > [Time Zone] で定義されたユーザー タイムゾーン オフセット。例: EST。
row_scan_depth STRING False テーブルの列を動的に決定するときにスキャンする行数。
詳細度 文字列 False 接続の詳細レベルは 1~5 です。詳細レベルが高いと、すべての通信の詳細(リクエスト、レスポンス、SSL 証明書)がログに記録されます。
proxy_enabled BOOLEAN False 接続用のプロキシ サーバーを構成するには、このチェックボックスをオンにします。
proxy_auth_scheme ENUM False ProxyServer プロキシへの認証に使用する認証タイプです。サポートされている値は、BASIC、DIGEST、NONE です。
proxy_user 文字列 False ProxyServer プロキシへの認証に使用されるユーザー名です。
proxy_password SECRET False ProxyServer プロキシの認証に使用されるパスワード。
proxy_ssltype ENUM False ProxyServer プロキシへの接続時に使用する SSL のタイプです。サポートされている値は AUTO、ALWAYS、NEVER、TUNNEL です。

インテグレーションで NetSuite 接続を使用する

接続を作成すると、Apigee Integration と Application Integration の両方で使用できるようになります。この接続は、コネクタタスクを介して統合で使用できます。

  • Apigee Integration で Connectors タスクを作成して使用する方法については、Connectors タスクをご覧ください。
  • Application Integration で Connectors タスクを作成して使用する方法については、Connectors タスクをご覧ください。

Google Cloud コミュニティの助けを借りる

Google Cloud コミュニティの Cloud フォーラムで質問を投稿したり、このコネクタについてディスカッションしたりできます。

次のステップ