"流通する製品に関する情報であるプロダクト情報を取得するプロダクト情報取得部と、上記製品の荷姿に付与された荷姿IDを取得する荷姿ID取得部と、上記荷姿ID取得部により取得された上記荷姿IDに対して仮想IDを発行する仮想ID発行部と、上記プロダクト情報と上記仮想IDとを紐付けて第1の紐付テーブルに記憶させる第1の紐付処理部と、上記荷姿IDと上記仮想IDとを紐付けて第2の紐付テーブルに記憶させる第2の紐付処理部と、上記製品の移動に伴う上記荷姿IDの変化によって上記仮想ID発行部により新たな仮想IDが発行されたときに、製品移動前後の仮想IDどうしの親子関係を紐付けて第3の紐付テーブルに記憶させる第3の紐付処理部とを備えたことを特徴とする製品追跡システム。上記製品が載置された拠点内ロケーションに付与されたロケーションIDを取得するロケーションID取得部と、上記ロケーションID取得部により取得された上記ロケーションIDと、上記拠点内ロケーションの載置された製品の荷姿IDに対応する上記仮想IDとを紐付けて第4の紐付テーブルに記憶させる第4の紐付処理部とを更に備えたことを特徴とする請求項1に記載の製品追跡システム。上記製品の移動に伴い荷姿が分割される場合、分割後のそれぞれの荷姿に含まれる製品の個数を取得する製品数取得部と、上記製品数取得部により取得された製品の個数に基づいて、上記第1の紐付テーブルに記憶されている上記プロダクト情報を更新するプロダクト情報更新部とを更に備えたことを特徴とする請求項1に記載の製品追跡システム。上記製品の移動に伴い荷姿が分割される場合、分割後のそれぞれの荷姿に含まれる製品の個数を取得する製品数取得部と、上記製品数取得部により取得された製品の個数に基づいて、上記第1の紐付テーブルに記憶されている上記プロダクト情報を更新するプロダクト情報更新部とを更に備えたことを特徴とする請求項2に記載の製品追跡システム。上記製品の移動に伴い上記荷姿ID取得部により新たな荷姿IDが取得されたときに、上記製品数取得部により上記製品の個数が取得されている場合、上記仮想ID発行部は新たな仮想IDを発行し、上記第2の紐付処理部は上記新たな荷姿IDと上記新たな仮想IDとを紐付けて上記第2の紐付テーブルに記憶させ、上記第3の紐付処理部は、製品移動前の荷姿IDに紐付けられている仮想IDと、製品移動後の上記新たな荷姿IDに紐付けられた上記新たな仮想IDとの間に親子関係を紐付けて上記第3の紐付テーブルに記憶させることを特徴とする請求項3に記載の製品追跡システム。上記製品の移動に伴い上記荷姿ID取得部により新たな荷姿IDが取得されたときに、上記製品数取得部により上記製品の個数が取得されていない場合、上記仮想ID発行部は新たな仮想IDを発行せず、上記第2の紐付処理部は、上記新たな荷姿IDと製品移動前の荷姿IDに紐付けられている上記仮想IDとを紐付けて上記第2の紐付テーブルに記憶させることを特徴とする請求項3または5に記載の製品追跡システム。上記製品の移動に伴い上記ロケーションID取得部によりロケーションIDが取得されたときに、上記製品数取得部により上記製品の個数が取得されている場合、上記仮想ID発行部は新たな仮想IDを発行し、上記第2の紐付処理部は上記ロケーションIDと上記新たな仮想IDとを紐付けて上記第4の紐付テーブルに記憶させ、上記第3の紐付処理部は、製品移動前の荷姿IDに紐付けられている仮想IDと、製品移動後の上記ロケーションIDに紐付けられた上記新たな仮想IDとの間に親子関係を紐付けて上記第3の紐付テーブルに記憶させることを特徴とする請求項4に記載の製品追跡システム。上記製品の移動に伴い上記ロケーションID取得部によりロケーションIDが取得されたときに、上記製品数取得部により上記製品の個数が取得されていない場合、上記仮想ID発行部は新たな仮想IDを発行せず、上記第2の紐付処理部は、上記ロケーションIDと製品移動前の荷姿IDに紐付けられている上記仮想IDとを紐付けて上記第4の紐付テーブルに記憶させることを特徴とする請求項4または7に記載の製品追跡システム。上記製品の移動に伴い複数の荷姿が1つの荷姿に統合される場合、上記荷姿ID取得部は、統合後の荷姿に付与された新たな荷姿IDを取得し、上記仮想ID発行部は新たな仮想IDを発行し、上記第2の紐付処理部は上記新たな荷姿IDと上記新たな仮想IDとを紐付けて上記第2の紐付テーブルに記憶させ、上記第3の紐付処理部は、統合前の複数の荷姿IDに紐付けられているそれぞれの仮想IDと、統合後の上記新たな荷姿IDに紐付けられた上記新たな仮想IDとの間にそれぞれ親子関係を紐付けて上記第3の紐付テーブルに記憶させることを特徴とする請求項1または2に記載の製品追跡システム。流通する製品に関する情報であるプロダクト情報を取得するプロダクト情報取得手段、上記製品の荷姿に付与された荷姿IDを取得する荷姿ID取得手段、上記荷姿ID取得手段により取得された上記荷姿IDに対して仮想IDを発行する仮想ID発行手段、上記プロダクト情報と上記仮想IDとを紐付けて第1の紐付テーブルに記憶させる第1の紐付処理手段、上記荷姿IDと上記仮想IDとを紐付けて第2の紐付テーブルに記憶させる第2の紐付処理手段、および上記製品の移動に伴う上記荷姿IDの変化によって上記仮想ID発行手段により新たな仮想IDが発行されたときに、製品移動前後の仮想IDどうしの親子関係を紐付けて第3の紐付テーブルに記憶させる第3の紐付処理手段としてコンピュータを機能させることを特徴とするコンピュータ読み取り可能な製品追跡用プログラム。上記製品が載置された拠点内ロケーションに付与されたロケーションIDを取得するロケーションID取得手段、および上記ロケーションID取得手段により取得された上記ロケーションIDと、上記拠点内ロケーションの載置された製品の荷姿IDに対応する上記仮想IDとを紐付けて第4の紐付テーブルに記憶させる第4の紐付処理手段としてコンピュータを更に機能させることを特徴とする請求項10に記載の製品追跡用プログラム。コンピュータを用いた情報処理技術により製品の流通経路を管理するシステムを用いれば、伝票や作業票などに記入した情報に基づいて流通経路を管理する場合に比べて、製品の流通経路を追跡する際の作業負担を軽減することができる。しかしながら、出庫や入庫などによって製品が移動する際には、その都度、プロダクト情報をコンピュータに手入力しなければならない。すなわち、流通経路の追跡を可能にするのに必要な情報構築のために、製品が移動する都度、プロダクト情報の手入力といった面倒な作業をしなければならないという問題があった。本発明は、このような問題を解決するために成されたものであり、製品の流通経路の追跡を可能にするのに必要な情報構築を行うために、製品が移動する都度のプロダクト情報の手入力といった面倒な作業をなくし、ユーザの作業負担を軽減できるようにすることを目的とする。上記した課題を解決するために、本発明では、流通する製品のプロダクト情報と、製品の荷姿に付与された荷姿IDとを取得し、荷姿IDに対して仮想IDを発行する。そして、プロダクト情報と仮想IDとを紐付けて第1の紐付テーブルに記憶させるとともに、荷姿IDと仮想IDとを紐付けて第2の紐付テーブルに記憶させる。さらに、製品の移動に伴う荷姿IDの変化によって新たな仮想IDが発行された場合、製品移動前後の仮想IDどうしの親子関係を紐付けて第3の紐付テーブルに記憶させるようにしている。上記のように構成した本発明によれば、最初に、製品のプロダクト情報および荷姿IDを取得すると、その荷姿IDに対して仮想IDが自動的に発行され、プロダクト情報と仮想IDとが紐付けられて管理されるとともに、荷姿IDと仮想IDとが紐付けられて管理される。その後、製品の流通過程で新たな荷姿IDを取得すると、当該新たな荷姿IDに対して仮想IDが自動的に発行され、新たに荷姿IDと仮想IDとが紐付けられて管理される。また、製品移動前後の荷姿IDにそれぞれ紐付けられた仮想IDの間に親子関係の紐付けが自動的に付されて管理される。そのため、製品の流通過程で付与される荷姿IDとそれに対して発行される仮想IDとの紐付け、および製品移動前後における仮想IDどうしの親子関係の紐付けを利用して、仮想IDの親子関係を辿ることにより、当該仮想IDに紐付けられた荷姿IDで特定される製品の流通経路を追跡することができる。これにより、製品のプロダクト情報と、最初に取得した荷姿IDに対して発行された仮想IDとの紐付けを第1の紐付テーブルに記憶させておけば、その後の製品の流通過程において、出庫や入庫などによって製品が移動する都度、プロダクト情報を手入力するといった面倒な作業をなくすことができる。したがって、製品の流通経路の追跡を可能とするために必要な情報構築を行う際の作業を簡便に行うことができ、ユーザの作業負担を軽減することができる。以下、本発明の一実施形態を図面に基づいて説明する。図1は、本実施形態による製品追跡システムの全体構成の概略を示す図である。図1に示すように、本実施形態の製品追跡システムは、サーバ100、ハンディ端末200およびパーソナルコンピュータ以下、PCと記す300を備え、ハンディ端末200およびPC300がインターネット400を介してサーバ100に接続可能に構成されている。本実施形態の製品追跡システムにおいて、サーバ100は1台備えられる。また、ハンディ端末200およびPC300は、工場、倉庫、店舗などの拠点ごとに少なくとも1台ずつ備えられる。ハンディ端末200およびPC300は、プロダクト情報、荷姿ID、場所ID、ロケーションID、検索キーなどの各種情報を入力する際に用いる。当該各種情報を入力する手段としては、キーボードやマウスなどの入力デバイス、バーコードリーダ、RFIDRadioFrequencyIDentificationなどを用いることが可能である。ここで、プロダクト情報は、流通する製品に関する情報であり、例えば、製品を識別するためのプロダクト番号、製品のロットを識別するためのロット番号、製品の製造年月日、賞味期限、製造元、数量などの情報を含んでいる。荷姿IDは、流通過程で1以上の製品をまとめて形成した荷姿搬送管理単位を識別するための情報である。荷姿の種類としては、パレット、カゴ台車、コンテナなどがある。以下では説明の簡略化のため、荷姿としてはパレットおよびコンテナの2つを用いるものとする。場所IDは、工場、倉庫、店舗などの各拠点を一意に識別するための情報である。ロケーションIDは、拠点内における製品の載置位置平置きエリア、棚などのロケーションを識別するための情報である。また、検索キーは、製品の流通経路を追跡する際に用いる情報である。例えば、プロダクト情報、荷姿ID、ロケーションID、入出庫のイベントが発生した日時などを検索キーとして用いることが可能である。ハンディ端末200およびPC300は、通信機能を備えており、キーボード、バーコードリーダ、RFIDなどによって入力されたプロダクト情報、荷姿ID、場所ID、ロケーションIDなどの各種情報を、入力された日時情報これがイベント発生日時を表すと共にインターネット400を介してサーバ100に送信する。なお、日時情報は、ハンディ端末200およびPC300が備える計時機能を用いて自動的に取得することが可能である。また、ハンディ端末200およびPC300は、後述するイベント情報も送信する。さらに、ハンディ端末200およびPC300は、検索キーもサーバ100に送信する。図2は、本実施形態によるサーバ100の機能構成例を示すブロック図である。なお、以下に示すサーバ100の各機能構成は、ハードウェア構成、DSPDigitalSignalProcessor、ソフトウェアの何れによっても実現することが可能である。例えばソフトウェアによって実現する場合、サーバ100の各機能構成は、CPUあるいはMPUが、ハードディスクなどの記録媒体に記憶された製品追跡用プログラムに従って動作することによって実現できる。上記製品追跡用プログラムを記録する記録媒体としては、ハードディスク以外に、ROM、フレキシブルディスク、磁気テープ、光ディスク、光磁気ディスク、DVDDigitalVersatileDisk、不揮発性メモリカードなどを用いることができる。また、上記製品追跡用プログラムをインターネット400などのネットワークを介してサーバ100にダウンロードするようにしてもよい。図2において、通信部11は、インターネット400を介してハンディ端末200またはPC300と通信をするものである。例えば、通信部11は、上述したプロダクト情報、荷姿ID、場所ID、ロケーションID、日時情報、イベント情報、検索キーなどの各種情報を受信する。また、通信部11は、検索キーを用いて検索処理部30後述するが行った流通経路の検索結果をハンディ端末200またはPC300に送信する。プロダクト情報取得部12は、通信部11により受信されたプロダクト情報を取得する。荷姿ID取得部13は、通信部11により受信された荷姿IDを取得する。ロケーションID取得部14は、通信部11により受信されたロケーションIDを取得する。場所ID取得部15は、通信部11により受信された場所IDを取得する。イベント情報取得部16は、通信部11により受信されたイベント情報および日時情報を取得する。仮想ID発行部17は、荷姿ID取得部13により取得された荷姿IDに対して仮想IDを発行する。また、仮想ID発行部17は、ロケーションID取得部14により取得されたロケーションIDに対して仮想IDを発行する。なお、仮想ID発行部17は、製品の初期登録の際には、荷姿ID取得部13により取得された最初の荷姿IDに対して仮想IDを必ず発行する。一方、初期登録の後、製品の入庫、出庫、積み替え、載置、取り出しなどを行う際には、仮想ID発行部17は、荷姿ID取得部13により取得された荷姿IDあるいはロケーションID取得部14により取得されたロケーションIDに対して、仮想IDを適宜発行する。仮想IDをどのような場合に発行し、どのような場合に発行しないかについての詳細は後述する。第1の紐付処理部18は、プロダクト情報取得部12により取得されたプロダクト情報と、仮想ID発行部17により発行された仮想IDとを紐付けて第1の紐付テーブル19に記憶させる。図3は、第1の紐付テーブル19の一例を示す図である。本実施形態では、製品のプロダクト番号、ロット番号、製造年月日、賞味期限、製造元、荷姿に含まれる製品の初期数量および現在数量などを含んだプロダクト情報と、仮想ID発行部17により発行された仮想IDとを紐付けて第1の紐付テーブル19に記憶している。なお、製品の初期数量とは、初期登録の際に荷姿に含まれていた製品の数量を指す。また、製品の現在数量とは、初期登録の後の流通過程における最新の製品の数量を指す。製品の流通過程で、1つの荷姿が2つ以上の荷姿に分割されることがある。荷姿が分割された場合には、分割後の荷姿に含まれる製品の数量は分割前より少なくなる。その場合、プロダクト情報で示される製品の現在数量は、初期数量よりも少ない値となる。このようなプロダクト情報の更新についての詳細は後述する。第2の紐付処理部20は、荷姿ID取得部13により取得された荷姿IDと、仮想ID発行部17により発行された仮想IDとを紐付けて第2の紐付テーブル21に記憶させる。また、荷姿IDに対して新たな仮想IDが仮想ID発行部17により発行されない場合は、第2の紐付処理部20は、荷姿ID取得部13により取得された荷姿IDと、第2の紐付テーブル21に既に記憶されている仮想IDとを紐付けて第2の紐付テーブル21に記憶させる。例えば、拠点内において、あるパレットから別のパレットへと製品の積み替えが行われる際、荷姿が分割も統合もされていない場合は、積み替え後のパレットの荷姿IDに対して新たな仮想IDが仮想ID発行部17により発行されない。この場合、第2の紐付処理部20は、積み替え後のパレットについて荷姿ID取得部13により新たに取得された荷姿IDと、積み替え前のパレットの荷姿IDに紐付けて第2の紐付テーブル21に既に記憶されている仮想IDとを紐付けて第2の紐付テーブル21に記憶させる。一方、製品の積み替えが行われる際に荷姿が分割されている場合は、分割後の荷姿に対して荷姿ID取得部13により新たな荷姿IDが取得され、その新たな荷姿IDに対して新たな仮想IDが仮想ID発行部17により発行される。また、複数の荷姿が1つの荷姿に統合されている場合も、統合後の荷姿に対して荷姿ID取得部13により新たな荷姿IDが取得され、その新たな荷姿IDに対して新たな仮想IDが仮想ID発行部17により発行される。これらの場合、第2の紐付処理部20は、これらの新たな荷姿IDと新たな仮想IDと紐付けて第2の紐付テーブル21に記憶させる。図4は、第2の紐付テーブル21の一例を示す図である。本実施形態では、荷姿ID取得部13により取得される荷姿IDの他に、場所ID取得部15により取得される場所IDも仮想IDに紐付けて第2の紐付テーブル21に記憶している。なお、紐付日時は、第2の紐付処理部20が紐付けを行った日時を指す。紐付解除日時は、第2の紐付処理部20が紐付けの解除を行った日時を指す。第3の紐付処理部22は、製品の移動に伴う荷姿IDの変化によって仮想ID発行部17により新たな仮想IDが発行されたときに、製品移動前後の仮想IDどうしの親子関係を紐付けて第3の紐付テーブル23に記憶させる。すなわち、第3の紐付処理部22は、製品移動後の荷姿IDに対して仮想ID発行部17により新たに発行された仮想IDと、製品移動前の荷姿IDに紐付けて第2の紐付テーブル21に既に記憶されている仮想IDとの親子関係を紐付けて第3の紐付テーブル23に記憶させる。図5は、第3の紐付テーブル23の一例を示す図である。本実施形態では、親子関係で紐付ける2つの仮想IDの他に、紐付日時、紐付場所ID、解除日時、解除場所IDを第3の紐付テーブル23に記憶している。なお、紐付場所IDは、仮想IDの親子関係の紐付けを行った拠点の場所IDを指す。紐付解除場所IDは、親子関係の紐付けの解除を行った拠点の場所IDを指す。第4の紐付処理部24は、拠点内ロケーションへの製品の載置に伴いロケーションID取得部14によりロケーションIDが取得されたときに、当該載置された製品の荷姿IDに対応する仮想IDと、ロケーションID取得部14により取得されたロケーションIDとを紐付けて第4の紐付テーブル25に記憶させる。ここで、仮想IDについては、仮想ID発行部17により新たな仮想IDが発行された場合にはそれを用い、発行されない場合には第2の紐付テーブル21に既に記憶されているものを用いる。例えば、製品が拠点内ロケーションに載置される際、荷姿が分割も統合もされていない場合は、ロケーションIDに対して新たな仮想IDが仮想ID発行部17により発行されない。この場合、第4の紐付処理部24は、載置される前の荷姿IDに紐付けて第2の紐付テーブル21に既に記憶されている仮想IDと、ロケーションID取得部14により取得されたロケーションIDとを紐付けて第4の紐付テーブル25に記憶させる。一方、荷姿が分割されている場合は、分割されて拠点内ロケーションに載置される荷姿に対してロケーションID取得部14によりロケーションIDが取得され、そのロケーションIDに対して新たな仮想IDが仮想ID発行部17により発行される。また、複数の荷姿が1つの拠点内ロケーションに統合されている場合は、統合されて拠点内ロケーションに載置される荷姿に対してロケーションID取得部14によりロケーションIDが取得され、そのロケーションIDに対して新たな仮想IDが仮想ID発行部17により発行される。これらの場合、第4の紐付処理部24は、これらの新たな仮想IDとロケーションIDとを紐付けて第4の紐付テーブル25に記憶させる。図6は、第4の紐付テーブル25の一例を示す図である。本実施形態では、ロケーションID取得部14により取得されるロケーションIDの他に、場所ID取得部15により取得される場所IDも仮想IDに紐付けて第4の紐付テーブル25に記憶している。また、紐付日時および紐付解除日時も第4の紐付テーブル25に記憶している。イベント履歴記録部26は、イベント情報取得部16により取得されるイベント情報に基づいて、製品の入出庫に関するイベントの履歴をイベント履歴テーブル27に記憶させる。図7は、イベント履歴テーブル27の一例を示す図である。本実施形態では、イベント情報取得部16により取得される入庫/出庫のイベント情報および日時情報の他に、ロケーションID、場所ID、仮想IDもイベント履歴テーブル27に記憶している。なお、ロケーションID、場所ID、仮想IDについては、ロケーションID取得部14、場所ID取得部15、仮想ID発行部17により取得されるもの、あるいは、第2の紐付テーブル21、第4の紐付テーブル25から取得されるものの何れかを適宜用いる。なお、入庫/出庫のイベント情報は、ハンディ端末200またはPC300において各種情報を入力する際に、何のイベントに関する情報入力かを選択するようになっている。すなわち、ハンディ端末200またはPC300には、図8に示すようなメニュー画面が表示される。このメニュー画面において初期登録、入庫、出庫、積み替え、載置、取り出しの何れかをユーザが選択した後、それぞれに必要な情報を入力する仕組みとなっている。ハンディ端末200またはPC300は、このメニュー画面において何が選択されたかに応じてイベント情報を自動的に取得し、サーバ100に送信する。サーバ100では、イベント情報取得部16がこのイベント情報を取得し、イベント履歴記録部26に供給する。これにより、イベント履歴記録部26がイベント情報をイベント履歴テーブル27に記憶させることができるようになっている。なお、図8では入出庫に関するイベント情報のみを記憶させているが、初期登録、積み替え、載置、取り出しに関するイベント情報を更に記憶させてもよい。ところで、製品の移動に伴い荷姿が分割される場合、分割後の荷姿に含まれる製品の個数は分割前より少なくなる。この場合、ハンディ端末200またはPC300では、分割後のそれぞれの荷姿に含まれる製品の個数を含んだプロダクト情報を入力し、サーバ100に送信する。サーバ100では、通信部11においてこのプロダクト情報を受信し、プロダクト情報取得部12が分割後の荷姿に含まれる製品の個数を取得する。このように、プロダクト情報取得部12は、特許請求の範囲における製品数取得部の機能を兼用している。プロダクト情報更新部28は、プロダクト情報取得部12製品数取得部により取得された製品の個数に基づいて、第1の紐付テーブル19に記憶されているプロダクト情報を更新する。具体的には、第1の紐付テーブル19において、プロダクト情報取得部12により取得されたプロダクト情報により示される製品のレコードをコピーして1つレコードを増やし、元のレコードと増やしたレコードとを分割後の2つの荷姿に割り当てる。そして、当該2つのレコードの現在数量で示される欄に対して、プロダクト情報取得部12製品数取得部により取得された、分割後のそれぞれの荷姿に含まれる製品の個数を記憶させる。なお、増やしたレコードについては、仮想ID発行部17により新たに発行された仮想IDを記憶させる。製品の移動に伴い荷姿ID取得部13により新たな荷姿IDが取得されたときに、プロダクト情報取得部12製品数取得部により製品の個数が取得されていない場合、例えば、製品の積み替えなどにより、荷姿が分割されずに製品が別のパレットに移動した場合、仮想ID発行部17は、当該別のパレットに対応して新たに取得された荷姿IDに対して、新たな仮想IDを発行しない。この場合、第2の紐付処理部20は、新たな荷姿IDと、製品移動前の荷姿IDに紐付けられている仮想IDとを紐付けて第2の紐付テーブル21に記憶させる。一方、製品の移動に伴い荷姿ID取得部13により新たな荷姿IDが取得されたときに、プロダクト情報取得部12製品数取得部により製品の個数が取得されている場合、例えば、荷姿が分割されて新たなパレットに製品の一部が移動した場合、仮想ID発行部17は、当該新たなパレットに対応して新たに取得された荷姿IDに対して、新たな仮想IDを発行する。この場合、第2の紐付処理部20は、新たな荷姿IDと新たな仮想IDとを紐付けて第2の紐付テーブル21に記憶させる。また、第3の紐付処理部22は、製品移動前の荷姿IDに紐付けられている仮想IDと、製品移動後の新たな荷姿IDに紐付けられた新たな仮想IDとの間に親子関係を紐付けて、第3の紐付テーブル23に記憶させる。また、製品の移動に伴いロケーションID取得部14によりロケーションIDが取得されたときに、プロダクト情報取得部12製品数取得部により製品の個数が取得されていない場合、例えば、荷姿が分割されずに拠点内ロケーションに製品が載置された場合、仮想ID発行部17は、当該ロケーションIDに対して、新たな仮想IDを発行しない。この場合、第4の紐付処理部24は、ロケーションIDと、製品移動前の荷姿IDに紐付けられている仮想IDとを紐付けて第4の紐付処理部24に記憶させる。一方、製品の移動に伴いロケーションID取得部14によりロケーションID取得部14が取得されたときに、プロダクト情報取得部12製品数取得部により製品の個数が取得されている場合、例えば、荷姿が分割されて拠点内ロケーションに製品の一部が移動した場合、仮想ID発行部17は、当該ロケーションIDに対して新たな仮想IDを発行する。この場合、第4の紐付処理部24は、ロケーションIDと新たな仮想IDとを紐付けて第4の紐付テーブル25に記憶させる。また、第3の紐付処理部22は、製品移動前の荷姿IDに紐付けられている仮想IDと、製品移動後のロケーションIDに紐付けられた新たな仮想IDとの間に親子関係を紐付けて、第3の紐付テーブル23に記憶させる。また、製品の移動に伴い複数の荷姿が1つの荷姿に統合される場合、つまり、複数の荷姿が統合されて新たなパレットに製品が移動した場合、荷姿ID取得部13は、統合後の荷姿に付与された新たな荷姿IDを取得する。また、仮想ID発行部17は、当該新たなパレットに対応して新たに取得された荷姿IDに対して、新たな仮想IDを発行する。この場合、第2の紐付処理部20は、新たな荷姿IDと新たな仮想IDとを紐付けて第2の紐付テーブル21に記憶させる。また、第3の紐付処理部22は、統合前の複数の荷姿IDに紐付けられているそれぞれの仮想IDと、統合後の新たな荷姿IDに紐付けられた新たな仮想IDとの間にそれぞれ親子関係を紐付けて、第3の紐付テーブル23に記憶させる。また、製品の移動に伴い複数の荷姿が1つの拠点内ロケーションに移動して統合される場合、ロケーションID取得部14は、統合後の拠点内ロケーションに付与されたロケーションIDを取得する。また、仮想ID発行部17は、当該ロケーションIDに対して新たな仮想IDを発行する。この場合、第4の紐付処理部24は、ロケーションIDと新たな仮想IDとを紐付けて第4の紐付テーブル25に記憶させる。また、第3の紐付処理部22は、統合前の複数の荷姿IDに紐付けられているそれぞれの仮想IDと、統合後のロケーションIDに紐付けられた新たな仮想IDとの間にそれぞれ親子関係を紐付けて、第3の紐付テーブル23に記憶させる。検索キー取得部29は、通信部11により受信された検索キープロダクト情報、荷姿ID、ロケーションID、入出庫のイベントが発生した日時などを取得し、検索処理部30に供給する。検索処理部30は、検索キー取得部29により取得された検索キーを用いて、第1の紐付テーブル19、第2の紐付テーブル21、第3の紐付テーブル23、第4の紐付テーブル25、イベント履歴テーブル27を適宜参照することによって仮想IDを特定する。そして、プロダクト情報と仮想IDとの紐付け、荷姿IDと仮想IDとの紐付け、ロケーションIDと仮想IDとの紐付け、および仮想IDどうしの親子関係の紐付けを利用して、上述のようにして特定した仮想IDの親子関係を辿ることにより、当該仮想IDに紐付けられた荷姿IDで特定される製品の流通経路を追跡する。そして、追跡した流通経路の情報を通信部11に供給し、ハンディ端末200またはPC300に返信する。ハンディ端末200またはPC300では、サーバ100から送られてきた流通経路の情報を画面に表示する。例えば、製品の流通経路を川下から追跡する場合、検索処理部30は、検索キー例えば、プロダクト情報、ロケーションID、イベント発生日時から仮想IDを特定し、特定した仮想IDとプロダクト情報との組合せに合致する入庫/出庫の発生した拠点の場所IDおよびイベント発生日時を検索する。そして、合致した情報を流通経路の情報として通信部11に供給し、ハンディ端末200またはPC300に返信する。一方、製品の流通経路を川上から追跡する場合、検索キー例えば、プロダクト情報、荷姿IDまたはロケーションID、イベント発生日時から1つ以上の仮想IDを特定し、特定した1つ以上の仮想IDとプロダクト情報との組合せに合致する入庫/出庫の発生した拠点の場所IDおよびイベント発生日時を検索する。そして、合致した情報を流通経路の情報として通信部11に供給し、ハンディ端末200またはPC300に返信する。次に、上記のように構成した本実施形態による製品追跡システムの動作を説明する。図9は、流通すべき製品の初期登録を行う際の動作例を示すフローチャートである。図10は、初期登録を行う際の製品の移動イメージを示す図であり、流通すべき製品を最初にパレットに積み込む状態を示している。図9において、ハンディ端末200またはPC300では、製品のプロダクト情報、パレットの荷姿ID、拠点の場所IDを入力するステップS1。そして、当該入力した情報をサーバ100に送信するステップS2。サーバ100では、ハンディ端末200またはPC300から送信された情報を通信部11にて受信するステップS3。そして、通信部11にて受信したプロダクト情報をプロダクト情報取得部12が取得し、荷姿IDを荷姿ID取得部13が取得し、場所IDを場所ID取得部15が取得するステップS4。プロダクト情報取得部12は、取得したプロダクト情報を第1の紐付処理部18に供給する。また、荷姿ID取得部13は、取得した荷姿IDを仮想ID発行部17および第2の紐付処理部20に供給する。また、場所ID取得部15は、取得した場所IDを第2の紐付処理部20に供給する。荷姿IDを受け取った仮想ID発行部17は、当該荷姿IDに対して仮想IDを発行するステップS5。そして、発行した仮想IDを第1の紐付処理部18および第2の紐付処理部20に供給する。第1の紐付処理部18は、プロダクト情報取得部12により取得されたプロダクト情報と、仮想ID発行部17により発行された仮想IDとを紐付けて、図3に示す第1の紐付テーブル19に記憶させるステップS6。また、第2の紐付処理部20は、荷姿ID取得部13により取得された荷姿IDと、場所ID取得部15により取得された場所IDと、仮想ID発行部17により発行された仮想IDとを紐付けて、図4に示す第2の紐付テーブル21に記憶させるステップS7。これにより、図9に示すフローチャートの処理は終了する。図11は、製品の出庫を行う際の動作例を示すフローチャートである。図12は、出庫を行う際の製品の移動イメージを示す図である。図12では、パレットごと製品をコンテナへ積み込む状態図12a、パレットから製品を取り上げてコンテナへ積み込む状態図12bを示している。図11において、ハンディ端末200またはPC300では、パレットの荷姿ID、コンテナの荷姿ID、拠点の場所IDを入力するステップS11。そして、当該入力した情報をイベント情報と共にサーバ100に送信するステップS12。サーバ100では、ハンディ端末200またはPC300から送信された情報を通信部11にて受信するステップS13。そして、通信部11にて受信した荷姿IDを荷姿ID取得部13が取得し、場所IDを場所ID取得部15が取得し、イベント情報をイベント情報取得部16が取得するステップS14。仮想ID発行部17は、荷姿ID取得部13により取得されたコンテナの荷姿IDに対して新たな仮想IDを発行するステップS15。そして、発行した仮想IDを第2の紐付処理部20に供給する。第2の紐付処理部20は、荷姿ID取得部13により取得されたコンテナの荷姿IDと、場所ID取得部15により取得された場所IDと、仮想ID発行部17により発行された新たな仮想IDとを紐付けて、図4に示す第2の紐付テーブル21に追加して記憶させるステップS16。なお、図12bのようにパレットから製品を取り上げてコンテナへ積み込んでいる場合は、第2の紐付テーブル21において、荷姿ID取得部13により取得されたパレットの荷姿IDと、その荷姿IDに既に紐付けられている仮想IDとの紐付けを解除する。パレットから製品を取り上げてコンテナへ積み込んでいるか否かは、例えば、ユーザがハンディ端末200またはPC300にその旨の情報を入力し、それをサーバ100に送信することによって指定する。また、第3の紐付処理部22は、荷姿ID取得部13により取得されたパレットの荷姿IDを用いて、第2の紐付テーブル21を参照することにより、当該パレットの荷姿IDに紐付いている仮想IDを取得する。そして、パレットの荷姿IDに紐付いている仮想IDを子、コンテナの荷姿IDに対して仮想ID発行部17により発行された新たな仮想IDを親として、両仮想IDの親子関係を紐付けて、図5に示す第3の紐付テーブル23に記憶させるステップS17。その後、イベント履歴記録部26は、イベント情報取得部16により取得された出庫に関するイベント情報を、図7に示すイベント履歴テーブル27に記憶させるステップS18。これにより、図11に示すフローチャートの処理は終了する。図13は、製品の入庫を行う際の動作例を示すフローチャートである。図14は、入庫を行う際の製品の移動イメージを示す図である。図14では、パレットごと製品をコンテナから取り出す状態図14a、コンテナから製品を取り上げてパレットへ積み込む状態図14bを示している。図13において、ハンディ端末200またはPC300では、パレットの荷姿ID、コンテナの荷姿ID、拠点の場所IDを入力するステップS21。ここで、図14aの場合は、コンテナから取り出されたパレットの荷姿IDを入力する。図14bの場合は、新たに用意したパレットの荷姿IDを入力する。そして、ハンディ端末200またはPC300は、これらの入力した情報をイベント情報と共にサーバ100に送信するステップS22。サーバ100では、ハンディ端末200またはPC300から送信された情報を通信部11にて受信するステップS23。そして、通信部11にて受信した荷姿IDを荷姿ID取得部13が取得し、場所IDを場所ID取得部15が取得し、イベント情報をイベント情報取得部16が取得するステップS24。仮想ID発行部17は、第2の紐付テーブル21を参照し、荷姿ID取得部13により取得されたパレットの荷姿IDが既に第2の紐付テーブル21に登録されているか否かを判定するステップS25。ここで、パレットの荷姿IDが既に登録されている場合、その荷姿IDは、コンテナから取り出されたパレットすなわち、出庫時にコンテナに積み込まれたパレットの荷姿IDということになる。この場合、第2の紐付処理部20は、荷姿ID取得部13により取得されたパレットの荷姿IDと、場所ID取得部15により新たに取得された入庫先の拠点に関する場所IDと、当該パレットの荷姿IDに既に紐付いている仮想IDとを紐付けて、第2の紐付テーブル21に追加して記憶させるステップS26。また、第3の紐付処理部22は、第3の紐付テーブル23において、上記パレットの荷姿IDに紐付いている仮想IDと、コンテナの荷姿IDに荷姿IDに紐付いている仮想IDとの親子関係の紐付けを解除するステップS27。その後、イベント履歴記録部26は、イベント情報取得部16により取得された入庫に関するイベント情報をイベント履歴テーブル27に追加して記憶させるステップS28。これにより、図13に示すフローチャートの処理は終了する。一方、上記ステップS25において、荷姿ID取得部13により取得されたパレットの荷姿IDが第2の紐付テーブル21にまだ登録されていないと判断した場合、その荷姿IDは、コンテナから取り出された製品を積み込むために用意された新たなパレットの荷姿IDということになる。この場合、仮想ID発行部17は、当該新たなパレットの荷姿IDに対して新たな仮想IDを発行するステップS29。そして、発行した仮想IDを第2の紐付処理部20に供給する。第2の紐付処理部20は、荷姿ID取得部13により取得された新たなパレットの荷姿IDと、場所ID取得部15により取得された場所IDと、仮想ID発行部17により発行された新たな仮想IDとを紐付けて、第2の紐付テーブル21に追加して記憶させるステップS30。その後、ステップS28の処理を経て、図13に示すフローチャートの処理を終了する。図15は、製品の積み替えを行う際の動作例を示すフローチャートである。図16は、積み替えを行う際の製品の移動イメージを示す図であり、拠点内において、あるパレットから別のパレットへと製品の積み替えが行われる状態を示している。なお、ここでは、パレット積み替えの際に、荷姿は分割も統合もされていないものとする。図15において、ハンディ端末200またはPC300では、積み替え前のパレットの荷姿ID、積み替え後のパレットの荷姿ID、拠点の場所IDを入力するステップS31。そして、当該入力した情報をサーバ100に送信するステップS32。サーバ100では、ハンディ端末200またはPC300から送信された情報を通信部11にて受信するステップS33。そして、通信部11にて受信した2つの荷姿IDを荷姿ID取得部13が取得し、場所IDを場所ID取得部15が取得するステップS34。第2の紐付処理部20は、積み替え後のパレットについて荷姿ID取得部13により新たに取得された荷姿IDと、積み替え前のパレットの荷姿IDに紐付けて第2の紐付テーブル21に既に記憶されている仮想IDと、場所ID取得部15により取得された場所IDとを紐付けて第2の紐付テーブル21に記憶させる。また、第2の紐付処理部20は、積み替え前のパレットの荷姿IDとそれに対応する仮想IDとの紐付けを解除するステップS35。これにより、図15に示すフローチャートの処理は終了する。なお、荷姿を分割して2つのパレットに積み替える場合は、ステップS31においてプロダクト情報分割後の荷姿のそれぞれに含まれる製品の個数などが更に入力される。そして、そのプロダクト情報もサーバ100に送信されステップS32、通信部11にて受信されるステップS33。このプロダクト情報は、プロダクト情報取得部12により取得されステップS34、プロダクト情報更新部28に供給される。これ応じてプロダクト情報更新部28は、第1の紐付テーブル19の内容を更新する。また、荷姿を分割して2つのパレットに積み替える場合は、荷姿ID取得部13は、積み替え後のパレットについて2つの荷姿IDを取得する。この場合は、仮想ID発行部17は、両方のパレットの荷姿IDに対して新たな仮想IDをそれぞれ発行する。そして、第2の紐付処理部20は、荷姿ID取得部13により取得された一方の荷姿IDと、それに対して仮想ID発行部17により新たに発行された一方の仮想IDと、場所ID取得部15により取得された場所IDとを紐付けて、第2の紐付処理部20に追加して記憶させる。また、第2の紐付処理部20は、荷姿ID取得部13により取得された他方の荷姿IDと、それに対して仮想ID発行部17により新たに発行された他方の仮想IDと、場所ID取得部15により取得された場所IDとを紐付けて、第2の紐付処理部20に追加して記憶させる。さらに、第3の紐付処理部22は、仮想ID発行部17により発行されたそれぞれの新たな仮想IDと、分割前の荷姿に対応する荷姿IDに紐付けられている仮想IDとの親子関係をそれぞれ紐付けて第3の紐付テーブル23に記憶させる。図17は、ある拠点内で荷姿をロケーション平置きエリアまたは棚に載置する際の動作例を示すフローチャートである。図18は、荷姿を拠点内ロケーションに載置する際の製品の移動イメージを示す図である。図18では、パレットごと製品を平置きエリアへ載置する状態図18a、パレットから製品を取り出して平置きエリアに載置する状態図18bを示している。なお、ここでは、荷姿を拠点内ロケーションに載置する際に、荷姿は分割も統合もされていないものとする。図17において、ハンディ端末200またはPC300では、パレットの荷姿ID、拠点の場所ID、拠点内ロケーションを表すロケーションIDを入力するステップS41。そして、当該入力した情報をサーバ100に送信するステップS42。サーバ100では、ハンディ端末200またはPC300から送信された情報を通信部11にて受信するステップS43。そして、通信部11にて受信した荷姿IDを荷姿ID取得部13が取得し、ロケーションIDをロケーションID取得部14が取得し、場所IDを場所ID取得部15が取得するステップS44。第4の紐付処理部24は、荷姿ID取得部13により取得されたパレットの荷姿IDを用いて、第2の紐付テーブル21を参照することにより、当該パレットの荷姿IDに紐付いている仮想IDを取得する。そして、パレットの荷姿IDに紐付いている仮想IDと、ロケーションID取得部14により取得されたロケーションIDと、場所ID取得部15により取得された場所IDとを紐付けて、図6に示す第4の紐付テーブル25に記憶させるステップS45。なお、図18bのようにパレットから製品を取り出して平置きエリアに載置する場合、第2の紐付処理部20は、第2の紐付テーブル21において、荷姿ID取得部13により取得されたパレットの荷姿IDと、その荷姿IDに既に紐付けられている仮想IDとの紐付けを解除するステップS46。パレットから製品を取り出して平置きエリアに載置しているか否かは、例えば、ユーザがハンディ端末200またはPC300にその旨の情報を入力し、それをサーバ100に送信することによって指定する。ところで、荷姿を分割して2つの拠点内ロケーションに載置する場合は、ステップS41においてプロダクト情報分割後の荷姿のそれぞれに含まれる製品の個数などが更に入力される。そして、そのプロダクト情報もサーバ100に送信されステップS42、通信部11にて受信されるステップS43。このプロダクト情報は、プロダクト情報取得部12により取得されステップS44、プロダクト情報更新部28に供給される。これ応じてプロダクト情報更新部28は、第1の紐付テーブル19の内容を更新する。また、荷姿を分割して2つの拠点内ロケーションに載置する場合は、ロケーションID取得部14では2つのロケーションIDを取得する。この場合、仮想ID発行部17は、一方のロケーションIDに対して新たな仮想IDを発行する。そして、第4の紐付処理部24は、仮想ID発行部17により発行された新たな仮想IDと、ロケーションID取得部14により取得された一方のロケーションIDと、場所ID取得部15により取得された場所IDとを紐付けて、図6に示す第4の紐付テーブル25に追加して記憶させる。他方のロケーションIDに対する処理は、図17のフローチャートでステップS45,S46に示した通りである。図19は、ある拠点内で荷姿をロケーション平置きエリアまたは棚から取り出す際の動作例を示すフローチャートである。図20は、荷姿を拠点内ロケーションから取り出す際の製品の移動イメージを示す図である。図20では、パレットごと製品を平置きエリアから取り出す状態図20a、平置きエリアから製品を取り出してパレットに積み込む状態図20bを示している。図19において、ハンディ端末200またはPC300では、パレットの荷姿ID、拠点の場所ID、拠点内の載置位置を表すロケーションIDを入力するステップS51。ここで、図20aの場合は、平置きエリアから取り出されたパレットの荷姿IDを入力する。図20bの場合は、新たに用意したパレットの荷姿IDを入力する。そして、ハンディ端末200またはPC300は、これらの入力した情報をイベント情報と共にサーバ100に送信するステップS52。サーバ100では、ハンディ端末200またはPC300から送信された情報を通信部11にて受信するステップS53。そして、通信部11にて受信した荷姿IDを荷姿ID取得部13が取得し、ロケーションIDをロケーションID取得部14が取得し、場所IDを場所ID取得部15が取得するステップS54。仮想ID発行部17は、第2の紐付テーブル21を参照し、荷姿ID取得部13により取得されたパレットの荷姿IDが既に第2の紐付テーブル21に登録されているか否かを判定するステップS55。ここで、パレットの荷姿IDが既に登録されている場合、その荷姿IDは、平置きエリアから取り出されたパレットの荷姿IDということになる。この場合、第4の紐付処理部24は、第4の紐付テーブル25において、上記パレットの荷姿IDに紐付いている仮想IDと、その仮想IDに対して紐付けられている平置きエリアのロケーションIDとの紐付けを解除するステップS56。これにより、図19に示すフローチャートの処理は終了する。一方、上記ステップS55において、荷姿ID取得部13により取得されたパレットの荷姿IDが第2の紐付テーブル21にまだ登録されていないと判断した場合、その荷姿IDは、平置きエリアから取り出された製品を積み込むために用意された新たなパレットの荷姿IDということになる。この場合、仮想ID発行部17は、当該新たなパレットの荷姿IDに対して新たな仮想IDを発行するステップS57。そして、発行した仮想IDを第2の紐付処理部20に供給する。第2の紐付処理部20は、荷姿ID取得部13により取得された新たなパレットの荷姿IDと、場所ID取得部15により取得された場所IDと、仮想ID発行部17により発行された新たな仮想IDとを紐付けて、第2の紐付テーブル21に追加して記憶させるステップS58。これにより、図19に示すフローチャートの処理は終了する。なお、荷姿を拠点内ロケーションから取り出す際、分割して2つのパレットに積み込む場合は、ステップS51においてプロダクト情報分割後の荷姿のそれぞれに含まれる製品の個数などが更に入力される。そして、そのプロダクト情報もサーバ100に送信されステップS52、通信部11にて受信されるステップS53。このプロダクト情報は、プロダクト情報取得部12により取得されステップS54、プロダクト情報更新部28に供給される。これ応じてプロダクト情報更新部28は、第1の紐付テーブル19の内容を更新する。また、荷姿を分割して2つのパレットに積み込む場合は、荷姿ID取得部13では2つの荷姿IDを取得する。例えば、図20aのようにパレットごと製品を平置きエリアから取り出す場合において、一方のパレットは平置きエリアから取り出したものをそのまま用い、他方のパレットは新たに用意する場合を考える。この場合は、仮想ID発行部17は、他方のパレットの荷姿IDに対して新たな仮想IDを発行する。そして、第2の紐付処理部20は、仮想ID発行部17により発行された新たな仮想IDと、荷姿ID取得部13により取得された他方の荷姿IDと、場所ID取得部15により取得された場所IDとを紐付けて、第2の紐付処理部20に追加して記憶させる。また、第3の紐付処理部22は、仮想ID発行部17により発行された新たな仮想IDと、分割前の荷姿に対応する荷姿IDに紐付けられている仮想IDとの親子関係を紐付けて第3の紐付テーブル23に記憶させる。一方の荷姿IDに対する処理は、図19のフローチャートでステップS56に示した通りである。あるいは、図20bのように平置きエリアから製品を取り出してパレットに積み込む場合において、2つのパレットを新たに用意する場合を考える。この場合は、仮想ID発行部17は、両方のパレットの荷姿IDに対して新たな仮想IDをそれぞれ発行する。そして、第2の紐付処理部20は、荷姿ID取得部13により取得された一方の荷姿IDと、それに対して仮想ID発行部17により新たに発行された一方の仮想IDと、場所ID取得部15により取得された場所IDとを紐付けて、第2の紐付処理部20に追加して記憶させる。また、第2の紐付処理部20は、荷姿ID取得部13により取得された他方の荷姿IDと、それに対して仮想ID発行部17により新たに発行された他方の仮想IDと、場所ID取得部15により取得された場所IDとを紐付けて、第2の紐付処理部20に追加して記憶させる。さらに、第3の紐付処理部22は、仮想ID発行部17により発行されたそれぞれの新たな仮想IDと、分割前の荷姿に対応する荷姿IDに紐付けられている仮想IDとの親子関係をそれぞれ紐付けて第3の紐付テーブル23に記憶させる。また、複数の拠点内ロケーションが荷姿を取り出して1つのパレットに統合して積み込む場合は、荷姿ID取得部13では統合後の荷姿IDを取得する。この場合は、統合後の荷姿に対応する荷姿IDに対してステップS57,S58の処理が行われることになる。図21は、本実施形態による製品追跡システムの動作に関する具体例を示す図である。図21では、荷姿が分割も統合もされることなく、工場から倉庫を経て店舗へと製品が流通する場合における動作例を示している。なお、図21ではイベント情報の図示を省略している。場所IDB001の工場では、最初に製品の初期登録が行われる。このとき、最初にパレットの荷姿IDC001に対して仮想IDV001が発行される。そして、製品のプロダクト情報と仮想IDV001とが紐付けられて第1の紐付テーブル19に記憶される。また、パレットの荷姿IDC001と仮想IDV001と工場の場所IDB001とが紐付けられて第2の紐付テーブル21に記憶される。次に、工場から製品の出庫が行われる。ここでは、パレットごと製品をコンテナへ積み込む例を示している。このとき、コンテナの荷姿IDC002に対して新たな仮想IDV002が発行され、当該コンテナの荷姿IDC002と新たな仮想IDV002と工場の場所IDB001とが紐付けられて第2の紐付テーブル21に記憶される。また、コンテナの荷姿IDC002に紐付いている仮想IDV002を親、パレットの荷姿IDC001に紐付いている仮想IDV001を子として、両仮想IDの親子関係が紐付けられて第3の紐付テーブル23に記憶される。コンテナが工場から倉庫に移動すると、場所IDB002の倉庫では、まず入庫が行われる。ここでは、パレットごと製品をコンテナから取り出す例を示している。このとき、取り出したパレットの荷姿IDC001は第2の紐付テーブル21に既に登録されているので、第3の紐付テーブル23において、パレットの荷姿IDC001に紐付いている仮想IDV001と、コンテナの荷姿IDC002に紐付いている仮想IDV002との親子関係の紐付けが解除される。また、コンテナから取り出されたパレットの荷姿IDC001と、当該パレットの荷姿IDC001に既に紐付いている仮想IDV001と、倉庫の場所IDB002とが紐付けられて第2の紐付テーブル21に追加して記憶される。さらに、図21の例では、入庫された製品のパレット積み替えが行われている。このとき、荷姿は分割も統合もされていないので、積み替え後のパレットに関する新たな荷姿IDC003と、積み替え前のパレットの荷姿IDC001に紐付けて第2の紐付テーブル21に既に記憶されている仮想IDV001と、倉庫の場所IDB002とが紐付けられて第2の紐付テーブル21に記憶される。また、積み替え前のパレットの荷姿IDC001と仮想IDV001との紐付けが解除される。次に、倉庫から製品の出庫が行われる。ここでも、パレットごと製品をコンテナへ積み込む例を示している。このとき、コンテナの荷姿IDC004に対して新たな仮想IDV003が発行され、当該コンテナの荷姿IDC004と新たな仮想IDV003と工場の場所IDB002とが紐付けられて第2の紐付テーブル21に記憶される。また、コンテナの荷姿IDC004に紐付いている仮想IDV003を親、パレットの荷姿IDC003に紐付いている仮想IDV001を子として、両仮想IDの親子関係が紐付けられて第3の紐付テーブル23に記憶される。コンテナが倉庫から店舗に移動すると、場所IDB003の店舗では、まず入庫が行われる。ここでも、パレットごと製品をコンテナから取り出す例を示している。このとき、取り出したパレットの荷姿IDC003は第2の紐付テーブル21に既に登録されているので、第3の紐付テーブル23において、パレットの荷姿IDC003に紐付いている仮想IDV001と、コンテナの荷姿IDC004に紐付いている仮想IDV003との親子関係の紐付けが解除される。また、コンテナから取り出されたパレットの荷姿IDC003と、当該パレットの荷姿IDC003に既に紐付いている仮想IDV001と、店舗の場所IDB003とが紐付けられて第2の紐付テーブル21に追加して記憶される。その後、図21の例では、入庫された製品が平置きエリアに載置されている。ここでは、パレットから製品を取り出して平置きエリアに載置する例を示している。このとき、パレットの荷姿IDC003に紐付いている仮想IDV001と、店舗の場所IDB003と、店舗内の平置きエリアを表すロケーションIDLC01とが紐付けられて第4の紐付テーブル25に記憶される。また、第2の紐付テーブル21において、パレットの荷姿IDC003と、その荷姿IDC003に既に紐付けられている仮想IDV001との紐付けが解除される。以上のように、荷姿が分割も統合もされない状態で製品が流通する場合、入出庫の際に製品がコンテナに積み込まれるときに新たな仮想IDV002、V003が一時的に発行されるものの、それ以外のところは、最初に発行された仮想IDV001によってプロダクト情報、荷姿ID、場所ID、ロケーションIDとの紐付けが行われる。よって、この仮想IDV001を辿ることにより、当該仮想IDV001に紐付けられた荷姿ID、場所ID、ロケーションIDで特定される製品の流通経路を追跡することができる。図22は、本実施形態による製品追跡システムの動作に関する別の具体例を示す図である。図22は、工場および倉庫での流通形態は図21と同様であるが、最後の店舗において荷姿が分割される場合における動作例を示している。なお、図22では、最後の店舗の部分のみを図示している。また、図22においてもイベント情報の図示を省略している。図22では、入庫の際にコンテナからパレットに積み込まれた製品が10個であり、そのうちの5個が平置きエリアに載置され、残りの5個は同じパレットに積み込まれたままという例を示している。この場合、プロダクト情報の一部として、平置きエリアに載置される製品の個数が5個、パレットに残る製品の個数が5個という個数情報がハンディ端末200またはPC300からサーバ100に送信される。この製品個数情報の取得により、サーバ100では、荷姿が分割されたと判定することができる。荷姿が分割された場合、平置きエリアに関しては、そのロケーションIDLC01に対して新たな仮想IDV004が発行され、当該ロケーションIDLC01と新たな仮想IDV004と店舗の場所IDB003とが紐付けられて第4の紐付テーブル25に記憶される。また、荷姿分割前の荷姿IDC003に紐付けられている仮想IDV001と、荷姿分割後のロケーションIDLC01に紐付けられた新たな仮想IDV004との間に親子関係が紐付けられて第3の紐付テーブル23に記憶される。また、第1の紐付テーブル19において、パレットの荷姿IDC003に紐付けられている仮想IDV001から、それに紐付けられているプロダクト情報のレコードが特定され、そのレコードに含まれる現在数量の値が5に更新される。また、当該プロダクト情報のレコードをコピーして新たなレコードが作成され、当該新たなレコードの現在数量の値が5に更新される。この新たなレコードは平置きエリアに対するものであり、仮想IDの値はV004とされる。図22に示す例のように、荷姿が分割された場合であっても、仮想IDV001を辿ることにより、当該仮想IDV001に紐付けられた荷姿ID、場所ID、ロケーションIDで特定される製品の流通経路を追跡することができる。また、第3の紐付テーブル23に記憶される仮想IDどうしV001とV004の親子関係を辿ることにより、当該仮想IDに紐付けられた荷姿ID、場所ID、ロケーションIDで特定される製品の流通経路を追跡することができる。なお、荷姿が分割される場合、川下からの検索であれば、V001からV001、V004からV001へと一意に流通経路を追跡することができる。一方、川上からの検索を行う場合、V001からV001またはV004のどちらの方向へ流通経路を追跡すれば良いかを一意に特定することができない。そこで、川上からの検索でも流通経路を一意に特定できるようにするための工夫を別に設けることが好ましい。例えば、図22の例で、荷姿が分割される前の状態において、分割しようとするそれぞれの荷姿に対して、分割前のパレットの荷姿IDC003とは別のパラメータを設定して第2の紐付テーブル21に記憶させる。そして、その後の製品の移動で荷姿が変わっていく場合にも、そのパラメータを引き継いで第2の紐付テーブル21に記憶させるようにする。このようにすれば、どちらかのパラメータを指定して検索を行えば、川上から検索する場合でも流通経路を一意に特定することができる。図23は、本実施形態による製品追跡システムの動作に関する更に別の具体例を示す図である。図23は、倉庫において2つの荷姿が1つの荷姿に統合されて出庫される場合における動作例を示している。なお、図23においてもイベント情報の図示を省略している。ここで、統合前の一方の荷姿はパレットに積まれた製品であり、その荷姿IDがC010、仮想IDがV010であるとする。また、他方の荷姿は平置きエリアに載置された製品であり、そのロケーションIDがLC01、仮想IDがV020であるとする。上記2つの荷姿が1つのパレットにて統合される場合、統合後のパレットの荷姿IDC011に対して新たな仮想IDV030が発行され、当該荷姿IDC011と新たな仮想IDV030と倉庫の場所IDB002とが紐付けられて第2の紐付テーブル21に記憶される。また、荷姿統合前の荷姿IDC010に紐付けられている仮想IDV010と、荷姿統合後の荷姿IDC011に紐付けられた新たな仮想IDV030との間に親子関係が紐付けられて第3の紐付テーブル23に記憶されるとともに、荷姿統合前のロケーションIDLC01に紐付けられている仮想IDV020と、荷姿統合後の荷姿IDC011に紐付けられた新たな仮想IDV030との間に親子関係が紐付けられて第3の紐付テーブル23に記憶される。図23に示す例のように、荷姿が統合された場合であっても、第3の紐付テーブル23に記憶される仮想IDどうしV010とV030、またはV020とV030の親子関係を辿ることにより、当該仮想IDに紐付けられた荷姿ID、場所ID、ロケーションIDで特定される製品の流通経路を追跡することができる。なお、荷姿が統合される場合、川上からの検索であれば、V010からV030、V020からV030へと一意に流通経路を追跡することができる。一方、川下からの検索を行う場合、V030からV010またはV020のどちらの方向へ流通経路を追跡すれば良いかを一意に特定することができない。そこで、川下からの検索でも流通経路を一意に特定できるようにするための工夫を別に設けることが好ましい。例えば、図23の例で、2つの荷姿が1つのパレットにて統合された状態において、統合される2つの荷姿に対して、統合後のパレットの荷姿IDC011とは別のパラメータを設定して第2の紐付テーブル21に記憶させる。そして、その後の製品の移動で荷姿が変わっていく場合にも、そのパラメータを引き継いで第2の紐付テーブル21に記憶させるようにする。このようにすれば、どちらかのパラメータを指定して検索を行えば、川下から検索する場合でも流通経路を一意に特定することができる。荷姿IDとは別に設定するパラメータの一例として、製品のファーストインファーストアウトあるいはファーストインラストアウトなどのルールに応じて設定するパラメータが考えられる。これは、複数の荷姿を1つの荷姿に統合する際に、例えば、最初に移動させた荷姿は後で分割する際にも必ず最初に移動させるファーストインファーストアウトように現場での運用を決めておく。そして、荷姿を統合する際に、荷姿を移動させた順番に応じて、1つのパレット上に積み込まれるそれぞれの荷姿に対して別のパラメータを設定する。以上詳しく説明したように、本実施形態では、流通する製品のプロダクト情報をプロダクト情報取得部12により取得し、製品の荷姿に付与された荷姿IDを荷姿ID取得部13により取得し、荷姿IDに対して仮想ID発行部17により仮想IDを発行する。そして、第1の紐付処理部18によりプロダクト情報と仮想IDとを紐付けて第1の紐付テーブル19に記憶させるとともに、第2の紐付処理部20により荷姿IDと仮想IDとを紐付けて第2の紐付テーブル21に記憶させる。さらに、製品の移動に伴う荷姿IDの変化によって新たな仮想IDが発行された場合、第3の紐付処理部22により製品移動前後の仮想IDどうしの親子関係を紐付けて第3の紐付テーブル23に記憶させるようにしている。このように構成した本実施形態によれば、製品の流通過程で付与される荷姿IDとそれに対して発行される仮想IDとの紐付け、および製品移動前後における仮想IDどうしの親子関係の紐付けを利用して、仮想IDの親子関係を辿ることにより、当該仮想IDに紐付けられた荷姿IDで特定される製品の流通経路を追跡することができる。また、本実施形態では、拠点内での製品の載置位置を表すロケーションIDをロケーションID取得部14により取得し、ロケーションIDに対して仮想ID発行部17により仮想IDを発行する。そして、第4の紐付処理部24によりロケーションIDと仮想IDとを紐付けて第4の紐付テーブル25に記憶させるようにもしている。このように構成した本実施形態によれば、製品の流通過程で付与されるロケーションIDとそれに対して発行される仮想IDとの紐付け、および製品移動前後における仮想IDどうしの親子関係の紐付けを利用して、仮想IDの親子関係を辿ることにより、当該仮想IDに紐付けられたロケーションIDで特定される製品の流通経路を追跡することができる。これにより、製品のプロダクト情報と、最初に取得した荷姿IDに対して発行された仮想IDとの紐付けを第1の紐付テーブルに記憶させておけば、その後の製品の流通過程において、出庫や入庫などによって製品が移動する都度、プロダクト情報を手入力するといった面倒な作業をなくすことができる。したがって、製品の流通経路の追跡を可能とするために必要な情報構築を行う際の作業を簡便に行うことができ、ユーザの作業負担を軽減することができる。なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の一例を示したものに過ぎず、これによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその要旨、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。"