ODBC を介してNode.js からSAP SuccessFactors のデータをクエリ
Node.js はブラウザ上以外でJavaScript コードを使用できるJavaScript ランタイム環境です。CData ODBC Driver for SAPSuccessFactors を使用すれば、Node.js アプリとスクリプトから、リアルタイムSAP SuccessFactors のデータにアクセスできます。この記事ではnode-odbc のインストールと、リアルタイムSAP SuccessFactors のデータへのアクセスが可能な、シンプルなNode.js アプリケーションを作成するために必要なツールについて説明します。
ビルトインの最適化されたデータ処理により、CData ODBC Driver は比類のないパフォーマンスで、Node.js のリアルタイムSAP SuccessFactors のデータとやりとりできます。Node.js からSAP SuccessFactors に複雑なSQL クエリを発行すると、ドライバーはフィルタや集計などのサポートされているSQL 操作をSAP SuccessFactors に直接プッシュし、組み込まれたSQL エンジンを利用してサポートされていない操作(主にSQL 関数とJOIN 操作)をクライアント側で処理します。
CData ODBC ドライバとは?
CData ODBC ドライバは、以下のような特徴を持ったリアルタイムデータ連携ソリューションです。
- SAP SuccessFactors をはじめとする、CRM、MA、会計ツールなど多様なカテゴリの270種類以上のSaaS / オンプレミスデータソースに対応
- 多様なアプリケーション、ツールにSAP SuccessFactors のデータを連携
- ノーコードでの手軽な接続設定
- 標準 SQL での柔軟なデータ読み込み・書き込み
CData ODBC ドライバでは、1.データソースとしてSAP SuccessFactors の接続を設定、2.Node.js 側でODBC Driver との接続を設定、という2つのステップだけでデータソースに接続できます。以下に具体的な設定手順を説明します。
CData ODBC ドライバのインストールとSAP SuccessFactors への接続設定
まずは、本記事右側のサイドバーからSAPSuccessFactors ODBC Driver の無償トライアルをダウンロード・インストールしてください。30日間無償で、製品版の全機能が使用できます。
必要な接続プロパティの値が未入力の場合には、データソース名(DSN)で入力します。組み込みのMicrosoft ODBC Data Source Administrator を使用し、DSN を構成できます。ドライバーのインストールの最後にアドミニストレーターが開きます。Microsoft ODBC データソースアドミニストレーターを使ってDSN を作成および設定する方法は、ヘルプドキュメントの「はじめに」を参照してください。
SAP SuccessFactorsへの接続
それでは、SAP SuccessFactors に接続していきましょう。CData 製品は、デフォルトで有効になっているOData API を介してSAP SuccessFactors と通信します。追加の権限が必要な場合は、SAP サポートサイトをご確認ください。
認証方法として、Azure AD 認証、SAP IAS 認証、OAuth 認証(推奨)、Basic 認証(非推奨)のいずれかを使用してSAP SuccessFactors に認証できます。
必要な接続プロパティ
選択したAuthScheme に関わらず、SAP SuccessFactors 環境を識別するために以下の接続プロパティを設定しましょう。
- URL:SuccessFactors をホストするサーバーのURL
- CompanyId:SAP SuccessFactors テナントに割り当てられた一意の識別子。この値はAPI 認証に必要で、組織固有のものです
OAuth 認証
SAP SuccessFactors では、OAuth 認証を2種類のグラント種別でサポートしています。
- SAP SuccessFactors LMS インスタンスのクライアントグラント種別
- SAML-2 Bearer グラント種別
OAuth 認証を有効にするには、すべてのOAuth フローでカスタムOAuth アプリケーションを作成し、適切なプロパティを設定する必要があります。
デスクトップアプリケーションでカスタムOAuth アプリケーションの資格情報を使用して認証するには、OAuth アクセストークンを取得し、更新する必要があります。これらを設定すると、接続の準備が整います。
OAuth アクセストークンの取得およびリフレッシュ
以下のプロパティを設定してください。
- InitiateOAuth:GETANDREFRESH。OAuthAccessToken を自動的に取得およびリフレッシュするために使用します
- OAuthClientId:アプリケーションの登録時に割り当てられたクライアントId
- CallbackURL:カスタムOAuth アプリケーションの登録時に定義されたリダイレクトURI
- OAuthClientSecret (クライアントグラント種別のみ):アプリケーションの登録時に割り当てられたクライアントシークレット
- PrivateKey (SAML-2 Bearer グラント種別のみ):カスタムOAuth アプリケーションの作成時にダウンロードした秘密鍵証明書のパス、またはその証明書のbase64 でエンコードされた内容
接続すると、CData 製品がデフォルトブラウザでSAP SuccessFactors のOAuth エンドポイントを開きます。ログインして、アプリケーションにアクセス許可を与えてください。
アプリケーションにアクセス許可を与えると、CData 製品がOAuth プロセスを完了します。
- CData 製品がSAP SuccessFactors からアクセストークンを取得し、それを使ってデータをリクエストします
- OAuth 値はOAuthSettingsLocation で指定されたパスに保存されます。これらの値は接続間で永続化されます
アクセストークンの期限が切れた際は、CData 製品が自動でアクセストークンをリフレッシュします。
カスタムOAuth アプリケーションの作成やその他の認証方法については、 href="/kb/help/" target="_blank">ヘルプドキュメントの「はじめに」をご確認ください。
node-odbc を構築する
CData ODBC Driver を介してSAP SuccessFactors に接続するには、必要なツールをインストールした後に、node-odbc を手動で構築する必要があります。
必要なツールをインストールする
以下のコマンドでは、node-odbc の構築に必要なツールをインストールします。(ツールをグローバルにインストールする-g パラメータに注意してください。)
npm i -g windows-build-tools npm i -g node-gyp
node-odbc を構築する
必要なツールをインストールしたらNode.js アプリケーションのディレクトリを作成し、Node.js スクリプトで使用するバイナリを構築するodbc をインストールします。
mkdir nodeodbc cd nodeodbc npm i -g node
Node.js からSAP SuccessFactors をクエリ
ODBC Driver がインストールされ、DSN が構成されて、node-odbc が構築されたら、Node.js アプリケーションからリアルタイムSAP SuccessFactors のデータをクエリすることができるようになります。以下のサンプルコードは、特定のDSN に接続してExtAddressInfo テーブルをクエリします。
myscript.js
const odbc = require('odbc');
async function querySAPSuccessFactors() {
const connection = await odbc.connect(`DSN=CData SAPSuccessFactors Source`);
const data = await connection.query('SELECT address1, zipCode FROM ExtAddressInfo');
console.log(data);
}
querySAPSuccessFactors();
アプリケーションを作成したら、node を使用してスクリプトを実行します。
node myscript.js
おわりに
CData ODBC Driver for SAPSuccessFactors の30日の無償評価版 をダウンロードすればNode.js でリアルタイムSAP SuccessFactors のデータを使用できます。ご不明な点があれば、サポートチームにお問い合わせください。