(57)【要約】【課題】  作業者のスケジュールと機器のスケジュールの効率的な連動を実現し、機器、作業者の両者において効率的かつ正確なスケジューリングを行う。【解決手段】  ジョブを受け付け、デバイススケジュール部で管理される機器の利用時間に作業者による手作業期間を含めた機器の占有時間を計算し（Ｓ１２０２）、オペレータスケジューラで管理される作業者の作業時間と機器の占有時間より、所定の時間帯に作業可能な作業者数を計算し（Ｓ１２０７、Ｓ１２０４）、１つ以上の機器の占有時間に含まれる手作業期間から所定の時間帯の重複手作業数を計算し（Ｓ１２０７、Ｓ１２０４）、作業者数及び重複手作業数に従って機器の利用時間をずらし（Ｓ１２０４、Ｓ１２０５）、デバイススケジュール部によって割り当てられた機器の利用時間と、作業者数及び重複手作業数とに従って作業者の作業時間を更新する（Ｓ１２０７〜Ｓ１２１１）。【選択図】  図１６
2006285784.tif 000002
【特許請求の範囲】
【請求項１】
手作業を必要とする１つ以上の機器を含む印刷システムにおける前記機器及び前記機器を利用する一人以上の作業者のスケジュールを管理するスケジューリングシステムであって、
印刷ジョブを受け付けるジョブ受付手段と、
前記作業者の作業時間を管理するオペレータスケジュール手段と、
前記印刷ジョブに関連付けて前記機器の利用時間を管理するデバイススケジュール手段と、
前記デバイススケジュール手段で管理される前記機器の利用時間に前記作業者による手作業期間を含めた前記機器の占有時間を計算する占有期間計算手段と、
前記オペレータスケジュール手段で管理される前記作業者の作業時間と前記機器の占有時間より、所定の時間帯に作業可能な作業者数を計算する作業者数計算手段と、
１つ以上の前記機器の占有時間に含まれる前記手作業期間から所定の時間帯の重複手作業数を計算する重複手作業数計算手段と、
前記作業者数及び前記重複手作業数に従って前記機器の利用時間をずらす機器利用時間シフト手段と、
前記デバイススケジュール手段によって割り当てられた前記機器の利用時間と、
前記作業者数及び前記重複手作業数とに従って前記作業者の作業時間を更新するオペレータ再スケジュール手段と
を備えたことを特徴とするスケジューリングシステム。
【請求項２】
前記機器利用時間シフト手段は、所定の時間帯における前記重複手作業数が当該時間帯における前記作業者数を超えないように複数のジョブ間で前記機器の利用時間を決定する
ことを特徴とする請求項１に記載のスケジューリングシステム。
【請求項３】
前記オペレータ再スケジュール手段は、所定の時間帯における前記重複手作業数が当該時間帯における前記作業者数を超えた場合に前記作業者の作業時間を再スケジュールする
ことを特徴とする請求項１に記載のスケジューリングシステム。
【請求項４】
前記オペレータ再スケジュール手段は、
前記オペレータスケジュール手段の保持するスケジュール情報の複製を更新した１つ以上のオペレータ仮スケジュールを保持するオペレータ仮スケジュール手段と、
前記デバイススケジュール手段の保持するスケジュール情報の複製を更新した１つ以上のデバイス仮スケジュールを保持するデバイス仮スケジュール手段と、
前記オペレータ仮スケジュールの確定期限を設定しタイムアウトを監視する仮スケジュールタイムアウト手段と、
前記オペレータ仮スケジュールの確定期限内に前記オペレータ仮スケジュール及び前記デバイス仮スケジュールのそれぞれ１つを本スケジュールに確定する仮スケジュール確定手段と、
前記オペレータ仮スケジュールの確定期限を過ぎた際に前記オペレータ仮スケジュール及び前記デバイス仮スケジュールのうちそれぞれ１つ以上の仮スケジュールを破棄する仮スケジュール破棄手段と
を備えたことを特徴とする請求項１又は３に記載のスケジューリングシステム。
【請求項５】
前記機器利用時間シフト手段は、
前記機器の利用時間をずらす際に前記手作業期間と別の前記手作業期間との間の、前記作業者の移動時間を考慮する移動時間考慮機器利用時間シフト手段と、
前記移動時間考慮機器利用時間シフト手段により機器利用時間をずらした結果、さらに手作業期間が重複してしまった場合に作業者の移動時間を含めずに機器利用時間をシフトしなおす機器利用時間再シフト手段と
を備えたことを特徴とする請求項１又は２に記載のスケジューリングシステム。
【請求項６】
前記ジョブを、前記作業者数の範囲内で手作業が行えるように機器の利用時間をシフトするか、前記機器の利用時間をシフトせずに前記作業者数が不足する場合にさらに作業者数を増やすか、いずれかの優先基準を選択する優先基準選択手段をさらに備え、
前記優先基準選択手段の選択結果に従って前記機器利用時間シフト手段あるいは前記オペレータ再スケジュール手段を用いる
ことを特徴とする請求項１乃至５のいずれかに記載のスケジューリングシステム。
【請求項７】
手作業を必要とする１つ以上の機器を含む印刷システムにおける前記機器及び前記機器を利用する一人以上の作業者のスケジュールを管理するスケジューリングシステムのスケジュール方法であって、前記スケジューリングシステムは、前記作業者の作業時間を管理するオペレータスケジュール手段と、前記印刷ジョブに関連付けて前記機器の利用時間を管理するデバイススケジュール手段とを備えており、
ジョブ受付手段によって、印刷ジョブを受け付けるジョブ受付ステップと、
占有期間計算手段によって、前記デバイススケジュール手段で管理される前記機器の利用時間に前記作業者による手作業期間を含めた前記機器の占有時間を計算する占有期間計算ステップと、
作業者数計算手段によって、前記オペレータスケジュール手段で管理される前記作業者の作業時間と前記機器の占有時間より、所定の時間帯に作業可能な作業者数を計算する作業者数計算ステップと、
重複手作業数計算手段によって、１つ以上の前記機器の占有時間に含まれる前記手作業期間から所定の時間帯の重複手作業数を計算する重複手作業数計算ステップと、
機器利用時間シフト手段によって、前記作業者数及び前記重複手作業数に従って前記機器の利用時間をずらす機器利用時間シフト手段と、
オペレータ再スケジュール手段によって、前記デバイススケジュール手段によって割り当てられた前記機器の利用時間と、前記作業者数及び前記重複手作業数とに従って前記作業者の作業時間を更新するオペレータ再スケジュールステップと
を備えることを特徴とするスケジューリング方法。
【請求項８】
前記機器利用時間シフトステップにおいて、所定の時間帯における前記重複手作業数が当該時間帯における前記作業者数を超えないように複数のジョブ間で前記機器の利用時間を決定する
ことを特徴とする請求項７に記載のスケジューリング方法。
【請求項９】
前記オペレータ再スケジュールステップにおいて、所定の時間帯における前記重複手作業数が当該時間帯における前記作業者数を超えた場合に前記作業者の作業時間を再スケジュールする
ことを特徴とする請求項７に記載のスケジューリング方法。
【請求項１０】
前記オペレータ再スケジュールステップは、
前記オペレータスケジュール手段の保持するスケジュール情報の複製を更新した１つ以上のオペレータ仮スケジュールを保持するオペレータ仮スケジュールステップと、
前記デバイススケジュール手段の保持するスケジュール情報の複製を更新した１つ以上のデバイス仮スケジュールを保持するデバイス仮スケジュールステップと、
前記オペレータ仮スケジュールの確定期限を設定しタイムアウトを監視する仮スケジュールタイムアウトステップと、
前記オペレータ仮スケジュールの確定期限内に前記オペレータ仮スケジュール及び前記デバイス仮スケジュールのそれぞれ１つを本スケジュールに確定する仮スケジュール確定ステップと、
前記オペレータ仮スケジュールの確定期限を過ぎた際に前記オペレータ仮スケジュール及び前記デバイス仮スケジュールのうちそれぞれ１つ以上の仮スケジュールを破棄する仮スケジュール破棄ステップと
を備えることを特徴とする請求項７又は９に記載のスケジューリング方法。
【請求項１１】
前記機器利用時間シフトステップは、
前記機器の利用時間をずらす際に前記手作業期間と別の前記手作業期間との間の、前記作業者の移動時間を考慮する移動時間考慮機器利用時間シフトステップと、
前記移動時間考慮機器利用時間シフト手段により機器利用時間をずらした結果、さらに手作業期間が重複してしまった場合に作業者の移動時間を含めずに機器利用時間をシフトしなおす機器利用時間再シフトステップと
を備えることを特徴とする請求項７又は８に記載のスケジューリング方法。
【請求項１２】
優先基準選択手段によって、前記ジョブを、前記作業者数の範囲内で手作業が行えるように機器の利用時間をシフトするか、前記機器の利用時間をシフトせずに前記作業者数が不足する場合にさらに作業者数を増やすか、いずれかの優先基準を選択する優先基準選択ステップをさらに備え、
前記優先基準選択ステップにおける選択結果に従って前記機器利用時間シフトステップあるいは前記オペレータ再スケジュールステップを実行する
ことを特徴とする請求項７乃至１１のいずれかに記載のスケジューリング方法。
【請求項１３】
請求項７乃至１１のいずれかに記載のスケジューリング方法の各ステップをコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スケジューリングシステム及び方法に関し、より詳細には、印刷処理を実行する印刷システムにおけるスケジューリングシステム及び方法並びにプログラムに関する。
【背景技術】
【０００２】
商業的印刷は、第三者（顧客、クライアント）から印刷物（雑誌、新聞、カタログ、広告、グラビア等）の作成依頼を受注し、そのクライアントの所望の印刷物を作成し、それをそのクライアントに納品することでクライアントから報酬を得る。従来、このような商業的印刷業界では、現在でも、オフセット製版印刷機などの大規模な印刷装置等を用いているのが主流である。この印刷業界では、様々な工程を踏んで作業を進めてきた。これらの工程は、入稿、デザインやレイアウト、カンプ（comprehensive；プリンタ出力によるプレゼンテーション）、校正（レイアウト修正や色修正）、校正刷り（プルーフプリント）、版下作成、印刷、後処理加工、発送等である。上述のような印刷機の利用には版下作成を欠かすことができず、一度版下を作成すると、その修正は容易でなく、且つコスト的にかなり不利である。このため、上述の工程は、入念な校正、即ちレイアウトのチェックや色の確認作業が必須である事等に起因する。このように、この業界では、大掛かりな装置を必要とし、尚且つ、クライアントが所望する印刷物を作成するのにある程度の時間も必要であった。しかもこれらそれぞれの作業には専門知識が必要であり、いわば職人と呼ばれる熟練者のノウハウが必要であった。
【０００３】
一方で、最近、電子写真方式の印刷装置やインクジェット方式の印刷装置の高速化、高画質化に伴い、上記のような印刷業界に対抗して、プリント・オン・ディマンド（Ｐｒｉｎｔ  Ｏｎ  Ｄｅｍａｎｄ：以下、ＰＯＤと表記する。）と呼ばれる、市場も出現しつつある。ＰＯＤは、印刷装置で扱うジョブより比較的小ロットのジョブを、大掛かりな装置、システムを用いずに、短納期で取り扱えることを目指している。即ち、ＰＯＤは、上記のような大規模な印刷機、印刷手法に変わって、例えば、ディジタル複写機やディジタル複合機等のディジタル画像形成装置を最大限に活用し、電子データを用いたディジタルプリントを実現する。このようなＰＯＤ市場では、従来の印刷業界に比べてディジタル化が融合し、コンピュータを利用した管理、制御が浸透してきており、コンピュータを利用してある程度、印刷業界のレベルに近づこうとしている。このような背景の中で、ＰＯＤ市場には、コピー・プリントショップ印刷会社の印刷サービスと言われるＰＦＰ（Ｐｒｉｎｔ  Ｆｏｒ  Ｐａｙ）や、企業内社内向け印刷サービスと言われるＣＲＤ（Ｃｅｎｔｒａｌｉｚｅｄ  Ｒｅｐｒｏｄｕｃｔｉｏｎ  Ｄｅｐａｒｔｍｅｎｔ）などが存在する。
【０００４】
上記のような印刷業界やＰＯＤ市場において、印刷物を商品として、その商品の受発注から、梱包、配送、アフターサービス、在庫管理、入金管理までの全ての業務を一括して代行するようなサービスも提供されつつある。しかしながら、それはまだ検討の余地が残されている。
【０００５】
また、上記のような印刷業界やＰＯＤ市場において、生産関連データの収集、加工、報告を通して経営計画と管理業務を支援し、情報を蓄積して、必要なとき、必要な部署に提供することができるようなシステムも検討されている。しかしながら、最適なシステムの実現・運用化には、まだ至っていないのが実情である。
【０００６】
また、上記のようなＰＯＤ市場では、従来の印刷業界ほどスキルのある作業者が雇えないのが現状であり、低コストにてジョブを仕上げたい、少ない投資で商売を行いたい、ＴＣＯ（Ｔｏｔａｌ  Ｃｏｓｔ  ｏｆ  Ｏｗｎｅｒｓｈｉｐ）を削減したい、等の要望も出ている。しかしながら、ＰＯＤはまだ新しい市場のために、このような要望に、十分に対応しきれていないのが実情であり、解決すべき問題点が残されている。
【０００７】
上記のようなＰＯＤシステムにおいても従来の印刷システムと同様に、印刷物の受注に対してオペレータおよびデバイス（印刷装置）の最適なスケジューリングを行うシステムが利用されている。
【０００８】
複数のデバイスのオペレーション（手作業）を並行して処理するＰＯＤのような作業形態においては、オペレータのスケジュール（勤務時間割り当て）とジョブのデバイスへの割り当てスケジュールの両方を最適化する必要がある。
【０００９】
ＰＯＤのような作業形態においては、デバイスによる自動処理の合間にオペレータによる手作業が入るため、１台のデバイスに対して必ずしも１人のオペレータを必要とするわけではない。しかし、手作業を行うタイミングが重複する場合や、オペレータがデバイス（ジョブ）からデバイス（ジョブ）へ移動する時間がかかる場合（スペースが広い場合など）には、デバイスに割り当てられたジョブを中断しないためにも複数人のオペレータが必要となる場合がある。
【００１０】
ここで、従来技術として、特定のオペレータの手作業期間が重複しないように複数のジョブの間で割り当て期間をずらす技術がある。これにより、デバイスの台数に合わせて多くのオペレータを配置することなく効率的なジョブのスケジューリングを行うことが出来る。ただし、スケジューリングの際に所定のオペレータを対象とするために、必ずしも最適なスケジューリングが行えるとは限らない。この例ではうまくスケジューリングが出来なかった場合にはエラーを通知してスケジューリングの担当者に知らせている（特許文献１参照）。
【００１１】
また、別な従来技術として、作業者のスケジュール、熟練度、勤務時間を考慮したスケジューリングを行う技術がある。これにより、オペレータのスケジュールに合わせて効率よくジョブのスケジューリングを行うことが出来る（特許文献２参照）。
【００１２】
【特許文献１】特開平１０−２４４４４７号公報
【特許文献２】特開平７−３１９３３８号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
オペレータの人件費を考慮すれば、できる限り少ない人数でオペレータスケジュールを組む必要がある。一方、デバイスの稼働率を高めたり、納期を守るためには余裕のあるオペレータスケジュールを組む必要が有る。さらに、正確なジョブスケジュールを行うためにもデバイスに割り当てられるジョブスケジュールにおいて、オペレータが行う手作業期間を考慮したスケジュールの最適化が必要となる。
【００１４】
しかし、特許文献１や特許文献２の例では、予め定められたオペレータスケジュールに従って、ジョブのデバイス割り当てを行っていくと、多くのジョブが要求された際には最終的に手作業期間の重複を避けられない。このため、スケジュール通りのジョブ遂行が行われなくなる可能性がある。その結果、納期を守れない、続くジョブのスケジュール見積もりが更に不正確になる（正確な納期を算出できない）、非効率（デバイスやオペレータが遊んでいる時間がある）という解決すべき課題が従来技術にはあった。また、オペレータスケジュールを無視した急ぎのジョブなどを受注することが出来ないという解決すべき課題が従来技術にはあった。
【００１５】
本発明は、このような課題に鑑みてなされたもので、その目的とするところは、作業者のスケジュールと機器のスケジュールの連動により、作業者と機器の両者において効率的かつ正確なスケジューリングを行う、スケジューリングシステム及び方法を提供することにある。
【課題を解決するための手段】
【００１６】
このような目的を達成するために、本発明のスケジューリングシステムは、手作業を必要とする１つ以上の機器を含む印刷システムにおける前記機器及び前記機器を利用する一人以上の作業者のスケジュールを管理するスケジューリングシステム（１０３）であって、印刷ジョブを受け付けるジョブ受付手段（Ｓ１２０２）と、前記作業者の作業時間を管理するオペレータスケジュール手段（２０２）と、前記印刷ジョブに関連付けて前記機器の利用時間を管理するデバイススケジュール手段（２０３）と、前記デバイススケジュール手段で管理される前記機器の利用時間に前記作業者による手作業期間を含めた前記機器の占有時間を計算する占有期間計算手段（図７）と、前記オペレータスケジュール手段で管理される前記作業者の作業時間と前記機器の占有時間より、所定の時間帯に作業可能な作業者数を計算する作業者数計算手段（Ｓ１２０７、Ｓ１２０４）と、１つ以上の前記機器の占有時間に含まれる前記手作業期間から所定の時間帯の重複手作業数を計算する重複手作業数計算手段（Ｓ１２０７、Ｓ１２０４）と、前記作業者数及び前記重複手作業数に従って前記機器の利用時間をずらす機器利用時間シフト手段（Ｓ１２０４、Ｓ１２０５）と、前記デバイススケジュール手段によって割り当てられた前記機器の利用時間と、前記作業者数及び前記重複手作業数とに従って前記作業者の作業時間を更新するオペレータ再スケジュール手段（Ｓ１２０７〜Ｓ１２１１）とを備えたことを特徴とする。
【００１７】
また上記目的を達成するために、本発明のスケジューリング方法は、手作業を必要とする１つ以上の機器を含む印刷システムにおける前記機器及び前記機器を利用する一人以上の作業者のスケジュールを管理するスケジューリングシステムのスケジュール方法であって、前記スケジューリングシステムは、前記作業者の作業時間を管理するオペレータスケジュール手段と、前記印刷ジョブに関連付けて前記機器の利用時間を管理するデバイススケジュール手段とを備えており、ジョブ受付手段によって、印刷ジョブを受け付けるジョブ受付ステップと、占有期間計算手段によって、前記デバイススケジュール手段で管理される前記機器の利用時間に前記作業者による手作業期間を含めた前記機器の占有時間を計算する占有期間計算ステップと、作業者数計算手段によって、前記オペレータスケジュール手段で管理される前記作業者の作業時間と前記機器の占有時間より、所定の時間帯に作業可能な作業者数を計算する作業者数計算ステップと、重複手作業数計算手段によって、１つ以上の前記機器の占有時間に含まれる前記手作業期間から所定の時間帯の重複手作業数を計算する重複手作業数計算ステップと、機器利用時間シフト手段によって、前記作業者数及び前記重複手作業数に従って前記機器の利用時間をずらす機器利用時間シフト手段と、オペレータ再スケジュール手段によって、前記デバイススケジュール手段によって割り当てられた前記機器の利用時間と、前記作業者数及び前記重複手作業数とに従って前記作業者の作業時間を更新するオペレータ再スケジュールステップとを備えることを特徴とする。
【００１８】
以上の構成により、機器のスケジュールを行い、その際作業者の手作業の重複を適切に回避し、機器のスケジュール結果を作業者のスケジュールに反映する。
【００１９】
なお、特許請求の範囲の構成と対応する実施形態を（）で示した。ただし、特許請求の範囲に記載した構成要素は上記（）部の実施形態の構成要素に限定されるものではない。
【発明の効果】
【００２０】
本発明によれば、作業者のスケジュールと機器のスケジュールの効率的な連動を実現し、機器、作業者の両者において効率的かつ正確なスケジューリングを行うことが出来る効果を奏する。
【発明を実施するための最良の形態】
【００２１】
以下、図面を参照して本発明を適用できる実施形態を詳細に説明する。なお、本明細書で参照される各図面において同様の機能を有する箇所には同一の符号を付している。
【００２２】
第１の実施形態
以下、本発明の第１の実施形態について図面を参照して詳細に説明する。
【００２３】
（装置構成）  
図１は、本印刷システム全体の基本構成の一例を示すブロック図である。本印刷システムは、１つ又は複数のエンドユーザ環境と、インターネットを介して接続されているＰＯＤ（Ｐｒｉｎｔ  Ｏｎ  Ｄｅｍａｎｄ）サイト環境から成る。
【００２４】
エンドユーザ環境には、プリントの発注依頼を行う発注者が存在する。それぞれのエンドユーザ環境（ここでは、エンドユーザ環境Ａ及び、エンドユーザ環境Ｂ）からそれぞれのクライアントＰＣを利用して、プリントジョブの依頼を始めとして、ジョブのステータス確認などができる。
【００２５】
一方、ＰＯＤサイト環境においては、工程管理部１０１、プリプレス部、ディジタルプリント部、そしてポストプレス部の４つの工程部から成り立っている。
【００２６】
工程管理部１０１は、ＰＯＤサイト環境における、プリプレス部、ディジタルプリント部、ポストプレス部の各工程に対して作業を指示し、コンピュータや各種デバイスにより構成される本システムのワークフローを一元管理する部分である。工程管理部１０１は、前述のエンドユーザからジョブを受信し、エンドユーザからのジョブを保管し、エンドユーザからのジョブの指定に基づいて各工程における作業をワークフローとして組み立てる。そして工程管理部１０１は、各デバイスや各作業者における作業を効率よくスケジュールする。
【００２７】
プリプレス部は、工程管理部より受信したプリプレスジョブの作業指示に基づいて、スキャナ／ＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ：マルチファンクション周辺機器）等のスキャンデバイスを用いてエンドユーザから受け取った紙原稿をスキャンする。そして、プリプレス部は、スキャン画像ファイルをプリプレスサーバやクライアントＰＣに取り込むとともに、画像補正やファイルのマージ、ページの挿入／削除、各種ページレイアウト編集、面付け処理を実行する。またプリプレス部は、必要に応じて最終成果物のレイアウトや色味を確認するためのプルーフ出力を実行する。
【００２８】
ディジタルプリント部は、工程管理部あるいはプリプレス部より受信したプリントジョブの作業指示に従って、白黒ＭＦＰやカラーＭＦＰ等によりエンドユーザから受け取った紙原稿をコピーする。また、ディジタルプリント部は、クライアントＰＣからプリンタドライバやホットフォルダを経由して、エンドユーザから受信した文書／画像ファイル、スキャンデバイスによりスキャンしたスキャン画像ファイル、それらを編集した文書／画像ファイルを白黒ＭＦＰやカラーＭＦＰ等のプリントデバイスにプリントアウトする。
【００２９】
ポストプレス部は、工程管理部あるいはプリプレス部あるいはディジタルプリント部より受信したポストプレスジョブの作業指示に従って、紙折り機、中綴じ製本機、くるみ製本機、断裁機、封入機、帳合機等の後処理デバイスを制御する。またポストプレス部は、ディジタルプリント部より出力された記録紙に対して、紙折り、中綴じ製本、くるみ製本、断裁、封入、帳合等の仕上げ処理を実行する。
【００３０】
図２は、工程管理部１０１の構成の一例を示すブロック図である。工程管理部は、ネットワークに接続されたＭＩＳ（Ｍａｎａｇｅｍｅｎｔ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｓｙｓｔｅｍ）サーバ、受注サーバ１０３、ファイルサーバ、それらサーバのクライアントマシンであるクライアントＰＣ１０１などから成り立つ。
【００３１】
ここで、ＭＩＳサーバは、受注から納品までのシステム全体のワークフローを管理すると共に、様々な経営情報や販売情報を統括的に管理するシステムにおけるサーバである。
【００３２】
受注サーバは、インターネットを利用して、エンドユーザ環境からジョブを受信するサーバである。受信したジョブは、ジョブのＩＤ番号で管理され、ＩＤ番号と管理上必要となる情報はＭＩＳサーバに伝えられ、ＭＩＳサーバの指示に従って、画像データなどのそれ以外の情報を一緒に下流の工程に伝える。
【００３３】
ファイルサーバは、エンドユーザからの同一原稿による再発注に備えて、エンドユーザから受信したジョブを保管するため文書管理サーバである。一般に、画像データと前回出力の際のジョブの設定情報（ジョブチケット）を一緒に保存してある。
【００３４】
工程管理部におけるこれらのＭＩＳサーバ、受注サーバ、ファイルサーバ、クライアントＰＣ間でやり取りされる情報は、ＪＤＦ（Ｊｏｂ  Ｄｅｆｉｎｉｔｉｏｎ  Ｆｏｒｍａｔ）と呼ばれるジョブの作業指示を記載したジョブチケットなどを利用して情報交換される。ジョブを転送し、制御コマンドを発行し、工程管理部を中心にプリプレス部、ディジタルプリント部、ポストプレス部が連携をとってトータルなワークフローの自動化を提供している。
【００３５】
工程管理部の受注サーバ１０３においては受注したジョブに対応するデバイスの割り当て行うが、各種デバイスの動作に伴って必要とされる手作業を行うためのオペレータのスケジュール管理も行う。オペレータ及びデバイスのスケジュールは、ＰＯＤサイト環境を維持する印刷業者によって、受注サーバ１０３にインストールされているオペレータスケジュール管理アプリケーション及びデバイススケジュール管理アプリケーションを用いて管理されている。
【００３６】
図３は、受注サーバ１０３と通信するクライアントＰＣ１０２に表示される、印刷業者がオペレータ（作業担当者）のスケジュールを管理するための管理画面構成（オペレータスケジュール管理アプリケーションの設定画面）の一例を示す図である。
【００３７】
オペレータスケジュール管理アプリケーションの設定画面の上側には、「ファイル」「オペレータ」「表示」「スケジュール」「ツール」「ヘルプ」といったようなメニューが配置されている。オペレータはこれらメニューを選択し、オペレータスケジュール管理アプリケーションにおける各種処理を実行する。
【００３８】
画面左上に配置されているカレンダーは、表示すべきスケジュールの表示範囲を選択するためのものである。本画面の例では、２００３／１２／１６を含む1週間が選択されている。
【００３９】
「作業者情報」には、「名前」「役職」「場所」「残業超過時間」「コメント」等の選択されているオペレータに関する情報が表示される。
【００４０】
「週間」タブと「月間」タブには、それぞれ週間スケジュールと月間スケジュールが表示され、予約済みのオペレータのスケジュールとして、オペレータが勤務する時間帯の矩形領域が表示される。
【００４１】
本画面の例では、作業者Aの２００３／１２／１６の領域が選択され、「作業者A」という名前の作業者の情報が表示されている場合を示している。また、「作業者A」「作業者B」「作業者C」「作業者D」の週間スケジュールが表示されている場合を示している。
【００４２】
図４は、受注サーバ１０３と通信するクライアントＰＣ１０２に表示される、作業者が受発注オーダーのデバイス割り当てスケジュールを管理するための管理画面構成（デバイススケジュール管理アプリケーションの表示画面）の一例を示す図である。
【００４３】
デバイススケジュール管理アプリケーションの設定画面の上側には、「ファイル」「デバイス」「表示」「スケジュール」「ツール」「ヘルプ」といったようなメニューが配置されている。オペレータはこれらメニューを選択し、デバイススケジュール管理アプリケーションにおける各種処理を実行する。受注サーバにおいては受注に対するデバイスの割り当てを自動的に行うため、デバイススケジュール管理アプリケーションにおいては、基本的にデバイススケジュール及び対応するオペレータの割り当てを確認するだけである。
【００４４】
画面左上に配置されているカレンダーは、表示すべきスケジュールの日付を選択するためのものである。本画面の例では、２００３／１２／１６が選択されている。
「デバイス情報」には、「名称」「種類」「場所」「速度」「コメント」等の選択されている予約において使用されるデバイスの情報が表示される。
【００４５】
「予約情報」には、「件名」「種類」「日付」「時間」「作業者」「コメント」といったような選択されている予約における予約情報が表示される。
【００４６】
「１日」タブと「週間」タブには、それぞれ１日スケジュールと週間スケジュールが表示され、予約済みのスケジュールとして、使用されるデバイスの該当する時間帯の矩形領域に予約の件名と作業者による手作業タイミングと期間の情報が表示される。矩形領域内の「O」で示されている領域の期間がオペレータが手作業を行う期間である。
【００４７】
本画面の例では、「Ｂ」という名称の「モノクロプリンタ」における「１０：００−１２：００」の時間帯にある「マニュアル増刷」という件名の予約が選択されている場合を示している。更に、この予約に関する手作業を行うオペレータが作業者Cと作業者Ａである旨が示されている。
【００４８】
図５は本実施形態における、オペレータ及びデバイスのスケジューリングに関するシステム（受注サーバ１０３）の構成例を示すブロック図である。図５において図中符号２００は受注したジョブからデバイスの選択及びその占有時間を計算する占有時間計算部、２０１は占有時間計算部２００において利用するデバイス情報データベースである。２０２はオペレータスケジューラ、２０３はデバイスの割り当てを自動的に行うデバイススケジュール部、２０４はデバイススケジュール表示部である。２０５はデバイススケジュール部２０３においてオペレータの再スケジュールが発生した場合にオペレータスケジューラ２０２に対して再スケジュール予約を行うオペレータ再スケジュール部である。
【００４９】
ここで、２０２は図３に示すユーザインタフェースのアプリケーションに、２０４は図４に示すユーザインタフェースのアプリケーションに対応する。
【００５０】
（動作説明）  
図６は図５におけるオペレータスケジューラ２０２において保持され図３のように表示されるオペレータスケジュールのデータ構造の例を示す図である。
【００５１】
図６において左に示されている配列構造はオペレータスケジュールデータのメイン構造であり、オペレータスケジュールを参照する際の入り口となる。図６においては説明のために配列の一部分のみ示されており、図中符号３００は２００３／１２／１５の日付のオペレータスケジュール、同じく３０１は２００３／１２／１６、３０２は２００３／１２／１７の日付のデータを示している。なお、２００３／１２／１７の日付単位での詳細データ構造については省略している。
【００５２】
また、図６において右に示されている個別のデータ構造は各作業者に関する情報を保持しているデータ構造である。図６においてはオペレータスケジュールに関する情報の持ち方を示すことを目的としているため、個別のデータ構造として省略して記述している。しかし、これらはそれぞれ、図３で示している作業者情報を表示できる十分な情報を保持しており、また作業者毎に個別に識別可能なデータ構造であれば任意のデータ構造でよい。
【００５３】
図６について更に詳細に説明する。日付単位のデータ構造は更にオペレータ単位のスケジュールのリスト構造と時間単位のオペレータの割り当てリスト構造から成る。
【００５４】
３０３は３００の示す２００３／１２／１５におけるオペレータ単位のスケジュールリストへのポインタを保持するデータである。図６において、３０３から４０４を参照していることを矢印で示している。
【００５５】
４０４はオペレータを基準とした１つのスケジュールを示すデータ構造である。このデータ構造は線形リスト構造をもっており、４０４のメンバである４０８からさらに４０９を参照している。４０４のデータ構造はさらに作業者情報へのポインタ４０５、勤務開始時間４０６、勤務終了時間４０７、次のスケジュールへのポインタ４０８から成る。４０５は４０４のデータが示すオペレータスケジュールに対応するオペレータを示す作業者情報データ構造４１４へのポインタを保持している。４１４の詳細情報である４１５より４０４のデータ構造は「作業者A」のスケジュールであることが分かる。４０６は「作業者A」の２００３／１２／１５の勤務開始時間である「６：００」というデータを保持している。４０７は「作業者A」の２００３／１２／１５の勤務終了時間である「２１：００」というデータを保持している。４０４からリストで続く４０９も同様に２００３／１２／１５の別のオペレータスケジュールを示している。４１３ではさらに続くデータ構造が無いことを示すNULLポインタを表している。
【００５６】
４１４はオペレータスケジューラに登録されている一人分の作業者情報である。４１４の詳細情報として、４１５に作業者名「作業者A」、４１６に作業者の種別「主任」、４１７にさらにその他の情報を図示している。同様に４１８は、４１９に作業者名「作業者B」、４２０に作業者種別「一般職」、４２１にその他情報を示しており、４２２は、４２３に作業者名「作業者C」、４２４に作業者種別「一般職」、４２５にその他情報を示している。
【００５７】
３０４は３０３と同様にオペレータ単位スケジュールリストへのポインタであり、３０１の示す２００３／１２／１６におけるスケジュールリストを指している。
【００５８】
時間単位のオペレータ割り当てデータ構造は２００３／１２／１６の日付を例に説明する。時間単位のオペレータ割り当て情報は３０分単位で保持されている。一日を４８分割し、３０分単位で情報を持つような配列を保持する。細部は略記されているが、３０５は「７：３０から８：００まで」に対応するリストへのポインタ、同じく３０６は「８：００から８：３０まで」、３０７は「１２：３０から１３：００まで」に対応するリストへのポインタを保持する。３０８は「１３：００から１３：３０まで」、３０９は「１３：３０から１４：００まで」に対応するリストへのポインタを保持する。
【００５９】
「１３：３０から１４：００」の時間帯を例にさらに先のデータ構造を説明する。３０９は「２００３／１２／１６の１３：３０から１４：００」に勤務する予定のオペレータのリストを指すポインタである。参照先のデータ構造は線形リスト構造と成っている。４００は対応する時間帯の一人目のオペレータを示すポインタであり、「作業者A」を示す４１４を指している。４０１はリストの次を指すポインタである。４０２は次のオペレータを示すポインタであり、「作業者B」を示す４１８を指している。４０３の次を示すポインタはNULLポインタと成っており、「２００３／１２／１６の１３：３０から１４：００」に勤務する予定のオペレータは「作業者A」と「作業者B」の二人であることが分かる。
【００６０】
図３に示すオペレータスケジューラの画面において、オペレータの勤務スケジュールが予約入力されると図６に示す対応する日付のオペレータ単位のスケジュールリスト構造に追加される。さらに、スケジュールは３０分単位で分割され、時間単位のオペレータの割り当てリスト構造の対応する位置にもデータが追加される。
【００６１】
勤務スケジュールを削除する場合も同様に二種類のリスト構造の両方から対応するデータを削除する。線形リスト構造は公知の技術で実現可能であり、リスト構造そのものの編集に関わる詳細については省略する。なお、本実施形態においては３０分単位のリスト構造を示しているが、これに限らず任意の時間単位を用いることも可能である。
【００６２】
次に図５における占有時間計算部２００での処理についてフローチャートを基に説明する。図７は本実施形態におけるデバイスの使用予約を行う際に予約に必要な占有時間を計算する手順を示したフローチャートである。図７の処理手順は、受注サーバ１０３のＣＰＵ（central processing unit）（不図示）がメモリ（不図示）から、その処理のためのプログラムを読み出して実行することにより行われる。
【００６３】
図７において、ＣＰＵはジョブの受注があると、ステップS１０００から計算の処理を開始する。
【００６４】
ステップS１００１においてＣＰＵは、受注したジョブに適したデバイスを選択する。選択に際しては、ジョブが要求する機能を持ったデバイスを任意の基準、選択手段に従って選択してよい。例えば、両面印刷を指定されているジョブの場合には両面印刷機能を持ったデバイス、カラー印刷を指定されているジョブの場合にはカラープリンタ、といった選択が可能である。本実施形態におけるシステムの持つデバイスの選択肢については、図５におけるデータベース２０１のデバイスデータから取得できるものとする。
【００６５】
次にステップS１００２において、ＣＰＵは手作業などの例外条件を無視してジョブの部数指定、ジョブ設定から当該ジョブにかかる総時間を計算する。この計算は選択したデバイスの情報より容易に計算可能である。例えば、1分間に６０ページの印刷が可能なプリンタにおいて、６００ページの印刷物を３０部印刷するためには６００＊３０／６０＝３００[分]、すなわち5時間ということになる。例外条件を無視した総時間の計算はデバイス固有の静的な情報である印刷速度（ここでは６０ページ／分）とジョブごとの情報（ここでは６０ページ印刷、３０部印刷）があれば決まった計算式により可能となる。デバイス固有の情報についても図５におけるデバイスデータ２０１より得られるものとする。
【００６６】
そして、ステップS１００３でＣＰＵは当該デバイスに関わる手作業要因情報をデバイスデータ２０１より引き出す。そして、ステップS１００４においてＣＰＵは手作業要因情報に従って手作業が入るタイミングとそのタイミングでの手作業時間を計算し、手作業の（タイミング、時間）のリストを作成する。
【００６７】
ステップS１００５でＣＰＵは他にも手作業要因があるかを確認し、存在する場合（Yes.）にはステップS１００３の処理へ戻り、同様の処理を繰り返す。無い（No.）場合ＣＰＵはステップS１００６の処理へ進む。
【００６８】
ステップS１００６でＣＰＵは計算した手作業の（タイミング、時間）リストを合成し１つのリストにマージする。
【００６９】
ステップS１００７にてステップS１００２で計算した総時間に対して手作業リストを適用しデバイスの動作時間を分割する。
【００７０】
ステップS１００８においてＣＰＵは手作業時間を含むデバイスの占有時間リストを作成する。ステップS１００９で占有時間計算を終了する。
【００７１】
次に図７に示す処理を図８を参照し具体的な例で説明する。図８は図７のフローチャートに示す処理の一例を示した図である。
【００７２】
図８において図中符号５００はステップS１００２にて計算された手作業無視のデバイス使用総時間である。図８は横方向で時間方向の長さを示している。
【００７３】
図８の例では選択されたデバイスに５０１、５０２、５０３、５０４の四つの手作業要因があることを示している。５０１と５０２はジョブの開始から所定周期で入る手作業であり、手作業が入るタイミングを示した横線で示されている。５０３は開始時に一回入る手作業であり、５０４は終了時に一回入る手作業である。
【００７４】
５０１は給紙の補給を示している。ジョブ開始時に既に以前の用紙が残されているため、補給周期の開始タイミングが仮想的にジョブ開始以前になっていることを５０５の点線で示されたタイミングが示している。５０５から計算して一定周期で５０６、５０７、５０８、５０９と用紙補給の手作業が入る計算になることを図８は示している。なお、５０９はジョブの終了後のタイミングとなるため、５０９に対応する手作業は実際には行われない。５０６、５０７、５０８のタイミングにおいてそれぞれ５１５、５１６、５１７で示される期間の手作業が行われることを示している。
【００７５】
５０２は出力物を排紙トレイから移動するために排紙トレイに関連した作業を行うことを示している。５０２についても開始から一定周期で５１１、５１２、５１３と手作業が入る計算になることを図８は示している。５１３はジョブ終了後となるタイミングであるが、実際はジョブ終了直後に排紙トレイからの移動が行われるため、５０４の手作業４で別途タイミングを定めている。５１１、５１２のタイミングにおいてそれぞれ５１９、５２０で示される期間の手作業が行われることを示している。
【００７６】
５０３はジョブ開始時のデバイスのセットアップ等を示している。５０３はタイミングとしてはジョブの開始タイミング一回の固定であり、５１４で示される期間の手作業が行われることを示している。
【００７７】
５０４はジョブ終了後のデバイスのセットアップ等を示しており、排紙トレイからの出力物の最後の移動についても含んでいる。タイミングとしてはジョブの終了タイミング一回の固定であり、５２１で示される期間の手作業が行われることを示している。
【００７８】
５０１、５０２、５０３、５０４が示す各手作業は図７のフローチャートにおけるステップS１００３でデバイスデータより引き出す手作業要因に対応している。
【００７９】
５２２は５００で示されるデバイス使用総時間を手作業５０１、５０２、５０３、５０４に従って分割している様子を示している。その結果、５３０、５３１、５３２、５３３、５３４、５３５の６つの領域に分割されている。各時間範囲はオペレータの手作業が入らずにデバイスのみで稼動している時間に対応する。
【００８０】
５２２に示される分割範囲の計算は図７のフローチャートにおけるステップS１００６における手作業タイミングのマージと及びステップS１００７の総占有時間の分割に対応する。
【００８１】
最後に５２３に示す最終的なデバイスの占有時間が求められる。図８に示すように分割されたデバイス稼働時間の間にオペレータの手作業時間が挿入されている。前から順に５３７は５１４に、５３８は５３０に、５３９は５１５に、５４０は５３１に、５４１は５１９に、５４２は５３２に、５４３は５１６に、５４４は５３３に、５４５は５２０に、５４６は５３４に、５４７は５１７に、５４８は５３５に、５４９は５２１に対応している。
【００８２】
次に手作業要因に関する情報の保持について説明する。図９は本実施形態における手作業情報のデータ構造の例である。図９に示すデータ構造は図５におけるデバイスデータ２０１に予め記録されており、図７に示すステップS１００３において選択されたデバイスに対応して引き出される。図９では図８における手作業５０１に対応する例を示している。
【００８３】
図９において図中符号６００はデバイス名称であり、この値を基に適切なデータが選択される。図においては「Ｂ」と記録されていることを示している。
【００８４】
６０１は作業名である。図８においてデバイス占有時間に挿入された手作業期間にオペレータが行う手作業の内容がここに記述されている。図９においては「カセット１給紙」と記録されていることを示している。
【００８５】
６０２は手作業の種別である。手作業の種別にはその手作業が入るタイミングの種類が記録されている。図９においては「周期タイプ」が記録されており、図８に示す５０１や５０２のような所定の周期で手作業が入ることを示すものである。６０２に記録される手作業タイプには他に、ジョブの開始から所定時間後1回のみ挿入される「所定時間タイプ」、及びジョブの終了時に挿入される「終了時タイプ」といった値を持つことができる。
【００８６】
６０３は手作業が入るタイミングを計算するための計算式である。計算式に使用される演算子、変数は本実施形態におけるシステムで予め定義されているものである。図９においては「amount * pages * 10 / cas1cap」と記録されていることを示しており、出力部数（amount）に1部当たりのページ数（pages）と定数10を掛け、給紙積載容量（cas1cap）で割っている。ここで、部数やページ数といったジョブの属性はジョブを受注した際に受け付けたジョブチケットに記録されている情報を用い、給紙積載容量のようなデバイスの能力についてはデバイスに問い合わせることによって取得できる。また、給紙積載容量を用いた式であることから図８における５０５のようなオフセット値も計算される。なお、６０３へは公知の技術により任意の式を記述可能かつ計算可能であり、用紙残量を考慮するにあたっては明示的にタイミングのオフセット値を含むような式で記述できることは言うまでも無い。
【００８７】
６０４はそのタイミングにおける手作業の時間を示すものである。図８においては５１５、５１６、５１７で示しているところの期間に相当する情報である。図９においては定数の１０が記録されていることを示している。なお、６０４についても６０３と同様に動的な値を得られる式を記述することが可能である。
【００８８】
６０２において「所定時間タイプ」となっている場合には６０３における記述内容はジョブ開始時点より手作業が挿入されるタイミングを計算するための式あるいは定数となる。６０２において「終了時タイプ」となっている場合には６０３の記述内容は無視される。
【００８９】
図８における５２３に示すデバイス占有時間におけるオペレータ作業挿入期間は図４におけるスケジュール表示例の中で「O」で示される部分で表示されることとなる。次に、図５におけるデバイススケジュール部２０３で計算し保持されデバイススケジュール表示部２０４によって図４のように表示されるデバイススケジュールのデータ構造について説明する。
【００９０】
図１０は本実施形態におけるデバイススケジュールのデータ構造の例を示した図である。図１０に示すデータ構造では後述するデバイススケジュールの仮予約のためにスケジュールデータが仮予約のレベルに対応した多重構造と成っている。まず、図１０における図中符号７００が、このデバイススケジュール全体を参照する入り口となる部分である。最初の構造は線形リスト構造となっており、リストを辿るごとに仮予約のベースとなっている元スケジュールを参照できるようになっている。図１０の例においては最初の７０１は2回目の増員予約を想定したデバイススケジュール７３０へのポインタを保持している。７０２を辿って次の７０３は１回目の増員予約を想定したデバイススケジュール７１０へのポインタを保持している。さらに７０４を辿ると増員予約を含まない、すなわち確定したオペレータスケジュールに基づくデバイススケジュール７２０へのポインタを保持している。７０５は確定スケジュールであるため、その後の７０６は辿る先の無いNULLポインタと成っていることを示している。７１０、７２０、７３０のデータ構造はいずれも同じ構成を持っているため、７３０を例にデータ構造の詳細を説明する。
【００９１】
７３０はデバイスを基準としたデバイススケジュールデータの配列である。デバイスを識別するデバイス名とそのデバイスに対応するスケジュール詳細データへのポインタからなる対の配列となっている。図１０において７３１は「Device A」というデバイス名称、７３２は「Device A」のデバイススケジュール詳細データへのポインタを示している。７３３は「Device B」というデバイス名称、７３４は「Device B」のデバイススケジュール詳細データへのポインタを示している。７３５は「Device C」というデバイス名称、７３６は「Device C」のデバイススケジュール詳細データへのポインタ、を示している。
【００９２】
「Device A」についての７３２を辿ると線形リスト構造で保持されたジョブスケジュールのリストへ行く。７４０はジョブの開始時刻、７４１はジョブの終了時刻、７４２はジョブの詳細情報、７４３は手作業情報へのポインタ、７４４は次のジョブスケジュールへのポインタ、を示す。７４４以降は７４０から７４４と同じ構造が続き、「Device A」に関するジョブスケジュールが時系列順に保持されている。
【００９３】
７４３から参照するデータ構造７５０は線形リスト構造で保持された手作業のリストである。７５０は７４２で示されるジョブにおける手作業に関する情報を時系列で保持している。より具体的には７５０は手作業情報へのリンクのみを保持しており、実際の手作業情報は更に７６０からの線形リスト構造で示されるデータ構造に保持されている。７５０における線形リストは更に参照している手作業情報に関して時系列順に保持している。図１０において７５１は７６２を、さらに７５２を辿った先の７５３は７６４を参照していることを示している。図１０では省略しているが、以降同様に７５０の線形リストの各ノードは７６０の所定の情報を参照するようになっている。
【００９４】
７６０のデータ構造はデバイスによらず、７３０からのデバイススケジュールにおける全ての手作業情報を線形リストで時系列に保持しているものである。つまり、７６０の線形リストは手作業の開始時刻によってソートされている。７６１、７６２、７６３、７６４、はそれぞれ各手作業の単位を示すデータ構造である。図において「T」で示されるデータは手作業の行われる時刻を示しており、「P」で示されるデータは手作業の期間を示し、「W」は手作業の内容を示している。例えば、７６２を例とすると７７０は「Device A」における７４２で示されるジョブにおける最初の手作業開始時刻を示しており、７７１はその手作業期間、７７２はその手作業の内容を示す。７７３は時系列上次の手作業である７６３を指しているが、同じジョブの手作業ではないことが分かる。７６３を飛ばして次の７６４は７４２で示されるジョブにおける二番目の手作業情報である。
【００９５】
図４に示すデバイススケジュール管理アプリケーションの表示では図１０に示すところのデータ構造で保持された情報により、デバイスのスケジュールを表示することができる。
【００９６】
図５のデバイススケジュール部２０３において行われるジョブに対するデバイスのスケジュールについて説明する。本実施形態においてはジョブ受注時にコスト優先と納期優先のいずれかの指定があるものとする。コスト優先の場合には、既に勤務予定となっているオペレータのスケジュールに合わせてジョブが割り当てられる。納期優先の場合には、デバイスの割り当てが優先され、それに合わせて必要であればオペレータの増員を行うべくオペレータスケジュールに予約を行う。
【００９７】
まず、コスト優先の場合のスケジュールについて説明する。図１１は本実施形態においてコスト優先でデバイススケジュールを行う様子を示した例である。
【００９８】
図１１の上部にジョブ割り当て時のオペレータスケジュールを示している。それと時刻同期するように図の下部にてデバイスのスケジュールを示している。
【００９９】
図１１において図中符号８００、８０１、８０２はそれぞれ「Operator1」、「Operator2」、「Operator3」という作業者のスケジュールを示している。図１１において８０３で「Operator1」の勤務時間範囲が、８０４で「Operator2」の勤務時間範囲が示されている。また、図１１に示す範囲では「Operator3」は勤務予定となっていないことが示されている。
【０１００】
以上のことから、８０５、８０６、８０７の各時間帯において作業者の数がそれぞれ一人、二人、一人であることが分かる。
【０１０１】
また、図１１において８０９、８１０、８１１はそれぞれ「Device1」、「Device2」、「Device3」のスケジュール状態を表している。既に「Device1」に８１２、「Device2」に８１３というスケジュールが決まっている状態で「Device3」に８１４というジョブの受注を受けた場合に８１５に示すようなデバイススケジュールとなることを示している。
【０１０２】
８１２は手作業期間として８１６と８１８で示されるタイミングと期間をもっており、８１７で示される期間は作業者無しにデバイスのみでジョブが進むことを示している。同様に８１３は手作業期間として８１６と８２１で示されるタイミングと期間をもっており、８２０される期間は作業者無しにデバイスのみでジョブが進むことを示している。
【０１０３】
８１４は図８における５２３で示すように手作業期間を含むデバイスの占有時間情報として受注したジョブが入ってきたことを示している。この中で、８２２、８２４、８２６が手作業期間、８２３、８２５が作業者なしにデバイスのみでジョブが進む期間を示している。ここで、図１１に示される期間に「Device3」を使用する予約が入っていなかったとする。この場合、デバイスのスケジュールとしてはどこにジョブを配置しても良いことになるが、手作業期間が重なる場合には重複した数だけその期間に作業者が必要となる。そこで、各時間帯の作業者数と照らし合わせて手作業期間の重複がその期間における作業者数を越えない最も早い時刻から８１４を配置する。その結果が８１５である。
【０１０４】
更に詳しく説明すると、８１４で示されるジョブの範囲を図１１に示す時間帯の最初に配置すると８２２と８１６の手作業期間が重なる。しかし、８１６を含む期間の作業者数は８０５に示す通り一人であるため、手作業を行うことが出来ない。その結果予定に対して遅延を生じてしまう。そこで、８１４の配置を後ろへずらす。８１９の期間についても８２２の期間と重なると、同様の問題が起こるため、結果的に８１５に示すようなスケジュールとなる。ここで、結果としての８２９と８１８は期間が重なっているが、この時間帯は８０６に示す通り作業者の人数が二人であるため問題は無い。８３１についても８２１と期間がずれているため作業者数一人でも問題は無い。
【０１０５】
コスト優先についてもう１つの例を図１２にて示す。図１２は図１１と同じジョブ受注の条件で作業者の勤務予定が「Operator1」一人だけだった場合を示している。結果、図１２の場合には図に示す全ての範囲で作業者は一人ということになる。
【０１０６】
ここで、図１１の場合と同様に８１４に示すジョブが来たとする。８１５は図１１と同じように８２７を基準としてデバイスのスケジュールすることを示している。しかし、８２９と８１８の期間の重複にもかかわらず、図１２において、この時間帯の作業者は一人しかいない。そこで、本実施形態においては８５１に示すように８２９のタイミングを８５４のタイミングにずらす。結果８５１のデバイススケジュールにおいて、８５２は８２２に、８５３は８２３に、８５４は８２４に、８５５は８２５に、８５６は８２６に対応する。ここで８５３は８２３に比較して期間が延びているが実際には手作業開始を待っているデバイス非稼動の状態を含んでいる。デバイスの非稼動状態は含まれるが、このスケジュール方法により現実に即した正確なスケジュールが可能となる。
【０１０７】
次にコスト優先デバイススケジューリングの処理手順をフローチャートで説明する。図１３は本実施形態におけるコスト優先のデバイススケジューリングの手順を示したフローチャートである。図１３の処理手順は、受注サーバ１０３のＣＰＵ（不図示）がメモリ（不図示）から、その処理のためのプログラムを読み出して実行することにより行われる。
【０１０８】
ステップS１１００においてＣＰＵは、受注したジョブのスケジューリングを開始すると、まずステップS１１０１で対象となるデバイスの最も早い空き時間を探す。これは本実施形態においては、図１０に示すデータ構造例における７３２からのリスト構造の末端よりも後の時間帯を選択すればよい。７３２からのリスト構造は時系列の順で保持されているため、リストの末端は最も遅い時間帯にそのデバイスを使用するジョブとなる。この時点で仮のデータをリスト構造の最後に追加しておく。
【０１０９】
次にステップS１１０２においてＣＰＵは、当該デバイスの占有時間における手作業情報を取得する。これは図８における５２３で示されるところの手作業タイミングに関する情報である。図１３におけるこの後のループにおいて５２３で示すところの手作業タイミングを前から順に取得していく。
【０１１０】
ステップS１１０３でＣＰＵはステップS１１０２にて取得した手作業情報に関してデバイスの空き時間情報などを基に対象となる手作業時間が配置される仮の時刻を決定する。
【０１１１】
ステップS１１０４では現在注目しているスケジューリング対象となる手作業とその手作業が配置される時間帯における他の手作業の重複数を計算する。これは図１０における７６０からのリスト構造を前から順に調べていくことで求めることができる。仮に決められている手作業時間帯に重なる既存の手作業情報の数をカウントすることで手作業の重複数を求めることができる。
【０１１２】
次にステップS１１０５でＣＰＵは現在注目しているスケジューリング対象となる手作業時間帯におけるオペレータ数を計算する。これは図６におけるデータ構造例における当該時間帯のリスト数をカウントすることで求めることができる。例えば、手作業時間帯として２００３／１２／１６の１３：３０から１４：００に配置しようとしているのであれば、図６において３０９からの線形リストを辿ってデータ数をカウントすることでオペレータ数が２であると分かる。
【０１１３】
次にステップS１１０６においてＣＰＵはステップS１１０４で求めた重複数とステップS１１０５で求めたオペレータ数を比較する。手作業の重複数がオペレータ数よりも多い場合（Yes.）にはステップS１１０７へすすむ。手作業の重複数がオペレータ数以下の場合にはステップS１１０８へ進む。
【０１１４】
ステップS１１０７でＣＰＵは既存手作業期間に対して手作業タイミングをずらす。そして、ＣＰＵはステップS１１０４へ戻り、ずらした手作業期間で改めて手作業の重複数とその時間帯でのオペレータ数を求める。
【０１１５】
ステップS１１０８でＣＰＵはその時間帯に手作業を行う作業者が十分いることが分かったので、その手作業に関してはタイミングを確定する。具体的にはＣＰＵは図１０におけるリスト構造７６０の適切な位置に手作業情報を挿入する。さらにＣＰＵはそれを参照するようなデータを７５０で示されるリスト構造の最後に追加する。
【０１１６】
ステップS１１０９で、ＣＰＵはジョブにおける手作業タイミングがまだ存在する場合（Yes.）にはステップS１１０２へ戻り、各手作業タイミングの決定を繰り返す。全ての手作業についてタイミングを確定した場合（No.）ＣＰＵはステップS１１１０へ進みデバイススケジュールの確定とする。具体的にはステップS１１０１でＣＰＵはリストの最後に追加しておいたデータ構造においてデバイススケジュールの開始時刻、終了時刻を記録する。
【０１１７】
ステップS１１１１においてコスト優先の場合のデバイススケジューリング終了となる。
【０１１８】
続いて、納期優先の場合のスケジュールについて説明する。図１４は本実施形態において納期優先でデバイススケジュールを行う様子を示した例である。図１４では図１１と同条件で納期優先のデバイススケジュールを行っている。図１４では同条件の部分は図１１と同じ番号を付しているため、ここでは図１１すなわちコスト優先と差異のみ説明する。
【０１１９】
図１１においては「Device3」の配置８１５を他の手作業タイミングとずれるように決めている。納期優先の場合には、図１４における８６０のようにデバイスの手作業の重複を無視し、デバイスが空いている最も早い時間帯に、デバイス占有時間をずらすことなくそのまま配置する。
【０１２０】
このままでは、８６１に示す最初の手作業期間が８１６と重複しているにもかかわらず、その時間帯のオペレータ数が一人であるためスケジュール通りの作業を実行することが出来ない。そこで、受注したジョブが納期優先の場合にはオペレータスケジュールの再調整を試みる。
【０１２１】
図１５において、オペレータスケジュールの再調整について更に詳しく説明する。図１５は納期優先デバイススケジューリングを行った際のオペレータスケジュールとデバイススケジュールの変化の様子を示した図である。図１５は図１４にオペレータスケジュールの変化の様子を追加した形でスケジュールの変化を表している。
【０１２２】
図１５では上段、中段、下段でそれぞれ、納期優先デバイススケジュールを行う前のオペレータスケジュール、納期優先デバイススケジュールの結果、納期優先デバイススケジュールの結果を反映させたオペレータスケジュール、を表している。
【０１２３】
図１０において前述したように本実施形態ではオペレータスケジュールとデバイススケジュールを多重構成で管理しており、確定スケジュールをベースとして、その上に仮予約スケジュールを保持している。仮予約スケジュールは納期優先デバイススケジュールの結果オペレータスケジュールに増員が必要と判断された場合に作成される。仮予約スケジュールがある状態でさらに増員が必要と判断された場合は更にもう１つの仮予約スケジュールを作成する。こうして、仮予約スケジュールが多重で構成されるのである。
【０１２４】
図１５における下段のオペレータスケジュールは納期優先デバイススケジュールによって増員が必要となったために作成された仮予約スケジュールを示している。
【０１２５】
図１５において、当初図中符号８０５、８０６、８０７で示されるように、それぞれ一人、二人、一人、というオペレータ数の状態であったところに「Device3」のスケジュールを入れる。そのため、８７０、８７１、８７２、８７３に示すように二人、一人、二人、一人、という人数状態のオペレータスケジュールになる必要性がある。そこで、既存のオペレータスケジュール８０３、８０４はそのまま同じに８７４、８７５として８７６を加えたオペレータスケジュールが必要になる。８７６は既に８７０の時間帯に勤務予定となっている「Operator1」以外の作業者が一人入れば、どの作業者が入っても良い。このことを仮予約のオペレータスケジュールとして作成し、一定期間増員を求めることにする。
【０１２６】
次に納期優先デバイススケジュールとそれに伴うオペレータスケジュールの更新（仮予約作成）の処理手順をコスト優先デバイススケジュールと合わせて説明する。
【０１２７】
図１６は本実施形態におけるデバイススケジューリング全体の手順を示したフローチャートである。図１６の処理手順は、受注サーバ１０３のＣＰＵ（不図示）がメモリ（不図示）から、その処理のためのプログラムを読み出して実行することにより行われる。
【０１２８】
増員は仮予約であるため、増員できた場合と出来なかった場合がありえる。その場合の処理について非同期で示し、図１６は3つのフローチャートから成る。
【０１２９】
ステップS１２００でＣＰＵスケジューリング全体を開始する。ステップS１２０１でＣＰＵは多重構成となるデバイススケジュールデータとオペレータスケジュールデータの初期化を行う。ここではデバイススケジュールをDSという変数で表し、オペレータスケジュールをOSという変数で表す。さらに多重構成の何番目であるかを示すためにそれぞれの変数に添え字をつけている。添え字が１であることはベースとなる確定スケジュールを表しており、添え字２は確定スケジュールを基に仮予約を行った状態のスケジュールを表す。以後添え字が１増えるごとに１つ前のスケジュールを基に仮予約を行った状態のスケジュールであることを表す。さらにその時点での最終仮予約を表す添え字の番号を示すためにmaxという変数を用い、ここではそれを確定スケジュールを示す１に初期化している。DSmaxは図１０に示すデータ構造における７００から入ってすぐのポインタデータ７０１が参照するデバイススケジュールデータ（図１０の例では７３０）である。一方、DS1は７００から入ったリストの最後まで辿ったデータのポインタデータが参照するデバイススケジュールデータ（図１０の例では７２０）である。
【０１３０】
以後、フローチャートはジョブ受注処理を繰り返すループを構成している。なお、オペレータスケジュールは任意のタイミングで更新されるものとし、図１６には示していない。
【０１３１】
ステップS１２０２でジョブの受注が入ると、図７に示す計算が行われる。次にステップS１２０３でＣＰＵは受注したジョブの優先規準を判断する。優先規準はコスト優先と納期優先のいずれかである。コスト優先の場合にＣＰＵはステップS１２０４へ進む。納期優先の場合にＣＰＵはステップS１２０６へ進む。
【０１３２】
まず納期優先の場合について説明する。ステップS１２０６でＣＰＵはDSmaxをもとに図１４に示すようなオペレータスケジュールを無視したデバイススケジュールを行う。このスケジュールを行った状態をDStmpとする。
【０１３３】
次にステップS１２０７でＣＰＵはDStmpにおける手作業の重複数がOSmaxのオペレータ数を超える時間帯があるかを判断する。超える場合（Yes.）ＣＰＵはステップS１２０９へ進み、超えない場合（No.）はステップS１２０８へ進む。
【０１３４】
ステップS１２０８でＣＰＵはDSmaxのデバイススケジュールデータにDStmpを追加する。具体的にはＣＰＵは図１０におけるリスト構造７６０の適切な位置に手作業情報を挿入する。さらにＣＰＵはそれを参照するようなデータを７５０で示されるリスト構造の最後に追加する。そして、ステップS１２０２へ戻る。
【０１３５】
ステップS１２０９でＣＰＵはDSmaxを複製してDSmax+1を作成する。そして、DStmpをDSmax+1へ追加する。
【０１３６】
ステップS１２１０でＣＰＵはオペレータ再スケジュール部２０５の機能によりDSmax+1をもとにOSmaxに対して増員予約の仮スケジュールを追加したOSmax+1を作成する。さらにステップS１２１１でＣＰＵは、オペレータ再スケジュール部２０５の機能によりOSmax+1の確定期限を設定する。本実施形態では注文に対して予約通りの日程を守れないことを顧客に通知する期限として1週間という固定値で計算する。オペレータ再スケジュール部２０５からオペレータスケジューラ２０２が指示を受け付けその期限の通知と、増員の確定入力を促すように図３の画面を表示する。
【０１３７】
ステップS１２１２でＣＰＵはmaxをインクリメントする。この状態でDSについてもOSについてもスケジュールのデータ構造に仮予約を含む最終的なデータが含まれる。そしてＣＰＵは、ステップS１２０２へ戻る。
【０１３８】
次にコスト優先の場合について説明する。ステップS１２０４でＣＰＵはDSmax（DStmp）をもとに図１３に示すフローチャートに従ったデバイススケジュールを行う。ただし、図１３の説明において、図１０に示すデータ構造を変更する旨述べたが、ここではステップS１１１０に示すデバイススケジュール確定の処理をステップS１２０５に示すようにDS1からDSmaxすべてのデータ構造に適用する。そして、ＣＰＵはステップS１２０２へ戻る。
【０１３９】
以上述べたような処理の繰り返しによってデバイス及びオペレータのスケジュールの更新と仮予約が更新されていく。その一方で、ステップS１２１１で設定した確定期限が来ても図３の画面を介して増員が出来なかった場合には仮予約は破棄しなければならない。ステップS１２２０はその場合の処理を示す。OS2の確定期限がきてもOS2で予約した増員が達成されなかった場合には、ステップS１２２１においてＣＰＵはDS2及びOS2以降のスケジュールをキャンセルしてデータ構造を元に戻し、maxを１に戻す。
【０１４０】
また、仮予約が成功した場合には仮予約を確定スケジュールに昇格させる。ステップS１２３０はその場合の処理を示す。図３の画面を介してOS2の増員が成功した場合にＣＰＵは、ステップS１２３１においてデバイススケジュール、オペレータスケジュールともにi+1のデータをiへシフトし、ステップS１２３２にてmaxをデクリメントする。
デバイススケジュールの仮予約の構造については既に述べたが、オペレータスケジュールの増員についてのデータ構造を以下説明する。
【０１４１】
図１７はオペレータスケジュールの増員予約を行う場合のデータ構造例を示す図である。図１７は図６をもとに増員予約のデータを追加した状態を示している。
【０１４２】
増員予約は作業者と同じレベルのデータ構造で保持される。図１７においては二段階の増員予約が追加されている。最初の増員予約は４６０であり、作業者名として４６１の「増員予約」、作業者種別として４６２の「増員１」、さらに増員予約の確定期限として４６３の「１２／０９」が設定されている。そして、増員予約４６０は２００３／１２／１６の１３：００から１４：００までの増員として、３０８から辿った４５２のポインタと３０９から辿った４５０のポインタから参照されている。次の増員予約は４６５であり、作業者名として４６６の「増員予約」、作業者種別として４６７の「増員２」、さらに増員予約の確定期限として４６８の「１２／０９」が設定されている。そして、増員予約４６５は２００３／１２／１６の７：３０から８：００までの増員として、３０５から辿った４５４のポインタから参照されている。
【０１４３】
このように、図１６に示すところの２以上の添え字をもつオペレータスケジュールのデータ構造は、ベースとなるオペレータスケジュールデータ構造を複製し、作業者情報として増員予約データ構造を追加保持することで記録される。
【０１４４】
なお、図３のオペレータスケジュール管理アプリケーションの画面では増員予約も他の通常の作業者と同じように表示されることで、その時間帯に増員が必要であることが分かる仕組みとなっている。
【０１４５】
第２の実施形態
以下、本発明の第２の実施形態について図面を参照して詳細に説明する。第２の実施形態については、第１の実施形態との違いを説明する。
【０１４６】
第１の実施形態においては、例えば、図１１に示すように手作業が重複しないようにずらす際、図９に示される手作業時間情報をもとにずらしている。これは複数のデバイスが非常に接近している場合、あるいはその時間帯の作業者数がある程度多い場合には問題とならない。しかし、少ない人数で複数のジョブの手作業を掛け持ちする場合には、現実的には作業者の移動時間が発生する。少ない作業者で、より正確なデバイススケジュールを行うためには、作業者の移動時間を考慮する必要がる。
【０１４７】
図１８は本実施形態におけるデバイススケジュールの考え方を示した図である。図１８は第１の実施形態におけるコスト優先デバイススケジュールの際に手作業期間が重ならないようにデバイス占有期間をずらす処理に対応している。
【０１４８】
図１８において図中符号９００は既定のスケジュールであり、９０４はその中の手作業期間を示している。９０５は作業者がデバイス間を移動する時間を示している。９０１は本実施形態における通常の手作業重複回避のスケジューリングを、９０２は第１の実施形態と同様手作業期間のみを考慮した手作業重複回避スケジューリングを、９０３は手作業期間が重複している様子を示している。
【０１４９】
９０６は９０１における手作業期間、９０７は９０１における移動時間、９０８は９０２における手作業期間、９０９は９０２における移動時間、９１０は９０３における手作業期間、９１１は９０３における移動時間を示している。
【０１５０】
図１８において、９０３の手作業期間９１０は既定スケジュールの手作業期間９０４と重なっているため、手作業期間が重複していると判断される。また、９０２の手作業期間９０８は９０４とは重なっていないが、移動時間９０５と重なっている。そして、９０６は９０４とも９０５とも重なっていない。
【０１５１】
本実施形態においては、手作業期間の重複回避においてできる限り９０１の状態で期間のシフトを行う。そして、それが出来ない場合には９０２のシフト状態を試みる。この手順をフローチャートを参照して説明する。
【０１５２】
図１９は本実施形態におけるコスト優先デバイススケジューリングの手順を示したフローチャートである。図１９の処理手順は、受注サーバ１０３のＣＰＵ（不図示）がメモリ（不図示）から、その処理のためのプログラムを読み出して実行することにより行われる。図１９に示す処理は基本的に図１３で説明した処理とおなじであるため、図１３と同じ処理の部分は同じ番号を付し、図１３との差異のみ説明する。
【０１５３】
図１９においては図１３におけるステップS１１０７からの処理が異なり、ステップS１３０１からステップS１３０５で示される処理となっている。
【０１５４】
ステップS１３０１でＣＰＵは移動時間を考慮して手作業タイミングをずらす。これは図１８における９０１に示すようなずらし方を行うことを意味する。移動時間については、システムが置かれている環境に合わせて固定の時間（例えば２分など）を適用するものとする。
【０１５５】
そして、ステップS１３０２でＣＰＵは改めて手作業の重複数を計算し、ステップS１３０３でオペレータ数をカウントする。これらの処理はステップS１１０４及びステップS１１０５と同様である。そして、ＣＰＵは移動時間考慮の時間シフトの結果新たな手作業重複数超過が発生していないかをステップS１３０４において判断する。
【０１５６】
超過が発生していない場合（No.）にはステップS１１０８へ進む。超過が発生した場合にＣＰＵはステップS１３０５へ進む。
【０１５７】
ステップS１３０５でＣＰＵは移動時間を考慮せずに手作業タイミングをずらす。これは図１３におおけるステップS１１０７と同様であり、図１８における９０２示すようなずらし方を行うことを示している。そして、ＣＰＵはステップS１１０４へ戻る。この後の処理の繰り返しは第１の実施形態と同様である。
【０１５８】
実施形態の効果
以上説明したように本実施形態１、２によれば、第１の態様として、スケジューリングシステムは、手作業を必要とする１つ以上の機器を含む印刷システムにおける前記機器及び前記機器を利用する一人以上の作業者のスケジュールを管理するスケジューリングシステム（１０３）であって、印刷ジョブを受け付けるジョブ受付手段（Ｓ１２０２）と、前記作業者の作業時間を管理するオペレータスケジュール手段（２０２）と、前記印刷ジョブに関連付けて前記機器の利用時間を管理するデバイススケジュール手段（２０３）と、前記デバイススケジュール手段で管理される前記機器の利用時間に前記作業者による手作業期間を含めた前記機器の占有時間を計算する占有期間計算手段（図７）と、前記オペレータスケジュール手段で管理される前記作業者の作業時間と前記機器の占有時間より、所定の時間帯に作業可能な作業者数を計算する作業者数計算手段（Ｓ１２０７、Ｓ１２０４）と、１つ以上の前記機器の占有時間に含まれる前記手作業期間から所定の時間帯の重複手作業数を計算する重複手作業数計算手段（Ｓ１２０７、Ｓ１２０４）と、前記作業者数及び前記重複手作業数に従って前記機器の利用時間をずらす機器利用時間シフト手段（Ｓ１２０４、Ｓ１２０５）と、前記デバイススケジュール手段によって割り当てられた前記機器の利用時間と、前記作業者数及び前記重複手作業数とに従って前記作業者の作業時間を更新するオペレータ再スケジュール手段（Ｓ１２０７〜Ｓ１２１１）とを備えたことを特徴とする（実施形態１、２）。
【０１５９】
以上の構成により、機器のスケジュールを行い、その際作業者の手作業の重複を適切に回避し、機器のスケジュール結果を作業者のスケジュールに反映する。
【０１６０】
ここで、第２の態様として、第１の態様において、前記機器利用時間シフト手段は、所定の時間帯における前記重複手作業数が当該時間帯における前記作業者数を超えないように複数のジョブ間で前記機器の利用時間を決定することを特徴とすることができる（図１３）。
【０１６１】
また、第３の態様として、第１の態様において、前記オペレータ再スケジュール手段は、所定の時間帯における前記重複手作業数が当該時間帯における前記作業者数を超えた場合に前記作業者の作業時間を再スケジュールすることを特徴とすることができる（Ｓ１２０７〜Ｓ１２１１）。
【０１６２】
また、第４の態様として、第１又は３の態様において、前記オペレータ再スケジュール手段は、前記オペレータスケジュール手段の保持するスケジュール情報の複製を更新した１つ以上のオペレータ仮スケジュールを保持するオペレータ仮スケジュール手段（Ｓ１２１０）と、前記デバイススケジュール手段の保持するスケジュール情報の複製を更新した１つ以上のデバイス仮スケジュールを保持するデバイス仮スケジュール手段（Ｓ１２０９）と、前記オペレータ仮スケジュールの確定期限を設定しタイムアウトを監視する仮スケジュールタイムアウト手段（Ｓ１２１１）と、前記オペレータ仮スケジュールの確定期限内に前記オペレータ仮スケジュール及び前記デバイス仮スケジュールのそれぞれ１つを本スケジュールに確定する仮スケジュール確定手段（Ｓ１２３０）と、前記オペレータ仮スケジュールの確定期限を過ぎた際に前記オペレータ仮スケジュール及び前記デバイス仮スケジュールのうちそれぞれ１つ以上の仮スケジュールを破棄する仮スケジュール破棄手段（Ｓ１２２０）とを備えたことを特徴とすることができる。
【０１６３】
また、第５の態様として、第１又は２の態様において、前記機器利用時間シフト手段は、前記機器の利用時間をずらす際に前記手作業期間と別の前記手作業期間との間の、前記作業者の移動時間を考慮する移動時間考慮機器利用時間シフト手段（Ｓ１３０１）と、前記移動時間考慮機器利用時間シフト手段により機器利用時間をずらした結果、さらに手作業期間が重複してしまった場合に作業者の移動時間を含めずに機器利用時間をシフトしなおす機器利用時間再シフト手段（Ｓ１３０５）とを備えたことを特徴とすることができる（実施形態２）。
【０１６４】
以上の構成により、作業者の移動時間も含めて手作業期間の重複を避けることにより、さらに正確なデバイススケジューリングを行うことができる。
【０１６５】
また、第６の態様として、第１乃至５のいずれかの態様において、前記ジョブを、前記作業者数の範囲内で手作業が行えるように機器の利用時間をシフトするか、前記機器の利用時間をシフトせずに前記作業者数が不足する場合にさらに作業者数を増やすか、いずれかの優先基準を選択する優先基準選択手段（Ｓ１２０３）をさらに備え、前記優先基準選択手段の選択結果に従って前記機器利用時間シフト手段あるいは前記オペレータ再スケジュール手段を用いることを特徴とする。
【０１６６】
以上の構成により、受注ジョブのコスト優先か納期優先かの属性に従ってデバイスのスケジュールを行い、その際オペレータの手作業の重複を適切に回避し、デバイスのスケジュール結果をオペレータスケジュールに反映することが出来る。
【０１６７】
即ち、本実施形態１、２によれば、オペレータ、デバイス双方を効率よく利用してジョブのスケジュールを行うため、次のような構成を用いる。
【０１６８】
オペレータの作業時間帯を仮に予約するオペレータスケジューラから時間帯ごとのオペレータ数を算出しておく。ジョブにおけるデバイスの割り当てに際して、基本的にはジョブを割り当てるデバイス、当該デバイスにおけるオペレータの手作業期間を考慮してオペレータ作業の重複を避ける。さらに、オペレータの手作業期間重複回避に当たっては、作業場におけるオペレータの移動時間など、オペレータ作業の切り替えに関する時間差を考慮し現実的に対応可能なスケジューリングを行う。その一方、ジョブの属性（注文：人数の多い/コスト高い/早いor人数少ない/コスト低い/遅いかもしれない）に基づいてスケジュールの優先基準を選択する。納期優先の場合にはオペレータ重複を無視してとりあえずデバイスをスケジュールする。選択した優先順位に基づいたデバイスのスケジュールを行い、デバイスのスケジュールに基づいて当該時間帯の必要オペレータ数を算出する。算出されたオペレータ数を現状のオペレータスケジュールに照らし合わせて、オペレータスケジュールにフィードバックする。すなわち、増員の手配や、休暇申請の承認等を行う。（オペレータ数の調整が不可能な場合は、現状のオペレータスケジュールに基づいた正確な納期を報告するものとする。）
オペレータスケジュールを再調整する際には、すぐにオペレータを増員できるわけではないので、最長で要求をキャッシュしておく（第２の仮スケジュール状態）。オペレータ増員申請期間（例えば1日間）はオペレータスケジュールを確定するわけではなく、次のジョブ予約が入った場合はこの仮予約状況も考慮する。多段のスケジュールを保持しておく。
【０１６９】
以上の構成により、オペレータスケジュールとデバイススケジュールの効率的な連動を実現し、デバイス、オペレータの両観点で効率的かつ正確なスケジューリングを行うことが出来る。
【図面の簡単な説明】
【０１７０】
【図１】本発明を適用できる実施形態のシステム全体の構成図である。
【図２】本発明を適用できる実施形態の工程管理部のシステム構成図である。
【図３】本発明を適用できる実施形態のオペレータスケジュール管理アプリケーションの設定画面の図である。
【図４】本発明を適用できる実施形態のデバイススケジュール管理アプリケーションの表示画面の図である。
【図５】本発明を適用できる実施形態のデバイススケジューリングシステムのブロック図である。
【図６】本発明を適用できる実施形態のオペレータスケジュールのデータ構造図である。
【図７】本発明を適用できる実施形態のデバイス占有時間計算のフローチャートである。
【図８】本発明を適用できる実施形態のデバイス占有時間計算の例を示す図である。
【図９】本発明を適用できる実施形態の手作業情報のデータ構造図である。
【図１０】本発明を適用できる実施形態のデバイススケジュールのデータ構造図である。
【図１１】本発明を適用できる実施形態のコスト優先でのデバイススケジュールの一例を示す図である。
【図１２】本発明を適用できる実施形態のコスト優先でのデバイススケジュールの一例を示す図である。
【図１３】本発明を適用できる実施形態のコスト優先でのデバイススケジュールのフローチャートである。
【図１４】本発明を適用できる実施形態の納期優先でのデバイススケジュールの一例を示す図である。
【図１５】本発明を適用できる実施形態のオペレータスケジュール再調整の一例を示す図である。
【図１６】本発明を適用できる実施形態のデバイススケジュールのフローチャートである。
【図１７】本発明を適用できる実施形態のデバイススケジュールのデータ構造図である。
【図１８】本発明を適用できる実施形態の作業者の移動時間を考慮した手作業時間シフトの例を示す図である。
【図１９】本発明を適用できる実施形態の作業者の移動時間を考慮したデバイススケジュールのフローチャートである。
【符号の説明】
【０１７１】
２００  デバイス占有時間計算部
２０１  デバイスデータＤＢ
２０２  オペレータスケジュール管理部
２０３  デバイススケジュール部
２０４  デバイススケジュール表示部
２０５  オペレータ再スケジュール部
【図１】
2006285784.tif 000003
【図２】
2006285784.tif 000004
【図３】
2006285784.tif 000005
【図４】
2006285784.tif 000006
【図５】
2006285784.tif 000007
【図６】
2006285784.tif 000008
【図７】
2006285784.tif 000009
【図８】
2006285784.tif 000010
【図９】
2006285784.tif 000011
【図１０】
2006285784.tif 000012
【図１１】
2006285784.tif 000013
【図１２】
2006285784.tif 000014
【図１３】
2006285784.tif 000015
【図１４】
2006285784.tif 000016
【図１５】
2006285784.tif 000017
【図１６】
2006285784.tif 000018
【図１７】
2006285784.tif 000019
【図１８】
2006285784.tif 000020
【図１９】
2006285784.tif 000021