本願に係る発明(以下「本発明」と称す)の実施例として、通い箱管理システム1を説明する。通い箱管理システム1は、拠点間での物品の流通において、該物品を移送のために収容する箱型の資材(以下「通い箱」と称す)90を管理するための情報処理システムである。なお、本願において請求項の「運搬資材管理プログラム」には後述する通い箱管理プログラム15bが、「運搬資材管理装置」には後述するコンピューター10が、それぞれ相当する。
図1(a)は、本実施例の通い箱管理システム1の概要についての説明図である。通い箱管理システム1が管理の対象とする通い箱90は、倉庫100の内外を流通するものであって、倉庫100内で荷物(不図示)を収容された通い箱90は出荷場102から倉庫100の外へと出荷され、倉庫100の外部で荷物が取り出された通い箱90は、受入場101へと返却される。受入場101に返却された通い箱90は再び倉庫100内を流通して出荷場102から出荷される。即ち、通い箱90は、図1(a)中に矢印で示すように、倉庫100の内外を循環するものである。以下、通い箱90が受入場101および出荷場102を経由して循環する態様を「循環流通」と表現し、一の通い箱90が受入場101を出て、再度受入場101に到達することを循環流通の1回と数える。なお、新規に追加される通い箱90は、受入場101から循環流通を開始するものとする。
通い箱90は、その通い箱90の個々を識別可能な情報である通い箱ID91aを記憶する通い箱タグ91が貼付される。図1(a)においては、通い箱90を識別する通い箱ID91aとして「B001」の値が例示されている。
また、受入場101または出荷場102で作業を行う従業者が所持する従業者カード95には、従業者の個々を識別可能な情報である従業者ID96aを記憶する従業者タグ96が内蔵される。図1(a)においては、従業者を識別する従業者ID96aとして「S001」の値が例示されている。
通い箱タグ91および従業者タグ96は、いずれもRFID(Radio Frequency Identifier)タグとして一般に知られる記憶媒体であり、無線通信によって記憶する情報が読み取られるものである。通い箱タグ91および従業員タグ96からは、後述するアンテナ82a、82bによって、それぞれ記憶する通い箱ID91a、従業者ID96aが読み取られる。
通い箱管理システム1は、図1(a)に示すように、コンピューター10に対し、受入リーダー80aおよび出荷リーダー80bがLAN(Local Area Network)50を介して接続されて構成される。
受入リーダー80aは、受入場101に通い箱90が到着したことを示す情報をコンピューター10に送信するための装置である。換言すれば、受入リーダー80aは通い箱管理システム1において、通い箱90が倉庫100の外部から内部へと返却されたことを認識するための装置である。
受入リーダー80aにはセンサー81aとアンテナ82aとが接続される。センサー81aは光電センサーであり、通い箱90が所定の位置に存在する場合に、所定の電気的信号を受入リーダー80aに入力する。受入リーダー80aはセンサー81aからの電気的信号の入力を受けて、アンテナ82aにセンサー81aが検出した位置に存在する通い箱90の通い箱タグ91から、通い箱ID91aを読み取らせる。アンテナ82aが読み取った通い箱ID91aは、受入リーダー80aに入力される。
また、受入リーダー80aは、アンテナ82aに通い箱ID91aを読み取らせるのと同時に、近傍に存在する従業者カード95の従業者タグ96から、従業者ID96aを読み取らせる。これは、通い箱90の返却を受け入れた時点でいずれの従業者が受入場101で作業をしていたかを記録するためのものであり、詳細については後述する。アンテナ82aが読み取った従業者ID96aは、通い箱ID91aと同様に、受入リーダー80aに入力される。なお、アンテナ82aは、近傍に従業者タグ96が存在しない場合、受入リーダー80に従業者ID96aに相当する情報を入力しない。
受入リーダー80aは、アンテナ82aに読み取らせた通い箱ID91aおよび従業者ID96aを、LAN50を介してコンピューター10へと送信する。図1(b)は、受入リーダー80aからコンピューター10へと送信される情報である読取情報200の構成図である。読取情報200は、LAN50を介して送受信される情報であり、通い箱ID201および従業員ID202を内包する。
受入リーダー80aは読取情報200の通い箱ID201にアンテナ82aに読み取らせた通い箱ID91aを、従業者ID202にアンテナ82aに読み取らせた従業者ID96aを、それぞれ設定して当該読取情報200をコンピューター10へと送信する。なお、前述した通り、アンテナ82aは従業者ID96aを読み取らない場合がある。その場合、読取情報200の従業者ID202は、受入リーダー80aによってNULL値に設定されてコンピューター10へと送信される。
なお、「NULL値」とは、値が存在しないことを示す特別の値のことであり、以下の説明においても同様である。
図1(a)に示す出荷リーダー80bは、出荷場102に通い箱90が到着したことを示す情報をコンピューター10に送信するための装置である。換言すれば、出荷リーダー80bは、通い箱90が倉庫100の内部から外部へと出荷されることを識別するための装置である。出荷リーダー80bの構成、役割および動作については、前述した受入リーダー80aに対して、センサー81aに代えてセンサー81bであり、アンテナ81aに代えてアンテナ81bであることを除いて同様であるので、説明を省略する。
次に図2を参照して通い箱管理システム1の電気的構成を説明する。図2は通い箱管理システム1を構成するコンピューター10等の電気的構成を示す模式図である。なお、以下の説明において記憶装置や記憶領域に対して「設定する」または「更新する」との表現は、書き換え可能な記憶装置または記憶領域に情報を記憶させることを意味する。
コンピューター10は、CPU12、ROM13、RAM14、ハードディスク15、時計18およびNIC(Network Interface Card)19を備え、これらが相互にバス11を介して接続される。
CPU12は、中央演算装置であり、コンピューター10における演算やバス11を介して接続されるハードディスク15等の装置の制御を行うものである。ROM99は、読取専用の不揮発性記憶装置であり、CPU12がコンピューター10の起動時に実行するためのプログラム等(図示せず)が記憶される。
RAM14は、情報を読み書き可能な揮発性の記憶装置である。後述する通い箱管理プログラム15bがCPU12によって実行される際、RAM14には、遡及時間メモリー14a、工程メモリー14b、通い箱IDメモリー14c、従業者IDメモリー14d、現在日時メモリー14e、受入従業者IDメモリー14f、出荷従業者IDメモリー14g、種別メモリー14h、稼働数メモリー14i、滞留数メモリー14j、合計数メモリー14k、予測不足日メモリー14mの記憶領域がそれぞれ確保される。
遡及時間メモリー14aは、図10に示す遡及更新処理S500の実行における動作を調整するためのパラメーターを記憶する領域である。工程メモリー14bは、図7に示す読取処理S200等において、処理の対象とする通い箱ID201を含む読取情報200が受入リーダー80aまたは出荷リーダー80bのいずれから送信されたものであるかを示す値を記憶する領域である。工程メモリー14bには、読取情報200が受入リーダー80aから送信されたものである場合には「受入」の文字列が、読取情報200が出荷リーダー80bから送信されたものである場合には「出荷」の文字列が、設定される。
通い箱IDメモリー14cおよび従業者IDメモリー14dは、それぞれ、読取情報200が含む通い箱ID201および従業者ID202を一時的に保持するための記憶領域である。現在日時メモリー14eは、CPU12が通い箱管理プログラム15bに基づいて所定のタイミングで取得した日時の値を保持するための記憶領域である。
受入従業者IDメモリー14fは、受入場101で作業に従事している従業者のものとして取得した従業者ID202(従業者ID96a)の値を保持するための記憶領域である。出荷従業者IDメモリー14gは、出荷場102で作業に従事している従業者のものとして取得した従業者ID202(従業者ID96a)の値を保持するための記憶領域である。
種別メモリー14h、稼働数メモリー14i、滞留数メモリー14j、合計数メモリー14kおよび予測不足日メモリー14mは、図13に示す不足分析処理S1200において用いる記憶領域である。種別メモリー14hは、分析中の通い箱90の種別(サイズや形に基づくグループ)を示す値を記憶する領域である。稼働数メモリー14i、滞留数メモリー14j、合計数メモリー14kは、通い箱90の数をカウントするための記憶領域であり、稼働数メモリー14iは倉庫100外にある通い箱90の数を、滞留数メモリー14jは倉庫100内にある通い箱90の数を、合計数メモリー14kは通い箱90の総数を、それぞれ種別ごとにカウントするために用いられる。予測不足日メモリー14mは、種別ごとに通い箱90が不足すると予測される日付を算出するために用いられる記憶領域である。
ハードディスク15は、情報を読み書き可能な不揮発性の記憶装置である。ハードディスク15には、オペレーティングシステム(以下「OS」と称す)15aと、通い箱管理プログラム15bと、設定ファイル16と、データベース17とが記憶される。OS15aは、各種デバイス(例えば後述するモニター30等)の制御や各種応用プログラム(例えば通い箱管理プログラム15b)の実行をCPU12に行わせるための基本プログラムであり、コンピューター10が起動すると第一にCPU12によって実行される。
通い箱管理プログラム15bは、CPU12に本発明の通い箱管理システム1としての情報処理を実行させるための応用プログラムである。OS15aに基づいて通い箱管理プログラム15bの実行の命令がCPU12に入力されると、CPU12は通い箱管理プログラム15bをRAM14にロードして、通い箱管理プログラム15bに基づく処理を開始する。
設定ファイル16は、通い箱管理プログラム15bの実行に関する各種パラメーターが記述された情報群である。設定ファイル16には、パラメーターの一つとして遡及時間16aが記述される。遡及時間16aの詳細については後述する。
データベース17は、通い箱管理システム1が利用する情報を効率的に記憶、参照するためのリレーショナルデータベースである。データベース17内の情報はCPU12が実行するデータベースエンジン(不図示)によって管理される。例えば、通い箱管理プログラム15bの実行によりデータベース17内の情報に対する更新が必要となると、CPU12はデータベースエンジンとしての手順に基づいて必要な処理を判断してデータベース17内の情報を更新する。以下の説明においてデータベース17内の情報を更新する等の表現は、データベースエンジンを介して行うことを暗黙のうちに意味する。
データベース17は、通い箱テーブル17aと、種別テーブル17bと、履歴テーブル17cとを有する。ここで「有する」とは、CPU12に実行されるデータベースエンジンによって管理されるデータベース17内に記憶領域として存在することを意味する。また、本明細書におけるデータベースの概念として、データベースは分割された記憶領域として複数のテーブルを有し、テーブルは個々の明細としてレコードを有する。また、レコードは、複数の情報(属性)の集合であり、個々の情報を記憶する領域をフィールドと呼ぶ。即ち、フィールドの集合がレコードであり、レコードの集合がテーブルであり、テーブルの集合がデータベースである。なお、同一のテーブルにおいてレコードごとに有するフィールドの組み合わせは一定である。フィールドに設定すべき値が存在しない場合はNULL値が設定される。
データベース17が有する通い箱テーブル17aと、種別テーブル17bと、履歴テーブル17cとについては、図3を参照して後述する。
時計18は、CPU12からの要求に基づいて、その時点での日時を出力する装置である。
NIC19は、LAN50を介して接続された各種機器との通信を制御するネットメモリーインターフェイスである。CPU12は、LAN50に接続された他の機器(例えば受入リーダー80aや出荷リーダー80b)との情報のやり取りを、NIC19を介して行う。
コンピューター10には、ユーザーインターフェイスとして、モニター30と、キーボード31と、マウス32と、スピーカー33が接続される。これらの装置はバス11に接続され、CPU12との入出力がバス11を介して可能に構成される。
モニター30は、CPU12の制御によって図形や文字を表示する表示装置である。キーボード31は、主に文字情報をCPU12に入力するための入力装置である。マウス32は、クリック操作により座標情報を入力するポインティングデバイスである。通い箱管理システム15bを実行するCPU12では、クリック操作により座標が入力された場合、モニター30に表示された画面において当該座標が示す位置に表示された画面の構成要素がクリック操作されたものとして扱う。スピーカー33は、CPU12の制御により音声を再生する装置である。
コンピューター10がNIC19により接続するLAN50には、前述した通り、受入リーダー80aおよび出荷リーダー80bが接続される。受入リーダー80aおよび出荷リーダー80bに関する構成は図1(a)により説明した通りであるが、受入リーダー80aにはセンサー81aとアンテナ82aとが、出荷リーダー80bにはセンサー81bとアンテナ82bとが、それぞれ接続される。アンテナ82aおよびアンテナ82bは、通い箱90に貼付された通い箱タグ91から通い箱ID91aを、従業者カード95に内蔵された従業者タグ96から従業者ID96aを、それぞれ読み取り可能に構成される。通い箱タグ91および従業者タグ96は前述した通りRFIDタグであり、通い箱タグ91とアンテナ82a、82b間、および従業者タグ96とアンテナ82a、82b間の通信は無線のRFID方式によって行われる。
アンテナ81aで読み取られた通い箱ID91aおよび従業者ID96bは受入リーダー80により読取情報200(図1(b)参照)に変換され、その読取情報200はLAN50を介してコンピューター10へと送信される。他方、アンテナ81bで読み取られた通い箱ID91aおよび従業者ID96aも同様に、出荷リーダー80bで読取情報200に変換され、その読取情報200はLAN50を介してコンピューター10へと送信される。
次に図3を参照して、データベース17が有する各種テーブルを説明する。図3(a)は通い箱テーブル17aの、(b)は種別テーブル17bの、(c)は履歴テーブル17cの模式図である。
図3(a)の通い箱テーブル17aは、通い箱90の個体ごとに種別や状態等の情報を保持するためのテーブルである。通い箱テーブル17aのレコードはフィールドとして通い箱ID17a1、種別17a2、回転数17a3、状態17a4、最終読取日時17a5、平均稼働時間17a6、平均滞留時間17a7、予測廃棄日17a8を有する。通い箱ID17a1は、通い箱90を識別する情報が設定されるフィールドであり、通い箱90に貼付された通い箱タグ91が記憶する通い箱ID91aに対応する値が設定される。種別17a2は、通い箱90の種別(例えば大きさや形でグループ分けされたもの)を示す値が設定されるフィールドである。
回転数17a3は、通い箱90の使用回数が設定されるフィールドである。より具体的には、回転数17a3は、通い箱90が受入場101を通過する度に1が加算されることで、その通い箱90が何回目の循環流通をしているかを示す値とされる。
状態17a4は、通い箱90が倉庫100の内外いずれに所在するかを示す値として、「受入」また「出荷」のいずれかの文字列が設定されるフィールドである。状態17a4が「受入」である場合、そのレコードの通い箱ID17a1で識別される通い箱90は、受入場101から出荷場102の間、即ち、倉庫100内に所在することを示す。一方、状態17a4が「出荷」である場合には、倉庫101外に所在することを示す。
最終読取日時17a5は、そのレコードの通い箱ID17a1と同一の通い箱ID91aがアンテナ82aまたはアンテナ82bに読み取られた直近の日時が設定されるフィールドである。即ち、最終読取日時17a5に設定される日時は、通い箱90が受入場101または出荷場102のいずれかを通過した直近の日時である。
平均稼働時間17a6は、通い箱90の1回の循環流通において倉庫100外に所在する期間の平均日数が設定されるフィールドである。平均滞留時間17a7は、通い箱90の1回の循環流通において倉庫100内に所在する期間の平均日数が設定されるフィールドである。
予測廃棄日17a8は、そのレコードの通い箱ID17a1により識別される通い箱90が耐用限界の超過により廃棄されると予測される日付が設定されるフィールドである。予測廃棄日17a8に設定される値の詳細については、図8のフローチャートを参照して後述する。
ここまで説明した通い箱テーブル17aに記憶されるレコードは、通い箱90ごとに予め作成(追加)されているものとし、そのレコードを作成する技術については公知のもの(例えば、外部からのデータのインポート等)を採用できる。
次に図4(b)に示す種別テーブル17bは、通い箱90の種別ごとの情報(属性)を記憶するテーブルである。ここでいう「種別」とは前述した通り、大きさや形等に基づいて分類した通い箱90のグループのことを指す。種別テーブル17bの各レコードはフィールドとして、種別17b1、必要数17b2、限界回転数17b3を有する。
種別17b1は、種別を識別する値が設定されるフィールドであり、通い箱テーブル17a2に設定され得る値に対応する。必要数17b2は、その種別の通い箱90として保有しておくべき最少の数が設定される。
限界回転数17b3は、その種別の通い箱90について、耐用限界である最多の循環流通の回数が設定される。即ち、限界回転数17b3は、通い箱90が廃棄までに受入部101を通過する回数の最大値である。
なお、ここまで説明した種別テーブル17bに記憶される内容は、通い箱管理プログラム15bとは別に、公知の技術を用いて予め用意されているものとする。
図4(c)に示す履歴テーブル17cは、通い箱90が受入場101または出荷場102を通過した履歴を記録するものである。履歴テーブル17cの各レコードは、通い箱90の通い箱ID91aがアンテナ82a、82bによって読み取られた1回ごとの履歴に相当する。
履歴テーブル17cの各レコードはフィールドとして、通い箱ID17c1、日時17c2、工程17c3、従業者ID17c4を有する。通い箱ID17c1は、アンテナ82a、82bにより読み取られた通い箱ID91aの値が設定されるフィールドであり、日時17c2は、その読み取られた日時が設定されるフィールドである。
工程17c3は、通い箱ID91aがアンテナ82aで読み取られた場合には「受入」の文字列が、アンテナ82bで読み取られた場合には「出荷」の文字列が、設定されるフィールドである。即ち、工程17c3は、そのレコードが、通い箱90が受入場101または出荷場102のいずれを通過したことに基づくレコードであるかを示すものである。
従業者ID17c4は、従業者カード95の従業者タグ96からアンテナ82a、82bが読み取った従業者ID96aの値が設定されるフィールドである。従業者ID17c4は、当該レコードが作成の契機である通い箱90の受入場101または出荷場102の通過時、当該受入場101または出荷場102において作業に従事していた従業者の従業者ID96aを記録するものである。
次に、図4、5を参照して、CPU12が通い箱管理プログラム15bを実行することによってモニター30に表示される画面を説明する。図4(a)に示す画面は、CPU12が通い箱管理プログラム15bを実行する場合、最初にモニター30に表示される読取中画面300である。読取中画面300には「読み取り中」との表示があり、当該画面がモニター30に表示されることによって、CPU12は、アンテナ82a、82bによって通い箱タグ91や従業者タグ96から読み取られた情報に関する処理(図7〜10)を実行中であることがユーザーに示される。読取中画面300にはデータ参照ボタン301と、終了ボタン302とが配置される。データ参照ボタン301は、クリック操作によってモニター30の表示を後述する機能選択画面320に切り替えるための表示要素である。終了ボタン302は、クリック操作によってCPU12による通い箱管理プログラム15bの実行を終了させるための表示要素である。
次に、図4(b)に示す画面は、ユーザーによる機能の選択を受け付けるためのものである機能選択画面320である。前述した通り、機能選択画面320は、読取中画面300のデータ参照ボタン301がクリック操作された場合に、モニター30に表示される。
機能選択画面320には、読取履歴ボタン321、不足予測ボタン322、戻るボタン323が配置される。読取履歴ボタン321は、クリック操作によってモニター30の表示を後述する履歴表示画面330に切り替えるための表示要素である。不足予測ボタン322は、クリック操作によってモニター30の表示を後述する不足予測画面340に切り替えるための表示要素である。戻るボタン323は、クリック操作によってモニター30の表示を前述した読取中画面300に切り替えるための表示要素である。
図5(a)に示す画面は、履歴テーブル17cに記憶された各レコードの内容を表示するための履歴表示画面330である。履歴表示画面330は、前述した通り、機能選択画面320の履歴表示ボタン321がクリック操作された場合に、モニター30に表示される。履歴表示画面330には、履歴テーブル17cのレコードを行、フィールドを列に対応させた表形式で表示する履歴表示部331が配置される。履歴表示部331は、履歴テーブル331の通い箱ID17c1、日時17c2、工程17c3、従業者ID17c4の各値がレコードごとに表示される。履歴表示部331の表示によれば、通い箱90が受入場101または出荷場102を通過した日時や、その通過の際に作業をしていた従業者を、容易に確認できる。循環流通する通い箱90に問題が発見された場合、その問題の原因を調査する者は、モニター30に履歴表示画面300を表示させれば、有用な情報を簡単に得ることができる。
また、履歴表示画面330には、クリック操作された場合にモニター30の表示を機能選択画面320へと切り替えるための戻るボタン332が配置される。
図5(b)に示す画面は、通い箱90の数が不足すると予測される時期(以下「予測不足日」と称す)として分析した結果を表示する不足予測画面340である。不足分析画面340には、通い箱90の種別ごとに、倉庫100の外で使用されている通い箱90の数である「稼働中」、倉庫100の中にある通い箱90の数である「滞留中」、稼働中と滞留中との数の合計である「合計」および前述した「予測不足日」が表示される結果表示部341が配置される。
結果表示部341に表示される内容の詳細については、図13のフローチャートを参照して後述するが、ユーザー(コンピューター10を操作する者、以下同じ)はモニター30に表示された結果表示部341を参照すれば、通い箱90が不足する時期、ひいては通い箱90を補充すべき時期を容易に認識できるため、至便である。
また、不足予測画面340には、クリック操作によってモニター30の表示を機能選択画面320に切り替えるための戻るボタン342が配置される。
次に図6〜図13のフローチャートを参照して、通い箱管理プログラム15bを実行するCPU12が行う処理を説明する。なお、以下のフローチャートの説明において主体を省略した場合はCPU12が通い箱管理プログラム15bに従って、当該動作を行うことを意味する。また、以下の説明中には明示しないが、通い箱管理プログラム15bを実行するCPU12では、公知の技術により、バス11に接続された各種装置と情報をやり取り可能とされる。
CPU12は、OS12の制御に基づいて通い箱管理プログラム15bの実行が指示されると、通い箱管理プログラム15bをRAM14にロードしてその実行準備をし、その後、図6に示すメイン処理S100の実行を開始する。なお、このとき、通い箱管理プログラム15bを実行するCPU12は、NIC19を介して接続するLAN50に対して、TCP/IPプロトコルに基づく通信ポートを解放して、当該通信ポートによって受入リーダー80aまたは出荷リーダー80bからの読取情報200の受信の待ち受けを開始する。当該受信の待ち受けについては公知の技術を利用できるため、詳細な説明は省略する。
メイン処理S100においてCPU12は、まず、RAM14上の記憶領域の初期化を行う(S101)。具体的には、CPU12は、遡及時間メモリー14a、工程メモリー14b、通い箱IDメモリー14c、従業者IDメモリー14d、現在日時メモリー14e、受入従業者IDメモリー14f、出荷従業者IDメモリー14g、種別メモリー14h、稼働数メモリー14i、滞留数メモリー14j、合計数メモリー14k、予測不足日メモリー14mの各記憶領域をRAM14に確保し、これら記憶領域をNULL値に初期化する。
次にCPU12は、設定ファイル16から遡及時間16aを取得し(S102)、その値をRAM14の遡及時間メモリー14aに記憶させる(S103)。詳しくは後述するが、遡及時間メモリー14aに記憶させた値は、遡及更新処理S500(図10)で利用される。本実施例では遡及更新処理S500において利用するために遡及時間メモリー14aに設定すべき値を、通い箱管理プログラム15bとは別の設定ファイル16から取得するようにしているので、ユーザーは状況に応じて遡及時間メモリー14aに設定する値を容易に調整できる。
次にCPU12は、読取処理S200を実行する。ここで、図7を参照して読取処理S200を説明する。読取処理S200では、主に、アンテナ82a、82bが読み取った通い箱ID91aや従業者ID96aを変換して受入リーダー80aまたは出荷リーダー80bから送信された読取情報200の処理が行われる。
読取処理S200においてCPU12は、モニター30に読取中画面300(図4(a))を表示させる(S201)。これにより、ユーザーに対して読取情報200を処理する手順をCPU12が実行中であることが示される。
CPU12は読取中画面300をモニター30に表示させると、受入リーダー80aまたは出荷リーダー80bから読取情報200を受信しているか否かを判断する(S202)。CPU12は、読取情報200を受信していると判断した場合(S202:Yes)、通い箱IDメモリー14cに受信した読取情報200の通い箱ID201の値を設定し、従業者IDメモリー14dに受信した読取情報200の従業者ID202の値を設定する(S203)。なお、S203において読取情報200の従業者ID202がNULL値の場合、CPU12は従業者IDメモリー14dをNULL値に初期化する。
次にCPU12は、読取情報200の送信元が受入リーダー80aであるか否かを判断する(S204)。CPU12は、読取情報200の送信元が受入リーダー80aであると判断した場合(S204:Yes)、工程メモリー14bの文字列を「受入」に更新する(S205)。一方、CPU12は、読取情報200の送信元が受入リーダー80aでない、即ち、読取情報200の送信元が出荷リーダー80bであると判断した場合(S204:No)、工程メモリー14bの文字列を「出荷」に更新する(S206)。S204、S205、S206の処理がCPU12によって実行されることにより、工程メモリー14bには、読取情報200が受入リーダー80aまたは出荷リーダー80bのいずれから送信されたかを示す値、換言すれば、通い箱ID201により識別される通い箱90が受入場101または出荷場102のいずれを通過したのかを示す値が設定される。
CPU12はS205またはS206の処理の次に、図8に示す更新処理S300を実行する。ここから、図8を参照して更新処理S300を説明する。更新処理S300は、受信した読取情報200の内容に基づいて通い箱テーブル17a内の情報を更新するための処理である。
更新処理S300では、CPU12は最初に時計18からその時点での日時を示す値を取得し、その取得した値を現在時刻メモリー14eに設定する(S301)。換言すれば、CPU12は、S301の処理において、現在時刻メモリー14eに記憶された内容をその時点での日時を示す値に更新する。
次にCPU12は通い箱テーブル17aの更新対象のレコードを位置づける(S302)。ここで「位置づける」とはリレーショナルデータベースの分野で「カーソル」として知られる公知の技術であり、複数のレコードのうちの1つを以降実行する参照処理または更新処理のために特定することを指す。以下の説明において「位置づける」との表現を用いた場合も同様である。
なお、S302の処理について、具体的には、CPU12は、通い箱テーブル17aのレコードのうち、通い箱ID17a1が通い箱IDメモリー14cの値と同一のレコード、即ち、通い箱IDメモリー14cの値により識別される通い箱90に関する情報を有するレコードに位置づける。
次にCPU12は、位置づけられたレコードの状態17a4が工程メモリー14bの値と同一か否かを判断する(S303)。詳しくは後述するが、状態17a4とは、当該レコードを前回更新した際の工程メモリー14bの値が設定されるフィールドである。本実施例においては一の通い箱90については、受入場101と出荷場102とを交互に通過することが前提であるが、状態17a4と工程メモリー14bの値とが同一の値である場合は、受入場101または出荷場102のいずれかにおいて重複して通い箱タグ91から通い箱ID91aが読み取られた異常状態であると予想される。したがって、CPU12は、S303の判断において状態17a4と工程メモリー14bの値が同一であると判断した場合は(S303:Yes)、S304からS314までの処理をスキップして、次の手順である履歴記録処理S400へと進む。S303の判断に基づいてS304からS314までの処理をスキップすることで、不正な情報に基づいて通い箱テーブル17aが更新されることを回避できる。
CPU12は状態17a4と工程メモリー14bの値とが同一でないと判断した場合(S303:No)、状態17a4を工程メモリー14bの値に更新する(S304)。これにより、状態17a4には、そのレコードの通い箱ID17a1により識別される通い箱90が最終的に受注場101または出荷場102のいずれを通過したのかを示す値が設定される。状態17a4の値を参照すれば通い箱90の所在を容易に知ることができる
次にCPU12は、工程メモリー14bの値が「受入」であるか否かを判断する(S305)。
CPU12は、工程メモリー14bの値が「受入」であると判断した場合(S305:Yes)、S302の処理で位置づけたレコードの平均稼働時間17a6を更新する(S306)。平均稼働時間17a6は、前述した通り、通い箱90が倉庫100外で使用される平均日数であり、換言すれば、通い箱90が出荷場102を通過してから受入場101に至る平均日数である。
S306において、CPU12は、具体的には、平均稼働時間17a6を、「(平均稼働時間17a6×回転数17a3+(現在日時メモリー14e−最終読取日時17a5))÷(回転数17a3+1)」の計算式で算出した値に更新する。この計算式は、「平均稼働時間17a6×回転数17a3」の部分が前回までにS306が実行されることにより算出された平均稼働時間17a6の影響を、「現在日時メモリー14e−最終読取日時17a5」の部分が今回、通い箱90が出荷場102から受注場101に至る時間の影響を、それぞれ表し、CPU12はS306において、これらの時間の平均値として、新たに平均稼働時間17a6に設定すべき値を算出する。なお、ここで述べたように、日時を示す値同士の減算が2つの日時の時間間隔を示すのは、本明細書の他の箇所においても同様である。
前述した通り、本実施例では、前回までに計算された平均値(平均稼働時間17a6)とサンプル数(回転数17a3)を利用して新たな平均値を計算している。これにより、過去の全サンプルの値(出荷場101から受入場101に至るのに要した時間)を記憶しなくても、平均稼働時間17a6を更新できるので、コンピューター10における記憶資源や計算資源を節約できる。
S306の処理の次に、CPU12は、回転数17a3に1を加算して更新する(S307)。これにより、回転数17a3に記憶された値によって、通い箱90が受注場101を通過した回数を把握できる。また、通い箱90が出荷場102を通過した回数は、回転数17a3から1を減じることで得られる。
次に、CPU12は、種別テーブル17bから限界回転数17b3の値を取得する(SS308)。前述したが、限界回転数17b3とは、通い箱90の耐用限界である循環流通の回数を示す値であり、通い箱90の種別に応じて予め定められるものである。具体的には、CPU12は、S308において、S302で位置づけた通い箱テーブル17aのレコードの種別17a2と一致する種別17b1を有する種別テーブル17bのレコードから限界回転数17b3を取得する。
CPU12は、取得した限界回転数17b3を用いて、回転数17a3が限界回転数17b3より大きいかを判断する(S309)。即ち、S309の判断においては、対象の通い箱90が耐用限界を超えているか否かが判断される。
CPU12は、回転数17a3が限界回転数17b3より大きいと判断した場合(S309:Yes)、通い箱90は廃棄すべきものであるため、スピーカー33に警報音を再生させる(S310)。これにより、作業者等に廃棄すべき通い箱90の存在を知らせることができるので、耐用限界を迎えた通い箱90を確実に破棄できる。
次にCPU12は、S302で位置づけた通い箱テーブル17aのレコードの予測廃棄日17a8を、現在日時メモリー14eの値が示す日付に更新する(S311)。これは、通い箱90が既に廃棄すべき状態に至っているため、今現在の日時を通い箱90の廃棄が予測される日として設定する措置である。
一方、S309の判断において、CPU12は、回転数17a3は限界回転数17b3以下であると判断した場合(S309:No)、対象とする通い箱90の廃棄が予測される日付を計算し、予測廃棄日17b8を計算した日付に更新する(S312)。具体的には、CPU12は、予測廃棄日17a8を、現在日時メモリー14eの示す日付に対して「(平均稼働時間17a6+平均滞留時間17a7)×(限界回転数17b3−回転数17a3−1)」の計算式で算出される期間(日数)を進めた日付に更新する。この計算式において、「平均稼働時間17a6+平均滞留時間17a7」の部分は、通い箱90の1回の循環流通の平均時間に相当し、「限界回転数17b3−回転数17a3−1」の部分は、通い箱90が耐用限界を迎えるまでの循環流通の回数に相当する。
このように、通い箱90が1回の循環流通に要する平均の時間間隔と、耐用限界を迎えるまでの循環流通の回数とを用いて当該通い箱90が耐用限界を迎えると予測される時期を算出しているので、通い箱90を管理する者は、通い箱90の廃棄時期を容易に認識できる。例えば、耐用限界までの循環流通の回数のみの把握では、いつごろ当該通い箱90が廃棄されるのかを認識することは困難であるが、本実施例では通い箱90の廃棄時期を具体的に知ることができる。
S305に戻って説明する。S305において、CPU12は、工程メモリー14bが「受入」ではない、即ち、工程メモリー14bが「出荷」であると判断した場合(S305:No)、S302で位置づけた通い箱テーブル17aのレコードの平均滞留時間17a7を更新する(S313)。具体的には、CPU12は、平均滞留時間17a7を、「(平均滞留時間17a7×(回転数17a3−1)+(現在日時メモリー14e−最終読取日時17a5))÷回転数17a3」の計算式で算出した値に更新する。この計算式は、「平均滞留時間17a7×(回転数17a3−1)」の部分は前回までにS313が実行されることにより算出された平均滞留時間17a7の影響を、「現在日時メモリー14e−最終読取日時17a5」の部分は今回通い箱90が出荷場102から受注場101に至るのに要した時間の影響を、それぞれ表し、CPU12はS313において、これらの時間の平均値として、新たに平均滞留時間17a7に設定する値を算出している。
ここでの平均滞留時間17a7の算出も、前述した平均稼働時間17a6の算出(S306)と同様、過去に算出した平均値とサンプル数とを利用して、新たな平均値を算出しているので、コンピューター10の記憶資源や計算資源をより節約できる。
CPU12は、S311、S312またはS313のいずれかの処理を実行した後、S302で位置づけた通い箱テーブル17aのレコードの最終読取日時17a5を現在日時メモリー14eの値に更新する(S314)。ここまで説明したS301からS313の処理がCPU12に実行されることにより、受信した読取情報200に基づく通い箱テーブル17aの更新が完了する。
CPU12は、S314を実行した後、通い箱90が受入場101または出荷場102のいずれかを通過した記録を残すべく、履歴記録処理S400を実行する。ここで、図9を参照して履歴記録処理S400を説明する。
履歴記録処理S400では、CPU12はまず履歴テーブル17cに新たなレコードを作成し、そのレコードを以降の処理対象とする(S401)。CPU12は、S401で作成したレコードについて、通い箱ID17c1を通い箱IDメモリー14cの値に、日時17c2を現在日時メモリー14eの値に、工程17c3を工程メモリー14bの値にそれぞれ更新する(S402)。これにより、通い箱ID91a(通い箱ID17c1)がアンテナ82aまたはアンテナ82bに読み取られた履歴、換言すれば、通い箱90が受入場101または出荷場102を通過した履歴を履歴テーブル17cに記憶させることができる。
次にCPU12は、従業者IDメモリー14dがNULL値であるか否かを判断する(S403)。CPU12が従業者メモリー14dはNULL値であると判断する場合(S403:Yes)、アンテナ82a、82bによって通い箱ID91aと併せて従業者ID96aが読み取られておらず、通い箱ID91a(通い箱ID17c1)に関連付ける従業者ID17c4の値が存在しない。したがって、CPU12は、S403の判断を肯定した場合(S403:Yes)、従業者ID17c4にNULL値を設定する(S410)。
次にCPU12は、工程メモリー14bが「受入」である場合には(S411:Yes)受入従業者IDメモリー14fをNULL値に更新し(S412)、工程メモリー14bが「受入」でない場合、即ち、工程メモリー14bが「出荷」である場合には(S411:No)出荷従業者IDメモリー14gをNULL値に更新する(S413)。
CPUはS412またはS413を実行した場合、履歴記憶処理S400を終了する。
S403に戻り説明する。CPU12はS403の判断において、従業者IDメモリー14dはNULL値ではないと判断した場合(S403:No)、S401で作成したレコードの従業者ID17c4を従業者IDメモリー14dの値に更新する(S404)。これにより、通い箱ID17c1と従業者ID17c4とを履歴テーブル17cにおいて関連付けて記憶することができる。このようにして履歴テーブル17cに記憶されたレコードを参照することで、通い箱90と、従業者(不図示)とを、通い箱ID17c1と従業員ID17c4とによって関連付けて認識することができるので、通い箱90のトレーサビリティ管理にも有用である。
次に、CPU12は、工程メモリー14bが「受入」であるか否かを判断する(S405)。CPU12は、工程メモリー14bが「受入」であると判断した場合(S405:Yes)、従業者IDメモリー14bと受入従業者IDメモリー14fとが一致するか否かを判断する(S406)。受入従業者IDメモリー14fの値は、受入場101で作業する従業者のものとして次に説明するS407で更新される値である。従って、S406の判断では、従前把握していた受入従業者IDメモリー14fと異なる従業者ID96aが受入場101のアンテナ82aによって読み取られたか否かの判断がなされる。
CPU12は、従業者IDメモリー14dが受入従業者IDメモリー14fと一致すると判断した場合(S406:Yes)、受入場101で読み取られた従業者ID96aに変化はなく、後で説明する遡及更新処理S500は不要と判断して、履歴記録処理S400を終了する。
一方、CPU12は、従業者IDメモリー14dと受入従業者IDメモリー14fとが一致しないと判断した場合(S406:No)、まず、受入従業者IDメモリー14fを従業者IDメモリー14dの値に更新する。次に、CPU12は、図10に示す遡及更新処理S500を実行してから履歴記録処理S400を終了する。なお、遡及更新処理S500の詳細については、後述する。
S405の判断において、CPU12は工程メモリー14bが「受入」でない、即ち、工程メモリー14bが「出荷」であると判断した場合(S405:No)、従業者IDメモリーと出荷従業者IDメモリー14gが一致しなければ(S408:No)、出荷従業者イDメモリー14gを従業者IDメモリー14dの値に更新し、遡及更新処理S500を実行して、履歴記録処理S400を終了する。一方、従業者IDメモリー14dと出荷従業者IDメモリー14gとが一致すると判断した場合(S408:Yes)、CPU12は、S409、S500をスキップして履歴記録処理S400を終了する。
ここまで説明した履歴記録処理S400では、S406またはS408の判断により、従業員IDメモリー14bの値が、従前取得された従業員IDの値(受入従業員IDメモリー14fまたは出荷従業員IDメモリー14g)と異なる場合に限り、遡及更新処理S500が実行されるようにしている。従って、従業員IDメモリー14bの値が従前と変わらない場合にまで遡及更新処理S500が実行されることがないため、コンピューター10の計算資源を有効活用できる。
次に図10を参照して前述した遡及更新処理S500を説明する。遡及更新処理S500は、履歴テーブル17cのレコードのうち、従業者ID17c4がNULL値とされたレコードについて、その従業者ID17c4を更新する処理である。
遡及更新処理S500では、CPU12はまず、履歴テーブル17cの最初のレコードに位置づける(S501)。次にCPU12は、位置づけたレコードの従業者ID17c4がNULL値であるか否かを判断する(S502)。CPU12は従業者ID17c4がNULL値であると判断した場合(S502:Yes)、工程17c3が工程メモリー14bの値と一致するか否かを判断する(S503)。CPU12は、工程17c3と工程メモリー14bの値と一致すると判断した場合(S503:Yes)、日時17c2と現在日時メモリー14e時間間隔、即ち、履歴テーブル17cの当該レコードが作成されてから今現在までの期間が、遡及時間メモリー14aより小さいか否かを判断する(S504)。
CPU12は、日時17c2と現在日時メモリー14e時間間隔が遡及時間メモリー14aの値以下であると判断した場合(S504:Yes)、当該レコードの従業者ID17c4を従業者IDメモリー14dの値に更新する(S505)。
一方、CPU12は、前述したS502、S503、S504のいずれかの判断を否定した場合には、S505の処理をスキップする。
CPU12は、履歴テーブル17cに未処理のレコードがある場合は(S506:Yes)、履歴テーブル17cの次のレコードに位置づけてS502から処理を繰り返す。一方、履歴テーブル17cに未処理のレコードがなければ(S506:No)、CPU12は、遡及更新処理S500の実行を終了する。
ここまでに説明した遡及更新処理S500における処理を換言すると、CPU12は、履歴テーブル17cのレコードのうち、従業者ID17c4がNULL値であり(S502:Yes)、工程17c3が工程メモリー14bの値と一致し(S503:Yes)、日時17c2と現在時刻メモリー14eとの時間間隔が遡及時間メモリー14a以下である場合(S504:Yes)に、S505の処理を実行して、従業者ID17c4を従業者IDメモリー14dの値に更新する。
遡及更新処理S500によれば、履歴記録処理S400において従業員ID17c4を設定できなかった履歴テーブル17cのレコードに対して、従業員ID17c4を後から遡及的に設定することができる。例えば、何らかの理由で通い箱ID91aと同時に従業者ID96aがアンテナ82aで読み取られなかったとしても、その後に読み取られた従業者ID96aに基づいて、従業員ID17c4に値が設定されるので、履歴テーブル17cが記憶する内容の精度を向上させることができる。
また、本実施例では、従業員ID17c4の遡及的な更新を遡及時間メモリー14cの値で示す時間間隔までに限っている。これにより、本来は履歴テーブル17cにおいて通い箱ID17c1に関連付けるべきでない値が従業者ID17c4に設定されることを抑制できる。前述したとおり、遡及時間メモリー14aの値は設定ファイル16から取得される遡及時間16aであり、例えば「5分」など、倉庫100における業務の態様によって適宜調整すればよい。
CPU12は、遡及更新処理S500、履歴記録処理S400および更新処理S300の実行を終了すると、読取処理S200(図7)の実行に戻って、S202から処理を繰り返す。CPU12は、読取処理S200において読取情報200の受信がないと判断した場合(S202:No)、モニター30に表示された読取中画面300上に配置されたボタン要素がクリック操作されたか否かを判断する(S207)。CPU12は、ボタン要素のクリック操作はないと判断した場合(S207:No)、S202へと戻って処理を繰り返す。
一方、CPU12は読取中画面300上のボタン要素のクリック操作があったと判断した場合(S207:Yes)、クリック操作されたボタン要素がいずれのものかを判断する(S208)。CPU12は、クリック操作されたのがデータ参照ボタン301であると判断した場合には(S208:データ参照)後述する機能選択処理S1000を実行し、他方、クリック操作されたのが終了ボタン302であると判断した場合には(S208:終了)読取処理S200を終了する。CPU12は、読取処理S200の実行の終了に続いてメイン処理S100の実行を終了し、メイン処理S100の終了により、通い箱管理プログラム15bの実行を終了する。
次に、図11を参照して機能選択処理S1000を説明する。機能選択処理S1000は、前述した通り、読取処理S200においてデータ参照ボタン301がクリック操作されたと判断された場合(S208:データ参照)に呼び出される処理であり、モニター30に機能選択画面S320を表示させて、ユーザーによる機能の選択を受け付けるためのものである。
機能選択処理S1000では、CPU12はまずモニター30に機能選択画面320(図4(b)参照)を表示させ(S1001)、マウス32によるボタン要素のクリック操作があるまで待機する(S1002:No)。
CPU12は、ボタン要素のクリック操作があったと判断した場合(S1002:Yes)、いずれのボタン要素がクリック操作されたのかを判断する(S1003)。
CPU12は、クリック操作されたのが履歴表示ボタン321であると判断した場合(S1003:履歴表示)は図12に示す履歴表示処理S1100を実行し、クリック操作されたのが不足予測ボタン322であると判断した場合(S1003:不足予測)は図13に示す不足予測処理S1200を実行する。CPU12は、履歴表示処理S1100または不足予測処理S1200の実行を終了した場合は、S1001に戻って処理を繰り返す。
S1003の判断において、CPU12はクリック操作されたのが終了ボタン323であると判断した場合(S1003:終了)、機能選択処理S1000を終了し、読取処理S200の実行へと戻る。
次に図12を参照して履歴表示処理S1100を説明する。履歴表示処理S1100は、モニター30に履歴表示画面330(図5(a)参照)を表示させて、履歴テーブル17cに記憶された内容をユーザーに示すための処理である。
CPU12はまず、モニター30に履歴表示画面330を表示させ(S1101)、次に、履歴テーブル17cの最初のレコードに位置づける(S1102)。
CPU12は、位置づけられたレコードの通い箱ID17c1、日時17c2、工程17c3、従業者ID17c4を履歴表示画面330の履歴表示部331に表示する(S1103)。前述したとおり、履歴表示部331は表形式で構成され、CPU12は、一のレコードに対応する内容が一の行となるように表示を制御する。
次にCPU12は、履歴テーブル17cに未処理のレコードがあるかを判断する(S1104)。CPU12は未処理のレコードがあると判断した場合(S1104:Yes)、履歴テーブル17cの次のレコードに位置づけて、S1103から処理を繰り返す。一方、CPU12は、履歴テーブル17cに未処理のレコードは無いと判断した場合(S1104:No)、ユーザーによる戻るボタン332のクリック操作があるまで待機し(S1106:No)、戻るボタン332のクリック操作があった場合に(S1106:Yes)、履歴表示処理S1100を終了して機能選択処理S1000の実行へと戻る。
このようにして履歴表示処理S1100の実行によってモニター30に表示された履歴表示画面330を参照すれば、ユーザーは容易に通い箱90の個々について、受入場101または出荷場102を通過した履歴、及び、その通過した際に作業に従事していた従業者を知ることができる。また、前述したとおり、履歴テーブル17cの従業者ID17c4は遡及更新処理S500(図10)の効用により、精度よく記録されているので、ユーザーはより一層信頼できる情報を取得できる。
次に図13を参照して不足予測処理S1200を説明する。不足予測処理S1200は、通い箱90の種別ごとに、通い箱90の数が不足すると予測される時期、即ち、予測不足日を計算し、その計算結果等をモニター30に表示してユーザーに示す処理である。
不足予測処理S1200では、CPU12はまず、モニター30に不足予測画面340(図5(b)参照)を表示させる(S1201)。
次にCPU12は、通い箱テーブル17aからレコードを抽出する順序を設定する(S1202)。具体的には、通い箱テーブル17aから、種別17a2の昇順の下、廃棄予定日17a8の降順となるように設定する。なお、ここでいう順序の設定とは、SQLとして知られる公知の技術を用いることができる。
次に、CPU12は、S1202で設定された順序の下で通い箱テーブル17aの最初のレコードに位置づける(S1203)。その後、CPU12は、種別メモリー14hに、位置づけられたレコードの種別17a2の値を設定する(S1204)。これにより、種別メモリー14hには、現在処理している種別17a2の値が保持される。
次にCPU12は、種別メモリー14hに保持された値の種別についての集計を開始すべく、稼働数メモリー14i、滞留数メモリー14j、合計数メモリー14k、予測不足日メモリー14mをそれぞれ初期化する(S1205)。ここでいう「初期化」とは、稼働数メモリー14i、滞留数メモリー14j、合計数メモリー14kについては0(ゼロ)を設定することをいい、予測不足日メモリー14mについては十分に現在から離れた未来の日付(例えば100年後の日付など)を設定することをいう。
次に、CPU12は、種別テーブル17bから必要数17b2を取得する(S1206)。より具体的には、CPU12は、種別メモリー14hと一致する種別17b1を有する種別テーブル17bのレコードから必要数17b2を取得する。
次に、CPU12は、位置づけられた通い箱テーブル17aのレコードの状態17b4が「受入」であるか否かを判断する(S1207)。即ち、S1207では、当該レコードの通い箱ID17a1で識別される通い箱90が、倉庫100外で稼働しているのか、倉庫100内に滞留しているのか、が判断される。
CPU12は、状態17a4が「受入」であると判断した場合には(S1207:Yes)、滞留数メモリー14jに1を加算して更新する(S1208)。一方、CPU12は、状態17a4が「受入」でない、即ち、「出荷」であると判断した場合は(S1207:No)、稼働数メモリー14iに1を加算して更新する(S1209)。CPU12は、S1208またはS1209を実行した後、合計数メモリー14kに1を加算して更新する(S1210)。
次にCPU12は、合計数メモリー14kの値がS1206で取得した必要数17b2の値より小さいか否かを判断する(S1211)。CPU12は、合計数メモリー14kの値が必要数17b2より小さいと判断した場合(S1211:Yes)、予測不足日メモリー14mを位置づけられている通い箱テーブル17aのレコードの予測廃棄日17a8の値で更新する(S1212)。一方、CPU12は、合計数メモリー14kの値が必要数17b以上であると判断した場合には、S1212の処理をスキップする。
その後、CPU12は、通い箱テーブル17aに未処理のレコードがあるかを判断し(S1213)、未処理のレコードがあると判断した場合(S1213:Yes)、S1202で設定した順序に従って通い箱テーブル17aの次のレコードに位置づける(S1214)。
次にCPU12は、位置づけられたレコードの種別17a2が種別メモリー14hと一致するか否かを判断する(S1215)。CPU12は、種別17a2と種別メモリー14hとが同一であると判断した場合は(S1215:Yes)、通い箱90の同一の種別についての集計を継続できるものとして、S1207から処理を繰り返す。
一方、CPU12は種別17a2と種別メモリー14hとが一致しないと判断した場合(S1215:No)、ここまでに行った処理による計算の結果をモニター30に表示させる(S1216)。より具体的には、CPU12はS1216の処理において、不足予測画面340(図5(b)参照)の結果表示部341に、種別メモリー14h、稼働数メモリー14i、滞留数メモリー14j、合計数メモリー14k、予測不足日メモリー14mの値を一の行として表示する。
CPU12は、S1216の表示処理を行った後、種別メモリー14hを位置づけられたレコードの種別14a2の値に更新して(S1214)、S1205以降の処理を繰り返す。
S1213の判断において、CPU12は通い箱テーブル12aに未処理のレコードはないと判断した場合(S1213:No)、前述したS1216の処理と同様に種別メモリー14h、稼働数メモリー14i、滞留数メモリー14j、合計数メモリー14k、予測不足日メモリー14mの値をモニター30上の結果表示部341に表示させる(S1217)。
その後、CPU12は、戻るボタン342がクリック操作されるまで待機し(S1218:No)、戻るボタン342がクリック操作された場合に(S1218:Yes)不足予測処理S1200を終了する。不足予測処理S1200を終了した場合、CPU12は機能選択処理S1000の実行へと戻る。
このようにして不足予測処理S1200の実行によりモニター30に表示された不足予測画面340を参照することで、ユーザーは、通い場90を種別ごとにその数(稼働数、滞留数、合計数)を把握できるのみならず、その種別ごとに不足すると予測される時期を容易に把握できる。例えば、不足予測画面340を参照するユーザーが通い箱90の在庫管理をする者である場合、通い箱90の補充時期や補充数量を結果表示部341の表示内容に基づいて容易に判断できるため、至便である。
以上説明した本実施例の通い箱管理システム1によれば、通い箱90が耐用限界を迎えて破棄されると予測される時期を容易に知ることができる。また、通い箱90を種別ごとに、その保有数が所定の数を下回る、即ち、不足すると予測される時期を簡便に知ることができるので、ユーザーは効率よく通い箱90の在庫管理を行うことができる。
通い箱管理システム1では、通い箱管理プログラム15bを実行するCPU12によって、履歴テーブル17cの従業員ID17c4が遡及的に更新されるので、情報が不完全なままとされることが抑制される。従って、履歴テーブル17cから精度よく、通い箱90の循環流通の履歴を取得することができる。
なお、ここまで実施例に基づいて本発明を説明したが、本発明の実施としてはこれに限定されないことはいうまでもない。
例えば、本実施例では受入場101と出荷場102のそれぞれにアンテナ82a、82bを設置することを説明したが、受入場101にのみアンテナ82aを設置してもよい。この場合、通い箱90の循環流通は受入場101でのみ把握することとなるので、通い箱テーブル17aの平均稼働時間17a3および平均滞留時間17a4は1つの値として平均の循環時間を算出、記憶するようにすればよい。また、更新処理S300(図8)における平均稼働時間17a3や平均滞留時間17a4の算出は、前述した平均の循環時間の算出に代えればよい。
また、本実施例では、平均稼働時間17a3および平均滞留時間17a4として、「平均値」を算出することを説明したが、通い箱90の循環流通に要する時間を把握するために別の統計値を用いることは言うまでもない。例えば、直近の値を優先すべく重み付けを含む平均値として算出したり、最頻値や最大値等の公知の統計手法から選択したりすることが可能である。また、廃棄予定日17a8や予測不足日として具体的な日付を計算することを説明したが、これはあくまで例示であり、年月などの時期や、より具体的な時刻、または、現在からの時間間隔を計算するようにしてもよい。
また、本実施例では、履歴テーブル17cにおいて、通い箱ID17c1に関連付ける情報として、従業者を識別する従業者ID17c4を説明したが、通い箱ID17c1に関連付ける情報としては、他の情報であってもよい。例えば従業者ID17c4に代えて、倉庫100外での行き先を示す情報や、通い箱90に収容する荷物を示す情報であってもよい。
また、アンテナ82a、82bがRFID方式で読み取った通い箱ID91aおよび従業者ID96aは受入リーダー80a、出荷リーダー80bから読取情報200としてLAN50を介してコンピューター10に入力されることを説明したが、通い箱ID91aおよび従業者ID96aをコンピューター10に入力する方法としては、他の手段を用いることもできる。例えば、コンピューター10にバーコードリーダーを接続し、通い箱90に付されたバーコードから通い箱ID91aを読み取るようにしてもよい。なお、通い箱ID91aと従業員ID96aとは、本実施例のように同じ方式(即ち、RFID)での取得するように構成してもよいし、例えば、通い箱ID91aはバーコード、従業員ID96aはRFIDと、それぞれ異なる方式で取得するように構成してもよい。
また、本実施例の通い箱管理プログラム15aは一のプログラムであることを説明したが、機能に応じて分割した複数のプログラムとすることも当然可能である。または、通い箱テーブル17a等、通い箱管理プログラム15bの実行に用いる情報をコンピューター10内のハードディスク15に保持することを説明したが、例えば、LAN50を介して接続されるサーバーや、インターネット上のクラウドストレージに情報を保持するようしてもよい。この場合は、NIC19がコンピューター10における記憶装置としての役割を果たす。同様に、時計18を利用して時刻を取得する点も、LAN50を介して接続された他の装置から時刻を取得する場合には、NIC19が時刻取得装置としての役割を果たす。
通い箱管理システム1では、箱状の通い箱90を管理の対象として説明したが、パレットや包装容器など、種々の運搬資材を本発明における管理対象とできることは言うまでもない。