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

この記事のシナリオ

by 杉本雄太 | April 1, 2025

Title1

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

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

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 側には事前に同じ構成のテーブルを用意しました。

SQLServer1

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

CDataコネクタ(ServiceNow)

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

ServiceNow1

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

ServiceNow2

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

ServiceNow3

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

ServiceNow4

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

ServiceNow5

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

ServiceNow6

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

ServiceNow7

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

ServiceNow8

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

ServiceNow9

SQL Server コネクタ

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

SQLServer2

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

SQLServer3

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

CData Arc - SQL Server Connector Setup | Version 24.3.9159

SQLServer4

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

SQLServer5

SQLServer6

XMLMap コネクタ

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

XMLMap1

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

XMLMap2

連携フローの実行

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

Flow1

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

Flow2

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

SQL Server 側のデータを更新

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

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

SQLServer7

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

SQLServer8

SQLServer9

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

SQL Server コネクタ

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

SQLServer10

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

SQLServer11

CDataコネクタ(ServiceNow)

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

ServiceNow10

XMLMap コネクタ

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

XMLMap3

連携フローの実行

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

Flow3

おわりに

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

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

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


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