出勤データを記録するkintoneアプリのデータと、退勤データを記録するkintoneアプリのデータをkrewDataでくっつけるよ
kintoneで「勤怠記録」を自動的に行う仕組みを作るシリーズ、vol.1で出勤データを記録するkintoneアプリを、vol.5で退勤データを記録するkintoneアプリを作りました。
ここまでで、出勤データと退勤データをそれぞれkintoneから「ファイルに書き出す」を行ってCSVファイルを取り出して、Excel上でなんとかしたり何らかの勤怠管理ツールにインポートしたりしてもいいのですが……
せっかくならこれもkintone上で完結させちゃいましょう。
職員個人にkintoneアカウントを割り当ててkintone上で勤怠記録を付けてもらうならこの設定は不要ですし、「退勤時刻」フィールドも一緒に配置しちゃいましょう。
しかし、FormBridgeプラグインを使って報告してもらうならAPIトークンの設定は必須ですし、「退勤時刻」はもう一つ別のアプリで記録してもらう方が記録する職員側も、記録してもらう管理者側もシンプルです。
と書きました。
今回は、別のアプリでそれぞれ記録された出勤・退勤のデータを、krewDataを使って1つのアプリ内にまとめるようにします。
まずは出勤・退勤のデータをまとめた後の受け皿となるアプリをつくるよ
出勤データ記録アプリか退勤データ記録アプリのどちらかに、まとめた後のデータを記録してもいいのですが、今回は分かりやすくするために完全に別個のアプリに出勤・退勤をまとめたデータを記録します。
これまでの解説で紹介した手順や画像は省略します。vol.1の手順を参考に、kintoneアプリを新規作成します。
設定を変更したら、必ず「アプリを更新」を忘れないようにしましょう。
krewDataの設定をしよう
krewDataプラグインのインストール
krewDataプラグインのインストール手順は利用開始の手順によくまとまっていますので、ここでは詳しく解説しません。
krewData専用アプリの作成
krewData専用アプリの作成手順も利用開始の手順によくまとまっていますので、ここでは詳しく解説しません。
krewDataプラグインの設定画面を開こう
データ編集フローを追加しよう
データ編集フローを設定しよう
- データ編集フローは、基本的に左のペインのアプリを右のペインに配置し、アプリ間の連結を別途設定していくような流れです。
まずは「入力アプリ」を右のペインにドラッグ&ドロップします。
- ドラッグ&ドロップした直後は、まだ「入力アプリ」に該当するkintoneアプリが何なのかはkrewData側はわかっていません。
「アプリを選択」から、どのkintoneアプリを「入力アプリ」にするか教えてあげましょう。
- そうそう、今回はキャプチャ画像の文字をすっきりさせるために、これまでのシリーズのkintoneアプリの名称を一部簡略化しています。後出しですがそこんとこは空気をだな……。
「出勤記録アプリ」を選択して「OK」を選択します。
- アプリを設定したら、次はどのフィールドをkrewDataで扱いたいかを設定します。
「使用するフィールドを選択」のプルダウンメニューから
- 「職員番号」を選択しましょう。その後、「氏名」「日付」「出勤時刻」も同じように繰り返します。
- 4つのフィールドが使用されるように指定されました。
- もう一度「入力アプリ」を右のペインにドラッグ&ドロップします。
- 「退勤記録アプリ」を選択してから、こちらにも「職員番号」「氏名」「日付」「退勤時刻」の4つのフィールドが使用されるように指定します。
- 2つの入力アプリのデータを結合させるので、「アプリ結合」を右のペインにドラッグ&ドロップします。
- 「アプリ結合」を右ペイン内に配置したら、上の「入力アプリ」の右端の○を選択し、「アプリ結合」に向けてくっつけます。
- 下の「入力アプリ」の右端の○からも同様に「アプリ結合」に向けてくっつけましょう。
- 2つともこのようにくっついたら、下のペインの「このコマンドは2つの入力データが必要です。」が消え、アプリの条件フィールドを選べるようになります。
- この操作ではデフォルトで「職員番号」が条件フィールドになりました。さらに条件フィールドを加えるため、「条件を追加」を選択します。
- 「日付」も条件フィールドに設定しました。
ここでは完全外部結合を選んでいます。「両方のアプリに存在するすべてのレコードを結合して出力」ということは、出勤データまたは退勤データの、どちらかだけでも存在していれば結合して出力するということになります。
- 結合したデータを出力するアプリを設定するので、「出力アプリ」を右のペインにドラッグ&ドロップします。
- 「出力アプリ」を右ペイン内に配置したら、「アプリ結合」の右端の○を選択し、「出力アプリ」に向けてくっつけます。
- 入力アプリの時と同じように「アプリを選択」から、どのkintoneアプリを「入力アプリ」にするか教えてあげましょう。
「出退勤結合アプリ」を選択して「OK」を選択します。
- 「更新」のラジオボタンを有効にし、かつ「更新または追加」のチェックボックスも有効にしましょう。
これで、結合する前の時点ではまだ出退勤結合アプリに存在していない日付のデータも、結合実行後には新規に追加されます。
- 「アプリのフィールド」は「職員番号」「氏名」「日付」「出勤時刻」「退勤時刻」の5つのフィールドが使用されるように指定します。
- 「レコードの出力順序」は、ここでは日付のみの降順としていますが、「職員番号」をあわせて順序指定に組み込んでもいいでしょう。
- 「更新キーを選択してください。」のアラートがまだ残っています。
画面を右にスクロールし、「職員番号」と「日付」の行のチェックボックスを有効にします。これで、「同じ職員番号」の「同じ日付」のデータを確実に結合できます。
※今回の設定では、同じ日に複数回の出勤または退勤データが報告される可能性は考慮していません。
- 「アプリを更新」を選択します。
- 「データ編集フロー」の編集マークを選択し、フロー名を「出退勤結合」に変更します。
- 「スケジュール」を選択します。
- ここでは、毎朝6:00にフローが実行されるスケジュールにしました。「OK」を選択します。
- 「アプリを更新」を選択します。これでkrewDataの設定は完了です。
データが結合されているか確認しよう
kintoneアプリの管理画面で、データが結合されているか確認してみましょう。
- 出勤記録アプリでは、「職員番号100」の「結城 三朗」さんの最新の出勤データは2021年6月22日の18:07となっています。
- 退勤記録アプリでは、「職員番号100」の「結城 三朗」さんの最新の退勤データは2021年6月15日の16:09となっています。
すなわち、まだ2021年6月22日の退勤データは記録されていないということになります。
- この場合、出退勤結合アプリ上では6月15日は出勤・退勤の両方のデータが出力されますが、6月22日は出勤のデータのみが出力されるということになります。
(6月15日は出勤も退勤も16:09になっていますが、これは同じ時刻で記録してしまったままスクリーンショットを取ってしまいました)
これで、一通りのアプリ作成とプラグイン設定は完了しました。
次回はこのシリーズのかんたんなまとめを書いて、連載を完了にしたいと思います。
コメント