こんにちは。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製品を使用してみて不明な点があれば、テクニカルサポートまでお気軽にどうぞ。