(57)【要約】【課題】ファイルの生成状況に応じて、業務の進捗状況を管理することができるようにする。【解決手段】ファイルを生成する一連の処理により構成される業務を管理する場合に、ＣＰＵとメモリとファイルシステムとを備える情報処理装置が、処理により生成されたファイルを記憶し、業務を構成する一連の処理のそれぞれについて、それぞれの処理が行われるまでに生成されるファイルが記述されたパターンデータを記憶し、記憶しているファイルの一覧を記述したリストデータを生成し、生成したリストデータにマッチするパターンデータに対応する処理を取得し、取得した処理を、業務において次に行うべき処理として出力装置に出力する。【選択図】図１
2008065524.tif 000002
【特許請求の範囲】
【請求項１】
ファイルの生成を伴う複数の処理により構成される業務を管理する方法であって、
ＣＰＵ、メモリ、およびファイルシステムを備える情報処理装置が、
前記処理により生成された前記ファイルを記憶し、
前記業務を構成する一連の前記処理のそれぞれについて、それぞれの前記処理が行われるまでに生成される前記ファイルが記述されたパターンデータを記憶し、
記憶している前記ファイルの一覧を記述したリストデータを生成し、
生成した前記リストデータにマッチする前記パターンデータに対応する前記処理を取得し、
取得した前記処理を、前記業務において次に行うべき処理として出力装置に出力すること、
を特徴とする業務管理方法。
【請求項２】
請求項１に記載の業務管理方法であって、
前記情報処理装置は、
前記リストデータにマッチする前記パターンデータが記憶されていない場合にその旨を示すエラーメッセージを前記出力装置に出力すること、
を特徴とする業務管理方法。
【請求項３】
請求項１に記載の業務管理方法であって、
前記パターンデータはＢＮＦ形式で記述されること、
を特徴とする業務管理方法。
【請求項４】
請求項１に記載の業務管理方法であって、
前記情報処理装置が記憶する前記ファイルには、前記ファイルを生成する前記処理の直前に行われる前記処理により生成される前記ファイルである親ファイルを特定する親ファイル特定情報が付帯され、
前記パターンデータは、前記ファイルの親子関係をＳ式により記述され、
前記情報処理装置は、
前記ファイルに付帯されている前記親ファイル特定情報に基づいて、前記ファイルの親子関係をＳ式により記述した前記リストデータを生成すること、
を特徴とする業務管理方法。
【請求項５】
請求項１に記載の業務管理方法であって、
前記情報処理装置は、
前記処理により生成された前記ファイルを特定する情報を含む、前記ファイルが削除されたことを示すファイルである取消ファイルを記憶している場合、
前記ファイルシステムから前記取消ファイルを取得し、
取得した前記取消ファイルにより特定される前記ファイルを除いて前記ファイルの一覧を記述することにより、前記リストデータを生成すること、
を特徴とする業務管理方法。
【請求項６】
請求項１に記載の業務管理方法であって、
前記情報処理装置は、
前記処理をプレースとし、前記処理により生成される前記ファイルをトランジションとし、前記処理と前記ファイルとの対応付けをアークとするペトリネットを示すモデル情報の入力を受け付け、
前記ペトリネットに含まれる前記プレースのそれぞれについて、
前記モデル情報に基づいて、所定の基準となるプレースである基準プレースから、前記プレースまでに前記アークにより接続されている一連の前記トランジションを特定し、
特定した前記一連のトランジションを記述することにより、前記パターンデータを生成すること、
を特徴とする業務管理方法。
【請求項７】
請求項１に記載の業務管理方法であって、
前記情報処理装置は、
前記処理をプレースとし、前記処理により生成される前記ファイルをトランジションとし、前記処理と前記ファイルとの対応付けをアークとするペトリネットを示すモデル情報の入力を受け付け、
前記ペトリネットにおいて、所定のマーキングである初期マーキングから遷移可能なマーキングのそれぞれについて、
前記ペトリネットにおいて前記初期マーキングから前記マーキングに遷移するまでに発火する一連の前記トランジションを特定し、
特定した前記一連のトランジションを記述することにより、前記パターンデータを生成し、
前記マーキングにおいて発火可能な前記トランジションに向けて前記アークが接続されている前記プレースである入力プレースを前記モデル情報より特定し、
特定した前記入力プレースに対応付けて、前記パターンデータを記憶すること、
を特徴とする業務管理方法。
【請求項８】
請求項６または７の何れかに記載の業務管理方法であって、
前記モデル情報は、前記プレースを示すプレース情報、前記トランジションを示すトランジション情報、および前記アークを示すアーク情報を含み、
前記情報処理装置は、受け付けた前記モデル情報に含まれる第１の前記トランジション情報のそれぞれについて、
前記アーク情報に基づいて、前記第１のトランジション情報が示す第１の前記トランジションを接続元とする前記アークの接続先となる第１の前記プレースを特定し、
前記モデル情報に、前記第１のプレースを接続元とし、かつ前記第１のトランジションを接続先とする前記アークを示す前記アーク情報が含まれている場合、前記第１のトランジションの複製となる第２のトランジションを示す第２の前記トランジション情報を生成し、生成した前記第２のトランジション情報を前記モデル情報に追加し、前記第１のプレースの複製となる第２の前記プレースを示す第２の前記プレース情報を生成し、生成した前記第２のプレース情報を前記モデル情報に追加し、前記モデル情報に含まれる、前記第１のプレースを接続元とし、かつ前記第１のトランジションを接続先とする前記アークを示す前記アーク情報を、前記アークの接続先が前記第２のトランジションとなるように更新し、前記第２のトランジションを接続元とし、前記第２のプレースを接続先とする前記アークを示す前記アーク情報を生成し、生成した前記アーク情報を前記モデル情報に追加し、前記第２のプレースを接続元とし、前記第１のトランジションを接続先とする前記アークを示す前記アーク情報を生成し、生成した前記アーク情報を前記モデル情報に追加すること、
を特徴とする業務管理方法。
【請求項９】
請求項６または７の何れかに記載の業務管理方法であって、
前記モデル情報は、各前記プレースを示すプレース情報、各前記トランジションを示すトランジション情報、および各前記アークを示すアーク情報を含み、
前記情報処理装置は、受け付けた前記モデル情報に含まれる第１の前記トランジション情報のそれぞれについて、
前記アーク情報に基づいて、前記第１のトランジション情報が示す第１の前記トランジションを接続先とする前記アークの接続元となる前記プレースである入力プレースを特定し、
前記第１のトランジションについて、第１および第２の前記入力プレースが特定された場合、前記第２のトランジションの複製となる第２のトランジションを示す第２のトランジション情報を生成し、生成した前記第２のトランジション情報を前記モデル情報に追加し、前記アーク情報に基づいて、前記第１のトランジションを接続元とする前記アークの接続先となる前記プレースである出力プレースを特定し、前記モデル情報に含まれる、前記第２の入力プレースを接続元とし、かつ前記第１のトランジションを接続先とする前記アークを示す前記アーク情報を、前記アークの接続先が前記第２のトランジションとなるように更新し、前記第２のトランジションを接続元とし、前記出力プレースを接続先とする前記アークを示す前記アーク情報を生成し、生成した前記アーク情報を前記モデル情報に追加すること、
を特徴とする業務管理方法。
【請求項１０】
ファイルの生成を伴う複数の処理により構成される業務を管理する情報処理装置であって、
ＣＰＵおよびメモリと、
前記処理により生成される前記ファイルを管理するファイルシステムと、
前記業務を構成する一連の前記処理のそれぞれについて、それぞれの前記処理が行われるまでに生成される前記ファイルが記述されたパターンデータを記憶するパターン記憶部と、
前記ファイルシステムに管理されている前記ファイルの一覧を記述したリストデータを生成するファイルリスト生成部と、
生成した前記リストデータにマッチする前記パターンデータに対応する前記処理を前記パターン記憶部から取得する進捗状況判定部と、
取得した前記処理を、前記業務において次に行うべき処理として出力装置に出力する進捗状況出力部と、
を備えることを特徴とする情報処理装置。
【請求項１１】
ファイルの生成を伴う複数の処理により構成される業務を管理するためのプログラムであって、
ＣＰＵ、メモリ、およびファイルシステムを備える情報処理装置に、
前記処理により生成される前記ファイルを記憶するステップと、
前記業務を構成する一連の前記処理のそれぞれについて、それぞれの前記処理が行われるまでに生成される前記ファイルが記述されたパターンデータを記憶するステップと、
記憶している前記ファイルの一覧を記述したリストデータを生成するステップと、
生成した前記リストデータにマッチする前記パターンデータに対応する前記処理を取得するステップと、
取得した前記処理を、前記業務において次に行うべき処理として出力装置に出力するステップと、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファイルの生成状況に応じて業務の進捗状況を管理することを可能とする業務管理方法、情報処理装置、およびプログラムに関する。
【背景技術】
【０００２】
従来各種の業務の遂行過程における成果物は紙の書類として管理されていた。近年ではコンピュータシステムにおいて、業務において発生する成果物をファイルとして管理するようになってきている。例えば、特許文献１には、出張の申請や精算に係る業務に用いるファイルを管理することで、業務の遂行を支援するシステムが開示されている。
【特許文献１】特開２０００−１５５７９３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、特許文献１に記載のシステムでは、業務に必要なデータの提供はできるものの、業務の進捗を管理することはできない。
【０００４】
本発明は、このような背景を鑑みてなされたものであり、ファイルの生成状況に応じて業務の進捗状況を管理することのできる、業務管理方法、情報処理装置、およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００５】
上記課題を解決するための本発明の主たる発明は、ファイルを生成する一連の処理により構成される業務を管理する方法であって、ＣＰＵとメモリとファイルシステムとを備える情報処理装置が、前記処理により生成された前記ファイルを記憶し、前記業務を構成する一連の前記処理のそれぞれについて、それぞれの前記処理が行われるまでに生成される前記ファイルが記述されたパターンデータを記憶し、記憶している前記ファイルの一覧を記述したリストデータを生成し、生成した前記リストデータにマッチする前記パターンデータに対応する前記処理を取得し、取得した前記処理を、前記業務において次に行うべき処理として出力装置に出力することとする。
【発明の効果】
【０００６】
本発明によればファイルの生成状況に応じて業務の進捗状況を管理することができる。
【発明を実施するための最良の形態】
【０００７】
以下、本発明の一実施形態に係る業務管理システムについて説明する。
【０００８】
本実施形態の業務管理システムは、行政機関や民間企業などの事業体において、一連の処理から構成される業務１を管理するものである。本実施形態において、業務１とは、例えば役所において住民票を発行することや、企業において請求書を発行することなどであり、一連の処理から構成される。業務１を構成する各処理では、業務１の最後の処理を除くすべての処理において、成果物としてファイルが作成される。
【０００９】
業務１の流れの一例を図１に示す。図１の例では、処理Ｐ１が行われると、処理Ｐ１の内容に応じて、ファイルｄ１またはファイルｄ２の何れかが作成される。ファイルｄ２が作成された場合には、業務１が終了するが、ファイルｄ１が作成された場合には、処理Ｐ２が後続して行われ、ファイルｄ３が作成される。ファイルｄ３が作成されると、処理Ｐ３および処理Ｐ４が並行して行われて、それぞれファイルｄ４およびファイルｄ５が作成される。
【００１０】
図１の業務１を、具体例として役所での住民票の発行業務に当てはめた場合、処理Ｐ１は受付処理、処理Ｐ２は住民台帳の検索処理、処理Ｐ３はログファイルの作成処理、処理Ｐ４は住民票の印刷処理に対応させることができる。この場合、受付処理Ｐ１では、窓口の担当者から、申込用紙の記載に基づく住民の個人情報の入力を受け付けて、個人情報の記載したファイルｄ１が作成される。また、例えば、他の地方自治体の住民が間違って窓口に申し込んだ場合などには、受付処理Ｐ１において、エラーメッセージを含むメッセージファイルｄ２が作成される。住民台帳の検索処理Ｐ２では、ファイルｄ１に記載されている個人情報をキーとして、住民台帳データがデータベースから検索され、検索結果が記載されたファイルｄ３が作成される。ログファイルの作成処理Ｐ３では、検索結果のファイルｄ３などに基づいてログファイルｄ４が作成される。印刷処理ｄ５では、住民台帳の検索結果に基づいて、住民票を印刷するためのプリンタの制御命令を含む印刷ファイルｄ５が作成される。
【００１１】
本実施形態の業務管理システムでは、上記のような業務１において作成されるファイルの作成状況に応じて、現在の業務１の進捗状況などを管理するものである。
【００１２】
以下、本実施形態の業務管理システムの詳細について説明する。
【００１３】
＝＝ハードウェア構成＝＝
図２に、本実施形態に係る業務管理システムを構成する業務管理装置１０のハードウェア構成を示す。図２に示すように、業務管理装置１０は、ＣＰＵ１０１、メモリ１０２、記憶装置１０３、入力装置１０４、出力装置１０５を備えている。記憶装置１０３は、プログラムやデータを記憶する、例えばハードディスクドライブやＣＤ−ＲＯＭドライブ、フラッシュメモリなどである。ＣＰＵ１０１は、記憶装置１０３に記憶されているプログラムをメモリ１０２に読み出して実行することにより、各種の機能を実現する。入力装置１０４は、利用者から各種のデータの入力を受け付ける、例えばキーボードやマウス、マイクロフォンなどである。出力装置１０５は、情報を出力する、例えばディスプレイやプリンタ、スピーカなどである。
【００１４】
＝＝ソフトウェア構成＝＝
図３は、業務管理装置１０のソフトウェア構成を示す図である。同図に示すように、業務管理装置１０は、モデル情報入力部１１１、ＢＮＦデータ生成部１１２、状態判定プログラム生成部１１３、業務処理部１１４、案件番号指定部１１５、ファイルリスト生成部１１６、状態判定プログラム起動部１１７、状態出力部１１８、ファイルシステム１５１、状態判定プログラム記憶部１５２を備えている。
【００１５】
ファイルシステム１５１は、業務１に含まれる各処理により作成されるファイル２０を記憶する。ファイルシステム１５１は、例えば、記憶装置１０３やメモリ１０２が提供する記憶領域として実現される。ファイル２０は、ＸＭＬ（eXtensible Markup Language）で記述されるものとする。  
ファイルシステム１５１に記憶されるファイル２０の一例を図４に示す。同図に示すように、ファイル２０には、業務番号欄２１、案件番号欄２２、親ファイル欄２３、文書タイプ欄２４、トランジション欄２５、作成日時欄２６、内容欄２７が含まれている。
【００１６】
業務番号欄２１には、業務１の識別情報（以下、業務番号という。）が設定される。本実施形態では、複数の種類の業務１が行われることを想定しており、業務番号は業務管理システムで行われる業務１毎に付与されるものとする。  
案件番号欄２２には、業務が実際に行われた案件毎に割り当てられる番号（以下、案件番号という。）が設定される。なお、同一の業務１であっても、複数回行われた場合には、それぞれに異なる案件番号が割り当てられる。例えば、住民票の発行業務の場合、第１の住民に対して住民票を発行した場合に第１の案件番号が割り当てられ、続いて第２の住民に対して住民票を発行した場合には第１の案件番号とは異なる第２の案件番号が割り当てられる。
【００１７】
親ファイル欄２３には、このファイルの親となるファイル（以下、親ファイルという。）を示すファイル名が設定される。業務の流れにおいて、このファイルを作成した処理の直前の処理において作成されたファイルが親ファイルである。  
文書タイプ欄２４には、ファイルの種類を示す情報が設定される。本実施形態において、文書タイプ欄２４には、通常の文書を示す「ｄｏｃｕｍｅｎｔ」が設定されているものとする。  
トランジション欄２５には、ファイルの種類・区分を識別する情報として、このファイルが作成された処理に対応するトランジションに付与されたラベルが設定される。  
作成日時欄２６には、ファイルの作成日時が設定され、内容欄２７には、各処理に用いられるファイルの内容が設定される。
【００１８】
状態判定プログラム記憶部１５２は、業務番号に対応付けて、業務１の進捗状況を判定するためのプログラム（以下、状態判定プログラムという。）を記憶する。状態判定プログラム記憶部１５２は、例えば、記憶装置１０３やメモリ１０２が提供する記憶領域として実現される。なお、状態判定プログラム記憶部１５２は、ファイルシステム１５１における所定のディレクトリとして実現することもできる。
【００１９】
モデル情報入力部１１１は、業務をペトリネットでモデル化した場合の、ペトリネットを表現する情報（以下、モデル情報という。）の入力を受け付ける。モデル情報は、ペトリネットを構成するプレース、トランジション、およびアークについての情報（以下、それぞれプレース情報、トランジション情報、およびアーク情報という。）が含まれる。
【００２０】
モデル情報入力部１１１がモデル情報の入力を受け付ける入力画面２１０の一例を図５に示す。入力画面２１０は、業務番号の入力欄２１１とペトリネットの配置欄２１２とを備えている。また、ツールボックス２１３は、プレースアイコン２１４やトランジションアイコン２１５、アークアイコン２１６を備えており、ユーザはツールボックス２１３からアイコンをペトリネットの配置欄２１２に配置し、プレースやトランジションのラベルをキーボード等の入力装置１０４から入力して、ペトリネットを入力画面２１０上に作成する。
【００２１】
このように、本実施形態の業務管理装置１０では、直感的なペトリネットを用いて業務１をモデル化することができるので、利用者に分かり易い。したがって、利用者は容易に業務１のモデル化作業を行うことができる。
【００２２】
また、入力画面２１０のボタン２１７が押下されると、図６に示すような、ペトリネットを作成するにあたっての作成ルール２１８が表示される。本実施形態では、同図に示すようなルールに従って、利用者により業務がモデル化されることを前提としている。
【００２３】
ペトリネットの作成ルール２１８では、業務に含まれる処理をプレースとして、業務名をプレースのラベルとする（Ｒ１−１）。プレースのラベルは業務管理システムにおいて重複がないように設定するものとする。また、業務を構成する各処理において生成されるファイルをトランジションとして、ファイルの種類・区分を識別する情報をトランジションのラベルとする（Ｒ１−２）。プレースからトランジションへのアークにより、処理とファイルとの対応付けが表現される（Ｒ１−３）。トランジションからプレースへのアークにより、ファイルが作成された処理から他の処理への遷移が表現される（Ｒ１−４）。なお、本実施形態では、各アークの重みは全て１であるものとする（Ｒ１−５）。
【００２４】
業務の起点となる処理に対応するプレースは１つのみとする（Ｒ２）。すべてのトランジションには、アークが入力される元となるプレース（以下、入力プレースという。）が１つだけであり（Ｒ３）、入力プレースが複数ある場合はエラーである（Ｒ３−１）。また、入力プレースに該当する処理がない場合でも、ダミーの処理にあたるプレースが作成され、ダミーのプレースからトランジションへのアークも作成されるものとする（Ｒ３−２）。
【００２５】
一方、すべてのトランジションからアークが出力される先となるプレース（以下、出力プレースという。）は１つ以上あるものとして（Ｒ３）、後続する処理がない場合にも、業務の終了を示す処理などにあたるプレースが作成され、トランジションから作成されたプレースへのアークも作成されるものとする（Ｒ３−３）。
【００２６】
あるトランジションｔ１について、その入力プレースＰ１と出力プレースＰ２とが一致する、いわゆる自己ループとなる場合には（Ｒ４）、トランジションｔ１からプレースＰ１へのアークが作成された後（Ｒ４−１）、トランジションｔ１を複製したトランジションｔ２が作成され（Ｒ４−２）、プレースＰ１からトランジションｔ２へのアークが作成されるものとする（Ｒ４−３）。次に、プレースＰ１を複製したプレースＰ２が作成され（Ｒ４−４）、トランジションｔ２からプレースＰ２へのアークが作成されて（Ｒ４−５）、プレースＰ２からトランジションｔ１へのアークが作成されるものとする（Ｒ４−６）。
【００２７】
入力画面２１０に作成されたペトリネット２１５を表現するモデル情報３０の構成例を図７に示す。同図に示すように、モデル情報３０には、プレース情報３１０、トランジション情報３２０、およびアーク情報３３０が含まれている。
【００２８】
プレース情報３１０には、ラベル欄３１１、表示情報欄３１２、およびトークン欄３１３が含まれる。ラベル欄３１１には、プレースに設定されたラベルが設定される。表示情報欄３１２には、プレースを画面に描画するための表示情報が設定される。表示情報欄３１２に設定される表示情報は、プレースを描画するための円の中心の座標と半径である。トークン欄３１３には、プレースに設定されるトークンの初期値が含まれる。
【００２９】
トランジション情報３２０には、ラベル欄３２１および表示情報欄３２２が含まれる。ラベル欄３２１には、トランジションに設定されたラベルが設定される。表示情報欄３２２には、トランジションを画面に描画するための表示情報が設定される。表示情報欄３２２に設定される表示情報は、矩形の左上および右下の座標であるものとする。
【００３０】
アーク情報３３０には、プレース欄３３１、トランジション欄３３２、方向欄３３３、および重み欄３３４が含まれる。アークにより接続されるプレースとトランジションについて、プレースを特定するラベルがプレース欄３３１に設定され、トランジションを特定するラベルがトランジション欄３３２に設定される。方向欄３３３には、アークがプレースからトランジションに向けて接続されているか、トランジションからプレースに向けて接続されているかを示す情報（以下、方向情報という。）が設定される。方向欄３３３に設定される方向情報は「０」または「１」である。アークがプレースからトランジションに向けて接続されている場合、方向情報は「０」であり、アークがトランジションからプレースに向けて接続されている場合、方向情報は「１」である。重み欄３３４には、アークの重みが設定される。本実施形態では、アークの重みは「１」であるものとする。
【００３１】
モデル情報入力部１１１は、入力されたモデル情報３０に、トランジション欄３３２に設定されている値が同じで、方向欄３３３に「０」が設定されている複数のアーク情報３３０が含まれていた場合、すなわち、１つのトランジションに複数のアークが入力されていた場合には、エラーとして、エラーメッセージを出力する（Ｒ３−１）。
【００３２】
また、入力されたモデル情報３０に、プレース欄３３１およびトランジション欄３３２が同一で方向欄３３３の値が異なる２つのアーク情報３３０が含まれている場合、すなわち自己ループとなっている場合（Ｒ４）にも、その旨を示すエラーメッセージを出力するようにする。
【００３３】
ＢＮＦデータ生成部１１２は、モデル情報入力部１１１が受け付けたモデル情報に基づいて、状態判定プログラムを作成するためのロジックを記述したパターンデータ（以下、ＢＮＦデータという。）を生成する。本実施形態において、ＢＮＦデータは、ＢＮＦ（Backus Naur Form）形式で記述された、構文解析器生成プログラムへの入力データとし、構文解析器生成プログラムは、ｙａｃｃ（Yet Another Compiler Compiler）を想定する。なお、ＢＮＦデータの生成処理の詳細については後述する。
【００３４】
状態判定プログラム生成部１１３は、ＢＮＦデータ生成部が生成したＢＮＦデータを構文解析器生成プログラムの入力データとして、構文解析器生成プログラムを実行することにより、状態判定プログラムを生成する。なお、本実施形態ではさらに、ｙａｃｃにより生成されたソースコードをコンパイラでコンパイルすることにより、状態判定プログラムを生成するものとする。
【００３５】
状態判定プログラム記憶部１５２は、業務番号に対応付けて、状態判定プログラム生成部１１３が生成した状態判定プログラムを記憶する。なお、状態判定プログラム記憶部１５２は、例えば、ファイルシステム１５１における所定のディレクトリとして実現することができる。
【００３６】
業務処理部１１４は、例えば、データの入力プログラムや、データベースの検索プログラムなどの各種のアプリケーションプログラムを実行することにより各種の処理を行い、その成果物としてのファイルを生成し、生成したファイルをファイルシステム１５１に書き込む。本実施形態では、業務処理部１１４により実行される各種のアプリケーションプログラムは、ＸＭＬ形式で記述されたファイル２０を出力するものとし、上述した図４のファイル２０のように、実体番号や親ファイル、文書タイプ、作成日時などが業務処理部１１４によりファイル２０に挿入されるものとする。
【００３７】
案件番号指定部１１５は、業務番号および案件番号の指定を受け付ける。案件番号指定部１１５は、例えば、キーボードやマウス等の入力装置１０４から業務番号と案件番号との指定を受け付ける。  
ファイルリスト生成部１１６は、案件番号指定部１１５が受け付けた業務番号および案件番号に対応するファイルをファイルシステム１５１から検索し、検索したファイルのリストを記述したデータ（以下、ファイルリストという。本発明のリストデータに該当する。）を生成する。なお、ファイルリストの生成処理の詳細については後述する。
【００３８】
状態判定プログラム起動部１１７は、案件番号指定部１１５が受け付けた業務番号に対応する状態判定プログラムを状態判定プログラム記憶部１５２から読み出し、読み出した状態判定プログラムを起動する。  
状態出力部１１８は、状態判定プログラムが実行されることにより実現され、ファイルリストに応じて業務の進捗状況が出力される。
【００３９】
なお、上述したモデル情報入力部１１１、ＢＮＦデータ生成部１１２、状態判定プログラム生成部１１３、業務処理部１１４、案件番号指定部１１５、ファイルリスト生成部１１６、状態判定プログラム起動部１１７、および状態出力部１１８はいずれも、業務管理装置１０が備えるＣＰＵ１０１が記憶装置１０３に記憶されているプログラムをメモリ１０２に読み出して実行することにより実現される。
【００４０】
以下、本実施形態の業務管理システムにおける処理の流れについて説明する。  
本実施形態の業務管理システムでは、業務管理装置１０は、上述した図５の画面２１０を介して受け付けたモデル情報３０に基づいて状態判定プログラムを生成し、ファイルシステム１５１に登録されているファイルの一覧を記述したファイルリストを入力データとして状態判定プログラムを起動することにより、業務の進捗状況を出力するようにしている。
【００４１】
＝＝ＢＮＦデータの生成処理＝＝
図８は、モデル情報３０に基づくＢＮＦデータの生成処理の流れを示す図である。  
ＢＮＦデータ生成部１１２は、ＢＮＦデータを格納する変数ＢＮＦに、ｙａｃｃにより生成される構文解析器の初期状態を指定する「％ｓｔａｒｔ  Ｓ」を設定し（Ｓ４０１）、モデル情報３０に含まれる最初のプレース情報３１０のラベル欄３１１に設定されているラベルをＰとする（Ｓ４０２）。ＢＮＦデータ生成部１１２は、初期状態「Ｓ」からの遷移先を括弧で括られたＰとなるように、ＢＮＦに「Ｓ：’（’Ｐ’）’；」を追加する（Ｓ４０３）。ＢＮＦデータ生成部１１２は、モデル情報３０に含まれる各プレース情報３１０について以下（Ｓ４０４）〜（Ｓ４１６）の処理を行う。
【００４２】
ＢＮＦデータ生成部１１２は、プレース情報３１０のラベル欄３１１に設定されているラベルをＰとする（Ｓ４０４）。ＢＮＦデータ生成部１１２は、モデル情報３０に含まれているアーク情報３３０のうち、プレース欄３３１にＰが設定されており、かつ方向欄３３３に「０」が設定されているものを検索する（Ｓ４０５）。検索結果のレコードがなければ（Ｓ４０６：ＹＥＳ）、次のプレース情報３１０について再度（Ｓ４０４）からの処理を行う。一方、検索結果のレコードがあれば（Ｓ４０６：ＮＯ）、ＢＮＦデータ生成部１１２は、カウンタを０に設定し（Ｓ４０７）、検索結果のアーク情報３３０のそれぞれについて以下（Ｓ４０８）〜（Ｓ４１６）の処理を行う。
【００４３】
ＢＮＦデータ生成部１１２は、検索結果のアーク情報３３０のトランジション欄３３２に設定されているトランジションのラベルをＴとして（Ｓ４０８）、図９に示す接続先プレースリストの取得処理を行う（Ｓ４０９）。
【００４４】
図９の接続先プレースリストの取得処理において、ＢＮＦデータ生成部１１２は、接続先プレースリストを空に初期化する（Ｓ４２１）。ＢＮＦデータ生成部１１２は、モデル情報３０に含まれているアーク情報３３０のうち、トランジション欄３３２にＴが設定されており、方向欄３３３に「１」が設定されているものを取得し（Ｓ４２２）、取得した各アーク情報３３０について以下の処理を行う。
【００４５】
ＢＮＦデータ生成部１１２は、アーク情報３３０のプレース欄３３１に設定されているラベルをＰｊとして（Ｓ４２３）、モデル情報３０に含まれているアーク情報３３０のうち、プレース欄３３１にＰｊが設定され、かつ方向欄３３３に「０」が設定されているものを検索する（Ｓ４２４）。検索結果のアーク情報３３０がある場合（Ｓ４２５：ＹＥＳ）、ＢＮＦデータ生成部１１２は、接続先プレースリストにＰｊを追加する（Ｓ４２６）。以上の処理を各アーク情報３３０について繰り返すことにより、ＢＮＦデータ生成部１１２は、モデル情報３０が示すペトリネットにおいて、Ｔが示すトランジションを接続元とするアークの接続先となるプレースの一覧を接続先プレースリストとして生成する。
【００４６】
ＢＮＦデータ生成部１１２は、図９の処理により生成した接続先プレースリストが空であった場合（Ｓ４１０：ＹＥＳ）、「｛ｐｒｉｎｔ（”次の処理は、ありません。”）；｝」をアクションとし（Ｓ４１１）、接続先プレースリストが空でなければ（Ｓ４１０：ＮＯ）、「｛ｐｒｉｎｔ（”次の処理は、『接続先プレースリスト』です。”）；｝」をアクションとする（Ｓ４１１）。ＢＮＦデータ生成部１１２は、カウンタが「０」であれば（Ｓ４１３：ＹＥＳ）、ＢＮＦに、Ｐ、「：」、Ｔ、およびアクションを追加し（Ｓ４１４）、カウンタが０でなければ（Ｓ４１３：ＮＯ）、ＢＮＦに「｜」、Ｔ、およびアクションを追加する（Ｓ４１５）。
【００４７】
ＢＮＦデータ生成部１１２は、接続先プレースリストが空でなければ（Ｓ４１６：ＮＯ）、接続先プレースリストについて、図１０に示すＢＮＦ追加処理を行う（Ｓ４１７）。
【００４８】
図１０に示すＢＮＦ追加処理において、ＢＮＦデータ生成部１１２は、接続先プレースリストに含まれる各ラベル（以下、接続先プレースという。）について、ＢＮＦに「｜Ｔ  接続先プレース」を追加する（Ｓ４４１）。接続先プレースリストに含まれている接続先プレースが２つ以上ある場合（Ｓ４４２：ＹＥＳ）、ＢＮＦデータ生成部１１２は、変数ｊに「２」を設定する（Ｓ４４３）。ＢＮＦデータ生成部１１２は、接続先プレースリストから、ｊ個の接続先プレースの組み合わせを全通り算出し（Ｓ４４４）、ＢＮＦに、「｜Ｔ」を追加する（Ｓ４４５）。ＢＮＦデータ生成部１１２は、各組み合わせについて、その組み合わせに含まれる各接続先プレースをＰｊとして、「  ’（’Ｐｊ  ’）’」を追加する（Ｓ４４５）。ＢＮＦデータ生成部１１２は、ｊをインクリメントして（Ｓ４４６）、ｊが接続先プレースの数以下である間、（Ｓ４４４）からの処理を繰り返す。
【００４９】
次に、ＢＮＦデータ生成部１１２は、ＢＮＦにｙａｃｃの構文解析ルールの区切りとなる「；」を追加して（Ｓ４１８）、カウンタをインクリメントする（Ｓ４１９）。
【００５０】
以上のようにして、ＢＮＦデータ生成部１１２は、モデル情報３０に基づいて、ｙａｃｃの入力データとなるＢＮＦデータを生成する。本実施形態では、状態判定プログラム生成部１１３により、ＢＮＦデータがｙａｃｃに与えられてソースコードが生成され、さらにソースコードがコンパイルされて状態判定プログラムが生成される。状態判定プログラム生成部１１３は、コンパイルされた状態判定プログラムを業務番号に対応付けて状態判定プログラム記憶部１５２に登録する。
【００５１】
上記の処理により生成されるＢＮＦデータ４１の一例を図１１に示す。同図に示すように、ＢＮＦデータ４１では、ペトリネットにおける各プレースを構文解析器における状態として、トランジションのリストが記述されたテキストデータについてのルールが表現されている。
【００５２】
図１１のＢＮＦデータ４１により定義される構文規則によれば、業務１を構成する一連の処理のそれぞれにおいて生成されるファイル２０のリストを記述したファイルリストに応じて、業務１において次に行うべき処理が出力されることになる。すなわち、本実施形態の業務管理装置１０によれば、業務をモデル化したペトリネットを示すモデル情報３０が入力されることにより、ファイルの生成状況に応じて次に行うべき処理を出力するための状態判定プログラムを生成することができる。
【００５３】
またその一方で、ＢＮＦデータ４１は厳格な構文規則を定義するため、１つでもファイル２０が生成されていない場合には、状態判定プログラムはエラーとなる。例えば、図５に示したペトリネットにおいて、トランジションｄ１およびｄ４に対応するファイル２０は作成されているが、トランジションｄ３に対応するファイル２０が作成されていない場合には、ｄ３に対応するファイル２０を除いたファイル２０のリストでは、ＢＮＦデータ４１により定義される構文規則にマッチせず、状態判定プログラムはエラーになる。したがって、本実施形態の業務管理装置１０が生成するＢＮＦデータに基づく構文解析器によれば、ペトリネットによりモデル化された業務１が所定の順番に行われていない場合にはエラーが報知されるため、管理者は業務が適切に行われているかどうかを容易に把握することが可能となる。
【００５４】
なお、本実施形態では、ＢＮＦデータ生成部１１２は、ｙａｃｃによる構文解析器のアクションとして、次に行うべき処理を出力するようなＢＮＦデータ４１を生成するものとしたが、これに限らず、例えば、ＢＮＦデータ生成部１１２は、アクションとして、完了した処理の一覧を出力するようにしてもよい。この場合、例えば、図１０の（Ｓ４４１）および（Ｓ４４６）において、アクションとして「｛ｐｒｉｎｔ（”Ｐが完了しました”）；｝」をＢＮＦに追加することにより、完了した処理を出力するようなＢＮＦデータ４１を生成することができる。また、アクションとして、次の処理において生成されるファイル２０のトランジション欄２５の値を出力するようにしてもよい。
【００５５】
＝＝進捗状況の出力処理＝＝
上記のようにして状態判定プログラムが生成されると、状態判定プログラムを利用した業務の進捗状況の出力処理が行われる。なお、本実施形態では、業務の進捗状況として、次に行うべき処理を出力するようにしている。
【００５６】
図１２は、業務において次に行うべき処理を出力する処理を説明する図である。また、図１２に示す処理をフロー図にしたものが図１３である。図１２および図１３に示すように、案件番号指定部１１５が、画面５１を介して利用者から業務番号および案件番号の入力を受け付けると（Ｓ５０１）、ファイルリスト生成部１１６が、後述するファイルリストの生成処理により、ファイルシステム１５１に管理されているファイル群５２からファイルリスト５３を生成する（Ｓ５０２）。次に、状態判定プログラム起動部１１７が、業務番号に対応する状態判定プログラム５４を状態判定プログラム記憶部１５２から読み出して起動し（Ｓ５０３）、状態出力部１１８は、状態判定プログラム５４の入力データとして上記のファイルリスト５３を与えることで、次に行うべき処理を画面５５に出力する（Ｓ５０４）。
【００５７】
図１４および図１５は、ファイルリストの生成処理の流れを示す図である。  
ファイルリスト生成部１１６は、空のデータを引数として図１５のリスト生成処理を呼び出す（Ｓ５２１）。ファイルリスト生成部１１６は、リスト生成処理を呼び出すたびにスタックに格納されるローカル変数としてローカルリストを空に初期化し（Ｓ５２２）、ファイルシステム１５１に管理されているファイル２０のうち、業務番号欄２１に案件番号指定部１１５が受け付けた業務番号が設定されており、案件番号欄２２に案件番号指定部１１５が受け付けた案件番号が設定されており、かつ親ファイル欄２３に、リスト生成処理の引数が設定されているものを検索する（Ｓ５２３）。上記のようなファイル２０があれば（Ｓ５２４：ＹＥＳ）、ファイルリスト生成部１１６は、検索したファイル２０のそれぞれについて、ローカルリストにＳ式におけるリストの開始記号である「（」を追加し（Ｓ５２５）、さらにファイル２０のトランジション欄２５に設定されているラベルを追加する（Ｓ５２６）。ファイルリスト生成部１１６は、ファイル２０のファイル名を引数としてリスト生成処理を再帰的に呼び出し、呼び出したリスト生成処理の戻り値を追加リストとする（Ｓ５２７）。ファイルリスト生成部１１６は、ローカルリストに追加リストを追加し（Ｓ５２８）、さらにＳ式におけるリストの終端記号である「）」を追加する（Ｓ５２９）。ファイルリスト生成部１１６は、以上の処理を各ファイル２０について行った後、ローカルリストを呼出元に返す（Ｓ５３０）。
【００５８】
以上の処理によりファイルリスト生成部１１６は、ファイルリストを生成する。図１２の例では、ファイルシステム１５１に、上述した図５の例におけるペトリネットの「ｄ１」および「ｄ３」に対応するファイル２０が格納されており、「ｄ３」の親が「ｄ１」である。この場合、上述のファイルリストの生成処理によって、「（ｄ１  ｄ３）」が生成される。
【００５９】
このように、本実施形態の業務管理装置１０によれば、ファイル２０に設定されている親ファイル欄２３を参照して、業務１の流れに対応するファイル２０の親子関係をＳ式により木構造として表現することができる。ファイル２０の親子関係は、業務１の流れを表現するものであるので、上記の処理により生成されるファイルリストは、業務１の流れに従ったファイルのリストを表現していることになる。したがって、ファイルリストに対して上述のＢＮＦデータ４１に基づく構文解析を行うことにより、業務１の流れに従ってファイル２０が適切に生成されているかどうかを検査することが可能となる。
【００６０】
上述のファイルリスト「（ｄ１  ｄ３）」を図１１に示したＢＮＦデータ４１に基づく状態判定プログラムの入力データとした場合、「Ｐ１ ｜ ｄ１ Ｐ２」のルールと、「Ｐ２ ｜ ｄ３」のルールとの両方にマッチし、前者にはアクションが定義されていないため何も出力されないが、後者には「次の処理は『Ｐ３、Ｐ４』です。」と出力するアクションが定義されているので、図１２の画面５５のような出力が行われることになる。すなわち、ファイルシステム１５１におけるファイル２０の生成状況に応じて、業務１において次に行うべき処理を出力することができる。
【００６１】
図１６は、上で説明したファイル群５２とは異なるファイル群５２’の一例を示す図である。図１６の例では、「ｄ１１」〜「ｄ１６」の６つのファイル２０がファイルシステム１５１に記憶されており、「ｄ１１」はファイル群５２’におけるファイルの親子関係のルートである。「ｄ１２」および「ｄ１５」の親が「ｄ１１」である。「ｄ１３」の親が「ｄ１２」であり、「ｄ１４」の親が「ｄ１３」である。また「ｄ１６」の親が「ｄ１５」である。このような親子関係のファイル群５２’について、上述したファイルリストの生成処理を行うと、ファイル生成部１１６は、「（ｄ１１（ｄ１２  ｄ１３  ｄ１４）（ｄ１５  ｄ１６））」というファイルリスト５３’を生成する。
【００６２】
＝＝取消ファイル＝＝
上述の実施形態では、ファイル２０の文書タイプ欄２４には「ｄｏｃｕｍｅｎｔ」が設定されるものとしたが、「ｃａｎｃｅｌ」が設定されることもある。文書タイプ欄２４に「ｃａｎｃｅｌ」が設定されたファイル２０は、親ファイル欄２３に設定されるファイル名のファイル２０が削除されたことを示すファイル（以下、取消ファイルという。）である。
【００６３】
ファイルリスト生成部１１６は、ファイルリストを生成する際に、取消ファイルの親ファイル欄２３に設定されているファイル名が示すファイル２０を除いたファイルリストを生成する。
【００６４】
具体的には、ファイルリスト生成部１１６は、図１５のリスト生成処理の（Ｓ５２３）において、業務番号と案件番号に対応し、文書タイプ欄２４に「ｄｏｃｕｍｅｎｔ」が設定されており、かつ親ファイル欄２３に引数が設定されているファイル２０を検索するようにし、さらに上記のファイル２０がある場合には、検索したファイル２０のそれぞれについて、ファイル２０のファイル名が親ファイル欄２３に設定されており、かつ文書タイプ欄２４に「ｃａｎｃｅｌ」が設定されている取消ファイルを検索する。取消ファイルが見つかった場合には、ファイルリスト生成部１１６は、ファイル２０を検索結果から削除するようにする。
【００６５】
図１７には、図１６の例のファイル群５２’に、「ｄ４」を削除するための「ｄ７」の取消ファイルが追加されたファイル群５２”の一例を示している。図１７の例の場合、ファイルリスト５３”は、ｄ４がファイルリスト５３’から削除されるので、生成されるファイルリスト５３”は、「（ｄ１（ｄ２  ｄ３）（ｄ５  ｄ６））」となる。
【００６６】
以上のように取消ファイルが示すファイル２０はファイルリスト５３から除外されることになる。したがって、例えば、ファイルシステム１５１をＣＤ−Ｒにより実現する場合など、ファイル２０の更新や削除ができないファイルシステム１５１にも対応することが可能となる。よって、不正な改ざん処理が行われないようにファイルシステム１５１を採用することができるので、業務管理システムの安全性やファイル２０の保全性を高めることができる。また、ファイル２０がファイルシステム１５１から実際には削除されないようにすることで、管理者は後からファイル２０をすべて検査することもできる。この場合、より細やかな業務管理を行うことができる。
【００６７】
＝＝行列を用いて計算＝＝
次に、モデル情報３０に含まれるアーク情報３３０を、行列として管理するようにした場合について説明する。行列により表現されるアーク情報３３０’の一例を図１８に示す。同図に示すように、この場合のアーク情報３３０’は、ペトリネットに含まれるトランジションを列とし、プレースを行とした行列により表現され、行列の各項目に設定される値は、正負が方向を示し、絶対値が重みを示す。項目が負の値である場合、アークはプレースからトランジションに向けて接続されているものとし、正の値である場合には、アークはトランジションからプレースに接続されているものとする。
【００６８】
アーク情報３３０を行列により表現する場合におけるＢＮＦデータの生成処理の流れを図１９に示す。同図に示す処理は、上述した図８に示すＢＮＦデータの生成処理を変形したものである。図１９に示すように、図８の（Ｓ４０２）に代えて、（Ｓ４０２’）では、アーク情報３３０’の行列の最初の行に対応するプレースのラベルをＰとする。また、（Ｓ４０４）〜（Ｓ４１９）は、アーク情報３３０の各行について行われ、各行のラベルがＰに設定される（Ｓ４０４’）。また、プレースを起点とするアークの接続先となるトランジションの検索は、行の中で「−１」の列を検索することにより行われる（Ｓ４０５’）。プレースから接続されたトランジションのラベルＴには、「−１」の列のラベルが設定される（Ｓ４０８’）。また、接続先プレースリストは、図９の処理に代えて、現在の列に対応する各行の項目のうち「１」となっている行のラベルを抽出することにより取得するようにする（Ｓ４０９’）。
【００６９】
このように、行列により表現したアーク情報３３０’は、プレースとトランジションとの接続関係を容易に把握することが可能である。したがって、行列のアーク情報３３０’を用いることで、上記の接続元プレースリストの生成処理をより簡単に実現することができる。よって、業務管理システムの負荷を低減することができる。
【００７０】
＝＝モデル情報の修正＝＝
なお、モデル情報入力部１１１は、上述の図６に示すルール（Ｒ４−１）〜（Ｒ４−６）に示す処理を行うようにしてもよい。この場合、モデル情報入力部１１１は、入力されたモデル情報３０に、プレース欄３３１およびトランジション欄３３２が同一で方向欄３３３の値が異なる２つのアーク情報３３０が含まれているかどうかにより、自己ループ（Ｒ４）となっているかどうかを判定する。
【００７１】
モデル情報入力部１１１は、自己ループとなっている場合には、自己ループになっているトランジションおよびプレースをそれぞれ「ｔ１」および「ｐ１」とした場合、トランジションｔ１についてのトランジション情報３２０の複製を作成し（Ｒ４−２）、複製したトランジション情報３２０のラベル欄３２１には新たにラベル（この例では「ｔ２」とする。なお、他のトランジション情報３２０のラベル欄３２１に設定されているラベルとは異なるラベルとする。）を設定する。
【００７２】
モデル情報入力部１１１は、プレースｐ１についてのプレース情報３１０の複製を作成し（Ｒ４−４）、複製したプレース情報３１０のラベル欄３１１には新たなラベル（この例では「ｐ２」とする。なお、他のプレース情報３１０のラベル欄３１１に設定されているラベルとは異なるラベルとする。）を設定する。
【００７３】
モデル情報入力部１１１は、プレース欄３３１が「ｐ１」であり、トランジション欄３３２が「ｔ１」であり、かつ方向欄３３３が「０」であるアーク情報３３０を削除する（Ｒ４−１）。モデル情報入力部１１１は、新たにアーク情報３３０を生成し、生成したアーク情報３３０のプレース欄３３１に「ｐ１」を、トランジション欄３３２に「ｔ２」を、方向欄３３３に「０」を設定する（Ｒ４−３）。
【００７４】
また、モデル情報入力部１１１は、新たにアーク情報３３０を生成し、生成したアーク情報３３０のプレース欄３３１に「ｐ２」を、トランジション欄３３２に「ｔ２」を、方向欄３３３に「１」を設定する（Ｒ４−５）。
【００７５】
モデル情報入力部１１１は、さらに新たなアーク情報３３０を生成し、生成したアーク情報３３０のプレース欄３３１に「ｐ２」を、トランジション欄３３２に「ｔ１」を、方向欄３３３に「０」を設定する（Ｒ４−６）。
【００７６】
なお、モデル情報入力部１１１は、プレースｐ２およびトランジションｔ２について、画面２１０に表示し、利用者がさらに修正することができるようにしてもよい。
【００７７】
以上のようにして、モデル情報入力部１１１は、自己ループとなるプレースとトランジションの関係があった場合に純粋化を行うことができる。
【００７８】
また、本実施形態の業務管理システムでは、トランジションに入力されるアークが複数あった場合に、モデル情報入力部１１１が、ペトリネットを修正するようにすることもできる。図２０は、複数のアークが入力されているトランジション（ｄ３、ｄ４およびｄ５）を含むペトリネットの一例を示す図である。このようなペトリネットを表現するモデル情報３０が入力された場合、モデル情報入力部１１１は、図２１に示すような、モデル情報３０の修正処理を行う。モデル情報入力部１１１は、入力されたモデル情報３０に含まれる各トランジション情報３２０について以下の処理を行う。
【００７９】
モデル情報入力部１１１は、トランジション情報３２０のラベル欄３２１に設定されているラベルをＴとして（Ｓ５４１）、モデル情報３０に含まれるアーク情報３３０のうち、トランジション欄３３２にＴが設定され、かつ方向欄３３３に「０」が設定されているものを検索してリストにする（Ｓ５４２）。リストに含まれるアーク情報３３０の数が２つ以上ある場合（Ｓ５４３）、モデル情報入力部１１１は、トランジション欄３３２にＴが設定され、かつ方向欄３３３に「１」が設定されているアーク情報３３３０のプレース欄３３１に設定されているラベルをＰとして（Ｓ５４４）、変数ｉに２を設定する（Ｓ５４５）。モデル情報入力部１１１は、ｉがリストに含まれるアーク情報３３０の数以下である間以下の処理を行う。
【００８０】
モデル情報入力部１１１は、リスト中のｉ番目のアーク情報３３０をＡとする（Ｓ５４６）。モデル情報入力部１１１は、トランジション情報３２０の複製を生成し（Ｓ５４７）、生成した複製のラベル欄３２１には、Ｔにｉを連結した文字列を設定し（Ｓ５４８）、Ａのトランジション欄３３２にもＴにｉを連結した文字列を設定し（Ｓ５４９）、ｉをインクリメントする（Ｓ５５０）。
【００８１】
モデル情報入力部１１１は、以上の処理を繰り返すことで、複数のアークが入力されているトランジションの複製を生成して、各トランジションにはアークが１つのみ入力されるようにすることができる。
【００８２】
図２０に示すペトリネットが入力され、上記図２１の処理を行った後のペトリネットの例を図２２に示す。同図に示すように、図２０において複数のアークが入力されていたトランジション「ｄ３」について、図２２ではトランジション「ｄ３」の複製となるトランジション「ｄ３２」および「ｄ３３」が追加されており、図２０においてトランジション「ｄ３」からの出力プレースであったＰ４に対して、トランジション「ｄ３２」および「ｄ３３」からアークが出力されている。同様に、複数のアークが入力されていたトランジション「ｄ４」および「ｄ５」についても、それぞれ複製のトランジション「ｄ４２」および「ｄ５２」が追加され、追加されたトランジション「ｄ４２」」および「ｄ５２」から、トランジション「ｄ４」および「ｄ５」の出力プレースであるプレース「Ｐ５」および「Ｐ６」に対してアークが出力されている。
【００８３】
＝＝マーキングを利用したＢＮＦデータの生成処理＝＝
次に、ペトリネットにおけるマーキングを利用したＢＮＦデータ４１’の生成処理について説明する。なお、以下の説明において、マーキングは鍵括弧「［］」に括られた数字の列として表現されるものとし、簡単のため、各プレースには１桁のトークンのみが存在しうるものとする。
【００８４】
以下の説明では、利用者が、モデル情報３０の入力画面２１０において、図２３に示すようなペトリネットを作成したことを想定する。同図の例において、ペトリネットの基準となるプレース「Ｐ１」には１つのトークンがあり、それ以外のプレースにはトークンがないものとする。すなわち、図２３のペトリネットにおいてマーキングの初期値は［１００００００］である。
【００８５】
また、本実施形態ではアークの重みは常に「１」であるものとしたが、マーキングを利用してＢＮＦデータを生成する場合には各アークに任意の重みを設定することができる。図２３の例でも、プレースＰ４からトランジションｄ４に向けてのアークに重み「２」が設定されている。
【００８６】
マーキングを利用したＢＮＦデータ４１’の生成処理の流れを図２４に示す。また、図２４の処理に用いる処理キュー６１および処理済キュー６２の構成例を図２５に示す。図２５に示すように、処理キュー６１および処理済キュー６２は同じ構成であり、それぞれラベル、マーキング、トランジションが対応付けられて登録される。
【００８７】
ＢＮＦデータ生成部１１２は、図２６に示す初期化処理を行う（Ｓ６０１）。初期化処理において、ＢＮＦデータ生成部１１２は、処理キュー６１を空にし（Ｓ６２１）、処理済キュー６２も空にする（Ｓ６２２）。ＢＮＦデータ生成部１１２は、ＢＮＦデータ４１’を格納する変数ＢＮＦに、ｙａｃｃにより生成される構文解析器の初期状態を指定する「％ｓｔａｒｔ  Ｓ」を設定し（Ｓ６２３）、さらに初期状態「Ｓ」からの遷移先を１番目のマーキングのラベルとなる「Ｍ０」とするように、「Ｓ：Ｍ０；」をＢＮＦに追加する（Ｓ６２４）。
【００８８】
ＢＮＦデータ生成部１１２は、マーキングを格納する変数Ｍに、マーキングの初期値となる［１００００００］を設定する（Ｓ６２５）。なお、鍵括弧の中の数字の個数は、ペトリネットに含まれるプレースの個数、すなわちモデル情報３０に含まれるプレース情報３１０の個数である。図２３に示すようなペトリネットにはＰ１〜Ｐ７の７つのプレースが含まれているので、本実施形態の場合、マーキングは鍵括弧に括られた７桁の数値となる。
【００８９】
ＢＮＦデータ生成部１１２は、初期のマーキングのラベル「Ｍ０」を変数Ｌに設定し（Ｓ６２６）、モデル情報３０に含まれるアーク情報３３０のうち、プレースが所定の基準となるプレースのラベル（本実施形態では「Ｐ１」とする。）であり、かつ方向が「０」であるものを取得し（Ｓ６２７）、取得したアーク情報３３０のトランジション欄３３２に設定されているトランジションのラベルのリストを変数Ｔに設定する（Ｓ６２８）。
【００９０】
ＢＮＦデータ生成部１１２は、Ｌ、Ｍ、およびＴを対応付けて処理キュー６１に登録し（Ｓ６２９）、変数ｉを０に初期化する（Ｓ６３０）。
【００９１】
以上の初期化処理が終わると、ＢＮＦデータ生成部１１２は、処理キュー６１にレコードがある間、以下の処理を行う。
【００９２】
ＢＮＦデータ生成部１１２は、処理キュー６１からＬ、Ｍ、Ｔを１組取り出し（Ｓ６０２）、カウンタを０に初期化する（Ｓ６０３）。ＢＮＦデータ生成部１１２は、Ｔに含まれる各トランジションのラベルをＴｊとして、以下の処理を行う。
【００９３】
ＢＮＦデータ生成部１１２は、マーキングがＭのときにＴｊが発火した場合に遷移するマーキングをｍとし（Ｓ６０４）、図２７に示す次処理リストの取得処理を行う（Ｓ６０５）。
【００９４】
図２７に示す次処理リストの取得処理において、ＢＮＦデータ生成部１１２は、変数の次処理リストを空にし（Ｓ６４２）、次トランジションリストも空にする（Ｓ６４２）。ＢＮＦデータ生成部１１２は、モデル情報３０に含まれる各プレース情報３１０に設定されているラベルのそれぞれをＰｊとして以下の処理を行う。
【００９５】
ＢＮＦデータ生成部１１２は、ｍに設定されているＰｊのトークン数をＫとして（Ｓ６４３）、モデル情報３０に含まれているアーク情報３３０のうち、プレース欄３３１にＰｊが設定されており、方向欄３３３に「０」が設定されており、かつ重み欄３３４に設定されている重みがＫ以上であるものを検索する（Ｓ６４４）。上記のようなアーク情報３３０がある場合（Ｓ６４５：ＹＥＳ）、ＢＮＦデータ生成部１１２は、次処理リストにＰｊを追加し（Ｓ６４６）、次トランジションリストに、検索したアーク情報３３０のトランジション欄３３２に設定されているラベルを追加する（Ｓ６４７）。
【００９６】
以上の処理を各プレースについて行うことで、マーキングがｍのときに発火可能なトランジションのリストが次トランジションリストに設定され、上記の発火可能なトランジションに接続されているプレースのリストが次処理リストに設定されると、ＢＮＦデータ生成部１１２は、図２８に示すＢＮＦ出力処理を行う（Ｓ６０６）。
【００９７】
図２８に示すＢＮＦ出力処理において、ＢＮＦデータ生成部１１２は、カウンタが「０」であれば（Ｓ６６１：ＹＥＳ）、「Ｌ：Ｔｊ  ｛ｐｒｉｎｔ（”次の処理は『次処理リスト』です。”）；｝」をＢＮＦに追加し（Ｓ６６２）、カウンタが０でなければ（Ｓ６６１：ＮＯ）、「｜Ｔｊ  ｛ｐｒｉｎｔ（”次の処理は『次処理リスト』です。”）；｝」をＢＮＦに追加する（Ｓ６６３）。
【００９８】
ＢＮＦデータ生成部１１２は、次トランジションリストが空でなければ（Ｓ６６４：ＮＯ）、マーキングがｍと一致するレコードを処理キュー６１および処理済キュー６２から検索し（Ｓ６６５）、マーキングがｍと一致するレコードがあれば（Ｓ６６６：ＹＥＳ）、レコードのラベルをｌとする（Ｓ６６７）。一方、マーキングがｍと一致するレコードがなければ（Ｓ６６６：ＮＯ）、ＢＮＦデータ生成部１１２は、ｉをインクリメントし（Ｓ６６８）、「Ｍ」にｉを連結した文字列をｌとして（Ｓ６６９）、ｌ、ｍ、および次トランジションリストを対応付けて処理キュー６１に登録する（Ｓ６７０）。ＢＮＦデータ生成部１１２は、ＢＮＦに「｜Ｔｊ  ｌ」を追加する（Ｓ６７１）。
【００９９】
次にＢＮＦデータ生成部１１２は、カウンタをインクリメントして（Ｓ６０７）、Ｔに含まれる次のトランジションＴｊについて（Ｓ６０４）からの処理を繰り返す。
【０１００】
以上のようにして、ｙａｃｃにより生成される構文解析器における状態をマーキングとするＢＮＦデータ４１’が生成される。上記の処理により生成されるＢＮＦデータ４１’の一例を図２９に示す。図２９の例では、ペトリネットにおけるマーキングを構文解析器の状態としてＢＮＦデータ４１’が生成されており、Ｓ式のようなリストを表現する括弧を用いることなく、業務の進捗状況を把握することが可能となっている。
【０１０１】
この場合、ファイルリスト生成部１１６は、ファイルシステム１５１に管理されているファイル２０を時系列に並べたファイルリストを生成するようにする。すなわち、ファイルリスト生成部１１６は、上述の図１４および図１５に示す処理に代えて、ファイルシステム１５１から、業務番号欄２１に案件番号指定部１１５が受け付けた業務番号が設定されており、かつ案件番号欄２２に案件番号指定部１１５が受け付けた案件番号が設定されているファイル２０を読み出し、読み出したファイル２０を作成日時欄２０６に設定されているファイル２０の作成日時の順にソートし、ソートした順にファイル２０のトランジション欄２０５に設定されているラベルを記述したファイルリストを生成する。この場合、ファイルリスト生成部１１６は、再帰的なＳ式によるリストの生成処理を行うことなく、作成日時の順にソートすればよいので、容易にファイルリストを生成することが可能となる。よって、業務管理装置１０の負荷を低減することができる。
【０１０２】
上記のようにして生成されたファイルリストを、ＢＮＦデータ４１’に基づく構文解析器に入力することで、上述した図１２のように、業務１において次に行うべき処理を出力することができる。
【０１０３】
上述のように、マーキングを用いることにより、ＢＮＦデータ生成部１１２は、アークの重みを考慮したＢＮＦデータ４１’を生成することができる。したがって、業務１に含まれる処理によって、処理の前提となるファイル２０の数が異なるような場合には、その処理に対応するプレースから出力するアークの重みを、処理に必要なファイル２０の数とすることにより、業務１を適切にペトリネットとしてモデル化することが可能となる。
【０１０４】
＝＝複数のコンピュータによる構成例＝＝
ネットワークにより接続された複数のコンピュータにより構成されるようにしてもよい。この場合の業務管理システムの構成例を図３０に示す。同図に示すように、この場合の業務管理システムは、業務管理装置１０に加えて、モデル生成装置２を備えている。業務管理装置１０とモデル生成装置２とは通信ネットワーク３を介して接続されている。通信ネットワーク３は、例えば、電話回線網やイーサネット（登録商標）により構築されるＬＡＮ（Local Area Network）やインターネットなどである。
【０１０５】
図３０に示すように、業務管理装置１０は、上述した図２のハードウェア構成に加えて通信インタフェース１０６を備えている。通信インタフェース１０６は、通信ネットワーク３に接続するためのインタフェースであり、例えば、電話回線網に接続するためのモデムやイーサネット（登録商標）のアダプタである。また、図３０に示すように、モデル生成装置２のハードウェア構成も業務管理装置１０と同様である。
【０１０６】
この場合の業務管理システムでは、上述した図３に示す業務管理装置１０の機能を、業務管理装置１０とモデル生成装置２とに分散して備えるようにする。図３１は、業務管理装置１０およびモデル生成装置２のソフトウェア構成例を示す図である。同図に示すように、上述した図３の業務管理装置１０が備える各機能部のうち、モデル情報入力部１１１、ＢＮＦデータ生成部１１２、および状態判定プログラム生成部１１３をモデル生成装置２が備えるようにしている。ここで、状態判定プログラム生成部１１３は、生成した状態判定プログラムを、通信ネットワーク３を介して業務管理装置１０が備える状態判定プログラム記憶部１５２に格納する。状態判定プログラムの転送には、例えば、ＦＴＰ（File Transfer Protocol）などの一般的なプロトコルを用いることができる。
【０１０７】
以上、本実施形態について説明したが、上記実施形態は本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物も含まれる。
【図面の簡単な説明】
【０１０８】
【図１】業務１の流れの一例を示す図である。
【図２】本実施形態に係る業務管理装置１０のハードウェア構成を示す図である。
【図３】業務管理装置１０のソフトウェア構成を示す図である。
【図４】ファイルシステム１５１に記憶されるファイル２０の一例を示す図である。
【図５】モデル情報の入力を受け付ける入力画面２１０の一例を示す図である。
【図６】画面２１０においてペトリネットを作成するにあたっての作成ルール２１８を表示した状態の例を示す図である。
【図７】入力画面２１０に作成されたペトリネット２１５を表現するモデル情報３０の構成例を示す図である。
【図８】モデル情報３０に基づくＢＮＦデータの生成処理の流れを示す図である。
【図９】接続先プレースリストの取得処理の流れを示す図である。
【図１０】ＢＮＦ追加処理の流れを示す図である。
【図１１】ＢＮＦデータ４１の一例を示す図である。
【図１２】業務において次に行うべき処理を出力する処理を説明する図である。
【図１３】業務において次に行うべき処理を出力する処理の流れを示す図である。
【図１４】ファイルリストの生成処理の流れを示す図である。
【図１５】ファイルリストの生成処理の流れを示す図である。
【図１６】ファイル群５２’の一例を示す図である。
【図１７】取消ファイルが追加されたファイル群５２”の一例を示す図である。
【図１８】行列により表現されるアーク情報３３０’の一例を示す図である。
【図１９】ＢＮＦデータの生成処理の流れを示す図である。
【図２０】複数のアークが入力されているトランジションを含むペトリネットの一例を示す図である。
【図２１】モデル情報３０の修正処理の流れを示す図である。
【図２２】モデル情報３０の修正処理を行った後のペトリネットの一例を示す図である。
【図２３】利用者から入力されたペトリネットの一例を示す図である。
【図２４】マーキングを利用したＢＮＦデータの生成処理の流れを示す図である。
【図２５】マーキングを利用したＢＮＦデータの生成処理に用いる処理キュー６１および処理済キュー６２の構成例を示す図である。
【図２６】初期化処理の流れを示す図である。
【図２７】次処理リストの取得処理の流れを示す図である。
【図２８】ＢＮＦ出力処理の流れを示す図である。
【図２９】ＢＮＦデータ４１’の一例を示す図である。
【図３０】複数のコンピュータにより構成される業務管理システムの構成例を示す図である。
【図３１】複数のコンピュータにより構成される業務管理システムのソフトウェア構成例を示す図である。
【符号の説明】
【０１０９】
１  業務
１０  業務管理装置
１０１  ＣＰＵ
１０２  メモリ
１０３  記憶装置
１０４  入力装置
１０５  出力装置
１０６  通信インタフェース
１１１  モデル情報入力部
１１２  ＢＮＦデータ生成部
１１３  状態判定プログラム生成部
１１４  業務処理部
１１５  案件番号指定部
１１６  ファイルリスト生成部
１１７  状態判定プログラム起動部
１１８  状態出力部
１５１  ファイルシステム
１５２  状態判定プログラム記憶部
２  モデル生成装置
２０  ファイル
２１  業務番号欄
２２  案件番号欄
２３  親ファイル欄
２４  文書タイプ欄
２５  トランジション欄
２６  作成日時欄
２７  内容欄
２１０  入力画面
２１１  業務番号の入力欄
２１２  ペトリネットの配置欄
２１３  ツールボックス
２１４  プレースアイコン
２１５  トランジションアイコン
２１６  アークアイコン
２１７  ボタン
２１８  作成ルール
３０  モデル情報
３１０  プレース情報
３１１  ラベル欄
３１２  表示情報欄
３１３  トークン欄
３２０  トランジション情報
３２１  ラベル欄
３２２  表示情報欄
３３０  アーク情報
３３０’  アーク情報
３３１  プレース欄
３３２  トランジション欄
３３３  方向欄
３３４  重み欄
４１  ＢＮＦデータ
４１’  ＢＮＦデータ
５１  画面
５２  ファイル群
５２’  ファイル群
５２”  ファイル群
５３  ファイルリスト
５３’  ファイルリスト
５３”  ファイルリスト
５４  状態判定プログラム
５５  画面
６１  処理キュー
６２  処理済キュー
【図１】
2008065524.tif 000003
【図２】
2008065524.tif 000004
【図３】
2008065524.tif 000005
【図４】
2008065524.tif 000006
【図５】
2008065524.tif 000007
【図６】
2008065524.tif 000008
【図７】
2008065524.tif 000009
【図８】
2008065524.tif 000010
【図９】
2008065524.tif 000011
【図１０】
2008065524.tif 000012
【図１１】
2008065524.tif 000013
【図１２】
2008065524.tif 000014
【図１３】
2008065524.tif 000015
【図１４】
2008065524.tif 000016
【図１５】
2008065524.tif 000017
【図１６】
2008065524.tif 000018
【図１７】
2008065524.tif 000019
【図１８】
2008065524.tif 000020
【図１９】
2008065524.tif 000021
【図２０】
2008065524.tif 000022
【図２１】
2008065524.tif 000023
【図２２】
2008065524.tif 000024
【図２３】
2008065524.tif 000025
【図２４】
2008065524.tif 000026
【図２５】
2008065524.tif 000027
【図２６】
2008065524.tif 000028
【図２７】
2008065524.tif 000029
【図２８】
2008065524.tif 000030
【図２９】
2008065524.tif 000031
【図３０】
2008065524.tif 000032
【図３１】
2008065524.tif 000033