![見出し画像](https://assets.st-note.com/production/uploads/images/14664319/rectangle_large_type_2_e36b4f583afdc751caab1e8340ebf65b.jpeg?width=1200)
QRコード+GASで棚卸し作業を効率化した話
こんにちは。Fintertechストラテジーグループの恩田です。
Fintertechでは、日常的に発生する業務を自動化し、効率化を図っています。今回は、資産棚卸しシステムを紹介します。
課題
システム化前の棚卸しでは、下記のような運用でした。
①資産管理台帳を見て、台帳の一番上からどの資産があるか確認
②実物があることをチェック
③もう一度、資産管理台帳を開き、棚卸し日と担当者を一行一行手入力
非常に手間がかかりますし、心の弱さからか、まとめてチェックしたくなってしまい、結果どの資産があったのか再確認するなどの二度手間も発生していました。まとめてチェックしようとすると、資産管理台帳とのズレが発生する可能性も仕組みで排除できない状態でした。
資産棚卸しシステムの概要
Fintertechの資産棚卸しシステムは、社員全員に貸与されているスマートフォンから、QRコードをスキャンすることで資産管理台帳に棚卸し日と担当者が自動的に記入される仕組みです。サンプルですが、資産管理台帳はこんな感じです。
オフィスを見渡してみると、机の下やノートPC、デスクチェア、ロッカーなど各資産にはQRコードが付与されています。
このQRコードをスキャンすることで自動的に資産棚卸し台帳に記載されます。そのため確実に資産の実物が存在していたことを担保でき、資産管理台帳との齟齬を防ぐことができます。また、複数人で同時並行で棚卸しを進めることができるため、一部の担当者ばかりの負担となることもありません。
アーキテクチャ
システム化と言ってきましたが、小さな規模ですのでアーキテクチャも以下のようにシンプルなものです。資産管理台帳の記載など機能はGoogle Apps Script(GAS)で実行しているため、サーバー管理といった運用負荷も排除しています。
実装のポイント
FintertechではG Suiteを利用しています。GASの実行にはFintertechドメインでのログインが必要な設計としています。これによってQRコードをスキャンする際の認証・認可を実現しています。G SuiteとGASの組み合わせは、誰が棚卸しをしたのか、担当者の名前を台帳に記載する実装がシームレスにできて最高でした。
また、TypeScriptで実装しているため、GASへのトランスパイルにはclaspを利用しています。初めてclaspを聞いたという方も多いかもしれません。claspは、ローカル環境での開発をサポートするCLIで、Googleが提供しています。(OSSで公開されています。ドキュメントはこちら)GAS上では、JavaScriptライクな言語で開発ができますが、個人的にTypeScriptにも挑戦したかったのでclaspを採用しました。
個人的な感覚ですが、ここ1~2年程度でclaspまわりのエコシステムも安定しているように感じます(たまにしか触らないとnodeのversionが変わってて少しハマることも......)。また、社内のソースコード管理はAWS Code Commitを用いています。ローカルからGASへアップロードできるclaspの存在はとてもありがたいです。
また、冒頭にサンプルを載せた資産管理台帳はGoogle Spreadsheet上で記録を残しています。QRコードの生成には、Google Chartsを利用しています。Google Spreadsheetのセル上から直接APIをコールできるので便利です。また、Google Spreadsheetを利用することで変更履歴を残すことができ、改ざんがあった場合でも追跡ができるようになっています。
終わりに
今回はFintertechの資産棚卸しシステムについて紹介させて頂きました。そろそろ私がFintertechに来てから1年が経ちます。通常業務の傍ら、積極的に自動化を進めてきました。GASを利用したものでは、週次月次で行う点検作業のリマインド(直近ではお掃除当番をslackに通知するリマインダを社内リリースしました)、お問い合わせの通知などを実装してきました。
人間がやらなくてもいい作業、何度も発生してしまう作業は、自動化したときの効果が非常に大きいです。二回同じことをしてしまったら、積極的に自動化していきましょう!!
社内システムはチャレンジングなこともできる環境なので、この棚卸しシステムでQRコードを付けたものをERC721でNFTにして、社内備品がどこにあるか、使用頻度はどれくらいか、消耗品なら残量どれくらいか、といったこともトラッキングできると夢が広がります。こちらは将来の課題ということで、実装したらまた本ブログでお話したいと思います。