こんにちは。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 スキーマ情報を取得するために必要)
パーミッションを追加するには、以下のようにユーザーのロールを昇格した上で、作業を行う必要があります。
- Admin コンソールでuser menu -> Elevate Roles に移動します。
- check the security _admin box で、OK をクリックします。
- 必要に応じて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;ホスト名またはipアドレス>ホスト名またはipアドレス>
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を利用しています。