🐈

AirtableでNode-REDの使いどころ: 勤怠管理編

2022/12/12に公開

Airtableめちゃくちゃ便利で、実際、販売管理、生産管理、勤怠管理とか業務アプリ系はもうAirtableで良いんじゃないかと思ってます。今回はAirtableで業務アプリ作る時にenebular/Node-REDがどこで使えるか紹介します。

異なるbaseからデータを参照・操作する

AirtableにもAutomationsというノーコードプログラミング機能があります。以下のような感じでフロープログラミングが可能です。

Triaria_Industries_Automation_v001-2.gif

これを使えば同じbase内の異なるテーブルのレコードを参照・操作することが可能なのでNode-REDの出番はありませんが、異なるbaseのレコードを参照・操作する場合は外部の力が必要になります(厳密に言うとbase間でデータをsyncすれば可能ですが、AirtableのProプランは1つのbaseにつき50,000レコードがリミットなのを考えるとsyncを多用してデータ量を圧迫するのは避けたくなります)

では、異なるbaseのレコードを参照・操作する時ってどんな時でしょう?

よくあるのが就業カレンダーの参照です。勤怠管理はもちろん、生産管理や販売管理なども全て自社の(場合によっては取引先も)休日をロジックに含める必要が多々あります(少しでも業務システム開発したことある人ならピンとくるはず)

それでは、カレンダーにまつわるロジックのものから以下抜粋して紹介します。

勤怠の期初で今月の所定出勤日数や法休日数をサマる

この勤怠管理は以下のような打刻画面を開発しています(この開発もNode-REDで開発しています

スクリーンショット 2022-12-09 20.28.42.png

打刻画面でユーザーによって打刻されると以下の図の出勤簿テーブルにレコードが生成されます。出勤簿テーブルは月次集計テーブルとリレーションになっており、月次集計1レコードに対して出勤簿レコードが複数存在します。

スクリーンショット 2022-12-09 20.59.11.png

最終的に月次で締めて月次集計データを会計システムにインポートすることで給与計算などを行う運用となっています。これを実現するために期初の打刻のタイミングで当月分のカレンダーデータから休日日数を抽出するロジックをNode-REDで組んでいます。

スクリーンショット 2022-12-09 20.53.49.png

このNode-REDフローは、enebularのエージェント実行環境を利用してラズパイにデプロイして、現場の打刻用iPadからアクセスする形で使われています(現場に来ないと打刻できないようにLAN内でのみアクセスできます)

ん〜、1つの事例だけで長くなっちゃったので1事例1Postにしようと思います〜

では、また次回!

Discussion