Salesforce の External Services から NetSuite に接続

Jerod Johnson
Jerod Johnson
Senior Technology Evangelist
CData Connect AI を使用して、OpenAPI 経由で Salesforce External Services と NetSuite をセキュアに接続します。API を公開することで、シームレスな統合とプラットフォーム間でのセキュアでスケーラブルなリアルタイムデータ共有を実現します。

CData Connect AI を使用すると、Salesforce などのクラウドベースアプリケーションや Salesforce モバイルアプリなどのモバイルアプリケーションからNetSuite のデータにアクセスできます。この記事では、CData Connect AI を使用して Salesforce External Services 経由でNetSuite のデータにアクセスする方法をご紹介します。

NetSuite データ連携について

CData は、Oracle NetSuite のライブデータにアクセスし、統合するための最も簡単な方法を提供します。お客様は CData の接続機能を以下の目的で使用しています:

  • Standard、CRM、OneWorld を含む、すべてのエディションの NetSuite にアクセスできます。
  • SuiteTalk API(SOAP ベース)のすべてのバージョンと、SQL のように機能し、より簡単なデータクエリと操作を可能にする SuiteQL に接続できます。
  • Saved Searches のサポートにより、事前定義されたレポートとカスタムレポートにアクセスできます。
  • トークンベースおよび OAuth 2.0 で安全に認証でき、あらゆるユースケースで互換性とセキュリティを確保します。
  • SQL ストアドプロシージャを使用して、ファイルのアップロード・ダウンロード、レコードや関連付けのアタッチ・デタッチ、ロールの取得、追加のテーブルやカラム情報の取得、ジョブ結果の取得などの機能的なアクションを実行できます。

お客様は、Power BI や Excel などのお気に入りの分析ツールからライブ NetSuite データにアクセスするために CData ソリューションを使用しています。また、CData Sync を直接使用するか、Azure Data Factory などの他のアプリケーションとの CData の互換性を活用して、NetSuite データを包括的なデータベースやデータウェアハウスに統合しています。CData は、Oracle NetSuite のお客様が NetSuite からデータを取得し、NetSuite にデータをプッシュするアプリを簡単に作成できるよう支援し、他のソースからのデータを NetSuite と統合することを可能にしています。

当社の Oracle NetSuite ソリューションの詳細については、ブログをご覧ください:Drivers in Focus Part 2: Replicating and Consolidating ... NetSuite Accounting Data


はじめに


Salesforce から NetSuite に接続

概要

手順の概要は以下のとおりです。

  1. 設定:(オプション)CData Connect AI で NetSuite データソースを設定し、ワークスペースを追加、ワークスペースにアセットを追加して、パーソナルアクセストークン(PAT)を生成します。
  2. 接続: OpenAPI を使用して Salesforce を CData Connect AI にリンクします。
  3. 活用: 接続したデータを Salesforce で使用します。

前提条件

開始する前に、以下を準備してください。

  1. 有効な NetSuite アカウントと認証情報
  2. CData Connect AI アカウント。こちらからログインまたは無料トライアルにサインアップしてください。
  3. Salesforce アカウント


Connect AI から NetSuite に接続

CData Connect AI は、シンプルなポイント&クリックのインターフェースでデータソースに接続できます。

  1. Connect AI にログインして「Sources」をクリック、次に「 Add Connection」をクリック
  2. 接続を追加パネルから「NetSuite」を選択
  3. NetSuite に接続するために必要な認証プロパティを入力します。

    NetSuiteへの接続

    NetSuite では、2種類のAPI でデータにアクセスできます。どちらのAPI を使用するかは、Schema 接続プロパティで以下のいずれかを選択して指定してください。

    • SuiteTalk は、NetSuite との通信に使用されるSOAP ベースの従来から提供されているサービスです。幅広いエンティティをサポートし、INSERT / UPDATE / DELETE の操作も対応しています。ただし、SuiteQL API と比べるとデータの取得速度が劣ります。また、サーバーサイドでのJOIN に対応していないため、これらの処理はCData 製品がクライアントサイドで実行します。
    • SuiteQL は、より新しいAPI です。JOIN、GROUP BY、集計、カラムフィルタリングをサーバーサイドで処理できるため、SuiteTalk よりもはるかに高速にデータを取得できます。ただし、NetSuite データへのアクセスは読み取り専用となります。

    データの取得のみが目的でしたらSuiteQL をお勧めします。データの取得と変更の両方が必要な場合は、SuiteTalk をお選びください。

    NetSuite への認証

    CData 製品では、以下の認証方式がご利用いただけます。

    • トークンベース認証(TBA)はOAuth1.0に似た仕組みです。2020.2以降のSuiteTalk とSuiteQL の両方で利用できます。
    • OAuth 2.0 認証(OAuth 2.0 認可コードグラントフロー)は、SuiteQL でのみご利用いただけます。
    • OAuth JWT 認証は、OAuth2.0 クライアント認証フローの一つで、クライアント認証情報を含むJWT を使用してNetSuite データへのアクセスを要求します。

    トークンベース認証(OAuth1.0)

    トークンベース認証(TBA)は、基本的にOAuth 1.0 の仕組みです。この認証方式はSuiteTalk とSuiteQL の両方でサポートされています。管理者権限をお持ちの方がNetSuite UI 内でOAuthClientId、OAuthClientSecret、OAuthAccessToken、OAuthAccessTokenSecret を直接作成することで設定できます。 NetSuite UI でのトークン作成手順については、ヘルプドキュメントの「はじめに」セクションをご参照ください。

    アクセストークンを作成したら、以下の接続プロパティを設定して接続してみましょう。

    • AuthScheme = Token
    • AccountId = 接続先のアカウント
    • OAuthClientId = アプリケーション作成時に表示されるコンシューマーキー
    • OAuthClientSecret = アプリケーション作成時に表示されるコンシューマーシークレット
    • OAuthAccessToken = アクセストークン作成時のトークンID
    • OAuthAccessTokenSecret = アクセストークン作成時のトークンシークレット

    その他の認証方法については、ヘルプドキュメントの「はじめに」をご確認ください。

  4. 「Save & Test」をクリック
  5. NetSuite 接続の追加ページで「Permissions」タブに移動し、ユーザーベースの権限を更新します。

