2019年12月20日金曜日

MANICAモバイルのゲート機能を試してみる

安価にRFIDを導入できるAndroidアプリで簡単に入出庫・棚卸しが可能なMANICAモバイルですが、ゲート機能が追加になりましたので試してみました。

ゲート機能とは、Androidアプリを使用せずにRFIDゲートにタグを読ませるだけで、あらかじめ登録しておいた入庫/出庫の処理を自動で行う機能です。

ゲート自体はまだ出来てないのですが、Webフックで機能しますのでMANICAコレクタを使用して代用できます。

まずはハヤト管理者にゲートを払い出してもらいます。そうするとユーザのメニューに「ゲートの管理」という項目が追加されます。ここでゲートの設定をします。


ゲート名と、読み取ったときの処理(入庫か出庫か)を選択します。入庫のときは保管場所も選択できます。さらにゲートの場所をマップ上から設定できます。今回の図の設定ではゲートで読み取ったら、「名護マルチメディア館の倉庫1に入庫」という処理になります。

実際のゲートを準備します。MANICAコレクタは様々なリーダが使えるので何でもいいんですが、とりあえずそのへんにあるもの使います。


ゲートと言ってもただリーダとアンテナ置いただけです(笑。よく言えばテーブルスキャナ的な。

このゲートをMANICAモバイルのゲートとして使用できるようにMANICAコレクタの設定をします。


MANICAモバイルのゲート機能はPOST対応なんですが、現行のMANICAコレクタ(バージョン2.1.1以下)はGETのみの対応なのでPOST対応に修正しました(次期バージョンの標準機能になります)。

テスト用の物品を準備します。


今回は特別にドラゴンボールを準備しました。単なるテストにこんな大事なものを使うなんて何て贅沢なことをしてるんでしょうか。画面ではステータスが出庫になっています。これからドラゴンボールが届いて、入庫させようとそういう流れです。

というわけでドラゴンボールが3つだけ届きました。


早速読取り!
結果!


見事3つのドラゴンボールが入庫処理されました!

MANICAコレクタでも十分機能するのですが、こういう読取りのさせ方をする場合、読み取ったときに何個読み取ってるのかがわからないととても不安な状態になりますので、読取り数の表示機とかが必要になるわけですね。そのあたりの試作的なものは以前の記事「MANICAモバイル用のゲートを作る その1」に記載しておりますのでご覧ください。

2019年12月13日金曜日

棚卸しパッケージをクラウド化してみる

当社で販売しております「棚卸しパッケージ」ですが、おかげさまで大変ご好評いただいております。このパッケージは、無償でご提供しております「MANICA EXCEL TOOL」をベースに棚卸しの機能をエクセルのマクロで追加し、ハンディリーダ用の専用アプリとのセット製品になっています。

エクセルなので基本的にはスタンドアロンでの運用となります。が、「Googleスプレッドシート」などエクセルのようなクラウドのアプリもありますね。こっちで動くとカッコいいかなーと考えたところ、そういえば棚卸しパッケージではハンディとPCの通信自体はそんなに大したことをしていません。じゃそれをWebとの通信にしちゃえばよくね?ということでやってみました。

Googleスプレッドシートには、Google Apps Scriptというマクロ的なのがあって、これがなんとWebAPIとして公開できるようになっています。ここに棚卸しパッケージのハンディとのやり取り部分を実装して棚卸しパッケージのフリをすることでハンディのアプリそのままに動かそうという目論見で試しました。

こんなイメージ

で、やってみたらこれまたいろんなハードルがあって思ったより相当大変だったんですが何とか動きました。

スプレッドシートで棚卸しパッケージと同じ内容でデータを作ります。


ロケーションのデータも作成


ハンディを起動します。ハンディはデータの送信先を作成したGoogle Apps ScriptのAPIにしただけで、特に大きな修正は入れていません。


棚卸し画面に移動して、マスタダウンロードをします。


キター!ロケーションの情報が表示されました。
部屋Aを選択すると


物品が3個あります。モニタのタグを読むと


この状態でデータ送信ボタンを押します。


するとスプレッドシートの棚卸しの部分にデータがアップロードされました。

これで【棚卸しだけ】をやるのであればスプレッドシートでも問題なく利用できます。ICタグを探す探索機能なども実装できそうです。

しかし問題点もいろいろわかりました。通信がWebAPIなのでサーバ側からハンディに任意のタイミングでデータが送信できない とか 棚卸しパッケージの通信ではSJISでBASE64エンコード使ってたりしますが、これが Google Apps Script ではそう簡単に実装できないとか。

どう進めていくかはもう少し検討が必要ですかね。