(57)【特許請求の範囲】
【請求項１】
通信インタフェースと、報知部とを備えるコンピュータによって読み取り可能なプログラムであって、
該プログラムは、ワークフローが定義された定義データを取得する取得処理を前記コンピュータに実行させ、前記ワークフローは、原稿に記録された画像を読み取って画像データを生成する読取動作をスキャナに実行させるジョブである入力ジョブと、前記入力ジョブで入力された前記画像データを出力する前記ジョブである出力ジョブとを含み、
該プログラムは、前記ワークフローに含まれる複数の前記ジョブそれぞれに定義された前動作を順番に実行する前処理を前記コンピュータに実行させ、前記前動作は、前記ジョブが実行可能か否かを確認するための動作であり、
該プログラムは、
前記ワークフローに含まれる全ての前記ジョブに定義された前記前動作が前記前処理で正常終了したか否かを判断する第１判断処理と、
全ての前記前動作が正常終了したと前記第１判断処理で判断したことに応じて、前記ワークフローに含まれる複数の前記ジョブそれぞれに定義された本動作を順番に実行する本処理とを前記コンピュータに実行させ、前記入力ジョブに定義された前記本動作は、前記読取動作で生成された前記画像データを前記通信インタフェースを通じて前記スキャナから受信する動作であり、前記出力ジョブに定義された前記本動作は、前記画像データを出力する動作であり、
該プログラムは、複数の前記前動作の少なくとも１つが異常終了したと前記第１判断処理で判断したことに応じて、前記定義データに定義された前記ジョブが実行できないことを前記報知部に報知させる報知処理を前記コンピュータに実行させるプログラム。
【請求項２】
通信インタフェースと、報知部とを備えるコンピュータによって読み取り可能なプログラムであって、
該プログラムは、ワークフローが定義された定義データを取得する取得処理を前記コンピュータに実行させ、前記ワークフローは、画像データを該プログラムに入力させるジョブである入力ジョブと、前記入力ジョブで入力された前記画像データで示される画像をシートに記録する記録動作をプリンタに実行させる前記ジョブである出力ジョブとを含み、
該プログラムは、前記ワークフローに含まれる複数の前記ジョブそれぞれに定義された前動作を順番に実行する前処理を前記コンピュータに実行させ、前記前動作は、前記ジョブが実行可能か否かを確認するための動作であり、
該プログラムは、
前記ワークフローに含まれる全ての前記ジョブに定義された前記前動作が前記前処理で正常終了したか否かを判断する第１判断処理と、
全ての前記前動作が正常終了したと前記第１判断処理で判断したことに応じて、前記ワークフローに含まれる複数の前記ジョブそれぞれに定義された本動作を実行する本処理とを前記コンピュータに実行させ、前記入力ジョブに定義された前記本動作は、前記画像データを該プログラムに入力させる動作であり、前記出力ジョブに定義された前記本動作は、前記記録動作の対象となる前記画像データを前記通信インタフェースを通じて前記プリンタに送信する動作であり、
該プログラムは、複数の前記前動作の少なくとも１つが異常終了したと前記第１判断処理で判断したことに応じて、前記定義データに定義された前記ジョブが実行できないことを前記報知部に報知させる報知処理を前記コンピュータに実行させるプログラム。
【請求項３】
該プログラムは、複数の後動作を実行する後処理を前記コンピュータに実行させ、前記後動作は、複数の前記ジョブそれぞれに定義された動作であって、対応する前記本動作に用いられた前記コンピュータのリソースを解放する動作である請求項１又は２に記載のプログラム。
【請求項４】
前記定義データには、前記入力ジョブで入力された前記画像データを編集する編集ジョブがさらに定義されており、前記出力ジョブは、前記編集ジョブで編集された前記画像データを出力する請求項１から３のいずれかに記載のプログラム。
【請求項５】
該プログラムは、
全ての前記ジョブに前記前動作及び前記本動作の両方が定義されているか否かを判断する第２判断処理を前記コンピュータに実行させ、
全ての前記ジョブに前記前動作及び前記本動作の両方が定義されていると前記第２判断処理で判断したことに応じて、前記前処理を前記コンピュータに実行させ、
少なくとも１つの前記ジョブに前記前動作或いは前記本動作が定義されていないと前記第２判断処理で判断したことに応じて、前記報知処理を前記コンピュータに実行させる請求項１から４のいずれかに記載のプログラム。
【請求項６】
前記コンピュータは、メモリを備えており、
前記定義データは、第１識別子及び第２識別子と、前記入力ジョブ及び出力ジョブの実行順を示す順番情報とを含み、前記第１識別子は、前記入力ジョブを実行する第１プログラムを識別し、前記第２識別子は、前記出力ジョブを実行する第２プログラムを識別し、前記第１プログラム及び前記第２プログラムには、前記前動作及び前記本動作それぞれを実現する関数が定義されており、
該プログラムは、
前記取得処理において、前記第１識別子で識別される前記第１プログラムに含まれる関数と、前記第２識別子で識別される前記第２プログラムに含まれる関数とを前記メモリに展開する展開処理を含み、
前記第２判断処理において、前記展開処理で前記メモリに展開された関数に、前記取得処理で取得した前記定義データに定義された全ての前記ジョブに定義された前記前動作の関数と、前記取得処理で取得した前記定義データに定義された全ての前記ジョブに定義された前記本動作の関数とが含まれているかを判断し、
前記前処理において、前記展開処理で前記メモリに展開された関数のうち、前記前動作の関数を前記順番情報で示される実行順で起動し、
前記本処理において、前記展開処理で前記メモリに展開された関数のうち、前記本動作の関数を前記順番情報で示される実行順で起動する請求項５に記載のプログラム。
【請求項７】
前記コンピュータは、入力インタフェースを備えており、
該プログラムは、複数の第１候補識別子のうちの少なくとも１つを前記第１識別子として指定する指定操作と、複数の第２候補識別子のうちの少なくとも１つを前記第２識別子として指定する指定操作とを、前記入力インタフェースを通じて受け付ける受付処理を前記コンピュータに実行させ、前記第１候補識別子は、前記入力ジョブを実行可能なプログラムを識別し、前記第２候補識別子は、前記出力ジョブを実行可能なプログラムを識別し、
該プログラムは、前記受付処理で指定された前記第１識別子及び前記第２識別子を含む前記定義データを、前記メモリに記憶させる記憶処理を前記コンピュータに実行させる請求項６に記載のプログラム。
【請求項８】
前記コンピュータは、ディスプレイを備えており、
該プログラムは、指定装置を用いた前記入力ジョブに対応する第１オブジェクトと、前記指定装置を用いた前記出力ジョブに対応する第２オブジェクトとを含む第１画面を前記ディスプレイに表示させる第１表示処理を前記コンピュータに実行させ、前記指定装置は、前記通信インタフェースを通じて通信可能な複数の画像形成装置のうち、前記入力インタフェースを通じてユーザによって指定された前記画像形成装置であり、
前記第１オブジェクト及び前記第２オブジェクトの一方を指定する指定操作を、前記入力インタフェースを通じて受け付ける第１受付処理と、
前記第１受付処理で前記第１オブジェクトが指定されたことに応じて、各々が前記出力ジョブにおける前記画像データの出力先に対応する複数の出力先オブジェクトを含む第２画面を前記ディスプレイに表示させる第２表示処理と、
複数の前記出力先オブジェクトの１つを指定する指定操作を、前記入力インタフェースを通じて受け付ける第２受付処理とを前記コンピュータに実行させ、
前記第１受付処理で前記第２オブジェクトが指定されたことに応じて、各々が前記入力ジョブにおける前記画像データの取得元に対応する複数の取得元オブジェクトを含む第３画面を前記ディスプレイに表示させる第３表示処理と、
複数の前記取得元オブジェクトの１つを指定する指定操作を、前記入力インタフェースを通じて受け付ける第３受付処理とを前記コンピュータに実行させ、
前記記憶処理において、前記第１オブジェクトに対応する前記第１識別子及び指定された前記出力先オブジェクトに対応する前記第２識別子を含む前記定義データ、或いは指定された前記取得元オブジェクトに対応する前記第１識別子及び前記第２オブジェクトに対応する前記第２識別子を含む前記定義データを、前記メモリに記憶させる請求項７に記載のプログラム。
【請求項９】
該プログラムは、
前記メモリに記憶された複数の前記定義データのうちの１つを指定する指定操作を、前記入力インタフェースを通じて受け付ける指定受付処理を前記コンピュータに実行させ、
前記取得処理において、前記指定受付処理で指定された前記定義データを前記メモリから読み出す請求項７又は８に記載のプログラム。
【請求項１０】
原稿に記録された画像を読み取って前記画像データを生成する読取動作をスキャナに実行させる前記入力ジョブに定義された前記前処理は、前記通信インタフェースを通じて前記スキャナと通信可能か否か、前記スキャナが他の前記読取動作を実行中か否か、或いは前記定義データに定義された実行条件で前記スキャナが前記読取動作を実行可能か否かを確認する動作である請求項１から９のいずれかに記載のプログラム。
【請求項１１】
前記画像データで示される画像をシートに記録する記録動作をプリンタに実行させる前記出力ジョブに定義された前記前処理は、前記通信インタフェースを通じて前記プリンタと通信可能か否か、前記プリンタが他の前記記録動作を実行中か否か、或いは前記定義データに定義された実行条件で前記プリンタが前記記録動作を実行可能か否かを確認する動作である請求項１から１０のいずれかに記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、登録されたワークフローをコンピュータに実行させるプログラムに関する。
【背景技術】
【０００２】
特許文献１には、ユーザによって指定されたスキャン動作及びプリント動作のセットを予め登録しておき、ユーザによって指定されたセットに含まれる複数の動作を、スキャン動作、プリント動作の順に実行させるプログラムが記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１５−０１２５１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、例えば、指定されたセットに含まれるプリント動作が実行できない状態でスキャン動作が開始された場合、スキャン動作が完了した後にプリント動作が異常終了する。すなわち、セットに含まれる各動作の実行を指示したユーザは、当該セットの正常終了による恩恵を受けられないばかりか、スキャン動作が完了するまで待った時間を無駄にしてしまうことになる。
【０００５】
本発明は、上記の事情に鑑みてなされたものであり、その目的は、コンピュータに実行させるワークフローが異常終了することを、当該コンピュータのユーザに早期に報知することが可能なプログラム提供することにある。
【課題を解決するための手段】
【０００６】
本明細書の一形態に係るプログラムは、通信インタフェースと、報知部とを備えるコンピュータによって読み取り可能である。該プログラムは、ワークフローが定義された定義データを取得する取得処理を前記コンピュータに実行させる。前記ワークフローは、原稿に記録された画像を読み取って画像データを生成する読取動作をスキャナに実行させるジョブである入力ジョブと、前記入力ジョブで入力された前記画像データを出力する前記ジョブである出力ジョブとを含む。該プログラムは、前記ワークフローに含まれる複数の前記ジョブそれぞれに定義された前動作を順番に実行する前処理を前記コンピュータに実行させる。前記前動作は、前記ジョブが実行可能か否かを確認するための動作である。該プログラムは、前記ワークフローに含まれる全ての前記ジョブに定義された前記前動作が前記前処理で正常終了したか否かを判断する第１判断処理と、全ての前記前動作が正常終了したと前記第１判断処理で判断したことに応じて、前記ワークフローに含まれる複数の前記ジョブそれぞれに定義された本動作を順番に実行する本処理とを前記コンピュータに実行させる。前記入力ジョブに定義された前記本動作は、前記読取動作で生成された前記画像データを前記通信インタフェースを通じて前記スキャナから受信する動作である。前記出力ジョブに定義された前記本動作は、前記画像データを出力する動作である。該プログラムは、複数の前記前動作の少なくとも１つが異常終了したと前記第１判断処理で判断したことに応じて、前記定義データに定義された前記ジョブが実行できないことを前記報知部に報知させる報知処理を前記コンピュータに実行させる。
【０００７】
本明細書の他の形態に係るプログラムは、通信インタフェースと、報知部とを備えるコンピュータによって読み取り可能である。該プログラムは、ワークフローが定義された定義データを取得する取得処理を前記コンピュータに実行させる。前記ワークフローは、画像データを該プログラムに入力させるジョブである入力ジョブと、前記入力ジョブで入力された前記画像データで示される画像をシートに記録する記録動作をプリンタに実行させる前記ジョブである出力ジョブとを含む。該プログラムは、前記ワークフローに含まれる複数の前記ジョブそれぞれに定義された前動作を順番に実行する前処理を前記コンピュータに実行させる。前記前動作は、前記ジョブが実行可能か否かを確認するための動作である。該プログラムは、前記ワークフローに含まれる全ての前記ジョブに定義された前記前動作が前記前処理で正常終了したか否かを判断する第１判断処理と、全ての前記前動作が正常終了したと前記第１判断処理で判断したことに応じて、前記ワークフローに含まれる複数の前記ジョブそれぞれに定義された本動作を実行する本処理とを前記コンピュータに実行させる。前記入力ジョブに定義された前記本動作は、前記画像データを該プログラムに入力させる動作である。前記出力ジョブに定義された前記本動作は、前記記録動作の対象となる前記画像データを前記通信インタフェースを通じて前記プリンタに送信する動作である。該プログラムは、複数の前記前動作の少なくとも１つが異常終了したと前記第１判断処理で判断したことに応じて、前記定義データに定義された前記ジョブが実行できないことを前記報知部に報知させる報知処理を前記コンピュータに実行させる。
【０００８】
上記構成によれば、複数の前動作の少なくとも１つが異常終了したことに応じて、本動作が実行されずに、ジョブが実行できないことがユーザに報知される。その結果、ワークフローが異常終了することを、当該コンピュータのユーザに早期に報知できる。
【図面の簡単な説明】
【０００９】
【図１】図１は、本実施形態に係るシステム１００の概略図である。
【図２】図２は、（Ａ）が複合機１０のブロック図であり、（Ｂ）が情報処理端末５０のブロック図である。
【図３】図３は、データ記憶領域６２Ｂに記憶されるデータ例であって、（Ａ）は指定装置の装置ＩＤを、（Ｂ）はプログラムリストを示す。
【図４】図４は、ＷＦ定義ファイルの例を示す図である。
【図５】図５は、メイン処理のフローチャートである。
【図６】図６は、ＷＦ登録処理のフローチャートである。
【図７】図７は、ＷＦ実行処理のフローチャートである。
【図８】図８は、ディスプレイ５３の表示例であって、（Ａ）はメイン画面を、（Ｂ）はＷＦタイプ選択画面を示す。
【図９】図９は、ディスプレイ５３の表示例であって、（Ａ）は取得元選択画面を、（Ｂ）は［プリントタイプ］アイコン１１６が指定された場合のＷＦ登録画面を示す。
【図１０】図１０は、ディスプレイ５３の表示例であって、（Ａ）は出力先選択画面を、（Ｂ）は［スキャンタイプ］アイコン１１７が指定された場合のＷＦ登録画面を示す。
【図１１】図１１は、ディスプレイ５３の表示例であって、（Ａ）はＷＦアイコン１５１、１５２が追加されたメイン画面を、（Ｂ）はＷＦアイコン１５１が指定された場合のＷＦ実行画面を示す。
【発明を実施するための形態】
【００１０】
以下、適宜図面を参照して本発明の実施形態について説明する。なお、以下に説明される実施形態は本発明の一例にすぎず、本発明の要旨を変更しない範囲で、本発明の実施形態を適宜変更できることは言うまでもない。例えば、後述する各処理の実行順序は、本発明の要旨を変更しない範囲で、適宜変更することができる。
【００１１】
図１は、本実施形態に係るシステム１００の概略図である。図１に示されるシステム１００は、複合機１０Ａ、１０Ｂ（以下、これらを総称して、「複合機１０」と表記することがある。）と、情報処理端末５０と、サーバ８０、８１、８２とで構成される。なお、サーバ８０〜８２は、省略することができる。複合機１０、情報処理端末５０、及びサーバ８０、８１、８２は、通信ネットワークを介して相互に通信可能とされている。通信ネットワークの具体例は特に限定されないが、例えば、インターネット１０１、有線ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋの略）、無線ＬＡＮ１０２、或いはこれらの組み合わせであってもよい。
【００１２】
複合機１０、情報処理端末５０、及びサーバ８０は、無線ＬＡＮ１０２に属している。すなわち、複合機１０、情報処理端末５０、及びサーバ８０は、無線ＬＡＮ１０２の不図示のアクセスポイントを経由して、相互に通信することができる。また、無線ＬＡＮ１０２は、ルータ１０２Ａを通じてインターネット１０１に接続されている。さらに、サーバ８１、８２は、インターネット１０１に接続されている。すなわち、複合機１０及び情報処理端末５０は、ルータ１０２Ａからインターネット１０１を経由して、サーバ８１、８２と通信することができる。
【００１３】
［複合機１０］
複合機１０は、図２（Ａ）に示されるように、プリンタ１１と、スキャナ１２と、ディスプレイ２３と、入力Ｉ／Ｆ（ＩｎｔｅｒＦａｃｅの略）２４と、通信Ｉ／Ｆ２５と、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔの略）３１と、メモリ３２と、通信バス３３とを主に備える。複合機１０を構成する各構成要素は、通信バス３３を通じて相互に接続されている。複合機１０Ａ、１０Ｂの構成は同様であってもよいし、異なっていてもよい。複合機１０は、画像形成装置の一例である。
【００１４】
［プリンタ１１、スキャナ１２］
プリンタ１１は、画像データで示される画像を記録用紙に記録する記録動作を実行する。記録用紙は、シート或いは被記録媒体の一例である。プリンタ１１の記録方式として、インクジェット方式や電子写真方式などの公知の方式を採用することができる。スキャナ１２は、原稿に記録されている画像を読み取って画像データを生成する読取動作を実行する。なお、複合機１０は、ＦＡＸプロトコルに従って画像データを送受信するＦＡＸ送信動作及びＦＡＸ受信動作を実行可能なＦＡＸ部をさらに備えていてもよい。また、プリンタ単能機或いはスキャナ単能機が無線ＬＡＮ１０２に接続されていてもよい。
【００１５】
［ディスプレイ２３］
ディスプレイ２３は、各種情報を表示する表示面を備える。ディスプレイ２３としては、液晶ディスプレイ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙの略）、有機ＥＬディスプレイ（Ｏｒｇａｎｉｃ  Ｅｌｅｃｔｒｏ−Ｌｕｍｉｎｅｓｃｅｎｃｅ  Ｄｉｓｐｌａｙの略）等を採用することができる。
【００１６】
［入力Ｉ／Ｆ２４］
入力Ｉ／Ｆ２４は、ユーザによる入力操作を受け付けるユーザインタフェースである。具体的には、入力Ｉ／Ｆ２４はボタンを有しており、押下されたボタンに対応づけられた各種の操作信号をＣＰＵ３１へ出力する。さらに、入力Ｉ／Ｆ２４は、ディスプレイ２３の表示面に重畳された膜状のタッチセンサを有していてもよい。すなわち、ディスプレイ２３がタッチパネルディスプレイとして構成されてもよい。ディスプレイ２３の表示面に表示されたオブジェクトを指定する操作、文字列或いは数字列を入力する操作は、入力操作の一例である。
【００１７】
なお、「オブジェクト」とは、ユーザが入力Ｉ／Ｆ２４を操作することによって指定可能な画像を指す。一例として、オブジェクトはディスプレイ２３に表示された文字列、アイコン、ボタン、リンク等であってよい。オブジェクトは、入力Ｉ／Ｆ２４の方向キー或いは決定ボタンを押下することによって指定されてもよい。入力Ｉ／Ｆ２４がタッチパネルである場合、ディスプレイ２３に表示されたオブジェクトは、表示位置へのタッチによって指定されてもよい。
【００１８】
タッチパネルとして実現される入力Ｉ／Ｆ２４は、ユーザがタッチした表示面上の位置を示す位置情報を出力する。なお、本明細書中における「タッチ」とは、入力媒体を表示面に接触させる操作全般を含む。すなわち、タッチした入力媒体を所定時間内に表示面から離間させるタップ操作、ロングタッチ操作、タッチした入力媒体を表示面上でスライドさせるスライド操作、フリック操作、ピンチイン操作、ピンチアウト操作等は、タッチの一例である。
【００１９】
また、入力媒体が表示面に触れていなくても、表示面との間の距離がごく僅かな位置まで入力媒体を近接させることを、前述の「タッチ」の概念に含めてもよい。さらに入力媒体とは、ユーザの指であってもよいし、タッチペン等であってもよい。ディスプレイ５３に表示されたアイコンの位置のタップするユーザ操作は、当該アイコンを指定する指定操作の一例である。
【００２０】
［通信Ｉ／Ｆ２５］
通信Ｉ／Ｆ２５は、通信ネットワークを通じて外部装置と通信可能なインタフェースである。すなわち、複合機１０は、通信Ｉ／Ｆ２５を通じて外部装置に各種情報を出力し、通信Ｉ／Ｆ２５を通じて外部装置から各種情報を受信する。通信Ｉ／Ｆ２５の具体的な通信手順は特に限定されないが、例えば、Ｗｉ−Ｆｉを採用することができる。
【００２１】
［ＣＰＵ３１］
ＣＰＵ３１は、複合機１０の全体動作を制御するものである。ＣＰＵ３１は、入力Ｉ／Ｆ２４から出力される各種情報、通信Ｉ／Ｆ２５を通じて外部装置から取得した各種情報等に基づいて、後述する各種プログラムをメモリ３２から取得して実行する。ＣＰＵ３１及びメモリ３２は、制御部の一例を構成する。
【００２２】
［メモリ３２］
メモリ３２は、プログラム記憶領域３２Ａと、データ記憶領域３２Ｂとを有する。プログラム記憶領域３２Ａには、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍの略）３４と、装置プログラム３５とが格納される。なお、装置プログラム３５は、単一のプログラムであってもよいし、複数のプログラムの集合体であってもよい。データ記憶領域３２Ｂには、装置プログラム３５の実行に必要なデータ或いは情報が記憶される。
【００２３】
なお、本明細書中の「データ」と「情報」とは、コンピュータによって取り扱い可能なビット或いはビット列である点において共通する。「データ」とは、各ビットが示す意味内容をコンピュータが考慮することなく取り扱えるものを指す。これに対して、「情報」とは、各ビットが示す意味内容によってコンピュータの動作が分岐するものを指す。さらに、「指示」は、送信先の装置に対して次の動作を促すための制御信号であって、情報を含んでいることもあるし、それ自体が情報としての性質を有していることもある。
【００２４】
また、「データ」及び「情報」は、形式（例えば、テキスト形式、バイナリ形式、フラグ形式等）がコンピュータ毎に変更されたとしても、同一の意味内容と認識される限り、同一のデータ及び情報として取り扱われる。例えば、「２つ」であることを示す情報が、あるコンピュータではＡＳＣＩＩコードで”０ｘ３２“というテキスト形式の情報として保持され、別のコンピュータでは二進数表記で”１０“というバイナリ形式の情報として保持されてもよい。
【００２５】
但し、上記の「データ」及び「情報」の区別は厳密なものではなく、例外的な取り扱いも許容される。例えば、データが一時的に情報として扱われてもよいし、情報が一時的にデータとして扱われてもよい。また、ある装置ではデータとして扱われるものが、他の装置では情報として扱われてもよい。さらには、データの中から情報が取り出されてもよいし、情報の中からデータが取り出されてもよい。
【００２６】
メモリ３２は、例えば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙの略）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙの略）、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙの略）、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅの略）、複合機１０に着脱されるＵＳＢメモリ等の可搬記憶媒体、ＣＰＵ３１が備えるバッファ等、或いはそれらの組み合わせによって構成される。
【００２７】
なお、メモリ３２は、コンピュータが読み取り可能なストレージ媒体であってもよい。コンピュータが読み取り可能なストレージ媒体とは、ｎｏｎ−ｔｒａｎｓｉｔｏｒｙな媒体である。ｎｏｎ−ｔｒａｎｓｉｔｏｒｙな媒体には、上記の例の他に、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ等の記録媒体も含まれる。また、ｎｏｎ−ｔｒａｎｓｉｔｏｒｙな媒体は、ｔａｎｇｉｂｌｅな媒体でもある。一方、インターネット上のサーバなどからダウンロードされるプログラムを搬送する電気信号は、コンピュータが読み取り可能な媒体の一種であるコンピュータが読み取り可能な信号媒体であるが、ｎｏｎ−ｔｒａｎｓｉｔｏｒｙなコンピュータが読み取り可能なストレージ媒体には含まれない。
【００２８】
プログラム記憶領域３２Ａに記憶されているプログラムは、ＣＰＵ３１によって実行される。しかしながら、本明細書では、ＣＰＵ３１を省略して各プログラムの動作を説明することがある。すなわち、以下の説明において、「プログラムＡが処理Ａを実行する」という趣旨の記述は、「ＣＰＵ３１がプログラムＡに記述された処理Ａを実行する」ことを指してもよい。後述する情報処理端末５０についても同様である。
【００２９】
また、プログラム記憶領域３２Ａに記憶されているプログラムは、事象を判断し、判断結果に応じて動作する。しかしながら、本明細書では、判断することを省略して各プログラムの動作を説明することがある。すなわち、以下の説明において、「プログラムが条件Ａに応じて、処理Ａを実行する」という趣旨の記述は、「プログラムは条件Ａであるか否かを判断する。プログラムは、肯定判断であることに応じて、処理Ａを実行する」ことを指してもよい。後述する情報処理端末５０についても同様である。
【００３０】
また、プログラム記憶領域３２Ａに記憶されているプログラムは、データ等を特定し、取得し、抽出し、決定し、或いは選択する。プログラムがデータ等を特定するとは、例えば、複数のデータ等のうちから条件に合致するデータを特定し、当該データ等そのもの或いは当該データ等を識別するための情報を、予め定められた記憶領域に記憶させる処理を指す。データ等を識別するための情報とは、例えば、当該データ等を識別するための識別情報、当該データ等が記憶された配列のインデックス、当該データ等が記憶された記憶領域のポインタ等である。プログラムがデータ等を取得し、抽出し、決定し、或いは選択する処理も同様である。後述する情報処理端末５０についても同様である。
【００３１】
ＯＳ３４は、複合機１０を構成するハードウェアであるプリンタ１１、スキャナ１２、ディスプレイ２３、入力Ｉ／Ｆ２４、及び通信Ｉ／Ｆ２５等を制御するためのＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅの略）を提供する基本プログラムである。すなわち、上記の各プログラムは、ＯＳ３４が提供するＡＰＩを呼び出すことによって、各ハードウェアを制御する。しかしながら、本明細書では、ＯＳ３４を省略して各プログラムの動作を説明することがある。すなわち、以下の説明において、「プログラムＢがハードウェアＣを制御する」という趣旨の記述は、「プログラムＢがＯＳ３４のＡＰＩを通じてハードウェアＣを制御する」ことを指してもよい。後述する情報処理端末５０についても同様である。
【００３２】
［情報処理端末５０］
情報処理端末５０は、図２（Ｂ）に示されるように、ディスプレイ５３と、入力Ｉ／Ｆ５４と、通信Ｉ／Ｆ５５と、ＣＰＵ６１と、メモリ６２と、通信バス６３とを主に備える。情報処理端末５０に含まれるディスプレイ５３、入力Ｉ／Ｆ５４、通信Ｉ／Ｆ５５、ＣＰＵ６１、メモリ６２、及び通信バス６３は、複合機１０に含まれるディスプレイ２３、入力Ｉ／Ｆ２４、通信Ｉ／Ｆ２５、ＣＰＵ３１、メモリ３２、及び通信バス３３と同様の構成であるので、説明は省略する。ＣＰＵ６１及びメモリ６２は、制御部の一例である。情報処理端末５０は、例えば、携帯電話、スマートフォン、タブレット端末、或いはＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒの略）等であってもよい。
【００３３】
情報処理端末５０のプログラム記憶領域６２Ａには、ＵＩ（Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅの略）プログラム６５と、ＷＦ（ＷｏｒｋＦｌｏｗの略）プログラム６６とが格納されている。ＵＩプログラム６５は、図５及び図６に示される処理を実行することによって、後述するＷＦ定義ファイルをデータ記憶領域６２Ｂに記憶させ、且つユーザによって指定されたＷＦ定義ファイルをＷＦプログラム６６に引き渡す。ＷＦプログラム６６は、図７に示される処理を実行する異によって、ＵＩプログラム６５から取得したＷＦ定義ファイルに定義されたワークフローを実行する。なお、ＵＩプログラム６５及びＷＦプログラム６６は、別プログラムであってもよいし、一体のプログラムであってもよい。
【００３４】
ワークフローは、複数のジョブを含む。すなわち、「ＷＦプログラム６６がワークフローを実行する」とは、当該ワークフローに含まれる複数のジョブを予め定められた順序で順番に実行することを指す。ジョブは、画像データに対する各種の動作である。ジョブは、入力ジョブと、編集ジョブと、出力ジョブとに大別される。ジョブは、後述するジョブプログラムによって実現される。
【００３５】
入力ジョブは、画像データをＷＦプログラム６６に入力させるジョブである。スキャナ１２による読取動作によって生成された画像データを複合機１０から受信する動作、データ記憶領域６２Ｂに記憶された画像データを読み出すジョブ、サーバ８０、８１に記憶された画像データを受信するジョブは、入力ジョブの一例である。ワークフローは、入力ジョブを少なくとも１つ含む。また、ワークフローは、複数の入力ジョブを含んでもよい。
【００３６】
編集ジョブは、入力ジョブで入力された画像データを編集するジョブである。より詳細には、編集ジョブは、画像データに含まれる画素値を改変するジョブである。画像データに含まれる画像内においてエッジを強調するジョブ、画像データに含まれる文字列画像から文字列を抽出するジョブは、編集ジョブの一例である。ワークフローは、編集ジョブを含んでもよいし、編集ジョブを含んでいなくてもよい。また、ワークフローは、複数の編集ジョブを含んでもよい。
【００３７】
出力ジョブは、画像データを出力するジョブである。プリンタ１１による記録動作の対象となる画像データを複合機１０に送信するジョブ、画像データをデータ記憶領域６２Ｂに記憶させるジョブ、サーバ８０、８１のメモリに記憶させる画像データをサーバ８０、８１に送信するジョブ、画像データを添付した電子メールを送信するジョブは、出力ジョブの一例である。ワークフローは、出力ジョブを少なくとも１つ含む。また、ワークフローは、複数の出力ジョブを含んでもよい。
【００３８】
情報処理端末５０のデータ記憶領域６２Ｂは、例えば図３（Ａ）に示されるように、装置ＩＤを記憶することができる。装置ＩＤ“ＭＦＰ−Ａ”は、通信Ｉ／Ｆ５５を通じて通信可能な複合機１０Ａ、１０Ｂのうち、入力Ｉ／Ｆ５４を通じてユーザによって指定された複合機１０Ａ（以下、「指定装置」と表記する。）を識別する装置識別情報の一例である。装置ＩＤは、後述するメイン処理において、ＵＩプログラム６５によってデータ記憶領域６２Ｂに登録される。本実施形態では、複合機１０Ａに装置ＩＤ“ＭＦＰ−Ａ”が割り当てられ、複合機１０Ｂに装置ＩＤ“ＭＦＰ−Ｂ”が割り当てられているものとする。
【００３９】
また、データ記憶領域６２Ｂには、例えば図３（Ｂ）に示されるように、ジョブ種別と、クラス名と、所在情報とを記憶している。以下、図３（Ｂ）に示される情報全体を「プログラムリスト」と表記することがあり、プログラムリストにおいて互いに対応付けられたジョブ種別、クラス名、及び所在情報のセットを「プログラムレコード」と表記することがある。すなわち、プログラムリストは、複数のプログラムレコードを含むことができる。プログラムリストは、例えば、ＵＩプログラム６５或いはＷＦプログラム６６のインストール時にデータ記憶領域６２Ｂに登録され、ＵＩプログラム６５或いはＷＦプログラム６６のバージョンアップ時等にプログラムレコードが追加される。
【００４０】
プログラムレコードは、前述のジョブを実行するプログラム（以下、「ジョブプログラム」と表記する。）を示す。ジョブ種別は、プログラムレコードで示されるジョブプログラムが入力ジョブ、編集ジョブ、及び出力ジョブのいずれを実行するのかを示す情報である。クラス名は、ジョブプログラムを識別する識別子の一例である。所在情報は、クラス名で識別されるジョブプログラムの所在を示す情報である。ジョブプログラムは、例えば、情報処理端末５０のプログラム記憶領域６２Ａに記憶されていてもよいし、インターネット１０１上のサーバ８２に記憶されていてもよい。ジョブプログラムは、例えば、ＤＬＬ（Ｄｙｎａｍｉｃ  Ｌｉｎｋ  Ｌｉｂｒａｒｙの略）に含まれるモジュールの形式で提供されてもよい。
【００４１】
一例として、クラス名“ｓｃａｎ”で識別されるジョブプログラム（以下、「ジョブプログラム“ｓｃａｎ”」と表記する。他のジョブプログラムも同様。）は、データ記憶領域６２Ｂのフォルダ“／ｐｒｏｇｒａｍ／ｉｎｐｕｔ”に保存されたファイル“ｓｃａｎ．ｄｌｌ”に含まれている。他の例として、ジョブプログラム“ｅｄｇｅ＿ｅｎｈａｎｃｅｍｅｎｔ”は、ＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒの略）“ｗｗｗ．ｓｅｒｖｅｒ−Ｃ．ｃｏｍ”で識別されるサーバ８２のフォルダ“ｅｄｉｔ”に保存されたファイル“ｅｄｇｅ．ｄｌｌ”に含まれる。さらに図示は省略するが、ジョブプログラムは、ＷＦプログラム６６に含まれていてもよい。
【００４２】
ジョブプログラムには、複数の関数が定義されている。より詳細には、ジョブプログラムには、前動作を実行するＰｒｅ関数と、本動作を実行するＤｏ関数とが少なくとも定義されている。また、ジョブプログラムには、後動作を実行するＰｏｓｔ関数が定義されていてもよい。前動作は、ジョブプログラムによって実現されるジョブが実行可能か否かを確認するための動作である。本動作は、ジョブプログラムによって実現されるジョブそのものの動作である。後動作は、本動作で用いられた情報処理端末５０のリソースを解放するための動作である。すなわち、前動作、本動作、後動作の具体的な内容は、ジョブプログラム毎に異なる。
【００４３】
ジョブプログラム“ｓｃａｎ”は、読取動作によって生成された画像データを指定装置から受信する入力ジョブを実行する。ジョブプログラム“ｓｃａｎ”のＰｒｅ関数には、例えば、通信Ｉ／Ｆ５５を通じて指定装置と通信可能か否か、指定装置が他の読取動作を実行中か否か、定義データに定義された後述する実行条件で指定装置が読取動作を実行可能か否かを確認する動作が定義されている。ジョブプログラム“ｓｃａｎ”のＤｏ関数には、例えば、通信Ｉ／Ｆ５５を通じて指定装置にスキャン指示情報を送信し、スキャン指示情報の応答として指定装置が送信した画像データを通信Ｉ／Ｆ５５を通じて受信する動作が定義されている。スキャン指示情報は、読取動作の実行を指示するための情報であって、例えば、図４に示されるＷＦ定義ファイルに定義された読取動作の実行条件を示す条件情報を含む。ＷＦ定義ファイルの詳細は、後述する。ジョブプログラム“ｓｃａｎ”のＰｏｓｔ関数には、例えば、指定装置との通信コネクションを切断する動作、Ｐｒｅ関数及びＤｏ関数の実行時に生成された一時ファイルを削除する動作が定義されている。
【００４４】
ジョブプログラム“ｌｏａｄ＿ｆｒｏｍ＿ｌｏｃａｌ”は、データ記憶領域６２Ｂに記憶された画像データを読み出す入力ジョブを実行する。ジョブプログラム“ｌｏａｄ＿ｆｒｏｍ＿ｌｏｃａｌ”のＰｒｅ関数には、例えば、定義データに定義されたファイル（以下、「指定ファイル」と表記する。）が存在するか否か、指定ファイルの読み取り権限が情報処理端末５０に付与されているか否かを確認する動作が定義されている。ジョブプログラム“ｌｏａｄ＿ｆｒｏｍ＿ｌｏｃａｌ”のＤｏ関数には、例えば、データ記憶領域６２Ｂから指定ファイルを読み出す動作が定義されている。ジョブプログラム“ｌｏａｄ＿ｆｒｏｍ＿ｌｏｃａｌ”のＰｏｓｔ関数には、例えば、Ｐｒｅ関数及びＤｏ関数の実行時に生成された一時ファイルを削除する動作が定義されている。
【００４５】
ジョブプログラム“ｄｏｗｎｌｏａｄ＿ｆｒｏｍ＿ｃｌｏｕｄ”は、サーバ８０、８１に記憶された画像データを受信する入力ジョブを実行する。ジョブプログラム“ｄｏｗｎｌｏａｄ＿ｆｒｏｍ＿ｃｌｏｕｄ”のＰｒｅ関数には、例えば、通信Ｉ／Ｆ５５を通じてサーバ８０、８１と通信可能か否か、サーバ８０、８１にアクセスするためのアカウント情報が有効か否か、指定ファイルが存在するか否かを確認する動作が定義されている。ジョブプログラム“ｄｏｗｎｌｏａｄ＿ｆｒｏｍ＿ｃｌｏｕｄ”のＤｏ関数には、例えば、通信Ｉ／Ｆ５５を通じてダウンロード指示情報をサーバ８０、８１に送信し、ダウンロード指示情報の応答としてサーバ８０、８１が送信した画像データを通信Ｉ／Ｆ５５を通じて受信する動作が定義されている。ダウンロード指示情報は、指定ファイルの送信を指示するための情報であって、例えば、指定ファイルを識別するファイルＩＤ（例えば、ファイルパス名）を含む。ジョブプログラム“ｄｏｗｎｌｏａｄ＿ｆｒｏｍ＿ｃｌｏｕｄ”のＰｏｓｔ関数には、例えば、サーバ８０、８１との通信コネクションを切断する動作、Ｐｒｅ関数及びＤｏ関数の実行時に生成された一時ファイルを削除する動作が定義されている。
【００４６】
ジョブプログラム“ｅｄｇｅ＿ｅｎｈａｎｃｅｍｅｎｔ”は、画像データに含まれる画像内のエッジを強調する編集ジョブを実行する。ジョブプログラム“ｅｄｇｅ＿ｅｎｈａｎｃｅｍｅｎｔ”のＰｒｅ関数には、例えば、Ｄｏ関数を実行可能なファイル形式の画像データが入力ジョブで入力されるか否か、Ｄｏ関数の実行時に画像データを展開するのに十分なメモリ領域がデータ記憶領域６２Ｂに確保されているか否かを確認する動作が定義されている。ジョブプログラム“ｅｄｇｅ＿ｅｎｈａｎｃｅｍｅｎｔ”のＤｏ関数には、例えば、画像データに含まれる画像内においてエッジを検出し、検出したエッジを強調する動作が定義されている。ジョブプログラム“ｅｄｇｅ＿ｅｎｈａｎｃｅｍｅｎｔ”のＰｏｓｔ関数には、例えば、Ｐｒｅ関数及びＤｏ関数の実行時に生成された一時ファイルを削除する動作が定義されている。
【００４７】
ジョブプログラム“ｔｅｘｔ＿ｅｘｔｒａｃｔｉｏｎ”は、画像データに含まれる文字列画像から文字列を抽出する編集ジョブを実行する。ジョブプログラム“ｔｅｘｔ＿ｅｘｔｒａｃｔｉｏｎ”のＰｒｅ関数には、例えば、Ｄｏ関数を実行可能なファイル形式の画像データが入力ジョブで入力されるか否か、Ｄｏ関数の実行時に画像データを展開するのに十分なメモリ領域がデータ記憶領域６２Ｂに確保されているか否かを確認する動作が定義されている。ジョブプログラム“ｔｅｘｔ＿ｅｘｔｒａｃｔｉｏｎ”のＤｏ関数には、例えば、画像データに含まれる文字列画像から文字列を抽出する所謂ＯＣＲ（Ｏｐｔｉｃａｌ  ｃｈａｒａｃｔｅｒ  ｒｅｃｏｇｎｉｔｉｏｎの略）動作が定義されている。ジョブプログラム“ｔｅｘｔ＿ｅｘｔｒａｃｔｉｏｎ”のＰｏｓｔ関数には、例えば、Ｐｒｅ関数及びＤｏ関数の実行時に生成された一時ファイルを削除する動作が定義されている。
【００４８】
ジョブプログラム“ｐｒｉｎｔ”は、プリンタ１１による記録動作の対象となる画像データを複合機１０に送信する出力ジョブを実行する。ジョブプログラム“ｐｒｉｎｔ”のＰｒｅ関数には、例えば、通信Ｉ／Ｆ５５を通じて指定装置と通信可能か否か、記録動作に必要な消耗品（例えば、インク、トナー等）が指定装置に残っているか否か、指定装置が他の記録動作を実行中か否か、定義データに定義された実行条件で指定装置が記録動作を実行可能か否かを確認する動作が定義されている。ジョブプログラム“ｐｒｉｎｔ”のＤｏ関数には、例えば、通信Ｉ／Ｆ５５を通じて指定装置にプリント指示情報を送信する動作が定義されている。プリント指示情報は、記録動作の実行を指示するための情報であって、例えば、画像データと、ＷＦ定義ファイルに定義された記録動作の実行条件を示す条件情報とを含む。ジョブプログラム“ｐｒｉｎｔ”のＰｏｓｔ関数には、例えば、指定装置との通信コネクションを切断する動作、Ｐｒｅ関数及びＤｏ関数の実行時に生成された一時ファイルを削除する動作が定義されている。
【００４９】
ジョブプログラム“ｓａｖｅ＿ｔｏ＿ｌｏｃａｌ”は、画像データをデータ記憶領域６２Ｂに記憶させる出力ジョブを実行する。ジョブプログラム“ｓａｖｅ＿ｔｏ＿ｌｏｃａｌ”のＰｒｅ関数には、例えば、指定ファイルと同じ名称のファイルが既に存在しているか否か、後述するパス情報で示されるフォルダへの書き込み権限が情報処理端末５０に付与されているか否かを確認する動作が定義されている。ジョブプログラム“ｓａｖｅ＿ｔｏ＿ｌｏｃａｌ”のＤｏ関数には、例えば、データ記憶領域６２Ｂに指定ファイルを書き込む動作が定義されている。ジョブプログラム“ｓａｖｅ＿ｔｏ＿ｌｏｃａｌ”のＰｏｓｔ関数には、例えば、Ｐｒｅ関数及びＤｏ関数の実行時に生成された一時ファイルを削除する動作が定義されている。
【００５０】
ジョブプログラム“ｕｐｌｏａｄ＿ｔｏ＿ｃｌｏｕｄ”は、サーバ８０、８１のメモリに記憶させる画像データをサーバ８０、８１に送信する出力ジョブを実行する。ジョブプログラム“ｕｐｌｏａｄ＿ｔｏ＿ｃｌｏｕｄ”のＰｒｅ関数には、例えば、通信Ｉ／Ｆ５５を通じてサーバ８０、８１と通信可能か否か、サーバ８０、８１にアクセスするためのアカウント情報が有効か否か、指定ファイルと同じ名称のファイルが既に存在するか否かを確認する動作が定義されている。ジョブプログラム“ｕｐｌｏａｄ＿ｔｏ＿ｃｌｏｕｄ”のＤｏ関数には、例えば、通信Ｉ／Ｆ５５を通じてアップロード指示情報をサーバ８０、８１に送信する動作が定義されている。アップロード指示情報は、指定ファイルのメモリへの記憶を指示するための情報であって、例えば、指定ファイルと、指定ファイルを保存する場所を示すパス情報とを含む。ジョブプログラム“ｕｐｌｏａｄ＿ｔｏ＿ｃｌｏｕｄ”のＰｏｓｔ関数には、例えば、サーバ８０、８１との通信コネクションを切断する動作、Ｐｒｅ関数及びＤｏ関数の実行時に生成された一時ファイルを削除する動作が定義されている。
【００５１】
ジョブプログラム“ｓｅｎｄ＿ｂｙ＿ｍａｉｌ”は、画像データを添付した電子メールを送信する出力ジョブを実行する。ジョブプログラム“ｓｅｎｄ＿ｂｙ＿ｍａｉｌ”のＰｒｅ関数には、例えば、通信Ｉ／Ｆ５５を通じて不図示のＳＭＴＰ（Ｓｉｍｐｌｅ  Ｍａｉｌ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌの略）サーバと通信可能か否か、送信元のメールアカウントが有効か否か、画像データのデータサイズが閾値サイズ未満か否かを確認する動作が定義されている。ジョブプログラム“ｓｅｎｄ＿ｂｙ＿ｍａｉｌ”のＤｏ関数には、例えば、画像データを添付した電子メールを、ＳＭＴＰに準拠した手順で通信Ｉ／Ｆ５５を通じてＳＭＴＰサーバに送信する動作が定義されている。ジョブプログラム“ｓｅｎｄ＿ｂｙ＿ｍａｉｌ”のＰｏｓｔ関数には、例えば、ＳＭＴＰサーバとの通信コネクションを切断する動作、Ｐｒｅ関数及びＤｏ関数の実行時に生成された一時ファイルを削除する動作が定義されている。
【００５２】
なお、ＷＦプログラム６６が実行可能なジョブは、図３（Ｂ）の例に限定されない。読取動作によって画像データに重畳されたノイズを除去するＤｏ関数を含むジョブは、編集ジョブの一例である。指定装置によるＦＡＸ送信動作の対象となる画像データを指定装置に送信するＤｏ関数を含むジョブは、出力ジョブの一例である。また、各ジョブプログラムに定義されたＰｒｅ関数、Ｄｏ関数、Ｐｏｓｔ関数の内容は、前述の例に限定されない。例えば、各ジョブプログラムには、Ｐｏｓｔ関数が定義されていなくてもよい。この場合、Ｐｏｓｔ関数に相当する動作は、対応するＤｏ関数に定義されていてもよいし、ＷＦプログラム６６に実装されていてもよい。この場合のＷＦプログラム６６は、ＷＦ定義ファイルに定義された各ジョブを実行した後に、各ジョブで使用した情報処理端末５０のリソースを解放する処理を纏めて実行してもよい。
【００５３】
また、データ記憶領域６２Ｂは、例えば図４に示されるＷＦ定義ファイルを記憶することができる。ＷＦ定義ファイルは、ワークフローを定義する定義データの一例である。本実施形態に係るＷＦ定義ファイルは、ＸＭＬ（ｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅの略）によってワークフローを定義するテキストファイルである。ＷＦ定義ファイルは、例えば、ＷＦ登録処理を実行するＵＩプログラム６５によって、データ記憶領域６２Ｂに登録される。
【００５４】
さらに図示は省略するが、データ記憶領域６２Ｂには、データフォルダが設けられていてもよい。データフォルダは、例えば、写真データ或いは画像データ（例えば、ＪＰＥＧ形式、ＴＩＦＦ形式、ＢＭＰ形式等）が格納される写真データフォルダ“ｐｉｃｔｕｒｅ”、ドキュメントデータ（ＤＯＣ形式、ＴＸＴ形式、ＲＴＦ形式等）が格納されるドキュメントデータフォルダ“ｄｏｃｕｍｅｎｔ”等を含んでもよい。
【００５５】
［サーバ８０、８１、８２］
サーバ８０、８１は、所謂ストレージサーバである。より詳細には、サーバ８０、８１は、例えば、情報処理端末５０から受信したデータをメモリに記憶させ、情報処理端末５０によって指定されたデータをメモリから読み出して情報処理端末５０に送信する。サーバ８２は、ジョブプログラムを提供するサーバである。より詳細には、サーバ８２は、情報処理端末５０によって指定されたＤＬＬファイルをメモリから読み出して情報処理端末５０に送信する。サーバ８０〜８２のハードウェア構成は周知のストレージサーバの構成なので、詳細な説明は省略する。
【００５６】
［システム１００の動作］
図５〜図７を参照して、本実施形態に係るシステム１００の動作を説明する。システム１００は、ユーザ操作に従って生成したＷＦ定義ファイルをＵＩプログラム６５がデータ記憶領域６２Ｂに登録し、ユーザによって指定されたＷＦ定義ファイルに定義されたワークフローをＷＦプログラム６６が実行する。
【００５７】
まず、情報処理端末５０のＵＩプログラム６５は、ＯＳ６４によって起動されたことに応じて、図５に示されるメイン処理を実行する。ＵＩプログラム６５は、メイン画面をディスプレイ５３に表示させる（Ｓ１１）。そして、ＵＩプログラム６５は、メイン画面に対するユーザ操作を、入力Ｉ／Ｆ５４を通じて受け付ける（Ｓ１２）。
【００５８】
図８（Ａ）は、メイン画面の一例である。図８（Ａ）に示されるメイン画面は、プリントアイコン１１１と、スキャンアイコン１１２と、［＋］アイコン１１３と、装置アイコン１１４とを含む。プリントアイコン１１１は、ジョブプログラム“ｐｒｉｎｔ”を単独で実行させる指示に対応する。スキャンアイコン１１２は、ジョブプログラム“ｓｃａｎ”を単独で実行させる指示に対応する。［＋］アイコン１１３は、ＷＦ定義ファイルを新規に生成する指示に対応する。装置アイコン１１４は、指定装置を切り替える指示に対応する。また、装置アイコン１１４には、現時点での指定装置を識別する装置ＩＤ“ＭＦＰ−Ａ”が記述されている。
【００５９】
ＵＩプログラム６５は、プリントアイコン１１１の指定を入力Ｉ／Ｆ５４を通じて受け付けたことに応じて、ジョブプログラム“ｐｒｉｎｔ”を実行する。すなわち、ＵＩプログラム６５は、指定装置である複合機１０Ａのプリンタ１１に記録動作を実行させる。また、ＵＩプログラム６５は、スキャンアイコン１１２の指定を入力Ｉ／Ｆ５４を通じて受け付けたことに応じて、ジョブプログラム“ｓｃａｎ”を実行する。すなわち、ＵＩプログラム６５は、指定装置である複合機１０Ａのスキャナ１２に読取動作を実行させる。
【００６０】
また、ＵＩプログラム６５は、装置アイコン１１４の指定を入力Ｉ／Ｆ５４を通じて受け付けたことに応じて（Ｓ１２：装置アイコン）、指定装置を切り替えるユーザ操作を受け付ける（Ｓ１３）。例えば、ＵＩプログラム６５は、通信Ｉ／Ｆ５５を通じて通信可能な複合機１０Ａ、１０Ｂのうちの１つを、入力Ｉ／Ｆ５４を通じてユーザに指定させる。そして、ＵＩプログラム６５は、ユーザによって指定された複合機１０の装置ＩＤで、図３（Ａ）に示される装置ＩＤを上書きする。そして、ＵＩプログラム６５は、新たな装置ＩＤが記述された装置アイコン１１４を含むメイン画面を、ディスプレイ５３に表示させる（Ｓ１１）。
【００６１】
また、ＵＩプログラム６５は、［＋］アイコン１１３の指定を入力Ｉ／Ｆ５４を通じて受け付けたことに応じて（Ｓ１２：［＋］アイコン）、ＷＦ登録処理を実行する（Ｓ１４）。ＷＦ登録処理は、入力Ｉ／Ｆ５４を通じたユーザの指示に従ってＷＦ定義ファイルを生成し、生成したＷＦ定義ファイルをデータ記憶領域６２Ｂに記憶させる処理である。図６を参照して、ＷＦ登録処理の詳細を説明する。
【００６２】
ＵＩプログラム６５は、第１画面の一例であるＷＦタイプ選択画面をディスプレイ５３に表示させる（Ｓ２１）。ＷＦタイプ選択画面は、入力ジョブ及び出力ジョブのどちらを指定装置に実行させるかを、ユーザに選択させるための画面である。図８（Ｂ）は、ＷＦタイプ選択画面の一例である。そして、ＵＩプログラム６５は、ＷＦタイプ選択画面に対するユーザ操作を、入力Ｉ／Ｆ５４を通じて受け付ける（Ｓ２２）。ステップＳ２１の処理は第１表示処理の一例であり、ステップＳ２２の処理は受付処理及び第１受付処理の一例である。
【００６３】
図８（Ｂ）に示されるＷＦタイプ選択画面は、メイン画面に重ねられたポップアップ画面である。ＷＦタイプ選択画面は、［プリントタイプ］アイコン１１６と、［スキャンタイプ］アイコン１１７とを含む。［プリントタイプ］アイコン１１６は、指定装置を用いた出力ジョブに対応する第２オブジェクトの一例である。すなわち、［プリントタイプ］アイコン１１６は、クラス名“ｐｒｉｎｔ”に対応する。［スキャンタイプ］アイコン１１７は、指定装置を用いた入力ジョブに対応する第１オブジェクトの一例である。すなわち、［スキャンタイプ］アイコン１１７は、クラス名“ｓｃａｎ”に対応する。
【００６４】
次に、ＵＩプログラム６５は、［プリントタイプ］アイコン１１６の指定を入力Ｉ／Ｆ５４を通じて受け付けたことに応じて（Ｓ２２：プリントタイプ）、［プリントタイプ］アイコン１１６に対応するクラス名“ｐｒｉｎｔ”を、データ記憶領域６２Ｂに一時記憶させる。また、ＵＩプログラム６５は、第３画面の一例である取得元選択画面をディスプレイ５３に表示させる（Ｓ２３）。取得元選択画面は、入力ジョブにおける画像データの取得元を、ユーザに選択させるための画面である。図９（Ａ）は、取得元選択画面の一例である。そして、ＵＩプログラム６５は、取得元選択画面に対するユーザ操作を、入力Ｉ／Ｆ５４を通じて受け付ける（Ｓ２４）。ステップＳ２３の処理は第３表示処理の一例であり、ステップＳ２４の処理は受付処理及び第３受付処理の一例である。
【００６５】
図９（Ａ）に示される取得元選択画面は、メイン画面に重ねられたポップアップ画面である。取得元選択画面は、複数の取得元アイコン１２１、１２２、１２３を含む。取得元アイコン１２１〜１２３は、入力ジョブにおける画像データの取得元に対応する取得元オブジェクトの一例である。本実施形態において、取得元アイコン１２１はドキュメントデータフォルダ“ｄｏｃｕｍｅｎｔ”に対応し、取得元アイコン１２２は写真データフォルダ“ｐｉｃｔｕｒｅ”に対応し、取得元アイコン１２３はサーバ８０、８１に対応する。また、取得元アイコン１２１、１２２はクラス名“ｌｏａｄ＿ｆｒｏｍ＿ｌｏｃａｌ”に対応し、取得元アイコン１２３はクラス名“ｄｏｗｎｌｏａｄ＿ｆｒｏｍ＿ｃｌｏｕｄ”に対応する。取得元アイコン１２１〜１２３に対応付けられたクラス名は、第１候補識別子の一例である。
【００６６】
そして、ＵＩプログラム６５は、例えば取得元アイコン１２１の指定を入力Ｉ／Ｆ５４を通じて受け付けたことに応じて（Ｓ２４：Ｙｅｓ）、取得元アイコン１２１に対応するクラス名“ｌｏａｄ＿ｆｒｏｍ＿ｌｏｃａｌ”及びデータ取得元“ｄｏｃｕｍｅｎｔ”を、データ記憶領域６２Ｂに一時記憶させる。次に、ＵＩプログラム６５は、ＷＦ登録画面をディスプレイ５３に表示させる（Ｓ２５）。ＷＦ登録画面は、指定された各ジョブの実行条件を、ユーザに指定させるための画面である。そして、ＵＩプログラム６５は、ＷＦ登録画面に対するユーザ操作を、入力Ｉ／Ｆ５４を通じて受け付ける（Ｓ２６）。ステップＳ２６の処理は、受付処理の一例である。
【００６７】
図９（Ｂ）は、［プリントタイプ］アイコン１１６及び取得元アイコン１２１が指定された場合のＷＦ登録画面の一例である。図９（Ｂ）に示されるＷＦ登録画面は、入力条件指定領域１３１と、出力条件指定領域１３２と、［登録］アイコン１３３と、［キャンセル］アイコン１３４とを含む。入力条件指定領域１３１は、指定された入力ジョブの実行条件をユーザに指定させるための領域であって、設定アイコン１３５を含む。出力条件指定領域１３２は、指定された出力ジョブの実行条件をユーザに指定させるための領域であって、設定アイコン１３６、１３７を含む。［登録］アイコン１３３は、ＷＦ登録処理におけるユーザ操作に従って生成した新たなＷＦ定義ファイルを登録する指示に対応する。［キャンセル］アイコン１３４は、ＷＦ定義ファイルを登録せずにＷＦ登録処理を終了する指示に対応する。
【００６８】
設定アイコン１３５は、指定ファイルを指定する指示に対応する。すなわち、ＵＩプログラム６５は、設定アイコン１３５の指定を入力Ｉ／Ｆ５４を通じて受け付けたことに応じて（Ｓ２６：設定）、ドキュメントデータフォルダ“ｄｏｃｕｍｅｎｔ”に格納された複数のドキュメントデータのうちの１つを指定する指定操作を、入力Ｉ／Ｆ５４を通じて受け付ける。そして、ＵＩプログラム６５は、指定されたドキュメントデータのデータＩＤを、入力ジョブの条件情報としてデータ記憶領域６２Ｂに一時記憶させる（Ｓ２７）。さらに、ＵＩプログラム６５は、指定されたドキュメントデータのデータＩＤ（例えば、“／ｄｏｃｕｍｅｎｔ／見積書．ｄｏｃ”）が入力条件指定領域１３１に記述されたＷＦ登録画面を、ディスプレイ５３に表示させる（Ｓ２５）。
【００６９】
設定アイコン１３６は、記録動作に用いられる記録用紙のサイズを指定する指示に対応する。すなわち、ＵＩプログラム６５は、設定アイコン１３６の指定を入力Ｉ／Ｆ５４を通じて受け付けたことに応じて（Ｓ２６：設定）、複数のサイズ（例えば、Ａ４、Ｂ５、Ｌ版等）のうちの１つを指定する指定操作を、入力Ｉ／Ｆ５４を通じて受け付ける。そして、ＵＩプログラム６５は、指定されたサイズを示すサイズ情報を、出力ジョブの条件情報としてデータ記憶領域６２Ｂに一時記憶させる（Ｓ２７）。さらに、ＵＩプログラム６５は、指定されたサイズ（例えば、“Ａ４”）が出力条件指定領域１３２に記述されたＷＦ登録画面を、ディスプレイ５３に表示させる（Ｓ２５）。
【００７０】
設定アイコン１３７は、記録動作に用いる色を指定する指示に対応する。すなわち、ＵＩプログラム６５は、設定アイコン１３７の指定を入力Ｉ／Ｆ５４を通じて受け付けたことに応じて（Ｓ２６：設定）、記録動作に用いる色（例えば、“カラー”、“モノクロ”）を指定する指定操作を、入力Ｉ／Ｆ５４を通じて受け付ける。そして、ＵＩプログラム６５は、指定された色を示す色情報を、出力ジョブの条件情報としてデータ記憶領域６２Ｂに一時記憶させる（Ｓ２７）。さらに、ＵＩプログラム６５は、指定された色（例えば、“モノクロ”）が出力条件指定領域１３２に記述されたＷＦ登録画面を、ディスプレイ５３に表示させる（Ｓ２５）。
【００７１】
入力条件指定領域１３１及び出力条件指定領域１３２に含められる設定アイコンは、指定されたジョブ毎に異なる。また、取得元アイコン１２１が指定された場合において、入力条件指定領域１３１に含められる設定アイコンは、図９（Ｂ）の例に限定されない。例えば、この場合の入力条件指定領域１３１は、指定されたドキュメントデータに含まれる複数のページのうちの一部を指定させる設定アイコン等をさらに含んでもよい。また、［プリントタイプ］アイコン１１６が指定された場合において、出力条件指定領域１３２に含まれる設定アイコンは、図９（Ｂ）の例に限定されない。例えば、この場合の出力条件指定領域１３２は、両面印刷をするか否かを指定させる設定アイコン、画質を設定させる設定アイコン、レイアウト印刷を指定させる設定アイコン等をさらに含んでもよい。
【００７２】
次に、ＵＩプログラム６５は、［登録］アイコン１３３の指定を入力Ｉ／Ｆ５４を通じて受け付けたことに応じて（Ｓ２６：登録）、ＷＦ登録処理でデータ記憶領域６２Ｂに一時記憶させた情報を用いてＷＦ定義ファイルを生成し、生成したＷＦ定義ファイルをデータ記憶領域６２Ｂに記憶させて（Ｓ２８）、ＷＦ登録処理を終了する。ステップＳ２８の処理は、記憶処理の一例である。一方、ＵＩプログラム６５は、［キャンセル］アイコン１３４の指定を入力Ｉ／Ｆ５４を通じて受け付けたことに応じて（Ｓ２６：キャンセル）、ステップＳ２８の処理を実行することなく、ＷＦ登録処理を終了する。
【００７３】
図９（Ｂ）に示されるＷＦ登録画面の［登録］アイコン１３３が指定された場合、図４（Ａ）に示されるＷＦ定義ファイルが生成される。図４（Ａ）に示されるＷＦ定義ファイルは、＜ｉｎｐｕｔ＞タグ及び＜／ｉｎｐｕｔ＞タグで囲まれた要素として定義された入力ジョブと、＜ｏｕｔｐｕｔ＞タグ及び＜／ｏｕｔｐｕｔ＞タグで囲まれた要素として定義された出力ジョブとを含む。
【００７４】
＜ｉｎｐｕｔ＞タグは、ステップＳ２４で一時記憶させたクラス名“ｃｌａｓｓ＝ｄｏｗｎｌｏａｄ＿ｔｏ＿ｌｏｃａｌ”と、順番情報“ｏｒｄｅｒ＝１”とをタグ内に含む。＜ｉｎｐｕｔ＞タグに含まれるクラス名は第１識別子の一例であり、第１識別子で識別されるジョブプログラムは第１プログラムの一例である。また、図４（Ａ）に示される入力ジョブは、＜ｆｉｌｅ＞タグ及び＜／ｆｉｌｅ＞タグで囲まれた要素を含む。＜ｆｉｌｅ＞タグ及び＜／ｆｉｌｅ＞タグで囲まれた要素は、設定アイコン１３５を通じて指定された指定ファイルのデータＩＤ“／ｄｏｃｕｍｅｎｔ／見積書．ｄｏｃ”を含む。
【００７５】
＜ｏｕｔｐｕｔ＞タグは、ステップＳ２２で一時記憶させたクラス名“ｃｌａｓｓ＝ｐｒｉｎｔ”と、順番情報“ｏｒｄｅｒ＝２”とをタグ内に含む。＜ｏｕｔｐｕｔ＞タグに含まれるクラス名は第２識別子の一例であり、第２識別子で識別されるジョブプログラムは第２プログラムの一例である。また、図４（Ａ）に示される出力ジョブは、＜ｄｅｖｉｃｅ＞タグ及び＜／ｄｅｖｉｃｅ＞タグで囲まれた要素と、＜ｓｉｚｅ＞タグ及び＜／ｓｉｚｅ＞タグで囲まれた要素と、＜ｃｏｌｏｒ＞タグ及び＜／ｃｏｌｏｒ＞タグで囲まれた要素とを含む。＜ｄｅｖｉｃｅ＞タグ及び＜／ｄｅｖｉｃｅ＞タグで囲まれた要素は、指定装置の装置ＩＤ“ＭＦＰ−Ａ”を含む。＜ｓｉｚｅ＞タグ及び＜／ｓｉｚｅ＞タグで囲まれた要素は、設定アイコン１３６を通じて指定されたサイズ情報“Ａ４”を含む。＜ｃｏｌｏｒ＞タグ及び＜／ｃｏｌｏｒ＞タグで囲まれた要素は、設定アイコン１３７を通じて指定された色情報“ｍｏｎｏ”を含む。
【００７６】
すなわち、図４（Ａ）に示される＜ｉｎｐｕｔ＞タグ及び＜／ｉｎｐｕｔ＞タグで囲まれた要素は、ジョブプログラム“ｌｏａｄ＿ｆｒｏｍ＿ｌｏｃａｌ”を実行することによって、データＩＤ“／ｄｏｃｕｍｅｎｔ／見積書．ｄｏｃ”で識別されるデータをＷＦプログラム６６に入力させる入力ジョブを定義している。また、図４（Ａ）に示される＜ｏｕｔｐｕｔ＞タグ及び＜／ｏｕｔｐｕｔ＞タグで囲まれた要素は、ジョブプログラム“ｐｒｉｎｔ”を実行することによって、指定ファイル“見積書．ｄｏｃ”で示される画像をＡ４サイズの記録用紙にモノクロで記録する記録動作を、指定装置“ＭＦＰ−Ａ”に実行させる出力ジョブを定義している。
【００７７】
順番情報“ｏｒｄｅｒ”は、ＷＦ定義ファイルに定義された複数のジョブの実行順序を示すための情報である。すなわち、ＷＦ定義ファイルに定義された複数のジョブは、順番情報“ｏｒｄｅｒ”の昇順に実行される。入力ジョブの順番情報には、編集ジョブ及び出力ジョブの順番情報より小さい値が割り当てられる。また、編集ジョブの順番情報には、出力ジョブの順番情報より小さい値が割り当てられる。すなわち、入力ジョブ、編集ジョブ、出力ジョブの順に各ジョブが実行される。また、ワークフローが複数の入力ジョブを含む場合、先に指定された入力ジョブほど順番情報に小さい値が割り当てられてもよいし、順番情報を指定するユーザ操作を入力Ｉ／Ｆ５４を通じて受け付けてもよい。ワークフローが複数の編集ジョブ或いは複数の出力ジョブを含む場合も同様である。
【００７８】
なお、ＷＦ定義ファイルにおけるワークフローの定義方法が図４の例に限定されないことは、言うまでもない。例えば、ＷＦ定義ファイルは、明示の順番情報を含まなくてもよい。そして、ＷＦプログラム６６は、ＷＦ定義ファイルに定義されている複数のジョブを、当該ＷＦ定義ファイルにおける定義順、換言すれば、ＷＦ定義ファイルの先頭から順に実行してもよい。すなわち、ジョブを実行順に定義したＷＦ定義ファイルそのものが、順番情報の一例であると言える。
【００７９】
一方、ＵＩプログラム６５は、ＷＦタイプ選択画面の［スキャンタイプ］アイコン１１７の指定を入力Ｉ／Ｆ５４を通じて受け付けたことに応じて（Ｓ２２：スキャンタイプ）、［スキャンタイプ］アイコン１１７に対応するクラス名“ｓｃａｎ”を、データ記憶領域６２Ｂに一時記憶させる。また、ＵＩプログラム６５は、第２画面の一例である出力先選択画面をディスプレイ５３に表示させる（Ｓ２９）。出力先選択画面は、出力ジョブにおける画像データの出力先を、ユーザに選択させるための画面である。図１０（Ａ）は、出力先選択画面の一例である。そして、ＵＩプログラム６５は、出力先選択画面に対するユーザ操作を、入力Ｉ／Ｆ５４を通じて受け付ける（Ｓ３０）。ステップＳ２９の処理は第２表示処理の一例であり、ステップＳ３０の処理は受付処理及び第２受付処理の一例である。
【００８０】
図１０（Ａ）に示される出力先選択画面は、メイン画面に重ねられたポップアップ画面である。出力先選択画面は、複数の出力先アイコン１４１、１４２、１４３を含む。出力先アイコン１４１〜１４３は、出力ジョブにおける画像データの出力先に対応する出力先オブジェクトの一例である。本実施形態において、出力先アイコン１４１は写真データフォルダ“ｐｉｃｔｕｒｅ”に対応し、出力先アイコン１４２はサーバ８０、８１に対応し、出力先アイコン１４３は電子メールに対応する。また、出力先アイコン１４１はクラス名“ｓａｖｅ＿ｔｏ＿ｌｏｃａｌ”に対応し、出力先アイコン１４２はクラス名“ｕｐｌｏａｄ＿ｔｏ＿ｃｌｏｕｄ”に対応し、出力先アイコン１４３はクラス名“ｓｅｎｄ＿ｂｙ＿ｍａｉｌ”に対応する。出力先アイコン１４１〜１４３に対応付けられたクラス名は、第２候補識別子の一例である。
【００８１】
そして、ＵＩプログラム６５は、例えば出力先アイコン１４２の指定を入力Ｉ／Ｆ５４を通じて受け付けたことに応じて（Ｓ３０：Ｙｅｓ）、出力先アイコン１４２に対応するクラス名“ｕｐｌｏａｄ＿ｔｏ＿ｃｌｏｕｄ”を、データ記憶領域６２Ｂに一時記憶させる。次に、ＵＩプログラム６５は、ＷＦ登録画面をディスプレイ５３に表示させる（Ｓ２５）。ステップＳ２５以降の処理は前述の例と共通するが、ＷＦ登録画面を通じて指定可能な実行条件が前述の例と異なる。図１０（Ｂ）は、［スキャンタイプ］アイコン１１７及び出力先アイコン１４２が指定された場合のＷＦ登録画面の一例である。図１０（Ｂ）に示されるＷＦ登録画面において、入力条件指定領域１３１は設定アイコン１４６、１４７を含み、出力条件指定領域１３２は設定アイコン１４８を含む。
【００８２】
設定アイコン１４６は、読取動作で読み取る色を指定する指示に対応する。すなわち、ＵＩプログラム６５は、設定アイコン１４６の指定を入力Ｉ／Ｆ５４を通じて受け付けたことに応じて（Ｓ２６：設定）、読取動作で読み取る色（例えば、“カラー”、“モノクロ”）を指定する指定操作を、入力Ｉ／Ｆ５４を通じて受け付ける。そして、ＵＩプログラム６５は、指定された色を示す色情報を、入力ジョブの条件情報としてデータ記憶領域６２Ｂに一時記憶させる（Ｓ２７）。さらに、ＵＩプログラム６５は、指定された色（例えば、“カラー”）が入力条件指定領域１３１に記述されたＷＦ登録画面を、ディスプレイ５３に表示させる（Ｓ２５）。
【００８３】
設定アイコン１４７は、読取動作で生成する画像データの解像度を指定する指示に対応する。すなわち、ＵＩプログラム６５は、設定アイコン１４７の指定を入力Ｉ／Ｆ５４を通じて受け付けたことに応じて（Ｓ２６：設定）、画像データの解像度（例えば、“３００ｄｐｉ”、“６００ｄｐｉ”、“９００ｄｐｉ”）を指定する指定操作を、入力Ｉ／Ｆ５４を通じて受け付ける。そして、ＵＩプログラム６５は、指定された解像度を示す解像度情報を、入力ジョブの条件情報としてデータ記憶領域６２Ｂに一時記憶させる（Ｓ２７）。さらに、ＵＩプログラム６５は、指定された解像度（例えば、“６００ｄｐｉ”）が入力条件指定領域１３１に記述されたＷＦ登録画面を、ディスプレイ５３に表示させる（Ｓ２５）。
【００８４】
設定アイコン１４７は、出力ジョブで保存される画像データのファイルパスを指定する指示に対応する。すなわち、ＵＩプログラム６５は、設定アイコン１４７の指定を入力Ｉ／Ｆ５４を通じて受け付けたことに応じて（Ｓ２６：設定）、画像データの出力先を指定する指定操作を、入力Ｉ／Ｆ５４を通じて受け付ける。そして、ＵＩプログラム６５は、指定された出力先を示す出力先情報を、出力ジョブの条件情報としてデータ記憶領域６２Ｂに一時記憶させる（Ｓ２７）。さらに、ＵＩプログラム６５は、指定された出力先（例えば、“ｗｗｗ．ｓｅｒｖｅｒ−Ｂ．ｃｏｍ／ｓｈａｒｅ／＄ＤＡＴＥ．ｊｐｅｇ”）が出力条件指定領域１３２に記述されたＷＦ登録画面を、ディスプレイ５３に表示させる（Ｓ２５）。なお、図１０（Ｂ）の例における出力先情報は、サーバ８１を識別するサーバＩＤ“ｗｗｗ．ｓｅｒｖｅｒ−Ｂ．ｃｏｍ”と、サーバ８１内における画像データの保存先を示すパス情報“／ｓｈａｒｅ／＄ＤＡＴＥ．ｊｐｅｇ”とを含む。また、“＄ＤＡＴＥ”は、“＄ＤＡＴＥ”の部分を当該出力ジョブの実行日の日付に置き換えることを指示する制御記号である。
【００８５】
また、［スキャンタイプ］アイコン１１７が指定された場合において、入力条件指定領域１３１に含められる設定アイコンは、図１０（Ｂ）の例に限定されない。例えば、この場合の入力条件指定領域１３１は、読取動作で生成する画像データのファイル形式を指定させる設定アイコン等をさらに含んでもよい。また、出力先アイコン１４２が指定された場合において、出力条件指定領域１３２に含まれる設定アイコンは、図１０（Ｂ）の例に限定されない。例えば、この場合の出力条件指定領域１３２は、サーバ８１にアクセスするためのアカウント情報を指定させる設定アイコン等をさらに含んでもよい。
【００８６】
さらに図示は省略するが、ＵＩプログラム６５は、ワークフローに含める編集ジョブを指定する指定操作を、入力Ｉ／Ｆ５４を通じて受け付けてもよい。本実施形態では、［スキャンタイプ］アイコン１１７が指定されてから、図１０（Ｂ）に示される［登録］アイコン１３３が指定されるまでの間に、クラス名“ｅｄｇｅ＿ｅｎｈａｎｃｅｍｅｎｔ”及びクラス名“ｔｅｘｔ＿ｅｘｔｒａｃｔｉｏｎ”で識別される編集ジョブが指定されものとして、以下の説明を継続する。
【００８７】
図１０（Ｂ）に示されるＷＦ登録画面の［登録］アイコン１３３が指定された場合、図４（Ｂ）に示されるＷＦ定義ファイルが生成される。図４（Ｂ）に示されるＷＦ定義ファイルは、＜ｉｎｐｕｔ＞タグ及び＜／ｉｎｐｕｔ＞タグで囲まれた要素として定義された入力ジョブと、＜ｆｉｌｔｅｒ  ／＞タグで定義された２つの編集ジョブと、＜ｏｕｔｐｕｔ＞タグ及び＜／ｏｕｔｐｕｔ＞タグで囲まれた要素として定義された出力ジョブとを含む。
【００８８】
＜ｉｎｐｕｔ＞タグは、ステップＳ２２で一時記憶させたクラス名“ｃｌａｓｓ＝ｓｃａｎ”と、順番情報“ｏｒｄｅｒ＝１”とをタグ内に含む。また、図４（Ｂ）に示される入力ジョブは、＜ｄｅｖｉｃｅ＞タグ及び＜／ｄｅｖｉｃｅ＞タグで囲まれた要素と、＜ｃｏｌｏｒ＞タグ及び＜／ｃｏｌｏｒ＞タグで囲まれた要素と、＜ｒｅｓｏｌｕｔｉｏｎ＞タグ及び＜／ｒｅｓｏｌｕｔｉｏｎ＞タグで囲まれた要素とを含む。＜ｄｅｖｉｃｅ＞タグ及び＜／ｄｅｖｉｃｅ＞タグで囲まれた要素は、指定装置の装置ＩＤ“ＭＦＰ−Ａ”を含む。＜ｃｏｌｏｒ＞タグ及び＜ｃｏｌｏｒ＞タグで囲まれた要素は、設定アイコン１４６を通じて指定された色情報“ｃｏｌｏｒ”を含む。＜ｒｅｓｏｌｕｔｉｏｎ＞タグ及び＜／ｒｅｓｏｌｕｔｉｏｎ＞タグで囲まれた要素は、設定アイコン１４７を通じて指定された解像度情報“６００ｄｐｉ”を含む。
【００８９】
２つの＜ｆｉｌｔｅｒ＞タグのうち、上側の＜ｆｉｌｔｅｒ＞タグは、クラス名“ｃｌａｓｓ＝ｅｄｇｅ＿ｅｎｈａｎｃｅｍｅｎｔ”と、順番情報“ｏｒｄｅｒ＝２”とをタグ内に含む。一方、下側の＜ｆｉｌｔｅｒ＞タグは、クラス名“ｃｌａｓｓ＝ｔｅｘｔ＿ｅｘｔｒａｃｔｉｏｎ”と、順番情報“ｏｒｄｅｒ＝３”とをタグ内に含む。
【００９０】
＜ｏｕｔｐｕｔ＞タグは、ステップＳ３０で一時記憶させたクラス名“ｃｌａｓｓ＝ｕｐｌｏａｄ＿ｔｏ＿ｃｌｏｕｄ”と、順番情報“ｏｒｄｅｒ＝４”とをタグ内に含む。また、図４（Ｂ）に示される出力ジョブは、＜ｄｅｖｉｃｅ＞タグ及び＜／ｄｅｖｉｃｅ＞タグで囲まれた要素と、＜ｆｉｌｅ＞タグ及び＜／ｆｉｌｅ＞タグで囲まれた要素と、＜ａｃｃｏｕｎｔ＞タグ及び＜／ａｃｃｏｕｎｔ＞タグで囲まれた要素とを含む。＜ｄｅｖｉｃｅ＞タグ及び＜／ｄｅｖｉｃｅ＞タグで囲まれた要素は、設定アイコン１４８を通じて指定されたサーバＩＤ“ｗｗｗ．ｓｅｒｖｅｒ−Ｂ．ｃｏｍ”を含む。＜ｆｉｌｅ＞タグ及び＜／ｆｉｌｅ＞タグで囲まれた要素は、設定アイコン１４８を通じて指定されたパス情報“／ｓｈａｒｅ／＄ＤＡＴＥ．ｊｐｅｇ”を含む。＜ａｃｃｏｕｎｔ＞タグ及び＜／ａｃｃｏｕｎｔ＞タグで囲まれた要素は、不図示の設定アイコンを通じて指定されたアカウント情報を含む。ここでのアカウント情報は、ＩＤ“ｕｓｅｒＡ”及びＰＡＳＳ“１２３４”の組み合わせである。
【００９１】
すなわち、図４（Ｂ）に示される＜ｉｎｐｕｔ＞タグ及び＜／ｉｎｐｕｔ＞タグで囲まれた要素は、ジョブプログラム“ｓｃａｎ”を実行することによって、解像度６００ｄｐｉのカラー画像を示す画像データを生成する読取動作を、指定装置“ＭＦＰ−Ａ”に実行させる入力ジョブを定義している。また、図４（Ｂ）に示される＜ｆｉｌｅｔｅｒ＞タグは、入力ジョブによって入力された画像データに、ジョブプログラム“ｅｄｇｅ＿ｅｎｈａｎｃｅｍｅｎｔ”、“ｔｅｘｔ＿ｅｘｔｒａｃｔｉｏｎ”をこの順に実行することによって、エッジを強調し、文字列を抽出する編集ジョブを定義している。さらに、図４（Ｂ）に示される＜ｏｕｔｐｕｔ＞タグ及び＜／ｏｕｔｐｕｔ＞タグで囲まれた要素は、ジョブプログラム“ｕｐｌｏａｄ＿ｔｏ＿ｃｌｏｕｄ”を実行することによって、編集ジョブが実行された後の指定ファイルを、サーバ８１のフォルダ“ｓｈａｒｅ”に、当該出力ジョブの実行日の日付と“．ｊｐｅｇ”とを組み合わせたファイル名のファイルとして記憶させる出力ジョブを定義している。
【００９２】
次に図５に戻って、ＵＩプログラム６５は、例えば図１１（Ａ）に示されるように、ＷＦアイコン１５１、１５２をさらに含むメイン画面をディスプレイ５３に表示させる（Ｓ１１）。ＷＦアイコン１５１は図４（Ａ）に示されるＷＦ定義ファイルに対応し、ＷＦアイコン１５２は図４（Ｂ）に示されるＷＦ定義ファイルに対応する。すなわち、メイン画面には、データ記憶領域６２Ｂに記憶されているＷＦ定義ファイルそれぞれに対応するＷＦアイコンが表示される。すなわち、図１１（Ａ）は、ＷＦ登録処理が２回実行されて、図４に示される２つのＷＦ定義ファイルがデータ記憶領域６２Ｂに記憶された後のメイン画面を示す。
【００９３】
次に、ＵＩプログラム６５は、例えばＷＦアイコン１５１の指定を入力Ｉ／Ｆ５４を通じて受け付けたことに応じて（Ｓ１２：ＷＦアイコン）、ＷＦ実行画面をディスプレイ５３に表示させる（Ｓ１５）。そして、ＵＩプログラム６５は、ＷＦ実行画面に対するユーザ操作を、入力Ｉ／Ｆ５４を通じて受け付ける（Ｓ１６）。ＷＦアイコン１５１、１５２のうちの１つの指定を受け付けるステップＳ１２の処理は、指定受付処理の一例である。
【００９４】
図１１（Ｂ）は、ＷＦアイコン１５１が指定された場合のＷＦ実行画面の一例である。図１１（Ｂ）に示されるＷＦ実行画面は、入力条件表示領域１６１と、出力条件表示領域１６２と、［実行］アイコン１６３と、［キャンセル］アイコン１６４とを含む。［実行］アイコン１６３は、指定されたＷＦ定義ファイルに定義されたワークフローの実行指示に対応する。［キャンセル］アイコン１６４は、ワークフローを実行せずにメイン画面を表示させる指示に対応する。
【００９５】
入力条件表示領域１６１は、ＷＦアイコン１５１に対応するＷＦ定義ファイルのうち、＜ｉｎｐｕｔ＞タグ及び＜／ｉｎｐｕｔ＞タグで囲まれた要素として定義された入力ジョブの内容が表示される領域である。出力条件表示領域１６２は、ＷＦアイコン１５１に対応するＷＦ定義ファイルのうち、＜ｏｕｔｐｕｔ＞タグ及び＜／ｏｕｔｐｕｔ＞タグで囲まれた要素として定義された出力ジョブの内容が表示される領域である。入力条件表示領域１６１及び出力条件表示領域１６２の表示内容は、図９（Ｂ）に示される入力条件指定領域１３１及び出力条件指定領域１３２とほぼ同じである。但し、入力条件表示領域１６１及び出力条件表示領域１６２は、実行条件の変更を受け付けない点において、入力条件指定領域１３１及び出力条件指定領域１３２と相違する。
【００９６】
そして、ＵＩプログラム６５は、［実行］アイコン１６３の指定を入力Ｉ／Ｆ５４を通じて受け付けたことに応じて（Ｓ１６：実行）、ＷＦ実行処理を実行する（Ｓ１７）。一方、ＵＩプログラム６５は、［キャンセル］アイコン１６４の指定を入力Ｉ／Ｆを通じて受け付けたことに応じて（Ｓ１６：キャンセル）、ＷＦ実行処理を実行することなく、ステップＳ１１以降の処理を実行する。
【００９７】
ＷＦ実行処理は、指定されたＷＦ定義ファイルに定義されたワークフローを、ＷＦプログラム６６に実行させる処理である。すなわち、ＵＩプログラム６５は、指定されたＷＦアイコン１５１に対応するＷＦ定義ファイルデータＩＤを起動引数として、ＷＦプログラム６６を起動させる。図７を参照して、ＷＦ実行処理の詳細を説明する。
【００９８】
ＷＦプログラム６６は、ＵＩプログラム６５によって起動されたことに応じて、起動引数に指定されたデータＩＤで識別されるＷＦ定義ファイルを、データ記憶領域６２Ｂから読み出す（Ｓ４１）。すなわち、本実施形態では、図４（Ａ）に示されるＷＦ定義ファイルが読み出される。ステップＳ４１の処理は、取得処理の一例である。
【００９９】
次に、ＷＦプログラム６６は、ステップＳ４１で取得したＷＦ定義ファイルからクラス名を読み出す。そして、ＷＦプログラム６６は、読み出したクラス名で識別されるジョブプログラムに定義された各関数を、メモリ６２に展開する（Ｓ４２）。より詳細には、ＷＦプログラム６６は、ジョブプログラム“ｄｏｗｎｌｏａｄ＿ｔｏ＿ｌｏｃａ”に定義されたＰｒｅ関数と、ジョブプログラム“ｐｒｉｎｔ”に定義されたＰｒｅ関数とを、Ｐｒｅ関数を展開するために予め用意されたＰｒｅ配列に、順番情報の昇順に展開する。各ジョブプログラムのＰｒｅ関数を、対応する順番情報をインデックスとしてＰｒｅ関数に展開すればよい。同様に、ＷＦプログラム６６は、各ジョブプログラムのＤｏ関数をＤｏ配列に展開し、各ジョブプログラムのＰｏｓｔ関数をＰｏｓｔ配列に展開する。ステップＳ４２の処理は、展開処理の一例である。
【０１００】
次に、ＷＦプログラム６６は、ＷＦ定義ファイルに定義された全てのジョブプログラムに、Ｐｒｅ関数及びＤｏ関数の両方が定義されているか否かを判断する（Ｓ４３）。より詳細には、ＷＦプログラム６６は、ステップＳ４２で関数が展開されたＰｒｅ配列及びＤｏ配列を参照すればよい。ステップＳ４３の処理は、全てのジョブに前動作及び本動作の両方が定義されているか否かを判断する第２判断処理の一例である。
【０１０１】
次に、ＷＦプログラム６６は、全てのジョブプログラムにＰｒｅ関数及びＤｏ関数の両方が定義されていると判断したことに応じて（Ｓ４３：Ｙｅｓ）、ＷＦ定義ファイルに定義された全てのジョブプログラムのＰｒｅ関数を、順番情報に示される実行順で順番に起動する（Ｓ４４）。すなわち、ＷＦプログラム６６は、ステップＳ４２でＰｒｅ配列に展開された複数のＰｒｅ関数を、インデックスの昇順に起動する。ステップＳ４４の処理は、複数のジョブそれぞれに定義された前動作を順番に実行する前処理の一例である。
【０１０２】
本実施形態に係るＷＦプログラム６６は、ジョブプログラム“ｌｏａｄ＿ｆｒｏｍ＿ｌｏｃａｌ”のＰｒｅ関数を実行することによって、指定ファイル“／ｄｏｃｕｍｅｎｔ／見積書．ｄｏｃ”が存在するか否か、指定ファイルの読み取り権限が情報処理端末５０に付与されているか否かを確認する。また、本実施形態に係るＷＦプログラム６６は、ジョブプログラム“ｐｒｉｎｔ”のＰｒｅ関数を実行することによって、指定装置である複合機１０Ａと通信Ｉ／Ｆ５５を通じて通信可能か否か、記録動作に必要な消耗品が複合機１０Ａに残っているか否か、複合機１０Ａが他の記録動作を実行中か否か、ＷＦ定義ファイルに定義された実行条件で複合機１０Ａが記録動作を実行可能か否かを確認する。
【０１０３】
次に、ＷＦプログラム６６は、ステップＳ４４で実行した全てのＰｒｅ関数が正常終了したか否かを判断する（Ｓ４５）。「Ｐｒｅ関数が正常終了する」とは、例えば、Ｐｒｅ関数を実行した結果、当該Ｐｒｅ関数に対応するＤｏ関数が実行できる状態であることが確認されたことを指す。換言すれば、「Ｐｒｅ関数が正常終了する」とは、例えば、Ｐｒｅ関数で確認する全ての確認項目について、Ｄｏ関数の実行を妨げないことが確認されたことを指す。ステップＳ４５の処理は、全てのジョブに定義された前動作が前処理で正常終了したか否かを判断する第１判断処理の一例である。
【０１０４】
すなわち、ジョブプログラム“ｌｏａｄ＿ｆｒｏｍ＿ｌｏｃａｌ”のＰｒｅ関数が正常終了するとは、指定ファイル“／ｄｏｃｕｍｅｎｔ／見積書．ｄｏｃ”が存在することが確認され、且つ指定ファイルの読み取り権限が情報処理端末５０に付与されていることが確認されたことを指す。また、ジョブプログラム“ｐｒｉｎｔ”のＰｒｅ関数が正常終了するとは、複合機１０Ａと通信Ｉ／Ｆ５５を通じて通信可能だと確認され、記録動作に必要な消耗品が複合機１０Ａに残っていると確認され、複合機１０Ａが他の記録動作を実行中でないと確認され、且つＷＦ定義ファイルに定義された実行条件で複合機１０Ａが記録動作を実行可能だと確認されたことを指す。
【０１０５】
次に、ＷＦプログラム６６は、全てのＰｒｅ関数が正常終了したと判断したことに応じて（Ｓ４５：Ｙｅｓ）、ＷＦ定義ファイルに定義された全てのジョブプログラムのＤｏ関数を、順番情報に示される実行順で順番に起動する（Ｓ４６）。すなわち、ＷＦプログラム６６は、ステップＳ４２でＤｏ配列に展開された複数のＤｏ関数を、インデックスの昇順に起動する。ステップＳ４６の処理は、複数のジョブそれぞれに定義された本動作を順番に実行する本処理の一例である。
【０１０６】
本実施形態に係るＷＦプログラム６６は、ジョブプログラム“ｌｏａｄ＿ｆｒｏｍ＿ｌｏｃａｌ”のＤｏ関数を実行することによって、指定ファイル“／ｄｏｃｕｍｅｎｔ／見積書．ｄｏｃ”をドキュメントデータフォルダから読み出し、読み出した指定ファイルを画像形式に変換する。また、本実施形態に係るＷＦプログラム６６は、ジョブプログラム“ｐｒｉｎｔ”のＤｏ関数を実行することによって、通信Ｉ／Ｆ５５を通じて複合機１０Ａにプリント指示情報を送信する。ここで送信されるプリント指示情報は、画像形式に変換された指定ファイル“見積書．ｊｐｅｇ”と、サイズ情報“Ａ４”及び色情報“モノクロ”を含む条件情報とを含む。
【０１０７】
一方、図示は省略するが、複合機１０Ａの装置プログラム３５は、通信Ｉ／Ｆ２５を通じて情報処理端末５０からプリント指示情報を受信する。そして、装置プログラム３５は、受信したプリント指示情報に従った記録動作をプリンタ１１に実行させる。すなわち、プリンタ１１は、指定ファイル“見積書．ｊｐｅｇ”で示される画像を、Ａ４の記録用紙にモノクロで記録する。
【０１０８】
次に、ＷＦプログラム６６は、ＷＦ定義ファイルに定義された全てのジョブプログラムのＰｏｓｔ関数を、順番情報に示される実行順で順番に起動する（Ｓ４７）。すなわち、ＷＦプログラム６６は、ステップＳ４２でＰｏｓｔ配列に展開された複数のＰｏｓｔ関数を、インデックスの昇順に起動する。ステップＳ４７の処理は、複数のジョブそれぞれに定義された後動作を順番に実行する後処理の一例である。
【０１０９】
本実施形態に係るＷＦプログラム６６は、ジョブプログラム“ｌｏａｄ＿ｆｒｏｍ＿ｌｏｃａｌ”のＰｏｓｔ関数を実行することによって、Ｐｒｅ関数及びＤｏ関数の実行時に生成された一時ファイルを削除する。また、本実施形態に係るＷＦプログラム６６は、ジョブプログラム“ｐｒｉｎｔ”のＰｏｓｔ関数を実行することによって、複合機１０Ａとの通信コネクションを切断し、Ｐｒｅ関数及びＤｏ関数の実行時に生成された一時ファイルを削除する。
【０１１０】
一方、ＷＦプログラム６６は、少なくとも１つのジョブプログラムにＰｒｅ関数及びＤｏ関数の少なくとも一方が定義されていないと判断したことに応じて（Ｓ４３：Ｎｏ）、ステップＳ４４〜Ｓ４７の処理を実行することなく、エラー画面をディスプレイ５３に表示させる（Ｓ４８）。ここで表示されるエラー画面は、例えば、「不正なジョブがＷＦ定義ファイルに含まれています。クラス名＝“＊＊＊”」等のメッセージを含んでもよい。なお、前述のメッセージの“＊＊＊”には、Ｐｒｅ関数及びＤｏ関数の少なくとも一方が含まれていないジョブプログラムのクラス名が挿入される。
【０１１１】
また、ＷＦプログラム６６は、少なくとも１つのＰｒｅ関数が異常終了したと判断したことに応じて（Ｓ４５：Ｎｏ）、ステップＳ４６、Ｓ４７の処理を実行することなく、エラー画面をディスプレイ５３に表示させる（Ｓ４８）。ここで表示されるエラー画面には、例えば、異常終了したＰｒｅ関数を含むジョブプログラムのクラス名、Ｄｏ関数が実行できないと判断した理由等が一覧表示される。なお、「Ｐｒｅ関数が異常終了する」とは、例えば、Ｐｒｅ関数を実行した結果、当該Ｐｒｅ関数に対応するＤｏ関数が実行できない状態であることが確認されたことを指す。換言すれば、「Ｐｒｅ関数が異常終了する」とは、例えば、Ｐｒｅ関数で確認する確認項目の少なくとも１つについて、Ｄｏ関数の実行を妨げることが確認されたことを指す。
【０１１２】
すなわち、ジョブプログラム“ｌｏａｄ＿ｆｒｏｍ＿ｌｏｃａｌ”のＰｒｅ関数が異常終了するとは、指定ファイル“／ｄｏｃｕｍｅｎｔ／見積書．ｄｏｃ”が存在しないことが確認されたか、或いは指定ファイルの読み取り権限が情報処理端末５０に付与されていないことが確認されたことを指す。また、ジョブプログラム“ｐｒｉｎｔ”のＰｒｅ関数が異常終了するとは、複合機１０Ａと通信Ｉ／Ｆ５５を通じて通信不能だと確認されるか、記録動作に必要な消耗品が複合機１０Ａに残っていないと確認されるか、複合機１０Ａが他の記録動作を実行中であると確認されるか、或いはＷＦ定義ファイルに定義された実行条件で複合機１０Ａが記録動作を実行不能だと確認されたことを指す。
【０１１３】
例えば、ジョブプログラム“ｐｒｉｎｔ”のＰｒｅ関数で複合機１０Ａと通信不能だと確認された場合のエラー画面は、「指定装置に接続できません。クラス名＝“ｐｒｉｎｔ”」等のメッセージを含んでもよい。ステップＳ４８の処理は、ＷＦ定義ファイルに定義されたジョブが実行できないことを報知部に報知させる報知処理の一例である。すなわち、エラー画面を表示するディスプレイ５３は、報知部の一例である。但し、報知部の具体例はディスプレイ５３に限定されず、ガイド音声を出力する不図示のスピーカ等であってもよい。
【０１１４】
［本実施形態の作用効果］
【０１１５】
図４（Ａ）に示されるＷＦ定義ファイルに定義されたワークフローにおいて、例えば、各ジョブプログラムに定義された関数が順番に実行されるとすると、ジョブプログラム“ｌｏａｄ＿ｆｒｏｍ＿ｌｏｃａｌ”のＰｒｅ関数、Ｄｏ関数、Ｐｏｓｔ関数が実行された後に、ジョブプログラム“ｐｒｉｎｔ”のＰｒｅ関数が異常終了する。この場合、情報処理端末５０のユーザは、ワークフローが最後まで実行されないにも拘わらず、ジョブプログラム“ｌｏａｄ＿ｆｒｏｍ＿ｌｏｃａｌ”の各関数が実行されている時間を無駄にすることになる。
【０１１６】
そこで、上記の実施形態によれば、ワークフローを構成する複数のジョブプログラムそれぞれに定義されたＰｒｅ関数のうちの１つが異常終了したことに応じて、Ｄｏ関数が実行されずに、ワークフローが実行できないことがユーザに報知される。その結果、ワークフローが異常終了することを、情報処理端末５０のユーザに早期に報知できる。なお、上記の実施形態では、全てのＰｒｅ関数を実行した後にステップＳ４５の判断がなされる例を説明したが、本発明はこれに限定されない。例えば、Ｐｒｅ関数の１つが異常終了した時点でステップＳ４４の処理を中止し、ステップＳ４８の処理を実行してもよい。
【０１１７】
また、上記の実施形態では、Ｐｒｅ関数で確認する全ての確認項目について、Ｄｏ関数の実行を妨げないことが確認されたことによって、Ｐｒｅ関数が正常終了したと判断する例を説明したが、本発明はこれに限定されない。例えば、Ｐｒｅ関数で確認する複数の確認項目のうち、ユーザの作業を伴わずに解消可能な確認項目についてはステップＳ４５の判断対象から除外してもよい。「ユーザの作業を伴わずに解消可能」とは、例えば、時間の経過と共に自然と解消されること等を指す。
【０１１８】
一例として、ジョブプログラム“ｓｃａｎ”のＰｒｅ関数において、指定装置が他の読取動作を実行中か否かは、ステップＳ４５で判断の対象から除外してもよい。指定装置が実行中の読取動作が終了すれば待てば、ワークフローに定義された読取動作を当該指定装置に実行させることができるからである。他の例として、ジョブプログラム“ｐｒｉｎｔ”のＰｒｅ関数において、指定装置が他の記録動作を実行中か否かは、ステップＳ４５で判断の対象から除外してもよい。指定装置が実行中の読取動作が終了すれば、ワークフローに定義された記録動作を当該指定装置に実行させることができるからである。
【０１１９】
また、上記の実施形態によれば、ワークフローを構成する全てのジョブプログラムに、Ｐｒｅ関数及びＤｏ関数の両方が定義されているかが事前に確認される。これにより、Ｐｒｅ関数或いはＤｏ関数が定義されていないジョブプログラムが存在する場合に、ワークフローが異常終了することを、情報処理端末５０のユーザに早期に報知できる。この処理は、例えば、ジョブプログラムがサードパーティによって提供される場合に、特に有利な効果が期待できる。また、ステップＳ４３において、ワークフローを構成する全てのジョブプログラムにＰｏｓｔが定義されているか否かをさらに判断してもよい。
【０１２０】
また、上記の実施形態によれば、指定装置に実行させるジョブをＷＦタイプ選択画面を通じて指定させ、その結果に応じて取得元選択画面及び出力先選択画面の一方を表示させる。これにより、複数の入力ジョブ及び複数の出力ジョブの選択肢のうちから、比較的シンプルなワークフローを簡単な操作でユーザに生成させることができる。但し、ＷＦ定義ファイルを生成するためのインタフェースは、上記の実施形態の例に限定されない。例えば、図４に示されるＸＭＬをテキストエディタに直接記述して、ＷＦプログラム６６にインポートしてもよい。
【０１２１】
このように、ＷＦ定義ファイルで定義されるワークフローは、ジョブの組み合わせの自由度高く且つ組み合わせが容易である。そして、このようなワークフローに含まれる全てのジョブについて、ＷＦプログラム６６は、Ｐｒｅ関数等の必要な関数が定義されているか否かの確認と、Ｐｒｅ関数の実行とを、Ｄｏ関数の実行に先立って行っている。すなわち、自由度の高さ及び容易さの確保と共に、実行時の無駄時間の排除も実現している。
【０１２２】
また、上記の実施形態によれば、メイン画面に含まれる複数のＷＦアイコン１５１、１５２のうち、ユーザによって指定されたＷＦアイコン１５１に対応するワークフローが実行される。これにより、ユーザが所望するワークフローを情報処理端末５０に実行させることができる。但し、ＷＦプログラム６６を起動するのは、ＵＩプログラム６５に限定されない。例えば、情報処理端末５０にインストールされた不図示のスケジュールプログラムは、ユーザによって指定されたタイミングで、ユーザによって指定されたＷＦファイルを指定して、ＷＦプログラム６６を起動してもよい。
【０１２３】
また、上記の実施形態の複合機１０及び情報処理端末５０において、メモリ３２、６２のプログラム記憶領域３２Ａ、６２Ａに記憶された各種プログラムがＣＰＵ３１、６１によって実行されることによって、本発明の制御部が実行する各処理が実現される例を説明した。しかしながら、制御部の構成はこれに限定されず、その一部又は全部を集積回路（ＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔの略）とも言う。）等のハードウェアで実現してもよい。
【０１２４】
さらに、本発明は、複合機１０及び情報処理端末５０として実現できるだけでなく、複合機１０及び情報処理端末５０に処理を実行させるプログラムとして実現してもよい。そして、当該プログラムは、ｎｏｎ−ｔｒａｎｓｉｔｏｒｙな記録媒体に記録されて提供されてもよい。ｎｏｎ−ｔｒａｎｓｉｔｏｒｙな記録媒体は、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ等の他、通信ネットワークを通じて複合機１０及び情報処理端末５０に接続可能なサーバに搭載された記憶部を含んでもよい。そして、サーバの記憶部に記憶されたプログラムは、当該プログラムを示す情報或いは信号として、インターネット等の通信ネットワークを通じて配信されてもよい。
【符号の説明】
【０１２５】
１０・・・複合機
１１・・・プリンタ
１２・・・スキャナ
２３，５３・・・ディスプレイ
２４，５４・・・入力Ｉ／Ｆ
２５，５５・・・通信Ｉ／Ｆ
３１，６１・・・ＣＰＵ
３２，６２・・・メモリ
３５・・・装置プログラム
６５・・・ＵＩプログラム
６６・・・ＷＦプログラム
５０・・・情報処理端末
【図１】
0006558240.tif 000002
【図２】
0006558240.tif 000003
【図３】
0006558240.tif 000004
【図４】
0006558240.tif 000005
【図５】
0006558240.tif 000006
【図６】
0006558240.tif 000007
【図７】
0006558240.tif 000008
【図８】
0006558240.tif 000009
【図９】
0006558240.tif 000010
【図１０】
0006558240.tif 000011
【図１１】
0006558240.tif 000012