パーソナルアクセストークンを追加

REST API、OData API、または仮想 SQL Server を通じて Connect AI に接続する場合は、パーソナルアクセストークン(PAT)を使用して認証を行います。アクセス管理を細かく制御するため、サービスごとに個別の PAT を作成することをお勧めします。

  1. Connect AI アプリの右上にある歯車アイコン()をクリックして設定ページを開きます。
  2. 設定ページで「Access Tokens」セクションに移動し、「 Create PAT」をクリックします。
  3. PAT に名前を付けて「Create」をクリックします。
  4. パーソナルアクセストークンは作成時にのみ表示されます。必ずコピーして、今後の利用のために安全に保管してください。

Salesforce 向けに NetSuite エンドポイントを設定

NetSuite への接続が完了したら、使用したいテーブル用のワークスペースを作成します。

  1. 「Workspaces」ページに移動し、「 Add」をクリックして新しいワークスペースを作成します(または既存のワークスペースを選択)。
  2. Add」をクリックして、ワークスペースに新しいアセットを追加します。
  3. NetSuite 接続(例: NetSuite1)を選択し、「Next」をクリックします。
  4. 使用したいテーブルを選択し、「Confirm」をクリックします。
  5. ワークスペースの OpenAPI URL をメモしておきます(例: https://cloud.cdata.com/api/openapi/v3/{workspace_name}...

選択したテーブルのカラムデータ型を確認

  1. NetSuite のデータテーブルがアセットとして追加されたら、アセットを選択し、Columns タブからカラム名とデータ型をメモします。
  2. Preview タブで、後で参照するためにテーブル内の現在のデータをプレビューします。
  3. 左パネルから Users をクリックし、ユーザー名(例: test@cdata.com)を検索してクリックします。
  4. Edit Users 画面で、該当のユーザーにエンティティ(ワークスペース)に対するすべての権限(Select、Insert、Update、Delete、Execute)を付与します。

接続、PAT、ワークスペースの設定が完了したら、Salesforce からNetSuite のデータに接続する準備は完了です。

NetSuite を External Service として接続

名前付き資格情報の作成

以下の手順に従って、CData Connect AI が生成する OpenAPI に Salesforce から接続します。

  1. Salesforce にログインし、Setup に移動します。
  2. 検索バーで Named Credentials を検索してクリックします。
  3. New -> New Legacy を選択します。
  4. New Named Credential 画面で以下の詳細を入力します。
    • Label: 任意のラベルを入力
    • Name: 名前付き資格情報の名前を入力
    • URL: https://cloud.cdata.com
    • Identity Type: Named Principal
    • Authentication Protocol: Password Authentication
    • Username: CData Connect AI のユーザー名を入力。CData Connect AI インターフェースの右上に表示されています(例: test@cdata.com)
    • Password: Settings ページで生成した PAT を入力
    • Generate Authorization Header: チェックボックスを有効化
  5. Save をクリックして詳細を保存します。

External Service の作成

  1. 検索バーで External Services を検索してクリックします。
  2. Add an External Service ページで、Select an API Source の下の From API Specification をクリックします。
  3. Enter an Existing Service ページで、Modify Exiting Registration Details の下に以下の詳細を入力します。
    • External Service Name: External Service を識別する名前を入力
    • Description: External Service の説明を入力(必須項目ではありません)
    • Service Schema: Relative URL
    • Select a Named Credential: OpenAPI
    • URL: Connect AI から OpenAPI URL をコピーし、https://www.cdata.com を削除して残りの URL を保持します。URL がスラッシュ "/api..." で始まっていることを確認してください。

    接続が成功すると、「Schema validation completed successfully!」というメッセージが画面に表示されます。Save & Next をクリックします。

  4. Select Operations 画面ですべてのエンティティを選択します。Next をクリックします。
  5. Review External Services Actions 画面に、スキーマから生成されたすべてのアクションが表示されます。Finish をクリックします。
  6. External Services ページに、作成したすべての External Services が表示されます。

新しいフローの作成

  1. 検索バーで Flows を検索してクリックします。
  2. New Flow をクリックします。
  3. Start From Scratch オプションを選択し、Screen Flow をクリックします。
  4. Flow Builder 画面で、Screen FlowEnd の間にある「」をクリックします。
  5. Add Element から Screen を選択します。
  6. New Screen ウィンドウで、Label に「Input Screen」と入力すると、API Name が自動的に入力されます。
  7. 次に、更新したいテーブルに基づいて、フローに追加するコンポーネントのカラムデータ型をメモします。
  8. orderid カラムの場合、Components 検索バーで「Number」コンポーネントを検索してクリックします。Label に「Enter Order ID」と入力すると、API Name が自動的に入力されます。Require チェックボックスを有効にし、手順 9 と 10 にも適用します。
  9. ordername カラムの場合、Components 検索バーで「Text」コンポーネントを検索してクリックします。Label に「Enter Order Name」と入力します。
  10. personid カラムの場合、Components 検索バーで「Number」コンポーネントを検索してクリックします。Label に「Enter Person ID」と入力します。
  11. Done をクリックすると、Input ScreenFlow Builder に追加されます。
  12. フロー内の Input Screen の下に Action エレメントを追加します。
  13. Search Actions で、新しく作成した External Service(この場合は OpenAPI1)を検索してクリックします。
  14. Create Orders をクリックします。
  15. Label に名前を入力すると、API Name が自動的に入力されます。
  16. Set Input Values for the Selected Action の下の検索バーをクリックし、 New Resource -> Variable を選択します。
  17. New Resource ウィンドウで、以下の詳細を入力します。
    • Resource Type: Variable
    • API Name: Body
    • Data Type: Apex-Defined
    • Apex Class: ExternalService__CDataWorkspace2e
    • Availability Outside the Flow:
      • Available for input: チェックボックスを有効化
      • Available for output: チェックボックスを有効化
  18. 新しいエレメント Assignment を追加し、Label name を「SendBody」にします。API Name は自動的に入力されます。
  19. Set Variable Values の下に以下の値を設定します。
    • Variable: Body>orderid; Operator: Equals; Value: Input Screen>Enter Order ID
    • Variable: Body>ordername; Operator: Equals; Value: Input Screen>Enter Order Name
    • Variable: Body>personid; Operator: Equals; Value: Input Screen>Enter Person ID
  20. Action エレメントの下にもう 1 つの Screen エレメントを追加します。
  21. Label を「Display」にします。
  22. Components で、「Display Text」コンポーネントを検索してクリックします。
  23. API Name を「Display_Result」に設定し、Inside a resource 検索バーで Create a new order -> response code を選択します。Done をクリックします。
  24. フローの準備ができました。Save をクリックしてフローを保存し、Label にフロー名(この場合は「CreateOrdersPage」)を追加します。Save をクリックします。
  25. フローが Flow Builder 画面に表示されます。Activate をクリックしてフローを有効化します。

フローを確認し、Connect AI で更新内容を検証

  1. Debug をクリックします。Debug flow ウィンドウが開きます。Run をクリックします。
  2. 詳細入力ページ(この場合は「CreateOrdersPage」)で、詳細(Orders ID、Orders Name、Person ID)を入力し、Next をクリックします。
  3. 次のページに「200」(HTTP 200 - OK)というメッセージが表示され、右ペインにデバッグ詳細が表示されます。Next をクリックします。
  4. 入力を変更したり、プロセスを再実行して新しい詳細を入力できます。
  5. Connect AI で、この記事で説明したように「Orders」テーブルに新しい詳細が更新されているか確認します。これでプロセスは完了です。

クラウドアプリケーションからNetSuite のデータへの簡単なアクセス

これで、Salesforce からNetSuite のデータへのダイレクトなクラウド間接続が完成しました。100 以上の SaaS、ビッグデータ、NoSQL ソースへのクラウドアプリケーション経由でのライブデータアクセスの詳細については、CData Connect AI のページをご覧ください。

ご質問がございましたら、サポートチームまでお問い合わせください。

はじめる準備はできましたか?

CData Connect AI の詳細、または無料トライアルにお申し込みください:

無料トライアル お問い合わせ