以下に、本発明の実施の形態に係る出荷支援装置、出荷支援方法及びプログラム並びに出荷支援システムについて図面を参照して詳細に説明する。なお、図中同一又は相当する部分には同じ符号を付す。
(実施の形態1)
本発明の実施の形態に係る出荷支援装置は、注文元から商品の注文を受けたときに、その商品をそれまでにその注文元から受けていた既存の注文に係る商品と同時に配送できる在庫を持つ商品保管場所を割り出す装置である。なお、商品保管場所とは、商品を保管するための設備(場所、建造物等)である。
図1に示すように、本発明の実施の形態1に係る出荷支援装置100は、ハードウェア構成として、制御部10、記憶部20、入力部31、出力部32及び通信部33を備え、これらが内部バス40を介して接続されている。
制御部10は、CPU(Central Processing Unit)、ASIC(Application Specific Integrated Circuit)等を備える。制御部10は、記憶部20に記憶されたプログラムを実行することにより、出荷支援装置100の各部(後述する注文情報取得部11、出荷可能商品保管場所情報取得部12、出荷予定情報取得部13、出荷商品保管場所選出部14及び配送日数取得部15)の機能を実現する。
記憶部20は、ROM(Read Only Memory)、RAM(Random Access Memory)等を備える。ROMは制御部10のCPUが実行するプログラム及び、プログラムを実行する上で予め必要なデータを記憶する。RAMは、プログラム実行中に作成されたり変更されたりするデータを記憶する。
入力部31は、出荷支援装置100を操作するためのキーボード及びマウス等を備える。音声認識での入力を行う場合はマイクも備える。出荷支援装置100のユーザは、入力部31を介して注文元からの注文を入力したり、出荷支援装置100への指示を入力したりする。出力部32は液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイ等のディスプレイ及び、スピーカ等を備え、出荷支援装置100が求めた結果を出荷支援装置100のユーザに出力する。ここで、出荷支援装置100のユーザとは、例えば注文元から注文された商品の出荷を管理する出荷管理者である。
通信部33はネットワークを介して外部装置と通信するためのデバイスを備える。出荷支援装置100は、通信部33により、注文元からの注文をネットワークを介して受け付けることができる。また、出荷支援装置100は、通信部33により、各地域に点在する商品保管場所の在庫情報及び出荷予定情報等を、ネットワークを介して取得することができる。
内部バス40は、出荷支援装置100の制御部10、記憶部20、入力部31、出力部32及び通信部33を接続し、各部間でのデータのやり取りが行えるようにしている。
次に、出荷支援装置100の各部の機能について、図2を参照して説明する。図2中、制御部10、記憶部20、入力部31、出力部32及び通信部33は、図1で説明済みであるので、それ以外について説明する。図2に示すように、出荷支援装置100は、制御部10が注文情報取得部11、出荷可能商品保管場所情報取得部12、出荷予定情報取得部13、出荷商品保管場所選出部14及び配送日数取得部15の各機能を実現する。そして、記憶部20は、注文元情報記憶部21、商品保管場所情報記憶部22、在庫情報記憶部23、出荷予定情報記憶部24、出荷可能商品保管場所情報記憶部25、出荷商品保管場所候補記憶部26及び注文情報記憶部27を備える。
注文情報取得部11は、注文元からの注文情報を取得する。この注文情報は、図15に示すように、注文元名称、注文元コード、納入先、納期、商品の種類数、商品名称、商品コード、注文数量の各情報を含む。このうち、商品名称、商品コード、注文数量の三つ組については商品の種類数の分を含む。図15は、商品の種類数が2の場合の例である。
出荷可能商品保管場所情報取得部12は、注文元から注文を受けた商品を出荷可能な商品保管場所である出荷可能商品保管場所を示す情報を取得する。この出荷可能商品保管場所とは、注文を受けた商品の出荷可能な在庫をその商品の注文数以上持っている商品保管場所のことである。
出荷予定情報取得部13は、各商品保管場所から各納品場所への既存の出荷予定に関する情報である出荷予定情報を取得する。この出荷予定情報は、図11に示すように、商品保管場所名称、商品保管場所コード、注文元名称、注文元コード、納品場所、納品場所コード、出荷予定日の各情報を含む。なお、図8〜図14の左端に記載されている「ID」は、各情報(図11では出荷予定情報)を一意に識別するための番号である。
出荷商品保管場所選出部14は、今回の注文商品を、既に出荷予定になっている既存の注文商品とまとめて配送できる商品保管場所を選出する。つまり、今回の注文を出した注文元の納品場所に出荷する既存の出荷予定情報の中で、今回の注文の納期に間に合う出荷予定日になっている出荷予定情報を持つ商品保管場所を出荷商品保管場所として選出する。
配送日数取得部15は、商品保管場所から納入先に配送するのにかかる日数(配送日数)を、商品保管場所の住所と納入先の住所をキーにして配送日数テーブルを参照して取得する。ここで、配送日数テーブルは図示しないが、都道府県等毎に配送元の住所と配送先の住所を縦と横に配置し、その縦と横とが交わるところに対応する配送元から配送先への配送日数が記録されている表形式のデータである。
具体例で説明する。今回の注文が図15に示されるように注文元Aの注文であり、既存の出荷予定情報が図11で示されるようになっていたとする。そして、この例では説明を簡単にするため、日本国内ならどこからどこへ配送する場合でも配送日数は1日だとする。図15より今回の注文の納入先は#000301で、納期は12月24日であることがわかるので、図11から納品場所コードが#000301で、出荷予定日が12月23日以前になっているものを探す。すると図11の4番目の情報がこの条件に合致することがわかるので、この場合は商品保管場所cが出荷商品保管場所として選出される。
注文元情報記憶部21は、注文元に関する情報である注文元情報を記憶する。注文元情報は、図8に示すように、注文元名称、注文元コード、納品場所(注文元の納入先の住所)、納品場所コード、注文元の電話番号、注文元の郵便番号等の各情報を含む。新規注文元を獲得する度に、出荷支援装置100は、注文元情報記憶部21にその新規注文元に関する注文元情報を追加記憶する。また、今後お付き合いのなくなる注文元が生じたら、注文元情報記憶部21からそのお付き合いのなくなる注文元に関する注文元情報を削除する。
商品保管場所情報記憶部22は、注文元に配送するための商品を保管する商品保管場所に関する情報である商品保管場所情報を記憶する。商品保管場所情報は、図9に示すように、商品保管場所名称、商品保管場所コード、商品保管場所住所、商品保管場所の電話番号、商品保管場所の郵便番号等の各情報を含む。新規の商品保管場所ができると、出荷支援装置100は、商品保管場所情報記憶部22にその新規の商品保管場所に関する商品保管場所情報を追加記憶する。また、今後使われなくなる商品保管場所が生じたら、商品保管場所情報記憶部22からその使われなくなる商品保管場所に関する商品保管場所情報を削除する。
なお、図示しないが、商品保管場所情報記憶部22に加えて、事業所情報記憶部を備えても良い。事業所情報は、図9の商品保管場所情報と同じように、事業所名称、事業所コード、事業所住所、事業所の電話番号、事業所の郵便番号等の各情報を含む。注文時に注文元が、納入先として事業所を指定できるようにするためには、この事業所情報記憶部が必要となる。
在庫情報記憶部23は、商品保管場所情報記憶部22に記憶されている全ての商品保管場所それぞれが在庫として持っている出荷可能な商品に関する情報である在庫情報を記憶する。在庫情報は、図10に示すように、商品保管場所名称、商品保管場所コード、商品名称、商品コード、在庫数等の各情報を含む。ここで述べる在庫数は実在庫数(商品保管場所に存在する商品の総在庫数)ではなく、出荷可能な在庫数である。つまり、商品保管場所に存在する商品の総在庫数から、既に注文元から受注して引き当てた商品数量を除いた数である。注文元からの注文を受ける度に、制御部10が通信部33を介して各商品保管場所にその注文に含まれる商品の在庫数を問い合わせ、問い合わせの結果得られた在庫情報を在庫情報記憶部23に記憶する。在庫情報記憶部23への記憶は、注文を受ける度にではなく、各商品保管場所が在庫を入荷したり出荷したり受注を受けたりする度にすることにしても良い。
なお、在庫の入荷若しくは出荷のタイミングで注文を受け付けた場合又は、出荷支援装置100が複数同時に稼働している場合は、後述する出荷商品保管場所選出処理の最中に在庫数が変化してしまう可能性が生じる。そのため、排他制御を行うことにより、在庫の入荷及び出荷のタイミングでは注文を受け付けず、同時には1つの出荷支援装置100しか出荷商品保管場所選出処理を実行できないようにする必要がある。排他制御は、例えばセマフォ又はミューテックスを用いることによって実現できる。
出荷予定情報記憶部24は、各商品保管場所から各納品場所への出荷予定に関する情報である出荷予定情報を記憶する。出荷予定情報は、図11に示すように、商品保管場所名称、商品保管場所コード、注文元名称、注文元コード、納品場所、納品場所コード、出荷予定日、の各情報を含む。注文元からの注文を受ける度に、出荷予定情報取得部13が通信部33を介して各商品保管場所に出荷予定情報を問い合わせ、問い合わせの結果得られた出荷予定情報を出荷予定情報記憶部24に記憶する。注文を受ける度に出荷予定情報記憶部24に記憶するのではなく、各商品保管場所に対して新たな出荷が指示される度にその新たな出荷に対応する出荷予定情報を出荷予定情報記憶部24に追加記憶しても良い。この場合、出荷が完了する度にその完了した出荷に対応する出荷予定情報を出荷予定情報記憶部24から削除する。
なお、新たな出荷指示若しくは出荷完了のタイミングで注文を受け付けた場合又は、出荷支援装置100が複数同時に稼働している場合は、後述する出荷商品保管場所選出処理の最中に出荷予定情報が変化してしまう可能性が生じる。そのため、上述した在庫情報と同様に、排他制御を行うことにより、新たな出荷指示及び出荷完了のタイミングでは注文を受け付けず、同時には1つの出荷支援装置100しか出荷商品保管場所選出処理を実行できないようにする必要がある。
出荷可能商品保管場所情報記憶部25は、後述する出荷商品保管場所選出処理において、注文元から注文を受けた商品を出荷可能な商品保管場所を示す情報である出荷可能商品保管場所情報を記憶する。
出荷商品保管場所候補記憶部26は、後述する出荷商品保管場所選出処理において、注文元から注文を受けた商品を出荷する商品保管場所として選出される可能性のある商品保管場所の候補(出荷商品保管場所候補)を記憶する。
注文情報記憶部27は、後述する出荷商品保管場所選出処理において、注文元から受けた注文に関する情報である注文情報を記憶する。注文情報は、図15に示すように、注文元名称、注文元コード、納入先、納期、注文された商品の種類数、注文された商品の名称、商品コード、注文数量、の各情報を含む。注文元が一度に複数の種類の商品を注文した場合は、この注文情報の中の「商品名称、商品コード、注文数量」の三つ組を、注文した商品の種類数分含むことになる。
なお注文情報に含まれる納入先としては、以下の3つのケースが考えられる。1つ目のケースは注文元の納品場所の住所で、商品保管場所から注文元に直送するケースである。このケースでは納入先を示す情報として注文元情報の納品場所コードが入る。2つ目のケースは注文元の住所の最寄りの事業所の住所で、最寄りの事業所から注文元へ二次輸送するケースである。このケースでは納入先を示す情報として事業所情報の事業所コードが入る。3つ目のケースは注文元の住所の最寄りの商品保管場所の住所で、注文元が最寄りの商品保管場所に商品を引き取りに来るケースである。このケースでは納入先を示す情報として商品保管場所情報の商品保管場所コードが入る。
出荷支援装置100は、注文元から注文を取得して、その注文元の既存の注文商品と今回の注文商品とを統合して出荷できる商品保管場所を選出する。これによって、出荷支援装置100は、注文元の荷受け作業の効率を向上させるが、この出荷商品保管場所選出処理について、図3を参照して説明する。
まず、注文情報取得部11が、注文元からの注文を取得して、その注文に関する情報(図15に示すような、注文元名称、注文元コード、納入先、納期、注文された商品の種類数、注文された商品の名称、商品コード、注文数量)を注文情報記憶部27に記憶する(ステップS101)。
注文は、注文元が直接ネットワークを介して行う場合(ウェブページ上の注文フォームに記入して送信する場合又は、電子メールで送信する場合等)と、電話又はFAXで注文する場合とがある。注文元が直接ネットワークを介して行った注文は、通信部33を介して注文情報取得部11が取得する。電話又はFAXによる注文に対しては、出荷支援装置100のユーザ(出荷管理者)がその注文内容を入力部31から入力し、それを注文情報取得部11が取得する。
次に、制御部10は通信部33を介して各商品保管場所の在庫情報(図10に示すような、商品保管場所名称、商品保管場所コード、商品名称、商品コード、出荷可能な在庫数)を取得し、在庫情報記憶部23に記憶する(ステップS102)。ここでは、各商品保管場所が在庫として持っている全ての商品の在庫情報を取得するのではなく、注文商品の在庫情報のみを取得するようにしても良い。このようにするためには、ステップS101で取得した注文情報に含まれている商品コードをキーとして、その商品コードが含まれる在庫情報のみを抽出すれば良い。
次に、出荷可能商品保管場所情報取得部12は、注文情報記憶部27に記憶されている注文情報に含まれる全ての商品の在庫数をその注文数以上持っている商品保管場所全てについて、該商品保管場所を示す情報である出荷可能商品保管場所情報を取得する。そして、取得した出荷可能商品保管場所情報を、出荷可能商品保管場所情報記憶部25に記憶する(ステップS103)。なお、出荷可能商品保管場所情報取得部12は、在庫情報記憶部23に記憶されている在庫情報を参照することにより、出荷可能商品保管場所を示す情報を取得することができる。例えば、注文が、図15に示すように「商品xが3個、商品yが2個」であるとする。そして、各商品保管場所の出荷可能在庫が、図10に示すように、商品保管場所a「商品xが10個、商品yが1個、商品zが9」、商品保管場所b「商品xが2個、商品yが10個、商品zが5」、商品保管場所c「商品xが20個、商品yが7個、商品zが2個」だとする。すると、商品xを3個以上、商品yを2個以上、在庫に持つ商品保管場所は商品保管場所cのみであるので、この例では、出荷可能商品保管場所は商品保管場所cのみである。
そして、制御部10は、ステップS103の処理で出荷可能商品保管場所情報記憶部25に記憶された出荷可能商品保管場所情報に基づき、出荷可能商品保管場所の有無を判定する(ステップS104)。出荷可能商品保管場所が無いなら(ステップS104;Yes)、制御部10は出力部32に「出荷可能な商品保管場所が無い」という情報を出力させる(ステップS105)。
なお、注文には、注文元が直接ネットワークを介してウェブページ上の注文フォームに記入して送信する場合があることを上述したが、この場合は、制御部10が通信部33を介してウェブページ上に在庫がない旨を表示しても良い。この表示は例えば、「現在在庫がなく、注文を受けることができません。」というメッセージの表示である。注文を電話又はFAX等で受けていた場合は、注文を受けた電話又はFAXで、現在在庫がなく注文を受けることができない旨を注文元に伝えることになる。ステップS105の後は出荷商品保管場所選出処理を終了する。
出荷可能商品保管場所が有るなら(ステップS104;No)、ステップS106に進み、出荷予定情報取得部13は、通信部33を介して出荷可能な各商品保管場所の既存の出荷予定情報を取得し、出荷予定情報記憶部24に記憶する(ステップS106)。ここで、既存の出荷予定情報とは、図11に示すような、商品保管場所名称、商品保管場所コード、注文元名称、注文元コード、納品場所、納品場所コード、出荷予定日である。
そして、出荷商品保管場所選出部14は、まず、注文情報記憶部27に記憶されている注文情報内の「納入先及び納期」を示す情報を取得する。そして、出荷予定情報記憶部24に記憶されている既存の出荷予定情報内の「納品場所及び出荷予定日」を示す情報を取得する。そして、注文情報内の納入先が出荷予定情報内の納品場所であり、かつ、出荷予定情報内の出荷予定日に出荷しても注文情報内の納期に間に合うような出荷予定情報の有無を判定する(ステップS107)。
具体例で説明する。注文元Aの今回の注文が、図15に示すように、納入先が#000301で、納期が12月24日であるとする。そして、各商品保管場所の既存の出荷予定が、図11に示すように、商品保管場所a「納品場所#000301への出荷予定12月24日、納品場所#000501への出荷予定12月23日」、商品保管場所b「納品場所#000601への出荷予定12月23日」、商品保管場所c「納品場所#000301への出荷予定12月23日、納品場所#000601への出荷予定12月24日」だとする。ここで、いずれの商品保管場所からも、注文元Aへの配送に1日要するとする。すると、「納入先である#000301が納品場所になっている」かつ「納期である12月24日に間に合う出荷予定日(12月23日)になっている」出荷予定情報として、図11の4番目の出荷予定情報が存在することがわかる。
上述の例では、各商品保管場所から注文元Aへの配送日数はいずれも1日と仮定した。実際には各商品保管場所から注文元Aへの配送日数は、注文元Aの納品場所(注文元情報記憶部21から取得)及び商品保管場所の住所(商品保管場所情報記憶部22から取得)に基づいて配送日数取得部15が取得する。
既存の出荷予定情報の中に、注文情報内の納入先が出荷予定情報内の納品場所であり、かつ、注文情報内の納期に間に合う出荷予定日になっている出荷予定情報が無ければ(ステップS107;No)、ステップS108に進む。ステップS108では、出荷商品保管場所選出部14は、注文情報記憶部27に記憶されている注文情報(図15)内の納入先のコードをキーとして、納品場所の住所を取得する。
この、納入先のコードをキーとした納品場所の住所の取得について補足説明する。出荷商品保管場所選出部14は納品場所の住所を、納入先のコードに基づいて取得する。つまり、出荷商品保管場所選出部14は、納入先のコードが納品場所コードであるなら、注文元情報記憶部21に記憶されている注文元情報(図8)から納品場所の住所を取得する。出荷商品保管場所選出部14は、納入先のコードが商品保管場所コードであるなら商品保管場所情報記憶部22に記憶されている商品保管場所情報(図9)から納品場所の住所を取得する。出荷商品保管場所選出部14は、納入先のコードが事業者コードであるなら事業者情報(図示せず)から納品場所の住所を取得する。
そして、出荷可能商品保管場所情報記憶部25に記憶されている出荷可能商品保管場所情報で示される商品保管場所の住所を商品保管場所情報記憶部22に記憶されている商品保管場所情報(図9)から取得する。そして、出荷商品保管場所選出部14は、出荷可能商品保管場所情報記憶部25に記憶されている出荷可能商品保管場所情報で示される商品保管場所の中から、納品場所の住所に最も近い(輸送コストが最も低い)商品保管場所を選出する(ステップS108)。そして、ステップS111に進む。
なお、ステップS108で出荷商品保管場所選出部14は、納品場所に最も近い商品保管場所の選出を、それぞれの住所を示す情報に基づいて行っても良いが、納品場所毎に最寄りの商品保管場所を記録したテーブルを用意しておいて、このテーブルを参照して行っても良い。このテーブルは、後述する優先商品保管場所情報記憶部28と同様のテーブルである。
既存の出荷予定情報の中に、注文情報内の納入先が出荷予定情報内の納品場所であり、かつ、注文情報内の納期に間に合う出荷予定日になっている出荷予定情報が有れば(ステップS107;Yes)、ステップS109に進む。そして、出荷商品保管場所選出部14は、出荷予定情報記憶部24に記憶されている出荷予定情報の中から、注文情報内の納入先が出荷予定情報内の納品場所であり、かつ、注文情報内の納期に間に合う出荷予定日になっている出荷予定情報を全て抽出する。そして、その抽出した出荷予定情報内の商品保管場所コードを全て出荷商品保管場所候補記憶部26に記憶する(ステップS109)。そして、ステップS110に進む。
ステップS110では、出荷商品保管場所選出部14は、注文情報記憶部27に記憶されている注文情報(図15)内の納入先のコードをキーとして、納品場所の住所を取得する。次に、出荷商品保管場所候補記憶部26に記憶されている商品保管場所の住所を商品保管場所情報記憶部22に記憶されている商品保管場所情報(図9)から取得する。そして、出荷商品保管場所候補記憶部26に記憶されている商品保管場所の中から、納品場所の住所に最も近い(輸送コストが最も低い)商品保管場所を選出する。そして、今回の注文に対応する出荷予定日を、選出した商品保管場所の「注文情報内の納入先が出荷情報内の納品場所であり、かつ、注文情報内の納期に間に合う出荷予定日」になっている既存の出荷予定情報の出荷予定日と一致させる(ステップS110)。そして、ステップS111に進む。
なお、ステップS110で出荷商品保管場所選出部14は、納品場所に最も近い商品保管場所の選出を、それぞれの住所を示す情報に基づいて行っても良いが、ステップS108の処理で説明したように、納品場所毎に最寄りの商品保管場所を記録したテーブルを用意しておいて、このテーブルを参照して行っても良い。このテーブルは、後述する優先商品保管場所情報記憶部28と同様のテーブルである。
ステップS111では、制御部10は、出荷商品保管場所選出部14が選出した商品保管場所及び出荷予定日を示す情報を、出力部32に出力させる。そして、出荷商品保管場所選出処理を終了する。
実施の形態1では、今回の注文と同様の納期及び納入先である既存の出荷予定を持つ商品保管場所を優先的に出荷商品保管場所とすることで、その商品保管場所からの他の出荷商品と今回の注文商品とを一緒に出荷することができる。したがって、これらの商品の注文元への到着日を統一することができるので、注文元の荷受け作業の効率を向上させることができる。
(実施の形態2)
実施の形態1では、出荷支援装置100のみで出荷商品保管場所の選出を行っている。しかし、出荷を管理する事業所が全国に複数あって、それぞれの事業所で出荷支援装置100を稼働させるような場合に、注文元情報、商品保管場所情報、在庫情報、出荷予定情報等を個々の出荷支援装置100で別々に管理するのは効率が悪い。このような場合、これらの情報を出荷支援サーバが統一して管理することにすると効率が良くなる。
そこで、出荷商品保管場所の選出処理を出荷支援装置101と出荷支援サーバ201とで分担して行う実施の形態2について、図4を参照して説明する。実施の形態1との相違点は、出荷支援装置101の記憶部20には注文元情報記憶部21、商品保管場所情報記憶部22、在庫情報記憶部23及び出荷予定情報記憶部24が存在せず、出荷支援サーバ201の記憶部20に注文元情報記憶部21、商品保管場所情報記憶部22、在庫情報記憶部23及び出荷予定情報記憶部24が存在するという点である。これ以外の点については実施の形態1と共通であるため、主に相違点を中心に説明する。
注文元情報記憶部21は図8に示すような注文元情報を記憶している。商品保管場所情報記憶部22は図9に示すような、注文元に配送するための商品を保管する商品保管場所に関する情報を記憶している。これらの情報は、実施の形態1で説明した内容と同じ情報であり、情報の更新も実施の形態1で説明したタイミングで行われる。
ただし、これらの情報は出荷支援サーバ201の記憶部20に記憶されているため、出荷支援装置101がこれらの情報を取得したい場合は、通信により取得する。つまり、出荷支援装置101の通信部33と出荷支援サーバ201の通信部33とが通信して、出荷支援サーバ201の記憶部20の注文元情報記憶部21及び商品保管場所情報記憶部22に記憶されているこれらの情報を、出荷支援装置101が受信することによって取得する。
在庫情報記憶部23が記憶している情報も、図10に示すように、実施の形態1で説明した内容と基本的には同じ情報である。ただし、実施の形態1では、注文を受ける度に、注文情報に含まれている商品コードが含まれる在庫情報のみを記憶することにしても良かった。これに対し、出荷支援サーバ201は常に全ての商品保管場所の在庫(入荷、出荷、受注による引き当て等)を統合管理しており、各商品保管場所での在庫情報が変化する度に、在庫情報記憶部23に記憶されている在庫情報を更新する。
出荷支援装置101が在庫情報を取得したい場合は、出荷支援装置101の通信部33と出荷支援サーバ201の通信部33とが通信して、出荷支援サーバ201の記憶部20の在庫情報記憶部23に記憶されている情報を、出荷支援装置101が受信することによって取得する。
なお、実施の形態1と同様に、在庫の入荷又は出荷のタイミングで注文を受け付けた場合及び、出荷支援装置101が複数同時に稼働している場合は、後述する出荷商品保管場所選出処理の最中に在庫数が変化してしまう可能性が生じる。したがって、排他制御を行うことにより、在庫の入荷及び出荷のタイミングでは注文を受け付けず、同時には1つの出荷支援装置101しか出荷商品保管場所選出処理を実行できないようにする必要がある。
出荷予定情報記憶部24が記憶している情報も、図11に示すように、実施の形態1で説明した内容と基本的には同じ情報である。ただし、実施の形態1では注文を受ける度に、注文商品を出荷可能な商品保管場所についてだけ出荷予定情報を取得して記憶していた。これに対し、出荷支援サーバ201は全ての商品保管場所について、各商品保管場所から各納品場所への出荷予定に関する情報である出荷予定情報(商品保管場所名称、商品保管場所コード、注文元名称、注文元コード、納品場所、納品場所コード、出荷予定日)を統合管理している。したがって、出荷支援サーバ201は、各商品保管場所に対して新たな出荷が指示される度にその新たな出荷に対応する出荷予定情報を出荷予定情報記憶部24に追加記憶する。そして、出荷支援サーバ201は、出荷が完了する度にその完了した出荷に対応する出荷予定情報を出荷予定情報記憶部24から削除する。
実施の形態1と同様に、新たな出荷指示又は出荷完了のタイミングで注文を受け付けた場合及び、出荷支援装置101が複数同時に稼働している場合は、後述する出荷商品保管場所選出処理の最中に出荷予定情報が変化してしまう可能性が生じる。したがって、排他制御を行うことにより、新たな出荷指示及び出荷完了のタイミングでは注文を受け付けず、同時には1つの出荷支援装置101しか出荷商品保管場所選出処理を実行できないようにする必要がある。
次に、出荷支援装置101が行う出荷商品保管場所選出処理について、図3を参照して説明するが、大部分の処理は実施の形態1で説明した内容と同じなので、異なる部分を中心に説明する。
ステップS101の処理は、実施の形態1と同じである。ステップS102では、出荷支援装置101の制御部10は通信部33を介して出荷支援サーバ201の在庫情報記憶部23に記憶されている各商品保管場所の在庫情報(商品保管場所名称、商品保管場所コード、商品名称、商品コード、出荷可能な在庫数)を取得する(ステップS102)。ここでは、各商品保管場所が在庫として持っている全ての商品の在庫情報を取得するのではなく、ステップS101で取得した注文情報に含まれている商品コードをキーとして、その商品コードが含まれる在庫情報のみを出荷支援サーバ201に問い合わせることで、注文商品の在庫情報のみを取得する。
ステップS103は、在庫情報として、在庫情報記憶部23に記憶されている在庫情報ではなく、ステップS102で取得した在庫情報を用いる点以外は実施の形態1での処理と同じである。
ステップS104及びステップS105は実施の形態1での処理と同じである。ステップS106では、出荷予定情報取得部13は、通信部33を介して出荷支援サーバ201の出荷予定情報記憶部24に記憶されている各商品保管場所の既存の出荷予定情報(商品保管場所名称、商品保管場所コード、注文元名称、注文元コード、納品場所、納品場所コード、出荷予定日)を取得する(ステップS106)。
ステップS107は、出荷予定情報として、出荷予定情報記憶部24に記憶されている出荷予定情報ではなく、ステップS106で取得した出荷予定情報を用いる点以外は実施の形態1での処理と同じである。
ステップS108は、納品場所の住所を取得する際に、出荷商品保管場所選出部14が、注文情報記憶部27に記憶されている納入先のコードをキーとして、出荷支援サーバ201に納品場所の住所を問い合わせて、納品場所の住所を取得する点と、商品保管場所の住所も出荷支援サーバ201に問い合わせて取得する点以外は、実施の形態1での処理と同じである。また、納品場所に最も近い商品保管場所の選出を、納品場所毎に最寄りの商品保管場所を記録したテーブル(後述する優先商品保管場所情報記憶部28と同様のテーブルで、出荷支援サーバ201の記憶部20に記憶させておく。)を用いて行う場合には、納品場所コードをキーにして、出荷支援サーバ201に、そのテーブルに基づいて最寄りの商品保管場所を検索してもらえば良い。
ステップS109は、出荷商品保管場所選出部14が、出荷支援サーバ201に、出荷予定情報記憶部24に記憶されている出荷予定情報の中で「納入先が納品場所でありかつ納期に間に合う出荷予定日」になっている商品保管場所を問い合わせ、そのような商品保管場所を全て出荷商品保管場所候補記憶部26に記憶する点以外は実施の形態1での処理と同じである。
ステップS110では、納品場所の住所、商品保管場所の住所及び既存の出荷予定情報の出荷予定日を取得する際に、出荷支援サーバ201に問い合わせて取得する点以外は実施の形態1での処理と同じである。具体的には、出荷商品保管場所選出部14が、注文情報記憶部27に記憶されている納入先のコードをキーとして、出荷支援サーバ201に納品場所の住所を問い合わせて納品場所の住所を取得する。また出荷商品保管場所選出部14は、商品保管場所の住所も出荷支援サーバ201に問い合わせて取得する。そして、選出した商品保管場所の「納入先が納品場所でありかつ納期に間に合う出荷予定日」になっている既存の出荷予定情報の出荷予定日も出荷支援サーバ201に問い合わせて取得する。また、納品場所に最も近い商品保管場所の選出を、納品場所毎に最寄りの商品保管場所を記録したテーブル(後述する優先商品保管場所情報記憶部28と同様のテーブルで、出荷支援サーバ201の記憶部20に記憶させておく。)を用いて行う場合には、納品場所コードをキーにして、出荷支援サーバ201に、そのテーブルに基づいて最寄りの商品保管場所を検索してもらえば良い。
ステップS111の処理は実施の形態1のステップS111の処理と同じである。
なお、出荷支援装置101と出荷支援サーバ201のハードウェア構成はどちらも出荷支援装置100と同じであり、図1に示される。
実施の形態2では、実施の形態1と同様に、今回の注文と同様の納期及び納入先である既存の出荷予定を持つ商品保管場所を優先的に出荷商品保管場所とすることで、その商品保管場所からの他の出荷商品と今回の注文商品とを一緒に出荷することができる。したがって、これらの商品の注文元への到着日を統一することができるので、注文元の荷受け作業の効率を向上させることができる。そして、実施の形態1と比較すると、在庫情報及び出荷予定情報等を出荷支援サーバ201で統合管理することによって、出荷支援装置101での商品保管場所に関する情報の管理負荷を削減することができる。
(実施の形態3)
実施の形態1及び実施の形態2での出荷する商品保管場所を選出する基準は、「納入先及び納入日が同じ出荷予定を持つ商品保管場所」を最優先で選出するというものである。そして、そのような商品保管場所が複数有る場合には、その中で納入先に最も近い(輸送コストが最も低い)商品保管場所を選出するようにしている。実施の形態3での商品保管場所を選出する基準は、実施の形態1及び実施の形態2とは異なり、納入先の最寄りの商品保管場所を最優先で選出するというものである。そして、最寄りの商品保管場所では注文された商品を全て出荷することができない場合には、注文された商品を全て出荷することができる商品保管場所を優先して選出する。また、出荷する商品保管場所の候補が複数存在する場合には「納入先及び納入日が同じ出荷予定を持つ商品保管場所」及び「注文された商品の在庫数が多い商品保管場所」を優先して選出するようにしている。
本発明の実施の形態3に係る出荷支援装置102のハードウェア構成は実施の形態1に係る出荷支援装置100と同じであり、図1に示される。そして、本発明の実施の形態3に係る出荷支援装置102の機能ブロック図は図5に示される。出荷支援装置102の機能ブロック図を実施の形態1に係る出荷支援装置100の機能ブロック図と比較すると、記憶部20に優先商品保管場所情報記憶部28、商品別出荷場所情報記憶部29及び商品情報記憶部30が追加された点以外は同じである。
優先商品保管場所情報記憶部28は、注文元情報記憶部21に記憶されている全ての注文元に対して、納品場所毎に、商品を出荷する商品保管場所の優先順位を示す優先商品保管場所情報が記憶される。通常は、注文元の納品場所に最も近い商品保管場所の優先順位を1、二番目に近い商品保管場所の優先順位を2、以下、距離が近い順に優先順位を定義する。優先商品保管場所情報は、図12に示すように、注文元名称、注文元コード、納品場所コード、優先順位番号、商品保管場所名称、商品保管場所コードを含む。
商品別出荷場所情報記憶部29は、注文された全ての商品について、各商品をそれぞれどの商品保管場所から出荷するかを示す商品別出荷場所情報を記憶する。商品別出荷場所情報は、図13に示すように、商品名称、商品コード、納期、商品保管場所名称、商品保管場所コード、注文元名称、注文元コード、出荷予定日を含む。
商品情報記憶部30は、注文元に配送する可能性のある全ての商品に関する情報である商品情報を記憶する。商品情報は、図14に示すように、商品名称、商品コード、価格、重量、寸法等の各情報を含む。新規の取扱商品が生じると、出荷支援装置100は、商品情報記憶部30にその新規商品に関する商品情報を追加記憶する。また、今後扱わなくなる商品が生じると、商品情報記憶部30からその扱わなくなる商品に関する商品情報を削除する。
次に、出荷支援装置102が行う出荷商品保管場所選出処理について、図6A及び図6Bを参照して説明する。まず、制御部10は変数Fをクリアする(ステップS201)。なお、変数Fは、今回の注文と同様の納期及び納入先である既存の出荷予定を持つ商品保管場所が存在するか否かを示すフラグである。次に、注文情報取得部11が、注文元からの注文を取得して、その注文に関する情報である注文情報(注文元名称、注文元コード、注文された商品の名称、商品コード、注文数量、納入先、納期)を図15に示すように、注文情報記憶部27に記憶する(ステップS202)。ステップS202の処理は実施の形態1及び実施の形態2でのステップS101の処理と同じである。
次に、制御部10は通信部33を介して各商品保管場所の在庫情報(商品保管場所名称、商品保管場所コード、商品名称、商品コード、出荷可能な在庫数)を取得し、図10に示すように、在庫情報記憶部23に記憶する(ステップS203)。ここでは、各商品保管場所が在庫として持っている全ての商品の在庫情報を取得するのではなく、注文商品の在庫情報のみを取得するようにしても良い。ステップS202で取得した注文情報に含まれている商品コードをキーとして、その商品コードが含まれる在庫情報のみを抽出することで、注文商品の在庫情報のみを取得することができる。
次に、制御部10は、注文情報記憶部27に記憶されている注文情報内の納入先のコードをキーとして、納品場所コードを取得する。そして、その取得した納品場所コードと優先順位番号“1”とをキーにして、優先商品保管場所情報記憶部28を検索し、納品場所の最寄りの(輸送コストが最も低い)商品保管場所を示す情報を取得する(ステップS204)。
次に、制御部10は、在庫情報記憶部23に記憶されている在庫情報の中から最寄りの商品保管場所の在庫情報を参照して、注文された全ての商品を最寄りの商品保管場所から出荷可能かを判定する(ステップS205)。この判定は、最寄りの商品保管場所に、注文された全ての商品の在庫が確保されているなら、出荷可能と判定される。出荷可能なら(ステップS205;Yes)、出荷商品保管場所選出部14は、最寄りの商品保管場所を出荷商品保管場所として選出し、商品が納期に届くように出荷予定日を設定して、商品別出荷場所情報記憶部29に記憶する(ステップS206)。そして、ステップS225へ進む。
最寄りの商品保管場所から注文商品を全ては出荷できないなら(ステップS205;No)、出荷可能商品保管場所情報取得部12が、出荷可能商品保管場所全てについて、該出荷可能商品保管場所を示す情報である出荷可能商品保管場所情報を取得する。出荷可能商品保管場所とは、上述したように、注文情報記憶部27に記憶されている全ての商品について、在庫数をその注文数以上持っている商品保管場所のことである。出荷可能商品保管場所情報取得部12は、在庫情報記憶部23に記憶されている情報を参照することにより、出荷可能商品保管場所を示す情報を取得することができる。そして、出荷可能商品保管場所情報取得部12は、取得した出荷可能商品保管場所情報全てを出荷可能商品保管場所情報記憶部25に記憶する(ステップS207)。次に、制御部10は、出荷可能商品保管場所の有無を判定する(ステップS208)。
出荷可能商品保管場所が無いなら(ステップS208;Yes)、出荷商品保管場所選出部14は、商品毎に在庫数が最も多い商品保管場所をその商品の出荷商品保管場所として選出する。この処理は、出荷商品保管場所選出部14が、注文情報記憶部27に記憶されている商品1つ1つについて、その商品の在庫数が最も多い倉庫をその商品の出荷倉庫として選出する。そして、出荷商品保管場所選出部14は、取得した各商品の出荷商品保管場所を、その商品が納期に届くように出荷予定日を設定して、商品別出荷場所情報記憶部29に記憶する(ステップS209)。もし、どの商品についても全ての商品保管場所で在庫数が0であるなら、出荷商品保管場所は無しとなり、商品別出荷場所情報記憶部29には何も記憶されない。
また、在庫数が最も多い商品保管場所が複数有る場合は、出荷商品保管場所選出部14が、在庫数が最も多い商品保管場所の中で、注文元の納品場所に対する優先順位が最も高い商品保管場所を出荷商品保管場所として選出する。出荷商品保管場所選出部14は、優先商品保管場所情報記憶部28を参照することで、この選出を行うことができる。そして、出荷商品保管場所選出部14は、選出した出荷商品保管場所を、商品が納期に届くように出荷予定日を設定して、商品別出荷場所情報記憶部29に記憶する(ステップS209)。そして、ステップS225へ進む。ステップS209において、出荷商品保管場所選出部14は、商品別出荷場所選出部に相当する。
例えば、注文元Aの注文が「商品xを5個、商品yを5個、商品cを5個」の場合で、具体例を説明する。各商品保管場所の在庫数が、商品保管場所a「商品xを5個、商品yを5個、商品zを3個」、商品保管場所b「商品xを5個、商品yを1個、商品zを1個」、商品保管場所c「商品xを3個、商品yを3個、商品zを5個」だとする。すると、商品xについては商品保管場所aと商品保管場所bの在庫数が5個で同数なので、優先商品保管場所情報記憶部28に記憶された優先順位の高い商品保管場所が選出される。商品yについては商品保管場所aの在庫数が一番多いので、商品保管場所aが選出される。商品zについては商品保管場所cの在庫数が一番多いので、商品保管場所cが選出される。そして、注文元Aの納品場所に対して優先順位の最も高い商品保管場所が商品保管場所bだとすると、この注文元Aの注文に対して、商品xは商品保管場所bから、商品yは商品保管場所aから、商品zは商品保管場所cから、それぞれ出荷されることになる。
図6AのステップS208の説明に戻る。出荷可能商品保管場所が有るなら(ステップS208;No)、制御部10は、出荷可能商品保管場所が1つだけであるか否かを判定する(ステップS210)。出荷可能商品保管場所が1つだけなら(ステップS210;Yes)、出荷商品保管場所選出部14は、その1つだけの出荷可能商品保管場所を出荷商品保管場所として選出する。そして、出荷商品保管場所選出部14は、選出した出荷商品保管場所を、商品が納期に届くように出荷予定日を設定して、商品別出荷場所情報記憶部29に記憶する(ステップS211)。
出荷可能商品保管場所が複数あるなら(ステップS210;No)、出荷予定情報取得部13は、通信部33を介して出荷可能商品保管場所のそれぞれの出荷予定情報を全て取得し、出荷予定情報記憶部24に記憶する(ステップS212)。ここで、出荷予定情報は、上述したように、商品保管場所名称、商品保管場所コード、注文元名称、注文元コード、納品場所、納品場所コード、出荷予定日を含む。
そして、出荷商品保管場所選出部14は、注文情報記憶部27に記憶されている「納入先及び納期」を示す情報に基づき、既存の出荷予定情報の中に、今回の注文と同様の納期及び納入先になるものが存在するか否かを判定する(ステップS213)。この判定は、出荷予定情報記憶部24に記憶されている既存の出荷予定情報の中に、注文情報内の納入先が出荷予定情報内の納品場所であり、かつ、注文情報内の納期に間に合う出荷予定日になっている出荷予定情報が有るか否かの判定である。
既存の出荷予定情報の中に、今回の注文と同様の納期及び納入先になるものが存在しなければ(ステップS213;No)、出荷商品保管場所選出部14は、出荷可能商品保管場所情報記憶部25に記憶されている出荷可能商品保管場所情報を全て出荷商品保管場所候補記憶部26に記憶する(ステップS218)。そして、ステップS219に進む。
既存の出荷予定情報の中に、今回の注文と同様の納期及び納入先になるものが存在するなら(ステップS213;Yes)、制御部10は変数Fに1をセットする(ステップS214)。続いて、出荷商品保管場所選出部14は、出荷予定情報記憶部24に記憶されている出荷予定情報の中から、注文情報内の納入先が出荷予定情報内の納品場所であり、かつ、注文情報内の納期に間に合う出荷予定日になっている出荷予定情報を全て抽出し、その抽出した出荷予定情報内の商品保管場所コードを全て出荷商品保管場所候補記憶部26に記憶する(ステップS215)。
次に、制御部10は、出荷商品保管場所候補記憶部26に記憶されている出荷商品保管場所候補が1つであるか否かを判定する(ステップS216)。出荷商品保管場所候補が1つなら(ステップS216;Yes)、出荷商品保管場所選出部14は、出荷商品保管場所候補を出荷商品保管場所として選出する。そして、出荷商品保管場所選出部14は、選出した出荷商品保管場所を、商品が納期に届くように出荷予定日を設定して、商品別出荷場所情報記憶部29に記憶し(ステップS217)、ステップS223へ進む。出荷商品保管場所候補が1つでないなら(ステップS216;No)、ステップS219へ進む。
ステップS219では、出荷商品保管場所選出部14は、出荷商品保管場所候補の中で、一番在庫数が多い商品を、より多く持っている商品保管場所を選定するために、各商品保管場所について、一番在庫数が多い商品の数をカウントする(ステップS219)。具体的には、出荷商品保管場所選出部14は、各商品保管場所が「出荷商品保管場所候補の中で一番在庫数が多い商品の数」(最多商品数)をいくつ持っているかをカウントする。これは、まず各商品保管場所iの最多商品数を示す変数Niを0に初期化してから、注文情報に含まれる全ての商品jについて、商品jの在庫数を出荷商品保管場所候補の各商品保管場所間で比較する。そして、商品jの在庫数が一番多い商品保管場所が商品保管場所mであるなら、変数Nmに1を加算する。注文情報に含まれる全ての商品jについて、この処理を繰り返すと、最終的に変数Niには商品保管場所iの最多商品数が入る。
次に、出荷商品保管場所選出部14は、最多商品数が一番多い商品保管場所が1つであるか否かを判定する(ステップS220)。もし最多商品数が一番多い商品保管場所が1つだけなら(ステップS220;Yes)、出荷商品保管場所選出部14は、最多商品数が一番多い商品保管場所を出荷商品保管場所として選出する。そして、出荷商品保管場所選出部14は、選出した出荷商品保管場所を、商品が納期に届くように出荷予定日を設定して、商品別出荷場所情報記憶部29に記憶する(ステップS222)。そして、ステップS223へ進む。
もし最多商品数が一番多い商品保管場所が1つでないなら(ステップS220;No)、出荷商品保管場所選出部14は、最多商品数が一番多い商品保管場所の中で、注文元の納品場所に対する優先順位が最も高い商品保管場所を出荷商品保管場所として選出する。出荷商品保管場所選出部14は、優先商品保管場所情報記憶部28を参照することでこの選出を行うことができる。そして、出荷商品保管場所選出部14は、選出した出荷商品保管場所を、商品が納期に届くように出荷予定日を設定して、商品別出荷場所情報記憶部29に記憶する(ステップS221)。そして、ステップS223へ進む。
例えば、注文が「商品x、y、zとも1個ずつ」で、各商品保管場所の出荷可能在庫が、商品保管場所a「商品xが5個、商品yが1個、商品zが1個」、商品保管場所b「商品xが3個、商品yが3個、商品zが2個」だとする。この場合、商品xの在庫数が多いのは商品保管場所aであるため、商品保管場所aに対応する変数Naが1加算されて1になる。そして、商品yの在庫数が多いのは商品保管場所bであるため、商品保管場所bに対応する変数Nbが1加算されて1になる。そして、商品zの在庫数が多いのは商品保管場所bであるため、商品保管場所bに対応する変数Nbが1加算されて2になる。最終的に変数Naは1、変数Nbは2になるので、最多商品数が多い商品保管場所は商品保管場所bとなる。したがって、商品保管場所bが出荷商品保管場所として選出される。
別の例として、注文が「商品x、y、zとも1個ずつ」で、各商品保管場所の出荷可能在庫が、商品保管場所a「商品xが5個、商品yが1個、商品zが2個」、商品保管場所b「商品xが3個、商品yが3個、商品zが2個」だとする。この場合、商品xの在庫数が多いのは商品保管場所aであるため、商品保管場所aに対応する変数Naが1加算されて1になる。そして、商品yの在庫数が多いのは商品保管場所bであるため、商品保管場所bに対応する変数Nbが1加算されて1になる。そして、商品zの在庫数は商品保管場所aも商品保管場所bも同数であるため、商品保管場所aに対応する変数Naにも商品保管場所bに対応する変数Nbにも1加算されてそれぞれ2になる。最終的に変数Naも変数Nbも2になるので、この場合は、優先商品保管場所情報記憶部28を参照して、商品保管場所aと商品保管場所bとで、納品場所に対する優先順位が高い方の商品保管場所が、出荷商品保管場所として選出される。
ステップS223では、制御部10は、変数Fが1であるか否かを判定する(ステップS223)。変数Fが1でないなら(ステップS223;No)ステップS225へ進む。変数Fが1なら(ステップS223;Yes)、今回の注文と同様の納期及び納入先である既存の出荷予定を持つ商品保管場所が存在するということであり、出荷予定日を合わせるために、ステップS224へ進む。
ステップS224では、出荷商品保管場所選出部14は、今回の注文に対応する出荷予定日を、選出した商品保管場所の「納入先が納品場所でありかつ納期に間に合う出荷予定日」になっている既存の出荷予定情報の出荷予定日と一致させる(ステップS224)。そして、ステップS225に進む。
ステップS225では、制御部10は、商品別出荷場所情報記憶部29に記憶されている商品保管場所及び出荷予定日を示す情報を、出力部32に出力させる(ステップS225)。そして、処理を終了する。なお、ステップS209において商品毎に出荷可能商品保管場所を調べても、1つも出荷可能な商品保管場所が無かった場合は、商品別出荷場所情報記憶部29には商品保管場所等に関する情報は1つも記憶されない。ステップS225で制御部10は、商品別出荷場所情報記憶部29に記憶されている商品保管場所等に関する情報が1つも無い場合には、出荷可能な商品保管場所が無いことを出力部32に出力させる(ステップS225)。
実施の形態3では、注文元からの注文に含まれている商品全てを最寄りの商品保管場所から出荷できる場合には最寄り商品保管場所から出荷させることで配送コストを削減することができる。そして、最寄り以外の商品保管場所から出荷する場合には今回の注文と同様の納期及び納入先である既存の出荷予定を持つ商品保管場所を優先的に出荷商品保管場所とすることで、その商品保管場所からの他の出荷商品と今回の注文商品とを一緒に出荷することができる。したがって、これらの商品の注文元への到着日を統一することができるので、注文元の荷受け作業の効率を向上させることができる。
実施の形態3の出荷支援装置102も、実施の形態2と同様に、出荷支援装置と出荷支援サーバとに分散させて実現することで、出荷支援装置での商品保管場所に関する情報の管理負荷を削減することができる。この場合、商品情報記憶部30及び優先商品保管場所情報記憶部28は出荷支援サーバ201の記憶部20の中に置かれ、商品別出荷場所情報記憶部29は出荷支援装置102の記憶部20の中に置かれる。
(実施の形態4)
実施の形態3では、注文に含まれている商品全てを1つの商品保管場所から出荷できない場合は、商品毎に在庫が多い商品保管場所を出荷商品保管場所として選出している。しかし、この商品毎の出荷の際も同じ納入先及び同じ出荷予定日の出荷予定を持つ商品保管場所を優先して選出する実施の形態も考えられる。このような実施の形態である実施の形態4について説明する。
本発明の実施の形態4に係る出荷支援装置103のハードウェア構成は実施の形態1に係る出荷支援装置100と同じであり、図1に示される。そして、本発明の実施の形態4に係る出荷支援装置103の機能ブロック図は、実施の形態3に係る出荷支援装置102の機能ブロック図と同じであり、図5に示される。
出荷支援装置103が行う第3の出荷商品保管場所選出処理は、出荷支援装置102が行う出荷商品保管場所選出処理(図6A及び図6B参照)とステップS209の処理以外は同じである。そこで、ステップS209に代わる処理の詳細を図7A及び図7Bを参照して説明する。
まず、制御部10は、注文された商品の種類数を変数Kにセットする(ステップS301)。次に、制御部10は、注文された商品の種類毎に出荷商品保管場所を選出するため、商品の種類を示すための変数Iに1をセットする(ステップS302)。
次に、制御部10は、変数Iが変数Kより大きいか否かを判定する(ステップS303)。変数Iが変数Kより大きければ(ステップS303;Yes)、注文された商品の全ての種類について出荷商品保管場所の選出を終了したことになるので、商品毎の出荷商品保管場所選出処理を終了し、その後、図6BのステップS225からの処理へ進む。
変数Iが変数K以下であれば(ステップS303;No)、出荷可能商品保管場所情報取得部12が、I番目の商品についての出荷可能商品保管場所全てについて、該出荷可能商品保管場所を示す情報を取得する。ここで、I番目の商品についての出荷可能商品保管場所とは、商品の種類がI番目の商品について、在庫数をその注文数以上持っている商品保管場所のことである。出荷可能商品保管場所情報取得部12は、在庫情報記憶部23に記憶されている在庫情報を参照することにより、I番目の商品についての出荷可能商品保管場所を示す情報である出荷可能商品保管場所情報を取得することができる。そして、出荷可能商品保管場所情報取得部12は、取得した出荷可能商品保管場所情報を出荷可能商品保管場所情報記憶部25に記憶する(ステップS304)。次に、制御部10は、I番目の商品についての出荷可能商品保管場所の有無を判定する(ステップS305)。
出荷可能商品保管場所が無いなら(ステップS305;Yes)、制御部10は、変数Iをインクリメントし(ステップS306)、ステップS303に戻る。出荷可能商品保管場所が有るなら(ステップS305;No)、制御部10は、出荷可能商品保管場所が1つだけであるか否かを判定する(ステップS307)。出荷可能商品保管場所が1つだけなら(ステップS307;Yes)、出荷商品保管場所選出部14は、その1つだけの出荷可能商品保管場所をI番目の商品の出荷商品保管場所として選出する。そして、出荷商品保管場所選出部14は、選出したI番目の商品の出荷商品保管場所を示す情報を、その商品が納期に届くように出荷予定日を設定して、商品別出荷場所情報記憶部29に記憶する(ステップS308)。そして、ステップS306へ進む。
出荷可能商品保管場所が複数あるなら(ステップ307;No)、出荷予定情報取得部13は、通信部33を介して出荷可能商品保管場所のそれぞれの出荷予定情報を全て取得し、出荷予定情報記憶部24に記憶する(ステップS309)。ここで、出荷予定情報は、上述したように、商品保管場所名称、商品保管場所コード、注文元名称、注文元コード、納品場所、納品場所コード、出荷予定日を含む。
そして、出荷商品保管場所選出部14は、注文情報記憶部27に記憶されている「納入先及び納期」を示す情報に基づき、既存の出荷予定情報の中に、今回の注文と同様の納期及び納入先になるものが存在するか否かを判定する(ステップS310)。この判定は、出荷予定情報記憶部24に記憶されている既存の出荷予定情報の中に、注文情報内の納入先が出荷予定情報内の納品場所であり、かつ、注文情報内の納期に間に合う出荷予定日になっている出荷予定情報が有るか否かの判定である。
具体例で説明する。例えば注文元Aの今回の注文が、図15に示すように、納入先が#000301で、納期が12月24日であるとする。そして、各商品保管場所の既存の出荷予定が、図11から1番目の出荷予定日だけ12月22日に変更したものになっているとする。つまり、商品保管場所a「納品場所#000301への出荷予定12月22日、納品場所#000501への出荷予定12月23日」、商品保管場所b「納品場所#000601への出荷予定12月23日」、商品保管場所c「納品場所#000301への出荷予定12月23日、納品場所#000601への出荷予定12月24日」だとする。そして、いずれの商品保管場所からも、注文元Aへの配送に1日要するとする。すると、「納入先である#000301が納品場所になっている」かつ「納期である12月24日に間に合う出荷予定日(12月23日)になっている」出荷予定情報として、図11の1番目と4番目の出荷予定情報が存在することがわかる。
既存の出荷予定情報の中に、今回の注文と同様の納期及び納入先になるものが存在しなければ(ステップS310;No)、制御部10は変数Gをクリアする(ステップS315)。なお、変数Gは、今回の注文と同様の納期及び納入先である既存の出荷予定を持つ商品保管場所が存在するか否かを示すフラグである。そして、出荷商品保管場所選出部14は、出荷可能商品保管場所情報記憶部25に記憶されている出荷可能商品保管場所情報全てを出荷商品保管場所候補記憶部26に記憶する(ステップS316)。そして、ステップS317に進む。
既存の出荷予定情報の中に、今回の注文と同様の納期及び納入先になるものが存在するなら(ステップS310;Yes)、制御部10は変数Gに1をセットする(ステップS311)。そして、出荷商品保管場所選出部14は、出荷予定情報記憶部24に記憶されている出荷予定情報の中から、注文情報内の納入先が出荷予定情報内の納品場所であり、かつ、注文情報内の納期に間に合う出荷予定日になっている出荷予定情報を全て抽出し、その抽出した出荷予定情報内の商品保管場所コードを全て出荷商品保管場所候補記憶部26に記憶する(ステップS312)。
次に、制御部10は、出荷商品保管場所候補記憶部26に記憶されている出荷商品保管場所候補が1つであるか否かを判定する(ステップS313)。出荷商品保管場所候補が1つなら(ステップS313;Yes)、出荷商品保管場所選出部14は、出荷商品保管場所候補を商品の種類がI番目の商品の出荷商品保管場所として選出する。そして、出荷商品保管場所選出部14は、選出した出荷商品保管場所を、その商品が納期に届くように出荷予定日を設定して、商品別出荷場所情報記憶部29に記憶し(ステップS314)、ステップS320へ進む。出荷商品保管場所候補が1つでないなら(ステップS313;No)、ステップS317へ進む。
ステップS317では、出荷商品保管場所選出部14は、商品の種類がI番目の商品の在庫数が一番多い商品保管場所が1つであるか否かを判定する(ステップS317)。もしI番目の商品の在庫数が一番多い商品保管場所が1つだけなら(ステップS317;Yes)、出荷商品保管場所選出部14は、I番目の商品の在庫数が一番多い商品保管場所をI番目の商品の出荷商品保管場所として選出する。そして、出荷商品保管場所選出部14は、選出した出荷商品保管場所を、その商品が納期に届くように出荷予定日を設定して、商品別出荷場所情報記憶部29に記憶する(ステップS319)。そして、ステップS320へ進む。
もしI番目の商品の在庫数が一番多い商品保管場所が1つでないなら(ステップS317;No)、出荷商品保管場所選出部14は、I番目の商品の在庫数が一番多い商品保管場所の中で、注文元の納品場所に対する優先順位が最も高い商品保管場所をI番目の商品の出荷商品保管場所として選出する。出荷商品保管場所選出部14は、優先商品保管場所情報記憶部28を参照することで、この選出を行うことができる。そして、出荷商品保管場所選出部14は、選出した出荷商品保管場所を、その商品が納期に届くように出荷予定日を設定して、商品別出荷場所情報記憶部29に記憶する(ステップS318)。そして、ステップS320へ進む。
ステップS320では、制御部10は変数Gが1であるか否かを判定する(ステップ320)。変数Gが1でないなら(ステップS320;No)ステップS306へ進み、変数Gが1なら(ステップS320;Yes)ステップS321に進む。
ステップS321では、出荷商品保管場所選出部14は、I番目の商品の出荷予定日を、選出した商品保管場所の「納入先が納品場所でありかつ納期に間に合う出荷予定日」になっている既存の出荷予定情報の出荷予定日と一致させる(ステップS321)。そして、ステップS306に進む。
ステップS306では、制御部10は、変数Iをインクリメントし(ステップS306)、ステップS303に戻る。以上の処理によって、全ての商品の種類I(変数Iは1から変数Kまでの値を取る。)について、出荷可能商品保管場所が存在する場合には、最適な出荷商品保管場所が選出される。
例えば、注文が「商品x、y、zとも1個ずつ」で、各商品保管場所の出荷可能在庫が、商品保管場所a「商品xが5個」、商品保管場所b「商品xが3個、商品yが3個」だとする。この場合、商品xの在庫数が多いのは商品保管場所aであるため、商品保管場所aが商品xの出荷商品保管場所として選出される。そして、商品yの在庫数が多いのは商品保管場所bであるため、商品保管場所bが商品yの出荷商品保管場所として選出される。そして、商品zの在庫を持っている商品保管場所は無いため、商品zの出荷可能商品保管場所は無しとなる。
別の例として、注文が「商品x、y、zとも1個ずつ」で、各商品保管場所の出荷可能在庫が、商品保管場所a「商品xが5個、商品zが2個」、商品保管場所b「商品xが3個、商品yが3個、商品zが2個」だとする。この場合、商品xの在庫数が多いのは商品保管場所aであるため、商品保管場所aが商品xの出荷商品保管場所として選出される。そして、商品yの在庫数が多いのは商品保管場所bであるため、商品保管場所bが商品yの出荷商品保管場所として選出される。そして、商品zの在庫数は商品保管場所aも商品保管場所bも同数であるため、優先商品保管場所情報記憶部28を参照して、商品保管場所aと商品保管場所bとで、納品場所に対する優先順位が高い方の商品保管場所が商品zの出荷商品保管場所として選出される。
注文元からの注文に含まれている商品全てを1つの商品保管場所から出荷できない場合は、商品毎に別々の商品保管場所から出荷せざるを得ない。しかし、実施の形態4では、このような場合でも各商品保管場所からの他の出荷商品と一緒に出荷することで、注文元への到着日を極力統一することができ、注文元の荷受け作業の効率を向上させることができる。
実施の形態4の出荷支援装置103も、実施の形態2と同様に、出荷支援装置と出荷支援サーバとに分散させて実現することで、出荷支援装置での商品保管場所に関する情報の管理負荷を削減することができる。この場合、商品情報記憶部30及び優先商品保管場所情報記憶部28は出荷支援サーバ201の記憶部20の中に置かれ、商品別出荷場所情報記憶部29は出荷支援装置103の記憶部20の中に置かれる。
なお、実施の形態3及び実施の形態4においては、変形例として、図6BのステップS225の処理の直前に、以下のような、今回の注文の出荷予定日を選出商品保管場所の出荷予定日に合わせる処理(ステップS226)を追加することもできる。この変形例で新たに追加する処理について説明する。
(変形例)
制御部10は、商品別出荷場所情報記憶部29に記憶されている商品別出荷場所情報に基づき、当該商品保管場所aの出荷予定情報を出荷予定情報記憶部24から取得する。ここで、商品別出荷場所情報は、例えば「商品x、納期n、商品保管場所a、注文元c、出荷予定日d」であるとする。また、取得した出荷予定情報は、例えば、出荷予定情報s=「商品保管場所a、注文元c、納品場所e、出荷予定日f」であるとする。そして、制御部10は、出荷予定情報sに含まれている注文元cへの出荷予定日fの中で、出荷予定日dと一致していないものがあるかを調べる。出荷予定日dと一致していない出荷予定日fがない場合は、商品別出荷場所情報記憶部29に記憶されている情報を変更せずにステップS225へ進む。出荷予定日dと一致していない出荷予定日fがある場合は、その出荷予定日fの中で、商品xの納品が納期nに間に合うものがあるかを調べる。
納期nに間に合う出荷予定日fがないなら、商品別出荷場所情報記憶部29に記憶されている情報を変更せずにステップS225へ進む。納期nに間に合う出荷予定日fがあるなら、商品別出荷場所情報記憶部29に記憶されている出荷予定日dを、その間に合う出荷予定日fに変更する(ステップS226)。そしてステップS225へ進む。この処理において、制御部10は出荷予定日変更部に相当する。
例えば、注文元Aの今回の注文の納期が12月26日で、注文元Aの最寄り商品保管場所(商品保管場所a)の既存の出荷予定情報に「注文元Aへの出荷予定12月24日、注文元Bへの出荷予定12月23日」が含まれているとする。そして、商品保管場所aから注文元Aへの配送日数が1日だとする。すると、今回の注文に対する出荷予定日はステップS206の段階では(納期の配送日数(1日)前ということで)12月25日に設定される。しかし、商品保管場所aの出荷予定情報に含まれている「注文元Aへの出荷予定12月24日」に合わせて今回の注文の商品も一緒に出荷しても、今回の注文の納期(12月26日)までに(12月25日に)注文元Aに届けることができる。しかも、注文元Aは12月25日に過去の注文分とまとめて荷受け作業をすることができる(荷受け作業の効率を向上させることができる)。そこで、このような場合は今回の注文に対する出荷予定日を12月25日から12月24日に変更する。
このステップS226の処理を追加することで、同一注文元への配送商品の注文元への到着日をより一層統一することが可能になり、注文元の荷受け作業の効率をさらに向上させることができる。
また、上述した全ての実施の形態では、配送日数取得部15が取得する配送日数は、商品の種類には関係なく、商品保管場所の住所と納入先の住所とに基づいて取得している。しかし、重い商品の方が軽い商品よりも配送日数が余計にかかる場合及び、大きな商品の方が小さな商品よりも配送日数が余計にかかる場合には、配送する商品のこれらの情報も考慮して配送日数を取得することができる。
このためには、商品の重量及び寸法を示す情報を含む商品情報を記憶した商品情報記憶部30と、配送品の重量及び寸法毎の、配送元から配送先への配送日数が記録されている表(第2の配送日数テーブル)とを用いる。商品情報記憶部30に記憶されている商品情報には商品の重量及び寸法を示す情報が含まれているため、配送日数取得部15は商品保管場所の住所及び納入先の住所に加え商品の重量及び寸法を示す情報もキーにして、第2の配送日数テーブルを参照して商品毎に配送日数を取得する。そして、出荷商品保管場所選出部14は商品毎にその商品の配送日数を、納期から引き算して出荷予定日を設定すれば良い。
このように、配送日数取得部15が商品に応じた配送日数を取得することで、商品毎に配送日数が変わる場合でも、配送商品の注文元への到着日を統一することが可能になり、注文元への荷受け作業の効率を向上させることができる。逆に、商品の重量及び寸法によって配送日数が変化しない場合は、実施の形態3及び実施の形態4において、商品情報記憶部30は無くても良い。
また、上述した全ての実施の形態では、制御部10が、出荷可能商品保管場所を示す情報を取得した後に、その出荷可能商品保管場所についての出荷予定情報を取得して、出荷商品保管場所候補を選出している。しかし、この順番は逆でも良い。つまり、制御部10が、出荷予定情報を先に取得して今回の注文と同様の納期及び納入先になる出荷予定が存在する商品保管場所を全て抽出し、その抽出された全ての商品保管場所の中から今回の注文商品の在庫を持っている商品保管場所を出荷商品保管場所候補として選出しても良い。
また、上述のいずれの実施の形態においても、各機能は、通常のコンピュータによっても実施することができる。具体的には、上記実施の形態では、制御部10が実行するプログラムが、記憶部20のROMに予め記憶されているものとして説明した。しかし、プログラムを、フレキシブルディスク、CD−ROM(Compact Disc Read Only Memory)、DVD(Digital Versatile Disc)及びMO(Magneto−Optical Disc)等のコンピュータ読み取り可能な記録媒体に格納して配布し、そのプログラムをコンピュータに読み込んでインストールすることにより、上述の各機能を実現することができるコンピュータを構成してもよい。そして、各機能をOS(Operating System)とアプリケーションとの分担、又はOSとアプリケーションとの協同により実現する場合等には、OS以外の部分のみを記録媒体に格納してもよい。
さらに、搬送波に各プログラムを重畳し、通信ネットワークを介して配信することも可能である。例えば、通信ネットワーク上の掲示板(BBS,Bulletin Board System)に当該プログラムを掲示し、ネットワークを介して当該プログラムを配信してもよい。そして、これらのプログラムを起動し、OSの制御下で、他のアプリケーションプログラムと同様に実行することにより、上述の処理を実行できるように構成してもよい。
本発明は、本発明の広義の精神と範囲を逸脱することなく、様々な実施の形態及び変形が可能とされるものである。また、上述した実施の形態は、この発明を説明するためのものであり、本発明の範囲を限定するものではない。すなわち、本発明の範囲は、実施の形態ではなく、請求の範囲によって示される。そして、請求の範囲内及びそれと同等の発明の意義の範囲内で施される様々な変形が、この発明の範囲内とみなされる。
本出願は、2016年2月25日に出願された、日本国特許出願特願2016−033722号に基づく。本明細書中に日本国特許出願特願2016−033722号の明細書、特許請求の範囲、図面全体を参照として取り込むものとする。