在庫マッチングツール作成 〜在庫差異リストを自動出力する話 〜

みなさんも「Python 自動化」というキーワードをあちこちで見聞きしたことがあると思います。

今回は、Pythonを使って業務支援ツールを作成した話をしたいと思います。
タイトルにある通り「在庫マッチングツール」です。

最近うわさに聞くPythonをやってみたいなー、どんなことができるのか気になる方、在庫管理に困っている方などがいらっしゃればお付き合い頂ければ幸いです。

複数センター(自社及び寄託先)における滞留在庫のシステム化に取り組んでいましたが、センターごとに管理単位や運用ルールが異なるため、本社で管理する理論在庫との突合に非常に手間が掛かっていました。このため本来おこなうべき日次でのチェックが困難で、在庫差異の精度についても内部統制上問題視されていました。

今回、在庫差異の有無や原因をセンターごとに自動的に出力でき、また追加のロジックが発生しても、お客様でも変更できるようなツール化に取り組みました。

① 本社で管理する理論在庫データをCSVで取得
② 各センターで管理する実在庫データを取得(ODBC接続でサーバーからデータを取得)
③ ①と②で取得したデータを突合
④ センター別に在庫差異リストを出力

Microsoft Power Appsを使ってTeams上で使えるアプリ開発を想定していましたが、いろいろな壁が立ちはだかり、今回はPythonでのツール化に至りました。

結果として、ロジック変更が発生しても、お客様ご自身でプログラムを変更できるようなツールが完成しました。

いざ、在庫マッチングツールを使ってもらうと、いろいろな要望があがってきました。

その① センターによって管理単位や運用ルールが異なる問題

センターAでは、在庫をバラ数で管理。しかし、センターBでは、ケース単位で管理していることが判明。
全センターで運用ルールを統一できればいいのですが、そう簡単にはいかない。。。

ということで、プログラム上で対応することにしました。

その② カテゴリ毎に在庫差異リストのレイアウトを変更したい

対象の商品のときだけ、担当者がパッと見てわかるように商品名の横に列を追加して「⚫️」をつけたい。

その③ 差異が0件のセンターも出力してほしい

その④ サマリも出力して欲しい

※添付画像のデータは、ダミーデータです。

その⑤ Excelだけでなく、PDFでもリストを出力して欲しい

※添付画像のデータは、ダミーデータです。

1つ1つ要望に答えていき、ようやく在庫マッチングツールが完成!!!

実在庫データは外部から接続できないような仕組みになっていたり、いろいろな要望に臨機応変に対応できたので、Pythonで開発してよかったなーというのが感想です。

お客様にも満足していただけて何よりです。
今回の在庫マッチングツール作成に関する技術ネタは、別記事にて紹介していきたいと思います。