(57)【要約】【課題】  異種システム処理混在の場合でも適切な接続のワークフローを分かりやすく編集できるようにする。【解決手段】  異種システムの処理を混在しても視覚的に理解しやすい図としてワークフローを表現することが出来るようにする。グループ化したサブワークフローをエクスポートし、他システムにおけるサブワークフローとしてインポートする。そして、インポートしたサブワークフローをグループ単位で接続性チェックする。さらにこの際、グループ構造を多階層で矩形領域の包含関係で表現し、多階層で表現したまま編集を行えるようにする。【選択図】  図１１
2008112393.tif 000002
【特許請求の範囲】
【請求項１】
一つ以上の処理装置あるいは手作業処理の組み合わせからなるワークフローを管理するシステムに対する入力としてのワークフローデータを編集および作成するためのワークフローエディタにおいて、
入出力データ、処理、および入出力データと処理をつなぐ接続線を表示するワークフロー表示手段、
前記入出力データ、処理、および接続線を編集するワークフロー編集手段、
前記ワークフロー表示手段によって表示されているワークフローの一つ以上の部分領域を選択表示する部分ワークフロー表示手段、
前記部分ワークフローを編集する部分ワークフロー編集手段、
前記一つ以上の部分ワークフローは選択領域の包含関係による半順序関係を持つように制限する手段、
前記部分ワークフロー編集手段において新たに定義する部分ワークフローは既存の部分ワークフローの内部とはならないように制限する手段、
前記新たに定義した部分ワークフローを保存する部分ワークフロー保存手段、
前記部分ワークフロー保存手段において保存された部分ワークフローを読み込む部分ワークフロー読み込み手段、
前記ワークフロー編集手段において前記処理は入力および出力それぞれについてあらかじめ定義された接続可能な入出力データの種類を保持し、前記ワークフロー編集手段において前記接続線を編集する際に前記各処理が持つ接続可能な入出力データの種類に基づいて入出力データと処理の接続を制限する手段、
を備えることを特徴とするワークフローエディタ。
【請求項２】
請求項１におけるワークフローエディタにおいて、
前記入出力データと処理の接続を制限する手段において、接続が不可能な場合に警告を表示する警告表示手段、
を備えることを特徴とするワークフローエディタ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷処理を実行する情報処理装置、情報処理方法、情報処理システムならびに情報処理方法を実行するプログラムに関する。
【背景技術】
【０００２】
従来より、個人ユーザや企業などの顧客からの依頼により、印刷物を生成する商業印刷業者が存在している。こうした印刷業者では、顧客からの印刷用データ（原本）の提供と、印刷体裁や部数、納期などの指示を受けて印刷物を作成し、顧客に対して納入する業務を行っている。こうした印刷業者では古くから知られているオフセット製版印刷機などの大規模な装置を用いて業務を行っている。
【０００３】
また、昨今では、電子写真方式の印刷装置やインクジェット方式の印刷装置の高速化、高画質化に伴い、短時間で出力・納品が可能な「コピーサービス」「プリンティングサービス」「Ｐｒｉｎｔ  Ｏｎ  Ｄｅｍａｎｄ（ＰＯＤ）センター」などと称されるような商業印刷の業態も存在している。
【０００４】
これらの印刷業に対する印刷の依頼は、ユーザから上記サービスを提供する業者に対して、紙あるいは電子媒体（フレキシブルディスク（ＦＤ）、ＭＯ、ＣＤ−ＲＯＭなど）に記録した原稿と、当該原稿の印刷部数や製本方法、納品期日などを記載した印刷指示書（オーダー指示書）とを郵送または直接印刷会社に持ち込むことにより行う（入稿）。
【０００５】
また、インターネットまたはイントラネットを介してオンラインで印刷を発注／受注できるシステムも実用化されている。たとえば、富士ゼロックス社から販売されている「ＤｏｔＤｏｃ．Ｗｅｂ」では、ユーザは自社のコンピュータから業者の提供するホームページにアクセスし、印刷依頼用のフォームに発注者情報（受け取り先など）、印刷体裁や部数などの必要事項を記入して、原稿ファイルとともに送信することで、当該原稿の印刷を発注することができる。印刷業者側ではユーザからの依頼を受け付けて印刷指示書を作成し、印刷処理のスケジューリングを行う。そして、作成されたスケジュールにしたがって、作業コンピュータに接続されたプリンタにより印刷や製本作業が行われ、作成された印刷物を顧客に納品して業務が完了する。
【０００６】
このような、ユーザから委託された印刷処理を実行する印刷業者においては、安定した品質で指定された納品期日に確実に間に合うように印刷を完了する必要がある。また、大規模な印刷センターでは、複数のオペレータが多種多様な印刷装置や作業コンピュータを用いて、並列的に多数の印刷依頼（オーダー）を処理する必要がある。そのため、人（オペレータ）や装置などの資源を可能な限り効率的に活用することを考える必要がある。
【０００７】
資源の効率的利用に不可欠なことは印刷業者ごとに適した印刷処理ワークフローを設定することである。印刷業者ごとにカスタマイズされたワークフローを咲く瀬するためによく用いられるのがワークフローエディタと呼ばれるものである。印刷処理におけるワークフローはワークフローを構成する各処理がそれぞれ印刷製本装置などに対応するため、特に一般業務用のワークフローエディタと比べて、印刷処理のワークフローエディタはワークフローの編集構成結果に従って装置間の自動連携などが行われることを想定していることが特徴といえる。
【０００８】
従来例として、ワークフローのGUI編集においてワークフローの一部をマクロとして定義できるようにするものがある（特許文献１参照）。
【０００９】
また、XMLを利用して異種ワークフローシステムのデータへ変換するものがある（特許文献２参照）。
【特許文献１】特開平08-287157号公報
【特許文献２】特開2002-074253号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
ところで、前記のような印刷処理ワークフローエディタにおいて、編集対象となるワークフローの構成要素である各処理単位はワークフローエディタを提供しているベンダの提供するシステムの処理単位に依存している。一方、印刷業者における装置やシステムの種類は様々である。
【００１１】
ワークフローエディタが対応してない装置がある場合にはワークフローエディタを新しい装置に対応させる必要がある。ところが、新しく対応させた装置、システムの機能が既にワークフローエディタで対応済みの装置の機能と似て非なる場合、ワークフローエディタ上ではまったく異なる種類の装置として確認されることになる。
【００１２】
このため、異なるベンダのシステムと混在させる際にはワークフローエディタを使用してカスタマイズすることが容易ではない。その理由は異種システム間での処理単位の接続性を視覚的に確認しながら編集することが困難だからである。
【００１３】
特許文献１における解決手段では定義したマクロを一つのシンボルとして置き換えてしまうため、二つの処理の透過性を視覚的に判別することが難しい。特許文献１の発明の目的としては、外部からのサブワークフローのインポートを想定せず、自システム内での編集の便宜（表示領域を節約する、業務プロセスの切れ目を明確にする等）を想定しているため、PODシステムのような異種システムの混在には適さないと考えられる。
【課題を解決するための手段】
【００１４】
上記課題を解決し、異なるベンダの装置、システムが混在してもワークフローエディタによる処理単位の接続性を視覚的に確認しながらの編集を容易にできるようにするために、本発明に係るワークフローエディタにおいては、ワークフローにおける部分ワークフローをグループ化し、グループ化したサブワークフローをエクスポートし、他システムにおけるサブワークフローとしてインポートし、インポートしたサブワークフローのグループ階層を表示しつつグループ単位で処理し、インポートしたサブワークフローをグループ単位で接続性チェックする。
【００１５】
印刷製本系ワークフローにおいては、処理の種類がほぼ決まっているため、特許文献２のようにワークフローデータを全部変換するという必要は無い。むしろ、ワークフローシステムのGUIエディタにおいて部品(データ)の再利用が可能な設計とすることのほうが有効である。
【発明の効果】
【００１６】
以上説明したように、本発明によれば、ワークフローエディタにおけるワークフローを矩形領域により階層的にグループ化表示することで、ワークフローのサブグループ化がかのうとなり、さらにそのサブワークフローをエクスポートおよびインポートし、インポートしたサブワークフローのグループ階層を表示しつつグループ単位で処理し、インポートしたサブワークフローをグループ単位で接続性チェックすることができるため、異なるベンダの装置、システムが混在してもワークフローエディタによる処理単位の接続性を視覚的に確認しながらの編集を容易にできるようになった。
【発明を実施するための最良の形態】
【００１７】
以下本発明の実施例を、図に沿って詳細に説明する。
【００１８】
(第一の実施例)
以下、本発明の実施の形態について図面を参照して詳細に説明する。
【００１９】
図1は、本発明に係る印刷システムの全体構成を示す図である。なお、以下の説明における印刷システム全体の環境は本発明の説明を理解し易くするためのものであり、本発明はこれらの環境に限定されるものではない。
【００２０】
図１において、クライアント１５１は、一般ユーザでは自宅でインターネット接続されたノートＰＣ１０２や、社内イントラネットに接続された業務用ＰＣ１０１が配置されていることを示している。
【００２１】
サーバ１５２は、ユーザに対して印刷依頼や原稿を入稿する入稿コンテンツを提供するＷＥＢサーバ１０３や、入稿された印刷依頼を注文書（オーダー票）として格納したり、電子入稿された原稿を格納しておくＤＢサーバ１０４を配備したサーバを示している。ここで、ＷＥＢサーバとＤＢサーバは1つの筐体に混在させることも可能であるが、本発明においては、便宜上２つの筐体に分けて説明する。
【００２２】
印刷センター１５３は、サーバ１５２に対して複数存在することができ、印刷センターに設置されている印刷装置の情報を元にサーバ１５２にて振り分けされる。印刷センター１５３では、サーバ１５２に蓄積されたオーダー票と原稿をＤＢサーバ１０４から定期的に収集すると共に、本発明の印刷システム自体が動作するサーバ１０５や、サーバ１０５が提供する各種のサービスを使いやすいＧＵＩを使って操作する作業ＰＣ１０６や、実際の出力先となるモノクロプリンタ１１１、カラープリンタ１１２、更にはオフライン製本で使われる製本機１４１が配備されている。もちろん、印刷センターの構成や環境は上記に限定されるものではない。
【００２３】
本実施形態の例では、クライアントとサーバ、またサーバと印刷センター間は、Ｉｎｔｅｒｎｅｔ／Ｉｎｔｒａｎｅｔ１３１でネットワーク接続されている。通常、クライアントとサーバ間はＩｎｔｅｒｎｅｔ接続されることが多く、サーバと印刷センターは専用回線を用いたＩｎｔｒａｎｅｔ接続されることが多いが、本発明はこうした環境に限らず、印刷センター内にサーバが存在するような環境であっても適用可能なものである。
【００２４】
まず、クライアントのノートＰＣ１０２、ＰＣ１０１には、ＷＥＢサーバが提供する入稿コンテンツを閲覧するためのブラウザが搭載される。また、当該入稿コンテンツを使って原稿データをアップロードすることが可能である。
【００２５】
ＷＥＢサーバ１０３は、前記入稿コンテンツを提供するＷＥＢサーバであり、当該入稿コンテンツには、製本などの印刷体裁や、部数、用紙サイズなどの印刷設定、および納品期日、依頼者情報、配送先などを入力するエディットコントロール、原稿データをアップロードするファイル指定コントロールが装備されている。ここで、入力された依頼内容に応じた料金計算、および入力事項の確定処理などは、ＷＥＢサーバ１０３上で動作するサービスモジュールで実現されるが、一般的なロジックであり本発明では直接関係しないため割愛する。更に、ＷＥＢサーバ１０３では、確定した印刷依頼を注文書（ここには、印刷依頼内容と原稿データのファイル名が記入されている）と、原稿データファイルをＤＢサーバ１０４に格納する。
【００２６】
ＤＢサーバ１０４には、一般的なデータベースがインストールされており、後述するサーバ１０５からのデータ取得要求に応じて、所望の注文書と原稿データを送信することができる。図示しないＤＢスキーマは、主として印刷センターマスタ（場所、連絡先などの情報と、デバイスマスタ、製本機マスタをメンバに持つ）、デバイスマスタ（カラー／モノクロ、印刷枚数、オプションなどのデバイス構成情報）、製本機マスタ（パンチャ、くるみ製本機などの情報）テーブルで構成されている。このテーブルを参照することで、印刷センター１５３にあるサーバ１０５は自センターに割り当てられた注文を受け取ることができる。
【００２７】
サーバ１０５は、前記ＷＥＢサーバからの注文確定の通知を受け、前記ＤＢサーバから注文書と原稿データファイルを収集するとともに、収集した注文書に従い、後述するオーダーマネージャ、ワークフローマネージャ、ジョブマネージャ、デバイスマネージャ、デバイススケジューラで構成される印刷システムが稼動する。
【００２８】
作業ＰＣ１０６は、前記サーバ１０５で提供される各種のサービスを使いやすい操作画面を使って制御するコンソールや、前記サーバ１０５に格納されている原稿データファイルを取り出し、所定のアプリケーションを起動し、印刷体裁を整えるともに、指定された印刷設定に基づいて印刷する作業用のコンピュータである。
【００２９】
モノクロプリンタ１１１、カラープリンタ１１２は印刷センターによって、設置構成が異なるが、一般的には高速なモノクロプリンタと、高品位なカラープリンタの組み合わせで構成されることが多い。これらは、すべてサーバ１０５のデバイススケジューラでスケジューリングされることになる。
【００３０】
製本機１４１は前記プリンタより出力された用紙を製本するためのオフライン製本機であり、ステイプラ、パンチャ、くるみ製本機、リング製本機であったりする。ネットワークに接続することで、状況ステータスが収集可能である。また、プリンタと同様に印刷センターによって設置構成が異なる。
【００３１】
図２は、ＷＥＢサーバ１０３、ＤＢサーバ１０４、サーバ１０５、作業クライアント１０６の概略構成を示すブロック図である。
【００３２】
ＣＰＵ２００は、ＨＤ（ハードディスク）２０５に格納されているアプリケーションプログラム、プリンタドライバプログラム、ＯＳやネットワークプリンタ制御プログラム等を実行し、ＲＡＭ２０２にプログラムの実行に必要な情報、ファイル等を一時的に格納する制御を行う。ＲＯＭ２０１には、基本Ｉ／Ｏプログラム等のプログラム、文書処理の際に使用するフォントデータ、テンプレート用データ等の各種データを記憶する。２０２はＲＡＭであり、ＣＰＵ２００の主メモリ、ワークエリア等として機能する。２０３は外部記憶ドライブであり、メディア２０４に記憶されたプログラム等を本コンピュータシステムにロードすることができる。２０４はメディアであり、本実施例で説明するプログラムおよび関連データを格納しており、その記憶されている内容の構成を以下、図４に示す。２０５はＨＤであり、アプリケーションプログラム、プリンタドライバプログラム、ＯＳ、制御プログラム、関連プログラム等を格納している。２０６はキーボードであり、ユーザがクライアントコンピュータに対して、デバイスの制御コマンドの命令等を入力指示するものである。２０７はディスプレイであり、キーボード２０６から入力したコマンドや、プリンタの状態等を表示したりするものである。２０８はシステムバスであり、クライアントコンピュータ内のデータの流れを司るものである。２０９はネットワークインターフェイス（以下、Ｉ／Ｆという）であり、ローカルエリアネットワーク（ＬＡＮ）あるいは、インターネットに接続するための通信インターフェイスである。
【００３３】
図３は、本発明のプログラムがＲＡＭ２０２にロードされ実行可能となった状態のメモリマップを表すものである。
【００３４】
本実施例では、メディア２０４からプログラム及び関連データを直接ＲＡＭ２０２にロードして実行させる例を示すが、この以外にも、メディア２０４から本発明のプログラムを動作させる度に、ＨＤ２０５からＲＡＭ２０２にロードするようにしてもよい。また、本発明のプログラムを記録する媒体は、メディアはＦＤ、ＣＤ−ＲＯＭ、ＤＶＤ、ＩＣメモリーカード等であっても良い。更に、本発明のプログラムをＲＯＭ２０１に記録しておき、これをメモリマップの一部となすように構成し、直接ＣＰＵ２００で実行することも可能である。３０１は基本Ｉ／Ｏプログラムであり、本制御装置の電源がＯＮされたときに、ＨＤ２０５からＯＳがＲＡＭ２０２に読み込まれ、ＯＳの動作を開始させるＩＰＬ（イニシャルプログラムローティング）機能等を有しているプログラムが入っている領域である。３０２はＯＳであり、３０３には制御プログラム、３０４には関連データがそれぞれ展開され、３０５にはＣＰＵ２００が本プログラムを実行するワークエリアがとられている。
【００３５】
図４において、４００はメディア２０４のデータ内容であり、４０１はデータの情報を示すボリューム情報であり、４０２はディレクトリ情報、４０３は本実施例で説明するプログラム、４０４はその関連データである。４０３のプログラムは、図７〜９に示される本プログラムのフローチャートに基づいてプログラムコード化されたものである。
【００３６】
図５は、本発明の情報の流れを示したシーケンス図である。
【００３７】
クライアントから入力された注文内容が確定すると、ＷＥＢサーバ１０３で注文書が作成され、ＤＢサーバ１０４に格納される。同様に、原稿データがアップロードされたならば、原稿データをＤＢサーバ１０４に格納する。格納処理が完了すると、ＷＥＢサーバ１０３から印刷センターにあるサーバ１０５に対して、注文の受注通知が届く。これを受けサーバ１０５は、ＤＢサーバ１０４から注文書を取得する。原稿データがアップロードされているなら、同様にＤＢサーバ１０４から原稿データファイルを取得する。取得が完了すると、ＷＥＢサーバ１０３に対して、受注情報取得の完了を通知する。この一連の処理によって、サーバと印刷センターが同期すると同時に、サーバでは受注処理、印刷センターでは印刷処理とシステム全体の負荷分散が可能となる。
【００３８】
図６は、本発明のプリントシステム構成を機能モジュール毎に示した構成図である。
【００３９】
６０１は入稿されたオーダーを管理するソフトウェアとしてのオーダーマネージャであり、後述する図７に示すような操作画面を持つ。前記ＷＥＢサーバ１０３や、ＤＢサーバ１０４から収集した注文書から印刷情報を抽出し、原稿データファイルのパス名と合わせて、印刷に必要なオーダー情報ファイルを作成する。図１４にオーダー情報ファイルに格納される内容の一例を示す。設定される夫々の値の意味は、一覧上に記載しているのでここでの説明は割愛する。
【００４０】
オーダーマネージャ６０１の操作画面には、当該オーダー情報を元にオーダーの概略状況を示すリスト表示画面と、オーダーの詳細情報をタグ表示画面が装備されており、オペレータは、この操作画面を見ながらオーダーの進捗具合を確認することができる。さらには、同じオーダー情報をＷＥＢサーバ１０３にステータス変更のタイミングで随時アップロードすることで、ＷＥＢサーバ１０３で提供される図示しない処理状況コンテンツ画面にもＨＴＭＬを使って同様の情報をユーザに提供することができる。このオーダー情報は機密保持のため、印刷が完了し配送されるまでは保持されるが、配送後は消去される。
【００４１】
図７は、オーダーマネージャの操作画面であり、上部のリスト画面には、オーダーを識別するためのＩＤ、担当者等の概略と処理ステータスが表示される。１つのオーダーを選択すると、下部のタブ画面を用いて、オーダー情報の詳細が表示される。表示される内容には、図１４の印刷設定も含まれる。
【００４２】
図８は図６のワークフローエディタを例示した図である。
【００４３】
オペレータはオーダーマネージャ６０１で管理されているオーダー情報に従い、ワークフローの作成を行う。ここでいうワークフローとはオーダーに対する印刷処理の流れを指すもので、その作成とは印刷ワークフローを管理するソフトウェアであるワークフローマネージャ６０２で処理するワークフロー情報に相当するものである。図８の上段に配置されているアイコン部品（ブロック）はそれぞれが機能を有する印刷処理における工程やデバイスを示している。これらのアイコン部品は印刷センター毎に応じて適応的に表示されるものである。これらの工程を示したブロックをＵＩ上で操作し、組み上げることにより、そのオーダーを実現するためのワークフローが生成されることになる。
【００４４】
図９は図６のワークフローマネージャ６０２を例示した図である。
【００４５】
オペレータは上記ワークフローエディタで作成したワークフローをワークフローマネージャ６０２に読み込ませ、そのワークフローの動作、進捗管理を行う。ワークフローマネージャ６０２上ではそのワークフローの進捗状況を可視的に表示を行う。オペレータはそのステータス情報に基づき、各工程毎決められた操作を行う。終了した工程はオペレータ自身によって、ステータスの変更が行われる。ただし、工程によっては、自動的にステータスの変更が行われる場合もある。例えば、オンラインの印刷デバイスにおいては、ジョブマネージャ６０３からの印刷終了通知により、ステータスの変更が行われる。
【００４６】
次に図８に示したワークフローエディタのワークフロー編集画面部分の詳細について説明する。
【００４７】
図１０は図８における下段のワークフロー編集領域におけるワークフロー表示の具体例を示している。本実施例におけるワークフローの編集においては処理内容と処理対象を分けて編集するようになっている。
【００４８】
図１０において７００、７０２、７０３、７０５、７０６は処理対象であり、７０１、７０４は処理内容を示す。処理内容はいくつかの処理対象を入力として、いくつかの処理対象を出力することで印刷ワークフローを定義する。例えば、図１０においては７０７は面付け処理７０１の入力として面付けパラメータ７００を入力としている様子を示している。また、７０８は面付け処理７０１の出力として（面付け後の）ページデータ７０３を出力している様子を示している。他に面付け処理７０１はページデータ７０２も入力としている。そして、印刷処理７０４はページデータ７０３と印刷パラメータ７０６を入力として出力ページ７０５を出力する。
【００４９】
図１０は本実施例における「デバイスA」の処理内容を定義することを目的として編集されたワークフローを示している。デバイスAは印刷処理の機能に加えて面付け処理を行うことができる。図１０においてはデバイスAに関する処理を全て含むワークフローを記述した直後の編集状態を示している。
【００５０】
図１１は図１０のワークフローからデバイスAの定義を行うべくグループ化の処理を行っている編集状態を示している。図１１において７１０はデバイスAを示すグループの範囲をあらわす領域、７１１は７１０の領域を示すために編集動作中のマウスポインタである。図１１に示すようにワークフローの部分を矩形領域でグループ化することにより新しい処理単位を定義する。定義したグループは名前をつけてワークフローエディタの外部へ保存することができる。ここでは「デバイスA」という名前をつけて保存されたものとして説明を進める。
【００５１】
図１２は図１０および図１１に示したワークフローとは別のデバイス定義を示した例である。図１２においては別の「デバイスB」を定義しようとしている。デバイスBは印刷処理の機能に加えて製本の機能を持っている。図１２において、印刷処理７２１はページデータ７２０と印刷パラメータ７２６を入力として出力ページ７２２を出力する。また、製本処理７２３は出力ページ７２２と製本パラメータ７２５を入力として製本物７２４を出力する。そして、７２７に示すようにデバイスBの処理内容を定義している。デバイスAと同様に図１２に示すグループ７２７も「デバイスB」として外部に保存されるものとして説明を進める。
【００５２】
図１３はデバイスAを利用したワークフロー編集の例を示している。図１３においてデバイスAの７１０は面付けパラメータ７３０、ページデータ７３１、印刷パラメータ７３２を入力として面付け印刷後の出力ページ７３３を出力する。さらに出力ページ７３３と製本パラメータ７３４を入力として製本デバイスXの７３５は製本物７３６を出力する。ここで、編集画面上はデバイスAを構成している内部ワークフローが見えるようになっているが、ワークフローを編集する単位としては７１０をこれ以上分割することはできない。これはデバイスAの行う処理が面付け処理と印刷処理を含んでいることを示している。
【００５３】
次にデバイスBを利用したワークフローについても例を示す。
【００５４】
図１４はデバイスBを利用したワークフロー編集の例を示している。図１４において面付けシステムYの７４２は面付けパラメータ７４０とページデータ７４１を入力として面付け後のページデータ７４３を出力する。さらにページデータ７４３、印刷パラメータ７４４、製本パラメータ７４５を入力としてデバイスBの７２７は製本物７４６を出力する。
【００５５】
図１３、図１４に示したグループ化したワークフローを含むワークフローは更にグループ化を行うことができる。
【００５６】
図１５は図１３に示すワークフローの部分をグループ化しデバイスCを定義していることを示している。図１５における７５０は新たに定義したデバイスCである。一方図１６は図１４に示すワークフローの部分をグループ化しデバイスDを定義していることを示している。図１６における７６０は新たに定義したデバイスDである。図１５、図１６に示すワークフローはいずれも処理単位がデバイスC、デバイスDであるため、それ以上細かい処理については編集することはできないが、いずれも内部の処理は図１７に示すようなワークフローを示していることがわかる。従って、デバイスA、デバイスB、デバイスX、システムYを持つ印刷業者は図１５および図１６に示すような処理ワークフローを定義し、同じワークフローを処理するために場合によりデバイスの組み合わせを選択することが可能となっている。
【００５７】
次にエクスポート及びインポートしたサブワークフローの再利用に際して接続性のチェックを行う仕組みを、抽象化した例を元にデータ構造及びフローチャートにより説明する。
【００５８】
図１８は編集において描画されたワークフローの一例である。図においてP1という処理はR1およびR2を入力としてR3を出力している様子を示している。さらにP2という処理はR3を入力としてR4を出力している様子を示している。
【００５９】
図１８に対応するワークフローエディタ内部のデータ構造を図１９に示している。本実施例におけるワークフローエディタにおいては、処理および入出力リソースの単位で編集対象物を管理している。図において８００は処理の単位でのデータ構造を示しており、P1およびP2を表している。さらにP1あるいはP2という処理は８０１に示すようにinput領域とoutput領域からなっている。input領域は各処理の入力を表しており、output領域は各処理の出力を表している。各入出力のデータ構造は入出力の数および各入出力から成っている。８０２はP1の入力の数を示しており、２となっている。各入力は入力の種類および実際の入力データ構造へのリンクから成っている。８０３はP1の一つ目の入力の種類を示しておりR1である。そして８０４は対応する入力データ構造へのリンクであり、８１６を指している。編集において接続性のチェックは８０３と８１６のように種類と実際のデータ構造が一致しているか否かを判断するものとする。同様に８０５はP1の二つ目の入力の種類を示しておりR2である。そして８０６は対応する入力データ構造へのリンクであり、８１７を指している。
【００６０】
出力および他の処理の入出力も同様である。
【００６１】
８０７はP1の出力の数を示しており、１となっている。８０８はその種類でR3、８０９は８１８を指している。
【００６２】
８１０はP2の入力の数を示している。８１１はP2の入力の種類、８１２は実際の入力データ構造８１８を指している。
【００６３】
８１３はP2の出力の数を示している。８１４はP2の出力の種類、８１５は実際の出力データ構造８１９を指している。
【００６４】
以上、図１９に示したデータ構造により図１８に示すような編集状態を表しているものとする。なお、ワークフローが示す処理の詳細は図１９における８１６から８１９に示した入出力データ構造体の詳細として記述されているものとする。また、視覚的な編集に特有の情報、例えば描画位置などは別途編集用情報としてエディタ内に保持されているものとするが、本実施例における説明においては省略する。
【００６５】
図２０は図１８に示すワークフローのサブワークフローを選択した例である。図２０における８３０で示されるサブワークフローを定義しエクスポートすることを考える。図２１は図２０における８３０でエクスポートしたサブワークフローに対応するデータ構造図である。図２１に示すデータ構造はそのままエクスポートおよびインポートにおいて参照されるデータであるものとする。図２１は図１９と対応しており、エクスポートにおけるデータ構造の差異について説明する。
【００６６】
図２１において８４０、８４１、８４２はそれぞれ図１９においてR1、R2、R4の入出力データ構造を指し示していたリンク部分である。８４０、８４１、８４２においてはこれらはどこも参照していないNULLポインタに書き換えられている。ただし、それぞれの対応する入出力データの種類についてはR1、R2、R4となっており、ここからリンクを作成する際にはそれぞれ一致する種類のデータで無ければならないことが判断できる。
【００６７】
図２２は図２１に示すデータ構造を元にインポートしたサブワークフローの接続性チェックを行う処理の手順を示したフローチャートである。
【００６８】
まずステップS９００においてエディタ上で指定された入出力リソース、例えば図１８で示すところのR1、R2、R3、R4など、から例えば図２０に示すところの８３０へ接続を行う編集操作を行った場合の接続性チェックの処理を開始する。ステップS９０１において編集操作における接続対象処理を選択する。ここでは画面上でマウスポインタが指し示そうとしている処理を選び図１９における８００に示す処理の単位を選択する。次にステップS９０２において接続の方向を選択する。これは編集画面上において処理に対する入力を接続しようとしているのか、出力を接続しようとしているのかをエディタの操作情報から決定する。入力を接続する場合にはステップS９０４へ、出力を接続する場合にはステップS９０３へ進む。ステップS９０３においては出力データ群を選択する。これは図１９における８０１のoutputのデータ構造を選択することになる。同様にステップS９０４においては８０１におけるinputのデータ構造を選択する。次にステップS９０５において各入出力データを選択する。例えば、図１９における処理P1の入力であれば最初に８０３および８０４の部分を選択する。この部分は図２１においては８４０に示すように何も指していない状態である。次のステップS９０６では８４０に示すように何も指していない状態なのか、あるいは８０４に示すように既にいずれかの入出力データと接続されているのかを判断する。まだ接続されていない場合にはステップS９０７へ進み、既に接続されている場合にはステップS９０９へ進む。ステップS９０７では接続しようとしている入出力データとデータ構造体が保持している種類が一致するかを判断する。例えばR1のデータと図２１における８４０の位置であれば一致、R2のデータと８４０の位置を接続しようとしている場合には不一致である。一致する場合にはステップS９０８へ進み、データ構造体の所定部分を更新し、編集画面上でも接続状態の描画を行う。一致しない場合にはステップS９０９へ進む。ステップS９０９においては接続候補がまだ存在するかを調べ、あればステップS９０５へ戻り判断を繰り返す。接続候補が無ければステップS９１０へ進みチェック処理を終了する。
【００６９】
以上説明したように、各処理と入出力データの種類を組み合わせたデータ構造とし、エクスポートおよびインポートしたサブワークフローの接続性チェックを処理単位の入出力データの種類で判断することによりインポートしたサブワークフローのグループ階層を表示しつつグループ単位で処理し、異なるベンダの装置、システムが混在してもワークフローエディタによる処理単位の接続性を視覚的に確認しながらの編集を容易にできるようになった。
【００７０】
(第二の実施例)
第二の実施例については、第一の実施例との違いを説明する。
【００７１】
第一の実施例においては、接続性チェックの結果、接続不許可の場合には何もせず処理を終了していたが、第二の実施例においては接続できない旨の警告メッセージを表示する。これにより、単に接続できないということだけでなく、接続できない理由も示すことができるようになるため、より利用者にとっての利便性が向上する。
【００７２】
このためには図２２におけるステップS９０９において次の候補がない（No.）と判断された場合にステップS９１０へ進む前に警告表示の処理を行う。
【図面の簡単な説明】
【００７３】
【図１】本実施の印刷システムのシステム構成図である。
【図２】図１におけるクライアントコンピュータの概略構成を示すブロック図である。
【図３】図２におけるＲＡＭに、図４に示すＦＤからプログラムを展開したときのメモリマップである。
【図４】図２におけるＦＤ内部のデータを表すメモリマップである。
【図５】図１における印刷システムの処理シーケンス図である。
【図６】図１における印刷システムのモジュール構成図である
【図７】オーダーを管理するソフトウェアのインターフェィスを示した図である。
【図８】図６で示したワークフローを生成・編集するエディタのインターフェィスを示した図である。
【図９】図６で示したワークフローを管理するソフトウェアを示した図である。
【図１０】ワークフロー編集画面例。
【図１１】ワークフロー編集画面例。
【図１２】ワークフロー編集画面例。
【図１３】ワークフロー編集画面例。
【図１４】ワークフロー編集画面例。
【図１５】ワークフロー編集画面例。
【図１６】ワークフロー編集画面例。
【図１７】ワークフロー編集画面例。
【図１８】ワークフロー編集画面例。
【図１９】図１８に対応するデータ構造例。
【図２０】ワークフロー編集画面例。
【図２１】図２０に対応するデータ構造例。
【図２２】フローチャート。
【符号の説明】
【００７４】
１０１  ＰＣ
１０２  ノートＰＣ
１０３  ＷＥＢサーバ
１０４  ＤＢサーバ
１０５  サーバ
１０６  作業ＰＣ
１１１  モノクロプリンタ
１１２  カラープリンタ
１２１〜１２３  ＬＡＮ
１３１〜１３２  インターネット／イントラネット
１４１  製本機（パンチャ）
１４２  製本機（くるみ製本）
１５１  クライアント
１５２  サーバ
６０１  オーダーマネージャ
６０２  ワークフローマネージャ
６０３  ジョブマネージャ
６０４  デバイススケジューラ
６０５  デバイスマネージャ
６０６  プリントコンポーネント
【図１】
2008112393.tif 000003
【図２】
2008112393.tif 000004
【図３】
2008112393.tif 000005
【図４】
2008112393.tif 000006
【図５】
2008112393.tif 000007
【図６】
2008112393.tif 000008
【図７】
2008112393.tif 000009
【図８】
2008112393.tif 000010
【図９】
2008112393.tif 000011
【図１０】
2008112393.tif 000012
【図１１】
2008112393.tif 000013
【図１２】
2008112393.tif 000014
【図１３】
2008112393.tif 000015
【図１４】
2008112393.tif 000016
【図１５】
2008112393.tif 000017
【図１６】
2008112393.tif 000018
【図１７】
2008112393.tif 000019
【図１８】
2008112393.tif 000020
【図１９】
2008112393.tif 000021
【図２０】
2008112393.tif 000022
【図２１】
2008112393.tif 000023
【図２２】
2008112393.tif 000024