(57)【要約】【課題】  特定の工程を組み合わせた必要最小限のテストワークフロー作成して実行させることである。【解決手段】  ワークフローを実行させる情報処理装置において、実行対象として選択されたワークフローについてテストを実行することを指示する（Ｓ６０４）。そして、当該実行対象として選択されたワークフロー用のテストワークフローを生成する（Ｓ６０５）。そして、Ｓ６０４により生成されたテストワークフローを実行する（Ｓ６０６）構成を特徴とする。【選択図】  図６
2009020665.tif 000002
【特許請求の範囲】
【請求項１】
特定の工程を組み合わせたワークフローを実行させる情報処理装置であって、
実行対象として選択されたワークフローについてテストを実行することを指示する指示手段と、
前記指示手段によってテストを実行することが指示された場合、当該実行対象として選択されたワークフロー用のテストワークフローを生成する生成手段と、
前記生成手段によって生成されたテストワークフローを実行する実行手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
実行されたワークフローの履歴情報を保存する保存手段と、
前記指示手段によりテストを実行することが指示された場合、前記履歴情報に基づいて、当該ワークフローを構成する各工程についてテストワークフローの工程に追加すべきか否かを判断する判断手段とを更に有し、
前記生成手段は、前記判断手段により追加する必要があると判断された工程を用いてテストワークフローを生成することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記判断手段は、前記実行対象となるワークフローに含まれる工程のうち、既に実行された工程についてテストフローに追加する必要はないと判断することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記判断手段は、前記実行対象として選択されたワークフローに記憶領域へのアクセスを必要とする工程が含まれている場合、当該記憶領域のアクセス権の変更の有無に基づいて、当該記憶領域へのアクセスを必要とする工程をテストフローに追加すべきか否かを判断することを特徴とする請求項２または３に記載の情報処理装置。
【請求項５】
特定の工程を組み合わせたワークフローを実行させる情報処理装置における情報処理方法であって、
実行対象として選択されたワークフローについてテストを実行することを指示する指示ステップと、
前記指示ステップによってテストを実行することが指示された場合、当該実行対象として選択されたワークフロー用のテストワークフローを生成する生成ステップと、
前記生成ステップによって生成されたテストワークフローを実行する実行ステップと、
を備えることを特徴とする情報処理方法。
【請求項６】
実行されたワークフローの履歴情報を保存手段に保存する保存ステップと、
前記指示ステップによりテストを実行することが指示された場合、前記履歴情報に基づいて、当該ワークフローを構成する各工程についてテストワークフローの工程に追加すべきか否かを判断する判断ステップとを更に有し、
前記生成ステップは、前記判断ステップにより追加する必要があると判断された工程を用いてテストワークフローを生成することを特徴とする請求項５に記載の情報処理方法。
【請求項７】
前記判断ステップは、前記実行対象となるワークフローに含まれる工程のうち、既に実行された工程についてテストフローに追加する必要はないと判断することを特徴とする請求項６に記載の情報処理方法。
【請求項８】
前記判断ステップは、前記実行対象として選択されたワークフローに記憶領域へのアクセスを必要とする工程が含まれている場合、当該記憶領域のアクセス権の変更の有無に基づいて、当該記憶領域へのアクセスを必要とする工程をテストフローに追加すべきか否かを判断することを特徴とする請求項６または７に記載の情報処理方法。
【請求項９】
請求項５乃至８のいずれかに記載の情報処理方法をコンピュータに実行させるためのプログラムを格納したことを特徴とするコンピュータが読み取り可能な記憶媒体。
【請求項１０】
請求項５乃至８のいずれかに記載の情報処理方法をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、特定の工程を組み合わせたワークフローを実行させる情報処理装置の処理に関するものである。
【背景技術】
【０００２】
従来、画像処理装置や情報処理装置を含むシステムにおいて、スキャンや印刷、Ｂｏｘへのファイル保存、ファイル送信などの複数の工程を組み合わせた一連の処理を実行するワークフローシステムが提案されている。
【０００３】
上記ワークフローシステムにおいて、ワークフローシステムの管理者（以下、管理者）がワークフローを定義し、ワークフローシステムを利用するユーザ（以下、ユーザ）が管理者によって定義されたワークフローを指定して実行するのが一般的であった。
【０００４】
また、各クライアント装置において実際に実行されたデータ処理作業の進行状況の履歴を保存し、ワークフロー情報設定装置が該履歴に基づいて新たなワークフロー情報を設定する機能を有するデータ処理作業の進行管理システムがあった。なお、このようなデータ処理作業の進行管理システムとして、下記特許文献１が公開されている。
【０００５】
また、ワークフローのルールを予め格納しておき、ワークフローの実行命令が来たときは、ルールが適用されたワークフローを実行する。また、ワークフローのシミュレーション実行命令が来たときは、ワークフローを実際には実行せず、ルールが適用された仮想的な実行を行う。
【０００６】
これにより、ワークフローがルールを逸脱するか否かを確認することが出来るワークフロー支援システムもあった。
【０００７】
なお、このようなワークフロー支援システムとして、下記特許文献２が公開されている。
【特許文献１】特開平１１−３０６２５４号公報
【特許文献２】特開２００４−１２７３２１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかし、上記ワークフローシステムで実行されるワークフローは、複数の工程によって構成される一連の処理である。
【０００９】
従って、管理者によって定義されたワークフローをユーザが実行した際に、例えば最後の工程でエラーが発生すると、一連の処理全てがエラー終了ということになり、最後の工程直前までの処理が無駄になる。
【００１０】
したがって、工程の処理エラーによりワークフロー全体がエラーとなる無駄を避けるためには、管理者が定義したワークフローをテストする必要があり、管理者の負荷が大きくなった。
【００１１】
一方、上記特許文献１のようなワークフロー設定装置では、過去に各クライアント装置によって実行されたデータ処理作業の進行状況の履歴から、履歴に基づいた新たなワークフローを設定することが出来る。
【００１２】
しかし、作成されたワークフローを正常に実行可能か否かを、ワークフローを実行するユーザが知ることは出来なかった。
【００１３】
一方、上記特許文献２のようなワークフロー支援システムは、ワークフローの仮想実行をするものであり、ルールに抵触しているか否かを確認することは出来る。しかしながら、ワークフローの処理には、例えばアクセス権の有無など仮想実行では判断できない処理が含まれるため、特許文献２では対応できないおそれがあった。
【００１４】
本発明は、上記課題を解決するためになされたもので、本発明の目的は、特定の工程を組み合わせた必要最小限のテストワークフロー作成して実行させることができる仕組みを提供することである。
【課題を解決するための手段】
【００１５】
上記目的を達成する本発明の情報処理装置は以下に示す構成を備える。
【００１６】
特定の工程を組み合わせたワークフローを実行させる情報処理装置であって、実行された前記ワークフローの履歴情報を保存する保存手段と、記憶されるテストルールに従って生成される工程を追加してテストワークフローを生成する生成手段と、前記生成手段により生成される各工程をテストワークフローに追加する必要があるかどうかを前記履歴情報に基づいて判断する判断手段と、前記判断手段により追加する必要がないと判断した工程を含まないテストワークフローを作成する作成手段と、前記作成手段により作成されたテストワークフローを実行する実行手段とを有することを特徴とする。
【発明の効果】
【００１７】
本発明によれば、特定の工程を組み合わせた必要最小限のテストワークフロー作成して実行させることができる。
【発明を実施するための最良の形態】
【００１８】
次に本発明を実施するための最良の形態について図面を参照して説明する。
【００１９】
＜システム構成の説明＞
〔第１実施形態〕
＜ワークフローテストシステムの全体構成図＞
まず、本ワークフローテストシステムの構成について、図１を参照しながら説明する。
【００２０】
図１は、本発明の第１実施形態を示す情報処理装置を含む情報処理システムの構成を示すブロック図である。本例は、画像形成装置１０１とＳＭＢ（Server Message Block）プロトコルで通信するＳＭＢサーバ１２１とがネットワーク１２０を介して通信可能なシステム例である。なお、本実施形態では、画像形成装置１０１を情報処理装置の例として説明するが、他のデバイス、例えば複合画像形成装置、印刷装置であっても、本発明を適用可能である。
【００２１】
図１において、画像形成装置１０１は、ワークフローの定義および実行機能や、テストワークフローの作成および実行機能を提供する。ＳＭＢサーバ１２１は、画像形成装置１０１から受信したファイルデータを保存する機能を提供する。
【００２２】
ここで、図１には、サーバ装置として、ＳＭＢサーバ１２１の例を示しているが、ＳＭＢプロトコル以外のファイルサーバでもよい。また、画像形成装置１０１上で実行するワークフローがファイル送信を含まない場合には、ワークフローシステムにおいて、ＳＭＢサーバ１２１が存在しなくてもよい。
【００２３】
画像形成装置１０１は、ユーザ情報記憶部１０２、フロー情報記憶部１０３、テストルール情報記憶部１０４、テストフロー情報記憶部１０５、処理履歴情報記憶部１０６、ＢＯＸ情報記憶部１０７を備える。さらに、画像形成装置１０１は、エラー対応情報記憶部１０８、ユーザ情報管理部１０９、フロー情報管理部１１０、テストルール情報管理部１１１、テストフロー情報管理部１１２、処理履歴情報管理部１１３を備える。
【００２４】
さらに、画像形成装置１０１は、ＢＯＸ情報管理部１１４、エラー対応情報管理部１１５、表示部１１６、統括処理部１１７、テストフロー作成実行部１１８、通信部１１９を備える。なお、画像形成装置１０１は、後述するようなハードウエアとソフトウエアとを備える。また、図１では、画像形成装置１０１のエンジン構成について省略しているが、図２に示すようなエンジン構成を備える。
【００２５】
ユーザ情報記憶部１０２は、後述するＨＤＤ３１３（図３に示す）内に設けられており、画像形成装置１０１にログイン可能なユーザの情報を格納する機能を有する。
【００２６】
ここで、ユーザ情報は、例えば、ユーザＩＤ、ユーザ名、パスワード、管理ユーザフラグなどである。ユーザ情報管理部１０９は、ユーザ情報記憶部１０２に格納されているユーザ情報を管理し、統括処理部１１７から受け取ったユーザＩＤを用いて、ユーザＩＤに対するユーザ情報を、ユーザ情報記憶部１０２から読み出す機能を有する。
【００２７】
フロー情報記憶部１０３は、後述するＨＤＤ３１３（図３に示す）内に設けられており、画像形成装置１０１で実行可能なワークフロー定義情報を格納する機能を有する。
【００２８】
ここで、ワークフロー定義情報は、例えば、フローＩＤ、フロー名、管理ユーザ、実行ユーザ、フロー定義、変更時刻などである。
【００２９】
フロー情報管理部１１０は、フロー情報記憶部１０３に格納されているフロー情報を管理する。フロー情報管理部１１０は、統括処理部１１７から受け取ったフロー情報を、フロー情報記憶部１０３へ格納する機能を有する。
【００３０】
また、フロー情報管理部１１０は、統括処理部１１７から受け取ったユーザＩＤを用いて、ユーザＩＤを管理ユーザとするフロー情報を、フロー情報記憶部１０３から読み出す機能を有する。
【００３１】
また、フロー情報管理部１１０は、統括処理部１１７から受け取ったユーザＩＤを用いて、ユーザＩＤを実行ユーザとするフロー情報を、フロー情報記憶部１０３から読み出す機能を有する。
【００３２】
また、フロー情報管理部１１０は、統括処理部１１７から受け取ったフローＩＤのフロー情報を、フロー情報記憶部１０３から読み出す機能を有する。
【００３３】
テストルール情報記憶部１０４は、後述するＨＤＤ３１３（図３に示す）内に設けられており、画像形成装置１０１でワークフローからテストワークフローを作成する際に使用するテストルールを格納する機能を有する。
【００３４】
ここで、テストルール情報は、例えば、テストルールＩＤ、ステップ種別、テスト工程、変更時刻などである。
【００３５】
テストルール情報管理部１１１は、テストルール情報記憶部１０４に格納されているテストルール情報を管理する。すなわち、テストルール情報管理部１１１は、統括処理部１１７から受け取ったフロー情報を用いて、フロー内の工程に対応するステップ種別のテストルール情報を、テストルール情報記憶部１０４から読み出す機能を有する。
【００３６】
テストフロー情報記憶部１０５は、後述するＨＤＤ３１３（図３に示す）内に設けられており、画像形成装置１０１で実行可能なテストフロー定義情報を格納する機能を有する。
【００３７】
テストフロー情報は、例えば、テストフローＩＤ、フローＩＤ、実行ユーザ、テストフロー定義、変更時刻、実行時刻などである。
【００３８】
テストフロー情報管理部１１２は、テストフロー情報記憶部１０５に格納されているテストフロー情報を管理する。
【００３９】
テストフロー情報管理部１１２は、統括処理部１１７から受け取ったテストフロー情報を、テストフロー情報記憶部１０５へ格納する機能を有する。また、テストフロー情報管理部１１２は、統括処理部１１７から受け取ったユーザＩＤを用いて、ユーザＩＤを実行ユーザとするテストフロー情報を、テストフロー情報記憶部１０５から読み出す機能を有する。
【００４０】
また、テストフロー情報管理部１１２は、統括処理部１１７から受け取ったテストフローＩＤのテストフロー情報を、テストフロー情報記憶部１０５から読み出す機能を有する。
【００４１】
処理履歴情報記憶部１０６は、後述するＨＤＤ３１３（図３に示す）内に設けられており、画像形成装置１０１で過去に実行された処理の履歴情報を格納する機能を有する。
【００４２】
ここで、処理履歴情報は、例えば、履歴ＩＤ、実行ユーザ、処理履歴、処理時刻などである。
【００４３】
処理履歴情報管理部１１３は、処理履歴情報記憶部１０６に格納されている処理履歴情報を管理する。処理履歴情報管理部１１３は、統括処理部１１７から受け取った処理履歴情報を、処理履歴情報記憶部１０６へ格納する機能を有する。
【００４４】
また、処理履歴情報管理部１１３は、統括処理部１１７から受け取ったユーザＩＤを実行ユーザとし、かつ、フロー情報の各工程に対応する処理履歴の処理履歴情報を、処理履歴情報記憶部１０６から読み出す機能を有する。
【００４５】
ＢＯＸ情報記憶部１０７は、後述するＨＤＤ３１３（図３に示す）内に設けられており、画像形成装置１０１上にファイル文書を保管することができるＢＯＸの情報を格納する機能を有する。なお、Ｂｏｘとは、ファイル等を記憶するための記憶領域を指す。
【００４６】
ここで、ＢＯＸ情報は、例えば、ＢＯＸＩＤ、ＢＯＸ名、管理ユーザ、利用ユーザ、実フォルダ、変更時刻、アクセス権などを含む。
【００４７】
ＢＯＸ情報管理部１１４は、ＢＯＸ情報記憶部１０７に格納されているＢＯＸ情報を管理する。ＢＯＸ情報管理部１１４は、統括処理部１１７から受け取ったＢＯＸ名を用いて、ＢＯＸ名に対応するＢＯＸ情報を、ＢＯＸ情報記憶部１０７から読み出す機能を有する。
【００４８】
また、ＢＯＸ情報管理部１１４は、統括処理部１１７から受け取ったＢＯＸ情報を、ＢＯＸ情報記憶部１０７へ格納する機能を有する。
【００４９】
エラー対応情報記憶部１０８は、後述するＨＤＤ３１３（図３に示す）内に設けられており、画像形成装置１０１上で発生したエラーに対して、ユーザが対応するための情報を格納する機能を有する。
【００５０】
ここで、エラー対応情報は、例えば、エラーＩＤ、ステップ種別、エラー内容、対応内容などである。
【００５１】
エラー対応情報管理部１１５は、エラー対応情報記憶部１０８に格納されているエラー対応情報を管理し、統括処理部１１７から受け取ったエラー内容に対するエラー対応情報を、エラー対応情報記憶部１０８から読み出す機能を有する。
【００５２】
表示部１１６は、後述のログイン画面１１０１（図１１に示す）、ワークフロー定義画面１２０１（図１２に示す）、テストフロー実行画面１３０１（図１３に示す）を後述のＣＲＴ３０９（図３に示す）に表示させる機能を有する。
【００５３】
また、表示部１１６は、テストフロー再実行画面１４０１（図１４に示す）、テストフロー実行結果画面１５０１（図１５に示す）を後述のＣＲＴ３０９（図３に示す）に表示させる機能を有する。また、表示部１１６は、エラー対応画面１６０１（図１６に示す）、デバイス処理画面１７０１（図１７に示す）などを、後述のＣＲＴ３０９（図３に示す）に表示させる機能を有する。
【００５４】
統括処理部１１７は、ワークフロー定義処理、テストフロー作成実行処理、デバイス処理を行う機能を有する。
【００５５】
統括処理部１１７は、ワークフロー定義処理については以下のような処理を行う。統括処理部１１７は、表示部１１６に対して、後述のログイン画面１１０１（図１１に示す）の表示を依頼する。
【００５６】
ユーザが後述のログイン画面１１０１（図１１に示す）上で入力したユーザＩＤとパスワードを取得し、ユーザＩＤをユーザ情報管理部１０９に送信する。そして、ユーザ情報記憶部１０２に格納されている、ユーザＩＤに対応するユーザ情報の読み出しを依頼する。
【００５７】
このように受信したユーザ情報で認証を行い、認証に成功した場合は、表示部１１６に対して、後述のワークフロー定義画面１２０１（図１２に示す）の表示を依頼する。
【００５８】
また、ユーザが後述のワークフロー定義画面１２０１（図１２に示す）上で入力したフロー定義情報を、フロー情報管理部１１０に送信し、フロー情報をフロー情報記憶部１０３に格納するよう依頼する。
【００５９】
〔テストフローの作成処理〕
統括処理部１１７は、テストフロー作成実行処理については以下のような処理を行う。統括処理部１１７は、表示部１１６に対して、後述のログイン画面１１０１（図１１に示す）の表示を依頼する。
【００６０】
ユーザが後述のログイン画面１１０１（図１１に示す）上で入力したユーザＩＤとパスワードを取得する。そして、ユーザＩＤをユーザ情報管理部１０９に送信し、ユーザ情報記憶部１０２に格納されている、ユーザＩＤに対応するユーザ情報の読み出しを依頼する。
【００６１】
このように受信したユーザ情報で認証を行い、認証に成功した場合は、ユーザ情報からログインしたユーザが管理ユーザであるか否かを判断する。
【００６２】
ユーザが、管理ユーザである場合には、後述のテストフロー実行画面１３０１（図１３に示す）の表示を表示部１１６に依頼する。
【００６３】
ユーザが、後述のテストフロー実行画面１３０１（図１３に示す）において、テスト実行を指示した場合には、テストフロー作成実行部１１８に対してテストフローの作成を依頼する。続いて、テストフロー作成実行部１１８に対してテストフローの実行を依頼する。
【００６４】
統括処理部１１７は、デバイス処理については以下のような処理を行う。統括処理部１１７は、ワークフロー定義処理については以下のような処理を行う。
【００６５】
表示部１１６に対して、後述のログイン画面１１０１（図１１に示す）の表示を依頼する。
【００６６】
ユーザが後述のログイン画面１１０１（図１１に示す）上で入力したユーザＩＤとパスワードを取得する。そして、ユーザＩＤをユーザ情報管理部１０９に送信し、ユーザ情報記憶部１０２に格納されている、ユーザＩＤに対応するユーザ情報の読み出しを依頼する。
【００６７】
このように受信したユーザ情報で認証を行い、認証に成功した場合は、表示部１１６に対して、後述の処理実行画面１７０１（図１７に示す）の表示を依頼する。
【００６８】
ユーザが後述の処理実行画面１７０１（図１７に示す）上で入力した処理を実行し、処理が成功したか否かを統括処理部１１７が判断する。そして、処理に成功したと判断した場合には、処理結果を処理履歴情報管理部１１３に送信して、処理履歴情報記憶部１０６への格納を依頼する。
【００６９】
テストフロー作成実行部１１８は、テストフローの作成処理と、テストフローの実行処理を行う機能を有する。
【００７０】
テストフロー作成実行部１１８は、テストフローの作成処理については以下のような処理を行う。
【００７１】
テストフロー作成実行部１１８は、統括処理部１１７から受信したフロー情報をテストフロー情報管理部１１２に送信し、テストフロー情報記憶部１０５に格納されているフロー情報に対応するテストフロー情報の読み出しを依頼する。
【００７２】
ここで、テストフロー情報を受信した場合には、統括処理部１１７がテストフローの工程にＢＯＸ操作が含まれているか否かを判断する。
【００７３】
そして、統括処理部１１７がテストフローの工程にＢＯＸ操作が含まれていると判断した場合には、ユーザ情報とＢＯＸ情報をＢＯＸ情報管理部１１４に送信する。そして、ＢＯＸ情報記憶部１０７に格納されている対応するＢＯＸ情報の読み出しを依頼する。
【００７４】
そして、統括処理部１１７が読み出されたＢＯＸ情報の変更時刻から実行ユーザが変更されているか否かを判断し、変更されていないならば、テストフローを実行しない。これにより、変更されていない工程を実行させずに済む。
【００７５】
一方、テストフロー情報が読み出されなかった場合には、フロー情報から１工程ずつ順に読み出し、テストルール情報記憶部１０４に格納されている、工程に対応するテストルールの読出しをテストルール情報管理部１１１に依頼する。
【００７６】
次に、テストルール情報管理部１１１から受信したテストルール情報を用いて、テスト工程に変換する。
【００７７】
さらに、変換後のテスト工程をテストフローに追加する。フロー情報の全工程についてテストフローに変換した後、作成されたテストフローをテストフロー情報管理部１１２に送信し、テストフロー情報記憶部１０５への送信を依頼する。
【００７８】
〔テストフローの実行処理〕
テストフロー作成実行部１１８は、テストフローの実行処理について以下のような処理を行う。
【００７９】
そして、統括処理部１１７から受信したテストフロー情報について、既に実行されているか否かを判断する。ここで、既に実行されていると判断した場合には、表示部１１６に対して、後述のテストフロー再実行画面１４０１（図１４に示す）の表示を依頼する。
【００８０】
また、ユーザがテストフローの再実行を指示した場合、テストフロー作成実行部１１８は、テストフローの全工程を１工程ずつ順に実行する。そして、テストフローの実行が終了した場合、表示部１１６は、後述のテストフロー実行結果画面１５０１（図１５に示す）表示をする。
【００８１】
さらに、テストフローがエラーであった場合、テストフロー作成実行部１１８は、エラー内容をエラー対応情報管理部１１５に送信し、エラー対応情報記憶部１０８に格納されている、エラー内容に対するエラー情報の読み出しを依頼する。そして、エラー情報を受信すると、受信したエラー情報を表示部１１６に送信して、後述のエラー対応画面１６０１（図１６に示す）の表示を依頼する。
【００８２】
通信部１１９は、通信部１２２に対して、統括処理部１１７から受信したユーザ情報とフォルダ情報を送信し、アクセス権情報の送信を依頼する機能を有する。
【００８３】
また、通信部１１９は、通信部１２２から受信したアクセス権情報を、統括処理部１１７に送信する機能を有する。また、通信部１１９は、通信部１２２に対して、統括処理部１１７から受信したファイルデータを送信し、ファイルデータの格納依頼を行う機能を有する。
【００８４】
また、通信部１１９は、通信部１２２から受信したファイルデータを、統括処理部１１７に送信する機能を有する。
【００８５】
ＳＭＢサーバ１２１は、通信部１２２、データ保存部１２３を備える。
【００８６】
通信部１２２は、通信部１１９から受信したユーザ情報とフォルダ情報をデータ保存部１２３に送信し、アクセス権情報の読み出しを依頼する機能を有する。
【００８７】
また、通信部１２２は、データ保存部１２３から受信したアクセス権情報を、通信部１１９に送信する機能を有する。また、通信部１２２は、通信部１１９から受信したファイルデータを、データ保存部１２３に送信し、ファイルデータの保存をデータ保存部１２３に依頼する機能を有する。
【００８８】
さらに、通信部１２２は、通信部１１９から受信したファイル情報をデータ保存部１２３に送信し、ファイル情報に対応したファイルデータを、データ保存部１２３から受信し、受信したファイルデータを通信部１１９に送信する機能を有する。
【００８９】
データ保存部１２３は、通信部１１９から受信したユーザ情報とフォルダ情報に対応するアクセス権情報を読み出し、通信部１２２に送信する機能を有する。また、データ保存部１２３は、通信部１２２から受信したファイルデータを格納する機能を有する。また、データ保存部１２３は、通信部１２２から受信したファイル情報に対応するファイルデータを読み出し、通信部１２２に送信する機能を有する。
【００９０】
＜画像形成装置の構成図＞
次に、画像形成装置１０１について図２を参照しながら説明する。
【００９１】
図２は、図１に示した画像形成装置１０１のエンジン構成を示す断面図である。
【００９２】
図２において、画像形成装置１０１は、プリントエンジン２０１、ドキュメントフィーダ（ＤＦ）２０２、原稿読取部２０３、光源２０４、ＣＣＤ２０５、レーザ記録部２０６を備える。
【００９３】
また、画像形成装置１０１は、コントローラ２０７、用紙カセット２０８、定着部２０９、フィニッシャー２１０、排紙トレイ２１１を備える。
【００９４】
本実施形態において、画像形成装置１０１は、デジタル複合機の例を示す。このデジタル複合機は、コピー・プリンタ・FAXのそれぞれの機能を有している。プリントエンジン２０１は、白黒のプリント記録用のプリントエンジンである。なお、エンジンは、カラープリントエンジンであってもよい。
【００９５】
ドキュメントフィーダ（ＤＦ）２０２、原稿読取部２０３、光源２０４、ＣＣＤ２０５、レーザ記録部２０６、用紙カセット２０８、定着部２０９、フィニッシャー２１０、排紙トレイ２１１は、アクセサリーである。
【００９６】
ドキュメントフィーダ（DF）２０２に、原稿をフェースアップで載置して、スタートキーを押すと、原稿が原稿読取部２０３の上面に搬送される。そして、光源２０４で原稿を照射し、CCD２０５でその反射光を読み取って、デジタル信号に変換される。そして、コントローラ２０７で所望の画像処理を行ってレーザ記録信号に変換される。そして、その記録信号は、レーザ記録部２０６で記録レーザに変換され、感光体に照射され、感光体に潜像を形成する。
【００９７】
そして、トナー現像を行い、用紙カセット２０８から給紙された転写紙に、トナーを転写し、定着部２０９でトナーを定着させてフィニッシャー２１０に排出する。
【００９８】
フィニッシャー２１０では、オペレータに指定された機能に応じて各種動作をする。具体的には、ステープル等各種機能を有している。
【００９９】
排紙トレイ２１１は２つ有り、画像形成装置１０１の設定によって、コピー・プリンタ・FAXの機能毎に排紙トレイを振り分けることができる。
【０１００】
プリントエンジン２０１は、プリンタとして利用される場合、画像形成装置１０１の設定により以下の機能を設定できる。なお、画像形成装置１０１のエンジンがカラープリントエンジンを備える場合には、例えば、白黒プリント/カラープリント、用紙サイズ、両面、ステープル、開始ページ番号の各種設定を行う機能を有する。
【０１０１】
コントローラ２０７は、画像形成装置１０１の各種制御および演算などを行う中央処理装置として機能する。また、コントローラ２０７には、アプリケーションプログラム、各種データなどを保存するメモリとしての機能も有する。本実施形態におけるアプリケーションプログラムとは、各種処理手段を実行するソフトウェアプログラムなどである。コントローラ２０７の詳細については、図３において説明する。
【０１０２】
＜画像形成装置１０１のコントローラおよびＳＭＢサーバ１２１の構成図＞
次に、画像形成装置１０１のコントローラ２０７およびＳＭＢサーバ１２１の構成について図３を参照しながら説明する。
【０１０３】
図３は、図１に示した画像形成装置１０１のコントローラ２０７およびＳＭＢサーバ１２１の構成を示すブロック図である。なお、画像形成装置１０１のコントローラ２０７およびＳＭＢサーバ１２１の構成は同一である。また、画像形成装置１０１のコントローラ２０７およびＳＭＢサーバ１２１は、図３に示す各ブロックを備える。
【０１０４】
図３において、３０１はＣＰＵで、システムバス３００を介して、ＲＡＭ３０２、ＲＯＭ３０３、外部記憶媒体読み取り／書き込みユニット３０４、ＮＥＴ  Ｉ／Ｆ３０５が接続されている。また、ＣＰＵ３０１は、システムバス３００を介して、ＶＲＡＭ３０８、ＫＢＣ３１０、ＨＤＤ３１３、ＩＯＣ３１４およびそれらのユニットと接続されている。ここで、システムバス３００は、各ユニット間のデータおよび制御情報を伝送する伝送路である。
【０１０５】
ＣＰＵ３０１は、画像形成装置１０１のコントローラ２０７およびＳＭＢサーバ１２１の各種制御および演算などを行う中央処理装置として機能する。
【０１０６】
ＲＡＭ３０２はランダムアクセスメモリであり、ＣＰＵ３０１の主メモリとして、実行プログラムの格納領域、該プログラムの実行領域ならびにデータ格納領域を提供する。
【０１０７】
ＲＯＭ３０３は、ＣＰＵ３０１の動作処理手順を記憶している読み取り専用メモリである。ＲＯＭ３０３は、画像形成装置１０１のコントローラ２０７およびＳＭＢサーバ１２１内の各ユニットの制御を行う基本プログラム（一般的にＢＩＯＳと呼ばれる）や、システムを稼働するために必要な情報などを記憶する。
【０１０８】
外部記憶媒体読み取り／書き込みユニット３０４は、フロッピー（登録商標）（Ｒ）ディスクやＣＤ−ＲＯＭなど、取り外し可能な外部記憶媒体のデータ入出力を行うユニット群である。
【０１０９】
ＮＥＴＩ／Ｆ３０５はネットワークインタフェースであり、モデム３０６を介して外部ネットワークに接続する、またはＬＡＮ３０７に接続するものである。
【０１１０】
ＮＥＴＩ／Ｆ３０５は、ネットワーク１２０を介して画像形成装置１０１のコントローラ２０７およびＳＭＢサーバ１２１を含むほかの機器との間でデータ転送を行うための制御や接続状況の診断を行う。
【０１１１】
モデム３０６は、外部ネットワークと画像形成装置１０１のコントローラ２０７およびＳＭＢサーバ１２１とを電話回線を介して接続するための、モデムやＩＳＤＮ接続用のターミナルアダプタ（ＴＡ）などからなる。
【０１１２】
ＬＡＮ３０７は、イーサネット（登録商標）などのネットワークシステムである。本実施の形態において、画像形成装置１０１のコントローラ２０７およびＳＭＢサーバ１２１は、モデム３０６を介することによって、ネットワーク１２０に接続する。なお、画像形成装置１０１のコントローラ２０７およびＳＭＢサーバ１２１は、ＬＡＮ３０７上に接続されているルータやゲートウェイなどの通信機器を介することによって、ネットワーク１２０に接続する構成であってもよい。
【０１１３】
ＶＲＡＭ３０８は、ビデオＲＡＭであって、ＣＲＴ３０９に表示する画像データを展開し、表示の制御を行う。ここで、ＣＲＴ３０９に代えて液晶表示装置などを用いることも可能である。
【０１１４】
ＫＢＣ３１０は、キーボード３１１およびマウス３１２からの入力信号を制御するコントローラである。
【０１１５】
ここで、キーボード３１１に代えて、液晶表示装置上のソフトウェアキーボード等を用いることも可能である。また、マウス３１２に代えて液晶表示装置上のタッチパネルなどを用いることも可能である。
【０１１６】
ＨＤＤ３１３はハードディスクドライブであり、アプリケーションプログラム、各種データなどを保存するメモリとして用いられる。本実施の形態におけるアプリケーションプログラムとは、各種処理手段を実行するソフトウェアプログラムなどである。
【０１１７】
ＩＯＣ３１４は、プリンタ３１５、スキャナ３１６を制御するためのものであり、プリンタ３１５やスキャナ３１６以外の外部入出力装置、例えば外部接続ＨＤＤやＭＯドライブなどを接続することも可能である。
【０１１８】
＜ユーザ情報、フロー情報、テストルール情報、テストフロー情報、処理履歴情報、ＢＯＸ情報、エラー対応情報を示す図＞
図４は、図１に示したデータ処理システムで処理される各種情報のデータ構造を説明する図である。
【０１１９】
図４において、ユーザ情報は、図４の（ａ）に示すように、ユーザ情報のデータベース４０１から構成される。データベース４０１における行は、ユーザ情報を示す。なお、図４の（ａ）に示されるユーザ情報は、画像形成装置１０１のユーザ情報記憶部１０２に格納される。
【０１２０】
データベース４０１の各列のデータは、それぞれ、ユーザＩＤ４０２、ユーザ名４０３、パスワード４０４、管理ユーザフラグ４０５などを示す。
【０１２１】
また、上記管理ユーザフラグ４０５に示されるデータにおいて、"１"はそのユーザが管理ユーザであることを示し、"０"はそのユーザが一般ユーザであることを示す。これにより、ログインしたが管理ユーザであるかを特定することができる。
【０１２２】
本実施形態において、データベース４０１で示されたデータは一例であり、さらに多くのデータベースが設けられていてもよい。また、データベース４０１において他の付加情報（ユーザの権限、ユーザの所属、ユーザの住所、ユーザの連絡先等の情報）が格納されていてもよい。
【０１２３】
さらに、本実施形態においては、データベース４０１の各レコードは、データベース形式で記憶装置に格納されている。しかし、これらのレコードは、ファイル形式で記憶装置に格納してもよいことはいうまでもない。
【０１２４】
フロー情報は、図４の（ｂ）に示すように、フロー情報のデータベース４０６から構成される。データベース４０６における行は、フロー情報を示す。なお、図４の（ｂ）に示されるフロー情報は、画像形成装置１０１のフロー情報記憶部１０３に格納されるフロー情報である。
【０１２５】
データベース４０６の各列のデータは、それぞれ、フローＩＤ４０７、フロー名４０８、管理ユーザ４０９、実行ユーザ４１０、フロー定義４１１、変更時刻４１２などを示す。
【０１２６】
本実施形態において、データベース４０６で示されたデータは一例であり、さらに多くのデータベースが設けられていてもよい。
【０１２７】
また、データベース４０６において他の付加情報（フロー定義種別、実行時刻等の情報）が格納されていてもよい。
【０１２８】
また、データベース４０６で示されたフロー定義４１１のデータは一例であり、フロー定義４１１がＸＭＬ等のドキュメント形式で記述されていてもよい。
【０１２９】
さらに、本実施形態においては、データベース４０６の各レコードは、データベース形式で記憶装置に格納されているが、これらのレコードは、ファイル形式で記憶装置に格納してもよいことはいうまでもない。
【０１３０】
テストルール情報は、図４の（ｃ）に示すように、テストルール情報のデータベース４１３から構成される。データベース４１３における行は、テストルール情報を示す。
【０１３１】
なお、図４の（ｃ）に示されるテストルール情報は、画像形成装置１０１のテストルール情報記憶部１０４に格納されるテストルール情報である。
【０１３２】
データベース４１３の各列のデータは、それぞれ、テストルールＩＤ４１４、ステップ種別４１５、テスト工程４１６、変更時刻４１７などを示す。
【０１３３】
本実施形態において、データベース４１３で示されたデータは一例であり、さらに多くのデータベースが設けられていてもよい。
【０１３４】
また、データベース４１３において他の付加情報（テストルール種別、テストルール定義ユーザ、バージョンＩＤ等の情報）が格納されていてもよい。また、データベース４１３で示されたテスト工程４１６のデータは一例であり、テスト工程４１６がＸＭＬ等のドキュメント形式で記述されていてもよい。
【０１３５】
さらに、本実施形態においては、データベース４１３の各レコードは、データベース形式で記憶装置に格納されているが、これらのレコードは、ファイル形式で記憶装置に格納してもよいことはいうまでもない。
【０１３６】
テストフロー情報は、図４の（ｄ）に示すように、テストフロー情報のデータベース４１８から構成される。データベース４１８における行は、テストフロー情報を示す。
【０１３７】
なお、図４の（ｄ）に示されるテストフロー情報は、画像形成装置１０１のテストフロー情報記憶部１０５に格納されるテストフロー情報である。
【０１３８】
データベース４１８の各列のデータは、それぞれ、テストフローＩＤ４１９、フローＩＤ４２０、実行ユーザ４２１、テストフロー定義４２２、変更時刻４２３、実行時刻４２４などを示す。
【０１３９】
本実施形態において、データベース４１８で示されたデータは一例であり、さらに多くのデータベースが設けられていてもよい。
【０１４０】
また、データベース４１８において他の付加情報（テストフロー種別、定義ユーザ等の情報）が格納されていてもよい。
【０１４１】
また、データベース４１８で示されたテストフロー定義４２２のデータは一例であり、テストフロー定義４２２がＸＭＬ等のドキュメント形式で記述されていてもよい。
【０１４２】
さらに、本実施形態においては、データベース４１８の各レコードは、データベース形式で記憶装置に格納されているが、これらのレコードは、ファイル形式で記憶装置に格納してもよいことはいうまでもない。
【０１４３】
処理履歴情報は、図４の（ｅ）に示すように、処理履歴情報のデータベース４２５から構成される。データベース４２５における行は、処理履歴情報を示す。なお、図４の（ｅ）に示される処理履歴情報は、画像形成装置１０１の処理履歴情報記憶部１０６に格納される処理履歴情報である。
【０１４４】
データベース４２５の各列のデータは、それぞれ、履歴ＩＤ４２６、実行ユーザ４２７、処理履歴４２８、処理時刻４２９などを示す。
【０１４５】
本実施形態において、データベース４２５で示されたデータは一例であり、さらに多くのデータベースが設けられていてもよい。
【０１４６】
また、データベース４２５において他の付加情報（処理履歴種別、処理時間等の情報）が格納されていてもよい。また、データベース４２５で示された処理履歴４２８のデータは一例であり、処理履歴４２８がＸＭＬ等のドキュメント形式で記述されていてもよい。
【０１４７】
さらに、本実施形態においては、データベース４２５の各レコードは、データベース形式で記憶装置に格納されているが、これらのレコードは、ファイル形式で記憶装置に格納してもよいことはいうまでもない。
【０１４８】
ＢＯＸ情報は、図４の（ｆ）に示すように、ＢＯＸ情報のデータベース４３０から構成される。データベース４３０における行は、ＢＯＸ情報を示す。なお、図４の（ｆ）に示されるＢＯＸ情報は、画像形成装置１０１のＢＯＸ情報記憶部１０７に格納されるＢＯＸ情報である。
【０１４９】
データベース４３０の各列のデータは、それぞれ、ＢＯＸＩＤ４３１、ＢＯＸ名４３２、管理ユーザ４３３、利用ユーザ４３４、実フォルダ４３５、変更時刻４３６などを示す。
【０１５０】
本実施形態において、データベース４３０で示されたデータは一例であり、さらに多くのデータベースが設けられていてもよい。
【０１５１】
また、データベース４３０において他の付加情報（ＢＯＸ種別、ＢＯＸ作成時刻、ＢＯＸ操作履歴、ＢＯＸ容量、最大ファイル数、現在のファイル数等の情報）が格納されていてもよい。
【０１５２】
さらに、本実施形態においては、データベース４３０の各レコードは、データベース形式で記憶装置に格納されているが、これらのレコードは、ファイル形式で記憶装置に格納してもよいことはいうまでもない。
【０１５３】
エラー対応情報は、図４の（ｇ）に示すように、エラー対応情報のデータベース４３７から構成される。データベース４３７における行は、エラー対応情報を示す。
【０１５４】
なお、図４の（ｇ）に示されるエラー対応情報は、画像形成装置１０１のエラー対応情報記憶部１０８に格納されるエラー対応情報である。
【０１５５】
データベース４３７の各列のデータは、それぞれ、エラーＩＤ４３８、ステップ種別４３９、エラー内容４４０、対応内容４４１などを示す。
【０１５６】
本実施形態において、データベース４３７で示されたデータは一例であり、さらに多くのデータベースが設けられていてもよい。
【０１５７】
また、データベース４３７において他の付加情報（エラー対応種別、エラー対応定義時刻、エラー対応履歴等の情報）が格納されていてもよい。また、データベース４３７で示されたエラー内容４４０および対応内容４４１のデータは一例であり、エラー内容４４０および対応内容４４１がＸＭＬ等のドキュメント形式で記述されていてもよい。
【０１５８】
さらに、本実施形態においては、データベース４３７の各レコードは、データベース形式で記憶装置に格納されているが、これらのレコードは、ファイル形式で記憶装置に格納してもよいことはいうまでもない。
【０１５９】
＜ワークフロー定義に伴う画像形成装置のフローチャート＞
次に、画像形成装置１０１によるワークフロー定義処理について図５を参照しながら説明する。
【０１６０】
図５は、本実施形態を示す画像形成装置における第１のデータ処理手順の一例を示すフローチャートである。本例は、図１に示した画像形成装置１０１によるワークフロー定義処理の手順例である。なお、Ｓ５０１〜Ｓ５０６は各ステップを示す。また、各ステップは、図３に示したＣＰＵ３０１によりＲＡＭ３０２にロードされる制御プログラムを実行することで実現される。
【０１６１】
まず、統括処理部１１７が、表示部１１６に対して、後述のログイン画面１１０１（図１１に示す）の表示を依頼する。
【０１６２】
次に、ユーザは後述のログイン画面１１０１（図１１に示す）上において、Ｓ５０１で、ユーザＩＤ１１０２およびパスワード入力ボックス１１０３からパスワードを入力し、ＯＫボタン１１０４を押下する。これらのユーザの処理に従って、統括処理部１１７は、パスワードとユーザＩＤとを取得する。
【０１６３】
そして、統括処理部１１７は、取得したユーザＩＤをユーザ情報管理部１０９に送信し、当該ユーザＩＤに対応するユーザ情報の読み出しをユーザ情報管理部１０９に依頼する。
【０１６４】
そして、ユーザ情報管理部１０９は、受信したユーザＩＤに対応するユーザ情報をユーザ情報記憶部１０２から読み出し、統括処理部１１７に送信する。
【０１６５】
ここで、統括処理部１１７は、受信したユーザ情報と、Ｓ５０１でユーザが入力したパスワードを使用して、ユーザＩＤおよびパスワードの認証を行う（Ｓ５０２）。
【０１６６】
統括処理部１１７は、認証に成功したか否かを判断する（Ｓ５０３）。具体的に、ユーザ情報記憶部１０２に、Ｓ５０１にて取得したユーザＩＤに対応するユーザ情報が格納されており、かつ、読み出されたユーザ情報のパスワードと、ユーザが入力したパスワードが一致する場合、統括処理部１１７は、認証成功であると判断する。一方、そうでない場合には、統括処理部１１７は、認証失敗であると判断して、Ｓ５０１に戻る。
【０１６７】
Ｓ５０３において認証に成功したと判断された場合、統括処理部１１７は、ログインユーザが管理者であるか否かを判定する（Ｓ５０４）。具体的には、統括処理部１１７が、取得したユーザ情報の管理ユーザフラグが"０"であると判断した場合、ユーザが一般ユーザであると判断して、Ｓ５０１に戻る。
【０１６８】
一方、統括処理部１１７が、管理ユーザフラグが"１"であると判断した場合には、ユーザが管理ユーザであると判断して、Ｓ５０５に進む。
【０１６９】
そして、統括処理部１１７が表示部１１６に対して、後述のワークフロー定義画面１２０１（図１２に示す）の表示を依頼する。次に、Ｓ５０５で、ユーザは、後述のワークフロー定義画面１２０１（図１２に示す）上でワークフロー定義を行い、ＯＫボタン１２１０を押下する。当該ユーザ操作に従って、統括処理部１１７は、ユーザにより定義されたワークフローを取得する。
【０１７０】
次に、統括処理部１１７は、取得されたフロー定義情報をフロー情報管理部１１０に送信し、フロー定義情報をフロー情報記憶部１０３に格納するよう依頼する。
【０１７１】
そして、Ｓ５０６で、フロー情報管理部１１０は、受信したフロー定義情報をフロー情報記憶部１０３に格納し、格納した旨を統括処理部１１７に送信して、本処理を終了する。
【０１７２】
＜テストフロー作成実行に伴う画像形成装置のフローチャート＞
次に、画像形成装置１０１によるテストフロー作成実行処理について図６を参照しながら説明する。
【０１７３】
図６は、本実施形態を示す画像形成装置における第２のデータ処理手順の一例を示すフローチャートである。本例は、画像形成装置１０１によるテストフロー作成実行処理の手順例である。なお、Ｓ６０１〜Ｓ６０６は各ステップを示す。また、各ステップは、図３に示したＣＰＵ３０１によりＲＡＭ３０２にロードされる制御プログラムを実行することで実現される。
【０１７４】
まず、統括処理部１１７が、表示部１１６に対して、後述のログイン画面１１０１（図１１に示す）の表示を依頼する。
【０１７５】
次に、Ｓ６０１で、ユーザは後述のログイン画面１１０１（図１１に示す）上において、ユーザＩＤ１１０２およびパスワード入力ボックス１１０３からパスワードを入力し、ＯＫボタン１１０４を押下する。これらのユーザ操作に従って、統括処理部１１７は、ユーザＩＤとパスワードとを取得する。そして、統括処理部１１７は、取得したユーザＩＤをユーザ情報管理部１０９に送信し、当該ユーザＩＤに対応するユーザ情報の読み出しをユーザ情報管理部１０９に依頼する。
【０１７６】
そして、ユーザ情報管理部１０９は、受信したユーザＩＤに対応するユーザ情報をユーザ情報記憶部１０２から読み出し、統括処理部１１７に送信する。
【０１７７】
ここで、統括処理部１１７は、受信したユーザ情報と、Ｓ６０１でユーザが入力したパスワードを使用して、ユーザＩＤおよびパスワードの認証を行う（Ｓ６０２）。
【０１７８】
次に、Ｓ６０３において、統括処理部１１７は、Ｓ６０１にて取得されたユーザＩＤに対応するユーザ情報がユーザ情報記憶部１０２に格納されており、かつ、読み出されたユーザ情報のパスワードと、ユーザが入力したパスワードが一致するかどうかを判断する。ここで、統括処理部１１７が一致すると判断した場合には、認証成功であると判断し、一致しないと判断した場合には、認証失敗であると判断する。
【０１７９】
そして、統括処理部１１７がＳ６０２で受信したユーザ情報をフロー情報管理部１１０に送信する。さらに、統括処理部１１７は、フロー情報記憶部１０３に格納されているフロー情報のうち、Ｓ６０２で取得したユーザ情報に対応するフロー情報を読み出すよう依頼する。つまり、ログインしたユーザによって実行されるフローが読み出される。
【０１８０】
そして、フロー情報管理部１１０は、フロー情報記憶部１０３に格納されているフロー情報のうち、統括処理部１１７から受信したユーザ情報に対応するフロー情報を読み出す。そして、フロー情報管理部１１０は、読み出されたフロー情報を統括処理部１１７に送信する。
【０１８１】
そして、統括処理部１１７は表示部１１６に対して、受信したフロー情報を送信し、後述のテストフロー実行画面１３０１（図１３に示す）を表示するよう依頼する。そして、ユーザは、後述のテストフロー実行画面１３０１（図１３に示す）上で、実行対象となるフローを選択し、ＯＫボタン１３０６を押下する。
【０１８２】
このユーザの操作に従って、統括処理部１１７は、ユーザにより選択されたフローのテストを実行することを指示する（Ｓ６０４）。
【０１８３】
次に、統括処理部１１７が、Ｓ６０４において指示されたフロー情報を取得する。そして、統括処理部１１７は、テストフロー作成実行部１１８に対して、取得されたフロー情報を送信してテストフローの作成を依頼し、テストフロー作成実行部１１８がワークフロー用のテストフローを作成する（Ｓ６０５）。
【０１８４】
そして、テストフロー作成実行部１１８は、テストフローの作成処理が終了すると統括処理部１１７に対して、テストフロー作成処理終了の旨を送信して、Ｓ６０６に進む。なお、Ｓ６０５はサブルーチンであり、Ｓ６０５における処理の詳細については、図７の説明で述べる。
【０１８５】
次に、Ｓ６０６で、統括処理部１１７がテストフロー作成実行部１１８に対してテストフローの実行を依頼し、テストフロー作成実行部１１８がテストフローを実行する。そして、テストフロー作成実行部１１８は、テストフローの実行処理が終了すると統括処理部１１７に対して、テストフロー実行処理終了の旨を送信して、処理を終了する。
【０１８６】
なお、Ｓ６０６はサブルーチンであり、Ｓ６０７における処理の詳細については、図８の説明で述べる。
【０１８７】
＜テストフローを作成するサブルーチンのフローチャート＞
次に、画像形成装置１０１によるテストフロー作成処理について図７を参照しながら説明する。
【０１８８】
図７は、本実施形態を示す画像形成装置における第３のデータ処理手順の一例を示すフローチャートである。本例は、画像形成装置１０１によるテストフロー作成処理の手順例である。また、図７の画像形成装置１０１におけるテストフロー作成処理は、図６の説明のＳ６０６に該当するサブルーチン処理である。
【０１８９】
なお、Ｓ７０１〜Ｓ７１１は各ステップを示す。また、各ステップは、図３に示したＣＰＵ３０１によりＲＡＭ３０２にロードされる制御プログラムを実行することで実現される。
【０１９０】
まず、テストフロー作成実行部１１８が、統括処理部１１７から受信したフロー情報をテストフロー情報管理部１１２に送信する。そして、フロー情報に対するテストフロー情報の読み出しを依頼する。
【０１９１】
そして、テストフロー情報管理部１１２は、受信したフロー情報のフローＩＤに対応するテストフロー情報を、テストフロー情報記憶部１０５から読み出し、テストフロー作成実行部１１８に送信する。
【０１９２】
次に、テストフロー作成実行部１１８は、統括処理部１１７から受信したフロー情報に対するテストフローが作成されているか否かを判断する（Ｓ７０１）。
【０１９３】
ここで、テストフロー作成実行部１１８は、テストフロー情報管理部１１２から受信したテストフロー情報読み出し結果が、読み出し成功であると判断した場合は、既にテストフローが作成されていると判断して、Ｓ７０２に進む。
【０１９４】
一方、Ｓ７０１で、テストフロー作成実行部１１８は、テストフロー情報管理部１１２から受信したテストフロー情報読み出し結果が、読み出し失敗であると判断した場合は、テストフローが作成されてないと判断して、Ｓ７０４に進む。ここでは、テストフロー作成実行部１１８が、既にテストフローが作成されていると判断したと仮定して、Ｓ７０２に進む。
【０１９５】
そして、Ｓ７０２で、テストフロー作成実行部１１８が、Ｓ７０１において受信したテストフロー情報のテストフロー定義を参照し、テストフロー定義で示されているフロー定義の工程に、ＢＯＸ操作が含まれているか否かを判断する。ここで、テストフロー作成実行部１１８が、テストフロー定義にＢＯＸ操作が含まれていると判断した場合には、Ｓ７０３に進む。
【０１９６】
一方、Ｓ７０２で、テストフロー作成実行部１１８が、テストフロー定義にＢＯＸ操作が含まれていないと判断した場合には、本処理を終了する。つまり、既に作成されているテストフローを用いてテスト処理が実行される。
【０１９７】
そして、Ｓ７０２において、ＢＯＸ操作が含まれていると判断された場合、テストフロー作成実行部１１８が、Ｓ７０１で受信したテストフローが過去に実行されてから、ＢＯＸのアクセス権が変更されているか否かを判断する（Ｓ７０３）。
【０１９８】
まず、テストフロー作成実行部１１８が、Ｓ７０１で受信したテストフローの実行時刻を参照する。そして、テストフロー作成実行部１１８は、テストフローの実行時刻が存在する場合、Ｓ７０１で統括処理部１１７から受信したフロー情報のＢＯＸ操作の対象となるＢＯＸを取得する。
【０１９９】
次に、テストフロー作成実行部１１８は、取得したＢＯＸ情報をＢＯＸ情報管理部１１４に送信し、ＢＯＸ情報のＢＯＸ名に対応するＢＯＸ情報を、ＢＯＸ情報記憶部１０７から読み出すよう依頼する。
【０２００】
そして、テストフロー作成実行部１１８は、受信したＢＯＸ情報のＢＯＸ名に対応するＢＯＸ情報を、ＢＯＸ情報記憶部１０７から読み出し、テストフロー作成実行部１１８に送信する。
【０２０１】
次に、テストフロー作成実行部１１８は、受信したＢＯＸ情報（アクセス権を含む）の変更時刻と、Ｓ７０１で受信したテストフロー情報の実行時刻を比較する。
【０２０２】
ここで、テストフロー作成実行部１１８が、Ｓ７０１において受信したテストフローの実行時刻が存在し、かつ、実行時刻が、ＢＯＸ情報の変更時刻以降の場合は、ＢＯＸのアクセス権は変更されていないと判断し、処理を終了する。
【０２０３】
一方、テストフローの実行時刻がＢＯＸ情報の変更時刻以前の場合、ＢＯＸのアクセス権は変更されたと判断される。
【０２０４】
一方、Ｓ７０３で、テストフロー作成実行部１１８が、ＢＯＸのアクセス権は変更されていると判断した場合、処理をＳ７０４へ進める。
【０２０５】
そして、Ｓ７０４で、テストフロー作成実行部１１８が、Ｓ７０１で受信したフロー情報のフロー定義を構成する工程を指すポインタ変数ｉの値を「１」で初期化して、Ｓ７０５に進む。
【０２０６】
次に、Ｓ７０５で、テストフロー作成実行部１１８が、フロー定義を構成する工程を指すポインタ変数ｉの値が、フロー定義の工程数以下であるか否かを判断する。
【０２０７】
ここで、テストフロー作成実行部１１８が、フロー定義を構成する工程を指すポインタ変数ｉの値が、フロー定義の工程数以下であると判断した場合は、Ｓ７０６に進む。
【０２０８】
一方、Ｓ７０５で、テストフロー作成実行部１１８が、フロー定義を構成する工程を指すポインタ変数ｉの値が、フロー定義の工程数以下でないと判断した場合は、Ｓ７１０に進む。
【０２０９】
ここでは、テストフロー作成実行部１１８が、フロー定義を構成する工程を指すポインタ変数ｉの値が、フロー定義の工程数以下であると判断したと仮定して、Ｓ７０６に進む。
【０２１０】
そして、Ｓ７０６で、テストフロー作成実行部１１８が、Ｓ７０１で受信したフロー情報の、フロー定義のｉ番目の工程情報を、テストルール情報管理部１１１に送信する。さらに、テストフロー作成実行部１１８が、テストルール情報管理部１１１に対して、ｉ番目の工程の処理に対応するステップ種別を持つテストルール情報の読み出しを依頼する。
【０２１１】
そして、テストルール情報管理部１１１は、テストルール情報記憶部１０４から、ｉ番目の工程の処理に対応するステップ種別を持つテストルール情報を読み出し、テストフロー作成実行部１１８に送信して、Ｓ７０７に進む。
【０２１２】
次に、Ｓ７０７で、テストフロー作成実行部１１８が、Ｓ７０１で受信したフロー情報の、フロー定義のｉ番目の工程を、Ｓ７０６において受信したテストルール情報のテスト工程に変換して、Ｓ７０８に進む。
【０２１３】
そして、Ｓ７０８で、テストフロー作成実行部１１８が、Ｓ７０７において変換されたテスト工程をテストフローに追加して、Ｓ７０９に進む。
【０２１４】
次に、Ｓ７０９においては、テストフロー作成実行部１１８が、フロー定義を構成する工程を指すポインタ変数ｉの値に「１」を加えてインクリメントして、Ｓ７０５に戻る。
【０２１５】
一方、Ｓ７０５で、ポインタ変数ｉの値がフローの工程数以下でないと判断した場合は、Ｓ７１０で、テストフロー作成実行部１１８が、Ｓ７０８においてテスト工程を追加して作成したテストフローの工程数が、「０」より大きいか否かを判断する。
【０２１６】
ここで、テストフロー作成実行部１１８が、Ｓ７０８で追加されて作成されたテストフローの工程数が、「０」より大きいと判断した場合には、Ｓ７１１に進む。
【０２１７】
一方、Ｓ７１０で、テストフロー作成実行部１１８が、Ｓ７０８で追加されて作成されたテストフローの工程数が、「０」より大きくないと判断した場合には、処理を終了する。
【０２１８】
ここでは、テストフロー作成実行部１１８が、Ｓ７０８で追加されて作成されたテストフローの工程数が、「０」より大きいと判断したと仮定して、Ｓ７１１に進む。
【０２１９】
そして、テストフロー作成実行部１１８が、Ｓ７０８においてテスト工程を追加して作成した実行対象ワークフロー用のテストフローを、テストフロー情報管理部１１２に送信し、テストフロー情報記憶部１０５に格納するよう依頼する。
【０２２０】
そして、Ｓ７１１で、テストフロー情報管理部１１２は、受信したテストフロー情報を、テストフロー情報記憶部１０５に格納し、格納した旨をテストフロー作成実行部１１８に送信して、処理を終了する。
【０２２１】
＜テストフローを実行するサブルーチンのフローチャート＞
次に、画像形成装置１０１によるテストフロー実行処理について図８を参照しながら説明する。
【０２２２】
図８は、本実施形態を示す画像形成装置における第４のデータ処理手順の一例を示すフローチャートである。本例は、画像形成装置１０１によるテストフロー実行処理の手順例である。
【０２２３】
また、図８の画像形成装置１０１におけるストフロー実行処理は、図６の説明のＳ６０６に該当するサブルーチン処理である。なお、Ｓ８０１〜Ｓ８１２は各ステップを示す。
【０２２４】
また、各ステップは、図３に示したＣＰＵ３０１によりＲＡＭ３０２にロードされる制御プログラムを実行することで実現される。
【０２２５】
画像形成装置１０１においては、図８に示すように、まず、テストフロー作成実行部１１８が、テストフロー情報管理部１１２に対して、統括処理部１１７から受信したフロー情報を送信する。
【０２２６】
さらに、フローＩＤに対応するテストフローを、テストフロー情報記憶部１０５から読み出すよう依頼する。
【０２２７】
そして、Ｓ８０１で、テストフロー情報管理部１１２はテストフロー作成実行部１１８から受信したフロー情報のフローＩＤに対応するテストフローをテストフロー情報記憶部１０５から読み出して、テストフロー作成実行部１１８に送信して、Ｓ８０２に進む。
【０２２８】
そして、Ｓ８０２で、テストフロー作成実行部１１８が、Ｓ８０１で受信したテストフロー情報の実行時刻を参照し、実行時刻の値が存在する場合には、テストフローが既に実行されていると判断して、Ｓ８０３に進む。
【０２２９】
一方、Ｓ８０２で、テストフロー作成実行部１１８が、Ｓ８０１で受信したテストフロー情報の実行時刻を参照し、実行時刻の値が存在しないと判断した場合には、テストフローがまだ実行されていないと判断して、Ｓ８０５に進む。
【０２３０】
そして、テストフロー作成実行部１１８が、表示部１１６に後述のテストフロー再実行画面１４０１（図１４に示す）の表示を依頼する。
【０２３１】
次に、Ｓ８０３で、ユーザは、後述のテストフロー再実行画面１４０１（図１４に示す）上のＯＫボタン１４０６、または、キャンセルボタン１４０７を押下した場合は、Ｓ８０４に進む。
【０２３２】
次に、Ｓ８０４で、テストフロー作成実行部１１８が、Ｓ８０３において、ユーザがテストフローの再実行を指示したか否かを判断する。テストフロー作成実行部１１８が、ユーザが後述のテストフロー再実行画面１４０１（図１４に示す）上のＯＫボタン１４０６を押下した場合には、テストフローの再実行を指示したと判断して、Ｓ８０５に進む。
【０２３３】
一方、Ｓ８０４で、テストフロー作成実行部１１８が、ユーザが後述のテストフロー再実行画面１４０１（図１４に示す）上のキャンセルボタン１４０７を押下した場合には、テストフローの再実行を指示していないと判断する。そして、Ｓ８０９に進む。
【０２３４】
ここでは、テストフロー作成実行部１１８が、ユーザがテストフローの再実行を指示したと判断したと仮定して、Ｓ８０５に進む。
【０２３５】
次に、Ｓ８０５で、テストフロー作成実行部１１８が、テストフロー定義を構成するテスト工程を指すポインタ変数ｋの値を「１」で初期化して、Ｓ８０６に進む。
【０２３６】
そして、Ｓ８０６で、テストフロー作成実行部１１８が、テストフロー定義を構成するテスト工程を指すポインタ変数ｋの値が、Ｓ８０１で読み出されたテストフロー定義の工程数以下であるか否かを判断する。
【０２３７】
ここで、テストフロー作成実行部１１８が、テストフロー定義を構成するテスト工程を指すポインタ変数ｋの値が、Ｓ８０１で読み出されたテストフロー定義の工程数以下であると判断した場合には、Ｓ８０７に進む。
【０２３８】
一方、Ｓ８０６で、テストフロー作成実行部１１８が、テストフロー定義を構成するテスト工程を指すポインタ変数ｋの値が、Ｓ８０１で読み出されたテストフロー定義の工程数以下でないと判断した場合には、Ｓ８０９に進む。
【０２３９】
ここでは、テストフロー作成実行部１１８が、テストフロー定義を構成するテスト工程を指すポインタ変数ｋの値が、Ｓ８０１で読み出されたテストフロー定義の工程数以下であると判断したと仮定して、Ｓ８０７に進む。
【０２４０】
そして、Ｓ８０７で、テストフロー作成実行部１１８が、Ｓ８０１で読み出されたテストフロー情報の、テストフロー定義のｋ番目のテスト工程を実行する。そして、Ｓ８０８に進む。
【０２４１】
次に、Ｓ８０８で、テストフロー作成実行部１１８が、テストフロー定義を構成するテスト工程を指すポインタ変数ｋの値に「１」を加えてインクリメントして、Ｓ８０６に戻る。
【０２４２】
一方、Ｓ８０４でテストフローを歳実行しないと判断した場合は、テストフロー作成実行部１１８が、Ｓ８０１で読み出されたテストフロー情報のフローＩＤと現在時刻を、テストフロー情報管理部１１２に送信する。
【０２４３】
さらに、テストフロー情報記憶部１０５に格納されている、テストフローＩＤに対応するテストフロー情報の実行時刻に、現在時刻を格納するよう依頼する。テストフロー情報管理部１１２は、テストフロー情報記憶部１０５に格納されている、テストフローＩＤに対応するテストフロー情報の実行時刻に、現在時刻を格納し、格納した旨をテストフロー作成実行部１１８に送信する。
【０２４４】
次に、Ｓ８０９で、テストフロー作成実行部１１８は、Ｓ８０７においてテストされたテスト工程の実行結果を、表示部１１６に送信し、後述のテストフロー実行結果画面１５０１（図１５に示す）を表示するよう依頼して、Ｓ８１０に進む。
【０２４５】
そして、Ｓ８１０で、テストフロー作成実行部１１８が、Ｓ８０７においてテストされたテスト工程の実行結果がエラーであるか否かを判断する。ここで、テストフロー作成実行部１１８が、テスト工程の実行結果がエラーであると判断した場合には、Ｓ８１１に進む。このように、テストフロー作成実行部１１８は、実行結果がエラーとなっているかどうかのエラー判断を行う。
【０２４６】
一方、Ｓ８１０で、テストフロー作成実行部１１８が、Ｓ８０７においてテストされたテスト工程の実行結果がエラーでないと判断した場合には、処理を終了する。
【０２４７】
ここでは、テストフロー作成実行部１１８が、テスト工程の実行結果がエラーであると判断したと仮定して、Ｓ８１１に進む。
【０２４８】
そして、テストフロー作成実行部１１８が、Ｓ８０７において実行結果がエラーであったテスト工程を、エラー対応情報管理部１１５に送信する。そして、Ｓ８１１で、実行結果がエラーであったテスト工程に対応するステップ種別のエラー対応情報を、エラー対応情報記憶部１０８から読み出すよう依頼する。
【０２４９】
そして、エラー対応情報管理部１１５は、受信したテスト工程に対応するステップ種別のエラー対応情報を、エラー対応情報記憶部１０８から読み出し、読み出されたエラー対応情報を、テストフロー作成実行部１１８に送信する。そしてＳ８１２に進む。
【０２５０】
次に、Ｓ８１２で、テストフロー作成実行部１１８が、Ｓ８１１で読み出されたエラー対応情報を表示部１１６に送信し、後述のエラー対応画面１６０１（図１６に示す）を表示するよう依頼して、処理を終了する。
【０２５１】
なお、エラーの通知方法は、上記エラー対応情報を表示部１１６に送信して表示する以外の方法であってもよい。
【０２５２】
これにより、ワークフローシステム上でワークフローのテスト実行を出来る。このことで、ユーザがワークフローを構成する複数の工程のうち、実行に支障がある工程を知ることが出来、さらに、ワークフローが正常に実行することが可能か否かを知ることができる。
【０２５３】
また、各ユーザが、ワークフローのテスト実行を指示することに従ってテストフローが生成されるため、管理者の負担を軽減することが出来る。
【０２５４】
本実施形態によれば、保存された履歴情報から新たなワークフローを作成するのではなく、テスト用のワークフローを作成してユーザが実行することで、ユーザが、ワークフローが正常に実行することが可能か否かを知ることが出来る。
【０２５５】
また、ワークフローのルールに抵触しているかだけでなく、ユーザがワークフローをテスト実行出来ることで、ワークフローが正常に実行することが可能か否かをユーザが知ることが出来る。
【０２５６】
また、ワークフローがＢｏｘへの保存やＳＭＢサーバへのファイル送信を含む場合、ユーザ毎にＢｏｘやＳＭＢサーバに対するアクセス権が異なるため、ワークフローが正常に実行できるか否かを管理者が確認すべく、ユーザ毎にフローをテストする必要があった。
【０２５７】
ここで、本実施形態を用いることで、実行ユーザがテストを指示することで、テストワークフローが生成されるため、管理者の負荷を軽減することが可能となる。
【０２５８】
以下、本実施形態を示す画像形成装置１０１の表示部１１６に表示可能な各種のユーザインタフェースについて説明する。
【０２５９】
＜ログイン画面＞
次に、ログイン画面１１０１について図１１を参照しながら説明する。
【０２６０】
図１１は、本実施形態を示す画像形成装置で表示可能なユーザインタフェースの一例を示す図である。本例は、画像形成装置１０１に表示されるログイン画面の例である。
【０２６１】
この画面の表示処理はＣＰＵ３０１の命令に基づいて表示部１１６により実行される。本画面上でのユーザによる入力操作には、キーボード３１１、マウス３１２などが用いられる。
【０２６２】
図１１において、ログイン画面１１０１には、ユーザＩＤ入力ボックス１１０２、パスワード入力ボックス１１０３、ＯＫボタン１１０４などが表示される。また、ログイン画面１１０１に対して、例えば、ユーザ情報として、ユーザグループ入力ボックスや、ユーザ所属入力ボックスなどを追加することができる。
【０２６３】
ユーザＩＤ入力ボックス１１０２は、ユーザが画像形成装置１０１に対して、ユーザ情報におけるユーザＩＤを入力するための入力ボックスである。入力されたユーザＩＤは、統括処理部１１７においてユーザ認証に用いられる。
【０２６４】
パスワード入力ボックス１１０３は、ユーザが画像形成装置１０１に対して、ユーザ情報におけるパスワードを入力するための入力ボックスである。入力されたパスワードは、統括処理部１１７においてユーザ認証に用いられる。
【０２６５】
ＯＫボタン１１０４は、ユーザが画像形成装置１０１に対して、ユーザＩＤおよびパスワードを用いてユーザ認証を行うことを指示するためのボタンである。ＯＫボタン１１０４が押下されると、ユーザＩＤ入力ボックス１１０２に入力されているユーザＩＤ、及び、パスワード入力ボックス１１０３に入力されているパスワードが、ユーザ情報として、統括処理部１１７において取得される。
【０２６６】
そして、統括処理部１１７が判断したユーザ認証結果が認証失敗であった場合は、ログイン画面１１０１上に認証失敗である旨を表示する。
【０２６７】
また、統括処理部１１７が判断したユーザ認証結果が認証成功であった場合は、後述のワークフロー定義画面１２０１（図１２）、または、後述のテストフロー実行画面１３０１（図１３）、または、後述の処理実行画面１７０１（図１７）に移行する。
【０２６８】
＜ワークフロー定義画面＞
次に、ワークフロー定義画面１２０１について図１２を参照しながら説明する。
【０２６９】
図１２は、本実施形態を示す画像形成装置で表示可能なユーザインタフェースの一例を示す図である。本例は、画像形成装置１０１に表示されるワークフロー定義画面の一例である。この画面の表示処理はＣＰＵ３０１の命令に基づいて表示部１１６により実行される。本画面上でのユーザによる入力操作には、キーボード３１１、マウス３１２などが用いられる。
【０２７０】
図１２において、ワークフロー定義画面１２０１には、スキャンボタン１２０２、Ｂｏｘ読込ボタン１２０３、文書結合ボタン１２０４、ページ消去ボタン１２０５、プレビュー表示ボタン１２０６などが表示される。さらに、ワークフロー定義画面１２０１には、Ｂｏｘ保存ボタン１２０７、印刷ボタン１２０８、送信ボタン１２０９、ＯＫボタン１２１０、キャンセルボタン１２１１などが表示される。
【０２７１】
なお、ワークフロー定義画面１２０１に対して、例えば、ファイルサーバ受信ボタン、ヘルプボタンなどを追加することができる。
【０２７２】
スキャンボタン１２０２は、ユーザがワークフロー定義の入力としてスキャンを選択する際に押下するボタンである。ここで、スキャンボタン１２０２が押下された場合、ワークフロー定義の入力がスキャンであるとし、スキャン設定ダイアログ画面が表示され、ユーザがスキャン設定を行うことが出来る。
【０２７３】
ユーザがスキャン設定を入力すると、ワークフロー定義の入力としてスキャン処理が設定される。
【０２７４】
Ｂｏｘ読込ボタン１２０３は、ユーザがワークフロー定義の入力としてＢｏｘ読込を選択する際に押下するボタンである。
【０２７５】
ここで、Ｂｏｘ読込ボタン１２０３が押下された場合、ワークフロー定義の入力がＢｏｘ読込であるとし、Ｂｏｘ読込設定ダイアログ画面が表示され、ユーザがＢｏｘ読込設定を行うことが出来る。
【０２７６】
ユーザがＢｏｘ読込設定を入力すると、ワークフロー定義の入力としてＢｏｘ読込処理が設定される。なお、Ｂｏｘ読込処理とは、Ｂｏｘに格納されているデータを読み出す処理を指す。
【０２７７】
文書結合ボタン１２０４は、ユーザがワークフロー定義の編集として文書結合を選択する際に押下するボタンである。
【０２７８】
ここで、文書結合ボタン１２０４が押下された場合、ワークフロー定義の編集が文書結合であるとし、文書結合設定ダイアログ画面が表示され、ユーザが文書結合設定を行うことが出来る。ユーザが文書結合設定を入力すると、ワークフロー定義の編集として文書結合処理が設定される。なお、文書結合とは複数のデータを１つのデータに結合する処理を指す。
【０２７９】
ページ消去ボタン１２０５は、ユーザがワークフロー定義の編集としてページ消去を選択する際に押下するボタンである。ここで、ページ消去ボタン１２０５が押下された場合、ワークフロー定義の編集がページ消去であるとし、ページ消去設定ダイアログ画面が表示され、ユーザがページ消去設定を行うことが出来る。
【０２８０】
ユーザがページ消去設定を入力すると、ワークフロー定義の編集としてページ消去処理が設定される。
【０２８１】
プレビュー表示ボタン１２０６は、ユーザがワークフロー定義の編集としてプレビューを選択する際に押下するボタンである。ここで、プレビュー表示ボタン１２０６が押下された場合、ワークフロー定義の編集がプレビューであるとし、プレビュー設定ダイアログ画面が表示され、ユーザがプレビュー設定を行うことが出来る。
【０２８２】
ユーザがプレビュー設定を入力すると、ワークフロー定義の編集としてプレビュー処理が設定される。
【０２８３】
Ｂｏｘ保存ボタン１２０７は、ユーザがワークフロー定義の出力としてＢｏｘ保存を選択する際に押下するボタンである。ここで、Ｂｏｘ保存ボタン１２０７が押下された場合、ワークフロー定義の出力がＢｏｘ保存であるとし、Ｂｏｘ保存設定ダイアログ画面が表示され、ユーザがＢｏｘ保存設定を行うことが出来る。
【０２８４】
ユーザがＢｏｘ保存設定を入力すると、ワークフロー定義の出力としてＢｏｘ保存処理が設定される。
【０２８５】
印刷ボタン１２０８は、ユーザがワークフロー定義の出力として印刷を選択する際に押下するボタンである。ここで、印刷ボタン１２０８が押下された場合、ワークフロー定義の出力が印刷であるとし、印刷設定ダイアログ画面が表示され、ユーザが印刷設定を行うことが出来る。
【０２８６】
ユーザが印刷設定を入力すると、ワークフロー定義の出力として印刷処理が設定される。
【０２８７】
送信ボタン１２０９は、ユーザがワークフロー定義の出力として送信を選択する際に押下するボタンである。ここで、送信ボタン１２０９が押下された場合、ワークフロー定義の出力が送信であるとし、送信設定ダイアログ画面が表示され、ユーザが送信設定を行うことが出来る。ユーザが送信設定を入力すると、ワークフロー定義の出力として送信処理が設定される。
【０２８８】
ＯＫボタン１２１０は、ユーザが画像形成装置１０１に対して、ワークフロー定義画面１２０１において選択されたフロー情報を、画像形成装置１０１に保存するよう指示するためのボタンである。ここで、ＯＫボタン１２１０が押下されると、統括処理部１１７は、ユーザがワークフロー定義画面１２０１上で入力したフロー情報を取得する。
【０２８９】
キャンセルボタン１２１１は、ユーザが画像形成装置１０１に対して、ワークフロー定義画面１２０１において選択されたフロー情報を、画像形成装置１０１に保存せずに処理を中止するよう指示するためのボタンである。ここで、キャンセルボタン１２１１が押下されると、統括処理部１１７は処理を中止し、表示部１１６に対してログイン画面１１０１を表示するよう依頼する。
【０２９０】
＜テストフロー実行画面＞
次に、テストフロー実行画面１３０１について図１３を参照しながら説明する。
【０２９１】
図１３は、本実施形態を示す画像形成装置で表示可能なユーザインタフェースの一例を示す図である。本例は、画像形成装置１０１に表示されるテストフロー実行画面の例である。
【０２９２】
この画面の表示処理はＣＰＵ３０１の命令に基づいて表示部１１６により実行される。本画面上でのユーザによる入力操作には、キーボード３１１、マウス３１２などが用いられる。
【０２９３】
図１３において、テストフロー実行画面１３０１には、テストフロー選択ラジオボタン１３０２、フローＩＤ表示１３０３、フロー名表示１３０４、フロー内容表示１３０５、ＯＫボタン１３０６、キャンセルボタン１３０７などが表示される。
【０２９４】
なお、テストフロー選択ラジオボタン１３０２については、いずれか１つのみ選択することができる。また、テストフロー実行画面１３０１に対して、例えば、テストフロー作成時刻表示、テストフロー実行時刻表示、プロパティボタン、ヘルプボタンなどを追加することができる。
【０２９５】
テストフロー選択ラジオボタン１３０２は、ユーザがテスト実行したいフローを選択する際に押下するボタンである。ここで、テストフロー選択ラジオボタン１３０２が押下された場合、ユーザがテスト実行したいフローを選択することが出来る。
【０２９６】
フローＩＤ表示１３０３は、すでに定義されているフローのうち、ユーザが実行することが可能なフローのフローＩＤの表示である。
【０２９７】
フロー名表示１３０４は、すでに定義されているフローのうち、ユーザが実行することが可能なフローのフロー名の表示である。本実施形態においては、テストフロー実行画面１３０１上にフロー名表示１３０４が設けられているが、フロー名表示１３０４は必ずしも必要ではない。
【０２９８】
フロー内容表示１３０５は、すでに定義されているフローのうち、ユーザが実行することが可能なフローのフロー内容の表示である。本実施形態においては、テストフロー実行画面１３０１上にフロー内容表示１３０５が設けられているが、フロー内容表示１３０５は必ずしも必要ではない。
【０２９９】
ＯＫボタン１３０６は、ユーザが画像形成装置１０１に対して、テストフロー実行画面１３０１において選択されたフロー情報を、画像形成装置１０１にテストフロー実行するよう指示するためのボタンである。
【０３００】
ここで、ＯＫボタン１３０６が押下されると、統括処理部１１７は、ユーザがテストフロー実行画面１３０１上で選択したフロー情報を取得する。
【０３０１】
キャンセルボタン１３０７は、ユーザが画像形成装置１０１に対して、テストフローを実行せずに処理を中止するよう指示するためのボタンである。ここで、キャンセルボタン１３０７が押下されると、統括処理部１１７は処理を中止し、表示部１１６に対して前記ログイン画面１１０１を表示するよう依頼する。
【０３０２】
＜テストフロー再実行画面＞
次に、テストフロー再実行画面１４０１について図１４を参照しながら説明する。
【０３０３】
図１４は、本実施形態を示す画像形成装置で表示可能なユーザインタフェースの一例を示す図である。本例は、画像形成装置１０１に表示されるテストフロー再実行画面の例である。この画面の表示処理はＣＰＵ３０１の命令に基づいて表示部１１６により実行される。本画面上でのユーザによる入力操作には、キーボード３１１、マウス３１２などが用いられる。
【０３０４】
図１４において、テストフロー再実行画面１４０１には、フローＩＤ表示１４０２、フロー名表示１４０３、フロー内容表示１４０４、最終実行日時表示１４０５、ＯＫボタン１４０６、キャンセルボタン１４０７などが表示される。
【０３０５】
また、テストフロー再実行画面１４０１に対して、例えば、テストフロー作成時刻表示、テストフロー実行時刻表示、プロパティボタン、ヘルプボタンなどを追加することができる。
【０３０６】
フローＩＤ表示１４０２は、テストフロー実行が指示されたテストフローのフローＩＤの表示である。本実施形態においては、テストフロー再実行画面１４０１上にフローＩＤ表示１４０２が設けられているが、フローＩＤ表示１４０２は必ずしも必要ではない。
【０３０７】
フロー名ＩＤ表示１４０３は、テストフロー実行が指示されたテストフローのフロー名の表示である。本実施形態においては、テストフロー再実行画面１４０１上にフロー名表示１４０３が設けられているが、フロー名表示１４０３は必ずしも必要ではない。
【０３０８】
フロー内容表示１４０４は、テストフロー実行が指示されたテストフローのフロー内容の表示である。本実施形態においては、テストフロー再実行画面１４０１上にフロー内容表示１４０４が設けられているが、フロー内容表示１４０４は必ずしも必要ではない。
【０３０９】
最終実行日時表示１４０５は、テストフロー実行が指示されたテストフローの最終実行日時の表示である。本実施形態においては、テストフロー再実行画面１４０１上に最終実行日時表示１４０５が設けられているが、最終実行日時表示１４０５は必ずしも必要ではない。
【０３１０】
ＯＫボタン１４０６は、ユーザが画像形成装置１０１に対して、テストフロー再実行画面１４０１において、画像形成装置１０１にテストフロー再実行するよう指示するためのボタンである。ここで、ＯＫボタン１４０６が押下されると、統括処理部１１７は、ユーザがテストフローの再実行を指示したとして、テストフローの再実行を行う。
【０３１１】
キャンセルボタン１４０７は、ユーザが画像形成装置１０１に対して、テストフローを再実行せずに処理を中止するよう指示するためのボタンである。ここで、キャンセルボタン１４０７が押下されると、統括処理部１１７は処理を中止し、表示部１１６に対して前記ログイン画面１１０１を表示するよう依頼する。
【０３１２】
＜エラー対応画面＞
次に、テストフロー実行結果画面１５０１について図１５を参照しながら説明する。
【０３１３】
図１５は、本実施形態を示す画像形成装置で表示可能なユーザインタフェースの一例を示す図である。本例は、画像形成装置１０１に表示されるテストフロー実行結果画面の例である。
【０３１４】
この画面の表示処理はＣＰＵ３０１の命令に基づいて表示部１１６により実行される。本画面上でのユーザによる入力操作には、キーボード３１１、マウス３１２などが用いられる。
【０３１５】
図１５において、テストフロー実行結果画面１５０１には、フローＩＤ表示１５０２、フロー名表示１５０３、フロー内容表示１５０４、実行結果表示１５０５、エラー詳細表示１５０６、ＯＫボタン１５０７などが表示される。
【０３１６】
また、テストフロー実行結果画面１５０１に対して、例えば、テストフロー作成時刻表示、テストフロー実行時刻表示、プロパティボタン、ヘルプボタンなどを追加することができる。
【０３１７】
フローＩＤ表示１５０２は、テストフロー実行されたテストフローのフローＩＤの表示である。本実施の形態においては、テストフロー実行結果画面１５０１上にフローＩＤ表示１５０２が設けられているが、フローＩＤ表示１５０２は必ずしも必要ではない。
【０３１８】
フロー名ＩＤ表示１５０３は、テストフロー実行されたテストフローのフロー名の表示である。本実施形態においては、テストフロー実行結果画面１５０１上にフロー名表示１５０３が設けられているが、フロー名表示１５０３は必ずしも必要ではない。
【０３１９】
フロー内容表示１５０４は、テストフロー実行されたテストフローのフロー内容の表示である。本実施形態においては、テストフロー実行結果画面１５０１上にフロー内容表示１５０４が設けられているが、フロー内容表示１５０４は必ずしも必要ではない。
【０３２０】
実行結果表示１５０５は、テストフロー実行されたテストフローの実行結果の表示である。エラー詳細表示１５０６は、テストフロー実行されたテストフローのエラー詳細の表示である。エラー詳細表示１５０６は、テストフロー実行された際、エラーが発生した場合のみ表示される。
【０３２１】
ＯＫボタン１５０７は、ユーザが画像形成装置１０１に対して、テストフロー実行結果画面１５０１において、画像形成装置１０１にテストフロー実行結果を確認した旨を指示するためのボタンである。
【０３２２】
ここで、ＯＫボタン１５０７が押下されると、統括処理部１１７は、ユーザがテストフローの実行結果を確認したとし、テストフローが正常終了した場合には処理を終了する。
【０３２３】
また、テストフローがエラー終了した場合には、後述のエラー対応画面１６０１（図１６に示す）の表示を、表示部１１６に依頼する。
【０３２４】
＜テストフロー実行結果画面＞
次に、エラー対応画面１６０１について図１６を参照しながら説明する。
【０３２５】
図１６は、本実施形態を示す画像形成装置で表示可能なユーザインタフェースの一例を示す図である。本例は、画像形成装置１０１に表示されるエラー対応画面の例である。
【０３２６】
この画面の表示処理はＣＰＵ３０１の命令に基づいて表示部１１６により実行される。本画面上でのユーザによる入力操作には、キーボード３１１、マウス３１２などが用いられる。
【０３２７】
図１６において、エラー対応画面１６０１には、実行結果表示１６０２、エラー詳細表示１６０３、対処方法表示１６０４、ＯＫボタン１６０５などが表示される。
【０３２８】
また、エラー対応画面１６０１に対して、例えば、フローＩＤ表示、フロー名表示、フロー内容表示、テストフロー作成時刻表示、テストフロー実行時刻表示、プロパティボタン、ヘルプボタンなどを追加することができる。
【０３２９】
実行結果表示１６０２は、テストフロー実行されたテストフローの実行結果の表示である。エラー詳細表示１６０３は、テストフロー実行されたテストフローのエラー詳細の表示である。
【０３３０】
対処方法表示１６０４は、テストフロー実行時のエラーに対応する方法の表示である。ＯＫボタン１６０５は、ユーザが画像形成装置１０１に対して、エラー対応画面１６０１において、画像形成装置１０１にエラー対応方法を確認した旨を指示するためのボタンである。
【０３３１】
ここで、ＯＫボタン１６０５が押下されると、統括処理部１１７は、ユーザがテストフロー実行時のエラー対応方法を確認したとし、処理を終了する。
【０３３２】
〔第２実施形態〕
第２実施形態のワークフローテストシステムは、第１実施形態のワークフローテストシステムにおけるテストフロー作成処理に加えて、画像形成装置上で行われた処理の履歴を用いて、効率的なテストフローの作成を行う点が異なる。
【０３３３】
すなわち、第２実施形態のワークフローテストシステムにおいては、ワークフローからテストフローを作成する際に、ワークフローの工程の中に、過去に実施した処理と同様の処理を行う工程が存在する場合には、その工程を除いたテストフローを作成する。
【０３３４】
これにより、過去に実施した実績のある工程のテストは行われず、ワークフローの効率的なテストを実施することが可能である。
【０３３５】
第２実施形態は、図１のテストフロー作成実行部１１８における処理が異なっている点と、図７が異なる点、図９、図１７が追加される点以外は、全て第１実施形態と同じ実施形態である。
【０３３６】
なお、第２実施形態の図１０は、第１実施形態の図７を置き換えるものである。第２実施形態の図９、図１７は、第１実施形態に追加するものである。
【０３３７】
＜ワークフローテストシステムの全体構成図＞
まず、本ワークフローテストシステムの構成について、図１を参照しながら第１実施形態と異なる部分のみ説明する。
【０３３８】
図１において、テストフロー作成実行部１１８は、テストフローの作成処理については以下のような処理を行う。テストフロー作成実行部１１８は、統括処理部１１７から受信したフロー情報をテストフロー情報管理部１１２に送信し、テストフロー情報記憶部１０５に格納されているフロー情報に対応するテストフロー情報の読み出しを依頼する。そして、テストフロー情報を受信した場合には、テストフローの工程にＢＯＸ操作が含まれているか否かを判断する。
【０３３９】
テストフローの工程にＢＯＸ操作が含まれている場合には、ユーザ情報とＢＯＸ情報をＢＯＸ情報管理部１１４に送信し、ＢＯＸ情報記憶部１０７に格納されている対応するＢＯＸ情報の読み出しを依頼する。そして、読み出されたＢＯＸ情報の変更時刻から実行ユーザが変更されているか否かを判断し、変更されていないならば、テストフローを実行しない。
【０３４０】
一方、テストフロー情報が読み出されなかった場合には、フロー情報から１工程ずつ順に読み出し、以下の処理を行う。
【０３４１】
具体的には、工程情報とユーザ情報を処理履歴情報管理部１１３に送信して処理履歴情報記憶部１０６に格納された処理履歴情報のうち、ユーザ情報のユーザＩＤが実行ユーザであり、かつ工程の処理が処理履歴となっている処理履歴情報の読み出しを依頼する。
【０３４２】
処理履歴情報管理部１１３から処理履歴情報の検索結果を受信し、検索結果として工程情報とユーザ情報に該当する処理履歴情報が存在した場合には、そのワークフローの工程は、テストフローから除外する。
【０３４３】
処理履歴情報管理部１１３から受信した処理履歴情報の検索結果が、工程情報とユーザ情報に該当する処理履歴情報が存在しなかった場合には、そのワークフローの工程をテストする工程をテストフローに加える。
【０３４４】
すなわち、テストルール情報記憶部１０４に格納されている、工程に対応するテストルールの読出しをテストルール情報管理部１１１に依頼する。テストルール情報管理部１１１から受信したテストルール情報から、テスト工程に変換し、変換後の処理をテストフローに追加する。
【０３４５】
フロー情報の全工程についてテストフローに変換した後、作成されたテストフローをテストフロー情報管理部１１２に送信し、テストフロー情報記憶部１０５への送信を依頼する。
【０３４６】
＜デバイス処理実行における画像形成装置のフローチャート＞
次に、画像形成装置１０１によるワークフロー定義処理について図９を参照しながら説明する。
【０３４７】
図９は、本実施形態を示す画像形成装置における第５のデータ処理手順の一例を示すフローチャートである。本例は、画像形成装置１０１によるデバイス処理の手順例である。
【０３４８】
なお、Ｓ９０１〜Ｓ９０７は各ステップを示す。また、各ステップは、図３に示したＣＰＵ３０１によりＲＡＭ３０２にロードされる制御プログラムを実行することで実現される。
【０３４９】
画像形成装置１０１においては、図９に示すように、まず、統括処理部１１７が、表示部１１６に対して、後述のログイン画面１１０１（図１１に示す）の表示を依頼する。
【０３５０】
次に、Ｓ９０１で、ユーザは後述のログイン画面１１０１（図１１に示す）上において、ユーザＩＤ１１０２およびパスワード入力ボックス１１０３からパスワードを入力し、ＯＫボタン１１０４を押下して、Ｓ９０２に進む。
【０３５１】
そして、統括処理部１１７が、Ｓ９０１においてユーザが入力したユーザＩＤおよびパスワードを取得する。統括処理部１１７は、取得したユーザＩＤをユーザ情報管理部１０９に送信し、ユーザ情報記憶部１０２に格納されている、ユーザＩＤに対応するユーザ情報の読み出しを依頼する。
【０３５２】
ユーザ情管理憶部１０９は、受信したユーザＩＤに対応するユーザ情報をユーザ情報記憶部１０２から読み出し、統括処理部１１７に送信する。
【０３５３】
ここで、統括処理部１１７は、受信したユーザ情報と、前記Ｓ９０１でユーザが入力したパスワードを使用して、ユーザＩＤおよびパスワードの認証を行う（Ｓ９０２）。
【０３５４】
そして、統括処理部１１７は、ユーザ情報記憶部１０２に、ユーザＩＤに対応するユーザ情報が格納されており、かつ、読み出されたユーザ情報のパスワードと、Ｓ９０１においてユーザが入力したパスワードが一致するか否かを判断する。ここで、ユーザが入力したパスワードが一致すると判断した場合には、認証成功であると判断する。
【０３５５】
そして、Ｓ９０３においては、統括処理部１１７が、Ｓ９０２において、ユーザＩＤとパスワードを認証した結果が、成功であるか否かを判断する。ここで、認証失敗であると判断した場合には、Ｓ９０１に戻る。
【０３５６】
一方、Ｓ９０３で、統括処理部１１７が、認証成功であると判断した場合には、Ｓ９０４に進む。ここでは、統括処理部１１７が、認証成功であると判断したと仮定して、Ｓ９０４に進む。
【０３５７】
そして、統括処理部１１７が表示部１１６に対して、後述のデバイス処理画面１７０１（図１７に示す）の表示を依頼する。次に、Ｓ９０４で、ユーザは、後述のデバイス処理画面１７０１（図１７に示す）上でデバイス処理設定を行い、印刷ボタン１７１１、送信ボタン１７１２、Ｂｏｘボタン１７１３のいずれかを押下して、Ｓ９０５に進む。
【０３５８】
次に、統括処理部１１７が、前記Ｓ９０４において、ユーザが後述のデバイス処理画面１７０１（図１７に示す）上で入力したデバイス処理設定情報を取得する。そして、Ｓ９０５で、統括処理部１１７は、取得されたデバイス処理設定情報にしたがって、デバイス処理を実行して、Ｓ９０６に進む。
【０３５９】
そして、Ｓ９０６で、統括処理部１１７が、Ｓ９０５において、デバイス処理を行った結果が成功であったか否かを判断する。ここで、統括処理部１１７が、デバイス処理を行った結果が成功であったと判断した場合には、Ｓ９０７に進む。
【０３６０】
一方、Ｓ９０６で、統括処理部１１７が、デバイス処理を行った結果が成功ではなかったと判断した場合には、処理を終了する。
【０３６１】
そして、統括処理部１１７が、Ｓ９０５で実行したデバイス処理情報とユーザ情報、現在時刻を、処理履歴情報管理部１１３に送信し、処理履歴情報として、処理履歴情報記憶部１０６に格納するよう依頼する。
【０３６２】
そして、Ｓ９０７で、処理履歴情報管理部１１３は、受信したデバイス処理情報とユーザ情報、現在時刻を、処理履歴情報として、処理履歴情報記憶部１０６に格納し、格納した旨を統括処理部１１７に送信して、処理を終了する。
【０３６３】
＜テストフローを作成するサブルーチン＞
次に、画像形成装置１０１によるテストフロー作成処理について図１０を参照しながら説明する。
【０３６４】
図１０は、本実施形態を示す画像形成装置における第６のデータ処理手順の一例を示すフローチャートである。本例は、画像形成装置１０１によるテストフロー作成処理の手順例である。なお、本テストフロー作成処理は、図６のＳ６０６で実行されるサブルーチン処理の詳細手順である。
【０３６５】
なお、Ｓ１００１〜Ｓ１０１３は各ステップを示す。また、各ステップは、図３に示したＣＰＵ３０１によりＲＡＭ３０２にロードされる制御プログラムを実行することで実現される。
【０３６６】
画像形成装置１０１においては、図１０に示すように、まず、テストフロー作成実行部１１８が、統括処理部１１７から受信したフロー情報をテストフロー情報管理部１１２に送信する。
【０３６７】
さらに、フロー情報に対するテストフロー情報の読み出しを依頼する。テストフロー情報管理部１１２は、受信したフロー情報のフローＩＤに対応するテストフロー情報を、テストフロー情報記憶部１０５から読み出し、テストフロー作成実行部１１８に送信する。
【０３６８】
次に、Ｓ１００１で、テストフロー作成実行部１１８は、統括処理部１１７から受信したフロー情報に対するテストフローが作成されているか否かを判断する。
【０３６９】
ここで、テストフロー作成実行部１１８は、テストフロー情報管理部１１２から受信したテストフロー情報読み出し結果が、読み出し成功の場合は、既にテストフローが作成されていると判断して、Ｓ１００２に進む。
【０３７０】
一方、テストフロー作成実行部１１８は、テストフロー情報管理部１１２から受信したテストフロー情報読み出し結果が、読み出し失敗の場合は、テストフローが作成されてないと判断して、Ｓ１００４に進む。
【０３７１】
ここでは、テストフロー作成実行部１１８が、既にテストフローが作成されていると判断したと仮定して、Ｓ１００２に進む。
【０３７２】
そして、Ｓ１００２においては、テストフロー作成実行部１１８が、Ｓ１００１において受信したテストフロー情報のテストフロー定義を参照し、テストフロー定義で示されているフロー定義の工程に、ＢＯＸ操作が含まれているか否かを判断する。
【０３７３】
ここで、テストフロー作成実行部１１８が、テストフロー定義にＢＯＸ操作が含まれていると判断した場合には、Ｓ１００３に進む。
【０３７４】
一方、Ｓ１００２で、テストフロー作成実行部１１８が、テストフロー定義にＢＯＸ操作が含まれていないと判断した場合には、処理を終了する。ここでは、テストフロー作成実行部１１８が、テストフロー定義にＢＯＸ操作が含まれていると判断したと仮定して、Ｓ１００３に進む。
【０３７５】
そして、Ｓ１００３で、テストフロー作成実行部１１８が、Ｓ１００１で受信したテストフローが過去に実行されてから、ＢＯＸのアクセス権が変更されているか否かを以下のように判断する。
【０３７６】
まず、テストフロー作成実行部１１８が、Ｓ１００１で受信したテストフローの実行時刻を参照する。テストフロー作成実行部１１８は、実行時刻が存在する場合には、Ｓ１００１で統括処理部１１７から受信したフロー情報の、フロー定義のＢＯＸ操作の対象となるＢＯＸを取得する。
【０３７７】
そして、テストフロー作成実行部１１８は、取得したＢＯＸ情報をＢＯＸ情報管理部１１４に送信し、ＢＯＸ情報のＢＯＸ名に対応するＢＯＸ情報を、ＢＯＸ情報記憶部１０７から読み出すよう依頼する。
【０３７８】
そして、テストフロー作成実行部１１８は、受信したＢＯＸ情報のＢＯＸ名に対応するＢＯＸ情報を、ＢＯＸ情報記憶部１０７から読み出し、テストフロー作成実行部１１８に送信する。
【０３７９】
そして、テストフロー作成実行部１１８は、受信したＢＯＸ情報の変更時刻と、Ｓ１００１で受信したテストフロー情報の実行時刻を比較する。テストフロー作成実行部１１８が、Ｓ１００１において受信したテストフローの実行時刻が存在し、かつ、実行時刻が、ＢＯＸ情報の変更時刻以降の場合は、ＢＯＸのアクセス権は変更されていないと判断し、処理を終了する。
【０３８０】
一方、Ｓ１００３で、上記判断と異なる場合は、テストフロー作成実行部１１８が、ＢＯＸのアクセス権は変更されていると判断し、Ｓ１００４に進む。ここでは、テストフロー作成実行部１１８が、ＢＯＸのアクセス権は変更されていると判断して仮定して、Ｓ１００４に進む。
【０３８１】
そして、Ｓ１００４で、テストフロー作成実行部１１８が、前記Ｓ１００１で受信したフロー情報のフロー定義を構成する工程を指すポインタ変数ｉの値を「１」で初期化して、Ｓ１００５に進む。
【０３８２】
そして、Ｓ１００５で、テストフロー作成実行部１１８が、フロー定義を構成する工程を指すポインタ変数ｉの値が、フロー定義の工程数以下であるか否かを以下のように判断する。
【０３８３】
具体的には、テストフロー作成実行部１１８が、フロー定義を構成する工程を指すポインタ変数ｉの値が、フロー定義の工程数以下であると判断した場合は、Ｓ１００６に進む。
【０３８４】
一方、テストフロー作成実行部１１８が、フロー定義を構成する工程を指すポインタ変数ｉの値が、フロー定義の工程数以下でないと判断した場合は、Ｓ１０１２に進む。
【０３８５】
ここでは、テストフロー作成実行部１１８が、フロー定義を構成する工程を指すポインタ変数ｉの値が、フロー定義の工程数以下であると判断したと仮定して、Ｓ１００６に進む。
【０３８６】
そして、テストフロー作成実行部１１８が、Ｓ１００１で受信したフロー情報の、フロー定義のｉ番目の工程情報とユーザ情報を、処理履歴情報管理部１１３に送信する。
【０３８７】
次に、テストフロー作成実行部１１８は、処理履歴情報管理部１１３に、処理履歴情報記憶部１０６に格納されている処理履歴情報のうち、ユーザ情報のユーザＩＤが実行ユーザと等しく、かつ工程の処理が処理履歴と等しい処理履歴情報の読み出しを依頼する。
【０３８８】
そして、Ｓ１００６で、処理履歴情報管理部１１３は、処理履歴情報記憶部１０６に格納されている処理履歴情報のうち、ユーザ情報のユーザＩＤが実行ユーザと等しく、かつ、工程の処理が処理履歴と等しい処理履歴情報の読み出す。さらに、処理履歴情報管理部１１３は、処理履歴情報を読み出した結果を、テストフロー作成実行部１１８に送信して、Ｓ１００７に進む。
【０３８９】
次に、Ｓ１００７で、テストフロー作成実行部１１８が、前記Ｓ１００６において、処理履歴情報管理部１１３から受信した処理履歴情報の読み出し結果が、検索に成功したか否かを判断する。ここで、テストフロー作成実行部１１８が、処理履歴情報の読み出し結果が、検索に成功したと判断した場合は、Ｓ１０１１に進む。
【０３９０】
一方、テストフロー作成実行部１１８が、処理履歴情報の読み出し結果が、検索に成功していないと判断した場合は、Ｓ１００８に進む。ここでは、テストフロー作成実行部１１８が、処理履歴情報の読み出し結果が、検索に成功していないと判断したと仮定して、Ｓ１００８に進む。
【０３９１】
そして、テストフロー作成実行部１１８が、Ｓ１００１で受信したフロー情報の、フロー定義のｉ番目の工程情報を、テストルール情報管理部１１１に送信する。
【０３９２】
さらに、テストルール情報記憶部１０４から、ｉ番目の工程の処理に対応するステップ種別を持つテストルール情報の読み出しを依頼する。そして、Ｓ１００８で、テストルール情報管理部１１１は、テストルール情報記憶部１０４から、ｉ番目の工程の処理に対応するステップ種別を持つテストルール情報の読み出し、テストフロー作成実行部１１８に送信して、Ｓ１００９に進む。
【０３９３】
そして、Ｓ１００９で、テストフロー作成実行部１１８が、Ｓ１００１で受信したフロー情報の、フロー定義のｉ番目の工程を、Ｓ１００８において受信したテストルール情報のテスト工程に変換して、Ｓ１０１０に進む。
【０３９４】
次に、Ｓ１０１０で、テストフロー作成実行部１１８が、前記Ｓ１００９において変換されたテスト工程をテストフローに追加して、Ｓ１０１１に進む。
【０３９５】
そして、Ｓ１０１１で、テストフロー作成実行部１１８が、フロー定義を構成する工程を指すポインタ変数ｉの値に「１」を加えてインクリメントして、Ｓ１００５に戻る。
【０３９６】
このように、本実施形態では、テストルール情報記憶部１０４に記憶されるテストルールに従って生成される工程を追加してテストフローを生成する。この時、生成される各工程をテストワークフローに追加する必要があるかどうかを処理履歴情報記憶部１０６に履歴情報に基づいて判断する。
【０３９７】
そして、作成される工程を追加する必要がないと判断した場合、テストフローの中で実行されている工程を含まないテストフローを作成することができる。
【０３９８】
そのため、ワークフローシステム上で以前に正常に実行されている工程までテスト用のワークフローにて実行されるため、テスト用ワークフローの実行時に、正常に実行されている工程をさらにテストするという、処理の無駄を削減することが可能となる。
【０３９９】
また、本実施形態は、例えば過去にＢｏｘからのファイル読込みが成功したとしても、アクセス権の変更の有無に基づいてテストフローに当該Ｂｏからファイル読込み工程を追加すべきか否かを判断する。そのため、アクセス権の変更を事前のテストワークフローで知ることが可能となる。
【０４００】
具体的には、一般ユーザは、本番用のワークフローＡ（スキャン→SMB送信→印刷）のテスト実行をデバイスに指示する。
【０４０１】
この場合に、本番用のワークフロー（スキャン→SMB送信→印刷）からテスト用フローＴを自動的に生成する。画像形成装置１０１は、処理履歴情報を使用して、ワークフロー（スキャン→SMB送信→印刷）のうち、すでに処理が成功しているステップを除いたステップで、テスト用フローＴ１を作成する。ここで、 印刷という工程が既に実行されている場合には、テスト用ワークフローＴ１（スキャン→SMB送信）を作成する。
【０４０２】
これにより、従来のようにすべての工程を含まない、すなわち必要な工程からなるワークフローを作成することができる。
【０４０３】
一方、Ｓ１００５で変数ｉがフロー工程数を超えていると判断した場合は、Ｓ１０１２に進む。そして、Ｓ１０１２で、テストフロー作成実行部１１８が、Ｓ１０１０においてテスト工程を追加して作成したテストフローの工程数が、「０」より大きいか否かを判断する。
【０４０４】
ここで、テストフロー作成実行部１１８が、Ｓ１０１０で追加されて作成されたテストフローの工程数が、「０」より大きいと判断した場合には、Ｓ１０１３に進む。
【０４０５】
一方、テストフロー作成実行部１１８が、Ｓ１０１０で追加されて作成されたテストフローの工程数が、「０」より大きくないと判断した場合には、処理を終了する。ここでは、テストフロー作成実行部１１８が、前記Ｓ１０１０で追加されて作成されたテストフローの工程数が、「０」より大きいと判断したと仮定して、Ｓ１０１３に進む。
【０４０６】
そして、Ｓ１０１３で、テストフロー作成実行部１１８が、Ｓ１０１０においてテスト工程を追加して作成したテストフローを、テストフロー情報管理部１１２に送信し、テストフロー情報記憶部１０５に格納するよう依頼する。
【０４０７】
そして、テストフロー情報管理部１１２は、受信したテストフロー情報を、テストフロー情報記憶部１０５に格納し、格納した旨をテストフロー作成実行部１１８に送信して、処理を終了する。
【０４０８】
これにより、一般ユーザが本番フローのテスト実行する際に、デバイス上で実行された処理の履歴(処理履歴情報)を使用して、すでに成功している処理のステップを除いたテストフローを作成する。さらに、テストフローは、本番フローのステップそのままではなく、あらかじめ定義されたルールに従ったテスト用のステップを組み合わせて作成することができる。
【０４０９】
これにより、一般ユーザが、フローの全てのステップを実行することなく、効率的に、定義されているフローが、正しく実行できるかどうかを確認することが出来る。
【０４１０】
＜デバイス処理画面＞
次に、デバイス処理画面１７０１について図１７を参照しながら説明する。
【０４１１】
図１７は、本実施形態を示す画像形成装置で表示可能なユーザインタフェースの一例を示す図である。本例は、画像形成装置１０１に表示されるデバイス処理画面の例である。
【０４１２】
この画面の表示処理はＣＰＵ３０１の命令に基づいて表示部１１６により実行される。本画面上でのユーザによる入力操作には、キーボード３１１、マウス３１２などが用いられる。
【０４１３】
図１７において、デバイス処理画面１７０１には、倍率表示１７０２、用紙表示１７０３、部数表示１７０４、倍率ボタン１７０５、用紙ボタン１７０６、濃度ボタン１７０７などが表示される。
【０４１４】
さらに、デバイス処理画面１７０１には、画質ボタン１７０８、仕上げボタン１７０９、両面ボタン１７１０、印刷ボタン１７１１、送信ボタン１７１２、ＢＯＸボタン１７１３などが表示される。なお、デバイス処理画面１７０１に対して、例えば、原稿状態表示、ショートカット実行ボタン、ヘルプボタンなどを追加することができる。
【０４１５】
倍率表示１７０２は、ユーザが後述の倍率ボタン１７０５を押下した際に設定した倍率を表示する。本実施形態においては、デバイス処理画面１７０１上に倍率表示１７０２が設けられているが、倍率表示１７０２は必ずしも必要ではない。
【０４１６】
用紙表示１７０３は、ユーザが後述の用紙ボタン１７０６を押下した際に設定した用紙を表示する。本実施形態においては、デバイス処理画面１７０１上に用紙表示１７０３が設けられているが、用紙表示１７０３は必ずしも必要ではない。
【０４１７】
部数表示１７０４は、ユーザが後述の用紙ボタン１７０６を押下した際に設定した部数を表示する。本実施形態においては、デバイス処理画面１７０１上に部数表示１７０４が設けられているが、部数表示１７０４は必ずしも必要ではない。
【０４１８】
倍率ボタン１７０５は、ユーザがデバイス処理設定として、スキャン時または印刷時の倍率を設定するためのボタンである。用紙ボタン１７０６は、ユーザがデバイス処理設定として、印刷時の用紙と部数を設定するためのボタンである。
【０４１９】
濃度ボタン１７０７は、ユーザがデバイス処理設定として、スキャン時の濃度を設定するためのボタンである。
【０４２０】
画質ボタン１７０８は、ユーザがデバイス処理設定として、スキャン時の画質を設定するためのボタンである。仕上げボタン１７０９は、ユーザがデバイス処理設定として、印刷時の仕上げを設定するためのボタンである。
【０４２１】
両面ボタン１７１０は、ユーザがデバイス処理設定として、スキャン時および印刷時の両面設定を設定するためのボタンである。印刷ボタン１７１１は、ユーザがデバイス処理設定として、印刷設定を設定し、印刷を指示するためのボタンである。
【０４２２】
送信ボタン１７１２は、ユーザがデバイス処理設定として、送信設定を設定し、送信を指示するためのボタンである。ＢＯＸボタン１７１３は、ユーザがデバイス処理設定として、ＢＯＸ操作設定を設定し、ＢＯＸ操作を指示するためのボタンである。
【０４２３】
〔第３実施形態〕
上記第２実施形態では、通常のユーザがテストワークフローを作成する場合に、検索にヒットした工程をテストワークフローに追加しないように処理する場合について説明した。
【０４２４】
そこで、認証するユーザの属性、管理ユーザか通常のユーザかを識別することで、第１実施形態と第２実施形態との処理を自動的に切り替えるように構成してもよい。
【０４２５】
つまり、管理ユーザが作成されたすべての工程を含むテストワークフローを実行させたい場合と、ユーザが実行する必要のない工程を含まないテストワークフローを実行させたい場合とを作成モードで自在に切り替えてもよい。例えば認証時点で、いずれの作成モードとするかを決定すればよい。
【０４２６】
これにより、管理ユーザおよび通常ユーザのテストワークフロー作成要求に利便性よく応えることができる。
【０４２７】
〔第４実施形態〕
以下、図１８に示すメモリマップを参照して本発明に係る画像形成装置で読み取り可能なデータ処理プログラムの構成について説明する。
【０４２８】
図１８は、本発明に係る画像形成装置で読み取り可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを説明する図である。
【０４２９】
なお、特に図示しないが、記憶媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報，作成者等も記憶され、かつ、プログラム読み出し側のＯＳ等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
【０４３０】
さらに、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、各種プログラムをコンピュータにインストールするためのプログラムや、インストールするプログラムが圧縮されている場合に、解凍するプログラム等も記憶される場合もある。
【０４３１】
本実施形態における図５〜図１０に示す機能が外部からインストールされるプログラムによって、ホストコンピュータにより遂行されていてもよい。そして、その場合、ＣＤ−ＲＯＭやフラッシュメモリやＦＤ等の記憶媒体により、あるいはネットワークを介して外部の記憶媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
【０４３２】
以上のように、前述した実施形態の機能を実現するソフトウエアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【０４３３】
この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０４３４】
従って、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等、プログラムの形態を問わない。
【０４３５】
プログラムを供給するための記憶媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤなどを用いることができる。
【０４３６】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０４３７】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、該ホームページから本発明のコンピュータプログラムそのもの、もしくは、圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバやｆｔｐサーバ等も本発明の請求項に含まれるものである。
【０４３８】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【０４３９】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけではない。例えばそのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行う。そして、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０４４０】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込ませる。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０４４１】
本発明は上記実施形態に限定されるものではなく、本発明の趣旨に基づき種々の変形（各実施形態の有機的な組合せを含む）が可能であり、それらを本発明の範囲から排除するものではない。
【０４４２】
本発明の様々な例と実施形態を示して説明したが、当業者であれば、本発明の趣旨と範囲は、本明細書内の特定の説明に限定されるのではない。
【図面の簡単な説明】
【０４４３】
【図１】発明の第１実施形態を示す情報処理システムの構成を示すブロック図である。
【図２】図１に示した画像形成装置のエンジン構成を示す断面図である。
【図３】図１に示した画像形成装置のコントローラおよびＳＭＢサーバの構成を示すブロック図である。
【図４】図１に示したデータ処理システムで処理される各種情報のデータ構造を説明する図である。
【図５】本実施形態を示す画像形成装置における第１のデータ処理手順の一例を示すフローチャートである。
【図６】本実施形態を示す画像形成装置における第２のデータ処理手順の一例を示すフローチャートである。
【図７】本実施形態を示す画像形成装置における第３のデータ処理手順の一例を示すフローチャートである。
【図８】本実施形態を示す画像形成装置における第４のデータ処理手順の一例を示すフローチャートである。
【図９】本実施形態を示す画像形成装置における第５のデータ処理手順の一例を示すフローチャートである。
【図１０】本実施形態を示す画像形成装置における第６のデータ処理手順の一例を示すフローチャートである。
【図１１】本実施形態を示す画像形成装置で表示可能なユーザインタフェースの一例を示す図である。
【図１２】本実施形態を示す画像形成装置で表示可能なユーザインタフェースの一例を示す図である。
【図１３】本実施形態を示す画像形成装置で表示可能なユーザインタフェースの一例を示す図である。
【図１４】本実施形態を示す画像形成装置で表示可能なユーザインタフェースの一例を示す図である。
【図１５】本実施形態を示す画像形成装置で表示可能なユーザインタフェースの一例を示す図である。
【図１６】本実施形態を示す画像形成装置で表示可能なユーザインタフェースの一例を示す図である。
【図１７】本実施形態を示す画像形成装置で表示可能なユーザインタフェースの一例を示す図である。
【図１８】発明に係る画像形成装置で読み取り可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを説明する図である。
【符号の説明】
【０４４４】
１０１ 画像形成装置
１０２ ユーザ情報記憶部
１０３ フロー情報記憶部
１０４ テストルール情報記憶部
１０５ テストフロー情報記憶部
１０６ 処理履歴情報記憶部
１０７ ＢＯＸ情報記憶部
【図１】
2009020665.tif 000003
【図２】
2009020665.tif 000004
【図３】
2009020665.tif 000005
【図４】
2009020665.tif 000006
【図５】
2009020665.tif 000007
【図６】
2009020665.tif 000008
【図７】
2009020665.tif 000009
【図８】
2009020665.tif 000010
【図９】
2009020665.tif 000011
【図１０】
2009020665.tif 000012
【図１１】
2009020665.tif 000013
【図１２】
2009020665.tif 000014
【図１３】
2009020665.tif 000015
【図１４】
2009020665.tif 000016
【図１５】
2009020665.tif 000017
【図１６】
2009020665.tif 000018
【図１７】
2009020665.tif 000019
【図１８】
2009020665.tif 000020