各製品の資料を入手。
詳細はこちら →MySQL のFederated Table としてSAP Ariba Source のデータを連携利用する
SQL Gateway とODBC Driver を使ってSAP Ariba Source のMySQL Federated Table を構築する。
最終更新日:2022-07-18
この記事で実現できるSAP Ariba Source 連携のシナリオ
こんにちは!ドライバー周りのヘルプドキュメントを担当している古川です。
SQL Gateway を使って、MySQL リモーティングサービスを作成し、SAP Ariba Source のMySQL Federated Table を構築できます。CData ODBC Driver for SAPAribaSource のMySQL インターフェースのdeamon になります。サービス起動後、MySQL のFEDERATED ストレージエンジンを使ってサーバーおよびテーブルを作成します。SAP Ariba Source のデータ をMySQL テーブルのように使いましょう。
SAP Ariba Source のデータへの接続
If you have not already done so, provide values for the required connection properties in the data source name (DSN). You can use the built-in Microsoft ODBC Data Source Administrator to configure the DSN. This is also the last step of the driver installation. See the "Getting Started" chapter in the help documentation for a guide to using the Microsoft ODBC Data Source Administrator to create and configure a DSN.
SAP Ariba Source に接続するには、以下を設定します。
- API:本製品にSAP Ariba データを取得させたいAPI を指定。ビジネスロールに基づき、Supplier、Sourcing Project Management、またはContract API を選択します(可能な値は、SupplierDataAPIWithPaginationV4、SourcingProjectManagementAPIV2、または ContractAPIV1 です)。
- DataCenter:アカウントのデータがホストされているデータセンター。
- Realm:アクセスしたいサイト名。
- Environment:テスト環境、または本番環境のいずれかに指定。(可能な値は、TEST またはPRODUCTION)。
Supplier Data API またはContract API に接続する場合は、さらに以下を設定します。
- User:API 呼び出しを行うユーザーのId。
- PasswordAdapter:認証するUser に関連付けられたパスワード。
Supplier API に接続している場合は、ProjectId をデータを取得したいソーシングプロジェクトのId に設定します。
OAuth 認証
接続プロパティを設定した後、認証のためにOAuth 接続を設定する必要があります。
- AuthScheme をOAuthClient に設定します。
- サービスにアプリケーションを登録し、APIKey、OAuthClientId、およびOAuthClientSecret を取得する必要があります。
OAuth アプリケーションの作成について、詳しくはヘルプドキュメントを参照してください。
OAuth の自動リフレッシュ
以下を設定して、接続してください。
- APIKey:アプリケーション設定のApplication key。
- OAuthClientId:アプリケーション設定のOAuth Client Id。
- OAuthClientSecret:アプリケーション設定のOAuth Secret。
接続すると、本製品は自動でOAuth プロセスを完了します。
- 本製品はSAP Ariba からアクセストークンを取得し、それを使ってデータをリクエストします。
- 本製品はアクセストークンの期限が切れると自動的にリフレッシュします。
- OAuth 値はOAuthSettingsLocation で指定された場所に基づいてメモリに保存されます。
SQL Gateway の設定
See the SQL Gateway Overview to set up connectivity to SAP Ariba Source のデータ as a virtual MySQL database. You will configure a MySQL remoting service that listens for MySQL requests from clients. The service can be configured in the SQL Gateway UI.
SAP Ariba Source データ のFEDERATED サーバーおよびテーブルを作成
After you have configured and started the service, create a FEDERATED server to simplify the process of creating FEDERATED tables:
FEDERATED サーバーの作成
The following statement will create a FEDERATED server based on the ODBC Driver for SAPAribaSource. Note that the username and password of the FEDERATED server must match a user account you defined on the Users tab of the SQL Gateway.
CREATE SERVER fedSAPAribaSource FOREIGN DATA WRAPPER mysql OPTIONS (USER 'sql_gateway_user', PASSWORD 'sql_gateway_passwd', HOST 'sql_gateway_host', PORT ####, DATABASE 'CData SAPAribaSource Sys');
FEDERATED テーブルの作成
To create a FEDERATED table using our newly created server, use the CONNECTION keyword and pass the name of the FEDERATED server and the remote table (Vendors). Refer to the following template for the statement to create a FEDERATED table:
CREATE TABLE fed_vendors ( ..., smvendorid TYPE(LEN), category TYPE(LEN), ..., ) ENGINE=FEDERATED DEFAULT CHARSET=latin1 CONNECTION='fedSAPAribaSource/vendors';
NOTE: The table schema for the FEDERATED table must match the remote table schema exactly. You can always connect directly to the MySQL remoting service using any MySQL client and run a SHOW CREATE TABLE query to get the table schema.
クエリの実行
You can now execute queries to the SAP Ariba Source FEDERATED tables from any tool that can connect to MySQL, which is particularly useful if you need to JOIN data from a local table with data from SAP Ariba Source. Refer to the following example:
SELECT fed_vendors.smvendorid, local_table.custom_field FROM local_table JOIN fed_vendors ON local_table.foreign_smvendorid = fed_vendors.smvendorid;