CData Software Blog

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

クラウド勤怠管理システムKING OF TIMEのデータをCData SyncでMySQLに複製またはAmazon S3へCSV出力する方法

f:id:sugawarakazu:20210817123908j:plain

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

今回はCData Syncを使って、クラウド勤怠管理システムKING OF TIMEのデータをMySQLへ複製する方法やAmazon S3CSV出力する方法を紹介します。

KING OF TIMEとは?

KING OF TIMEは誰でも簡単に使えるシンプルなUIのクラウド型勤怠管理システムです。

https://www.kingtime.jp/

f:id:sugawarakazu:20210811170458j:plain

とても充実した機能のAPIを提供しており、企業情報や従業員情報などのマスタデータ操作や日別、月別の勤怠・打刻データを取得できるAPIを提供しています。

https://developer.kingtime.jp/

f:id:sugawarakazu:20210811174804j:plain

対応しているAPI一覧は下記の通りです。

Name 対応API
Administrators 管理者データの一覧を取得
Companies 企業情報データを取得
DailySchedules 日別スケジュールデータの一覧を取得
DailySchedulesCosts 日別スケジュール費用データの一覧を取得
DailyWorkings 日別勤務データの一覧を取得
DailyWorkingsCosts 日別費用データの一覧を取得
DailyWorkingsTimeRecords 日別打刻データの一覧を取得
Divisions 所属データの一覧を取得
Employees 従業員データの一覧を取得
MonthlySchedulesCosts 指定した年月の月別スケジュール費用データを取得
MonthlyWorkings 指定した年月の月別勤務データを取得
MonthlyWorkingsCosts 指定した年月の月別費用データを取得
MonthlyWorkingsHolidayRemained 指定した年月の残休暇データを取得
RequestsOvertimeLimits 指定した年月の残業上限申請データを取得
RequestsOvertimes 指定した年月の時間外勤務申請データを取得
RequestsSchedules 指定した年月のスケジュール申請データを取得
RequestsTimerecords 指定した年月の打刻申請データを取得
WorkingTypes 雇用区分データの一覧を取得
YearlyWorkingsHolidays 指定した年度にて行った休暇付与、取得を一覧で取得

今回はこのAPIを利用して、CData Syncから勤怠データの取得を行ってみたいと思います。

手順(KING OF TIME ⇒ CData Sync ⇒ MySQL

それでは実際にKING OF TIMEのデータをMySQLに複製する方法を説明します。

KING OF TIMEのWebAPI連携設定

まずはKING OF TIMEのWebAPIを使用できるように設定します。

f:id:sugawarakazu:20210812144002j:plain

ホーム画面の左下にある「設定」>「その他」をクリック

f:id:sugawarakazu:20210812144100j:plain

設定画面の「その他」タブの「オプション」をクリック

f:id:sugawarakazu:20210812144255j:plain

「外部サービス連携」>「KING OF TIME WebAPI連携設定」を「使用する」に設定して、 「登録」をクリックしてください。

登録後にもう一度この画面を表示して「連携設定」をクリック

f:id:sugawarakazu:20210812144449j:plain

「新規アクセストークン発行」をクリック

f:id:sugawarakazu:20210812153415j:plain

アクセストークン発行画面で【基本情報】・【API権限情報】・【許可IPアドレス】を入力して「登録」をクリック

※補足

  • API権限情報】:取得したいデータに応じて、Read権限を付与してください。
  • 【許可IPアドレス】:CData Syncを配置したマシンのIPアドレスを入力してください。

f:id:sugawarakazu:20210812154553j:plain

登録されたアクセストークンが後ほど必要となるため「編集」をクリック

f:id:sugawarakazu:20210812154718j:plain

表示されたアクセストークンをメモしておいてください。

これでKING OF TIMEの設定は終わりです。

CData Syncの設定

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

データソースにKING OF TIMEを設定

f:id:sugawarakazu:20210812161045j:plain

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

f:id:sugawarakazu:20210812161728j:plain

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

f:id:sugawarakazu:20210812161915j:plain

「KingOfTime」をクリック

f:id:sugawarakazu:20210812162326j:plain

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

f:id:sugawarakazu:20210812162943j:plain

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

f:id:sugawarakazu:20210812164010j:plain

  • 名前:任意
  • プロバイダークラス:System.Data.CDAta.API
  • フォーマット設定:プロパティリスト
  • Profile Settings:APIKey=KING OF TIMEのアクセストーク

※「APIKey=」も入力してください

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

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

同期先にMySQLを設定

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

f:id:sugawarakazu:20210812181557j:plain

「接続の追加」の「同期先」タブの「MySQL」をクリック

f:id:sugawarakazu:20210812182003j:plain

  • 名前:任意
  • プロバイダークラス:System.Data.CData.MySQL
  • Server:サーバー名
  • Port:ポート番号
  • Database:データベース名
  • User:ユーザー名
  • Password:パスワード

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

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

KING OF TIMEのデータをMySQLへ複製させるジョブを設定

あとはKING OF TIMEのデータをMySQLへ複製させるジョブをCData Syncに登録するだけです。

f:id:sugawarakazu:20210812183621j:plain

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

f:id:sugawarakazu:20210812184558j:plain

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

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

「作成」をクリック

f:id:sugawarakazu:20210817101020j:plain

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

f:id:sugawarakazu:20210817101444j:plain

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

f:id:sugawarakazu:20210817103354j:plain

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

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

実行前 実行後
f:id:sugawarakazu:20210819002939j:plain f:id:sugawarakazu:20210819002954j:plain

複製するデータの条件を指定したい場合は「カスタムクエリを作成」で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 S3CSV出力する方法を説明します。

CData Syncの設定

CData Syncを起動します。

同期先にAmazon S3を設定

同期先となるAmazon S3の設定を行います。

f:id:sugawarakazu:20210817103645j:plain

「接続」-「同期先」タブの「Amazon S3」をクリック

f:id:sugawarakazu:20210817110318j:plain

  • 名前:任意
  • プロバイダークラス:System.Data.CData.S3Destination
  • フォーマット設定:プロパティリスト
  • AWS Access Key:AWSAccess Keyを入力
  • AWS Region:AWSの地域を選択
  • AWS Secret Key:AWSのSecret Keyを入力
  • BucketAmazon S3の出力先となるS3 URIを入力
  • Use Virtual Hosting:デフォルトのTrueでOK

「接続のテスト」をクリックして、接続できたら「変更を保存」をクリックして保存します。

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

KING OF TIMEのデータをAmazon S3CSV出力させるジョブを設定

あとはKING OF TIMEのデータをAmazon S3CSV出力させるジョブをCData Syncに登録するだけです。

f:id:sugawarakazu:20210817110724j:plain

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

f:id:sugawarakazu:20210817110959j:plain

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

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

「作成」をクリック

f:id:sugawarakazu:20210817101020j:plain

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

f:id:sugawarakazu:20210817101444j:plain

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

f:id:sugawarakazu:20210817103354j:plain

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

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

実行前 f:id:sugawarakazu:20210819004247j:plain

実行後 f:id:sugawarakazu:20210819004259j:plain

f:id:sugawarakazu:20210819004308j:plain

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

これでKING OF TIMEのテーブルをAmazon S3CSV出力することができるようになりました。

終わりに

今回はCData SyncでKING OF TIMEのデータをMySQLに複製やAmazon S3CSV出力する方法を紹介しました。

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

www.cdatablog.jp

www.cdatablog.jp

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

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

www.cdata.com