CData Software Blog

クラウド連携のCData Software の技術ブログです。

クラウド人事労務ソフトSmartHRのデータをCData SyncでSQL Serverに複製する方法

f:id:sugawarakazu:20210821180922j:plain

こんにちは。CData Software Japanテクニカルサポートエンジニアの菅原です。

クラウド人事労務ソフトで有名なSmartHRを導入している会社の方は多いのではないでしょうか。 従業員データをSmartHRで一元管理していて、自社内でのカスタムアプリ(業務アプリケーション)でもSmartHRのデータを使いたいと思ったことありませんか。使いたいけどダブルメンテはNGだったり、手動でCSV等で出力して移行するとなると意外と手間がかかりますよね。

そこで今回はSmartHRに対応したCData Syncを使って、SQL Serverへ複製する方法を紹介します。

CData Syncは、クラウド/ SaaSのデータをノンコーディングで直感的にDBにレプリケーション(複製)できるツールです。

SmartHRとは?

雇用契約や入社手続きがペーパーレスで完結できるクラウドベースの労務管理サービスです。

https://smarthr.jp/

f:id:sugawarakazu:20210821181409j:plain

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

https://developer.smarthr.jp/api/index.html

f:id:sugawarakazu:20210821182328j:plain

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のアプリケーション連携の設定を行います。

f:id:sugawarakazu:20210821193516j:plain

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

f:id:sugawarakazu:20210821193806j:plain

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

f:id:sugawarakazu:20210821194301j:plain

APIを使用するので「アクセストークン」をクリック

f:id:sugawarakazu:20210821194505j:plain

「新規発行」をクリック

f:id:sugawarakazu:20210821194728j:plain

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

f:id:sugawarakazu:20210821194941j:plain

登録されたアクセストークンが後ほど必要となるため、アクセストークンをメモしておいてください。忘れると再度、新規発行を行うことになります。

これでSmartHRの設定は終わりです。

CData Syncの設定

次にCData Syncの設定を行います。CData Syncを起動します。

データソースにSmartHRを設定

f:id:sugawarakazu:20210812161045j:plain

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

f:id:sugawarakazu:20210812161728j:plain

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

f:id:sugawarakazu:20210821201711j:plain

「SmartHR」をクリック

f:id:sugawarakazu:20210821201829j:plain

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

f:id:sugawarakazu:20210821202254j:plain

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

f:id:sugawarakazu:20210822121517j:plain

  • 名前:任意
  • プロバイダークラス:System.Data.CDAta.API
  • フォーマット設定:プロパティリスト
  • Profile Settings:(入力例)UseSandbox=False;APIKey=XXXXXXXXXXXXXX;TenantId=YYYYYYYYYYYYYYYYYY;

    • UseSandbox=False Sandbox環境に接続したい場合はTrueにしてください。
    • APIKey=SmartHRのアクセストーク
    • TenantId=SmartHRのTenantId ※TenantIdはSmartHRのURLの青文字部分です。「https://YYYYYYYYYYYYYYYYYY.smarthr.jp/」

「接続のテスト」を行い、接続できたら「変更を保存」をクリック

これでCData SyncとSmartHRの接続ができるようになりました。

接続できない場合は、下記の「Advanced」タブも環境に合わせて設定してください。 f:id:sugawarakazu:20210822124300j:plain

同期先にSQL Serverを設定

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

f:id:sugawarakazu:20210822124734j:plain

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

f:id:sugawarakazu:20210822124903j:plain

  • 名前:任意
  • プロバイダークラス: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に登録するだけです。

f:id:sugawarakazu:20210812183621j:plain

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

f:id:sugawarakazu:20210822142641j:plain

  • ジョブ名:任意
  • ソース:SmartHR
  • 同期先:SQL Server
  • 全テーブルを同期します。:全テーブルを同期したい場合は✔

※今回は個別のテーブルを同期させます。

「作成」をクリック

f:id:sugawarakazu:20210822142851j:plain

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

f:id:sugawarakazu:20210822143254j:plain

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

f:id:sugawarakazu:20210822143451j:plain

「変更を保存」をクリックしてジョブを保存します。

直ぐに複製したい場合は、テーブル横のチェックボックスを✔して「実行」をクリックでSQL Serverに複製されます。

実行前 実行後
f:id:sugawarakazu:20210822143739j:plain f:id:sugawarakazu:20210822143917j:plain

SQL Serverにテーブルが追加されて、データも登録されています。

f:id:sugawarakazu:20210822144149j:plain

複製するデータの条件を指定したい場合は「カスタムクエリを作成」でSQLクエリにて指定が可能です。 また、ジョブのスケジュールや実行結果の通知等の設定も他タブにて行えます。

これでSmartHRのテーブルをSQL Serverに複製することができるようになりました。

ジョブのスケジュール設定

f:id:sugawarakazu:20210830165623j:plain ジョブのスケジュールを設定するには「スケジュール」タブで「スケジューラーを有効にする」に✔

  • Interval:分・時・日・週・月・高度な設定のいずれかを設定可能(今回は日(Daily)を選択)

f:id:sugawarakazu:20210830170219p:plain

  • 時:毎日のジョブを実行させる時間を設定

「変更を保存」をクリック。これで毎日特定の時間にジョブが実行されるようになります。

終わりに

今回はCData SyncでSmartHRのデータをSQL Serverに複製する方法を紹介しました。

他にもSmartHRに関する記事がありますので、参考にしてみてください。

https://www.cdatablog.jp/entry/smarthrapidriver

www.cdatablog.jp

CData製品を使用してみて不明な点があれば、テクニカルサポートまでお気軽にどうぞ。

https://www.cdata.com/jp/support/submit.aspx

www.cdata.com