
こんにちは。CData Software Japanテクニカルサポートエンジニアの菅原です。
クラウド人事労務ソフトで有名なSmartHRを導入している会社の方は多いのではないでしょうか。 従業員データをSmartHRで一元管理していて、自社内でのカスタムアプリ(業務アプリケーション)でもSmartHRのデータを使いたいと思ったことありませんか。使いたいけどダブルメンテはNGだったり、手動でCSV等で出力して移行するとなると意外と手間がかかりますよね。
そこで今回はSmartHRに対応したCData Syncを使って、SQL Serverへ複製する方法を紹介します。
CData Syncは、クラウド/ SaaSのデータをノンコーディングで直感的にDBにレプリケーション(複製)できるツールです。
SmartHRとは?
雇用契約や入社手続きがペーパーレスで完結できるクラウドベースの労務管理サービスです。

外部サービスと連携するためのAPIも充実しており、従業員情報から、部署・役職・事業所といった各種マスタデータまで幅広いデータの取得・登録・更新が可能です。
https://developer.smarthr.jp/api/index.html

CData Sync およびAPI Profile で対応しているSmartHR のAPI オブジェクトは以下の通りです。
| Name | 対応API |
|---|---|
| BankAccountSettings | 口座情報 |
| BizEstablishments | 事務所 |
| CrewCustomFieldTemplateGroups | 従業員カスタム項目グループ |
| CrewCustomFieldTemplates | 従業員カスタム項目テンプレート |
| CrewInputForms | 従業員情報収集フォーム |
| Crews | 従業員 |
| CrewsBankAccounts | 従業員_口座情報 |
| CrewsCustomFields | 従業員_カスタム項目 |
| CrewsDepartments | 従業員_部署 |
| CrewsProfileImages | 従業員_プロフィール画像 |
| Departments | 部署 |
| DependentRelations | 続柄 |
| Dependents | 家族情報 |
| EmploymentTypes | 雇用形態 |
| JobTitles | 役職 |
| MailFormats | メールフォーマット |
| PaymentPeriods | 給与支給形態 |
| Users | ユーザ |
今回はこのAPIを利用して、CData Syncから従業員情報の取得を行ってみたいと思います。
手順(SmartHR ⇒ CData Sync ⇒ SQL Server)
それでは実際にSmartHRのデータをSQL Serverに複製する方法を説明します。
SmartHRのアプリケーション連携の設定
まずはSmartHRのアプリケーション連携の設定を行います。

SmartHRの画面にアクセスして、右上のユーザー>「共通設定」をクリック

メニュー一覧の「アプリケーション連携」をクリック


「新規発行」をクリック

各リソースの参照・更新の制限を設定して「登録」をクリック

登録されたアクセストークンが後ほど必要となるため、アクセストークンをメモしておいてください。忘れると再度、新規発行を行うことになります。
これでSmartHRの設定は終わりです。
CData Syncの設定
次にCData Syncの設定を行います。CData Syncを起動します。
データソースにSmartHRを設定

「接続」タブの「接続の追加」-「データソース」タブの「Add More」をクリック

コネクタをダウンロード画面で「SmartHR」を検索

「SmartHR」をクリック

「ダウンロード&インストール」をクリック

インストールが完了するとデータソースに「SmartHR Profile」が表示されます。 「SmartHR Profile」をクリック

- 名前:任意
- プロバイダークラス:System.Data.CDAta.API
- フォーマット設定:プロパティリスト
Profile Settings:(入力例)UseSandbox=False;APIKey=XXXXXXXXXXXXXX;TenantId=YYYYYYYYYYYYYYYYYY;
「接続のテスト」を行い、接続できたら「変更を保存」をクリック
これでCData SyncとSmartHRの接続ができるようになりました。
接続できない場合は、下記の「Advanced」タブも環境に合わせて設定してください。

同期先にSQL Serverを設定
次は複製先となるSQL Serverの設定を行います。

「接続」-「同期先」タブの「SQL Server」をクリック

- 名前:任意
- プロバイダークラス:System.Data.SqlClient
- フォーマット設定:プロパティリスト
- Authentication:「SQL Server Authentication」または「Windows Authentication」
- Server:サーバー名
- Database:データベース名
- User:ユーザー名
- Password:パスワード
「接続のテスト」を行い、接続できたら「変更を保存」をクリック
これでCData SyncとSQL Serverの接続ができるようになりました。
SmartHRのデータをSQL Serverへ複製させるジョブを設定
あとはSmartHRのデータをSQL Serverへ複製させるジョブをCData Syncに登録するだけです。

「ジョブ」タブの「ジョブを追加」をクリック

- ジョブ名:任意
- ソース:SmartHR
- 同期先:SQL Server
- 全テーブルを同期します。:全テーブルを同期したい場合は✔
※今回は個別のテーブルを同期させます。
「作成」をクリック

「テーブルを追加」をクリック

複製するテーブルを選択して、「選択したテーブルを追加」をクリック

「変更を保存」をクリックしてジョブを保存します。
直ぐに複製したい場合は、テーブル横のチェックボックスを✔して「実行」をクリックでSQL Serverに複製されます。
| 実行前 | 実行後 |
|---|---|
|
![]() |
SQL Serverにテーブルが追加されて、データも登録されています。

複製するデータの条件を指定したい場合は「カスタムクエリを作成」でSQLクエリにて指定が可能です。 また、ジョブのスケジュールや実行結果の通知等の設定も他タブにて行えます。
これでSmartHRのテーブルをSQL Serverに複製することができるようになりました。
ジョブのスケジュール設定
ジョブのスケジュールを設定するには「スケジュール」タブで「スケジューラーを有効にする」に✔
- Interval:分・時・日・週・月・高度な設定のいずれかを設定可能(今回は日(Daily)を選択)

- 時:毎日のジョブを実行させる時間を設定
「変更を保存」をクリック。これで毎日特定の時間にジョブが実行されるようになります。
終わりに
今回はCData SyncでSmartHRのデータをSQL Serverに複製する方法を紹介しました。
他にもSmartHRに関する記事がありますので、参考にしてみてください。
https://www.cdatablog.jp/entry/smarthrapidriver
CData製品を使用してみて不明な点があれば、テクニカルサポートまでお気軽にどうぞ。

