JPWO2009104276A1 - 業務フロー処理プログラム、方法及び装置 - Google Patents

業務フロー処理プログラム、方法及び装置 Download PDF

Info

Publication number
JPWO2009104276A1
JPWO2009104276A1 JP2009554181A JP2009554181A JPWO2009104276A1 JP WO2009104276 A1 JPWO2009104276 A1 JP WO2009104276A1 JP 2009554181 A JP2009554181 A JP 2009554181A JP 2009554181 A JP2009554181 A JP 2009554181A JP WO2009104276 A1 JPWO2009104276 A1 JP WO2009104276A1
Authority
JP
Japan
Prior art keywords
event
field
data
process instance
business
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2009554181A
Other languages
English (en)
Other versions
JP5012911B2 (ja
Inventor
川村 旭
旭 川村
原 裕貴
裕貴 原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPWO2009104276A1 publication Critical patent/JPWO2009104276A1/ja
Application granted granted Critical
Publication of JP5012911B2 publication Critical patent/JP5012911B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45508Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
    • G06F9/45512Command shells
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0633Workflow analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/109Time management, e.g. calendars, reminders, meetings or time accounting
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16HHEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
    • G16H70/00ICT specially adapted for the handling or processing of medical references
    • G16H70/20ICT specially adapted for the handling or processing of medical references relating to practices or guidelines

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Marketing (AREA)
  • Software Systems (AREA)
  • Development Economics (AREA)
  • Educational Administration (AREA)
  • Game Theory and Decision Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Bioethics (AREA)
  • Data Mining & Analysis (AREA)
  • Epidemiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Primary Health Care (AREA)
  • Public Health (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

業務フローの分類を適切に実施できるようにしてユーザに実施されている業務フロー全体の特徴を把握しやすくするために、本業務フロー処理方法は、業務処理の結果を格納するデータベースから案件毎に実施された一連の業務のデータを抽出して、案件毎に実施された業務の業務名を時系列に並べたプロセスインスタンスを生成するステップと、各プロセスインスタンスについて、当該プロセスインスタンスの第1の業務から先に実施された第2の業務に戻る手戻りが発生しているか判断するステップと、手戻りが発生しているプロセスインスタンスについて、手戻りのパターン種別毎に当該手戻りの重複手戻りを削除するステップと、重複手戻り削除後のプロセスインスタンスを、種別毎に計数するステップと、計数結果に基づき、出現頻度が所定基準以上となっており且つ重複手戻り削除後のプロセスインスタンスを特定し、主要な業務フローとして出力するステップとを含む。

Description

本発明は、業務プロセス分析のための情報処理技術に関する。
業務プロセス・リエンジニアリング(BPR:Business Process Re-engineering)のために現在企業で運用中の業務システムの分析を行う必要がある。このため、例えば特開2005−115494号公報記載のような技術が用いられる。この公報には、以下のような事項が開示されている。
すなわち、(1)異なる業務システムに配置される各アプリケーションの実行状態を示す情報であるイベントデータを、各アプリケーションに応じた方法で収集し、イベントキューにキューイングする。なお、この公報でイベントとは、業務システム内で、ある業務が実行されたことを示すものであり、業務の開始、終了時間、および関連属性を含んだデータである。イベントデータは、各業務システムに配置されたイベント抽出定義に従って、業務システム毎のイベントデータ抽出用のアプリケーションによって抽出される。各業務システム内で、抽出されたイベント情報を共通のXML(eXtensible Markup Language)形式に変換し、イベントデータを管理するイベント管理装置のイベントキューにキューイングする。このキューイングには、例えばJMS(Java(登録商標) Message Service)等が利用される。
(2)イベント管理装置内で、イベントキュー内にキューイングされたイベント情報について、業務データ毎にまとめ、業務データ間を関連付けてイベント管理データベース(DB)内に蓄積する。この公報で、業務データとは、あるまとまった単位の業務の間で共有されるデータを意味する。(3)入力された検索条件(例えば、イベント発生期間、関連属性等)に基づいて、業務データの絞込みを行う。(4)絞り込まれた業務データに関連するデータをツリーで展開して表示し、任意のデータからの処理の追跡を行う。(5)ツリーで展開された業務データに関連するイベントを検索し、このイベントに関連する業務をトラッキングビューで図示して、現在の業務の流れの実行状況を表示する。この公報で、トラッキングとは、あらかじめ定義された業務システム間を跨ぐ業務全体の流れである業務プロセスのうち、どの業務が実行され、どの業務が実行されていないかを確認する手法をいう。
このような公報記載の技術では、業務システム毎にイベントデータ抽出用のアプリケーションを導入する必要があり、業務システムに改変を加えるか又は業務実行に不要な負荷を与えることとなる。
また、このような公報記載の技術では、業務フローが実施される頻度を分析して、標準的な業務フローと例外的な業務フローとを分類するような構成は開示されておらず、また分類における問題点についても示唆も開示もなされていない。
特開2005−115494号公報
従って、本発明の目的は、業務フローの分類を適切に実施できるようにして実施されている業務フロー全体の特徴をユーザに把握しやすくするための技術を提供することである。
本発明に係る業務フロー処理方法は、業務処理の結果を格納するデータベースから案件毎に実施された一連の業務のデータを抽出して、案件毎に実施された業務の業務名を時系列に並べたプロセスインスタンスを生成し、プロセスインスタンスデータ格納部に格納するステップと、プロセスインスタンスデータ格納部に格納されている各プロセスインスタンスについて、当該プロセスインスタンスの第1の業務から先に実施された第2の業務に戻る手戻りが発生しているか判断するステップと、手戻りが発生しているプロセスインスタンスについて、手戻りのパターン種別毎に当該手戻りの重複手戻り(すなわち、業務の全体像の把握を困難にしている手戻り)を削除し、重複手戻り削除後のプロセスインスタンスを、簡略化プロセスインスタンスデータ格納部に格納するステップと、簡略化プロセスインスタンスデータ格納部に格納されているプロセスインスタンスを、種別毎に計数するステップと、計数結果に基づき、出現頻度が所定基準以上となっており且つ簡略化プロセスインスタンスデータ格納部に格納されているプロセスインスタンスを特定し、主要な業務フローとして出力する出力ステップとを含む。
このようにすれば、何回も同じ手戻りが発生していても、1つの手戻りに統合することができ、業務フロー全体の特徴を把握する上で重要となる主要な業務フローを特定しやすくなる。
なお、上で述べた出力ステップが、特定されたプロセスインスタンスを重ね合わせるステップを含むようにしてもよい。主要な業務フローをより簡単に把握できるようにするためである。
さらに、上で述べた出力ステップが、特定されたプロセスインスタンス以外のプロセスインスタンスを、例外フローとして出力するステップを含むようにしてもよい。例外フローの発生状況を把握して、業務改善などに役立てるためである。
さらに、本発明において、プロセスインスタンスデータ格納部に格納されている各プロセスインスタンスについて、当該プロセスインスタンスの第3の業務から当該第3の業務に戻る繰り返しが発生しているか判断するステップと、繰り返しが発生しているプロセスインスタンスについて、繰り返しのパターン種別毎に当該繰り返しの重複繰り返し(すなわち業務の全体像の把握を困難にしている繰り返し)を削除し、重複繰り返し削除後のプロセスインスタンスを、プロセスインスタンスデータ格納部に格納するステップとをさらに含むようにしても良い。このようにすれば、何回も同じ繰り返しが発生していても、1つの繰り返しに統合することができ、業務フロー全体の特徴を把握する上で重要となる主要な業務フローを特定しやすくなる。
さらに、本発明において、簡略化プロセスインスタンスデータ格納部に格納されている各プロセスインスタンスについて、当該プロセスインスタンスの第3の業務から当該第3の業務に戻る繰り返しが発生しているか判断するステップと、繰り返しが発生しているプロセスインスタンスについて、繰り返しのパターン種別毎に当該繰り返しの重複繰り返し(すなわち、業務の全体像の把握を困難にしている繰り返し)を削除し、重複繰り返し削除後のプロセスインスタンスを、簡略化プロセスインスタンスデータ格納部に格納するステップとをさらに含むようにしても良い。重複繰り返しの削除については、重複手戻りの後に実施しても先に実施しても良い。また、重複手戻りの削除又は重複繰り返しの削除を独立に実施するようにしても良い。
なお、本発明に係る方法をコンピュータに実行させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブル・ディスク、CD−ROM、光磁気ディスク、半導体メモリ、ハードディスク等の記憶媒体又は記憶装置に格納される。また、ネットワークを介してディジタル信号にて頒布される場合もある。なお、処理途中のデータについては、コンピュータのメモリ等の記憶装置に一時保管される。
図1は、本発明の実施の形態における機能ブロック図である。 図2(a)乃至(d)は、本発明の実施の形態の概要を説明するための図である。 図3は、本発明の実施の形態におけるメインの処理フローを示す図である。 図4(a)は、抽出データ例である受注DBのスキーマ情報、図4(b)は、受注DBのレコード群を示す図である。 図5(a)は、抽出データ例である生産DBのスキーマ情報、図5(b)は、生産DBのレコード群を示す図である。 図6(a)は、抽出データ例である手配DBのスキーマ情報、図6(b)は、手配DBのレコード群を示す図である。 図7(a)は、抽出データ例である配送DBのスキーマ情報、図7(b)は、配送DBのレコード群を示す図である。 図8(a)は、抽出データ例である品番DBのスキーマ情報、図8(b)は、品番DBのレコード群を示す図である。 図9(a)は、CSV形式の受注DBのデータ例を示し、図9(b)は、受注DBのデータをテーブル化した例を示す図である。 図10(a)は、CSV形式の生産DBのデータ例を示し、図10(b)は、生産DBのデータをテーブル化した例を示す図である。 図11(a)は、CSV形式の手配DBのデータ例を示し、図11(b)は、手配DBのデータをテーブル化した例を示す図である。 図12(a)は、CSV形式の配送DBのデータ例を示し、図12(b)は、配送DBのデータをテーブル化した例を示す図である。 図13(a)は、CSV形式の品番DBのデータ例を示し、図13(b)は、品番DBのデータをテーブル化した例を示す図である。 図14は、タイムスタンプ判定処理の処理フローを示す図である。 図15は、タイムスタンプ確度スコア表の一例を示す図である。 図16は、イベントID・関連ID候補判定処理の処理フローを示す図である。 図17は、イベントID・関連ID候補確度スコア表の一例を示す図である。 図18は、イベント名判定処理の処理フローを示す図である。 図19は、タイムスタンプが複数含まれるテーブルの一例を示す図である。 図20(a)乃至(e)は、図19のテーブルをイベント毎に複数のテーブルとして分割した例を示す図である。 図21は、スキーマ情報が存在する場合における、受注DBのイベント候補データの各要素に対する判定表示の一例を示す図である。 図22は、CSV形式のデータの場合における、受注DBのイベント候補の各要素に対する判定表示の一例を示す図である。 図23は、スキーマ情報が存在する場合における、生産DBのイベント候補データの各要素に対する判定表示の一例を示す図である。 図24は、CSV形式のデータの場合における、生産DBのイベント候補の各要素に対する判定表示の一例を示す図である。 図25は、スキーマ情報が存在する場合における、手配DBのイベント候補データの各要素に対する判定表示の一例を示す図である。 図26は、CSV形式のデータの場合における、手配DBのイベント候補の各要素に対する判定表示の一例を示す図である。 図27は、スキーマ情報が存在する場合における、配送DBのイベント候補データの各要素に対する判定表示の一例を示す図である。 図28は、CSV形式のデータの場合における、配送DBのイベント候補の各要素に対する判定表示の一例を示す図である。 図29は、スキーマ情報が存在する場合における、品番DBのイベント候補データの各要素に対する判定表示の一例を示す図である。 図30は、CSV形式のデータの場合における、品番DBのイベント候補の各要素に対する判定表示の一例を示す図である。 図31は、イベント候補データの各要素に対する選択結果の一例を示す図である。 図32は、スキーマ情報が存在する場合において受注DBのデータから生成したイベント候補データの一例を示す図である。 図33は、CSV形式のデータの場合において受注DBのデータから生成したイベント候補データの一例を示す図である。 図34は、スキーマ情報が存在する場合において生産DBのデータから生成したイベント候補データの一例を示す図である。 図35は、CSV形式のデータの場合において生産DBのデータから生成したイベント候補データの一例を示す図である。 図36は、スキーマ情報が存在する場合において手配DBのデータから生成したイベント候補データの一例を示す図である。 図37は、CSV形式のデータの場合において手配DBのデータから生成したイベント候補データの一例を示す図である。 図38は、スキーマ情報が存在する場合において配送DBのデータから生成したイベント候補データの一例を示す図である。 図39は、CSV形式のデータの場合において配送DBのデータから生成したイベント候補データの一例を示す図である。 図40は、図19の起票に関するイベント候補データの一例を示す図である。 図41は、図19の承認に関するイベント候補データの一例を示す図である。 図42は、図19の発注に関するイベント候補データの一例を示す図である。 図43は、図19の納品に関するイベント候補データの一例を示す図である。 図44は、図19の検収に関するイベント候補データの一例を示す図である。 図45は、イベントデータ及びイベント間関係ツリーの一例を示す図である。 図46は、イベントデータからのプロセスインスタンス生成を説明するための図である。 図47は、プロセスインスタンスの一例を示す図である。 図48は、主要及び例外フローの抽出処理を説明するための図である。 図49は、図48に示したプロセスインスタンスを重ね合わせる場合の表示例を示す図である。 図50(a)乃至(c)は、図48に示したプロセスインスタンスを、主要フローと例外フローとに分類した場合の表示例を示す図である。 図51は、重複解消処理を説明するためのプロセスインスタンスの例を示す図である。 図52は、図51に示したプロセスインスタンスを単純に分類した場合の例を示す図である。 図53は、重複解消処理の処理フローを示す図である。 図54Aは、重複する繰り返しを有するプロセスインスタンスの例を示す図である。 図54Bは、重複する繰り返しを削除した場合のプロセスインスタンスの例を示す図である。 図55は、手戻り重複解消処理の処理フローを示す図である。 図56は、手戻り重複解消処理を説明するためのプロセスインスタンスの例を示す図である。 図57は、手戻り部分の切り出しを説明するための図である。 図58Aは、手戻り部分の分類を説明するための図である。 図58Bは、手戻り部分の重複を削除する処理を説明するための図である。 図59は、プロセスインスタンスの再構築例を示す図である。 図60は、図56のプロセスインスタンスの重ね合わせ表示の例を示す図である。 図61は、図59のプロセスインスタンスの重ね合わせ表示の例を示す図である。 図62は、図51に示したプロセスインスタンスの例に対して重複解消処理を実施した結果のプロセスインスタンスを示す図である。 図63は、モデルデータ格納部に格納されるデータの一例を示す図である。 図64は、フロー表示処理の処理フローを示す図である。 図65は、図63に登録されている全プロセスインスタンスを重ね合わせた場合の表示例を示す図である。 図66は、図63に登録されているプロセスインスタンスを主要フローと例外フローとに分けた場合の表示例を示す図である。 図67は、コンピュータ装置の機能ブロック図である。
図1に、本発明の一実施の形態に係る業務システム分析装置の機能ブロック図を示す。本実施の形態に係る業務システム分析装置は、単数または複数の解析対象システムから収集されたデータ(所定期間において生成されたデータベースのレコード群、ログデータ、ネットワークDB(NDB)のレコード群、ジャーナルなど)を格納する分析対象データ格納部1と、分析対象データ格納部1からイベント候補データを生成するイベント候補データ生成部3と、イベント候補データ生成部3により生成されたイベント候補データを格納するイベント候補データ格納部5と、ユーザとのインターフェースとなる入出力部11と、入出力部11を介してユーザの指示を受け付けイベントデータを生成するイベントデータ生成部7と、イベントデータ生成部7により生成されたイベントデータを格納するイベントデータ格納部9と、イベントデータ格納部9に格納されているイベントデータからプロセスインスタンスを生成するプロセスインスタンス生成部13と、プロセスインスタンス生成部13によって生成されたプロセスインスタンスのデータを格納するプロセスインスタンスデータ格納部15と、プロセスインスタンスデータ格納部15に格納されているプロセスインスタンスのデータを用いて業務の全体像の把握を困難にしている手戻り及び繰り返しを削除する処理を実施する重複解消部17と、重複解消部17によって処理されたプロセスインスタンスのデータを格納する簡略化プロセスインスタンスデータ格納部19と、簡略化プロセスインスタンスデータ格納部に格納されているプロセスインスタンスを種別毎に分類して出現数をカウントするプロセスインスタンス分類処理部21と、プロセスインスタンス分類処理部21の処理結果を格納するモデルデータ格納部23と、モデルデータ格納部23に格納されているデータを用いて業務フローを表示するために必要な処理を実施するプロセス表示処理部25とを含む。
なお、入出力部11は、イベント候補データ生成部3、プロセスインスタンス生成部13、プロセス表示処理部25についても、ユーザとのインターフェースとして動作する。また、各処理部は、処理結果などを読み出して入出力部11を介してユーザに提示するなどの処理を実施することもある。
また、イベント候補データ生成部3は、タイムスタンプ処理部31と、イベントID・関連ID候補処理部32と、イベント名処理部34と、スコア表格納部35とを有する。さらに、重複解消部17は、繰り返し処理部171と、手戻り処理部173とを有する。
次に、業務システム分析装置の大まかな処理内容について図2(a)乃至(d)を用いて説明する。まず、イベント候補データ生成部3は、分析対象データ格納部1に格納された業務システムについてのデータからイベント候補データを生成する。イベント候補データの一例を図2(a)に示す。図2(a)の例では、例えば1つのテーブル(例えばデータベース)から、イベント名と、時刻(イベントの発生日時であるタイムスタンプ)と、それ以外の第1の値(値1)と、第2の値(値2)などを含むレコード群が抽出されるようになっている。すなわち、イベント名やタイムスタンプ、それ以外にイベントIDや関連IDの候補となるデータ・フィールドが特定される。
次に、イベントデータ生成部7は、イベント候補データ格納部5に格納されているイベント候補データからイベントデータを生成する。イベントデータの一例を図2(b)に示す。図2(b)の例では、複数のテーブル(例えばデータベース)から、イベント名、時刻(イベントの発生日時であるタイムスタンプ)、イベントID(ここではID1)及び他の値を含むレコード群と、イベント名、時刻(タイムスタンプ)、ID1及びID2などを含むレコード群とが抽出され、第2のイベントクラス(すなわち、イベントの種類)のレコードの関連IDであるID2のフィールド値が、第1のイベントクラス(すなわち、イベントの種類)のレコードのイベントIDであるID1のフィールド値のいずれかの値をとることにより、第2のイベントクラスの各々のレコード(すなわちイベントインスタンス)が、第1のイベントクラスのどのレコード(すなわちイベントインスタンス)と関連しているかが特定される。このようなイベント間の関連などを抽出する処理自体は、本実施の形態における主要部ではなく、例えば日本国の特願2006−197294号(2006年7月19日出願)及びその対応外国出願に開示されており、本願はその内容を取り込む。
その後、プロセスインスタンス生成部13は、イベントデータ格納部9に格納されているイベントデータからプロセスインスタンスのデータを生成する。プロセスインスタンスの一例を図2(c)に示す。図2(c)の例では、4つのプロセスインスタンスが例示されており、各々のプロセスインスタンスには、一連のイベントインスタンス(具体的なイベント)が含まれている。すなわち、例えば「受注」「起票」「納品」「検品」といったイベントクラスに属する連続するイベントインスタンス(具体的なイベントであり特定のレコードに対応するイベント)でプロセスインスタンスが構成される。ただし、プロセスインスタンスに含まれるイベントインスタンスは、すべてのイベントクラスに由来する必要はなく、ひとつのイベントクラスに属するイベントインスタンスが複数含まれていても良い。なお、プロセスインスタンス生成処理自体は、本実施の形態における主要部ではなく、例えば、米国特許公開公報2005/076059A1のような業務プロセストラッキング方法等を用いることができる。なお、本公報を本願に組み込む。
そして、プロセスインスタンスのデータを、重複解消部17及びプロセスインスタンス分類処理部21によって処理をして、プロセス表示処理部25は、モデルデータ格納部23に格納されているデータからプロセスフロー(業務フローとも呼ぶ)のデータを生成して、入出力部11を介して表示装置に表示する。プロセスフローの一例を図2(d)に示す。図2(d)の例では、プロセスインスタンスが集約されて特定される業務フローが示されている。
次に、図1に示した業務システム分析装置の処理の詳細を図3乃至図66を用いて説明する。まず、ユーザは、業務システムにおける解析対象テーブルの指定を行い、そのデータをコピーして分析対象データ格納部1に格納させる(図3:ステップS1)。例えば、受注DB、生産DB、手配DB、配送DB、品番DBが指定され、所定期間において生成され蓄積されていたレコード群をコピーして、分析対象データ格納部1に格納する。なお、これらのDBがリレーショナルデータベースであれば、スキーマ情報をもコピーして、分析対象データ格納部1に格納しておく。本ステップについては、予めユーザがコンピュータを操作して行う処理であるから、図3では点線ブロックで示している。
例えば受注DBがリレーショナルデータベースである場合には、図4(a)のようなスキーマ情報と図4(b)に示すようなレコード群とが分析対象データ格納部1に格納される。図4(a)に示したスキーマ情報の例では、フィールド1乃至4のそれぞれについて、フィールド名、キー設定データ、データ型、レコード長及びコメントが登録されるようになっている。図4(a)から、フィールド1には日時が登録され、フィールド2には主キーである受注番号が登録され、フィールド3には地域が登録され、フィールド4には受注内容が登録されることが分かる。具体的には図4(b)のようなレコード群となるが、図4(a)のようなスキーマ情報を得れば、図4(b)のようなレコード群の内容を容易に解釈することができる。
同様に、生産DBがリレーショナルデータベースである場合には、図5(a)のようなスキーマ情報と図5(b)に示すようなレコード群とが分析対象データ格納部1に格納される。図5(a)に示したスキーマ情報の例では、フィールド1乃至5のそれぞれについて、フィールド名、キー設定データ、データ型、レコード長及びコメントが登録されるようになっている。図5(a)から、フィールド1には日時が登録され、フィールド2には主キーである生産番号が登録され、フィールド3には副キーである受注番号が登録され、フィールド4には副キーである品番が登録され、フィールド5には納期が登録されることが分かる。具体的には図5(b)のようなレコード群となるが、図5(a)のようなスキーマ情報を得れば、図5(b)のようなレコード群の内容を容易に解釈することができる。
また、手配DBがリレーショナルデータベースである場合には、図6(a)のようなスキーマ情報と図6(b)に示すようなレコード群とが分析対象データ格納部1に格納される。図6(a)に示したスキーマ情報の例では、フィールド1乃至5のそれぞれについて、フィールド名、キー設定データ、データ型、レコード長及びコメントが登録されるようになっている。図6(a)から、フィールド1には日時が登録され、フィールド2には主キーである手配番号が登録され、フィールド3には副キーである受注番号が登録され、フィールド4には副キーである品番が登録され、フィールド5には納品先が登録されることが分かる。具体的には図6(b)のようなレコード群となるが、図6(a)のようなスキーマ情報を得れば、図6(b)のようなレコード群の内容を容易に解釈することができる。
さらに、配送DBがリレーショナルデータベースである場合には、図7(a)のようなスキーマ情報と図7(b)に示すようなレコード群とが分析対象データ格納部1に格納される。図7(a)に示したスキーマ情報の例では、フィールド1乃至4のそれぞれについて、フィールド名、キー設定データ、データ型、レコード長及びコメントが登録されるようになっている。図7(a)から、フィールド1には日時が登録され、フィールド2には主キーである手配番号が登録され、フィールド3には副キーである配送便が登録され、フィールド4に納品先が登録されることが分かる。具体的には図7(b)のようなレコード群となるが、図7(a)のようなスキーマ情報を得れば、図7(b)のようなレコード群の内容を容易に解釈することができる。
また、品番DBがリレーショナルデータベースである場合には、図8(a)のようなスキーマ情報と図8(b)に示すようなレコード群とが分析対象データ格納部1に格納される。図8(a)に示したスキーマ情報の例では、フィールド1及び2のそれぞれについて、フィールド名、キー設定データ、データ型、レコード長及びコメントが登録されるようになっている。図8(a)から、フィールド1には主キーである品番が登録され、フィールド2には品名が登録されることが分かる。具体的には図8(b)のようなレコード群となるが、図8(a)のようなスキーマ情報を得れば、図8(b)のようなレコード群の内容を容易に解釈することができる。
一方、受注DBのデータをCSV形式で取得した場合には、図9(a)に示すようなデータが分析対象データ格納部1に格納される。図9(a)の例では、日時、受注番号、地域及び受注内容というラベルデータが先頭に含まれ、その後は上記ラベルの順番にデータが羅列され、データ間はカンマにて区切られている。図9(a)をわかりやすくするためにテーブル形式にすると図9(b)に示すようになる。すなわち、日時の列と、受注番号の列と、地域の列と、受注内容の列とを含むテーブルとなる。スキーマ情報はないので、データは皆文字列として格納される。また、キー設定データはない。
同様に、生産DBのデータをCSV形式で取得した場合には、図10(a)に示すようなデータが分析対象データ格納部1に格納される。図10(a)の例では、日時、生産番号、受注番号、品番及び納期というラベルデータが先頭に含まれ、その後は上記ラベルの順番にデータが羅列され、データ間はカンマにて区切られている。図10(a)をわかりやすくするためにテーブル形式にすると図10(b)に示すようになる。すなわち、日時の列と、生産番号の列と、受注番号の列と、品番の列と、納期の列とを含むテーブルとなる。
また、手配DBのデータをCSV形式で取得した場合には、図11(a)に示すようなデータが分析対象データ格納部1に格納される。図11(a)の例では、日時、手配番号、受注番号、品番及び納品先というラベルデータが先頭に含まれ、その後は上記ラベルの順番にデータが羅列され、データ間はカンマにて区切られている。図11(a)をわかりやすくするためにテーブル形式にすると図11(b)に示すようになる。すなわち、日時の列と、手配番号の列と、受注番号の列と、品番の列と、納品先の列とを含むテーブルとなる。
さらに、配送DBのデータをCSV形式で取得した場合には、図12(a)に示すようなデータが分析対象データ格納部1に格納される。図12(a)の例では、日時、手配番号、配送便及び納品先というラベルデータが先頭に含まれ、その後は上記ラベルの順番にデータが羅列され、データ間はカンマにて区切られている。図12(a)をわかりやすくするためにテーブル形式にすると図12(b)に示すようになる。すなわち、日時の列と、手配番号の列と、配送便の列と、納品先の列とを含むテーブルとなる。
また、品番DBのデータをCSV形式で取得した場合には、図13(a)に示すようなデータが分析対象データ格納部1に格納される。図13(a)の例では、品番及び品名というラベルデータが先頭に含まれ、その後は上記ラベルの順番にデータが羅列され、データ間はカンマにて区切られている。図13(a)をわかりやすくするためにテーブル形式にすると図13(b)に示すようになる。すなわち、品番の列と、品名の列とを含むテーブルとなる。
業務システム分析装置の例えばイベント候補データ生成部3は、全ての解析対象テーブルについて処理したか判断する(ステップS3)。未処理の解析対象テーブルが存在する場合には、未処理の解析対象デーブルを1つ特定する(ステップS5)。そして、タイムスタンプ判定処理を実施する(ステップS7)。このタイムスタンプ判定処理については図14及び図15を用いて説明する。
まず、イベント候補データ生成部3のタイムスタンプ処理部31は、分析対象データ格納部1を参照して、解析対象テーブルにおいて未処理のフィールドを1つ特定する(図14:ステップS31)。そして、分析対象データ格納部1において解析対象テーブルのスキーマ情報が使用可能となっているか判断する(ステップS33)。
スキーマ情報が使用可能となっている場合には、スキーマ情報において処理対象フィールドについてのデータ部分を特定し、その中で処理対象フィールドのデータ型がタイムスタンプ型であるか判断する(ステップS35)。処理対象フィールのデータ型がタイムスタンプ型ではない場合にはステップS39に移行する。例えば、図9(a)乃至図13(a)のようなデータを処理する場合にはスキーマ情報はないので、ステップS39に移行する。
一方、処理対象フィールドのデータ型がタイムスタンプ型であると判断された場合には、処理対象フィールドのタイムスタンプ判定を「確定」と設定し、例えばメインメモリなどの記憶装置に格納する(ステップS37)。そして、処理はステップS43に移行する。
例えば、図4(a)のようなスキーマ情報の場合、フィールド1のデータ型がタイムスタンプ型であるので、フィールド1が処理対象フィールドであれば、タイムスタンプ判定=「確定」と設定される。図5(a)のようなスキーマ情報の場合、フィールド1のデータ型がタイムスタンプ型であるので、フィールド1が処理対象フィールドであれば、タイムスタンプ判定=「確定」と設定される。図6(a)及び図7(a)についても同様である。図8(a)の場合には、全フィールドについて、ステップS35からステップS39に移行する。
ステップS33でスキーマ情報が使用不能と判断された場合又は処理対象フィールドのデータ型がタイムスタンプ型でない場合、スコア表格納部35に格納されているタイムスタンプ確度スコア表を参照して、スキーマ情報における処理対象フィールドの該当データ部分、処理対象フィールドのフィールド名を表すラベルデータ、及び処理対象フィールドのフィールド値から確度を特定する(ステップS39)。
タイムスタンプ確度スコア表の一例を図15に示す。図15の例では、「フィールドのデータ型が可変長文字列」であれば確度スコアは1(%)と設定され、「フィールドのデータ型が実数」であれば確度スコアは5(%)と設定され、フィールド名の末尾が「時刻」「時間」などであれば確度スコアは90(%)と設定され、フィールド名の末尾が「月日」「日」などであって時刻などが含まれない場合であれば確度スコアは70(%)と設定され、フィールド名に「予定」「納期」など将来の時期を指定する場合であれば確度スコアは10(%)と設定され、フィールド値の文字列に年号(記号)、「/」「:」「’」「.」「−」、数字、空白といった時間に関連する文字以外の文字が含まれている場合には確度スコアは5(%)と設定され、フィールド値の文字列が「YYYY/MM/DD hh:mm:ss」の形式であれば確度スコアは90(%)と設定され、フィールド値の文字列が「YYYY/MM/DD」の形式であれば確度スコアは70(%)と設定され、フィールド値に同一となるものが含まれていれば確度スコアは30(%)と設定され、該当する項目がなければ確度スコアは50(%)と設定される。
例えば、図4(a)のようなスキーマ情報で図4(b)のようなレコード群の場合、フィールド2については、フィールド値に時間に関連する文字以外の文字が含まれているとして確度スコア5(%)と特定される。フィールド3についても同様に、フィールド値に時間に関連する文字以外の文字が含まれているとして確度スコア5(%)と特定される。さらに、フィールド4については、データ型が可変長文字列であるので、確度スコア1(%)と特定される。なお、フィールド4については、フィールド値に時間に関連する文字以外の文字も含まれているので、タイムスタンプ確度スコア表において複数項目に該当しているが、本実施の形態では、50(%)という中央値からより乖離した値の方を採用する。すなわち、フィールド値に時間に関連する文字以外の文字が含まれている場合の確度スコア5(%)よりも1(%)を採用する。
一方、スキーマ情報が存在しない図9(a)の場合には、フィールド1については、フィールド値の文字列が「YYYY/MM/DD hh:mm:ss」の形式であるので、確度スコア90(%)と特定される。フィールド2及び3については同様であるが、フィールド4については、当該フィールドのデータ型が特定できないので、フィールド値に時間に関連する文字以外の文字が含まれている場合に該当すると判断され、確度スコア5(%)と特定される。
また、図5(a)のようなスキーマ情報で図5(b)のようなレコード群の場合にも、フィールド2乃至4については、フィールド値に時間に関連する文字以外の文字が含まれているとして確度スコア5(%)と特定される。フィールド5については、フィールド名の文字列に「納期」が含まれているので、確度スコア10(%)と特定される。なお、フィールド5については、フィールド値の文字列が「YYYY/MM/DD」の形式であるので、タイムスタンプ確度スコア表において複数項目に該当しているが、本実施の形態では、50(%)という中央値からより乖離した値の方を採用する。すなわち、フィールド値の文字列が「YYYY/MM/DD」の形式である場合の確度スコア70(%)よりも10(%)を採用する。スキーマ情報が存在しない図10(a)の場合には、フィールド1については、フィールド値の文字列が「YYYY/MM/DD hh:mm:ss」の形式であるので、確度スコア90(%)と特定される。フィールド2及び5については、データ型が関係しないので、スキーマ情報が存在する場合と同様の結果が得られる。
さらに、図6(a)のようなスキーマ情報で図6(b)のようなレコード群の場合、フィールド2乃至5については、フィールド値に時間に関連する文字以外の文字が含まれているとして確度スコア5(%)と特定される。スキーマ情報が存在しない図11(a)の場合には、フィールド1については、フィールド値の文字列が「YYYY/MM/DD hh:mm:ss」の形式であるので、確度スコア90(%)と特定される。フィールド2及び5については、データ型が関係しないので、スキーマ情報が存在する場合と同様の結果が得られる。
また、図7(a)のようなスキーマ情報で図7(b)のようなレコード群の場合、フィールド2乃至4については、フィールド値に時間に関連する文字以外の文字が含まれているとして確度スコア5(%)と特定と特定される。スキーマ情報が存在しない図12(a)の場合は、フィールド1については、フィールド値の文字列が「YYYY/MM/DD hh:mm:ss」の形式であるので、確度スコア90(%)と特定される。フィールド2及び4については、データ型が関係しないので、スキーマ情報が存在する場合と同様の結果が得られる。
さらに、図8(a)のようなスキーマ情報で図8(b)のようなレコード群の場合、フィールド1及び2については、フィールド値に時間に関連する文字以外の文字が含まれているとして確度スコア5(%)と特定と特定される。スキーマ情報が存在しない図13(a)の場合も、データ型が関係しないので、スキーマ情報が存在する場合と同様の結果が得られる。
図14の説明に戻って、処理対象フィールドのタイムスタンプ判定を特定された確度スコアに設定する(ステップS41)。上で述べた数値が特定される。
そして、処理対象テーブルにおいて全てのフィールドについて処理したか判断する(ステップS43)。未処理のフィールドが存在する場合にはステップS31に戻る。一方、全てのフィールドを処理した場合には元の処理に戻る。
このように、イベントのタイムスタンプとして蓋然性の高いフィールドに高い値の確度スコアが設定される。また、データ型からタイムスタンプであることが明らかであれば「確定」という蓋然性を表すデータが設定される。
図3の説明に戻って、次に、イベント候補データ生成部3のイベントID・関連ID候補処理部32は、イベントID及び関連ID候補判定処理を実施する(ステップS9)。このイベントID及び関連ID候補判定処理については、図16及び図17を用いて説明する。
イベントID・関連ID候補処理部32は、分析対象データ格納部1に格納されている解析対象テーブルのうち未処理のフィールドを1つ特定する(ステップS51)。そして、分析対象データ格納部1に格納されている、処理対象フィールドのフィールド値が、全レコードで一意となっているか判断する(ステップS53)。処理対象フィールドのフィールド値が、全レコードで一意となっていない、すなわち値が重複しているレコードが存在する場合には、ステップS62に移行する。
イベントIDはイベントの識別子の格納フィールドであるので、そのフィールド値が互いに重複することはない。したがって、イベントIDのフィールドに重複する値が存在すれば、それはイベントIDではないと判断できるためである。
一方、処理対象フィールドのフィールド値が、全レコードで一意である場合には、分析対象データ格納部1に格納されている、処理対象フィールドのフィールド値にNULLが含まれているか判断する(ステップS55)。処理対象フィールドのフィールド値にNULLが含まれている場合には、ステップS62に移行する。イベントIDはイベントの識別子の格納フィールドであるので、そのフィールド値がNULLということはあり得ないためである。処理対象フィールドのフィールド値が全レコードで一意とは言えない場合、又は処理対象フィールドのフィールド値にNULLを含む場合、分析対象データ格納部1に格納されている、処理対象フィールドのフィールド値が、NULLを除いて2以上あるか判断する(ステップS62)。処理対象フィールドのフィールド値が、NULLを除いて2種類以上ない場合には、イベントID・関連ID候補判定に「否定」を設定し、例えばメインメモリなどの記憶装置に格納する(ステップS63)。そして処理はステップS61に移行する。関連IDはイベントから他のイベントのどれに対応しているかを表す値であるので、そのフィールド値がNULLを除き2以上の値を有しない場合は、意味がある結果が得られないためである。
例えば図4(b)や図9(b)のようなテーブルの場合、フィールド1とフィールド2とフィールド4とについては、フィールド値に重複が存在せず、フィールド3ついてはフィールド値に重複が存在するが、NULL以外の2種類以上の値をとるので、イベントID・関連ID候補判定に「否定」は設定されない。
また図5(b)や図10(b)のようなテーブルの場合、フィールド1とフィールド2については、フィールド値に重複が存在せず、フィールド3乃至5については重複が存在するが、NULL以外の2種類以上の値をとるので、イベントID・関連ID候補判定に「否定」は設定されない。
さらに図6(b)や図11(b)のようなテーブルの場合、フィールド1とフィールド2については、フィールド値に重複が存在せず、フィールド3乃至5については重複が存在するが、NULL以外の2種類以上の値をとるので、イベントID・関連ID候補判定に「否定」は設定されない。
また図7(b)や図12(b)のようなテーブルの場合、フィールド1とフィールド2については、フィールド値に重複が存在せず、フィールド3及び4については重複が存在するが、NULL以外の2種類以上の値をとるので、イベントID・関連ID候補判定に「否定」は設定されない。
さらに図8(b)や図13(b)のようなテーブルの場合、フィールド1とフィールド2について、フィールド値に重複が存在しないので、イベントID・関連ID候補判定に「否定」は設定されない。
ステップS55において処理対象フィールドのフィールド値にNULLが含まれていないと判断された場合、又はステップS62において処理対象フィールドのフィールド値が、NULLを除いて2種類以上値を有すると判断された場合には、スコア表格納部35に格納されているイベントID・関連ID候補確度スコア表を参照して、スキーマ情報における処理対象フィールドの該当データ部分、処理対象フィールドのフィールド名を表すラベルデータ、及び処理対象フィールドのフィールド値から確度を特定する(ステップS57)。但し、イベントID・関連ID候補確度スコア表に該当項目が存在しない場合には、確度スコア50(%)が特定されるものとする。
イベントID・関連ID候補確度スコア表の一例を図17に示す。図17の例では、フィールドのデータ型が可変長文字列であれば確度スコアは1(%)と設定され、フィールドのデータ型が実数であれば確度スコアは5(%)と設定され、フィールドのデータ型が整数であれば確度スコアは80(%)と設定され、フィールドのデータ型が固定長文字列であれば確度スコアは70(%)と設定され、フィールドのデータ型がタイムスタンプ又は日付であれば確度スコアは10(%)と設定され、フィールド名が主キー指定されていれば確度スコアは80(%)と設定される。フィールド値又はフィールド名の文字列についての項目はここでは定義されていないが、定義されることもある。フィールド値についての項目が定義される場合にはステップS57で参照される。
例えば図4(a)のようなスキーマ情報の場合、フィールド1についてはデータ型がタイムスタンプであるので確度スコア10(%)と特定され、フィールド2についてはデータ型が固定長文字列であって且つ主キー指定されているので50%からの乖離の大きい確度スコア80(%)が採用され、フィールド3についてはデータ型が固定長文字列であるので確度スコア70(%)と特定され、フィールド4についてはデータ型が可変長文字列であるので確度スコア1(%)と特定される。図9(a)のようなスキーマ情報が存在しない例の場合、フィールド1乃至フィールド4について、イベントID・関連ID候補確度スコア表には該当項目が存在しないので確度スコア50(%)が特定される。
例えば図5(a)のようなスキーマ情報の場合、フィールド1についてはデータ型がタイムスタンプであるので確度スコア10(%)と特定され、フィールド2についてはデータ型が固定長文字列であって且つ主キー指定されているので50%からの乖離の大きい確度スコア80(%)が採用され、フィールド3乃至フィールド4についてはデータ型が固定長文字列であるので確度スコア70(%)が特定され、フィールド5についてはデータ型が日付となっているので確度スコア10(%)が特定される。図10(a)のようなスキーマ情報が存在しない例の場合、フィールド1乃至フィールド5について、イベントID・関連ID候補確度スコア表には該当項目が存在しないので確度スコア50(%)が特定される。
例えば図6(a)のようなスキーマ情報の場合、フィールド1についてはデータ型がタイムスタンプであるので確度スコア10(%)と特定され、フィールド2についてはデータ型が固定長文字列であって且つ主キー指定されているので50%からの乖離の大きい確度スコア80(%)が採用され、フィールド3乃至フィールド5についてはデータ型が固定長文字列であるので確度スコア70(%)が特定される。図11(a)のようなスキーマ情報が存在しない例の場合、フィールド1及乃至フィールド5について、イベントID・関連ID候補確度スコア表には該当項目が存在しないので確度スコア50(%)が特定される。
例えば図7(a)のようなスキーマ情報の場合、フィールド1についてはデータ型がタイムスタンプであるので確度スコア10(%)と特定され、フィールド2についてはデータ型が固定長文字列であって且つ主キー指定されているので50%からの乖離の大きい確度スコア80(%)が採用され、フィールド3乃至フィールド4についてはデータ型が固定長文字列であるので確度スコア70(%)が特定される。図12(a)のようなスキーマ情報が存在しない例の場合、フィールド1乃至フィールド4について、イベントID・関連ID候補確度スコア表には該当項目が存在しないので確度スコア50(%)が特定される。
例えば図8(a)のようなスキーマ情報の場合、フィールド1についてはデータ型が固定長文字列であって且つ主キー指定されているので50%からの乖離の大きい確度スコア80(%)が採用され、フィールド2についてはデータ型が固定長文字列であるので確度スコア70(%)が採用される。図13(a)のようなスキーマ情報が存在しない例の場合、フィールド1及び2について、イベントID・関連ID候補確度スコア表には該当項目が存在しないので確度スコア50(%)が特定される。
そして、イベントID・関連ID候補処理部32は、イベントID・関連ID候補判定に、ステップS57で特定された確度スコアを設定して、例えばメインメモリなどの記憶装置に格納する(ステップS59)。
その後、処理対象テーブルにおいて全てのフィールドについて処理したか判断し(ステップS61)、未処理のフィールドが存在する場合にはステップS51に戻る。一方、全てのフィールドについて処理した場合には元の処理に戻る。
このようにすれば、イベントID又は関連IDの蓋然性が高いものについては高い確度スコアが特定されるようになる。また、イベントID又は関連IDの可能性が完全にないものについては「否定」という蓋然性を表すデータが特定される。
図3の説明に戻って、次に、イベント候補データ生成部3のイベント名処理部34は、イベント名判定処理を実施する(ステップS13)。このイベント名判定処理については、図18乃至図20を用いて説明する。
まず、イベント名処理部34は、タイムスタンプ判定処理の処理結果として所定の確度スコア以上でタイムスタンプのフィールドとしてみなすことができるフィールドの数をカウントする(ステップS91)。例えば確度スコア70(%)以上などの閾値を設定する。当然ながら「確定」と特定されているフィールドはタイムスタンプのフィールドである。上で述べた例では、品番DBを除き、フィールド名が日時であるフィールドがタイムスタンプのフィールドと判断され、フィールド数は「1」となる。品番DBでは、タイムスタンプとみなすことができるフィールドはないので、フィールド数は「0」となる。
そして、タイムスタンプのフィールド数が0であるか判断する(ステップS93)。フィールド数が0であれば、解析対象テーブルを以下の処理の対象外として設定する(ステップS95)。タイムスタンプがないテーブル(例えば品番DB)は、業務プロセス中に発生するイベントに対応しているテーブルではないと判断される。そして元の処理に戻る。
一方、タイムスタンプのフィールド数が0ではない場合には、フィールド数が1であるか判断する(ステップS97)。タイムスタンプのフィールド数が1であれば、イベント名にテーブル名を設定し、例えばメインメモリなどの記憶装置に格納する(ステップS99)。上の例では、受注DBであれば、イベント名は「受注」と特定され、生産DBであれば、イベント名は「生産」と特定され、手配DBであれば、イベント名は「手配」と特定され、配送DBであれば、イベント名は「配送」と特定される。そして元の処理に戻る。
また、タイムスタンプのフィールド数が複数である場合には、タイムスタンプとみなされたフィールドのフィールド名をイベント名に設定し、例えばメインメモリなどの記憶装置に格納する(ステップS101)。そして元の処理に戻る。
例えば図19のようなテーブルが処理対象テーブルである場合にステップS101が実行される。図19の例では、起票日時、承認日時、発注日時、納品日時、検収日時がそれぞれイベントのタイムスタンプとみなされるフィールドとなり、1レコードにイベントが複数記録される形式となっている。このようなテーブルは、図20(a)乃至(e)に示したような起票テーブル、承認テーブル、発注テーブル、納品テーブル及び検収テーブルという複数テーブルとして扱うことができる。従って、このような場合には、「起票」「承認」「発注」「納品」「検収」がそれぞれイベント名として特定される。
以上のような処理を実施することによって、業務プロセス中に発生するイベントに対応しているテーブルを特定すると共に、イベント名を抽出することができるようになる。
図3の説明に戻って、次に、イベント候補データ生成部3は、判定結果を入出力部11を介してユーザに提示する(ステップS15)。例えば、図4(a)及び(b)に示したようなリレーショナルデータベース形式の受注DBの場合には、図21に示すようなデータがユーザに提示される。図21の例では、日時フィールド、受注番号フィールド、地域フィールド、受注内容フィールドのそれぞれにつき、ステップS7乃至S13の判定結果が提示されている。なお、イベント名についてはテーブル名がイベント名とされるので、全て「否定」とされている。これを見れば、日時フィールドがタイムスタンプのフィールドで「確定」となっており、受注番号フィールド及び地域フィールドがイベントIDまたは関連IDの可能性が高いことが分かる。
また、図9(a)に示したCSV形式の受注DBの場合には、図22に示すようなデータがユーザに提示される。図22の例では、日時フィールド、受注番号フィールド、地域フィールド、受注内容フィールドのそれぞれにつき、ステップS7乃至S13の判定結果が提示されている。なお、イベント名についてはテーブル名がイベント名とされるので、全て「否定」とされている。これを見れば、日時フィールドがタイムスタンプの可能性が高く、イベントIDまたは関連IDである可能性はいずれのフィールドも同等であることが分かる。
例えば、図5(a)及び(b)に示したようなリレーショナルデータベース形式の生産DBの場合には、図23に示すようなデータがユーザに提示される。図23の例では、日時フィールド、生産番号フィールド、受注番号フィールド、品番フィールド、納期フィールドのそれぞれにつき、ステップS7乃至S13の判定結果が提示されている。なお、イベント名についてはテーブル名がイベント名とされるので、全て「否定」とされている。これを見れば、日時フィールドがタイムスタンプのフィールドで「確定」となっており、生産番号フィールドと受注番号フィールドと品番フィールドがイベントIDまたは関連IDの可能性が高いことが分かる。
また、図10(a)に示したCSV形式の生産DBの場合には、図24に示すようなデータがユーザに提示される。図24の例では、日時フィールド、生産番号フィールド、受注番号フィールド、品番フィールド、納期フィールドのそれぞれにつき、ステップS7乃至S13の判定結果が提示されている。なお、イベント名についてはテーブル名がイベント名とされるので、全て「否定」とされている。これを見れば、日時フィールドがタイムスタンプの可能性が高く、イベントIDまたは関連IDである可能性はいずれのフィールドも同等であることが分かる。
例えば、図6(a)及び(b)に示したようなリレーショナルデータベース形式の手配DBの場合には、図25に示すようなデータがユーザに提示される。図25の例では、日時フィールド、手配番号フィールド、受注番号フィールド、品番フィールド、納品先フィールドのそれぞれにつき、ステップS7乃至S13の判定結果が提示されている。なお、イベント名についてはテーブル名がイベント名とされるので、全て「否定」とされている。これを見れば、日時フィールドがタイムスタンプのフィールドで「確定」となっており、手配番号フィールドと受注番号フィールドと品番フィールドと納品先フィールドがイベントIDまたは関連IDの可能性が高いことが分かる。
また、図11(a)に示したCSV形式の手配DBの場合には、図26に示すようなデータがユーザに提示される。図26の例では、日時フィールド、手配番号フィールド、受注番号フィールド、品番フィールド、納品先フィールドのそれぞれにつき、ステップS7乃至S13の判定結果が提示されている。なお、イベント名についてはテーブル名がイベント名とされるので、全て「否定」とされている。これを見れば、日時フィールドがタイムスタンプの可能性が高く、イベントIDまたは関連IDである可能性はいずれのフィールドも同等であることが分かる。
例えば、図7(a)及び(b)に示したようなリレーショナルデータベース形式の配送DBの場合には、図27に示すようなデータがユーザに提示される。図27の例では、日時フィールド、手配番号フィールド、配送便フィールド、納品先フィールドのそれぞれにつき、ステップS7乃至S13の判定結果が提示されている。なお、イベント名についてはテーブル名がイベント名とされるので、全て「否定」とされている。これを見れば、日時フィールドがタイムスタンプのフィールドで「確定」となっており、手配番号フィールドと配送便フィールドと納品先フィールドがイベントIDまたは関連IDの可能性が高いことが分かる。
また、図12(a)に示したCSV形式の配送DBの場合には、図28に示すようなデータがユーザに提示される。図28の例では、日時フィールド、手配番号フィールド、配送便フィールド、納品先フィールドのそれぞれにつき、ステップS7乃至S13の判定結果が提示されている。なお、イベント名についてはテーブル名がイベント名とされるので、全て「否定」とされている。これを見れば、日時フィールドがタイムスタンプの可能性が高く、イベントIDまたは関連IDである可能性はいずれのフィールドも同等であることが分かる。
例えば、図8(a)及び(b)に示したようなリレーショナルデータベース形式の品番DBの場合には、図29に示すようなデータがユーザに提示される。図29の例では、品番フィールド、品名フィールドのそれぞれにつき、ステップS7乃至S13の判定結果が提示されている。なお、品番DBはタイムスタンプがないと判断され、以降の処理対象外とされているため、イベント名については全て「否定」とされている。これを見れば、タイムスタンプのフィールドが存在する可能性が非常に低く、品番フィールドと品名フィールドはイベントIDまたは関連IDの可能性が高いことが分かる。
また、図13(a)に示したCSV形式の品番DBの場合には、図30に示すようなデータがユーザに提示される。図30の例では、品番フィールド、品名フィールドのそれぞれにつき、ステップS7乃至S13の判定結果が提示されている。なお、品番DBはタイムスタンプがないと判断され、以降の処理対象外とされているため、イベント名については全て「否定」とされている。これを見れば、タイムスタンプのフィールドが存在する可能性は非常に低く、イベントIDまたは関連IDである可能性はいずれのフィールドも同等であることが分かる。
図3の説明に戻って、ステップS15が終了すると、ユーザは、入出力部11を介して、イベント名、タイムスタンプ、イベントID・関連ID候補などについて修正入力又は確定入力を行い、レコードのコピーなどを行って又は命じて、イベント候補データを生成し、イベント候補データ生成部3にイベント候補データ格納部5へ格納させる(ステップS16)。この作業は主に又は一部ユーザによって実施されるので、図3では点線ブロックで描かれている。そして処理はステップS3に戻る。
例えば図21の判定結果に従って、図31に示すようにイベント名についてはテーブル名である「受注」を確定させ、タイムスタンプについては日時フィールドを確定させ、イベントID・関連ID候補については受注番号フィールド及び地域フィールドを確定させる場合、例えば図32に示すようなデータが、イベント候補データ格納部5に格納される。図32に示す例では、イベント名「受注」が全てのレコードに付加され、日時フィールドのフィールド値の全レコード分がタイムスタンプのフィールドにコピーされ、受注番号フィールド及び地域フィールドがイベントID・関連ID候補として、フィールド名とフィールド値の全レコード分がコピーされる。
例えば図22の判定結果に従って、イベント名についてはテーブル名である「受注」を確定させ、タイムスタンプについては日時フィールドを確定させ、イベントID・関連ID候補については受注番号フィールド及び地域フィールド及び受注内容フィールドを確定させる場合、例えば図33のようなデータが、イベント候補データ格納部5に格納される。
さらに例えば図23の判定結果に従って、イベント名についてはテーブル名である「生産」を確定させ、タイムスタンプについては日時フィールドを確定させ、イベントID・関連ID候補については生産番号フィールド及び受注番号フィールド及び品番フィールドを確定させる場合、例えば図34のようなデータが、イベント候補データ格納部5に格納される。
また例えば図24の判定結果に従って、イベント名についてはテーブル名である「生産」を確定させ、タイムスタンプについては日時フィールドを確定させ、イベントID・関連ID候補については生産番号フィールド及び受注番号フィールド及び品番フィールド及び納期フィールドを確定させる場合、例えば図35のようなデータが、イベント候補データ格納部5に格納される。
さらに例えば図25の判定結果に従って、イベント名についてはテーブル名である「手配」を確定させ、タイムスタンプについては日時フィールドを確定させ、イベントID・関連ID候補については手配番号フィールド及び受注番号フィールド及び品番フィールド及び納品先フィールドを確定させる場合、例えば図36のようなデータが、イベント候補データ格納部5に格納される。
また例えば図26の判定結果に従って、イベント名についてはテーブル名である「手配」を確定させ、タイムスタンプについては日時フィールドを確定させ、イベントID・関連ID候補については手配番号フィールド及び受注番号フィールド及び品番フィールド及び納品先フィールドを確定させる場合、例えば図37のようなデータが、イベント候補データ格納部5に格納される。
さらに例えば図27の判定結果に従って、イベント名についてはテーブル名である「配送」を確定させ、タイムスタンプについては日時フィールドを確定させ、イベントID・関連ID候補については手配番号フィールド及び配送便フィールド及び納品先フィールドを確定させる場合、例えば図38のようなデータが、イベント候補データ格納部5に格納される。
また例えば図28の判定結果に従って、イベント名についてはテーブル名である「配送」を確定させ、タイムスタンプについては日時フィールドを確定させ、イベントID・関連ID候補については手配番号フィールド及び配送便フィールド及び納品先フィールドを確定させる場合、例えば図39のようなデータが、イベント候補データ格納部5に格納される。
また、例えば図19のようなテーブル内に複数のタイムスタンプのフィールドが存在するようなテーブルを処理対象とする場合は、例えば図40乃至図44に示すようなデータが、イベント候補データ格納部5に格納される。図40乃至図44に示す例では、タイムスタンプとして確定されたフィールドである起票日時、承認日時、発注日時、納品日時、検収日時を元に、それらのフィールド毎に、各々イベント名を「起票」、「承認」、「発注」、「納品」、「検収」と確定させたイベント候補データを作成する。タイムスタンプについては、起票日時フィールド、承認日時フィールド、発注日時フィールド、納品日時フィールド、検収日時フィールドのフィールド値の全レコード分が各々のイベント候補データのタイムスタンプのフィールドにコピーされる。さらに、全てのイベント候補データ共通に、起票日時フィールド、承認日時フィールド、発注日時フィールド、納品日時フィールド、検収日時フィールド以外のフィールドが、イベントID・関連ID候補として、フィールド名とフィールド値の全レコード分がコピーされる。
このようにして以下の処理で用いるイベント候補データがイベント候補データ格納部5に格納されるようになる。
ステップS3で全ての解析対象テーブルを処理したと判断された場合には、イベントデータ生成部7は、イベント候補データ格納部5に格納されているイベント候補データを用いて、イベントデータ生成処理を実施し、処理結果をイベントデータ格納部9に格納する(ステップS17)。
受注イベント、生産イベント、手配イベント、配送イベントに対応して、各々、図32、図34、図36、図38に示されたイベント候補データのセット、または、各々、図33、図35、図37、図39に示されたイベント候補データのセットを用いて生成したイベントデータの例を図45に示す。その生成方法としては、上で述べた日本国の特願2006−197294記載のようなイベントデータの関連情報の自動抽出方式を用いても良いし、人手によって、各イベント候補データのイベントID・関連ID候補のフィールド値の対応関係を調査・分析することによって、イベント間の関連性を確定しても良い。
図45では、受注イベントのイベントIDは受注番号であり、生産イベントのイベントIDは生産番号、関連IDは受注番号であり、手配イベントのイベントIDは手配番号、関連IDは受注番号であり、配送イベントのイベントIDは手配番号、関連IDは配送便であることが確定されている。また、生産イベントの関連IDのフィールド値が、受注イベントのイベントIDのフィールド値のどれかの値をとることにより、生産イベントの各々のレコード(すなわち、イベントインスタンス)が、受注イベントのどのレコード(すなわち、イベントインスタンス)と関連しているかが特定されるというイベント間の関連性が確定されている。同様の関連性が、手配イベントの関連IDと受注イベントのイベントIDとの間、配送イベントのイベントIDと手配イベントのイベントIDとの間に確定されている。
また、プロセスインスタンス生成部13は、イベントデータ格納部9に格納されているイベントデータを用いてプロセスインスタンス生成処理を実施し、処理結果をプロセスインスタンスデータ格納部15に格納する(ステップS19)。その生成方法としては、米国特許公開公報2005/076059A1のような業務プロセストラッキング方法等を用いることができる。
図45のイベントデータを用いて、受注番号:JT01の受注イベントインスタンスを起点とするプロセスインスタンスを生成する処理過程の概略説明を図46に示す。最初に、関連IDのフィールド値として、受注イベントのイベントIDである受注番号のフィールド値:JT01をとるレコード(すなわち、イベントインスタンス)として、生産イベントから2つ、手配イベントから3つのイベントインスタンスが確定される。次に、関連IDのフィールド値として、確定された手配イベントのイベントIDである手配番号:TH01,TH02,TH03を関連IDのフィールド値としてとるレコード(すなわち、イベントインスタンス)として、配送イベントから3つのイベントインスタンスが確定される。最後に、確定された、受注番号:JT01の受注イベントインスタンスを起点として、直接・間接的に関連性をもつイベントインスタンスを、そのタイムスタンプの値に基いて時間経過の順につなぎ合わせることによって、プロセスインスタンスが生成される。すなわち、第1のプロセスインスタンスとしては、受注、生産、手配、手配、手配、配送、生産、配送、配送というイベントインスタンスが時系列に並べられたプロセスインスタンスが生成される。
同様にして、図45のイベントデータを用いて生成した全プロセスインスタンスを図47に示す。第2のプロセスインスタンスは、受注、手配及び配送というイベントインスタンスが時系列に並べられたプロセスインスタンスである。第3のプロセスインスタンスは、受注、生産、生産、手配及び配送というイベントインスタンスが時系列に並べられたプロセスインスタンスである。さらに、第4のプロセスインスタンスは、受注、手配及び配送というイベントインスタンスが時系列に並べられたプロセスインスタンスである。
図3の処理フローの説明に戻って、次に、重複解消部17は、プロセスインスタンスデータ格納部15に格納されているプロセスインスタンスのデータを用いて、重複解消処理を実施する(ステップS21)。この処理については、図48乃至図62を用いて詳細に説明する。
まず、図48乃至図52を用いて重複解消処理を実施する趣旨について説明する。まず、図48に示すように、プロセスインスタンスデータ格納部15に10個のプロセスインスタンスが格納されているものとする。ここで、Initial State、契約、伝票作成、請求、回収、契約満了及びFinal Stateというイベントインスタンスを含むプロセスインスタンスが5つ作成されてグループAが構成される。また、Initial State、契約、伝票作成、請求及び回収の後に契約更新を介して伝票作成に戻って請求及び回収を実施(手戻り)した後さらに契約満了及びFinal Stateに移行するというプロセスインスタンスが3つ作成されてグループBが構成される。さらに、Initial State、契約、伝票作成、請求及び回収の後に継続を介して請求に戻って回収を実施(手戻り)して契約満了及びFinal Stateに移行するというプロセスインスタンスが1つ作成されてグループCが構成される。そして、Initial State、契約、伝票作成、請求及び回収の後に再度回収が実施(繰返し)されて契約満了及びFinal Stateに移行するというプロセスインスタンスが1つ作成されてグループDが構成される。
このようなプロセスインスタンスが生成されて、単純にグループA乃至Dのプロセスインスタンスを重ね合わせると、図49に示すような全体フローが生成される。図49の全体フローでは、グループAのプロセスインスタンスをメインフローとして実線で示しており、グループB、C及びDで含まれる、手戻りの経由イベントインスタンス及び手戻り遷移並びに繰り返し遷移を説明上見やすくするため、点線で示している。
また、例えばグループの出現頻度の全体に対して占める比率20%を閾値として、主要フローと例外フローとを分ける場合には、図50(a)に示すように、主要フローとしては、グループAとグループBのプロセスインスタンスが重ね合わされたフローが生成され、ユーザに提示される。これに対して、例外フローは、図50(b)に示すグループCのプロセスインスタンス(但し、説明上見やすくするため、手戻り部分の経由イベントインスタンス及び遷移については点線で示されている)、図50(c)に示すグループDのプロセスインスタンス(但し、説明上見やすくするため、繰り返しを表す遷移については点線で示されている)がユーザに提示される。
このような図48のようなプロセスインスタンスのような場合には、主要フローと例外フローを分ける上で問題はあまりなく、ユーザは、図49や図50に示したような図で、業務フローの概況を容易に把握できるようになる。グループAだけでも50%の出現頻度を占めるため、グループAのみを主要フローとして認めても、図50と同様に、業務フローの概況を把握する上で特別に問題はない。
一方、図51に示すようなプロセスインスタンスが生成された場合には、図48のような場合とは異なり、問題が生ずる。図51の例では、Initial State、契約、伝票作成、請求、回収、契約満了及びFinal Stateという流れと基本として、回収というイベントインスタンスが1回繰り返されるプロセスインスタンスが2つと、回収というイベントインスタンスが2回繰り返されるプロセスインスタンスが1つと、回収というイベントインスタンスが3回繰り返されるプロセスインスタンスが1つと、回収というイベントインスタンスが4回繰り返されるプロセスインスタンスが1つと、回収というイベントインスタンスが5回繰り返されるプロセスインスタンスが1つ生成されている。残りのプロセスインスタンスについても、Initial State、契約、伝票作成、請求、回収、契約満了及びFinal Stateという流れと基本として、契約更新という経由イベントインスタンスを介して伝票作成、請求及び回収を1回繰り返す手戻りを行うプロセスインスタンスが1つと、契約更新という経由イベントインスタンスを介して伝票作成、請求及び回収を2回繰り返す手戻りを行うプロセスインスタンスが1つと、契約更新という経由イベントインスタンスを介して伝票作成、請求及び回収を3回繰り返す手戻りを行うプロセスインスタンスが1つ生成されている。さらに、Initial State、契約、伝票作成、請求、回収、契約満了及びFinal Stateという流れと基本として、継続という経由イベントインスタンスを介して請求及び回収を1回繰り返す手戻りを行うプロセスインスタンスも1つ生成されている。
このように、手戻り回数が異なるだけのプロセスインスタンスが複数種類、また繰り返しの回数が異なるだけのプロセスインスタンスが複数種類生成されて、単純に分類を行うと、同じグループであると判断されるプロセスインスタンスは、非常に少なくなる。図51の例では、回収というイベントインスタンスが1回繰り返されるプロセスインスタンスのみが2つあるのでグループとしても、その出現頻度はたったの20%で、図52に示すようにその他を例外フローとすると、8つも例外フローが生じてしまい、業務フローの概要を把握する上では、例外フローの意味づけが曖昧になってしまう。
そこで、図53乃至図62に示すような処理を実施することによって、業務の全体像の把握を困難にしている手戻り及び繰り返しをプロセスインスタンスから削除することによって、プロセスインスタンスのグルーピングを容易にして、ユーザが業務フローの概要を容易に把握できるようにする。
重複解消部17は、プロセスインスタンスデータ格納部15において未処理のプロセスインスタンスを1つ特定する(図52:ステップS111)。そして、特定されたプロセスインスタンスについて、繰り返しの有無及び手戻りの有無を検査する(ステップS113)。特定のイベントインスタンスより前に実施された他のイベントインスタンスに、経由イベントインスタンスを介して又は介さずに戻るような遷移を手戻りとして特定し、同じイベントインスタンスに戻るような遷移を繰り返しとして特定する。1つのプロセスインスタンスに、繰り返しと手戻りが含まれている場合もあり、さらに複数箇所、繰り返し又は手戻りが含まれる場合もある。
そして、重複解消部17の繰り返し処理部171は、特定されたプロセスインスタンスについて全ての繰り返し箇所を処理したか判断する(ステップS115)。未処理の繰り返し箇所が存在する場合、繰り返し処理部171は、未処理の繰り返し箇所を特定し(ステップS117)、特定された繰り返し箇所において繰り返しを1回分のみ残し、残りを削除する(ステップS119)。そしてステップS115に戻る。
例えば図54Aに示すようなプロセスインスタンスの場合、伝票作成において繰り返し4001が3回、請求において繰り返し4002が1回、請求開始において繰り返し4003が4回生じているが、それぞれについて1回分のみが残るように重複する余剰繰り返しを削除する。そうすると、図54Bに示すように、伝票作成における繰り返し4001’は1回になり、請求における繰り返し4002’は1回のままとなり、請求開始において繰り返し4003’は1回になる。
図53の処理の説明に戻って、全ての繰り返し箇所を処理した場合又は全く繰り返しが存在していない場合には、手戻り処理部173は、全ての手戻り箇所を処理したか判断する(ステップS121)。未処理の手戻り箇所が存在する場合には、手戻り処理部173は、未処理の手戻り箇所を1つ特定する(ステップS123)。そして、手戻り重複解消処理を実施する(ステップS125)。手戻り重複解消処理については、図55乃至図58Bを用いて説明する。
まず、手戻り処理部173は、特定された手戻り箇所における手戻り部分を切り出す(ステップS131)。ここで例えば図56に示すようなプロセスインスタンスを処理する場合を想定する。具体的には、このプロセスインスタンスでは、Initial State、契約、伝票作成、請求、契約更新、請求開始まで進んだ後、請求まで戻り、契約更新、請求開始まで進んだ後、さらに伝票作成まで戻り、さらに請求、契約更新、請求開始まで進んだ後、また請求まで戻り、さらに契約更新、請求開始と進んで、請求終了、Final Stateへ進む。ステップS131では、図57に示すように、請求まで戻る第1の手戻り部分と、伝票作成まで戻る第2の手戻り部分と、請求まで戻る第3の手戻り部分とを切り出す。
そして、手戻り処理部173は、手戻り部分のパターンを分類する(ステップS133)。図58Aに示したように切り出された3つの手戻り部分は、請求、契約更新及び請求開始までの2つの手戻り部分がパターン1として特定され、伝票作成、請求、契約更新及び請求開始までの1つの手戻り部分がパターン2として特定される。
そして、手戻り処理部173は、パターン毎に重複解消、すなわち各パターンにつき1つの手戻りを残し、残余の手戻りを削除する(ステップS135)。図58Aのような2つのパターンが存在する場合には、図58Bに示すように、各パターンに1つの手戻りのみに統合される。
その後、手戻り処理部173は、プロセスインスタンスを再構築して、簡略化プロセスインスタンスデータ格納部19に格納する(ステップS137)。図58Bのような場合には、図59に示すように、パターン1及び2の手戻り部分を連続して発生するイベントインスタンスとして連結して、Initial State、契約、伝票作成、請求、契約更新、請求開始、請求、契約更新、請求開始、伝票作成、請求、契約更新、請求開始、請求終了、Final Stateというような順番でイベントインスタンスが発生するプロセスインスタンスが構築される。
図56の初期状態のプロセスインスタンスを、同一イベントインスタンスを重ね合わせて表示する場合、図60のように複雑に遷移が入り組む形になるが、上で述べたような処理を実施すれば、図61に示したように、手戻りが2箇所に生じていることが明確になり、全体像を把握しやすくなる。
図53の説明に戻って、ステップS125の後にステップS121に戻る。
ステップS121で、全ての手戻り箇所を処理したと判断された場合又は手戻り箇所が存在しない場合には、重複解消部17は、全てのプロセスインスタンスを処理したか判断する(ステップS127)。未処理のプロセスインスタンスが存在する場合にはステップS111に戻る。一方、未処理のプロセスインスタンスが存在しない場合には元の処理に戻る。
図3の説明に戻って、プロセスインスタンス分類処理部21は、簡略化プロセスインスタンスデータ格納部19に格納されているプロセスインスタンスを分類し、分類結果に基づき種類毎に計数して、種類毎に計数値をモデルデータ格納部23に格納する(ステップS23)。図51に示されたようなプロセスインスタンスが生成された場合には、ステップS21を実施すると図62に示すようなプロセスインスタンスが、簡略化プロセスインスタンスデータ格納部19に格納される。すなわち、Initial State、契約、伝票作成、請求、回収、回収、契約満了、Final Stateという遷移が行われるプロセスインスタンスが6つ含まれるグループと、Initial State、契約、伝票作成、請求、回収、契約更新、伝票作成、請求、回収、契約満了、Final Stateという遷移が行われるプロセスインスタンスが3つ含まれるグループと、Initial State、契約、伝票作成、請求、回収、継続、請求、回収、契約満了、Final Stateという遷移が行われるプロセスインスタンスが1つ含まれるグループとに分類される。従って、モデルデータ格納部23には、図63に示すようなデータが格納される。図63の例では、上で述べた3つのグループのプロセスインスタンスと、それぞれの計数値が登録されている。なお、主要フローフラグの欄には、この段階では何も登録されない。
そして、プロセス表示処理部25は、モデルデータ格納部23に格納されているデータを用いて、フロー表示処理を実施する(ステップS25)。フロー表示処理について図64乃至図66を用いて説明する。
まず、フロー表示処理部25は、モデルデータ格納部23に格納されているプロセスインスタンスのグループを計数値に基づき降順に整列させる(ステップS141)。そして、各プロセスのグループを主要フローとして扱うための判断基準となる、当該グループのプロセスインスタンスの総数に占める比率の閾値を、ユーザから入力された場合には当該入力値により、ユーザの入力がない場合には予め設定されている値で決定する(ステップS143)。例えば総数に占める比率の閾値20%以上のグループを主要フローと分類する場合には、20%を入力する。但し、予め設定されている値(例えば30%)をそのまま用いるようにしても良い。
そして、フロー表示処理部25は、計数値上位より1つ未選択のプロセスインスタンスを選択する(ステップS147)。この選択されたプロセスインスタンスを主要フロー(典型フローとも呼ぶ)に指定する(ステップS149)。具体的には、モデルデータ格納部23のテーブルにおける主要フローフラグをオンにセットする。そして、各グループの全体に対して占める比率≧閾値であるか判断する(ステップS153)。この条件が満たされている場合にはステップS147に戻る。
例えば、図63の例では、最初に第1レコードを選択すると、全体に占める比率が60%となり、閾値が20%であれば、ステップS147に戻る。次に、第2レコードを選択すると、全体に占める比率は30%となり、同様に、ステップS147に戻る。このように第1レコード及び第2レコードについて主要フローフラグがオンにセットされる。
最後に、第3レコードを選択すると、全体に占める比率が10%となり、全体に占める比率≧閾値という条件が満たされなくなるので、フロー表示処理部25は、元の処理に戻る。このようにすれば、ステップS147で選択されたプロセスインスタンスのグループ以外のプロセスインスタンスは、主要フローフラグがオンにセットされていないので、例外フローとして特定されたことになる。
図3の説明に戻って、フロー表示処理部25は、モデルデータ格納部23に格納されているデータを用いて、入出力部11を介して処理結果を出力する(ステップS27)。例えば、全てのプロセスインスタンスを重ね合わせて表示する場合には、図65に示すような業務フローが表示されるようになる。図65で示すように、継続を経由する手戻りと契約更新を経由する手戻りと、回収の繰り返しがそれぞれ1つだけ存在するような表示になる。
また、モデルデータ格納部23に格納されている主要フローフラグのデータを用いて、主要フローと例外フローとを分けて表示する場合には、図66に示すような表示がなされる。例えば、90%を分類割合としていると、図63に示したテーブルにおいて第1及び第2レコードのプロセスインスタンスが重ね合わされて、図66の上段のような業務フローが主要フローとして表示される。また、図63に示したテーブルにおいて第3のプロセスインスタンスが、例外フローとして表示される。
このような処理を実施すれば、図52のような分類及び表示と比べて、非常に整理された形で業務フローが提示されるため、ユーザは、実際に実施されている業務フローの概要をより把握しやすくなる。すなわち、特徴を把握する上で業務の全体像の把握を困難にしている手戻りや繰り返しが省略されているので、繰り返しの有無や仕方、手戻りの有無や仕方を、把握しやすくなる。
以上本発明の実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、例えば図1に示した機能ブロック図は一例であって、必ずしも実際のプログラムモジュールに対応しない。
また、業務の全体像の把握を困難にしている手戻りを削除してプロセスインスタンスを再構築する際には、図59に示すように手戻りが1箇所に複数存在する場合には、その順番を一定のルールで定めておかないと異なるプロセスインスタンスとして認識されてしまう。例えば、手戻りの長さが短い順に並べてからプロセスインスタンスを再構築するというルールを採用すれば、手戻りの順番が異なる実質的に同じプロセスインスタンスが生成されることが無くなる。
また、各スコア表も一例であって、確度スコア値の設定の仕方は、経験的にさらに細かく決定される場合もある。さらに、スコア表の項目についても、より少ない項目が設定される場合もあれば、より多くの項目が設定される場合もある。
また、図3の処理フローにおいて、ステップS7乃至S13については順番の入れ替えが可能であり、また並列に実施するようにしてもよい。
また、判定結果の出力では、各判定項目において「確定」判定や所定の閾値以上の確度スコアとなっているフィールドを自動的に選択してユーザに提示し、自動選択できない判定項目についてユーザに選択又は入力を促すようにしてもよい。
さらに、処理対象フィールドについてのループは、ステップS7乃至S13内の各々で構成されているが、ステップS7乃至S13の外側に処理対象フィールドについてのループを出すようにしてもよい。
なお、業務システム分析装置は、コンピュータ装置であって、図67に示すように、メモリ2501とCPU2503とハードディスク・ドライブ(HDD)2505と表示装置2509に接続される表示制御部2507とリムーバブル・ディスク2511用のドライブ装置2513と入力装置2515とネットワークに接続するための通信制御部2517とがバス2519で接続されている。オペレーティング・システム(OS:Operating System)及び本実施例における処理を実施するためのアプリケーション・プログラムは、HDD2505に格納されており、CPU2503により実行される際にはHDD2505からメモリ2501に読み出される。必要に応じてCPU2503は、表示制御部2507、通信制御部2517、ドライブ装置2513を制御して、必要な動作を行わせる。また、処理途中のデータについては、メモリ2501に格納され、必要があればHDD2505に格納される。本発明の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはリムーバブル・ディスク2511に格納されて頒布され、ドライブ装置2513からHDD2505にインストールされる。インターネットなどのネットワーク及び通信制御部2517を経由して、HDD2505にインストールされる場合もある。このようなコンピュータ装置は、上で述べたCPU2503、メモリ2501などのハードウエアとOS及び必要なアプリケーション・プログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
本発明は、業務プロセス分析のための情報処理技術に関する。
業務プロセス・リエンジニアリング(BPR:Business Process Re-engineering)のために現在企業で運用中の業務システムの分析を行う必要がある。このため、例えば特開2005−115494号公報記載のような技術が用いられる。この公報には、以下のような事項が開示されている。
すなわち、(1)異なる業務システムに配置される各アプリケーションの実行状態を示す情報であるイベントデータを、各アプリケーションに応じた方法で収集し、イベントキューにキューイングする。なお、この公報でイベントとは、業務システム内で、ある業務が実行されたことを示すものであり、業務の開始、終了時間、および関連属性を含んだデータである。イベントデータは、各業務システムに配置されたイベント抽出定義に従って、業務システム毎のイベントデータ抽出用のアプリケーションによって抽出される。各業務システム内で、抽出されたイベント情報を共通のXML(eXtensible Markup Language)形式に変換し、イベントデータを管理するイベント管理装置のイベントキューにキューイングする。このキューイングには、例えばJMS(Java(登録商標) Message Service)等が利用される。
(2)イベント管理装置内で、イベントキュー内にキューイングされたイベント情報について、業務データ毎にまとめ、業務データ間を関連付けてイベント管理データベース(DB)内に蓄積する。この公報で、業務データとは、あるまとまった単位の業務の間で共有されるデータを意味する。(3)入力された検索条件(例えば、イベント発生期間、関連属性等)に基づいて、業務データの絞込みを行う。(4)絞り込まれた業務データに関連するデータをツリーで展開して表示し、任意のデータからの処理の追跡を行う。(5)ツリーで展開された業務データに関連するイベントを検索し、このイベントに関連する業務をトラッキングビューで図示して、現在の業務の流れの実行状況を表示する。この公報で、トラッキングとは、あらかじめ定義された業務システム間を跨ぐ業務全体の流れである業務プロセスのうち、どの業務が実行され、どの業務が実行されていないかを確認する手法をいう。
このような公報記載の技術では、業務システム毎にイベントデータ抽出用のアプリケーションを導入する必要があり、業務システムに改変を加えるか又は業務実行に不要な負荷を与えることとなる。
また、このような公報記載の技術では、業務フローが実施される頻度を分析して、標準的な業務フローと例外的な業務フローとを分類するような構成は開示されておらず、また分類における問題点についても示唆も開示もなされていない。
特開2005−115494号公報
従って、本発明の目的は、業務フローの分類を適切に実施できるようにして実施されている業務フロー全体の特徴をユーザに把握しやすくするための技術を提供することである。
本発明に係る業務フロー処理方法は、業務処理の結果を格納するデータベースから案件毎に実施された一連の業務のデータを抽出して、案件毎に実施された業務の業務名を時系列に並べたプロセスインスタンスを生成し、プロセスインスタンスデータ格納部に格納するステップと、プロセスインスタンスデータ格納部に格納されている各プロセスインスタンスについて、当該プロセスインスタンスの第1の業務から先に実施された第2の業務に戻る手戻りが発生しているか判断するステップと、手戻りが発生しているプロセスインスタンスについて、手戻りのパターン種別毎に当該手戻りの重複手戻り(すなわち、業務の全体像の把握を困難にしている手戻り)を削除し、重複手戻り削除後のプロセスインスタンスを、簡略化プロセスインスタンスデータ格納部に格納するステップと、簡略化プロセスインスタンスデータ格納部に格納されているプロセスインスタンスを、種別毎に計数するステップと、計数結果に基づき、出現頻度が所定基準以上となっており且つ簡略化プロセスインスタンスデータ格納部に格納されているプロセスインスタンスを特定し、主要な業務フローとして出力する出力ステップとを含む。
このようにすれば、何回も同じ手戻りが発生していても、1つの手戻りに統合することができ、業務フロー全体の特徴を把握する上で重要となる主要な業務フローを特定しやすくなる。
なお、上で述べた出力ステップが、特定されたプロセスインスタンスを重ね合わせるステップを含むようにしてもよい。主要な業務フローをより簡単に把握できるようにするためである。
さらに、上で述べた出力ステップが、特定されたプロセスインスタンス以外のプロセスインスタンスを、例外フローとして出力するステップを含むようにしてもよい。例外フローの発生状況を把握して、業務改善などに役立てるためである。
さらに、本発明において、プロセスインスタンスデータ格納部に格納されている各プロセスインスタンスについて、当該プロセスインスタンスの第3の業務から当該第3の業務に戻る繰り返しが発生しているか判断するステップと、繰り返しが発生しているプロセスインスタンスについて、繰り返しのパターン種別毎に当該繰り返しの重複繰り返し(すなわち業務の全体像の把握を困難にしている繰り返し)を削除し、重複繰り返し削除後のプロセスインスタンスを、プロセスインスタンスデータ格納部に格納するステップとをさらに含むようにしても良い。このようにすれば、何回も同じ繰り返しが発生していても、1つの繰り返しに統合することができ、業務フロー全体の特徴を把握する上で重要となる主要な業務フローを特定しやすくなる。
さらに、本発明において、簡略化プロセスインスタンスデータ格納部に格納されている各プロセスインスタンスについて、当該プロセスインスタンスの第3の業務から当該第3の業務に戻る繰り返しが発生しているか判断するステップと、繰り返しが発生しているプロセスインスタンスについて、繰り返しのパターン種別毎に当該繰り返しの重複繰り返し(すなわち、業務の全体像の把握を困難にしている繰り返し)を削除し、重複繰り返し削除後のプロセスインスタンスを、簡略化プロセスインスタンスデータ格納部に格納するステップとをさらに含むようにしても良い。重複繰り返しの削除については、重複手戻り削除の後に実施しても先に実施しても良い。また、重複手戻りの削除又は重複繰り返しの削除を独立に実施するようにしても良い。
なお、本発明に係る方法をコンピュータに実行させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブル・ディスク、CD−ROM、光磁気ディスク、半導体メモリ、ハードディスク等の記憶媒体又は記憶装置に格納される。また、ネットワークを介してディジタル信号にて頒布される場合もある。なお、処理途中のデータについては、コンピュータのメモリ等の記憶装置に一時保管される。
図1は、本発明の実施の形態における業務システム分析装置の機能ブロック図である。 図2(a)乃至(d)は、本発明の実施の形態の概要を説明するための図である。 図3は、本発明の実施の形態におけるメインの処理フローを示す図である。 図4(a)は、抽出データ例である受注DBのスキーマ情報、図4(b)は、受注DBのレコード群を示す図である。 図5(a)は、抽出データ例である生産DBのスキーマ情報、図5(b)は、生産DBのレコード群を示す図である。 図6(a)は、抽出データ例である手配DBのスキーマ情報、図6(b)は、手配DBのレコード群を示す図である。 図7(a)は、抽出データ例である配送DBのスキーマ情報、図7(b)は、配送DBのレコード群を示す図である。 図8(a)は、抽出データ例である品番DBのスキーマ情報、図8(b)は、品番DBのレコード群を示す図である。 図9(a)は、CSV形式の受注DBのデータ例を示し、図9(b)は、受注DBのデータをテーブル化した例を示す図である。 図10(a)は、CSV形式の生産DBのデータ例を示し、図10(b)は、生産DBのデータをテーブル化した例を示す図である。 図11(a)は、CSV形式の手配DBのデータ例を示し、図11(b)は、手配DBのデータをテーブル化した例を示す図である。 図12(a)は、CSV形式の配送DBのデータ例を示し、図12(b)は、配送DBのデータをテーブル化した例を示す図である。 図13(a)は、CSV形式の品番DBのデータ例を示し、図13(b)は、品番DBのデータをテーブル化した例を示す図である。 図14は、タイムスタンプ判定処理の処理フローを示す図である。 図15は、タイムスタンプ確度スコア表の一例を示す図である。 図16は、イベントID・関連ID候補判定処理の処理フローを示す図である。 図17は、イベントID・関連ID候補確度スコア表の一例を示す図である。 図18は、イベント名判定処理の処理フローを示す図である。 図19は、タイムスタンプが複数含まれるテーブルの一例を示す図である。 図20(a)乃至(e)は、図19のテーブルをイベント毎に複数のテーブルとして分割した例を示す図である。 図21は、スキーマ情報が存在する場合における、受注DBのイベント候補データの各要素に対する判定表示の一例を示す図である。 図22は、CSV形式のデータの場合における、受注DBのイベント候補データの各要素に対する判定表示の一例を示す図である。 図23は、スキーマ情報が存在する場合における、生産DBのイベント候補データの各要素に対する判定表示の一例を示す図である。 図24は、CSV形式のデータの場合における、生産DBのイベント候補データの各要素に対する判定表示の一例を示す図である。 図25は、スキーマ情報が存在する場合における、手配DBのイベント候補データの各要素に対する判定表示の一例を示す図である。 図26は、CSV形式のデータの場合における、手配DBのイベント候補データの各要素に対する判定表示の一例を示す図である。 図27は、スキーマ情報が存在する場合における、配送DBのイベント候補データの各要素に対する判定表示の一例を示す図である。 図28は、CSV形式のデータの場合における、配送DBのイベント候補データの各要素に対する判定表示の一例を示す図である。 図29は、スキーマ情報が存在する場合における、品番DBのイベント候補データの各要素に対する判定表示の一例を示す図である。 図30は、CSV形式のデータの場合における、品番DBのイベント候補データの各要素に対する判定表示の一例を示す図である。 図31は、イベント候補データの各要素に対する選択結果の一例を示す図である。 図32は、スキーマ情報が存在する場合において受注DBのデータから生成したイベント候補データの一例を示す図である。 図33は、CSV形式のデータの場合において受注DBのデータから生成したイベント候補データの一例を示す図である。 図34は、スキーマ情報が存在する場合において生産DBのデータから生成したイベント候補データの一例を示す図である。 図35は、CSV形式のデータの場合において生産DBのデータから生成したイベント候補データの一例を示す図である。 図36は、スキーマ情報が存在する場合において手配DBのデータから生成したイベント候補データの一例を示す図である。 図37は、CSV形式のデータの場合において手配DBのデータから生成したイベント候補データの一例を示す図である。 図38は、スキーマ情報が存在する場合において配送DBのデータから生成したイベント候補データの一例を示す図である。 図39は、CSV形式のデータの場合において配送DBのデータから生成したイベント候補データの一例を示す図である。 図40は、図19の起票に関するイベント候補データの一例を示す図である。 図41は、図19の承認に関するイベント候補データの一例を示す図である。 図42は、図19の発注に関するイベント候補データの一例を示す図である。 図43は、図19の納品に関するイベント候補データの一例を示す図である。 図44は、図19の検収に関するイベント候補データの一例を示す図である。 図45は、イベントデータ及びイベント間関係ツリーの一例を示す図である。 図46は、イベントデータからのプロセスインスタンス生成を説明するための図である。 図47は、プロセスインスタンスの一例を示す図である。 図48は、主要及び例外フローの抽出処理を説明するための図である。 図49は、図48に示したプロセスインスタンスを重ね合わせる場合の表示例を示す図である。 図50(a)乃至(c)は、図48に示したプロセスインスタンスを、主要フローと例外フローとに分類した場合の表示例を示す図である。 図51は、重複解消処理を説明するためのプロセスインスタンスの例を示す図である。 図52は、図51に示したプロセスインスタンスを単純に分類した場合の例を示す図である。 図53は、重複解消処理の処理フローを示す図である。 図54Aは、重複する繰り返しを有するプロセスインスタンスの例を示す図である。 図54Bは、重複する繰り返しを削除した場合のプロセスインスタンスの例を示す図である。 図55は、手戻り重複解消処理の処理フローを示す図である。 図56は、手戻り重複解消処理を説明するためのプロセスインスタンスの例を示す図である。 図57は、手戻り部分の切り出しを説明するための図である。 図58Aは、手戻り部分の分類を説明するための図である。 図58Bは、手戻り部分の重複を削除する処理を説明するための図である。 図59は、プロセスインスタンスの再構築例を示す図である。 図60は、図56のプロセスインスタンスの重ね合わせ表示の例を示す図である。 図61は、図59のプロセスインスタンスの重ね合わせ表示の例を示す図である。 図62は、図51に示したプロセスインスタンスの例に対して重複解消処理を実施した結果のプロセスインスタンスを示す図である。 図63は、モデルデータ格納部に格納されるデータの一例を示す図である。 図64は、フロー表示処理の処理フローを示す図である。 図65は、図63に登録されている全プロセスインスタンスを重ね合わせた場合の表示例を示す図である。 図66は、図63に登録されているプロセスインスタンスを主要フローと例外フローとに分けた場合の表示例を示す図である。 図67は、コンピュータ装置の機能ブロック図である。
図1に、本発明の一実施の形態に係る業務システム分析装置の機能ブロック図を示す。本実施の形態に係る業務システム分析装置は、単数または複数の解析対象システムから収集されたデータ(所定期間において生成されたデータベースのレコード群、ログデータ、ネットワークDB(NDB)のレコード群、ジャーナルなど)を格納する分析対象データ格納部1と、分析対象データ格納部1からイベント候補データを生成するイベント候補データ生成部3と、イベント候補データ生成部3により生成されたイベント候補データを格納するイベント候補データ格納部5と、ユーザとのインターフェースとなる入出力部11と、入出力部11を介してユーザの指示を受け付けイベントデータを生成するイベントデータ生成部7と、イベントデータ生成部7により生成されたイベントデータを格納するイベントデータ格納部9と、イベントデータ格納部9に格納されているイベントデータからプロセスインスタンスを生成するプロセスインスタンス生成部13と、プロセスインスタンス生成部13によって生成されたプロセスインスタンスのデータを格納するプロセスインスタンスデータ格納部15と、プロセスインスタンスデータ格納部15に格納されているプロセスインスタンスのデータを用いて業務の全体像の把握を困難にしている手戻り及び繰り返しを削除する処理を実施する重複解消部17と、重複解消部17によって処理されたプロセスインスタンスのデータを格納する簡略化プロセスインスタンスデータ格納部19と、簡略化プロセスインスタンスデータ格納部に格納されているプロセスインスタンスを種別毎に分類して出現数をカウントするプロセスインスタンス分類処理部21と、プロセスインスタンス分類処理部21の処理結果を格納するモデルデータ格納部23と、モデルデータ格納部23に格納されているデータを用いて業務フローを表示するために必要な処理を実施するプロセス表示処理部25とを含む。
なお、入出力部11は、イベント候補データ生成部3、プロセスインスタンス生成部13、プロセス表示処理部25についても、ユーザとのインターフェースとして動作する。また、各処理部は、処理結果などを読み出して入出力部11を介してユーザに提示するなどの処理を実施することもある。
また、イベント候補データ生成部3は、タイムスタンプ処理部31と、イベントID・関連ID候補処理部32と、イベント名処理部34と、スコア表格納部35とを有する。さらに、重複解消部17は、繰り返し処理部171と、手戻り処理部173とを有する。
次に、業務システム分析装置の大まかな処理内容について図2(a)乃至(d)を用いて説明する。まず、イベント候補データ生成部3は、分析対象データ格納部1に格納された業務システムについてのデータからイベント候補データを生成する。イベント候補データの一例を図2(a)に示す。図2(a)の例では、例えば1つのテーブル(例えばデータベース)から、イベント名と、時刻(イベントの発生日時であるタイムスタンプ)と、それ以外の第1の値(値1)と、第2の値(値2)などを含むレコード群が抽出されるようになっている。すなわち、イベント名やタイムスタンプ、それ以外にイベントIDや関連IDの候補となるデータ・フィールドが特定される。
次に、イベントデータ生成部7は、イベント候補データ格納部5に格納されているイベント候補データからイベントデータを生成する。イベントデータの一例を図2(b)に示す。図2(b)の例では、複数のテーブル(例えばデータベース)から、イベント名、時刻(イベントの発生日時であるタイムスタンプ)、イベントID(ここではID1)及び他の値を含むレコード群と、イベント名、時刻(タイムスタンプ)、ID1及びID2などを含むレコード群とが抽出され、第2のイベントクラス(すなわち、イベントの種類)のレコードの関連IDであるID2のフィールド値が、第1のイベントクラス(すなわち、イベントの種類)のレコードのイベントIDであるID1のフィールド値のいずれかの値をとることにより、第2のイベントクラスの各々のレコード(すなわちイベントインスタンス)が、第1のイベントクラスのどのレコード(すなわちイベントインスタンス)と関連しているかが特定される。このようなイベント間の関連などを抽出する処理自体は、本実施の形態における主要部ではなく、例えば日本国の特願2006−197294号(2006年7月19日出願)及びその対応外国出願に開示されており、本願はその内容を取り込む。
その後、プロセスインスタンス生成部13は、イベントデータ格納部9に格納されているイベントデータからプロセスインスタンスのデータを生成する。プロセスインスタンスの一例を図2(c)に示す。図2(c)の例では、4つのプロセスインスタンスが例示されており、各々のプロセスインスタンスには、一連のイベントインスタンス(具体的なイベント)が含まれている。すなわち、例えば「受注」「起票」「納品」「検品」といったイベントクラスに属する連続するイベントインスタンス(具体的なイベントであり特定のレコードに対応するイベント)でプロセスインスタンスが構成される。ただし、プロセスインスタンスに含まれるイベントインスタンスは、すべてのイベントクラスに由来する必要はなく、ひとつのイベントクラスに属するイベントインスタンスが複数含まれていても良い。なお、プロセスインスタンス生成処理自体は、本実施の形態における主要部ではなく、例えば、米国特許公開公報2005/076059A1のような業務プロセストラッキング方法等を用いることができる。なお、本公報を本願に組み込む。
そして、プロセスインスタンスのデータを、重複解消部17及びプロセスインスタンス分類処理部21によって処理をして、プロセス表示処理部25は、モデルデータ格納部23に格納されているデータからプロセスフロー(業務フローとも呼ぶ)のデータを生成して、入出力部11を介して表示装置に表示する。プロセスフローの一例を図2(d)に示す。図2(d)の例では、プロセスインスタンスが集約されて特定される業務フローが示されている。
次に、図1に示した業務システム分析装置の処理の詳細を図3乃至図66を用いて説明する。まず、ユーザは、業務システムにおける解析対象テーブルの指定を行い、そのデータをコピーして分析対象データ格納部1に格納させる(図3:ステップS1)。例えば、受注DB、生産DB、手配DB、配送DB、品番DBが指定され、所定期間において生成され蓄積されていたレコード群をコピーして、分析対象データ格納部1に格納する。なお、これらのDBがリレーショナルデータベースであれば、スキーマ情報をもコピーして、分析対象データ格納部1に格納しておく。本ステップについては、予めユーザがコンピュータを操作して行う処理であるから、図3では点線ブロックで示している。
例えば受注DBがリレーショナルデータベースである場合には、図4(a)のようなスキーマ情報と図4(b)に示すようなレコード群とが分析対象データ格納部1に格納される。図4(a)に示したスキーマ情報の例では、フィールド1乃至4のそれぞれについて、フィールド名、キー設定データ、データ型、レコード長及びコメントが登録されるようになっている。図4(a)から、フィールド1には日時が登録され、フィールド2には主キーである受注番号が登録され、フィールド3には地域が登録され、フィールド4には受注内容が登録されることが分かる。具体的には図4(b)のようなレコード群となるが、図4(a)のようなスキーマ情報を得れば、図4(b)のようなレコード群の内容を容易に解釈することができる。
同様に、生産DBがリレーショナルデータベースである場合には、図5(a)のようなスキーマ情報と図5(b)に示すようなレコード群とが分析対象データ格納部1に格納される。図5(a)に示したスキーマ情報の例では、フィールド1乃至5のそれぞれについて、フィールド名、キー設定データ、データ型、レコード長及びコメントが登録されるようになっている。図5(a)から、フィールド1には日時が登録され、フィールド2には主キーである生産番号が登録され、フィールド3には副キーである受注番号が登録され、フィールド4には副キーである品番が登録され、フィールド5には納期が登録されることが分かる。具体的には図5(b)のようなレコード群となるが、図5(a)のようなスキーマ情報を得れば、図5(b)のようなレコード群の内容を容易に解釈することができる。
また、手配DBがリレーショナルデータベースである場合には、図6(a)のようなスキーマ情報と図6(b)に示すようなレコード群とが分析対象データ格納部1に格納される。図6(a)に示したスキーマ情報の例では、フィールド1乃至5のそれぞれについて、フィールド名、キー設定データ、データ型、レコード長及びコメントが登録されるようになっている。図6(a)から、フィールド1には日時が登録され、フィールド2には主キーである手配番号が登録され、フィールド3には副キーである受注番号が登録され、フィールド4には副キーである品番が登録され、フィールド5には納品先が登録されることが分かる。具体的には図6(b)のようなレコード群となるが、図6(a)のようなスキーマ情報を得れば、図6(b)のようなレコード群の内容を容易に解釈することができる。
さらに、配送DBがリレーショナルデータベースである場合には、図7(a)のようなスキーマ情報と図7(b)に示すようなレコード群とが分析対象データ格納部1に格納される。図7(a)に示したスキーマ情報の例では、フィールド1乃至4のそれぞれについて、フィールド名、キー設定データ、データ型、レコード長及びコメントが登録されるようになっている。図7(a)から、フィールド1には日時が登録され、フィールド2には主キーである手配番号が登録され、フィールド3には副キーである配送便が登録され、フィールド4に納品先が登録されることが分かる。具体的には図7(b)のようなレコード群となるが、図7(a)のようなスキーマ情報を得れば、図7(b)のようなレコード群の内容を容易に解釈することができる。
また、品番DBがリレーショナルデータベースである場合には、図8(a)のようなスキーマ情報と図8(b)に示すようなレコード群とが分析対象データ格納部1に格納される。図8(a)に示したスキーマ情報の例では、フィールド1及び2のそれぞれについて、フィールド名、キー設定データ、データ型、レコード長及びコメントが登録されるようになっている。図8(a)から、フィールド1には主キーである品番が登録され、フィールド2には品名が登録されることが分かる。具体的には図8(b)のようなレコード群となるが、図8(a)のようなスキーマ情報を得れば、図8(b)のようなレコード群の内容を容易に解釈することができる。
一方、受注DBのデータをCSV形式で取得した場合には、図9(a)に示すようなデータが分析対象データ格納部1に格納される。図9(a)の例では、日時、受注番号、地域及び受注内容というラベルデータが先頭に含まれ、その後は上記ラベルの順番にデータが羅列され、データ間はカンマにて区切られている。図9(a)をわかりやすくするためにテーブル形式にすると図9(b)に示すようになる。すなわち、日時の列と、受注番号の列と、地域の列と、受注内容の列とを含むテーブルとなる。スキーマ情報はないので、データは皆文字列として格納される。また、キー設定データはない。
同様に、生産DBのデータをCSV形式で取得した場合には、図10(a)に示すようなデータが分析対象データ格納部1に格納される。図10(a)の例では、日時、生産番号、受注番号、品番及び納期というラベルデータが先頭に含まれ、その後は上記ラベルの順番にデータが羅列され、データ間はカンマにて区切られている。図10(a)をわかりやすくするためにテーブル形式にすると図10(b)に示すようになる。すなわち、日時の列と、生産番号の列と、受注番号の列と、品番の列と、納期の列とを含むテーブルとなる。
また、手配DBのデータをCSV形式で取得した場合には、図11(a)に示すようなデータが分析対象データ格納部1に格納される。図11(a)の例では、日時、手配番号、受注番号、品番及び納品先というラベルデータが先頭に含まれ、その後は上記ラベルの順番にデータが羅列され、データ間はカンマにて区切られている。図11(a)をわかりやすくするためにテーブル形式にすると図11(b)に示すようになる。すなわち、日時の列と、手配番号の列と、受注番号の列と、品番の列と、納品先の列とを含むテーブルとなる。
さらに、配送DBのデータをCSV形式で取得した場合には、図12(a)に示すようなデータが分析対象データ格納部1に格納される。図12(a)の例では、日時、手配番号、配送便及び納品先というラベルデータが先頭に含まれ、その後は上記ラベルの順番にデータが羅列され、データ間はカンマにて区切られている。図12(a)をわかりやすくするためにテーブル形式にすると図12(b)に示すようになる。すなわち、日時の列と、手配番号の列と、配送便の列と、納品先の列とを含むテーブルとなる。
また、品番DBのデータをCSV形式で取得した場合には、図13(a)に示すようなデータが分析対象データ格納部1に格納される。図13(a)の例では、品番及び品名というラベルデータが先頭に含まれ、その後は上記ラベルの順番にデータが羅列され、データ間はカンマにて区切られている。図13(a)をわかりやすくするためにテーブル形式にすると図13(b)に示すようになる。すなわち、品番の列と、品名の列とを含むテーブルとなる。
業務システム分析装置の例えばイベント候補データ生成部3は、全ての解析対象テーブルについて処理したか判断する(ステップS3)。未処理の解析対象テーブルが存在する場合には、未処理の解析対象ーブルを1つ特定する(ステップS5)。そして、タイムスタンプ判定処理を実施する(ステップS7)。このタイムスタンプ判定処理については図14及び図15を用いて説明する。
まず、イベント候補データ生成部3のタイムスタンプ処理部31は、分析対象データ格納部1を参照して、解析対象テーブルにおいて未処理のフィールドを1つ特定する(図14:ステップS31)。そして、分析対象データ格納部1において解析対象テーブルのスキーマ情報が使用可能となっているか判断する(ステップS33)。
スキーマ情報が使用可能となっている場合には、スキーマ情報において処理対象フィールドについてのデータ部分を特定し、その中で処理対象フィールドのデータ型がタイムスタンプ型であるか判断する(ステップS35)。処理対象フィールのデータ型がタイムスタンプ型ではない場合にはステップS39に移行する。例えば、図9(a)乃至図13(a)のようなデータを処理する場合にはスキーマ情報はないので、ステップS39に移行する。
一方、処理対象フィールドのデータ型がタイムスタンプ型であると判断された場合には、処理対象フィールドのタイムスタンプ判定を「確定」と設定し、例えばメインメモリなどの記憶装置に格納する(ステップS37)。そして、処理はステップS43に移行する。
例えば、図4(a)のようなスキーマ情報の場合、フィールド1のデータ型がタイムスタンプ型であるので、フィールド1が処理対象フィールドであれば、タイムスタンプ判定=「確定」と設定される。図5(a)のようなスキーマ情報の場合、フィールド1のデータ型がタイムスタンプ型であるので、フィールド1が処理対象フィールドであれば、タイムスタンプ判定=「確定」と設定される。図6(a)及び図7(a)についても同様である。図8(a)の場合には、全フィールドについて、ステップS35からステップS39に移行する。
ステップS33でスキーマ情報が使用不能と判断された場合又は処理対象フィールドのデータ型がタイムスタンプ型でない場合、スコア表格納部35に格納されているタイムスタンプ確度スコア表を参照して、スキーマ情報における処理対象フィールドの該当データ部分、処理対象フィールドのフィールド名を表すラベルデータ、及び処理対象フィールドのフィールド値から確度を特定する(ステップS39)。
タイムスタンプ確度スコア表の一例を図15に示す。図15の例では、「フィールドのデータ型が可変長文字列」であれば確度スコアは1(%)と設定され、「フィールドのデータ型が実数」であれば確度スコアは5(%)と設定され、フィールド名の末尾が「時刻」「時間」などであれば確度スコアは90(%)と設定され、フィールド名の末尾が「月日」「日」などであって時刻などが含まれない場合であれば確度スコアは70(%)と設定され、フィールド名に「予定」「納期」など将来の時期を指定する場合であれば確度スコアは10(%)と設定され、フィールド値の文字列に年号(記号)、「/」「:」「’」「.」「−」、数字、空白といった時間に関連する文字以外の文字が含まれている場合には確度スコアは5(%)と設定され、フィールド値の文字列が「YYYY/MM/DD hh:mm:ss」の形式であれば確度スコアは90(%)と設定され、フィールド値の文字列が「YYYY/MM/DD」の形式であれば確度スコアは70(%)と設定され、フィールド値に同一となるものが含まれていれば確度スコアは30(%)と設定され、該当する項目がなければ確度スコアは50(%)と設定される。
例えば、図4(a)のようなスキーマ情報で図4(b)のようなレコード群の場合、フィールド2については、フィールド値に時間に関連する文字以外の文字が含まれているとして確度スコア5(%)と特定される。フィールド3についても同様に、フィールド値に時間に関連する文字以外の文字が含まれているとして確度スコア5(%)と特定される。さらに、フィールド4については、データ型が可変長文字列であるので、確度スコア1(%)と特定される。なお、フィールド4については、フィールド値に時間に関連する文字以外の文字も含まれているので、タイムスタンプ確度スコア表において複数項目に該当しているが、本実施の形態では、50(%)という中央値からより乖離した値の方を採用する。すなわち、フィールド値に時間に関連する文字以外の文字が含まれている場合の確度スコア5(%)よりも1(%)を採用する。
一方、スキーマ情報が存在しない図9(a)の場合には、フィールド1については、フィールド値の文字列が「YYYY/MM/DD hh:mm:ss」の形式であるので、確度スコア90(%)と特定される。フィールド2及び3については同様であるが、フィールド4については、当該フィールドのデータ型が特定できないので、フィールド値に時間に関連する文字以外の文字が含まれている場合に該当すると判断され、確度スコア5(%)と特定される。
また、図5(a)のようなスキーマ情報で図5(b)のようなレコード群の場合にも、フィールド2乃至4については、フィールド値に時間に関連する文字以外の文字が含まれているとして確度スコア5(%)と特定される。フィールド5については、フィールド名の文字列に「納期」が含まれているので、確度スコア10(%)と特定される。なお、フィールド5については、フィールド値の文字列が「YYYY/MM/DD」の形式であるので、タイムスタンプ確度スコア表において複数項目に該当しているが、本実施の形態では、50(%)という中央値からより乖離した値の方を採用する。すなわち、フィールド値の文字列が「YYYY/MM/DD」の形式である場合の確度スコア70(%)よりも10(%)を採用する。スキーマ情報が存在しない図10(a)の場合には、フィールド1については、フィールド値の文字列が「YYYY/MM/DD hh:mm:ss」の形式であるので、確度スコア90(%)と特定される。フィールド2乃至5については、データ型が関係しないので、スキーマ情報が存在する場合と同様の結果が得られる。
さらに、図6(a)のようなスキーマ情報で図6(b)のようなレコード群の場合、フィールド2乃至5については、フィールド値に時間に関連する文字以外の文字が含まれているとして確度スコア5(%)と特定される。スキーマ情報が存在しない図11(a)の場合には、フィールド1については、フィールド値の文字列が「YYYY/MM/DD hh:mm:ss」の形式であるので、確度スコア90(%)と特定される。フィールド2乃至5については、データ型が関係しないので、スキーマ情報が存在する場合と同様の結果が得られる。
また、図7(a)のようなスキーマ情報で図7(b)のようなレコード群の場合、フィールド2乃至4については、フィールド値に時間に関連する文字以外の文字が含まれているとして確度スコア5(%)と定される。スキーマ情報が存在しない図12(a)の場合は、フィールド1については、フィールド値の文字列が「YYYY/MM/DD hh:mm:ss」の形式であるので、確度スコア90(%)と特定される。フィールド2乃至4については、データ型が関係しないので、スキーマ情報が存在する場合と同様の結果が得られる。
さらに、図8(a)のようなスキーマ情報で図8(b)のようなレコード群の場合、フィールド1及び2については、フィールド値に時間に関連する文字以外の文字が含まれているとして確度スコア5(%)と定される。スキーマ情報が存在しない図13(a)の場合も、データ型が関係しないので、スキーマ情報が存在する場合と同様の結果が得られる。
図14の説明に戻って、処理対象フィールドのタイムスタンプ判定を特定された確度スコアに設定する(ステップS41)。上で述べた数値が特定される。
そして、処理対象テーブルにおいて全てのフィールドについて処理したか判断する(ステップS43)。未処理のフィールドが存在する場合にはステップS31に戻る。一方、全てのフィールドを処理した場合には元の処理に戻る。
このように、イベントのタイムスタンプとして蓋然性の高いフィールドに高い値の確度スコアが設定される。また、データ型からタイムスタンプであることが明らかであれば「確定」という蓋然性を表すデータが設定される。
図3の説明に戻って、次に、イベント候補データ生成部3のイベントID・関連ID候補処理部32は、イベントID及び関連ID候補判定処理を実施する(ステップS9)。このイベントID及び関連ID候補判定処理については、図16及び図17を用いて説明する。
イベントID・関連ID候補処理部32は、分析対象データ格納部1に格納されている解析対象テーブルのうち未処理のフィールドを1つ特定する(ステップS51)。そして、分析対象データ格納部1に格納されている、処理対象フィールドのフィールド値が、全レコードで一意となっているか判断する(ステップS53)。処理対象フィールドのフィールド値が、全レコードで一意となっていない、すなわち値が重複しているレコードが存在する場合には、ステップS62に移行する。
イベントIDのフィールドはイベントの識別子の格納フィールドであるので、そのフィールド値が互いに重複することはない。したがって、処理対象フィールドに重複する値が存在すれば、それはイベントIDのフィールドではないと判断できる
一方、処理対象フィールドのフィールド値が、全レコードで一意である場合には、分析対象データ格納部1に格納されている、処理対象フィールドのフィールド値にNULLが含まれているか判断する(ステップS55)。処理対象フィールドのフィールド値にNULLが含まれている場合には、ステップS62に移行する。イベントIDのフィールドはイベントの識別子の格納フィールドであるので、そのフィールド値がNULLということはあり得ない処理対象フィールドのフィールド値が全レコードで一意とは言えない場合、又は処理対象フィールドのフィールド値にNULLを含む場合、分析対象データ格納部1に格納されている、処理対象フィールドのフィールド値が、NULLを除いて2以上あるか判断する(ステップS62)。処理対象フィールドのフィールド値が、NULLを除いて2種類以上ない場合には、イベントID・関連ID候補判定に「否定」を設定し、例えばメインメモリなどの記憶装置に格納する(ステップS63)。そして処理はステップS61に移行する。関連IDはあるイベント他のイベントのどれに対応しているかを表す値であるので、そのフィールド値がNULLを除き2以上の値を有しない場合は、意味がある結果が得られない
例えば図4(b)や図9(b)のようなテーブルの場合、フィールド1とフィールド2とフィールド4とについては、フィールド値に重複が存在せず、フィールド3ついてはフィールド値に重複が存在するが、NULL以外の2種類以上の値をとるので、イベントID・関連ID候補判定に「否定」は設定されない。
また図5(b)や図10(b)のようなテーブルの場合、フィールド1とフィールド2については、フィールド値に重複が存在せず、フィールド3乃至5については重複が存在するが、NULL以外の2種類以上の値をとるので、イベントID・関連ID候補判定に「否定」は設定されない。
さらに図6(b)や図11(b)のようなテーブルの場合、フィールド1とフィールド2については、フィールド値に重複が存在せず、フィールド3乃至5については重複が存在するが、NULL以外の2種類以上の値をとるので、イベントID・関連ID候補判定に「否定」は設定されない。
また図7(b)や図12(b)のようなテーブルの場合、フィールド1とフィールド2については、フィールド値に重複が存在せず、フィールド3及び4については重複が存在するが、NULL以外の2種類以上の値をとるので、イベントID・関連ID候補判定に「否定」は設定されない。
さらに図8(b)や図13(b)のようなテーブルの場合、フィールド1とフィールド2について、フィールド値に重複が存在しないので、イベントID・関連ID候補判定に「否定」は設定されない。
ステップS55において処理対象フィールドのフィールド値にNULLが含まれていないと判断された場合、又はステップS62において処理対象フィールドのフィールド値が、NULLを除いて2種類以上値を有すると判断された場合には、スコア表格納部35に格納されているイベントID・関連ID候補確度スコア表を参照して、スキーマ情報における処理対象フィールドの該当データ部分、処理対象フィールドのフィールド名を表すラベルデータ、及び処理対象フィールドのフィールド値から確度を特定する(ステップS57)。但し、イベントID・関連ID候補確度スコア表に該当項目が存在しない場合には、確度スコア50(%)が特定されるものとする。
イベントID・関連ID候補確度スコア表の一例を図17に示す。図17の例では、フィールドのデータ型が可変長文字列であれば確度スコアは1(%)と設定され、フィールドのデータ型が実数であれば確度スコアは5(%)と設定され、フィールドのデータ型が整数であれば確度スコアは80(%)と設定され、フィールドのデータ型が固定長文字列であれば確度スコアは70(%)と設定され、フィールドのデータ型がタイムスタンプ又は日付であれば確度スコアは10(%)と設定され、フィールド名が主キー指定されていれば確度スコアは80(%)と設定される。フィールド値又はフィールド名の文字列についての項目はここでは定義されていないが、定義されることもある。フィールド値についての項目が定義される場合にはステップS57で参照される。
例えば図4(a)のようなスキーマ情報の場合、フィールド1についてはデータ型がタイムスタンプであるので確度スコア10(%)と特定され、フィールド2についてはデータ型が固定長文字列であって且つ主キー指定されているので50%からの乖離の大きい確度スコア80(%)が採用され、フィールド3についてはデータ型が固定長文字列であるので確度スコア70(%)と特定され、フィールド4についてはデータ型が可変長文字列であるので確度スコア1(%)と特定される。図9(a)のようなスキーマ情報が存在しない例の場合、フィールド1乃至フィールド4について、イベントID・関連ID候補確度スコア表には該当項目が存在しないので確度スコア50(%)が特定される。
例えば図5(a)のようなスキーマ情報の場合、フィールド1についてはデータ型がタイムスタンプであるので確度スコア10(%)と特定され、フィールド2についてはデータ型が固定長文字列であって且つ主キー指定されているので50%からの乖離の大きい確度スコア80(%)が採用され、フィールド3及びフィールド4についてはデータ型が固定長文字列であるので確度スコア70(%)が特定され、フィールド5についてはデータ型が日付となっているので確度スコア10(%)が特定される。図10(a)のようなスキーマ情報が存在しない例の場合、フィールド1乃至フィールド5について、イベントID・関連ID候補確度スコア表には該当項目が存在しないので確度スコア50(%)が特定される。
例えば図6(a)のようなスキーマ情報の場合、フィールド1についてはデータ型がタイムスタンプであるので確度スコア10(%)と特定され、フィールド2についてはデータ型が固定長文字列であって且つ主キー指定されているので50%からの乖離の大きい確度スコア80(%)が採用され、フィールド3乃至フィールド5についてはデータ型が固定長文字列であるので確度スコア70(%)が特定される。図11(a)のようなスキーマ情報が存在しない例の場合、フィールド1至フィールド5について、イベントID・関連ID候補確度スコア表には該当項目が存在しないので確度スコア50(%)が特定される。
例えば図7(a)のようなスキーマ情報の場合、フィールド1についてはデータ型がタイムスタンプであるので確度スコア10(%)と特定され、フィールド2についてはデータ型が固定長文字列であって且つ主キー指定されているので50%からの乖離の大きい確度スコア80(%)が採用され、フィールド3及びフィールド4についてはデータ型が固定長文字列であるので確度スコア70(%)が特定される。図12(a)のようなスキーマ情報が存在しない例の場合、フィールド1乃至フィールド4について、イベントID・関連ID候補確度スコア表には該当項目が存在しないので確度スコア50(%)が特定される。
例えば図8(a)のようなスキーマ情報の場合、フィールド1についてはデータ型が固定長文字列であって且つ主キー指定されているので50%からの乖離の大きい確度スコア80(%)が採用され、フィールド2についてはデータ型が固定長文字列であるので確度スコア70(%)が採用される。図13(a)のようなスキーマ情報が存在しない例の場合、フィールド1及び2について、イベントID・関連ID候補確度スコア表には該当項目が存在しないので確度スコア50(%)が特定される。
そして、イベントID・関連ID候補処理部32は、イベントID・関連ID候補判定に、ステップS57で特定された確度スコアを設定して、例えばメインメモリなどの記憶装置に格納する(ステップS59)。
その後、処理対象テーブルにおいて全てのフィールドについて処理したか判断し(ステップS61)、未処理のフィールドが存在する場合にはステップS51に戻る。一方、全てのフィールドについて処理した場合には元の処理に戻る。
このようにすれば、イベントID又は関連IDの蓋然性が高いものについては高い確度スコアが特定されるようになる。また、イベントID又は関連IDの可能性が完全にないものについては「否定」という蓋然性を表すデータが特定される。
図3の説明に戻って、次に、イベント候補データ生成部3のイベント名処理部34は、イベント名判定処理を実施する(ステップS13)。このイベント名判定処理については、図18乃至図20を用いて説明する。
まず、イベント名処理部34は、タイムスタンプ判定処理の処理結果として所定の確度スコア以上でタイムスタンプのフィールドとしてみなすことができるフィールドの数をカウントする(ステップS91)。例えば確度スコア70(%)以上などの閾値を設定する。当然ながら「確定」と特定されているフィールドはタイムスタンプのフィールドである。上で述べた例では、品番DBを除き、フィールド名が日時であるフィールドがタイムスタンプのフィールドと判断され、フィールド数は「1」となる。品番DBでは、タイムスタンプとみなすことができるフィールドはないので、フィールド数は「0」となる。
そして、タイムスタンプのフィールド数が0であるか判断する(ステップS93)。フィールド数が0であれば、解析対象テーブルを以下の処理の対象外として設定する(ステップS95)。タイムスタンプがないテーブル(例えば品番DB)は、業務プロセス中に発生するイベントに対応しているテーブルではないと判断される。そして元の処理に戻る。
一方、タイムスタンプのフィールド数が0ではない場合には、フィールド数が1であるか判断する(ステップS97)。タイムスタンプのフィールド数が1であれば、イベント名にテーブル名を設定し、例えばメインメモリなどの記憶装置に格納する(ステップS99)。上の例では、受注DBであれば、イベント名は「受注」と特定され、生産DBであれば、イベント名は「生産」と特定され、手配DBであれば、イベント名は「手配」と特定され、配送DBであれば、イベント名は「配送」と特定される。そして元の処理に戻る。
また、タイムスタンプのフィールド数が複数である場合には、タイムスタンプとみなされたフィールドのフィールド名をイベント名に設定し、例えばメインメモリなどの記憶装置に格納する(ステップS101)。そして元の処理に戻る。
例えば図19のようなテーブルが処理対象テーブルである場合にステップS101が実行される。図19の例では、起票日時、承認日時、発注日時、納品日時、検収日時がそれぞれイベントのタイムスタンプとみなされるフィールドとなり、1レコードにイベントが複数記録される形式となっている。このようなテーブルは、図20(a)乃至(e)に示したような起票テーブル、承認テーブル、発注テーブル、納品テーブル及び検収テーブルという複数テーブルとして扱うことができる。従って、このような場合には、「起票」「承認」「発注」「納品」「検収」がそれぞれイベント名として特定される。
以上のような処理を実施することによって、業務プロセス中に発生するイベントに対応しているテーブルを特定すると共に、イベント名を抽出することができるようになる。
図3の説明に戻って、次に、イベント候補データ生成部3は、判定結果を入出力部11を介してユーザに提示する(ステップS15)。例えば、図4(a)及び(b)に示したようなリレーショナルデータベース形式の受注DBの場合には、図21に示すようなデータがユーザに提示される。図21の例では、日時フィールド、受注番号フィールド、地域フィールド、受注内容フィールドのそれぞれにつき、ステップS7乃至S13の判定結果が提示されている。なお、イベント名についてはテーブル名がイベント名とされるので、全て「否定」とされている。これを見れば、日時フィールドがタイムスタンプのフィールドで「確定」となっており、受注番号フィールド及び地域フィールドがイベントIDまたは関連IDの可能性が高いことが分かる。
また、図9(a)に示したCSV形式の受注DBの場合には、図22に示すようなデータがユーザに提示される。図22の例では、日時フィールド、受注番号フィールド、地域フィールド、受注内容フィールドのそれぞれにつき、ステップS7乃至S13の判定結果が提示されている。なお、イベント名についてはテーブル名がイベント名とされるので、全て「否定」とされている。これを見れば、日時フィールドがタイムスタンプの可能性が高く、イベントIDまたは関連IDである可能性はいずれのフィールドも同等であることが分かる。
例えば、図5(a)及び(b)に示したようなリレーショナルデータベース形式の生産DBの場合には、図23に示すようなデータがユーザに提示される。図23の例では、日時フィールド、生産番号フィールド、受注番号フィールド、品番フィールド、納期フィールドのそれぞれにつき、ステップS7乃至S13の判定結果が提示されている。なお、イベント名についてはテーブル名がイベント名とされるので、全て「否定」とされている。これを見れば、日時フィールドがタイムスタンプのフィールドで「確定」となっており、生産番号フィールドと受注番号フィールドと品番フィールドがイベントIDまたは関連IDの可能性が高いことが分かる。
また、図10(a)に示したCSV形式の生産DBの場合には、図24に示すようなデータがユーザに提示される。図24の例では、日時フィールド、生産番号フィールド、受注番号フィールド、品番フィールド、納期フィールドのそれぞれにつき、ステップS7乃至S13の判定結果が提示されている。なお、イベント名についてはテーブル名がイベント名とされるので、全て「否定」とされている。これを見れば、日時フィールドがタイムスタンプの可能性が高く、イベントIDまたは関連IDである可能性はいずれのフィールドも同等であることが分かる。
例えば、図6(a)及び(b)に示したようなリレーショナルデータベース形式の手配DBの場合には、図25に示すようなデータがユーザに提示される。図25の例では、日時フィールド、手配番号フィールド、受注番号フィールド、品番フィールド、納品先フィールドのそれぞれにつき、ステップS7乃至S13の判定結果が提示されている。なお、イベント名についてはテーブル名がイベント名とされるので、全て「否定」とされている。これを見れば、日時フィールドがタイムスタンプのフィールドで「確定」となっており、手配番号フィールドと受注番号フィールドと品番フィールドと納品先フィールドがイベントIDまたは関連IDの可能性が高いことが分かる。
また、図11(a)に示したCSV形式の手配DBの場合には、図26に示すようなデータがユーザに提示される。図26の例では、日時フィールド、手配番号フィールド、受注番号フィールド、品番フィールド、納品先フィールドのそれぞれにつき、ステップS7乃至S13の判定結果が提示されている。なお、イベント名についてはテーブル名がイベント名とされるので、全て「否定」とされている。これを見れば、日時フィールドがタイムスタンプの可能性が高く、イベントIDまたは関連IDである可能性はいずれのフィールドも同等であることが分かる。
例えば、図7(a)及び(b)に示したようなリレーショナルデータベース形式の配送DBの場合には、図27に示すようなデータがユーザに提示される。図27の例では、日時フィールド、手配番号フィールド、配送便フィールド、納品先フィールドのそれぞれにつき、ステップS7乃至S13の判定結果が提示されている。なお、イベント名についてはテーブル名がイベント名とされるので、全て「否定」とされている。これを見れば、日時フィールドがタイムスタンプのフィールドで「確定」となっており、手配番号フィールドと配送便フィールドと納品先フィールドがイベントIDまたは関連IDの可能性が高いことが分かる。
また、図12(a)に示したCSV形式の配送DBの場合には、図28に示すようなデータがユーザに提示される。図28の例では、日時フィールド、手配番号フィールド、配送便フィールド、納品先フィールドのそれぞれにつき、ステップS7乃至S13の判定結果が提示されている。なお、イベント名についてはテーブル名がイベント名とされるので、全て「否定」とされている。これを見れば、日時フィールドがタイムスタンプの可能性が高く、イベントIDまたは関連IDである可能性はいずれのフィールドも同等であることが分かる。
例えば、図8(a)及び(b)に示したようなリレーショナルデータベース形式の品番DBの場合には、図29に示すようなデータがユーザに提示される。図29の例では、品番フィールド、品名フィールドのそれぞれにつき、ステップS7乃至S13の判定結果が提示されている。なお、品番DBはタイムスタンプがないと判断され、以降の処理対象外とされているため、イベント名については全て「否定」とされている。これを見れば、タイムスタンプのフィールドが存在する可能性が非常に低く、品番フィールドと品名フィールドはイベントIDまたは関連IDの可能性が高いことが分かる。
また、図13(a)に示したCSV形式の品番DBの場合には、図30に示すようなデータがユーザに提示される。図30の例では、品番フィールド、品名フィールドのそれぞれにつき、ステップS7乃至S13の判定結果が提示されている。なお、品番DBはタイムスタンプがないと判断され、以降の処理対象外とされているため、イベント名については全て「否定」とされている。これを見れば、タイムスタンプのフィールドが存在する可能性は非常に低く、イベントIDまたは関連IDである可能性はいずれのフィールドも同等であることが分かる。
図3の説明に戻って、ステップS15が終了すると、ユーザは、入出力部11を介して、イベント名、タイムスタンプ、イベントID・関連ID候補などについて修正入力又は確定入力を行い、レコードのコピーなどを行って又は命じて、イベント候補データを生成し、イベント候補データ生成部3にイベント候補データ格納部5へ格納させる(ステップS16)。この作業は主に又は一部ユーザによって実施されるので、図3では点線ブロックで描かれている。そして処理はステップS3に戻る。
例えば図21の判定結果に従って、図31に示すようにイベント名についてはテーブル名である「受注」を確定させ、タイムスタンプについては日時フィールドを確定させ、イベントID・関連ID候補については受注番号フィールド及び地域フィールドを確定させる場合、例えば図32に示すようなデータが、イベント候補データ格納部5に格納される。図32に示す例では、イベント名「受注」が全てのレコードに付加され、日時フィールドのフィールド値の全レコード分がタイムスタンプのフィールドにコピーされ、受注番号フィールド及び地域フィールドがイベントID・関連ID候補として、フィールド名とフィールド値の全レコード分がコピーされる。
例えば図22の判定結果に従って、イベント名についてはテーブル名である「受注」を確定させ、タイムスタンプについては日時フィールドを確定させ、イベントID・関連ID候補については受注番号フィールド及び地域フィールド及び受注内容フィールドを確定させる場合、例えば図33のようなデータが、イベント候補データ格納部5に格納される。
さらに例えば図23の判定結果に従って、イベント名についてはテーブル名である「生産」を確定させ、タイムスタンプについては日時フィールドを確定させ、イベントID・関連ID候補については生産番号フィールド及び受注番号フィールド及び品番フィールドを確定させる場合、例えば図34のようなデータが、イベント候補データ格納部5に格納される。
また例えば図24の判定結果に従って、イベント名についてはテーブル名である「生産」を確定させ、タイムスタンプについては日時フィールドを確定させ、イベントID・関連ID候補については生産番号フィールド及び受注番号フィールド及び品番フィールド及び納期フィールドを確定させる場合、例えば図35のようなデータが、イベント候補データ格納部5に格納される。
さらに例えば図25の判定結果に従って、イベント名についてはテーブル名である「手配」を確定させ、タイムスタンプについては日時フィールドを確定させ、イベントID・関連ID候補については手配番号フィールド及び受注番号フィールド及び品番フィールド及び納品先フィールドを確定させる場合、例えば図36のようなデータが、イベント候補データ格納部5に格納される。
また例えば図26の判定結果に従って、イベント名についてはテーブル名である「手配」を確定させ、タイムスタンプについては日時フィールドを確定させ、イベントID・関連ID候補については手配番号フィールド及び受注番号フィールド及び品番フィールド及び納品先フィールドを確定させる場合、例えば図37のようなデータが、イベント候補データ格納部5に格納される。
さらに例えば図27の判定結果に従って、イベント名についてはテーブル名である「配送」を確定させ、タイムスタンプについては日時フィールドを確定させ、イベントID・関連ID候補については手配番号フィールド及び配送便フィールド及び納品先フィールドを確定させる場合、例えば図38のようなデータが、イベント候補データ格納部5に格納される。
また例えば図28の判定結果に従って、イベント名についてはテーブル名である「配送」を確定させ、タイムスタンプについては日時フィールドを確定させ、イベントID・関連ID候補については手配番号フィールド及び配送便フィールド及び納品先フィールドを確定させる場合、例えば図39のようなデータが、イベント候補データ格納部5に格納される。
また、例えば図19のようなテーブル内に複数のタイムスタンプのフィールドが存在するようなテーブルを処理対象とする場合は、例えば図40乃至図44に示すようなデータが、イベント候補データ格納部5に格納される。図40乃至図44に示す例では、タイムスタンプとして確定されたフィールドである起票日時、承認日時、発注日時、納品日時、検収日時を元に、それらのフィールド毎に、各々イベント名を「起票」、「承認」、「発注」、「納品」、「検収」と確定させたイベント候補データを作成する。タイムスタンプについては、起票日時フィールド、承認日時フィールド、発注日時フィールド、納品日時フィールド、検収日時フィールドのフィールド値の全レコード分が各々のイベント候補データのタイムスタンプのフィールドにコピーされる。さらに、全てのイベント候補データ共通に、起票日時フィールド、承認日時フィールド、発注日時フィールド、納品日時フィールド、検収日時フィールド以外のフィールドについては、イベントID・関連ID候補として、フィールド名とフィールド値の全レコード分がコピーされる。
このようにして以下の処理で用いるイベント候補データがイベント候補データ格納部5に格納されるようになる。
ステップS3で全ての解析対象テーブルを処理したと判断された場合には、イベントデータ生成部7は、イベント候補データ格納部5に格納されているイベント候補データを用いて、イベントデータ生成処理を実施し、処理結果をイベントデータ格納部9に格納する(ステップS17)。
受注イベント、生産イベント、手配イベント、配送イベントに対応して、各々、図32、図34、図36、図38に示されたイベント候補データのセット、または、各々、図33、図35、図37、図39に示されたイベント候補データのセットを用いて生成したイベントデータの例を図45に示す。その生成方法としては、上で述べた日本国の特願2006−197294記載のようなイベントデータの関連情報の自動抽出方式を用いても良いし、人手によって、各イベント候補データのイベントID・関連ID候補のフィールド値の対応関係を調査・分析することによって、イベント間の関連性を確定しても良い。
図45では、受注イベントのイベントIDは受注番号であり、生産イベントのイベントIDは生産番号、関連IDは受注番号であり、手配イベントのイベントIDは手配番号、関連IDは受注番号であり、配送イベントのイベントIDは手配番号、関連IDは配送便であることが確定されている。また、生産イベントの関連IDのフィールド値が、受注イベントのイベントIDのフィールド値のどれかの値をとることにより、生産イベントの各々のレコード(すなわち、イベントインスタンス)が、受注イベントのどのレコード(すなわち、イベントインスタンス)と関連しているかが特定されるというイベント間の関連性が確定されている。同様の関連性が、手配イベントの関連IDと受注イベントのイベントIDとの間、配送イベントのイベントIDと手配イベントのイベントIDとの間に確定されている。
また、プロセスインスタンス生成部13は、イベントデータ格納部9に格納されているイベントデータを用いてプロセスインスタンス生成処理を実施し、処理結果をプロセスインスタンスデータ格納部15に格納する(ステップS19)。その生成方法としては、米国特許公開公報2005/076059A1のような業務プロセストラッキング方法等を用いることができる。
図45のイベントデータを用いて、受注番号:JT01の受注イベントインスタンスを起点とするプロセスインスタンスを生成する処理過程の概略説明を図46に示す。最初に、関連IDのフィールド値、受注イベントのイベントIDである受注番号のフィールド値:JT01をとるレコード(すなわち、イベントインスタンス)として、生産イベントから2つ、手配イベントから3つのイベントインスタンスが確定される。次に、関連IDのフィールド値として定された手配イベントのイベントIDである手配番号:TH01,TH02,TH03を関連IDのフィールド値としてとるレコード(すなわち、イベントインスタンス)として、配送イベントから3つのイベントインスタンスが確定される。最後に、確定された、受注番号:JT01の受注イベントインスタンスを起点として、直接・間接的に関連性をもつイベントインスタンスを、そのタイムスタンプの値に基いて時間経過の順につなぎ合わせることによって、プロセスインスタンスが生成される。すなわち、第1のプロセスインスタンスとしては、受注、生産、手配、手配、手配、配送、生産、配送、配送というイベントインスタンスが時系列に並べられたプロセスインスタンスが生成される。
同様にして、図45のイベントデータを用いて生成した全プロセスインスタンスを図47に示す。第2のプロセスインスタンスは、受注、手配及び配送というイベントインスタンスが時系列に並べられたプロセスインスタンスである。第3のプロセスインスタンスは、受注、生産、生産、手配及び配送というイベントインスタンスが時系列に並べられたプロセスインスタンスである。さらに、第4のプロセスインスタンスは、受注、手配及び配送というイベントインスタンスが時系列に並べられたプロセスインスタンスである。
図3の処理フローの説明に戻って、次に、重複解消部17は、プロセスインスタンスデータ格納部15に格納されているプロセスインスタンスのデータを用いて、重複解消処理を実施する(ステップS21)。この処理については、図48乃至図62を用いて詳細に説明する。
まず、図48乃至図52を用いて重複解消処理を実施する趣旨について説明する。まず、図48に示すように、プロセスインスタンスデータ格納部15に10個のプロセスインスタンスが格納されているものとする。ここで、Initial State、契約、伝票作成、請求、回収、契約満了及びFinal Stateというイベントインスタンスを含むプロセスインスタンスが5つ作成されてグループAが構成される。また、Initial State、契約、伝票作成、請求及び回収の後に契約更新を介して伝票作成に戻って請求及び回収を実施(手戻り)した後さらに契約満了及びFinal Stateに移行するというプロセスインスタンスが3つ作成されてグループBが構成される。さらに、Initial State、契約、伝票作成、請求及び回収の後に継続を介して請求に戻って回収を実施(手戻り)して契約満了及びFinal Stateに移行するというプロセスインスタンスが1つ作成されてグループCが構成される。そして、Initial State、契約、伝票作成、請求及び回収の後に再度回収が実施(繰返し)されて契約満了及びFinal Stateに移行するというプロセスインスタンスが1つ作成されてグループDが構成される。
このようなプロセスインスタンスが生成されて、単純にグループA乃至Dのプロセスインスタンスを重ね合わせると、図49に示すような全体フローが生成される。図49の全体フローでは、グループAのプロセスインスタンスをメインフローとして実線で示しており、グループB、C及びDで含まれる、手戻りの経由イベントインスタンス及び手戻り遷移並びに繰り返し遷移を説明上見やすくするため、点線で示している。
また、例えばグループの出現頻度の全体に対して占める比率20%を閾値として、主要フローと例外フローとを分ける場合には、図50(a)に示すように、主要フローとしては、グループAとグループBのプロセスインスタンスが重ね合わされたフローが生成され、ユーザに提示される。これに対して、例外フローは、図50(b)に示すグループCのプロセスインスタンス(但し、説明上見やすくするため、手戻り部分の経由イベントインスタンス及び遷移については点線で示されている)、図50(c)に示すグループDのプロセスインスタンス(但し、説明上見やすくするため、繰り返しを表す遷移については点線で示されている)がユーザに提示される。
48に示すようなプロセスインスタンスの合には、主要フローと例外フローを分ける上で問題はあまりなく、ユーザは、図49や図50に示したような図で、業務フローの概況を容易に把握できるようになる。グループAだけでも50%の出現頻度を占めるため、グループAのみを主要フローとして認めても、図50と同様に、業務フローの概況を把握する上で特別に問題はない。
一方、図51に示すようなプロセスインスタンスが生成された場合には、図48のような場合とは異なり、問題が生ずる。図51の例では、Initial State、契約、伝票作成、請求、回収、契約満了及びFinal Stateという流れと基本として、回収というイベントインスタンスが1回繰り返されるプロセスインスタンスが2つと、回収というイベントインスタンスが2回繰り返されるプロセスインスタンスが1つと、回収というイベントインスタンスが3回繰り返されるプロセスインスタンスが1つと、回収というイベントインスタンスが4回繰り返されるプロセスインスタンスが1つと、回収というイベントインスタンスが5回繰り返されるプロセスインスタンスが1つ生成されている。残りのプロセスインスタンスについても、Initial State、契約、伝票作成、請求、回収、契約満了及びFinal Stateという流れと基本として、契約更新という経由イベントインスタンスを介して伝票作成、請求及び回収を1回繰り返す手戻りを行うプロセスインスタンスが1つと、契約更新という経由イベントインスタンスを介して伝票作成、請求及び回収を2回繰り返す手戻りを行うプロセスインスタンスが1つと、契約更新という経由イベントインスタンスを介して伝票作成、請求及び回収を3回繰り返す手戻りを行うプロセスインスタンスが1つ生成されている。さらに、Initial State、契約、伝票作成、請求、回収、契約満了及びFinal Stateという流れと基本として、継続という経由イベントインスタンスを介して請求及び回収を1回繰り返す手戻りを行うプロセスインスタンスも1つ生成されている。
このように、手戻り回数が異なるだけのプロセスインスタンスが複数種類、また繰り返しの回数が異なるだけのプロセスインスタンスが複数種類生成されて、単純に分類を行うと、同じグループであると判断されるプロセスインスタンスは、非常に少なくなる。図51の例では、回収というイベントインスタンスが1回繰り返されるプロセスインスタンスのみが2つあるのでグループとしても、その出現頻度はたったの20%で、図52に示すようにその他を例外フローとすると、8つも例外フローが生じてしまい、業務フローの概要を把握する上では、例外フローの意味づけが曖昧になってしまう。
そこで、図53乃至図66に示すような処理を実施することによって、業務の全体像の把握を困難にしている手戻り及び繰り返しをプロセスインスタンスから削除することによって、プロセスインスタンスのグルーピングを容易にして、ユーザが業務フローの概要を容易に把握できるようにする。
重複解消部17は、プロセスインスタンスデータ格納部15において未処理のプロセスインスタンスを1つ特定する(図53:ステップS111)。そして、特定されたプロセスインスタンスについて、繰り返しの有無及び手戻りの有無を検査する(ステップS113)。特定のイベントインスタンスより前に実施された他のイベントインスタンスに、経由イベントインスタンスを介して又は介さずに戻るような遷移を手戻りとして特定し、同じイベントインスタンスに戻るような遷移を繰り返しとして特定する。1つのプロセスインスタンスに、繰り返しと手戻りが含まれている場合もあり、さらに複数箇所、繰り返し又は手戻りが含まれる場合もある。
そして、重複解消部17の繰り返し処理部171は、特定されたプロセスインスタンスについて全ての繰り返し箇所を処理したか判断する(ステップS115)。未処理の繰り返し箇所が存在する場合、繰り返し処理部171は、未処理の繰り返し箇所を特定し(ステップS117)、特定された繰り返し箇所において繰り返しを1回分のみ残し、残りを削除する(ステップS119)。そしてステップS115に戻る。
例えば図54Aに示すようなプロセスインスタンスの場合、伝票作成において繰り返し4001が3回、請求において繰り返し4002が1回、請求開始において繰り返し4003が4回生じているが、それぞれについて1回分のみが残るように重複する余剰繰り返しを削除する。そうすると、図54Bに示すように、伝票作成における繰り返し4001’は1回になり、請求における繰り返し4002’は1回のままとなり、請求開始において繰り返し4003’は1回になる。
図53の処理の説明に戻って、全ての繰り返し箇所を処理した場合又は全く繰り返しが存在していない場合には、手戻り処理部173は、全ての手戻り箇所を処理したか判断する(ステップS121)。未処理の手戻り箇所が存在する場合には、手戻り処理部173は、未処理の手戻り箇所を1つ特定する(ステップS123)。そして、手戻り重複解消処理を実施する(ステップS125)。手戻り重複解消処理については、図55乃至図61を用いて説明する。
まず、手戻り処理部173は、特定された手戻り箇所における手戻り部分を切り出す(ステップS131)。ここで例えば図56に示すようなプロセスインスタンスを処理する場合を想定する。具体的には、このプロセスインスタンスでは、Initial State、契約、伝票作成、請求、契約更新、請求開始まで進んだ後、請求まで戻り、契約更新、請求開始まで進んだ後、さらに伝票作成まで戻り、さらに請求、契約更新、請求開始まで進んだ後、また請求まで戻り、さらに契約更新、請求開始と進んで、請求終了、Final Stateへ進む。ステップS131では、図57に示すように、請求まで戻る第1の手戻り部分と、伝票作成まで戻る第2の手戻り部分と、請求まで戻る第3の手戻り部分とを切り出す。
そして、手戻り処理部173は、手戻り部分のパターンを分類する(ステップS133)。図58Aに示したように切り出された3つの手戻り部分は、請求、契約更新及び請求開始までの2つの手戻り部分がパターン1として特定され、伝票作成、請求、契約更新及び請求開始までの1つの手戻り部分がパターン2として特定される。
そして、手戻り処理部173は、パターン毎に重複解消、すなわち各パターンにつき1つの手戻りを残し、残余の手戻りを削除する(ステップS135)。図58Aのような2つのパターンが存在する場合には、図58Bに示すように、各パターンに1つの手戻りのみに統合される。
その後、手戻り処理部173は、プロセスインスタンスを再構築して、簡略化プロセスインスタンスデータ格納部19に格納する(ステップS137)。図58Bのような場合には、図59に示すように、パターン1及び2の手戻り部分を連続して発生するイベントインスタンスとして連結して、Initial State、契約、伝票作成、請求、契約更新、請求開始、請求、契約更新、請求開始、伝票作成、請求、契約更新、請求開始、請求終了、Final Stateというような順番でイベントインスタンスが発生するプロセスインスタンスが構築される。
図56の初期状態のプロセスインスタンスを、同一イベントインスタンスを重ね合わせて表示する場合、図60のように複雑に遷移が入り組む形になるが、上で述べたような処理を実施すれば、図61に示したように、手戻りが2箇所に生じていることが明確になり、全体像を把握しやすくなる。
図53の説明に戻って、ステップS125の後にステップS121に戻る。
ステップS121で、全ての手戻り箇所を処理したと判断された場合又は手戻り箇所が存在しない場合には、重複解消部17は、全てのプロセスインスタンスを処理したか判断する(ステップS127)。未処理のプロセスインスタンスが存在する場合にはステップS111に戻る。一方、未処理のプロセスインスタンスが存在しない場合には元の処理に戻る。
図3の説明に戻って、プロセスインスタンス分類処理部21は、簡略化プロセスインスタンスデータ格納部19に格納されているプロセスインスタンスを分類し、分類結果に基づき種類毎に計数して、種類毎に計数値をモデルデータ格納部23に格納する(ステップS23)。図51に示されたようなプロセスインスタンスが生成された場合には、ステップS21を実施すると図62に示すようなプロセスインスタンスが、簡略化プロセスインスタンスデータ格納部19に格納される。すなわち、Initial State、契約、伝票作成、請求、回収、回収、契約満了、Final Stateという遷移が行われるプロセスインスタンスが6つ含まれるグループと、Initial State、契約、伝票作成、請求、回収、契約更新、伝票作成、請求、回収、契約満了、Final Stateという遷移が行われるプロセスインスタンスが3つ含まれるグループと、Initial State、契約、伝票作成、請求、回収、継続、請求、回収、契約満了、Final Stateという遷移が行われるプロセスインスタンスが1つ含まれるグループとに分類される。従って、モデルデータ格納部23には、図63に示すようなデータが格納される。図63の例では、上で述べた3つのグループのプロセスインスタンスと、それぞれの計数値が登録されている。なお、主要フローフラグの欄には、この段階では何も登録されない。
そして、プロセス表示処理部25は、モデルデータ格納部23に格納されているデータを用いて、フロー表示処理を実施する(ステップS25)。フロー表示処理について図64乃至図66を用いて説明する。
まず、プロセス表示処理部25は、モデルデータ格納部23に格納されているプロセスインスタンスのグループを計数値に基づき降順に整列させる(ステップS141)。そして、各プロセスのグループを主要フローとして扱うための判断基準となる、当該グループのプロセスインスタンスの総数に占める比率の閾値を、ユーザから入力された場合には当該入力値により、ユーザの入力がない場合には予め設定されている値で決定する(ステップS143)。例えば総数に占める比率の閾値20%以上のグループを主要フローと分類する場合には、20%を入力する。但し、予め設定されている値(例えば30%)をそのまま用いるようにしても良い。
そして、プロセス表示処理部25は、計数値上位より1つ未選択のプロセスインスタンスのグループを選択する(ステップS147)。この選択されたグループのプロセス主要フロー(典型フローとも呼ぶ)に指定する(ステップS149)。具体的には、モデルデータ格納部23のテーブルにおける主要フローフラグをオンにセットする。また、計数値から全体に対する比率を計算する(ステップS151)。そして、選択グループの全体に対して占める比率≧閾値であるか判断する(ステップS153)。この条件が満たされている場合にはステップS147に戻る。
例えば、図63の例では、最初に第1レコードを選択すると、全体に占める比率が60%となり、閾値が20%であれば、ステップS147に戻る。次に、第2レコードを選択すると、全体に占める比率は30%となり、同様に、ステップS147に戻る。このように第1レコード及び第2レコードについて主要フローフラグがオンにセットされる。
最後に、第3レコードを選択すると、全体に占める比率が10%となり、全体に占める比率≧閾値という条件が満たされなくなるので、の処理に戻る。このようにすれば、ステップS147で選択されたループ以外のプロセスインスタンスは、主要フローフラグがオンにセットされていないので、例外フローとして特定されたことになる。
図3の説明に戻って、プロセス表示処理部25は、モデルデータ格納部23に格納されているデータを用いて、入出力部11を介して処理結果を出力する(ステップS27)。例えば、全てのプロセスインスタンスを重ね合わせて表示する場合には、図65に示すような業務フローが表示されるようになる。図65で示すように、継続を経由する手戻りと契約更新を経由する手戻りと、回収の繰り返しがそれぞれ1つだけ存在するような表示になる。
また、モデルデータ格納部23に格納されている主要フローフラグのデータを用いて、主要フローと例外フローとを分けて表示する場合には、図66に示すような表示がなされる。例えば、90%を分類割合としていると、図63に示したテーブルにおいて第1及び第2レコードのプロセスインスタンスが重ね合わされて、図66の上段のような業務フローが主要フローとして表示される。また、図63に示したテーブルにおいて第3のプロセスインスタンスが、例外フローとして表示される。
このような処理を実施すれば、図52のような分類及び表示と比べて、非常に整理された形で業務フローが提示されるため、ユーザは、実際に実施されている業務フローの概要をより把握しやすくなる。すなわち、特徴を把握する上で業務の全体像の把握を困難にしている手戻りや繰り返しが省略されているので、繰り返しの有無や仕方、手戻りの有無や仕方を、把握しやすくなる。
以上本発明の実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、例えば図1に示した機能ブロック図は一例であって、必ずしも実際のプログラムモジュールに対応しない。
また、業務の全体像の把握を困難にしている手戻りを削除してプロセスインスタンスを再構築する際には、図59に示すように手戻りが1箇所に複数存在する場合には、その順番を一定のルールで定めておかないと異なるプロセスインスタンスとして認識されてしまう。例えば、手戻りの長さが短い順に並べてからプロセスインスタンスを再構築するというルールを採用すれば、手戻りの順番が異なる実質的に同じプロセスインスタンスが生成されることが無くなる。
また、各スコア表も一例であって、確度スコア値の設定の仕方は、経験的にさらに細かく決定される場合もある。さらに、スコア表の項目についても、より少ない項目が設定される場合もあれば、より多くの項目が設定される場合もある。
また、図3の処理フローにおいて、ステップS7乃至S13については順番の入れ替えが可能であり、また並列に実施するようにしてもよい。
また、判定結果の出力では、各判定項目において「確定」判定や所定の閾値以上の確度スコアとなっているフィールドを自動的に選択してユーザに提示し、自動選択できない判定項目についてユーザに選択又は入力を促すようにしてもよい。
さらに、処理対象フィールドについてのループは、ステップS7乃至S13内の各々で構成されているが、ステップS7乃至S13の外側に処理対象フィールドについてのループを出すようにしてもよい。
なお、業務システム分析装置は、コンピュータ装置であって、図67に示すように、メモリ2501とCPU2503とハードディスク・ドライブ(HDD)2505と表示装置2509に接続される表示制御部2507とリムーバブル・ディスク2511用のドライブ装置2513と入力装置2515とネットワークに接続するための通信制御部2517とがバス2519で接続されている。オペレーティング・システム(OS:Operating System)及び本実施例における処理を実施するためのアプリケーション・プログラムは、HDD2505に格納されており、CPU2503により実行される際にはHDD2505からメモリ2501に読み出される。必要に応じてCPU2503は、表示制御部2507、通信制御部2517、ドライブ装置2513を制御して、必要な動作を行わせる。また、処理途中のデータについては、メモリ2501に格納され、必要があればHDD2505に格納される。本発明の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはリムーバブル・ディスク2511に格納されて頒布され、ドライブ装置2513からHDD2505にインストールされる。インターネットなどのネットワーク及び通信制御部2517を経由して、HDD2505にインストールされる場合もある。このようなコンピュータ装置は、上で述べたCPU2503、メモリ2501などのハードウエアとOS及び必要なアプリケーション・プログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。

Claims (7)

  1. 業務処理の結果を格納するデータベースから案件毎に実施された一連の業務のデータを抽出して、前記案件毎に実施された業務の業務名を時系列に並べたプロセスインスタンスを生成し、プロセスインスタンスデータ格納部に格納するステップと、
    前記プロセスインスタンスデータ格納部に格納されている各前記プロセスインスタンスについて、当該プロセスインスタンスの第1の業務から、先に実施された第2の業務に戻る手戻りが発生しているか判断するステップと、
    前記手戻りが発生している前記プロセスインスタンスについて、前記手戻りのパターン種別毎に当該手戻りの重複手戻りを削除し、前記重複手戻り削除後の前記プロセスインスタンスを、簡略化プロセスインスタンスデータ格納部に格納するステップと、
    前記簡略化プロセスインスタンスデータ格納部に格納されている前記プロセスインスタンスを、種別毎に計数するステップと、
    前記計数結果に基づき、出現頻度が所定基準以上となっており且つ前記簡略化プロセスインスタンスデータ格納部に格納されている前記プロセスインスタンスを特定し、主要な業務フローとして出力する出力ステップと、
    を、コンピュータに実行させるための業務フロー処理プログラム。
  2. 前記プロセスインスタンスデータ格納部に格納されている各前記プロセスインスタンスについて、当該プロセスインスタンスの第3の業務から当該第3の業務に戻る繰り返しが発生しているか判断するステップと、
    前記繰り返しが発生している前記プロセスインスタンスについて、前記繰り返しのパターン種別毎に当該繰り返しの重複繰り返しを削除し、前記重複繰り返し削除後のプロセスインスタンスを、前記プロセスインスタンスデータ格納部に格納するステップと、
    をさらに前記コンピュータに実行させるための請求項1記載の業務フロー処理プログラム。
  3. 前記簡略化プロセスインスタンスデータ格納部に格納されている各前記プロセスインスタンスについて、当該プロセスインスタンスの第3の業務から当該第3の業務に戻る繰り返しが発生しているか判断するステップと、
    前記繰り返しが発生している前記プロセスインスタンスについて、前記繰り返しのパターン種別毎に当該繰り返しの重複繰り返しを削除し、前記重複繰り返し削除後のプロセスインスタンスを、前記簡略化プロセスインスタンスデータ格納部に格納するステップと、
    をさらに前記コンピュータに実行させるための請求項1記載の業務フロー処理プログラム。
  4. 前記出力ステップが、
    特定された前記プロセスインスタンスを重ね合わせるステップ
    を含む請求項1記載の業務フロー処理プログラム。
  5. 前記出力ステップが、
    特定された前記プロセスインスタンス以外のプロセスインスタンスを、例外フローとして出力するステップ
    を含む請求項1記載の業務フロー処理プログラム。
  6. 業務処理の結果を格納するデータベースから案件毎に実施された一連の業務のデータを抽出して、前記案件毎に実施された業務の業務名を時系列に並べたプロセスインスタンスを生成し、プロセスインスタンスデータ格納部に格納するステップと、
    前記プロセスインスタンスデータ格納部に格納されている各前記プロセスインスタンスについて、当該プロセスインスタンスの第1の業務から、先に実施された第2の業務に戻る手戻りが発生しているか判断するステップと、
    前記手戻りが発生している前記プロセスインスタンスについて、前記手戻りのパターン種別毎に当該手戻りの重複手戻りを削除し、前記重複手戻り削除後の前記プロセスインスタンスを、簡略化プロセスインスタンスデータ格納部に格納するステップと、
    前記簡略化プロセスインスタンスデータ格納部に格納されている前記プロセスインスタンスを、種別毎に計数するステップと、
    前記計数結果に基づき、出現頻度が所定基準以上となっており且つ前記簡略化プロセスインスタンスデータ格納部に格納されている前記プロセスインスタンスを特定し、主要な業務フローとして出力する出力ステップと、
    を含み、コンピュータに実行される業務フロー処理方法。
  7. 業務処理の結果を格納するデータベースから案件毎に実施された一連の業務のデータを抽出して、前記案件毎に実施された業務の業務名を時系列に並べたプロセスインスタンスを生成し、プロセスインスタンスデータ格納部に格納する手段と、
    前記プロセスインスタンスデータ格納部に格納されている各前記プロセスインスタンスについて、当該プロセスインスタンスの第1の業務から、先に実施された第2の業務に戻る手戻りが発生しているか判断する手段と、
    前記手戻りが発生している前記プロセスインスタンスについて、前記手戻りのパターン種別毎に当該手戻りの重複手戻りを削除し、前記重複手戻り削除後の前記プロセスインスタンスを、簡略化プロセスインスタンスデータ格納部に格納する手段と、
    前記簡略化プロセスインスタンスデータ格納部に格納されている前記プロセスインスタンスを、種別毎に計数する手段と、
    前記計数結果に基づき、出現頻度が所定基準以上となっており且つ前記簡略化プロセスインスタンスデータ格納部に格納されている前記プロセスインスタンスを特定し、主要な業務フローとして出力する出力手段と、
    を有する業務フロー処理装置。
JP2009554181A 2008-02-22 2008-02-22 業務フロー処理プログラム、方法及び装置 Expired - Fee Related JP5012911B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2008/053086 WO2009104276A1 (ja) 2008-02-22 2008-02-22 業務フロー処理プログラム、方法及び装置

Publications (2)

Publication Number Publication Date
JPWO2009104276A1 true JPWO2009104276A1 (ja) 2011-06-16
JP5012911B2 JP5012911B2 (ja) 2012-08-29

Family

ID=40985171

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009554181A Expired - Fee Related JP5012911B2 (ja) 2008-02-22 2008-02-22 業務フロー処理プログラム、方法及び装置

Country Status (6)

Country Link
US (1) US20100318389A1 (ja)
EP (1) EP2256677A4 (ja)
JP (1) JP5012911B2 (ja)
KR (1) KR101175475B1 (ja)
CN (1) CN101952843A (ja)
WO (1) WO2009104276A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103247007A (zh) * 2012-07-09 2013-08-14 中国科学院沈阳自动化研究所 一种基于生产事件的生产过程跟踪方法
US20140343982A1 (en) * 2013-05-14 2014-11-20 Landmark Graphics Corporation Methods and systems related to workflow mentoring
US20160071043A1 (en) * 2014-09-04 2016-03-10 International Business Machines Corporation Enterprise system with interactive visualization
US11042506B2 (en) * 2016-07-20 2021-06-22 Microsoft Technology Licensing, Llc Compliance violation detection
CN110795171B (zh) * 2019-09-18 2023-08-04 平安银行股份有限公司 业务数据处理方法、装置、计算机设备及存储介质
US11972296B1 (en) * 2023-05-03 2024-04-30 The Strategic Coach Inc. Methods and apparatuses for intelligently determining and implementing distinct routines for entities

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69811790T2 (de) * 1997-08-01 2003-11-20 International Business Machines Corp., Armonk Ableitung von Prozessmodellen aus Rechnungsprüfvorgängen für Systeme zur Verwaltung von Arbeitsflüssen
US6038538A (en) * 1997-09-15 2000-03-14 International Business Machines Corporation Generating process models from workflow logs
DE19954268B4 (de) * 1998-12-01 2005-07-21 Ibm Corp. Verfahren und System zur Verbesserung des Workflow in Workflow-Management-Systemen
JP3609333B2 (ja) * 2000-09-29 2005-01-12 株式会社リコー 営業管理方法、営業管理システム及び記録媒体
US20030065702A1 (en) * 2001-09-24 2003-04-03 Ravinder Singh Cache conscious load balancing
US7562339B2 (en) * 2002-01-15 2009-07-14 Bea Systems, Inc. System architecture for business process development and execution with introspection and generic components
US7398525B2 (en) * 2002-10-21 2008-07-08 International Business Machines Corporation Resource scheduling in workflow management systems
EP1639458A4 (en) * 2003-06-12 2010-05-05 Reuters America BUSINESS PROCESS AUTOMATION
JP4287234B2 (ja) * 2003-10-03 2009-07-01 富士通株式会社 業務プロセストラッキング装置,業務プロセストラッキング方法,業務プロセストラッキングプログラム,業務プロセストラッキングプログラムを記録した記録媒体
US20070203589A1 (en) * 2005-04-08 2007-08-30 Manyworlds, Inc. Adaptive Recombinant Process Methods
US7712102B2 (en) * 2004-07-30 2010-05-04 Hewlett-Packard Development Company, L.P. System and method for dynamically configuring a plurality of load balancers in response to the analyzed performance data
US8010337B2 (en) * 2004-09-22 2011-08-30 Microsoft Corporation Predicting database system performance
JP2006197294A (ja) 2005-01-14 2006-07-27 Epson Toyocom Corp 対称インバーター対圧電発振器
JP4549231B2 (ja) * 2005-05-17 2010-09-22 富士通株式会社 サービス処理状況分析プログラム、サービス処理状況分析方法、およびサービス処理状況分析装置
US7739099B2 (en) * 2005-12-22 2010-06-15 International Business Machines Corporation Method and system for on-line performance modeling using inference for real production IT systems
EP1972093B1 (en) * 2005-12-28 2018-03-28 Telecom Italia S.p.A. A method for the automatic generation of workflow models, in particular for interventions in a telecommunication network
JP4904878B2 (ja) * 2006-03-27 2012-03-28 富士通株式会社 システム開発支援プログラム、システム開発支援装置およびシステム開発支援方法
WO2007132547A1 (ja) * 2006-05-16 2007-11-22 Fujitsu Limited 業務モデル生成プログラム、業務モデル生成方法および業務モデル生成装置
US20090094074A1 (en) * 2007-10-04 2009-04-09 Nikovski Daniel N Method for Constructing Business Process Models from Task Execution Traces
US7912946B2 (en) * 2008-01-25 2011-03-22 International Business Machines Corporation Method using footprints in system log files for monitoring transaction instances in real-time network

Also Published As

Publication number Publication date
CN101952843A (zh) 2011-01-19
KR101175475B1 (ko) 2012-08-20
EP2256677A4 (en) 2012-12-05
JP5012911B2 (ja) 2012-08-29
US20100318389A1 (en) 2010-12-16
WO2009104276A1 (ja) 2009-08-27
EP2256677A1 (en) 2010-12-01
KR20100092981A (ko) 2010-08-23

Similar Documents

Publication Publication Date Title
JP4832523B2 (ja) 業務プロセス分析のための情報処理方法及び装置
JP3302522B2 (ja) データベースシステムおよびその情報活用支援装置
JP4704461B2 (ja) 業務モデル生成プログラム、業務モデル生成方法および業務モデル生成装置
JP5012911B2 (ja) 業務フロー処理プログラム、方法及び装置
US20100042745A1 (en) Workflow diagram generation program, apparatus and method
US20110161132A1 (en) Method and system for extracting process sequences
JP2017091329A (ja) データベース分析装置およびデータベース分析方法
JP5169560B2 (ja) 業務フロー処理プログラム、方法及び装置
JP6623754B2 (ja) 表形式データ処理プログラム、方法及び装置
JP4953834B2 (ja) データ解析方法及びデータ解析システム
JP4529861B2 (ja) 階層データの検索装置および検索方法および検索プログラム
JP5246031B2 (ja) 業務フロー処理プログラム、方法及び装置
US8335759B2 (en) Work analysis device and recording medium recording work analysis program
JP2003016226A (ja) 製品市場品質情報解析支援装置、製品市場品質情報解析支援システム及び製品市場品質情報解析支援用プログラム
US20230143297A1 (en) Production knowledge management system, production knowledge management method, and production knowledge management program
Snipes et al. Code hot spot: A tool for extraction and analysis of code change history
JP6336922B2 (ja) 業務バリエーションに基づく業務影響箇所抽出方法および業務影響箇所抽出装置
JP2023141268A (ja) プロセスモデル作成システムおよび方法
JP4181330B2 (ja) 要約作成プログラム及びシステム並びにコンピュータによる要約作成方法
JP2007334393A (ja) 部品表データ管理方法およびシステム
JP2006133883A (ja) プロジェクト管理方法、プロジェクト管理プログラム及びプロジェクト管理装置
JP2004086352A (ja) テキスト情報分析システム、分析結果の格納方法および提示方法
AU2012202032A1 (en) A web server, client computing device, computer implemented method and computer readable storage medium for processing intellectual property data
JPH0830676A (ja) 開発実績の自動収集管理装置
JP2007140891A (ja) データ項目辞書作成方法

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120508

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120521

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150615

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees