こんにちは。CData Software Japanテクニカルサポートエンジニアの菅原です。
今回はCData Syncを使って、クラウド勤怠管理システムKING OF TIMEのデータをMySQLへ複製する方法やAmazon S3へCSV出力する方法を紹介します。
KING OF TIMEとは?
KING OF TIMEは誰でも簡単に使えるシンプルなUIのクラウド型勤怠管理システムです。
https://www.kingtime.jp/
とても充実した機能のAPIを提供しており、企業情報や従業員情報などのマスタデータ操作や日別、月別の勤怠・打刻データを取得できるAPIを提供しています。
https://developer.kingtime.jp/
対応しているAPI一覧は下記の通りです。
今回はこのAPIを利用して、CData Syncから勤怠データの取得を行ってみたいと思います。
手順(KING OF TIME ⇒ CData Sync ⇒ MySQL)
それでは実際にKING OF TIMEのデータをMySQLに複製する方法を説明します。
KING OF TIMEのWebAPI連携設定
まずはKING OF TIMEのWebAPIを使用できるように設定します。
ホーム画面の左下にある「設定」>「その他」をクリック
設定画面の「その他」タブの「オプション」をクリック
「外部サービス連携」>「KING OF TIME WebAPI連携設定」を「使用する」に設定して、 「登録」をクリックしてください。
登録後にもう一度この画面を表示して「連携設定」をクリック
「新規アクセストークン発行」をクリック
アクセストークン発行画面で【基本情報】・【API権限情報】・【許可IPアドレス】を入力して「登録」をクリック
※補足
- 【API権限情報】:取得したいデータに応じて、Read権限を付与してください。
- 【許可IPアドレス】:CData Syncを配置したマシンのIPアドレスを入力してください。
登録されたアクセストークンが後ほど必要となるため「編集」をクリック
表示されたアクセストークンをメモしておいてください。
これでKING OF TIMEの設定は終わりです。
CData Syncの設定
次にCData Syncの設定を行います。CData Syncを起動します。
データソースにKING OF TIMEを設定
「接続」タブの「接続の追加」-「データソース」タブの「Add More」をクリック
コネクタをダウンロード画面で「KingOfTime」を検索
「KingOfTime」をクリック
「ダウンロード&インストール」をクリック
インストールが完了するとデータソースに「King Of Time Profile」が表示されます。 「King Of Time Profile」をクリック
- 名前:任意
- プロバイダークラス:System.Data.CDAta.API
- フォーマット設定:プロパティリスト
- Profile Settings:APIKey=KING OF TIMEのアクセストークン
※「APIKey=」も入力してください
「接続のテスト」を行い、接続できたら「変更を保存」をクリック
これでCData SyncとKING OF TIMEの接続ができるようになりました。
同期先にMySQLを設定
次は複製先となるMySQLの設定を行います。
「接続の追加」の「同期先」タブの「MySQL」をクリック
- 名前:任意
- プロバイダークラス:System.Data.CData.MySQL
- Server:サーバー名
- Port:ポート番号
- Database:データベース名
- User:ユーザー名
- Password:パスワード
「接続のテスト」を行い、接続できたら「変更を保存」をクリック
これでCData SyncとMySQLの接続ができるようになりました。
KING OF TIMEのデータをMySQLへ複製させるジョブを設定
あとはKING OF TIMEのデータをMySQLへ複製させるジョブをCData Syncに登録するだけです。
「ジョブ」タブの「ジョブを追加」をクリック
- ジョブ名:任意
- ソース:KING OF TIME
- 同期先:MySQL
- 全テーブルを同期します。:全テーブルを同期したい場合は✔
※今回は個別のテーブルを同期させます。
「作成」をクリック
「テーブルを追加」をクリック
複製するテーブルを選択して、「選択したテーブルを追加」をクリック
「変更を保存」をクリックしてジョブを保存します。
直ぐに複製したい場合は、テーブル横のチェックボックスを✔して「実行」をクリックでMySQLに複製されます。
| 実行前 |
実行後 |
 |
 |
