CData Arc を利用してServiceNow とSQLServer を双方向にデータを連携する方法

この記事のシナリオ

Title2

こんにちは。CData Software Japan の杉本です。
本記事では、ServiceNow と他システムとの連携を想定して、CData Arc を使ってノーコードでServiceNow とSQL Server を双方向にデータ連携する方法をご紹介します。

この記事では「ServiceNowのデータをSQL Server に」と「SQL Server のデータをServiceNow に」連携するシナリオをそれぞれ作成します。

ServiceNow とは

ServiceNow は、業務を効率化・自動化するためのクラウド型DX プラットフォームです。アメリカのServiceNow 社が開発・提供しています。ServiceNow のプラットフォームでは、さまざまな業務の流れ(ワークフロー)を構築でき、業務全体の効率向上に役立ちます。さらに、業務の見える化や管理のしやすさにも定評があります。従来はIT運用で活用されることが多かったと思いますが、現在では業種や部門を問わず、幅広く活用されているDX プラットフォームです。

CDataコネクタについて

CData ArcではアプリケーションコネクタとしてServiceNowコネクタが現時点では用意されておりません。そのためServiceNow への接続にはCDataコネクタを利用する必要がございます。
CDataコネクタの利用方法は以下のブログ記事をご参照ください。

CData ArcでCData Driversを使う方法

ServiceNow 側の準備

今回はServiceNow にOAuth 認証を利用して接続を行いたいと思います。

事前に以下の設定を確認してください。

パーミッションの追加

認証ユーザーがServiceNow に接続する場合、以下のようなリストのメタデータにアクセスするために、少なくともRead パーミッションが必要です

  • sys_db_object(すべてのデータに必要)
  • sys_glide_object(特定のServiceNow テーブルメタデータに必要)
  • sys_dictionary(ServiceNow スキーマ情報を取得するために必要)

パーミッションを追加するには、以下のようにユーザーのロールを昇格した上で、作業を行う必要があります。

  1. Admin コンソールでuser menu -> Elevate Roles に移動します。
  2. check the security _admin box で、OK をクリックします。
  3. 必要に応じてACLを作成して、認証ユーザーに割り当てます。

詳細は以下のリンクの「ServiceNow への接続」ご参照ください。

CData JDBC Driver for ServiceNow - 接続の確立

カスタムOAuth アプリケーションの作成

OAuth 認証で接続を行う場合はカスタムOAuth アプリケーションを作成する必要があります。
詳細は以下のリンクの「カスタムOAuth アプリケーションの作成」をご参照ください。

CData JDBC Driver for ServiceNow - カスタムOAuth アプリケーションの作成

リダイレクトURLについては利用しているArcのエディションによってポート番号変わりますので、
ご利用しているエディションに応じて設定する値を指定ください。
クロスプラットフォーム版:http://<ホスト名またはIPアドレス>:8080/src/oauthCallback.rst;
.NET版:http://<ホスト名またはIPアドレス>:8001/src/oauthCallback.rst;

SQL Server の準備

今回はServiceNow のsc_taskテーブルを対象としたいと思いますので、SQL Server 側には事前に同じ構成のテーブルを用意しました。

連携フローの作成(ServiceNow → SQL Server)

CDataコネクタ(ServiceNow)

ワークスペースの右上にある「追加」ボタンから「CData コネクタ」を検索して追加します。

今回は起点のコネクタとなるため「Selectアクション」を選択して、コネクタを作成します。

追加された「CData コネクタ」を開き、ドライバーのリストからServiceNowを選択します。

接続項目にOAuth認証に必要な項目を入力します。
URL:ServiceNow インスタンスのサイトのベースURL を設定します(例:https://xxxxxx.service-now.com/)。
Auth Scheme:OAuthを指定します。
OAuthClientId:カスタムOAuth アプリケーションの作成時に割り当てられたクライアントId を指定します。
OAuthClientSecret:カスタムOAuth アプリケーションの作成時に割り当てられたクライアントシークレットを指定します。

そして高度な設定タブにあるOther Driver Settingsより、CallbackURLを指定をします。
例:CallbackURL=xxxxxxx;

接続に必要な設定を入力後は以下の「Connect to CData ServiceNow」を押下して、正常に接続が行えることを確認します。

その後はテーブルの追加より、対象のテーブルを選択します。

今回はsc_taskテーブルを選択します。

選択したテーブルのカラム情報が表示されることが確認出来たら、右上の保存ボタンを押して、「CData コネクタ」を閉じてください。

SQL Server コネクタ

ワークスペースの右上にある「追加」ボタンから「SQLServerコネクタ」を検索して追加します。

今回は連携先のコネクタとなるため「Upsertアクション」を選択して、コネクタを作成します。

追加された「SQL Server コネクタ」を開き、接続を作成します。接続設定についてはヘルプをご参照ください。

CData Arc - SQL Server Connector Setup | Version 24.3.9159

接続設定を追加後はテーブルの追加より、連携先のsc_taskテーブルを選択します。

XMLMap コネクタ

「CData コネクタ」と「SQL Server コネクタ」の設定が完了したら、次は「XMLMapコネクタ」を構成します。
「XMLMap コネクタ」をワークスペースに追加して、以下のように「CData コネクタ」と「SQL Server コネクタ」に接続します。

「XMLMap コネクタ」を開いて、連携する項目を以下のようにマッピングします。

連携フローの実行

トリガー開始の「手動で受信」からフローを実行します。

フロー実行後にSQL Server 側のデータを確認すると、ServiceNow のsc_taskテーブルの内容が連携されていることを確認出来ます。

連携フローの作成(SQL Server → ServiceNow)

SQL Server 側のデータを更新

ServiceNow からSQLServer に連携したデータを更新します。今回は[state]カラムを更新します。

更新前のデータは以下の通りです。テスト利用している環境の場合、[state]が1はOpenのステータスを意味します。

今回はこちらをCloseのステータスを意味する3に更新します。

そして今度はこのデータをServiceNowに書き戻すフローを作成します。

SQL Server コネクタ

「Selectアクション」の「SQLServer コネクタ」を追加します。

そしてsc_taskテーブルを選択します。

CDataコネクタ(ServiceNow)

そして「Upsertアクション」の「CData コネクタ」を追加して、sc_taskテーブルを選択します。
また一部の項目は読み取り専用で更新出来ませんので、今回は更新する項目以外のチェックを外します(sys_idとstateだけにチェックを入れます)。

XMLMap コネクタ

「XMLMap コネクタ」をワークスペースに追加して、「SQL Server コネクタ」と「CData コネクタ」に接続します。

連携フローの実行

トリガー開始の「手動で受信」からフローを実行します。
フロー実行後にServiceNow 側のデータを確認すると、該当のデータが更新されていることを確認出来ます。

おわりに

今回はCData Arc でServiceNow に双方向にデータ連携を行うシナリオについて解説しました。
CData Arc はシンプルで拡張性の高いコアフレームワークに、豊富なMFT・EDI・エンタープライズコネクタを備えたパワフルな製品です。CData Drivers との組み合わせで270を超えるアプリケーションへの連携を実現できます。

皆さんのつなぎたいシナリオでぜひ CData Arc を試してみてください。

CData Arc | データ連携、EAI、マネージドファイル転送(MFT)、電子データ交換(EDI)のオールインワンツール


この記事ではCData Arc™ 2025 - 25.1.9211.0を利用しています。