(57)【要約】【課題】一連の実行指令を含む処理が途中で不具合等により停止した後に再び実行、もしくは継続実行する場合に不適切な処理を実行してしまうことを抑制することが可能な情報処理装置及びプログラムを提供する。【解決手段】情報処理装置は、一連の実行指令を含んで構成された実行指示に応じた処理を実行する実行手段と、実行手段による処理の実行が途中で停止した後に再び実行する場合に、一連の実行指令のうち予め定められた第１の実行指令を実行せずに、一連の実行指令のうち第１の実行指令以外の第２の実行指令から再実行するよう実行手段を制御する実行制御手段とを備える。【選択図】図５
2020107954.tif 000002
【特許請求の範囲】
【請求項１】
一連の実行指令を含んで構成された実行指示に応じた一連の処理を実行する実行手段と、
前記実行手段による前記一連の処理の実行が途中で停止した後に再び実行する場合に、前記一連の実行指令のうち予め定められた第１の実行指令に応じた第１の処理を実行せずに、前記一連の実行指令のうち前記第１の実行指令以外の第２の実行指令に応じた第２の処理から再実行するよう前記実行手段を制御する実行制御手段と、
を備える、情報処理装置。
【請求項２】
前記第１の実行指令を識別する識別情報と前記実行手段が実行した前記実行指令の実行の結果を示す結果情報とを記録する記録手段をさらに備え、
前記実行制御手段は、前記記録手段に記録された前記識別情報及び前記結果情報に応じて前記実行手段を制御する、
請求項１に記載の情報処理装置。
【請求項３】
前記記録手段は、前記結果情報に応じて前記一連の実行指令に含まれる実行指令ごとに、再び実行するか否かを示す動作情報を記録し、
前記実行制御手段は、前記結果情報に対応する前記動作情報に応じて、前記実行手段を制御する、
請求項２に記載の情報処理装置。
【請求項４】
前記実行制御手段は、前記一連の実行指令における前記第１の実行指令の直前の第３の実行指令に応じた第３の処理の実行結果に応じて、前記第１の処理を再び実行するか否かを特定する、
請求項１から３のいずれか１項に記載の情報処理装置。
【請求項５】
前記第１の処理に係る第１の動作情報と、前記第３の処理に係る第２の動作情報とを互いに関連付ける関連付け手段をさらに備える、
請求項５に記載の情報処理装置。
【請求項６】
コンピュータを、
一連の実行指令を含んで構成された実行指示に応じた処理を実行する実行手段と、
前記実行手段による前記処理の実行が途中で停止した後に再び実行する場合に、前記一連の実行指令のうち予め定められた第１の実行指令を実行せずに、前記一連の実行指令のうち前記第１の実行指令以外の第２の実行指令から再実行するよう前記実行手段を制御する実行制御手段として、
機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及びプログラムに関する。
【背景技術】
【０００２】
近年、複数のジョブを連携させてジョブ連携として実行する際に、先行するジョブが実行した結果に応じて、該ジョブに後続するジョブの実行を制御する制御装置が提案されている（例えば、特許文献１参照。）。
【０００３】
特許文献１に記載された制御装置は、後続ジョブを実行させる実行条件を設定する制御画面を表示する表示工程と、前記制御装置で利用される記録装置で、先行する先行ジョブを実行させた実行結果を保持する保持工程と、前記記録装置で保持された前記実行結果を取得する取得工程と、前記取得工程において取得された前記実行結果および前記制御画面を介して設定された実行条件に応じて、前記先行ジョブに後続する後続ジョブの実行を制御する制御工程と、を有する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第５８４０２６６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
複数の実行指令を連携させて構成する処理を実行する際に、処理が途中で不具合等により停止した後に再び実行、もしくは継続実行する場合、特定の処理から一律に再開するように設定されていると、例えば、実行済みの処理を重複して実行してしまう虞や、再び実行されることが好ましくない処理等のような不適切な処理を実行してしまう虞がある。
【０００６】
本発明の課題は、一連の実行指令を含む処理が途中で不具合等により停止した後に再び実行、もしくは継続実行する場合に不適切な処理を実行してしまうことを抑制することが可能な情報処理装置及びプログラムを提供することにある。
【課題を解決するための手段】
【０００７】
［１］一連の実行指令を含んで構成された実行指示に応じた一連の処理を実行する実行手段と、
前記実行手段による前記一連の処理の実行が途中で停止した後に再び実行する場合に、前記一連の実行指令のうち予め定められた第１の実行指令に応じた第１の処理を実行せずに、前記一連の実行指令のうち前記第１の実行指令以外の第２の実行指令に応じた第２の処理から再実行するよう前記実行手段を制御する実行制御手段と、
を備える、情報処理装置。
［２］前記第１の実行指令を識別する識別情報と前記実行手段が実行した前記実行指令の実行の結果を示す結果情報とを記録する記録手段をさらに備え、
前記実行制御手段は、前記記録手段に記録された前記識別情報及び前記結果情報に応じて前記実行手段を制御する、
前記［１］に記載の情報処理装置。
［３］前記記録手段は、前記結果情報に応じて前記一連の実行指令に含まれる実行指令ごとに、再び実行するか否かを示す動作情報を記録し、
前記実行制御手段は、前記結果情報に対応する前記動作情報に応じて、前記実行手段を制御する、
前記［２］に記載の情報処理装置。
［４］前記実行制御手段は、前記一連の実行指令における前記第１の実行指令の直前の第３の実行指令に応じた第３の処理の実行結果に応じて、前記第１の処理を再び実行するか否かを特定する、
前記［１］から［３］のいずれか１つに記載の情報処理装置。
［５］前記第１の処理に係る第１の動作情報と、前記第３の処理に係る第２の動作情報とを互いに関連付ける関連付け手段をさらに備える、
前記［５］に記載の情報処理装置。
［６］コンピュータを、
一連の実行指令を含んで構成された実行指示に応じた処理を実行する実行手段と、
前記実行手段による前記処理の実行が途中で停止した後に再び実行する場合に、前記一連の実行指令のうち予め定められた第１の実行指令を実行せずに、前記一連の実行指令のうち前記第１の実行指令以外の第２の実行指令から再実行するよう前記実行手段を制御する実行制御手段として、
機能させるためのプログラム。
【発明の効果】
【０００８】
本発明によれば、一連の実行指令を含む処理が途中で不具合等により停止した後に再び実行、もしくは継続実行する場合に不適切な処理を実行してしまうことを抑制することができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、本実施の形態に係る情報処理装置の制御系の一例を示すブロック図である。
【図２】図２は、実行履歴テーブルの一例を示す図である。
【図３】図３は、コマンド動作決定テーブルの一例を示す図である。
【図４】図４は、本実施の形態に係る情報処理装置の動作の一例を示すフローチャートである。
【図５】図５は、データの流れの一例を模式的に示す図である。
【図６】図６（ａ）〜（ｅ）は、実行履歴テーブルへの実行結果情報の登録の一例を示す図である。
【図７】図７は、本実施の形態に係る情報処理装置の動作の一例を示すフローチャートである。
【図８】図８は、実行履歴テーブルへの実行結果情報の登録の一例を示す図である。
【図９】図９は、コマンド動作決定テーブルの変形例を示す図である。
【発明を実施するための形態】
【００１０】
以下、本発明の実施の形態について図面を参照して説明する。なお、各図中、実質的に同一の機能を有する構成要素については、同一の符号を付してその重複した説明を省略する。
【００１１】
［実施の形態］
（情報処理装置の構成）
図１は、本発明の実施の形態に係る情報処理装置の制御系の一例を示す模式図である。この情報処理装置１は、ワークフロー（後述する）の実行を管理するワークフロー管理部１０と、ワークフローを構成する各処理を実行する第１〜第３の処理部２０Ａ〜２０Ｃと、各種のデータを記憶する記憶部（以下、単に「データベース」又は「ＤＢ」ともいう。）３０とを有して構成されている。なお、以下、第１〜第３の処理部２０Ａ〜２０Ｃを総称するときは、単に「処理部２０」ともいう。データベース３０は、記録手段の一例である。
【００１２】
このような情報処理装置１として、例えば、パーソナルコンピュータ、タブレッド端末、多機能携帯電話機（スマートフォン）等を用いることができる。また、処理部２０Ａ〜２０Ｃには、例えば、画像の処理を行う機能を備える装置（すなわち、画像読取装置、画像出力装置等）や、データの送受信を行う機能を備えた装置（データ送信装置、メールサーバ装置等）等が含まれる。
【００１３】
なお、図１では、３つの処理部２０Ａ〜２０Ｃを備える例を示したが、処理部２０の数はこれに限定されるものではなく、１つや２つでもよく、４つ以上でもよい。また、処理部２０Ａ〜２０Ｃは、上述した機能を備えた装置に限定されるものではなく、実行されるワークフローの内容に応じて適宜構成してよい。
【００１４】
また、処理部２０Ａ〜２０Ｃやデータベース３０は、例えば、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、インターネット、イントラネット等のネットワーク（不図示）を介して情報処理装置１の外部に設けられてもよい。
【００１５】
（各構成について）
次に、上述した情報処理装置１の各構成について説明する。
〔ワークフロー管理部１０〕
ワークフロー管理部１０は、ワークフローの実行に係る各種動作を管理する。ここで、「ワークフロー」とは、複数の一定のまとまった単位の処理（以下、「タスク」ともいう。）を関連付けて構築した一連の業務の流れをいう。ワークフローは、一連の処理の一例である。
【００１６】
タスクは、さらに少なくとも１つ以上の基本的な処理（以下、単に「基本処理」ともいう。）を含んで構成される。この基本処理は、後述する実行指令（以下、「コマンド」ともいう。）に応じて実行される。なお、以下の説明では、ワークフローが第１〜第３のタスクを含んで構成され、さらに、第１のタスクが第１のコマンドに応じた１つの基本処理から構成され、第２のタスクが第２のコマンドに応じた１つの基本処理から構成され、第３のタスクが第３〜第５のコマンドに応じた３つの基本処理を含んで構成されている場合を例に挙げて説明する。基本処理は、実行指令に応じた処理の一例である。
【００１７】
ワークフロー管理部１０は、ＣＰＵ（Central Processing Unit）、インターフェース等から構成されている。ＣＰＵは、データベース３０に記憶されたプログラム３００に従って動作することにより、受付手段１００、第１の生成手段１０１、第２の生成手段１０２、起動手段１０３、動作決定手段１０４、動作記録手段１０５、通知手段１０６等として機能する。動作決定手段１０４は、実行制御手段の一例である。各手段１００〜１０６の詳細については後述する。
【００１８】
〔処理部２０Ａ〜２０Ｃ〕
処理部２０は、タスクを実行する。具体的には、処理部２０は、タスクを構成する１つ以上の基本処理を予め定められた順序で連続的に実行する。より具体的には、第１の処理部２０Ａが第１のタスクを実行し、第２の処理部２０Ｂが第２のタスクを実行し、第３の処理部２０Ｃが第３のタスクを実行する。
【００１９】
すなわち、第１の処理部２０Ａが第１のコマンドに応じた１つの基本処理を実行し、第２の処理部２０Ｂが第２のコマンドに応じた１つの基本処理を実行し、第３の処理部２０Ｃが第３から第５のコマンドに応じた３つの基本処理を実行する。なお、この例に限定されるものではなく、第１の処理部２０Ａが複数の基本処理を実行してもよく、第２の処理部２０Ｂが複数の基本処理を実行してもよく、第３の処理部２０Ｃが１つの基本処理を実行してもよい。
【００２０】
第１の処理部２０Ａは、第１のタスクを実行する第１の実行手段２００Ａを備える。第２の処理部２０Ｂは、第２のタスクを実行する第２の実行手段２００Ｂを備える。第３の処理部２０Ｃは、第３のタスクを実行する第３の実行手段２００Ｃを備える。第１から第３の実行手段２００Ａ〜２００Ｃは、例えば、当該情報処理装置１に追加することが可能なプログラム（すなわち、プラグインソフトウェア等）によって動作する。なお、第１から第３の実行手段２００Ａ〜２００Ｃを総称する場合は、以下、単に「実行手段２００」ともいう。
【００２１】
〔データベース３０〕
データベース３０は、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）、ハードディスク等から構成され、プログラム３００や、実行履歴テーブル３０１（図２参照）、コマンド動作決定テーブル３０２（図３参照）、ワークフロー情報３０３等の各種データを記憶する。テーブルの構成については後述する。
【００２２】
ワークフロー情報３０３は、ワークフローの構成（すなわち、タスク及び基本処理等）を示す情報や、各処理を実行するための情報（パラメータや実行の順序を示す情報（以下、「実行順序情報」ともいう。）等）等を、ワークフローを識別する識別情報と関連付けて登録した情報である。
【００２３】
次に、ワークフロー管理部１０を構成する各手段１００〜１０６について説明する。受付手段１００は、操作者（以下、「ユーザ」ともいう。）の操作に基づいて、１のワークフローの実行を指示する実行指示（以下、「ジョブ」ともいう。）を生成する要求（以下、単に「ジョブ生成要求」ともいう。）４を受け付ける。ジョブ生成要求４には、例えば、ワークフローの名称やＩＤ等ワークフローを識別する識別情報が含まれる。
【００２４】
第１の生成手段１０１は、ジョブ生成要求４に応じて、当該ジョブに付与されたジョブを識別する識別情報（以下、「ジョブＩＤ」ともいう。）とともに、ユーザにより指定されたワークフローに係るワークフロー情報３０３を含んで構成されたジョブを生成する。
【００２５】
第２の生成手段１０２は、当該ジョブにかかるワークフローを実行するコマンドを生成する。コマンドは、当該ワークフローを構成する基本処理を実行するための各種情報を含む。
【００２６】
起動手段１０３は、ワークフローの実行順序情報に応じて、第１〜第３の処理部２０Ａ〜２０Ｃをそれぞれ起動する。なお、「起動する」とは、例えば、処理部２０による処理の実行が可能な状態にすることをいう。
【００２７】
動作決定手段１０４は、不具合等が原因でワークフローが途中で停止した後に再び当該ワークフローの実行が指示された場合に、当該ワークフローを構成する各基本処理をどのように扱うか、すなわち、当該基本処理を再度のワークフローの実行において再び実行するか否かを決定する。
【００２８】
具体的には、動作決定手段１０４は、データベース３０に記憶された実行履歴テーブル３０１から実行の結果を示す情報（以下、「実行結果情報」ともいう。）を取得する。また、動作決定手段１０４は、取得した実行結果情報を、データベース３０に記憶されたコマンド動作決定テーブル３０２に記録された情報と照合して、再度のワークフローの実行の際に当該基本処理を再び実行するか否かを決定する。実行結果情報は、結果情報の一例である。
【００２９】
なお、ワークフローが途中で停止した後に再び実行された場合、停止が発生した処理が含まれるタスクの先頭の基本処理から再開してもよく、ワークフローの先頭の基本処理、すなわち、第１のタスクを構成する基本処理から一律に再開するようにしてもよい。
【００３０】
動作記録手段１０５は、ジョブＩＤ、タスクを識別する識別情報（以下、「タスクＩＤ」ともいう。）、及びコマンドの名称を示す情報（以下、単に「コマンド名」ともいう。）と関連付けて実行結果情報を実行履歴テーブル３０１に記録する。以下、第１、第２・・のタスクに係るタスクＩＤを、それぞれ「Task1」、「Task2」、・・ともいう。
【００３１】
通知手段１０６は、実行中のワークフローが何らかの原因によって途中で停止した場合に、例えば、音（アラーム）や音声、メール通知、メッセージ通知、ＬＥＤ等の公知の手段を用いて警告を出力して、ワークフローが途中で停止したこと（すなわち、エラーが発生したこと）をユーザに通知する。
【００３２】
（テーブルの構成）
図２は、実行履歴テーブル３０１の一例を示す図である。実行履歴テーブル３０１は、基本処理ごとに実行結果情報を記録したテーブルである。実行履歴テーブル３０１には、「ジョブＩＤ」欄と、「タスクＩＤ」欄と、「コマンド名」欄と、「実行結果」欄とが設けられている。
【００３３】
「コマンド名」欄には、実行される基本処理に対応するコマンドの名称が記録される。「実行結果」欄には、処理の結果に応じて、「未」（未処理）、「成功」、「エラー」等の文字列や記号等によって実行結果情報が記録される。
【００３４】
図３は、コマンド動作決定テーブル３０２の一例を示す図である。コマンド動作決定テーブル３０２は、ワークフローが途中で停止した後に再び当該ワークフローの実行が指示された場合に、当該ワークフローを構成する基本処理を実行するか否かを示す情報を記録したものである。
【００３５】
コマンド動作決定テーブル３０２には、「コマンド名」欄と、「再実行時動作設定」欄とが設けられている。「コマンド名」欄には、実行される基本処理に対応するコマンドの名称が記録されている。「再実行時動作設定」欄には、再び当該ワークフローの実行が指示された場合に、当該基本処理を実行するか否かを示す情報（以下、「再実行時動作情報」ともいう。）が記録されている。コマンド名は、実行指令を識別する識別情報の一例である。再実行時動作情報は、動作情報の一例である。
【００３６】
例えば、画像処理のワークフローの事例で説明すると、コマンド動作決定テーブル３０２において、画像生成の実行手段は、自処理で不具合が発生した後の再度実行する際の動作が設定されており、画像生成の事例では、前回の処理が成功でもエラーでも再度同じ処理を実行する設定である。画像解析の事例では、再実行を行う時、前回処理した時に成功していれば何も画像解析処理を行わずに処理を終え、前回エラーであったなら画像解析の処理を行う設定である。
【００３７】
「再実行時動作設定」欄には、再び当該ワークフローで一度実行された処理への再度の実行が指示されたときに再び当該基本処理の実行を行わない場合、例えば、「スルー」と記録され、再び当該ワークフローの実行が指示されたときに再び当該基本処理の実行を行う場合、例えば、「実行」と記録され、再び当該ワークフローの実行が指示されたときに再び当該基本処理の実行を行わず警告を出力する場合、例えば、「エラー」と記録する。
【００３８】
なお、再実行時動作情報は、図３に示すように、処理が途中で停止したワークフローの実行中（すなわち、１度目のワークフローの実行中に）、当該基本処理が成功していたかエラーが発生していたかに応じて切り分けて、再実行時の動作「実行」「スルー」「エラー」が定義されている。 
【００３９】
「スルー」と定義された基本処理を実行するコマンド及び「エラー」と記録された基本処理を実行するコマンドは、第１の実行指令の一例である。「実行」と記録された基本処理を実行するコマンドは、第２の実行指令の一例である。「スルー」と記録された基本処理及び「エラー」と記録された基本処理は、第１の処理の一例である。「実行」と記録された基本処理は、第２の処理の一例である。 
【００４０】
（実施の形態の動作）
次に、情報処理装置１の動作の一例について図４、図５及び図６を参照して説明する。図４は、本実施の形態に係る情報処理装置１の動作の一例を示すフローチャートである。図５は、データの流れの一例を模式的に示す図である。図５に示した矢印は、データの流れを示している。詳細は、後述する動作の一例とともに説明する。図６は、実行履歴テーブル３０１への実行結果情報の登録の一例を示す図である。なお、以下、画像生成、画像解析、画像加工、データ送信、送信記録を含んで構築されたワークフローについて、第１の処理部２０Ａが画像の生成を実行し、第２の処理部２０Ｂが画像の解析を実行し、第３の処理部２０Ｃが画像の加工、データの送信、及び送信の記録を実行する場合を例に挙げて説明する。
【００４１】
画像生成は、第１のタスクの一例である。画像解析は、第２のタスクの一例である。画像加工、データ送信及び送信記録は、第３のタスクの一例である。画像生成、画像解析、画像加工、データ送信、及び送信の記録は、それぞれ基本処理の一例である。
【００４２】
第１のタスクは、画像生成コマンドに応じて実行される。第２のタスクは、画像の解析に係る画像解析コマンドにより実行される。第３のタスクは、画像の加工に係る画像加工コマンド、データの送信に係るデータ送信コマンド、及び送信の記録に係る送信記録コマンドによりそれぞれ実行される。
【００４３】
画像生成コマンドは、第１のコマンドの一例である。画像解析コマンドは、第２のコマンドの一例である。画像加工コマンドは、第３のコマンドの一例である。データ送信コマンドは、第４のコマンドの一例である。送信記録コマンドは、第５のコマンドの一例である。以下、（１）ワークフローが途中で停止せずに終了する場合の動作と、（２）ワークフローが途中で不具合等により停止した際に、再実行する場合の動作の２つの動作に分けて説明する。
【００４４】
（１）ワークフローが途中で停止せずに終了する場合の動作
ユーザが情報処理装置１に対してワークフローの名称（以下、単に「ワークフロー名」ともいう。）を指定してジョブ生成要求４を行うと、受付手段１００は、ジョブ生成要求４を受け付ける（Ｓ１）。第１の生成手段１０１は、受付手段１００が受け付けたジョブ生成要求４に応じて、ジョブＩＤとともにジョブを生成する（Ｓ２）。
【００４５】
起動手段１０３は、第１の処理部２０Ａを起動する（Ｓ３）。第１の実行手段２００Ａは、ジョブＩＤ、タスクＩＤを引数として第１のタスク（画像の生成）を実行する（Ｓ４）。本実施の形態では、第２の生成手段１０２が画像生成コマンドを生成し、第１の実行手段２００Ａは、この画像生成コマンドに応じて画像を生成する処理（以下、「第１の基本処理」ともいう。）を実行する。
【００４６】
画像生成コマンドに係る処理が終了すると、動作記録手段１０５は、実行結果を実行履歴テーブル３０１に記録する（Ｓ５）。具体的には、図６（ｃ）に示すように、動作記録手段１０５は、実行履歴テーブル３０１の「実行結果」欄の対応する列に「成功」と記録する。
【００４７】
なお、図６（ａ）に示すように、初期状態では実行履歴テーブル３０１には情報は何ら記録されていないため、実行履歴テーブル３０１の各欄は空欄となっている。また、図６（ｂ）に示すように、第１の基本処理が開始後かつ終了前の場合、実行結果は、「未」（未実行）となっている。
【００４８】
次に、起動手段１０３は、第２の処理部２０Ｂを起動する（Ｓ６）。第２の実行手段２００Ｂは、第２のタスク（画像の解析）を実行する（Ｓ７）。本実施の形態では、第２の生成手段１０２が画像解析コマンドを生成し、第２の実行手段２００Ｂは、この画像解析コマンドに応じて画像を解析する処理（以下、「第２の基本処理」ともいう。）を実行する。
【００４９】
第２の基本処理が終了すると、動作記録手段１０５は、実行結果を実行履歴テーブル３０１に記録する（Ｓ８）。具体的には、図６（ｄ）に示すように、動作記録手段１０５は、実行履歴テーブル３０１の「実行結果」欄の対応する列に「成功」と記録する。
【００５０】
次に、起動手段１０３は、第３の処理部２０Ｃを起動する（Ｓ９）。第３の実行手段２００Ｃは、第３のタスク（画像の加工、データの送信、及び送信の記録）を実行する（Ｓ１０）。本実施の形態では、第２の生成手段１０２が画像加工コマンド、データ送信コマンド及び送信記録コマンドを生成し、第３の実行手段２００Ｃは、画像加工コマンドに応じて画像を加工する処理（以下、「第３の基本処理」ともいう。）を実行し、データ送信コマンドに応じてデータする処理（以下、「第４の基本処理」ともいう。）を実行し、送信記録コマンドに応じてデータを送信したことを記録する処理（以下、「第５の基本処理」ともいう。）を実行する。
【００５１】
上記第３〜第５の基本処理が終了すると、動作記録手段１０５は、これら第３〜第５の基本処理ごとに実行結果を実行履歴テーブル３０１に記録する（Ｓ１１）。具体的には、図６（ｅ）に示すように、動作記録手段１０５は、実行履歴テーブル３０１の「実行結果」欄の対応する列に「成功」と記録する。
【００５２】
以上を換言すれば、受付手段１００は、ジョブ生成要求４を受け付け（Ｓ１）、第１の生成手段１０１は、ジョブを生成し（Ｓ２）、起動手段１０３は、Ｎ番目（Ｎは自然数）の処理部２０を起動し（Ｓ３、Ｓ６、Ｓ９）、第２の生成手段１０２は、１つ以上のコマンドを生成し（Ｓ４、Ｓ７、Ｓ１０）、Ｎ番目（Ｎは自然数）の処理部２０の実行手段２００は、コマンドに係る基本処理を実行し、動作記録手段１０５は、実行された基本処理ごとに実行結果を実行履歴テーブル３０１に記録する（Ｓ５、Ｓ８、Ｓ１１）。
【００５３】
（２）ワークフローが途中で停止・再実行する場合の動作
ワークフローが途中で停止・再実行する場合の説明として、第３の処理部２０Ｃにおける第３のタスクの実行の途中に何らかの理由でワークフローが停止・再実行した場合を例に挙げて説明する。なお、特に記述がない限り、第１のタスク及び第２のタスクは、正常に終了したもの（すなわち、実行結果が「成功」と記録されている）とし、再び当該ワークフローの実行が指示されたときは、停止が発生した第３のタスクを構成する複数の基本処理のうちの先頭の基本処理から再開するものとして説明する。また、（２−１）第３の処理部２０Ｃが停止した場合、（２−２）データの送信中にエラーが発生した場合、及び（２−３）画像の加工中にエラーが発生した場合の３つの例について説明する。
【００５４】
（２−１）第３の処理部２０Ｃが停止した場合
図７は、情報処理装置１の動作の一例を示すフローチャートである。図８は、実行履歴テーブル３０１への実行結果情報の登録の一例を示す図である。なお、図７の先頭において上述したステップＳ１からＳ９までと同一の動作が行われたものとし、その記載は省略する。
【００５５】
第１及び第２のタスクが実行された後、第３の処理部２０Ｃ（例えば、データ送信装置）が停止したことによって第３のタスクの途中で処理が停止した場合（Ｓ２０：Ｙｅｓ）、動作記録手段１０５は、図８に示すように、ジョブＩＤ、タスクＩＤ、コマンド名（データ送信コマンド）とともに、「実行結果」欄の対応する列に「エラー」と記録する（Ｓ２１）。
【００５６】
通知手段１０６は、警告を出力してエラーが発生したことを通知する（Ｓ２２）。第３の処理部２０Ｃの修復が可能な場合（Ｓ２３：Ｙｅｓ）、ユーザによりエラーを発生する原因が取り除かれた修復した後、再びユーザの操作に基づいてワークフローの実行の要求がなされると、受付手段１００は当該実行要求を受け付ける（Ｓ２４）。
【００５７】
起動手段１０３は、再び第３の処理部２０Ｃを起動する（Ｓ２５）。第３の処理部２０Ｃの第３の実行手段２００Ｃは、再び第３のタスクを実行する（Ｓ２６）。具体的には、第３の実行手段２００Ｃは、第３のタスクを構成する先頭の基本処理である第３の基本処理（すなわち、画像を加工する処理）の実行を開始する。
【００５８】
動作決定手段１０４は、データベース３０に記憶された実行履歴テーブル３０１から、停止が発生した第３のタスクに係る基本処理の実行結果情報を取得する（Ｓ２７）。具体的には、動作決定手段１０４は、図８に示す実行履歴テーブル３０１から、第３のタスク（「Task3」）に係る基本処理（本実施の形態では、画像の加工、データの送信、及び送信の記録の３つの基本処理）うち、「実行結果」欄に記録が存在している場合、記録されている実行結果情報を取得する。なお、ワークフローの途中の停止によって処理が開始されていなかったことにより「実行結果」欄が空欄のもの（図７に示す例では、送信の記録に係る結果）については、実行結果情報を取得しなくてもよい。
【００５９】
次に、動作決定手段１０４は、取得した実行結果情報をデータベース３０に記憶されたコマンド動作決定テーブル３０２に記録された情報（図４参照）と照合する（Ｓ２８）。
【００６０】
動作決定手段１０４は、再度のワークフロー実行の際に第３のタスクを構成する各基本処理を再び実行するか否かを決定する（Ｓ２９）。具体的には、動作決定手段１０４は、「画像加工」の実行結果情報が「成功」のため、画像の加工については「スルー」と決定し、「データ送信」の実行結果情報が「エラー（停止）」のため、データの送信については「実行」と決定する。
【００６１】
第３の実行手段２００Ｃは、動作決定手段１０４による決定に応じて、各基本処理を実行する（Ｓ３０）。具体的には、第３の実行手段２００Ｃは、再度の画像の加工を実行せず、未実行のデータの送信及び送信の記録を実行する。
【００６２】
（２−２）データの送信中にエラーが発生した場合
データの送信中にエラーが発生した場合、上述のステップＳ２９における動作決定手段１０４による決定の結果が上述した第３の処理部２０Ｃが停止した場合と相違する。ステップＳ２９に相当する動作を中心に説明し、その他のステップＳ２０〜Ｓ２８については同一のため詳細な説明は省略する。
【００６３】
動作決定手段１０４は、取得した実行結果情報をデータベース３０に記憶されたコマンド動作決定テーブル３０２に記録された情報（図４参照）と照合する。次に、動作決定手段１０４は、「画像加工」の実行結果情報が「成功」のため、画像の加工については「スルー」と決定するともに、「データ送信」については実行結果情報が「エラー（送信）」となるため、データの送信については「エラー」と決定する。
【００６４】
第３の実行手段２００Ｃは、再度の画像の加工及びデータの送信をともに実行せず、通知手段１０６は、警告を出力してデータの送信にエラーが発生したことをユーザに通知する。通知手段１０６は、ユーザにワークフローのやり直しを行うよう促すメッセージをさらに通知してもよい。
【００６５】
（２−３）画像の加工中にエラーが発生した場合
データの送信中にエラーが発生した場合、上述のステップＳ２９における動作決定手段１０４による決定の結果が上述した第３の処理部２０Ｃが停止した場合と相違する。ステップＳ２９に相当する動作を中心に説明し、その他のステップＳ２０〜Ｓ２８については同一のため詳細な説明は省略する。
【００６６】
動作決定手段１０４は、取得した実行結果情報をデータベース３０に記憶されたコマンド動作決定テーブル３０２に記録された情報（図４参照）と照合する。次に、動作決定手段１０４は、「画像加工」については実行結果情報が「エラー」であるため、画像の加工については「実行」と決定する。
【００６７】
第３の実行手段２００Ｃは、再度の画像の加工を実行するとともに、続いて、データの送信及び送信の記録の処理を実行する。
【００６８】
上述した３つの例では、第３の処理部２０Ｃの処理、すなわち、第３のタスクの実行中にエラーが発生したことを例に挙げて説明したが、第１の処理部２０Ａの処理、すなわち、第１のタスクの実行中にエラーが発生した場合や、第２の処理部２０Ｂの処理、すなわち、第２のタスクの実行中にエラーが発生した場合の動作についても上述した動作と実質的に同一である。
【００６９】
＜変形例＞
図９は、コマンド動作決定テーブル３０２の変形例を示す図である。コマンド動作決定テーブル３０２には、図９に示すように、図４に示した欄に加えて、例えば、「前段コマンドからの動作」欄をさらに設けてもよい。この「前段コマンドからの動作」欄には、当該基本処理の１つ前に行われた基本処理の結果に応じて当該基本処理を再び実行するか否かに関わる情報が記録されている。前段のコマンドは、第３の実行指令の一例である。前段のコマンドに係る基本処理は、第３の処理の一例である。コマンド動作決定テーブル３０２は、関連付け手段の一例である。
【００７０】
当該基本処理を実行する場合、例えば、「実行」と記録され、当該基本処理の結果に依存して決定する場合、「再実行設定参照」等と記録される。
【００７１】
動作決定手段１０４は、コマンド動作決定テーブル３０２の「前段コマンドからの動作」欄を参照する。「前段コマンドからの動作」欄に「再実行設定参照」と記録されている場合、動作決定手段１０４は、「再実行設定」欄を参照する。また、動作決定手段１０４は、取得した実行結果情報を「再実行設定」欄に記録された情報と照合して、当該基本処理を再び実行するか否かを決定する。
【００７２】
以上、本発明の実施の形態を説明したが、本発明の実施の形態は上記実施の形態に限定されるものではなく、本発明の要旨を変更しない範囲内で種々の変形、実施が可能である。画像処理には、例えば、画像の移動、回転、ノイズの除去、特定の形状の認識、テキスト情報の抽出（例えば、ＯＣＲ処理）、ファイルの形式の変換等が含めてよい。
【００７３】
ワークフロー管理部１０の各手段は、それぞれ一部又は全部を再構成可能回路（ＦＰＧＡ：Field Programmable Gate Array）、特定用途向け集積回路（ＡＳＩＣ：Application Specific Integrated Circuit）等のハードウエア回路によって構成してもよい。
【００７４】
また、本発明の要旨を変更しない範囲内で、上記実施の形態の構成要素の一部を省くことや変更することが可能である。また、本発明の要旨を変更しない範囲内で、上記実施の形態のフローにおいて、ステップの追加、削除、変更、入替え等が可能である。また、上記実施の形態で用いたプログラムをＣＤ−ＲＯＭ等のコンピュータで読み取り可能な記録媒体に記録して提供することができ、クラウドサーバ等の外部サーバに格納しておき、ネットワークを介して利用することもできる。
【符号の説明】
【００７５】
１…情報処理装置
１０…ワークフロー管理部
１００…受付手段
１０１…第１の生成手段
１０２…第２の生成手段
１０３…起動手段
１０４…動作決定手段
１０５…動作記録手段
１０６…通知手段
２０…処理部
２０Ａ…第１の処理部
２０Ｂ…第２の処理部
２０Ｃ…第３の処理部
２００…実行手段
２００Ａ…第１の実行手段
２００Ｂ…第２の実行手段
２００Ｃ…第３の実行手段
３０…データベース
３００…プログラム
３０１…実行履歴テーブル
３０２…コマンド動作決定テーブル
３０３…ワークフロー情報
４…ジョブ生成要求
４Ａ…出力結果
【図１】
2020107954.tif 000003
【図２】
2020107954.tif 000004
【図３】
2020107954.tif 000005
【図４】
2020107954.tif 000006
【図５】
2020107954.tif 000007
【図６】
2020107954.tif 000008
【図７】
2020107954.tif 000009
【図８】
2020107954.tif 000010
【図９】
2020107954.tif 000011