複製するデータの条件を指定したい場合は「カスタムクエリを作成」でSQLクエリにて指定が可能です。 また、ジョブのスケジュールや実行結果の通知等の設定も他タブにて行えます。
これでKING OF TIMEのテーブルをMySQLに複製することができるようになりました。
※追記
日別勤務データ等のデータを取得する際の日付の範囲指定の書き方です。
[Date]>=開始日 AND [Date]<=終了日
「=」イコールを含む形の条件として設定します。
また他にも各種テーブルで条件指定が必須な場合があります。以下にサンプルのSQLがありますので、参考にしてみてください。
SELECT * FROM DailyWorkings; // 当日分だけ取得します。APIの仕様。
SELECT * FROM DailyWorkings WHERE CurrentDateEmployeeDivisionCode = '1000'; // 所属部署で取得します。
SELECT * FROM DailyWorkings WHERE Date <= '2020-08-11' AND Date >= '2020-08-11';
SELECT * FROM MonthlyWorkings;
SELECT * FROM MonthlyWorkings WHERE Date = '2020-01'; // 必ず従業員の人数分、取得できる。
SELECT * FROM DailyWorkingsTimeRecords;
SELECT * FROM DailyWorkingsCosts;
SELECT * FROM MonthlyWorkings;
SELECT * FROM MonthlyWorkings WHERE Date = '2020-01'; // 必ず従業員の人数分、取得できる。
SELECT * FROM MonthlyWorkingsCosts;
SELECT * FROM MonthlyWorkingsCosts WHERE CurrentEmployeeTypeCode = '1000';
SELECT * FROM MonthlyWorkingsCosts WHERE Date = '2020-01'; // 必ず従業員の人数分、取得できる。
SELECT * FROM MonthlyWorkingsHolidayRemained WHERE EmployeeTypeCode = '1000' AND TargetDate = '2020-07';
SELECT * FROM YearlyWorkingsHolidays WHERE EmployeeTypeCode = '1000' AND Year = '2019';
SELECT * FROM DailySchedules;
SELECT * FROM DailySchedules WHERE Date <= '2020-08-12' AND Date >= '2020-08-11';
SELECT * FROM DailySchedulesCosts;
SELECT * FROM DailySchedulesCosts WHERE Date <= '2020-08-12' AND Date >= '2020-08-11';
SELECT * FROM MonthlySchedulesCosts;
SELECT * FROM MonthlySchedulesCosts WHERE Date = '2020-08';
SELECT * FROM RequestsSchedules WHERE TargetDate = '2020-08';
SELECT * FROM RequestsSchedules WHERE TargetDate = '2020-08' and AdministratorKey = '1231231';
SELECT * FROM RequestsOvertimes WHERE TargetDate = '2020-08';
SELECT * FROM RequestsTimereCords WHERE TargetDate = '2020-08';
SELECT * FROM RequestsOvertimeLimits WHERE TargetDate = '2020-08';
手順(KING OF TIME ⇒ CData Sync ⇒ Amazon S3)
次にKING OF TIMEのデータをAmazon S3にCSV出力する方法を説明します。
CData Syncの設定
CData Syncを起動します。
同期先にAmazon S3を設定
同期先となるAmazon S3の設定を行います。
「接続」-「同期先」タブの「Amazon S3」をクリック
- 名前:任意
- プロバイダークラス:System.Data.CData.S3Destination
- フォーマット設定:プロパティリスト
- AWS Access Key:AWSのAccess Keyを入力
- AWS Region:AWSの地域を選択
- AWS Secret Key:AWSのSecret Keyを入力
- Bucket:Amazon S3の出力先となるS3 URIを入力
- Use Virtual Hosting:デフォルトのTrueでOK
「接続のテスト」をクリックして、接続できたら「変更を保存」をクリックして保存します。
これでCData SyncとAmazon S3の接続ができるようになりました。
KING OF TIMEのデータをAmazon S3へCSV出力させるジョブを設定
あとはKING OF TIMEのデータをAmazon S3へCSV出力させるジョブをCData Syncに登録するだけです。
「ジョブ」タブの「ジョブを追加」をクリック
- ジョブ名:任意
- ソース:KING OF TIME
- 同期先:S3Destination
- 全テーブルを同期します。:全テーブルを同期したい場合は✔
※今回は個別のテーブルを同期させます。
「作成」をクリック
「テーブルを追加」をクリック
複製するテーブルを選択して、「選択したテーブルを追加」をクリック
「変更を保存」をクリックしてジョブを保存します。
直ぐにCSV出力したい場合は、テーブル横のチェックボックスを✔して「実行」をクリックでAmazon S3へCSV出力されます。
実行前
実行後
CSV出力するデータの条件を指定したい場合は「カスタムクエリを作成」でSQLクエリにて指定が可能です。 また、ジョブのスケジュールや実行結果の通知等の設定も他タブにて行えます。
これでKING OF TIMEのテーブルをAmazon S3へCSV出力することができるようになりました。
終わりに
今回はCData SyncでKING OF TIMEのデータをMySQLに複製やAmazon S3にCSV出力する方法を紹介しました。
他にもKING OF TIMEに関する記事がありますので、参考にしてみてください。
www.cdatablog.jp
www.cdatablog.jp
CData製品を使用してみて不明な点があれば、テクニカルサポートまでお気軽にどうぞ。
https://jp.cdata.com/support/
www.cdata.com