(57)【要約】【課題】タスクで処理の失敗が発生した場合に、必ず同じ作業者に再処理させる場合に比べて、スループットを向上できるワークフロー管理装置及びワークフロー管理プログラムを提供する。【解決手段】ワークフロー管理装置１０は、各々並行して処理されるタスクを含めて設計されたワークフローにおいて、タスクの少なくとも一部を並行して処理する作業者別の作業の成功率を取得する取得部１０２と、並行して処理されるタスクのいずれかで処理対象に対する処理が失敗した場合、取得部１０２により取得された成功率の中で処理が失敗したタスクの作業者の成功率よりも高い成功率で処理する作業者を、処理対象を再処理する作業者に決定する決定部１０４と、を有する。【選択図】図３
2019212084.tif 000002
【特許請求の範囲】
【請求項１】
並行して処理されるタスクを含むワークフローにおいて、前記タスクの少なくとも一部を並行して処理する作業者別の作業の成功率を取得する取得部と、
並行して処理される前記タスクのいずれかで処理対象に対する処理が失敗した場合、前記取得部により取得された前記成功率の中で処理が失敗したタスクの作業者の成功率よりも高い成功率で処理する作業者を、前記処理対象を再処理する作業者に決定する決定部と、
を有するワークフロー管理装置。
【請求項２】
前記決定部は、処理が失敗したタスクの作業者の成功率よりも、所定の閾値以上高い成功率で前記処理対象を処理する作業者が存在する場合、前記所定の閾値以上高い成功率で前記処理対象を処理する作業者を、再処理する作業者に決定し、前記所定の閾値以上高い成功率で前記処理対象を処理する作業者が存在しない場合、前記処理を失敗した作業者を、再処理する作業者に決定する請求項１に記載のワークフロー管理装置。
【請求項３】
前記タスクの作業内容毎に前記閾値が設定される請求項２に記載のワークフロー管理装置。
【請求項４】
前記処理対象の種別毎に前記閾値が設定される請求項２または請求項３に記載のワークフロー管理装置。
【請求項５】
前記タスクは、作業者により手動で処理される手動タスク及びコンピュータにより自動で処理される自動タスクを含み、
前記決定部は、前記自動タスクにおいて、処理が失敗した場合、直前の前記手動タスクから再処理する作業者を決定する請求項１〜４のいずれか一項に記載のワークフロー管理装置。
【請求項６】
前記決定部は、再処理が繰り返された回数が所定回数を超えた場合は、前記直前の手動タスクよりも前の手動タスクから再処理する作業者を決定する請求項５に記載のワークフロー管理装置。
【請求項７】
前記自動タスクにおける処理状態を管理する状態管理テーブルを更に有する請求項５または請求項６に記載のワークフロー管理装置。
【請求項８】
前記決定部は、処理が失敗したタスクの作業者の成功率よりも高い成功率で前記処理対象を処理する作業者が複数存在する場合、複数存在する作業者のうちで、手持ちの前記処理対象の量が最も少ない作業者を、再処理する作業者に決定する請求項１〜７のいずれか一項に記載のワークフロー管理装置。
【請求項９】
前記取得部は、前記処理対象の種別毎の成功率を取得する請求項１〜８のいずれか一項に記載のワークフロー管理装置。
【請求項１０】
前記種別は、前記処理対象の種類、又は前記処理対象の特徴量である請求項４又は請求項９に記載のワークフロー管理装置。
【請求項１１】
前記処理対象に付された属性及び前記作業者別の成功率に基づいて、前記処理対象が最初に分配される作業者が決定される請求項１〜１０のいずれか一項に記載のワークフロー管理装置。
【請求項１２】
各々並行して処理されるタスクを含めて設計されたワークフローにおいて、前記タスクの少なくとも一部を並行して処理する作業者別の作業の成功率を取得する取得工程と、
並行して処理される前記タスクのいずれかで処理対象に対する処理が失敗した場合、前記取得工程において取得された前記成功率の中で処理が失敗したタスクの作業者の前記成功率よりも高い成功率で処理する作業者を、前記処理対象を再処理する作業者に決定する決定工程と、
をコンピュータに処理させるワークフロー管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の技術は、ワークフロー管理装置及びワークフロー管理プログラムに関する。
【背景技術】
【０００２】
特許文献１には、画像処理装置と連携して処理を行うサーバであって、前記画像処理装置にＵＩ情報を送信する送信手段と、処理の途中でエラーが発生した場合に、当該エラーが発生した装置及び当該エラーの原因を取得する取得手段と、前記エラーが発生した装置が前記画像処理装置であって、前記エラー発生の後の処理要求が当該画像処理装置から発行され、前記エラーの原因が前記画像処理装置で処理される原稿に起因するときは、前記画像処理装置が前記エラーの原因を解消していることを条件に、前記エラーが発生した原稿を差し替えるように処理の流れを定義する手段と、を備え、前記送信手段は、前記画像処理装置からの処理要求が前記エラー発生の後の処理要求である場合は、前記取得手段により取得した前記エラーが発生した装置及び前記エラーの原因に基づいて定義された処理の処理を指示するためのＵＩ情報を前記画像処理装置に送信することを特徴とするサーバが開示されている。
【０００３】
特許文献２には、コンピュータを用いて作業のフローを管理するワークフロー管理システムであって、複数のタスクの作業内容及び作業順序と、各タスクの処理の前提条件及び各タスクの処理状況を評価する評価式とを定義するワークフロー定義が、メモリ上にデータとして記憶されており、各タスクの作業内容は、作業を処理するのに必要なエンティティ及び作業結果に関するエンティティであって可変の状態量を有するエンティティを用いて定義されており、前記評価式は、前記エンティティの状態量が満たすべき所定の条件を定義しており、前記複数のタスクのいずれか１つのタスクを処理する場合に、タスクに関連するエンティティの状態量が所定の条件を満たしているかを監視するために前記メモリから前記評価式を抽出し、前記評価式を用いて前記エンティティの状態量の評価値を求めて状態量の適否を判定する評価式判定手段と、タスクの処理又は外部からの通知により前記エンティティの状態量が変化した場合には、エンティティの状態量を変化後の状態量に更新する状態量更新手段と、前記評価式と前記エンティティの関連付けを定義しており、前記評価式判定手段によって抽出された評価式に関連するエンティティの状態量の変化を監視し、状態量が変化したときに変化後の状態量を前記評価式判定手段に送信するエンティティセンサ手段と、前記評価式判定手段により前記エンティティの状態量の適否を受け付け、前記エンティティの状態量が所定の条件を満たしている場合に、次のタスクの処理を開始させるフロー制御手段とを備えたワークフロー管理システムが開示されている。
【０００４】
特許文献３には、第１のワークフローおよび第２のワークフローの処理を制御するためのワークフロー制御プログラムにおいて、コンピュータに、前記第１のワークフローの処理をモニタし、前記第１のワークフローに含まれる処理のうち第１の処理が中断したとき、前記第１のワークフローに含まれる処理のうち、それぞれ同一のリソースを用いた２以上の処理を含み、かつ、前記第１の処理を含む、連続する複数の処理の中から、先頭の処理を特定し、前記リソースの状態を前記先頭の処理の処理開始前の状態に戻し、前記第２のワークフローに含まれる処理のうち、前記複数の処理と排他的に処理される、前記リソースを用いた第２の処理の処理を開始する、処理を処理させることを特徴とするワークフロー制御プログラムが開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第５３６８８３７号公報
【特許文献２】特開２０１０−３９５５５号公報
【特許文献３】特許第６０６４７３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
タスクと呼ばれる処理単位で進捗を管理するワークフロー管理装置がある。ワークフローは、スループットが低下される区間においては、並行して処理されるタスクを含めて設計されることにより、スループットを向上させうる。並行して処理されるタスクに同一の作業者を配置できないので、タスクの作業内容又は処理対象の種別によっては、作業者毎に得手及び不得手ができてしまう。場合によっては、同じ作業者が同じタスクで処理の失敗を繰り返し、結果として、ワークフローのスループットを低下させる場合がある。
【０００７】
本発明は、タスクで処理の失敗が発生した場合に、必ず同じ作業者に再処理させる場合に比べて、スループットを向上できるワークフロー管理装置及びワークフロー管理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
請求項１記載の発明は、並行して処理されるタスクを含むワークフローにおいて、前記タスクの少なくとも一部を並行して処理する作業者別の作業の成功率を取得する取得部と、並行して処理される前記タスクのいずれかで処理対象に対する処理が失敗した場合、前記取得部により取得された前記成功率の中で処理が失敗したタスクの作業者の成功率よりも高い成功率で処理する作業者を、前記処理対象を再処理する作業者に決定する決定部と、を有するワークフロー管理装置である。
【０００９】
請求項２記載の発明においては、前記決定部は、処理が失敗したタスクの作業者の成功率よりも、所定の閾値以上高い成功率で前記処理対象を処理する作業者が存在する場合、前記所定の閾値以上高い成功率で前記処理対象を処理する作業者を、再処理する作業者に決定し、前記所定の閾値以上高い成功率で前記処理対象を処理する作業者が存在しない場合、前記処理を失敗した作業者を、再処理する作業者に決定する。
【００１０】
請求項３記載の発明においては、前記タスクの作業内容毎に前記閾値が設定される。
【００１１】
請求項４記載の発明においては、前記処理対象の種別毎に前記閾値が設定される。
【００１２】
請求項５記載の発明においては、前記タスクは、作業者により手動で処理される手動タスク及びコンピュータにより自動で処理される自動タスクを含み、前記決定部は、前記自動タスクにおいて、処理が失敗した場合、直前の前記手動タスクから再処理する作業者を決定する。
【００１３】
請求項６記載の発明においては、前記決定部は、再処理が繰り返された回数が所定回数を超えた場合は、前記直前の手動タスクよりも前の手動タスクから再処理する作業者を決定する。
【００１４】
請求項７記載の発明においては、前記自動タスクにおける処理状態を管理する状態管理テーブルを更に有する。
【００１５】
請求項８記載の発明においては、前記決定部は、処理が失敗したタスクの作業者の成功率よりも高い成功率で前記処理対象を処理する作業者が複数存在する場合、複数存在する作業者のうちで、手持ちの前記処理対象の量が最も少ない作業者を、再処理する作業者に決定する。
【００１６】
請求項９記載の発明においては、前記取得部は、前記処理対象の種別毎の成功率を取得する。
【００１７】
請求項１０記載の発明においては、前記種別は、前記処理対象の種類、又は前記処理対象の特徴量である。
【００１８】
請求項１１記載の発明においては、前記処理対象に付された属性及び前記作業者別の成功率に基づいて、前記処理対象が最初に分配される作業者が決定される。
【００１９】
請求項１２記載の発明は、各々並行して処理されるタスクを含めて設計されたワークフローにおいて、前記タスクの少なくとも一部を並行して処理する作業者別の作業の成功率を取得する取得工程と、並行して処理される前記タスクのいずれかで処理対象に対する処理が失敗した場合、前記取得工程において取得された前記成功率の中で処理が失敗したタスクの作業者の前記成功率よりも高い成功率で処理する作業者を、前記処理対象を再処理する作業者に決定する決定工程と、をコンピュータに処理させるワークフロー管理プログラムである。
【発明の効果】
【００２０】
請求項１記載の発明によれば、タスクで処理の失敗が発生した場合に、必ず同じ作業者に再処理させる場合に比べて、スループットを向上できる。
【００２１】
請求項２記載の発明によれば、閾値分、再処理の成功率が高いことを保証できる。
【００２２】
請求項３記載の発明によれば、作業内容の難易度に応じて閾値を可変にできる。
【００２３】
請求項４記載の発明によれば、処理対象の種別に応じて閾値を可変にできる。
【００２４】
請求項５記載の発明によれば、処理の失敗の要因となる手動タスクから再処理できる。
【００２５】
請求項６記載の発明によれば、失敗が繰り返す場合に、直前の手動タスクよりも前の手動タスクから処理を見直せる。
【００２６】
請求項７記載の発明によれば、手動タスクと同様に自動タスクの処理状態を管理できる。
【００２７】
請求項８記載の発明によれば、再処理に適した作業者が複数ある場合に、負荷を分散して、スループットの低下を防止できる。
【００２８】
請求項９記載の発明によれば、処理対象の種別毎の作業者の成功率により、再処理の作業者を決定できる。
【００２９】
請求項１０記載の発明によれば、処理対象の種類又は特徴量に基づいて成功率を分類できる。
【００３０】
請求項１１記載の発明によれば、処理対象に付された属性及び作業者の成功率を考慮して、処理対象を作業者に分配できる。
【００３１】
請求項１２記載の発明によれば、タスクで処理の失敗が発生した場合に、必ず同じ作業者に再処理させる場合に比べて、スループットを向上できる。
【図面の簡単な説明】
【００３２】
【図１】本発明の技術の実施形態に係るワークフローシステムの概略構成を示す図である。
【図２】ワークフロー管理装置のハードウェア構成を示すブロック図である。
【図３】ワークフロー管理装置の機能構成の例を示すブロック図である。
【図４】作業者別の作業の成功率を示すテーブルの一例を示す図である。
【図５】ワークフローの一部であって、並行してタスクが処理される部分を示す図である。
【図６】ワークフロー管理装置によるワークフロー管理処理の流れを示すフローチャートである。
【図７】ワークフローの一部を示す図である。
【図８】手動タスクの状態を管理するテーブルを示す図である。
【図９】手動タスク及び自動タスクの状態を管理するテーブルを示す図である。
【発明を実施するための形態】
【００３３】
以下、本発明の技術の実施形態の一例を、図面を参照しつつ説明する。なお、各図面において同一又は等価な構成要素及び部分には同一の参照符号を付与している。また、図面の寸法比率は、説明の都合上誇張されており、実際の比率とは異なる場合がある。
【００３４】
図１は、本発明の技術の実施形態に係るワークフローシステムの概略構成を示す図である。
【００３５】
図１に示すように、ワークフローシステム１は、ワークフロー管理装置１０及びユーザ端末２０を含む。ワークフロー管理装置１０は、タスクと呼ばれる処理を処理する順序に従って接続することにより設計されるワークフローを管理する装置である。本実施形態のワークフローでは、タスクの少なくとも一部が複数の作業者により並行して処理されるように、ワークフローが設計されている。
【００３６】
図１では、複数の作業者Ａ〜Ｎがタスクを並行して処理する様子を示す。本実施形態では、作業者Ａ〜Ｎは、それぞれ個別に与えられたユーザ端末２０を用い、ワークフローに従ってタスクを処理する。例えば、各ユーザ端末２０には、ワークフローの流れに従って順次、処理対象である文書等の帳票が配布される。各作業者Ａ〜Ｎは、受け取った帳票からスキャナ等により画像データを取得し、さらに、ユーザ端末２０のディスプレイ上で、画像データに基づく画像に処理を施す。画像に施す処理は、例えば、画像上に所望の領域を設定する領域設定の処理等である。ユーザ端末２０におけるタスクの進捗は、ワークフロー管理装置１０により管理される。
【００３７】
なお、詳しくは後述するが、本実施形態においては、タスクには、作業者Ａ〜Ｎが手動で行なう手動タスクと、ユーザ端末２０等のコンピュータが自動で行なう自動タスクとがある。上記のように手動で領域設定の処理がされた後、領域の画像を切り抜く画像切り抜きの処理、及び切り抜かれた画像内の文字を認識する文字認識の処理が自動で行なわれても良い。この場合、ワークフロー管理装置１０は、自動タスクの進捗も管理する。
【００３８】
図２は、ワークフロー管理装置のハードウェア構成を示すブロック図である。
【００３９】
図２に示すように、ワークフロー管理装置１０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１２、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１３、ストレージ１４、入力部１５、表示部１６及び通信インタフェース１７の各構成を有する。各構成は、バス１９を介して相互に通信可能に接続されている。
【００４０】
ＣＰＵ１１は、中央演算処理ユニットであり、各種プログラムを実行したり、各部を制御したりする。すなわち、ＣＰＵ１１は、ＲＯＭ１２又はストレージ１４からプログラムを読み出し、ＲＡＭ１３を作業領域としてプログラムを実行する。ＣＰＵ１１は、ＲＯＭ１２又はストレージ１４に記録されているプログラムにしたがって、上記各構成の制御及び各種の演算処理を行う。本実施形態では、ＲＯＭ１２又はストレージ１４には、ワークフローを管理するためのワークフロー管理プログラムが格納されている。
【００４１】
ＲＯＭ１２は、各種プログラム及び各種データを格納する。ＲＡＭ１３は、作業領域として一時的にプログラム又はデータを記憶する。ストレージ１４は、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）又はＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）により構成され、オペレーティングシステムを含む各種プログラム、及び各種データを格納する。
【００４２】
入力部１５は、マウス等のポインティングデバイス、及びキーボードを含み、各種の入力を行うために使用される。
【００４３】
表示部１６は、たとえば、液晶ディスプレイであり、各種の情報を表示する。表示部１６は、タッチパネル方式を採用して、入力部１５として機能しても良い。
【００４４】
通信インタフェース１７は、ユーザ端末２０等の他の機器と通信するためのインタフェースであり、たとえば、イーサネット（登録商標）、ＦＤＤＩ、Ｗｉ−Ｆｉ（登録商標）等の規格が用いられる。
【００４５】
図３は、ワークフロー管理装置の機能構成の例を示すブロック図である。図４は、作業者別の作業の成功率を示すテーブルの一例を示す図である。
【００４６】
図３に示すように、ワークフロー管理装置１０は、機能構成として、割当部１０１、取得部１０２、記憶部１０３及び決定部１０４を有する。各機能構成は、ＣＰＵ１１がＲＯＭ１２又はストレージ１４に記憶されたワークフロー管理プログラムを読み出して、ＲＡＭ１３に展開して実行することにより実現される。
【００４７】
割当部１０１は、作業者に、処理対象である帳票を割り当てる。ここで、割当部１０１は、各々並行して処理されるタスクの作業者に帳票を割り当てる場合、作業者の手持ちの未処理の帳票の数、又は、作業者の処理の成功率に基づいて、割り当てる帳票の量を調整しても良い。あるいは、割当部１０１は、並行して処理されるタスクの作業者に、均等な量の帳票を割り当てても良い。
【００４８】
取得部１０２は、タスクを並行して処理する作業者別の作業の成功率を取得する。作業者別の成功率は、例えば、図４に示すテーブルの形式で取得される。図４に示すように、成功率は、作業者別で、更に、「領域設定」等の作業内容及び「種別Ｘ」等の帳票の種別毎に与えられる。図４に示す例では、成功率を１以下の数値として表している。例えば、作業者Ａが領域設定の手動タスクを、種別Ｘの帳票に対して行なう場合、成功率は０．９２である。この数値は、作業者Ａが１００回処理を行なえば、９２回成功し、８回失敗するという確率を示す。帳票の種別とは、例えば、帳票の種類である。帳票の種類は、帳票が作成された目的又は帳票が果たす役割等により分類される。より具体的には、帳票の種類には、例えば、見積書、請求書、議事録及び契約書等が含まれうる。または、帳票の種別とは、例えば、帳票の特徴量であっても良い。帳票の特徴量とは、帳票に記載された文字サイズ又は文字間隔等である。
【００４９】
記憶部１０３は、取得部１０２で取得される、図４に示すような作業者別の成功率のテーブルを記憶する。また、記憶部１０３は、処理中（Ｒｕｎｎｉｎｇ）、処理成功（Ｃｏｍｐｌｅｔｅｄ）又は処理失敗（Ｆａｉｌｅｄ）といったタスクの処理結果を記憶しても良い。
【００５０】
決定部１０４は、各々並行して処理されるタスクのいずれかで処理対象に対する処理が失敗した場合、処理が失敗したタスクの作業者の成功率よりも高い成功率で処理する作業者を、処理対象を再処理する作業者に決定する。決定部１０４は、作業を失敗した作業者に比べて、図４に示す成功率で０．０１ポイントでも成功率が高い別の作業者を、再処理する作業者に決定できる。
【００５１】
或いは、決定部１０４は、処理が失敗したタスクの作業者の成功率よりも、所定の閾値以上高い成功率で処理対象を処理する作業者が存在する場合、所定の閾値以上高い成功率で処理対象を処理する作業者を、再処理する作業者に決定しても良い。決定部１０４は、所定の閾値以上高い成功率で処理対象を処理する作業者が存在しない場合、処理を失敗した作業者を、再処理する作業者に決定する。以下の実施形態では、所定の閾値として、０．０５を適用する場合について説明する。
【００５２】
次に、ワークフローの一部について、より詳細に説明する。
【００５３】
図５は、ワークフローの一部であって、並行してタスクが処理される部分を示す図である。
【００５４】
並行してタスクが処理される場合、ワークフローが複数列に分岐する。例えば、図５に示すように、ワークフローは、Ｎ列に分岐する。各列には、タスクが並ぶ。図５に示す例では、「領域設定」の手動タスク２０１Ａ〜２０１Ｎ、「画像切り抜き」の自動タスク２０２Ａ〜２０２Ｎ、「文字認識」の自動タスク２０３Ａ〜２０３Ｎが順に並ぶ。ただし、ワークフローの流れによって、タスクは、様々な別のタスクに切換可能である。例えば、「領域設定」、「画像切り抜き」及び「文字認識」のタスクに代えて、「区切り挿入」、「画像補正」及び「フォーム認識」等のタスクが処理されても良い。あるタスクから別のタスクに切り替わる場合、全ての列が同様の処理となるように、全ての列が一斉に切り替わる。なお、「区切り挿入」とは、帳票に含まれる特定の用紙を示すために、区切り用紙を帳票に挿入する処理であり、手動タスクである。区切り用紙が挿入された帳票の画像がスキャンにより読み取られる。「画像補正」とは、区切り用紙の前または後の用紙の画像を補正する処理であり、自動タスクである。フォーム認識は、補正された画像から、所定のフォームを認識する処理であり、自動タスクである。
【００５５】
分岐された各列には、上記に例示したタスクに限定されず、いかなるタスクが配置されても良い。各列のタスクが完了すると、ワークフローが合流し、一つの流れになる。
【００５６】
分岐する各列は、作業者Ａ〜Ｎにより担当される。作業者Ａ〜Ｎは、自身が所属する列のタスクのうち、手動タスクを処理する。自動タスクは、作業者Ａ〜Ｎのユーザ端末２０により自動的に処理される。
【００５７】
ワークフロー管理装置１０は、図５に示すようなワークフローにおいて、あるタスクで処理の失敗（エラー）が発生した場合に、処理を手動タスクまで戻す。
【００５８】
次に、タスクにおいて処理の失敗が発生したときのワークフロー管理装置１０の作用について、説明する。
【００５９】
図６は、ワークフロー管理装置によるワークフロー管理処理の流れを示すフローチャートである。ＣＰＵ１１がＲＯＭ１２又はストレージ１４からワークフロー管理プログラムを読み出して、ＲＡＭ１３に展開して実行することにより、ワークフロー管理処理が行なわれる。なお、図６の説明においては、図５に示すワークフローの一部分に注目して、ワークフロー管理装置１０がタスクを管理する流れを説明する。
【００６０】
ＣＰＵ１１は、分岐された各列で処理されるタスクの処理内容を取得する（ステップＳ１０１）。タスクの処理内容は、ワークフローに予め計画されており、日時等により異なり得る。
【００６１】
ＣＰＵ１１は、分岐された各列のタスクにより処理される処理対象の種別を取得する（ステップＳ１０２）。
【００６２】
ＣＰＵ１１は、取得部１０２として、図４に示すようなテーブルを取得し、テーブルにおいて作業内容及び処理対象の種別を特定し、分岐した各列において作業者Ａ〜Ｎがタスクを行なう際の成功率を取得する（ステップＳ１０３）。
【００６３】
ＣＰＵ１１は、分岐した各列のタスクのうちの何れかのタスクで処理が失敗したか否かを判断する（ステップＳ１０４）。ここで、ＣＰＵ１１は、作業者Ａ〜Ｎが手動で行なう手動タスク２０１Ａ〜２０１Ｎだけでなく、コンピュータが自動で行なう自動タスク２０２Ａ〜２０２Ｎ、２０３Ａ〜２０３Ｎについても処理が失敗したか否か判断する。処理が失敗したか否かは、コンピュータによりエラーが発生されたか否かにより判断されても良い。
【００６４】
何れのタスクでも処理が失敗していない場合（ステップＳ１０４：ＮＯ）、ＣＰＵ１１は、ステップＳ１１４の処理に進む。何れかのタスクで処理が失敗した場合（ステップＳ１０４：ＹＥＳ）、ＣＰＵ１１は、同じ処理対象に対して処理の失敗が繰り返された繰返失敗回数ｉを１だけインクリメントする（ステップＳ１０５）。繰返失敗回数ｉは初期値として０が代入されており、処理対象に対して初めて処理が失敗した場合にはｉ＝０＋１で繰返失敗回数は１回となる。
【００６５】
ＣＰＵ１１は、繰返失敗回数ｉが所定回数より大きいか否か判断する（ステップＳ１０６）。所定回数は、処理の失敗が繰り返された場合に、処理が失敗した自動タスク２０２Ａ等の直前の手動タスク２０１Ａ等、或いは、処理が失敗した手動タスク２０１Ａ等より上流に遡及して失敗の原因を探るために設定される。失敗が繰り返される場合には、失敗が発生している分岐において作業者が行なう手動タスクの処理に原因があるのではなく、より上流の手動タスクの処理に原因がある場合があるからである。ただし、例えば繰返失敗回数ｉが１回だけの場合では、より上流の手動タスクにおける不備を探るには早すぎる。従って、少なくとも所定回数は、２以上に設定されることが好ましい。所定回数は、例えば３回である。このように設定すれば、繰返失敗回数ｉが４になった時に、ステップＳ１０６においてＹＥＳと判断される。
【００６６】
繰返失敗回数ｉが所定回数よりも大きい場合（ステップＳ１０６：ＹＥＳ）、ＣＰＵ１１は、直前の手動タスク２０１Ａ等よりも前の手動タスクまで処理を戻し（ステップＳ１０７）、繰返失敗回数ｉを０にリセットする（ステップＳ１０８）。なお、ＣＰＵ１１は、手動タスク２０１Ａ等において失敗が繰り返されていた場合においては、直前の手動タスクを手動タスク２０１Ａ等とみなし、手動タスク２０１Ａよりも前の手動タスクまで処理を戻す。ＣＰＵ１１は、ステップＳ１１４の処理に進む。
【００６７】
繰返失敗回数ｉが所定回数よりも大きくない場合（ステップＳ１０６：ＮＯ）、ＣＰＵ１１は、決定部１０４として、失敗したタスクの作業者よりも成功率が閾値以上高い別の作業者がいるか否か判断する（ステップＳ１０９）。ここで、ＣＰＵ１１は、図４に示すようなテーブルを参照する。具体例として、例えば、図５に示すワークフローにおいて作業者Ａが配置された列の自動タスク２０３Ａにおいて処理が失敗したとする。また、帳票の種別がＸであるとする。この例では、ＣＰＵ１１は、図４のテーブルにおいて、作業内容が「領域設定」で、帳票の種別がＸである場合の、作業者Ａの成功率を０．９２と特定する。そして、閾値を０．０５とすると、ＣＰＵ１１は、０．９２＋０．０５＝０．９７以上の成功率の別の作業者がいるか否かを判断する。同条件においては、作業者Ｎの成功率が０．９８＞０．９７であるので、作業者Ｎを、成功率が閾値以上高い別の作業者として特定する。一方、上記具体例の帳票の種別がＸではなくＹである場合、作業者Ａの成功率は０．９３である。０．９３に閾値の０．０５を加えると、０．９８となり、０．９８よりも成功率が高い別の作業者はいない。この場合、ＣＰＵ１１は、成功率が閾値以上高い別の作業者がいないと判断する。
【００６８】
成功率が閾値以上高い別の作業者がいる場合（ステップＳ１０９：ＹＥＳ）、ＣＰＵ１１は、当該別の作業者を再処理する作業者として決定する（ステップＳ１１０）。そして、ＣＰＵ１１は、割当部１０１として、直前の手動タスクまで処理を戻し、処理が失敗した処理対象を別の作業者に割り当てる（ステップＳ１１１）。図５に示す例では、ＣＰＵ１１は、処理が失敗した帳票を、自動タスク２０３Ａから手動タスク２０１Ｎまで戻し、作業者Ｎにタスクを再処理させる。ＣＰＵ１１は、ステップＳ１１４の処理に進む。
【００６９】
成功率が閾値以上高い別の作業者がいない場合（ステップＳ１０９：ＮＯ）、ＣＰＵ１１は、処理が失敗したタスクに係る列の手動タスクを処理した同じ作業者を再処理する作業者として決定する（ステップＳ１１２）。ＣＰＵ１１は、割当部１０１として、直前の手動タスクまで処理を戻し、処理が失敗した処理対象を同じ作業者に割り当てる（ステップＳ１１３）。図５に示す例では、ＣＰＵ１１は、処理が失敗した帳票を、自動タスク２０３Ａから手動タスク２０１Ａまで戻し、作業者Ａにタスクを再処理させる。ＣＰＵ１１は、ステップＳ１１４の処理に進む。
【００７０】
ＣＰＵ１１は、ワークフローの全てのタスクが完了したか、すなわち、全ての処理対象に対するタスクの処理が完了したか否か判断する（ステップＳ１１４）。
【００７１】
全てのタスクが完了していない場合（ステップＳ１１４：ＮＯ）、ＣＰＵ１１は、ステップＳ１０４からの処理を繰り返す。全てのタスクが完了した場合（ステップＳ１１４：ＹＥＳ）、ＣＰＵ１１は、ワークフロー管理処理を終了する。
【００７２】
次に、作業者毎の成功率の更新について説明する。ここでは、図５に示す例を用いて、各作業者の成功率を具体的にどのように更新するか説明する。
例えば、図５の自動タスク２０３Ａで処理が失敗した場合、手動タスク２０１Ａの「領域設定」の作業に問題があったとみなして、手動タスク２０１Ａを行った作業者Ａの種別１の処理対象に対する「領域設定」の作業内容の失敗回数を１回増やす。これにより、種別１の処理対象に対する「領域設定」の全処理回数において失敗回数が１回増えるので、その分成功率が下がる。このように、自動タスク２０３Ａ等で処理が失敗した場合は、まずは、直前の手動タスク２０１Ａ等の成功率が下げられる。同じ自動タスク２０３Ａで失敗が繰り返す場合、繰り返した失敗の数だけ失敗回数がカウントされ、結果として、全処理回数に対する成功回数の割合が低くなり、成功率が下げられる。
【００７３】
一方、同じ自動タスク２０３Ａ等で繰り返した失敗の回数が所定回数を超えた場合（図６のステップＳ１０６：ＹＥＳ）、直前の手動タスク２０１Ａ等よりも更に上流の手動タスクまで処理が戻される（図６のステップＳ１０７）。この場合、自動タスク２０３Ａで失敗が繰り返されていたとしても、失敗の原因はさらに上流の自動タスク、ライン設計ミス或いはサポート対象外の処理対象（帳票）であるとみなす。従って、失敗の回数が所定回数に到達するまでに、上流の手動タスク２０１Ａ等が原因としてカウントされていた失敗回数は、遡及的に無効とされる。これにより、失敗回数の増加によって下げられていた手動タスク２０１等の成功率は、失敗がなかったものとして元に戻される。
【００７４】
このように、手動タスク２０１Ａ等の成功率は、自動タスク２０３Ａ等で処理の失敗が発生して自動タスク２０３Ａ等が終了したタイミング、或いは、処理の失敗が発生したタイミングでリアルタイムに更新されうる。ただし、上述のように、失敗の繰り返し回数が所定回数を超えて、さらに上流の手動タスクまで処理が戻る場合には、手動タスク２０１Ａ等でカウントされた失敗回数が遡及的に無効となり、成功率が元に戻される場合がある。
【００７５】
なお、成功率の更新タイミングは、一連のタスク２０１Ａ〜２０３Ａ等を含むプロセスが完了するタイミングであってもよい。プロセスの完了時には、どの手動タスクに問題があったかも分かるので、上記のように遡及的に失敗回数を無効にする（リセットする）必要がない。
【００７６】
あるいは、成功率の更新タイミングは、夜間等の特定のタイミングであってもよい。上記のようにリアルタイムで成功率を更新する場合、成功率の更新タイミングが頻発して負荷が大きくなる。負荷が大きくなって演算が遅れる場合、プロセスの開始タイミング又はタスクの開始タイミングが成功率の更新が完了した後に調整する必要などが生じる可能性がある。夜間等の負荷が少ないタイミングで成功率を更新すれば、上記のような負荷の増大等の問題がない。
【００７７】
本発明は、上記実施形態に限定されない。種々の改良及び改変が可能である。
【００７８】
例えば、上記実施形態では、処理対象が書類である帳票である場合を説明している。しかし、これに限定されない。帳票以外の書類に対しても、本発明を適用しても良い。また、書類以外の処理対象に対しても、本発明を適用しても良い。
【００７９】
また、上記実施形態においては、ステップＳ１０９における閾値が一律に０．０５である例を説明した。しかし、閾値は、０．０５に限定されない。閾値は、例えば、上記タスクの作業内容毎に、適宜異なる値を設定しても良い。タスクの作業内容ごとに異なる閾値を設定する場合、例えば、タスクの作業内容の難易度に基づいて閾値を変更できる。タスクの作業内容の難易度が高い程、作業者の習熟レベルによって、作業者の成功率のバラつきが大きくなる。逆に、タスクの作業内容の難易度が低い程、最初から作業者が成功する確率が高くなり、結果として作業者の成功率のバラつきは小さくなる。従って、タスクの作業内容の難易度が高い程、閾値を大きく設定しても良い。閾値は、例えば、成功率の平均値から、最も低い作業者の成功率を減算した得た値としても良い。このように閾値を設定すれば、タスクの処理が失敗した場合、少なくとも平均よりも高い成功率の別の作業者にタスクが割り当てられることになる。
【００８０】
あるいは、閾値は、処理対象の種別毎に、適宜異なる値を設定しても良い。例えば、処理対象が帳票である場合、帳票の書類毎、又は帳票の特徴量毎に設定され得る。例えば、帳票の文字がこまかい程、帳票の文字間隔が狭い程、帳票から切り出したい領域が端にある程、作業の難易度が高くなる。作業の難易度が高い程、上記と同じ理由により、閾値を大きく設定しても良い。
【００８１】
また、上記実施形態では、ステップＳ１０９において、成功率が閾値以上高い別の作業者が複数いる場合、再処理させる作業者に優先順位は特にない。しかし、成功率が閾値以上高い別の作業者が複数存在する場合、手持ちの処理対象の量が最も少ない作業者に再処理させてもよい。作業の均一化のためである。この場合、ワークフロー管理装置１０は、各作業者が手持ちの処理対象の量を確認する必要がある。ここで、例えば、処理対象が帳票等の書類である場合、ワークフロー管理装置１０は、各作業者に割り当てられている帳票の重さを手持ちの量として推定できる。帳票の重さは、例えば、帳票を載置するトレイの重量が作業者毎に計測され、計測値がワークフロー管理装置１０に入力され得る。
【００８２】
次に、上記実施形態に追加できる追加の形態について、説明する。
【００８３】
図７はワークフローの一部を示す図である。図８は手動タスクの状態を管理するテーブルを示す図である。図９は手動タスク及び自動タスクの状態を管理するテーブルを示す図である。
【００８４】
図７に示すワークフローの一部では、手動タスクＭ１、自動タスクＡ１、自動タスクＡ２、自動タスクＡ３及び手動タスクＭ２が順に処理される。ここで、点線で囲まれる自動タスクＡ１、自動タスクＡ２及び自動タスクＡ３がワークフロー管理装置１０による管理対象外とし、手動タスクＭ１及び手動タスクＭ２だけが管理対象内とする。
【００８５】
この場合、ワークフロー管理装置１０は、図８に示すように、手動タスクＭ１及び手動タスクＭ２の状態だけを管理する。例えば、図７の自動タスクＡ２が処理されている場合であっても、ワークフロー管理装置１０は、自動タスクＡ３が完了するまで、図８に示すように、手動タスクＭ１が作業中であるようにしか管理できない。つまり、手動タスクＭ１が実際に完了していても、手動タスクＭ２に処理が移らないので、手動タスクＭ１のステータスを「完了」にはできない。また、自動タスクＡ１〜Ａ３の何れかで処理が失敗した場合、ワークフロー管理装置１０はどの自動タスクで処理が失敗したか判断できない。失敗したことが分からないので、例えば、通常の処理でかかる時間以上過ぎても手動タスクＭ２に処理が移らないこと、すなわちタイムアウトでしか処理が失敗したことを管理できない。これでは、処理の失敗が発生した場合でもすぐに対応できず、結果として、スループットが悪くなってしまう。
【００８６】
一方、図９に示すように、手動タスク及び自動タスクの両者の状態を管理する場合、自動タスクＡ２の途中であれば、そのようにステータスを管理できる。このように自動タスクも管理することにより、自動タスクＡ１〜Ａ３の何れかで処理が失敗した場合に、すぐに処理の失敗を検知し、上述のタスクの再割当等の対処が可能である。従って、ワークフロー管理装置１０は、自動タスクの状態も管理することが好ましい。例えば、市販のワークフロー管理装置では手動タスクしか管理できない場合、追加の構成として、図９に示すようなテーブルを格納したサーバを用意し、別途自動タスクを管理しても良い。もちろん、一つのワークフロー管理装置１０内で、手動タスク及び自動タスクの両者の状態を管理しても良い。
【００８７】
上記実施形態では、ワークフローにおいて、再処理のために処理対象を、別の作業者に分配する場合について説明した。次に、図５に示すようにワークフローが分岐している際に、最初に処理対象を分配する分配方法について説明する。
【００８８】
基本的な分配方法は、処理対象を作業者に均等に分配する方法である。或いは、ワークフロー管理装置１０において、各作業者が分岐したタスクを処理する平均処理時間を計測し、平均処理時間に反比例する量に基づいて、処理対象を各作業者に分配しても良い。
【００８９】
或いは、処理対象に付された属性及び作業者別の成功率に基づいて、処理対象が最初に分配される作業者が決定されても良い。処理対象に付された属性は、ワークフロー管理装置１０に記憶されており、処理対象の分配時にワークフロー管理装置１０が考慮する。属性は、例えば、特別な処理対象にのみ付与され、「重要」な処理対象、或いは「注意が必要」な処理対象を区別するために付与される。ワークフロー管理装置１０は、図４に示すテーブルを参照して、成功率が高い作業者に優先して属性が付与された処理対象が分配されるように指示する。指示は、分配担当者が確認できるように、例えば、現場に設置されたディスプレイに表示される。処理対象は、機械的に自動的に分配されても良い。
【００９０】
また、ワークフロー管理装置１０は、最初に処理対象を分配する際に、図４のテーブルを参照しても良い。この場合、ワークフロー管理装置１０は、図４のテーブルを参照して、得意な種別の処理対象を作業者に分配する。作業の効率化のためである。逆に、ワークフロー管理装置１０は、図４のテーブルを参照して、不得意な種別の処理対象を作業者に分配しても良い。作業者の訓練になるからである。
【００９１】
上記の処理は、専用のハードウェア回路によっても実現することもできる。この場合には、１つのハードウェアで実行されても良いし、複数のハードウェアで実行されても良い。
【００９２】
また、ワークフロー管理装置１０を動作させるプログラムは、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）メモリ、フレキシブルディスク、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）等のコンピュータ読み取り可能な記録媒体によって提供されても良いし、インターネット等のネットワークを介してオンラインで提供されても良い。この場合、コンピュータ読み取り可能な記録媒体に記録されたプログラムは、通常、メモリ又はストレージ等に転送され記憶される。また、このプログラムは、たとえば、単独のアプリケーションソフトとして提供されても良いし、ワークフロー管理装置１０の一機能としてその各装置のソフトウェアに組み込んでも良い。
【符号の説明】
【００９３】
１     ワークフローシステム
１０   ワークフロー管理装置
１１   ＣＰＵ
１２   ＲＯＭ
１３   ＲＡＭ
１４   ストレージ
１５   入力部
１６   表示部
１７   通信インタフェース
１９   バス
２０   ユーザ端末
１０１ 割当部
１０２ 取得部
１０３ 記憶部
１０４ 決定部
２０１Ａ〜２０１Ｎ、Ｍ１、Ｍ２     手動タスク
２０２Ａ〜２０２Ｎ、２０３Ａ〜２０３Ｎ、Ａ１〜Ａ３      自動タスク
Ａ〜Ｎ 作業者
【図１】
2019212084.tif 000003
【図２】
2019212084.tif 000004
【図３】
2019212084.tif 000005
【図４】
2019212084.tif 000006
【図５】
2019212084.tif 000007
【図６】
2019212084.tif 000008
【図７】
2019212084.tif 000009
【図８】
2019212084.tif 000010
【図９】
2019212084.tif 000011