JP5267732B2 - Webページの制御方法、計算機システム及びプログラム - Google Patents
Webページの制御方法、計算機システム及びプログラム Download PDFInfo
- Publication number
- JP5267732B2 JP5267732B2 JP2012512617A JP2012512617A JP5267732B2 JP 5267732 B2 JP5267732 B2 JP 5267732B2 JP 2012512617 A JP2012512617 A JP 2012512617A JP 2012512617 A JP2012512617 A JP 2012512617A JP 5267732 B2 JP5267732 B2 JP 5267732B2
- Authority
- JP
- Japan
- Prior art keywords
- web page
- definition information
- input
- output
- information
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/103—Formatting, i.e. changing of presentation of documents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Entrepreneurship & Innovation (AREA)
- Databases & Information Systems (AREA)
- Strategic Management (AREA)
- Human Resources & Organizations (AREA)
- Economics (AREA)
- General Engineering & Computer Science (AREA)
- Game Theory and Decision Science (AREA)
- Tourism & Hospitality (AREA)
- Development Economics (AREA)
- Data Mining & Analysis (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Educational Administration (AREA)
- General Business, Economics & Management (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- User Interface Of Digital Computer (AREA)
- Information Transfer Between Computers (AREA)
Description
本発明は、Webページの表示制御方法、Webアプリケーションシステム及びプログラムに係り、特に、複数のWebページを、Webページ間の依存関係に基づいて統合するWebページの表示制御方法、Webアプリケーションシステム及びプログラムに関する。
近年、複数のITシステムを利用して業務を行う作業者(ユーザ)の業務効率向上を目的としたITシステムの導入が進んでいる。例えば特許文献1では、作業者に対して業務手順やITシステムの利用手順を提示することで、作業者の効率的な業務遂行を支援するコールセンター支援システムを開示している。具体的には、業務を構成する複数の作業を作業者が実施すべき順序で表示するフローチャート表示領域と、作業者が作業を実施するために必要な情報を表示する作業支援情報表示領域とを組合せて単一の画面として構成し、作業ごとに表示するシステムである。
作業者に表示する各画面は、作業者が当該画面で必要とする情報量を、開発者が想定して開発する。しかし、開発者が想定した情報量と、作業者が期待する情報量との間に乖離がある場合があり、開発したITシステムが作業者にとって使い勝手がよいとは限らないこともある。つまり、作業者の期待よりも少ない量の情報を当該画面で表示する場合には、作業者は期待する情報量に相当する量の情報を得るために、想定した操作よりも多くの操作を行わなければならないこととなる。
一方、複数の画面で表示していた情報を単一の画面に表示すると、作業者の期待よりも多い量の情報を表示してしまうため、作業者は画面に表示された情報の中から自分が必要とする情報を探し出さなければならないという負担が生ずる。このようなことが、作業者の円滑な業務遂行の妨げとなっている。
このような中、単一の画面に表示する情報の量を作業者に合わせて変更する方法として、特許文献2が挙げられる。特許文献2では、作業者が指定した複数のWebページを単一の画面に統合して表示する方法において、作業者自身が、各Webページの中から画面に表示する情報を部分的に選択できる方法を開示している。特許文献2に開示された技術を用いることにより、作業者が指定した複数のWebページの画面を単一の画面上に統合して表示できるため、作業者が自分に合わせて単一の画面に表示される情報の量を変更することができる。
作業者に表示する各画面は、作業者が当該画面で必要とする情報量を、開発者が想定して開発する。しかし、開発者が想定した情報量と、作業者が期待する情報量との間に乖離がある場合があり、開発したITシステムが作業者にとって使い勝手がよいとは限らないこともある。つまり、作業者の期待よりも少ない量の情報を当該画面で表示する場合には、作業者は期待する情報量に相当する量の情報を得るために、想定した操作よりも多くの操作を行わなければならないこととなる。
一方、複数の画面で表示していた情報を単一の画面に表示すると、作業者の期待よりも多い量の情報を表示してしまうため、作業者は画面に表示された情報の中から自分が必要とする情報を探し出さなければならないという負担が生ずる。このようなことが、作業者の円滑な業務遂行の妨げとなっている。
このような中、単一の画面に表示する情報の量を作業者に合わせて変更する方法として、特許文献2が挙げられる。特許文献2では、作業者が指定した複数のWebページを単一の画面に統合して表示する方法において、作業者自身が、各Webページの中から画面に表示する情報を部分的に選択できる方法を開示している。特許文献2に開示された技術を用いることにより、作業者が指定した複数のWebページの画面を単一の画面上に統合して表示できるため、作業者が自分に合わせて単一の画面に表示される情報の量を変更することができる。
しかし、上記特許文献2に開示された技術では、単一の画面に表示されるWebページ間の依存関係に基づいた制御ができないため、作業者が実施すべき作業の順序に基づいて各Webページの内容が決まる場合に、処理に不整合が生じてしまうという問題がある。
例えば、一方のWebページで特定の項目を入力し、当該項目への入力に応じて他方のWebページに表示される項目へ入力するべき値の範囲が制限されるという依存関係があるシステムについて考える。本来、両Webページは、異なるタイミングで且つ同時に同一画面に表示されることは無いので、他方のWebページの入力項目は、前のWebページで入力された項目の入力値に基づいて、両項目間の依存関係、すなわち、項目へ入力するべき値の範囲を判断する。このため、他方のWebページの項目に、作業者が制限を越えた値を入力してしまったとしても、動的に入力エラーを検出することができる。この両Webページを単一画面上に統合して表示する場合、特許文献2に開示された技術は、単にユーザによる設定に基づいて両画面の統合を行うものの、両ページの入力項目の依存関係まで判断することはできない。即ち特許文献2に開示された技術によって統合された画面では、作業者が各項目の入力順序を無視して(上述の他のWebページの項目に相当する項目に)範囲外の値を先立って入力できるため、データに不整合が起こってしまうという問題が生ずる。
更に、上記特許文献2の技術では、複数のWebページを単に統合して同一画面上に同時に表示させる場合、各Webページに共通して表示されている情報も重複して表示されることになり、情報の視認性が低下するという問題も生ずる。
上記問題を解決するためには、作業者による画面の統合に起因した処理の不整合、及び情報の視認性低下を防止し、効率的かつ確実な業務遂行を支援する必要がある。
上述した課題を解決するため、本発明は、複数のWebページを計算機で統合して単一のWebページとして出力するWebページの制御方法において、前記計算機が、単一のWebページに統合する複数のWebページを定義した統合定義情報を取得する第1のステップと、前記計算機が、前記統合定義情報の複数のWebページに含まれる構成要素間の入出力関係を抽出する第2のステップと、前記計算機が、前記抽出した入出力関係から出力先となるWebページの構成要素を抽出する第3のステップと、前記計算機が、前記抽出した出力先となるWebページの構成要素に対する操作を禁止する第4のステップと、前記計算機が、前記抽出した入出力関係から入力元となる全てのWebページの構成要素を抽出する第5のステップと、前記計算機が、前記入力元となる全てのWebページの構成要素に対する操作が完了した際に、前記出力先となるWebページの構成要素に対する操作を許可する第6のステップと、を含む。
更に、前記抽出した入出力関係の入力元となるWebページの構成要素と、出力先となるWebページの構成要素の入出力の履歴情報を比較し、当該比較結果が常に等しくなる出力先となるWebページの構成要素を削除するステップを含む。
本発明によれば、構成要素間の入出力関係に依存関係を有する複数のWebページを統合した単一のWebページにおいて、より利便性が向上するという効果を奏する。Webページに含まれる構成要素間の入出力関係に基づいて、統合後の各Webページに表示される構成要素に対する入力を制御することで、ユーザが誤った順序で入力を行うことを防止することができるため、ユーザの確実な業務遂行を支援することが可能となる。加えて、重複する構成要素を削除することで、単一のWebページ内に表示する情報の視認性を向上することができる。
更に、本発明によれば、開発者が事前に開発したWebページを用いて単一の画面の情報量を変更できるため、ユーザの想定する情報量に合わせたWebページの開発が容易になる。
例えば、一方のWebページで特定の項目を入力し、当該項目への入力に応じて他方のWebページに表示される項目へ入力するべき値の範囲が制限されるという依存関係があるシステムについて考える。本来、両Webページは、異なるタイミングで且つ同時に同一画面に表示されることは無いので、他方のWebページの入力項目は、前のWebページで入力された項目の入力値に基づいて、両項目間の依存関係、すなわち、項目へ入力するべき値の範囲を判断する。このため、他方のWebページの項目に、作業者が制限を越えた値を入力してしまったとしても、動的に入力エラーを検出することができる。この両Webページを単一画面上に統合して表示する場合、特許文献2に開示された技術は、単にユーザによる設定に基づいて両画面の統合を行うものの、両ページの入力項目の依存関係まで判断することはできない。即ち特許文献2に開示された技術によって統合された画面では、作業者が各項目の入力順序を無視して(上述の他のWebページの項目に相当する項目に)範囲外の値を先立って入力できるため、データに不整合が起こってしまうという問題が生ずる。
更に、上記特許文献2の技術では、複数のWebページを単に統合して同一画面上に同時に表示させる場合、各Webページに共通して表示されている情報も重複して表示されることになり、情報の視認性が低下するという問題も生ずる。
上記問題を解決するためには、作業者による画面の統合に起因した処理の不整合、及び情報の視認性低下を防止し、効率的かつ確実な業務遂行を支援する必要がある。
上述した課題を解決するため、本発明は、複数のWebページを計算機で統合して単一のWebページとして出力するWebページの制御方法において、前記計算機が、単一のWebページに統合する複数のWebページを定義した統合定義情報を取得する第1のステップと、前記計算機が、前記統合定義情報の複数のWebページに含まれる構成要素間の入出力関係を抽出する第2のステップと、前記計算機が、前記抽出した入出力関係から出力先となるWebページの構成要素を抽出する第3のステップと、前記計算機が、前記抽出した出力先となるWebページの構成要素に対する操作を禁止する第4のステップと、前記計算機が、前記抽出した入出力関係から入力元となる全てのWebページの構成要素を抽出する第5のステップと、前記計算機が、前記入力元となる全てのWebページの構成要素に対する操作が完了した際に、前記出力先となるWebページの構成要素に対する操作を許可する第6のステップと、を含む。
更に、前記抽出した入出力関係の入力元となるWebページの構成要素と、出力先となるWebページの構成要素の入出力の履歴情報を比較し、当該比較結果が常に等しくなる出力先となるWebページの構成要素を削除するステップを含む。
本発明によれば、構成要素間の入出力関係に依存関係を有する複数のWebページを統合した単一のWebページにおいて、より利便性が向上するという効果を奏する。Webページに含まれる構成要素間の入出力関係に基づいて、統合後の各Webページに表示される構成要素に対する入力を制御することで、ユーザが誤った順序で入力を行うことを防止することができるため、ユーザの確実な業務遂行を支援することが可能となる。加えて、重複する構成要素を削除することで、単一のWebページ内に表示する情報の視認性を向上することができる。
更に、本発明によれば、開発者が事前に開発したWebページを用いて単一の画面の情報量を変更できるため、ユーザの想定する情報量に合わせたWebページの開発が容易になる。
図1Aは、本発明の第1の実施形態を示し、計算機システムのハードウェアとソフトウェアの概要を示すブロック図である。
図1Bは、本発明の第1の実施形態を示し、計算機システムのハードウェアとソフトウェアの概要を示すブロック図である。
図2は、本発明の第1の実施形態を示し、フロー定義情報テーブルの構成の一例を表す説明図である。
図3は、本発明の第1の実施形態を示し、ステップ統合定義情報テーブルの構成の一例を表す説明図である。
図4は、本発明の第1の実施形態を示し、変更フィールド記憶テーブルの構成の一例を表す説明図である。
図5は、本発明の第1の実施形態を示し、入出力履歴情報テーブルの構成の一例を表す説明図である。
図6は、本発明の第1の実施形態を示し、フロー定義情報の記述例を示す説明図である。
図7Aは、本発明の第1の実施形態を示し、フロー定義情報を変更する処理のフローチャートの前半部である。
図7Bは、本発明の第1の実施形態を示し、フロー定義情報を変更する処理のフローチャートの後半部である。
図8Aは、本発明の第1の実施形態を示し、入力項目制御処理のフローチャートの前半部である。
図8Bは本発明の第1の実施形態を示し、入力項目制御処理のフローチャートの後半部である。
図9Aは、本発明の第1の実施形態を示し、重複削除処理のフローチャートの前半部である。
図9Bは、本発明の第1の実施形態を示し、重複削除処理のフローチャートの中間部である。
図9Cは、本発明の第1の実施形態を示し、重複削除処理のフローチャートの後半部である。
図10は、本発明の第1の実施形態を示し、ステップ統合処理のフローチャートである。
図11Aは、本発明の第1の実施形態を示し、イベントリスナ処理のフローチャートの前半部である。
図11Bは、本発明の第1の実施形態を示し、イベントリスナ処理のフローチャートの中間部である。
図11Cは、本発明の第1の実施形態を示し、イベントリスナ処理のフローチャートの後半部である。
図12Aは、本発明の第1の実施形態を示し、業務ステップが統合される以前の業務フロー及び支援情報表示領域の表示形式を表す画面イメージである。
図12Bは、本発明の第1の実施形態を示し、業務ステップが統合された後の業務フロー及び支援情報表示領域の表示形式を表す画面イメージである。
図13は、本発明の第1の実施形態を示し、業務ステップが繰り返しの定義を含む場合の業務フロー及び支援情報表示領域を示し、業務ステップの統合前と統合後の画面イメージである。
図14は、本発明の第1の実施形態を示し、業務ステップが条件分岐の定義を含む場合の業務フロー及び支援情報表示領域を示し、業務ステップの統合前と統合後の画面イメージである。
図15は、本発明の第2の実施形態を示し、計算機システムのハードウェアとソフトウェアの概要を示すブロック図である。
図16は、本発明の第2の実施形態を示し、グループ管理テーブルの構成の一例を表す説明図である。
図17は、本発明の第3の実施形態を示し、計算機システムのハードウェアとソフトウェアの概要を示すブロック図である。
図1Bは、本発明の第1の実施形態を示し、計算機システムのハードウェアとソフトウェアの概要を示すブロック図である。
図2は、本発明の第1の実施形態を示し、フロー定義情報テーブルの構成の一例を表す説明図である。
図3は、本発明の第1の実施形態を示し、ステップ統合定義情報テーブルの構成の一例を表す説明図である。
図4は、本発明の第1の実施形態を示し、変更フィールド記憶テーブルの構成の一例を表す説明図である。
図5は、本発明の第1の実施形態を示し、入出力履歴情報テーブルの構成の一例を表す説明図である。
図6は、本発明の第1の実施形態を示し、フロー定義情報の記述例を示す説明図である。
図7Aは、本発明の第1の実施形態を示し、フロー定義情報を変更する処理のフローチャートの前半部である。
図7Bは、本発明の第1の実施形態を示し、フロー定義情報を変更する処理のフローチャートの後半部である。
図8Aは、本発明の第1の実施形態を示し、入力項目制御処理のフローチャートの前半部である。
図8Bは本発明の第1の実施形態を示し、入力項目制御処理のフローチャートの後半部である。
図9Aは、本発明の第1の実施形態を示し、重複削除処理のフローチャートの前半部である。
図9Bは、本発明の第1の実施形態を示し、重複削除処理のフローチャートの中間部である。
図9Cは、本発明の第1の実施形態を示し、重複削除処理のフローチャートの後半部である。
図10は、本発明の第1の実施形態を示し、ステップ統合処理のフローチャートである。
図11Aは、本発明の第1の実施形態を示し、イベントリスナ処理のフローチャートの前半部である。
図11Bは、本発明の第1の実施形態を示し、イベントリスナ処理のフローチャートの中間部である。
図11Cは、本発明の第1の実施形態を示し、イベントリスナ処理のフローチャートの後半部である。
図12Aは、本発明の第1の実施形態を示し、業務ステップが統合される以前の業務フロー及び支援情報表示領域の表示形式を表す画面イメージである。
図12Bは、本発明の第1の実施形態を示し、業務ステップが統合された後の業務フロー及び支援情報表示領域の表示形式を表す画面イメージである。
図13は、本発明の第1の実施形態を示し、業務ステップが繰り返しの定義を含む場合の業務フロー及び支援情報表示領域を示し、業務ステップの統合前と統合後の画面イメージである。
図14は、本発明の第1の実施形態を示し、業務ステップが条件分岐の定義を含む場合の業務フロー及び支援情報表示領域を示し、業務ステップの統合前と統合後の画面イメージである。
図15は、本発明の第2の実施形態を示し、計算機システムのハードウェアとソフトウェアの概要を示すブロック図である。
図16は、本発明の第2の実施形態を示し、グループ管理テーブルの構成の一例を表す説明図である。
図17は、本発明の第3の実施形態を示し、計算機システムのハードウェアとソフトウェアの概要を示すブロック図である。
以下、本発明の一実施形態を添付図面に基づいて説明する。
図1A、図1Bは、本発明を適用した第1の実施形態に関する計算機システム1のハードウェアとソフトウェアの概要を示すブロック図である。図1A、はクライアント装置100を主体としたブロック図である。図1Bは、サーバ装置200を主体としたブロック図である。
計算機システム1は、クライアント装置100とサーバ装置200とが、ネットワーク1500を介して接続され、ユーザ(作業者)400が、クライアント装置100を操作して、サーバ装置200と通信を行うことで、所定の業務アプリケーションサービスの提供を受けることができるWebアプリケーションシステムとして構成されている。サーバ装置200は、クライアント装置100からの要求に応じて業務アプリケーションサービスを業務フローとして提供する。なお、本実施形態における業務フローは、複数の業務ステップから構成され、例えば、商品を発注する業務フローは、商品のIDを入力する業務ステップと、商品の在庫を表示する業務ステップ及び商品の数量を入力する業務ステップなど、複数の業務ステップから構成される。各業務ステップは、それぞれ独立したWebページで構成される。
本実施形態では、クライアント装置100のユーザ毎に、複数のWebページをひとつのWebページに統合する情報を予め設定しておき、業務フローの実行要求を受け付けてクライアント装置100及びサーバ装置200が単一のWebページに複数の業務ステップをまとめて出力する処理を実行する。
はじめに、クライアント装置100の構成を示す。
図1Aにおいて、クライアント装置100は汎用の計算機により実現されており、CPU101、ネットワークインタフェース102、表示装置103、入力装置104、主記憶装置105、二次記憶装置106及びこれらを接続するシステムバス107から構成されている。
ネットワークインタフェース101は、CPU101の指示に従って、ネットワーク1500を介して接続されているサーバ装置200などと通信を行う。なお、図1A、図1Bでは、機能ブロック間の関係性を明記するために、後述する機能ブロック間を直接接続した記述としているが、実際に処理する際にはネットワークインタフェース102を通じて接続が行われる。
表示装置103は、ディスプレイなどの画像表示装置に表示する画像の処理を行う。入力装置104は、マウスやキーボードなどの装置からユーザの入力を受け付ける機能を持つ。
主記憶装置105上には、ブラウザ110が格納され、CPU101の指示によって実行される。二次記憶装置106は、CPU101からの指示に従い、データの入出力を行う。主記憶装置105は、メモリ等の揮発性記憶装置であり、二次記憶装置106は、ハードディスクなどの磁気記憶装置や、CD又はDVDドライブなどの光学記憶装置といった種々の不揮発性記憶媒体が適用可能な記憶装置である。なお、二次記憶装置106は、後述するブラウザなどのプログラムの記憶媒体として機能する。
ブラウザ110は、ユーザ400の要求に応じて、HTTP(HyperText Transfer Protocol)リクエストをサーバ装置200に送信し、サーバ装置200からテキストや画像のデータが含まれたHTTPレスポンスを受信することにより、サーバ装置200が管理するコンテンツデータを取得し、表示装置103上に表示することができる。ここでブラウザ110はインターネット上のWebコンテンツを表示するための一般的なアプリケーションであるため詳細な説明は省略するが、ブラウザ110上では、フロー実行部111、フロー定義情報変更部112及び変更フィールド記憶部113が機能する。これらは、JavaScript(登録商標)などのプログラミング言語で実装された処理部として以降の説明を行うが、これに限定されるものではない。
フロー実行部111は、ユーザ400の要求に基づいてフロー定義情報変更部112の呼び出しを行い、XML(eXtensible Markup Language)などの言語で記述されたフロー定義情報を受け取り、受け取ったフロー定義情報をHTMLに変換することで業務フローを実行する機能と、ユーザ400の要求に応じて、後述するステップ統合定義情報登録部211及びプログラム実行部212を呼び出す処理を行う。なお、フロー実行部111が行うフロー定義情報をHTMLに変換して業務フローを実行する方法については、周知又は公知の技術で実現できるためここでは詳細な説明は省略する。なお、フロー実行部111は、ユーザ400から業務ステップの結合などの変更要求を受け付けたときには、サーバ装置200に対して、ユーザ400によって変更された業務ステップの情報を通知する。
フロー定義情報変更部112は、フロー実行部111の要求に基づいてサーバ装置200の情報取得部213からフロー定義情報、ステップ統合定義情報及び入出力履歴情報を取得し、取得した情報に基づいてフロー定義の変更を行い、変更した結果をフロー実行部111に返信する。さらに、フロー定義情報変更部112は、変更フィールド記憶部113に上記変更されたフロー定義の情報を登録する。フロー定義情報の構成及びフロー定義の変更処理は後述する。
変更フィールド記憶部113は、フロー定義情報変更部112がフロー定義変更処理時に、定義を変更した業務フローに含まれるフィールドに関する情報を、入出力定義情報と関連付けて変更フィールド記憶テーブル520に記憶する。フロー定義情報の構成、及びフロー定義情報に含まれるフィールド定義情報、入出力定義情報の構成については、後述する。また、変更フィールド記憶テーブル520は変更フィールド記憶部113内に存在し、主記憶装置105もしくは二次記憶装置106内に格納される。
次に、サーバ装置200の構成を図1Bに示す。サーバ装置200はクライアント装置100と同様に、汎用の計算機により実現されており、CPU201、ネットワークインタフェース202、表示装置203、入力装置204、主記憶装置205、二次記憶装置206及びこれらを接続するシステムバス207から構成されている。個々のハードウェアの機能はクライアント装置100と同様であるため詳細な説明は省略するが、主記憶装置205上に格納され、CPU201によって実行されるプログラムがWebサーバプログラム210である点が、クライアント装置100と異なる。なお、二次記憶装置206はWebサーバプログラム210を格納する記憶媒体として機能する。
次に、サーバ装置200は、ブラウザ110などから発行されるHTTPリクエストを、常に、待ち受けており、HTTPリクエストを受信すると、HTTPリクエストで指定された文書データをHTTPレスポンスとして応答するWebサーバプログラム210を有する。また、本実施形態においては、Webサーバプログラム210はステップ統合定義情報登録部211、プログラム実行部212、情報取得部213、ステップ統合定義情報記憶部221、入出力履歴情報記憶部222及びフロー定義情報記憶部223を有する。
ステップ統合定義情報登録部211は、ユーザ400の指示により統合(または結合)される業務ステップの情報を、フロー実行部111の要求から受信し、ステップ統合定義情報記憶部221に記憶する。すなわちユーザ400が統合を指示した業務ステップを含む業務フローのフローIDとステップIDの集合をステップ統合定義情報記憶部221に通知し、ステップ統合定義情報記憶部221がフローID、ステップIDの集合及びユーザIDを関連付けてステップ統合定義情報テーブル510に格納する。ステップ統合定義情報テーブル510の構成は後述する。なお、ステップ統合定義情報テーブル510は、ステップ統合定義情報記憶部221内に存在し、主記憶装置205もしくは二次記憶装置206に格納される。
プログラム実行部212は、クライアント装置100から受信したフロー実行部111の要求に基づいて、フロー実行部111により指定されたプログラムを実行して業務アプリケーションサービスの提供を行い、実行したプログラムの履歴情報を入出力履歴情報記憶部222に登録する。
情報取得部213は、クライアント装置100のフロー定義情報変更部112の要求に基づいて、フロー定義情報記憶部223からフロー定義情報502を取得し、ステップ統合定義情報記憶部221からステップ統合定義情報を取得し、入出力履歴情報記憶部222から入出力履歴情報を抽出し、フロー定義情報変更部112に応答する。
ステップ統合定義情報記憶部221は、ステップ統合定義情報登録部211の要求に基づいて、フローID及びユーザIDと関連付けて統合する業務ステップに関するステップ統合定義情報513をステップ統合定義情報テーブル510に格納する。また、ステップ統合定義情報記憶部221は、情報取得部213の要求に基づいて統合する業務ステップに関連する情報の抽出を行う。ステップ統合定義情報テーブル510の構成は後述する。
入出力履歴情報記憶部222は、プログラム実行部212が実行したプログラムの入出力データをフローID及びフィールドIDと関連付けて入出力履歴情報テーブル530に格納する。また、入出力履歴情報記憶部222は、情報取得部213の要求に基づいて入出力データに関する情報の抽出を行う。入出力履歴情報テーブル530の構成は後述する。なお、入出力履歴情報テーブル530は、入出力履歴情報記憶部222内に存在し、主記憶装置205もしくは二次記憶装置206に格納される。
フロー定義情報記憶部223は、情報取得部213の要求に基づいて、フローIDとフロー定義情報を関連付けて記憶するフロー定義情報テーブル500から、フロー定義情報の抽出を行う。フロー定義情報テーブル500の構成は後述する。なお、本実施形態では、フロー定義情報テーブル500に格納されるデータは、事前に定義されているものとする。なお、フロー定義情報テーブル500は、フロー定義情報記憶部223に存在し、主記憶装置205もしくは二次記憶装置206内に格納される。
図2は、フロー定義情報テーブル500の構成の一例を示している。フロー定義情報テーブル500は、業務フローのフローIDを格納するカラム501と、フロー定義情報を格納するカラム502とから構成され、カラム501に格納されたフローIDで一意に識別可能なフロー定義情報がカラム502に格納される。
具体的には、フローIDが「flow1」で一意に識別が可能なフロー定義情報が「ryohishinsei.xml」であり、フローID「flow2」で一意に識別可能なフロー定義情報が「mitumori.xml」であることを示している。
図3は、ステップ統合定義情報テーブル510の構成の一例を示している。ステップ統合定義情報テーブル510は、業務フローのフローIDを表すカラム511、ユーザIDを表すカラム512及びステップ統合定義情報を表すカラム513から構成される。ステップ統合定義情報テーブル510は、カラム511に格納されたフローIDに対応するフローについて、カラム512に格納されたユーザIDを持つユーザ400が、カラム513に格納されたステップの統合を指示したことを表す。
具体的には、フローIDが「flow1」で一意に識別されるフロー定義情報に対して、ユーザIDが「yamada」であるユーザ400が、フロー定義情報で定義された業務ステップのIDが「step1」と「step2」である業務ステップの統合と、IDが「step5」と「step6」である業務ステップの統合を指示したことを示している。また、フローIDが「flow2」で一意に識別されるフロー定義情報に対して、ユーザIDが「tanaka」であるユーザ400が、フロー定義情報で定義されたIDが「step1」、「step2」、及び「step3」である業務ステップの統合と、IDが「step4」と「step5」である業務ステップの統合を指示したことを示している。
図4は、変更フィールド記憶テーブル520の構成例を示している。変更フィールド記憶テーブル520は、入出力IDを格納するカラム521、フィールドIDを格納するカラム522、入出力フラグを格納するカラム523、及び入力済みであるか否かを格納するカラム524から構成される。
フロー定義情報変更部112は、フロー定義情報(502)で定義されたIDが入出力IDである入出力定義情報について、入出力定義情報を構成するフィールドをフィールドIDで識別し、該フィールドIDが表すフィールドが入力定義情報に含まれるか、出力定義情報に含まれるか、をカラム523により識別し、更に該フィールドがユーザ400により入力されたか否かを、カラム524により識別する。
なお、変更フィールド記憶テーブル520のカラム523は、値が「IN」である場合には入力定義情報を表し、「OUT」である場合には出力定義情報をそれぞれ表す。また、変更フィールド記憶テーブル520のカラム524では、値が「FALSE」である場合にはフィールドID522に対応するフィールドが未入力であることを示し、値が「TRUE」である場合には、フィールドID522に対応するフィールドが入力済みであることを表す。具体的には、入出力IDが「io1」である入出力定義情報に対して、未入力の入力定義情報としてフィールドIDが「field1」と「field2」のフィールドが、出力定義情報としてフィールドIDが「field3」のフィールドが定義されていることを示している。
図5は、入出力履歴情報テーブル530の構成例を示している。入出力履歴情報テーブル530は、履歴IDを格納するカラム531、フローIDを格納するカラム532、フィールドIDを格納するカラム533、入出力フラグを格納するカラム534及びプログラムの入出力データを格納するカラム535から構成される。カラム535には、プログラム実行部212がプログラムを実行するたびに、該プログラムの入出力データが格納される。なお、カラム531は、プログラム実行部212によるプログラムの実行履歴を一意に識別可能とするIDを格納するカラムである。また、カラム534は、カラム523と同様に、その値によりフィールドIDに対応するフィールドが入力定義情報もしくは出力定義情報であることを表す。具体的には、履歴ID「001」では、フローIDが「flow1」である業務フローを実行した際に、フィールドIDが「field1」のフィールドには値「山田太郎」が入力され、フィールドIDが「field2」のフィールドには値「26」が入力されてプログラムが呼び出された履歴を示す。そして、上記入力の結果、結果フィールドIDが「field3」であるフィールドに値「山田太郎」が出力された履歴を示している。また、履歴ID「002」では、フローIDが「flow2」である業務フローを実行した際に、フィールドIDが「field1」のフィールドに値「2008」が入力されてプログラムが実行され、入力に対する結果フィールドIDが「field2」であるフィールドに値「1」が出力された履歴を示している。
なお、図2から図5に表したテーブルによるデータ構造の表現は一例であり、他のデータ構造による表現を制限するものではない。
図6は、フロー定義情報502の記述例を示している。なお、本実施形態では、フロー定義情報502の記述形式をXMLで記述しているが、これに限定されるものではない。フロー定義情報502は、ルート要素としてflow要素<flow>を持つ。flow要素は子要素としてid要素<id>を持ち、id要素の値がフロー定義情報502を一意に識別するフローIDとなる。更に、flow要素はステップ定義情報群605と入出力定義情報群609を子要素に持つ。
ステップ定義情報群605は、業務フローを構成する業務ステップを表す情報の集合である。ここで業務ステップとは、フロー実行部111がフロー定義情報502をHTMLに変換してユーザ400(表示装置103)に提示する際に、HTMLのページ単位に相当する情報を定義するものである。ステップ定義情報群605はひとつ以上のステップ定義情報604から構成されており、各ステップ定義情報604はstep要素により定義される。各step要素はid要素を子要素として持ち、id要素の値がステップ定義情報604を一意に識別するステップIDとなる。また、ステップ定義情報604はガイド定義情報603を持ち、これはguide要素により定義される。
ガイド定義情報603は、フロー実行部111によりHTMLの構成要素として変換され、表示装置103の画面に出力される情報を定義する。ガイド定義情報603はフィールド定義情報群602から構成され、フィールド定義情報群602はひとつ以上のフィールド定義情報601から構成される。ここでフィールドとは、フロー実行部111により変換されるHTMLの個々の要素を表す。フィールド定義情報601はfield要素により定義され、その子要素であるid要素の値がフィールド定義情報601を一意に識別するフィールドIDとなる。また、type要素により変換されるHTML要素を定義する。
入出力定義情報群609は、ユーザ400の指示によりフロー実行部111が業務ステップを遷移する際に呼び出すプログラムを定義する情報の集合であり、0個以上の入出力定義情報608から構成される。入出力定義情報608は、input−output要素により定義される。input−output要素は子要素としてid要素を持ち、id要素の値が入出力定義情報608を一意に識別可能な入出力IDとなる。また、input−output要素は0個以上の入力定義情報606と0個以上の出力定義情報607を子要素として持つ。但し、入力定義情報606と出力定義情報607は同時に0個になることはない。各入力定義情報606はinput要素により定義し、input要素は入出力定義情報608における入力データとなるフィールドIDをfieldid要素により定義する。また、各出力定義情報607はoutput要素により定義し、output要素は入出力定義情報608
における出力データを格納するフィールドIDをfieldid要素として定義する。
図6の例では、idがflow1であるフロー定義情報502の一部を示しており、該フローはidがstep1、step2のステップ定義情報604と、idがio1の入出力定義情報を含んでいることを示している。
idがstep1の業務ステップは、ガイド定義情報603としてidがfield1であるフィールド定義情報601及びfield2であるフィールド定義情報を含み、これらのフィールドはtype要素がtextであるため、テキスト入力フィールドとして定義されている。また、idがstep2の業務ステップは、ガイド定義情報603としてidがfield3であるフィールド定義情報62を含み、このフィールドはtype要素がlabelであるため、文字列フィールドとして定義されている。
なお、type要素の定義内容は一例であり、これらの値に限定されるものではない。また、HTML要素への変換はテキスト入力フィールドと文字列要素に限定されるものではなく、HTML要素への変換を一意に定めることで、あらゆるHTML要素に対応した定義が可能である。
idがio1の入出力定義情報609は、入力定義情報609として値がfield1及びfield2であるfieldid要素を含んでおり、これによりio1の入力としてフィールドIDがfield1及びfield2であるフィールドに入力された値が利用されることが定義されている。また、出力定義情607報として値がfield3であるfieldid要素を含んでおり、これによりio1の出力データはフィールドIDがfield3のフィールドに出力されることが定義されている。
なお、XMLによるフローの定義は一例であり、他の定義方法を制限するものではない。
以降の説明においては、クライアント装置100のCPU101またはサーバ装置200のCPU201がプログラムを実行することで提供される上述の各処理部を主体として説明する。また、以降の説明においては、複数の変数を格納するデータを配列で表現するが、これに限らず、複数の変数を一つのデータとして記憶するデータ構造であれば、他のデータ構造を用いてもよい。
図7A、図7Bは、本実施形態におけるフロー定義情報502を変更する処理の一例を示すフローチャートである。この処理は、クライアント装置100のブラウザ110がユーザ400の操作を契機に実行する。
本実施形態では、はじめにユーザ400がブラウザ110に対し、業務フローの表示を指示するステップ701を実行する。
フロー実行部111は、ユーザ400が指示した業務フローを識別するフローID及びユーザ400を識別するユーザIDを、フロー定義情報変更部112に通知する(ステップ702)。なお、ユーザIDはユーザ400が事前にフロー実行部111に通知していることとする。
フロー定義情報変更部112は、受け取ったフローIDとユーザIDをサーバ装置200の情報取得部213に通知する(ステップ703)。
情報取得部213は、フロー定義情報記憶部223にフロー定義情報変更部112から受け取ったフローIDをキーとした検索を依頼し、対応するフロー定義情報502を取得する(ステップ704)。この際、フロー定義情報記憶部223は、フロー定義情報テーブル500から、カラム501の値が受け取ったフローIDに一致する行からカラム502のフロー定義情報502を取得して情報取得部213に応答する。
続いて情報取得部213は、ステップ統合定義情報記憶部221にフロー定義情報変更部112から受け取ったフローIDとユーザIDをキーとした検索を依頼し、対応するステップ統合定義情報群を取得する(ステップ705)。この際、ステップ統合定義情報記憶部221は、ステップ統合定義情報テーブル510からカラム511の値が受け取ったフローIDと一致し且つカラム512の値が受け取ったユーザIDと一致する全ての行からカラム513のステップ統合定義情報を取得して情報取得部213に応答する。
更に情報取得部213は、入出力履歴情報記憶部222にフロー定義情報変更部112から受け取ったフローIDをキーとした検索を依頼し、対応する入出力履歴情報群を取得する(ステップ706)。この際、入出力履歴情報記憶部222は入出力履歴情報テーブル530を参照し、カラム532の値が受け取ったフローIDと一致する全ての行からカラム531の履歴ID、カラム533のフィールドID、カラム534の入出力フラグ及びカラム535の入出力データを取得して情報取得部213に返却する。
情報取得部213は、ステップ704、705及び706で取得したフロー定義情報502、ステップ統合定義情報群及び入出力履歴情報群をフロー定義情報変更部112へ応答する(ステップ707)。
情報取得部213から応答を受けたクライアント装置100のフロー定義情報変更部112は、受信したステップ統合定義情報群を予め設定した配列stepIDGroupsに登録する(ステップ708)。
フロー定義情報変更部112は、変更フィールド記憶テーブル520を空にする(ステップ709)。
続いて、フロー定義情報変更部112は、配列stepIDGroupsの各要素をstepIDGroupとして、以下の処理(ループ1)を繰り返す。
フロー定義情報変更部112は、情報取得部213から受信したフロー定義情報502と変数stepIDGroupを引数として、入力項目制御処理800を呼び出す(ステップ710)。入力項目制御処理800の内容は後述する。
次に、フロー定義情報変更部112は、情報取得部213から受信したフロー定義情報502、変数stepIDGroup及び入出力履歴情報群を引数として、重複削除処理900を呼び出す(ステップ711)を実行する。重複削除処理900の内容は後述する。
更に、フロー定義情報変更部112は、情報取得部213から受信したフロー定義情報502と変数stepIDGroupを引数として、ステップ統合処理1000を呼び出す(ステップ712)。ステップ統合処理1000の内容は後述する。
フロー定義情報変更部112は上記ループ1を完了した後、上記ループ1で変更したフロー定義情報502をフロー実行部111に応答する(ステップ713)。
フロー実行部111は、フロー定義情報変更部112が応答したフロー定義情報502に基づいてHTMLを生成し、表示装置103に出力する(ステップ714)。
上記処理によりユーザ400が指定した複数の業務ステップがひとつのWebページとして表示装置103に出力され、ユーザ400が所望する表示形態で業務フローを遂行することができる。
図8A、図8Bは、本実施形態における入力項目制御処理の一例を示すフローチャートである。この処理は、図7Bのステップ710で行われる処理のサブルーチンを示す。
はじめにフロー定義情報変更部112は、フロー定義情報502から入出力定義情報群を抽出し、予め設定した配列inputOutputsに登録する(ステップ801)。
フロー定義情報変更部112は、配列inputOutputsに登録された各要素をinputOutputとして、以下の処理(ループ1)を繰り返す。
フロー定義情報変更部112は、変数inputOutputに含まれる入力定義情報を抽出し、抽出した入力定義情報に含まれる全てのfieldid要素の値を配列inputFieldIDsに登録する(ステップ802)。
フロー定義情報変更部112は、配列inputFieldIDsに登録された各要素をinputFieldIDとして、以下の処理(ループ2)を繰り返す。
フロー定義情報変更部112は、フロー定義情報502から変数inputFieldIDと同一の値を持つid要素を含むフィールド定義情報601を抽出し、更に該フィールド定義情報601を含むステップ定義情報604を抽出し、該ステップ定義情報604のステップIDを変数inputStepIDに登録する(ステップ803)。
フロー定義情報変更部112は、変数inputStepIDが変数stepIDGroupに含まれる値であるか否かを判定する(ステップ804)。なお、本実施形態では変数stepIDGroupにはステップIDがカンマ区切りで登録されており、変数inputStepIDが変数stepIDGroupに含まれるとは、カンマ区切りで登録されたステップIDのいずれかが変数inputStepIDと一致することを意味する。変数inputStepIDが変数stepIDGroupに含まれる場合(ステップ804:Yes)は下記ステップ805へ進み、変数inputStepIDが変数stepIDGroupに含まれていない場合(ステップ804:No)は、変数stepIDGroupを配列stepIDGroupsの次の要素に変更してステップ803の処理を繰り返す。
フロー定義情報変更部112は、フロー定義情報502から変数inputFieldIDと同一の値を持つid要素を含むフィールド定義情報601を抽出し、該フィールド定義情報601にイベントリスナ定義追加を指示する子要素を追加する(ステップ805)。ここで追加するイベントリスナは、該フィールド定義情報601が変換されたHTMLにおいて、ユーザ400が入力操作を完了したことを検知し、後述するイベントリスナ処理の呼び出しを行うものである。
フロー定義情報変更部112は、変更フィールド記憶部113に対して、変数inputOutputのid要素の値、変数inputFieldIDの値の登録を依頼する(ステップ806)。この際、変更フィールド記憶部113は、受け取った変数inputOutputのid要素の値をカラム521の値、受け取った変数inputFieldIDの値をカラム522の値、カラム523の値を「IN」、カラム524の値を「FALSE」として変更フィールド記憶テーブル520に登録する。
フロー定義情報変更部112は、配列inputFieldIDsに含まれる全要素に対して上記処理(ループ2)を実行した後、変更フィールド記憶部113に対して、変数inputOutputのid要素の値をキーとした検索を依頼し、対応する要素数を受け取る(ステップ807)。この際、変更フィールド記憶部113は、変更フィールド記憶テーブル520から、受け取った変数inputOutputのid要素の値とカラム521の値が一致する要素を全て抽出し、その要素数をフロー定義情報変更部112に応答する。
フロー定義情報変更部112は、ステップ807で受け取った要素数が1以上であるか否かを判断する(ステップ808)。要素数が1以上である場合(ステップ808:Yes)は、ステップ809へ進み、要素数が0である場合(ステップ808:No)は、変数inputOutputを配列inputOutputsの次の要素に変更して、ステップ802へ進む。
フロー定義情報変更部112は、変数inputOutputに含まれる出力定義情報を抽出し、抽出した出力定義情報に含まれる全てのfiedldid要素の値を配列outputFieldIDsに登録する(ステップ809)を実行する。
フロー定義情報変更部112は、配列outputFieldIDsに含まれる各要素をoutputFieldIDとして、以下の処理(ループ3)を実行する。
フロー定義情報変更部112は、フロー定義情報502から変数outputFieldIDと同一の値を持つid要素を含むフィールド定義情報601を抽出し、更に該フィールド定義情報601を含むステップ定義情報604を抽出し、該ステップ定義情報604のステップIDを変数outputStepIDに登録する(ステップ810)。
フロー定義情報変更部112は、変数outputStepIDが変数stepIDGroupに含まれる値であるか否かを判断する(ステップ811)。変数outputStepIDが変数stepIDGroupに含まれる場合(ステップ811:Yes)は、ステップ812へ進み、変数outputStepIDが変数stepIDGroupに含まれない場合(ステップ811:No)は変数outputFieldIDを配列outputFieldIDsの次の要素に変更してステップ810へ進む。
フロー定義情報変更部112は、フロー定義情報502から変数outputStepIDと同一の値を持つid要素を含むフィールド定義情報601を抽出し、該フィールド定義情報601がHTMLに変換された際、編集可能な要素として変換されるか否かを判断する(ステップ812)。なお、編集可能な要素として変換されるか否かは、フィールド定義情報601に含まれるtype属性の値から判断することが可能であり、例えばtype属性の値がtextである場合にはテキスト入力フィールドに変換されるため、フロー定義情報変更部112は編集可能な要素に変換されると判断する。一方、フィールド定義情報601に含まれるtype属性がlabelである場合には文字列フィールドに変換されるため、フロー定義情報変更部112は編集可能な要素には変換されないと判断する。フィールド定義情報601が編集可能な要素を表している場合(ステップ812:Yes)は、ステップ813に進み、編集可能な要素ではない場合(ステップ812:No)はステップ814に進む。
フロー定義情報変更部112は、フロー定義情報502から変数outputStepIDと同一の値を持つid要素を含むフィールド定義情報601を抽出し、該フィールド定義情報601に対してフィールドの非活性化を表す子要素を追加する(ステップ813)。非活性化を表す子要素とは、例えばdisable要素をfield要素の子要素として追加し、その値をtrueに設定することで表現が可能である。非活性化を表す子要素を追加された編集可能なフィールドは、disable要素がfalseに変化するか、もしくは要素が削除されるまではユーザ400からの入力を禁止する。
フロー定義情報変更部112は、変更フィールド記憶部113に対して、変数inputOutputのid要素の値と、変数outputFiledIDの値の登録を依頼する(ステップ814)。この際、変更フィールド記憶部113は、受け取った変数inputOutputのid要素の値をカラム521の値、受け取ったoutputFiledIDの値をカラム522の値、カラム523の値を「OUT」、カラム524の値を「FALSE」として変更フィールド記憶テーブル520に登録する。
フロー定義情報変更部112は、配列outputFieldIDsに含まれる全要素に対して上記処理(ループ3)を実行し、更に配列inputOutputsに含まれる全要素に対して上記処理(ループ1)を実行し、入力項目制御処理を終了する。
上記処理により、サーバ装置200が提供するアプリケーションサービスの業務ステップ(Webページ)について、クライアント装置100はユーザ400から業務フローの実行要求を受け付けると、ステップ統合定義情報テーブル510を参照して複数の業務ステップをひとつにまとめるWebページを特定する。クライアント装置100とサーバ装置200は、統合する業務ステップに含まれる構成要素(フィールド)間の入出力の関係を抽出し、抽出した入出力の関係から出力先となる業務ステップの構成要素を抽出し、抽出した出力先となる業務ステップの編集可能な構成要素に対する操作を抑止する。
図9A、図9B、図9Cは、本実施形態における重複削除処理のフローチャートによる表現例である。この処理は、図7のステップ711で行われる処理のサブルーチンを示す。
フロー定義情報変更部112は、予め設定した配列fieldIDsを空にする(ステップ901)。
フロー定義情報変更部112は、入力として受け付けた変数stepIDGroupの各要素をstepIDとして、以下の処理(ループ1)を実行する。
フロー定義情報変更部112は、フロー定義情報502から変数stepIDと同一の値を持つid要素を含むステップ定義情報604を抽出し、該ステップ定義情報604に含まれるフィールド定義情報群602を抽出する。フロー定義情報変更部112は、抽出した全てのフィールド定義情報群602に含まれるフィールド定義情報601からフィールドIDの値を抽出し、配列fieldIDsに追加する(ステップ902)。
フロー定義情報変更部112は、変数stepIDGroupの各要素に対して上記処理(ループ1)を実行した後、入出力履歴情報群におけるカラム533から抽出したフィールドIDの値が配列fieldIDsに含まれるフィールドIDの値と一致する入出力履歴情報を全て抽出し、予め設定した配列recordsに登録する(ステップ903)。
フロー定義情報変更部112は、配列recordsを検索して入出力履歴情報テーブル530のカラム534から抽出した入出力フラグが「OUT」である入出力履歴情報のフィールドIDを抽出し、配列outputFieldIDsに登録する(ステップ904)。
フロー定義情報変更部112は、配列outputFieldIDsに含まれる各要素をoutputFieldIDとして、以下の処理(ループ2)を実行する。
フロー定義情報変更部112は、配列inputFieldIDsを空にする(ステップ905)。
フロー定義情報変更部112は、配列recordsからフィールドIDの値が変数outputFieldIDと一致し、かつ入出力フラグが「OUT」である全ての入出力履歴情報を抽出し、予め設定した配列outputRecordsに登録する(ステップ906)。
フロー定義情報変更部112は、配列outputRecordsの先頭の要素を変数outputRecordに登録する(ステップ907)。
フロー定義情報変更部112は、配列recordsから履歴IDの値が変数outputRecordの履歴IDの値と同一であり、かつ入出力フラグが「IN」である全ての入出力履歴情報を抽出し、変数inputRecordsに登録する(ステップ908)。
フロー定義情報変更部112は、配列inputRecordsに含まれる各要素をinputRecordとして、以下の処理(ループ3)を実行する。
フロー定義情報変更部112は、変数outputRecordの入出力データの値と変数inputRecordの入出力データの値が一致するか否かを判断するステップ909を実行し、値が一致する場合はステップ910に進む。一方、変数outputRecordの入出力データの値と変数inputRecordの入出力データの値が一致しない場合は変数inputRecordを配列inputRecordsの次の値に変更してステップ909の判断を繰り返す。
フロー定義情報変更部112は、変数inputRecordのフィールドIDの値を配列inputFieldIDsに追加する(ステップ910)。
フロー定義情報変更部112は、配列inputRecordsに含まれる全ての要素に対して上記処理(ループ3)を実行した後、配列outputRecordsに含まれる変数outputRecordの次の要素を新たな変数outputRecordとして登録する(ステップ911)。
フロー定義情報変更部112は、配列inputFieldIDsに含まれる各要素をinputFieldIDとして以下の処理(ループ4)を実行する。
フロー定義情報変更部112は、配列recordsから履歴IDが変数outputRecordの履歴IDと一致し、かつフィールドIDが変数inputFieldIDと一致する全ての要素を予め設定した配列targetRecordsに登録する(ステップ912を)。
フロー定義情報変更部112は、変数targetRecordの入出力データの値と変数outputRecordの入出力データの値が一致するか否かを判断し(ステップ913)、値が一致する場合(ステップ913:Yes)は、変数inputFieldIDを配列inputFieldIDsの次の要素に変更してステップ912に進み、一致しない場合(ステップ913:No)はステップ914へ進む。
フロー定義情報変更部112は、配列inputFiledIDsから変数inputFieldIDの値を削除する(ステップ914)。
フロー定義情報変更部112は、配列inputFieldIDsに含まれる各要素に対して上記処理(ループ4)を実行した後、配列inputFieldIDsの要素数が1以上であるか否かを判断する(ステップ915)。要素数が1以上である場合(ステップ915:Yes)は、ステップ916へ進み、要素数が0であった場合(ステップ915:No)は変数outputFieldIDを配列outputFieldIDsの次の要素に変更してループ2の起点であるステップ905へ進む。
フロー定義情報変更部112は、変数outputRecordが配列outputRecordsの末尾の要素か否かを判断する(ステップ916)。変数outputRecordが末尾の要素であった場合(ステップ916:Yes)は、ステップ917へ進み、末尾の要素でない場合(ステップ916:No)は、ステップ911へ進む。
フロー定義情報変更部112は、フロー定義情報502から変数outputFieldIDと同一のid要素を持つフィールド定義情報601を抽出し、該フィールド定義情報601がHTMLに変換された際、編集不可能な要素として変換されるか否かを判断する(ステップ917)。フィールド定義情報601が編集不可能な要素を表している場合(ステップ917:Yes)は、ステップ918に進み、編集不可能な要素ではない場合(ステップ917:No)は、変数outputFieldIDを配列outputFieldIDsの次の要素に変更してループ2の起点であるステップ905へ進む。
フロー定義情報変更部112は、フロー定義情報502から変数outputFieldIDと同一のid要素を持つフィールド定義情報601を抽出し、該フィールド定義情報601をフロー定義情報502から削除する(ステップ918)。
フロー定義情報変更部112は、配列outputFieldIDsに含まれる各要素に対して上記処理(ループ2)を実行した後、重複削除処理を終了する。
上記重複削除処理により、入出力関係の入力元となる業務ステップの構成要素(フィールド)と、出力先となる業務ステップの構成要素の入出力の履歴情報を比較して、比較結果が常に等しくなる出力先の業務ステップの構成要素を削除することで、統合後の業務ステップに同一の構成要素が表示されるのを防止することができる。
図10は、本実施形態におけるステップ統合処理のフローチャートによる表現例である。この処理は、図7Bのステップ712で実行される処理のサブルーチンである。
フロー定義情報変更部112は、変数stepIDGroupの先頭要素をbaseStepIDに登録する(ステップ1001)。
フロー定義情報変更部112は、変数baseStepIDを変数targetStepIDに登録する(ステップ1002)。
フロー定義情報変更部112は、変数stepIDGroupの中で変数targetStepIDの次の要素を新たな変数targetStepIDとして登録する(ステップ1003)。
フロー定義情報変更部112は、フロー定義情報502から変数targetStepIDと同一の値を持つid要素を含むステップ定義情報604を抽出し、該ステップ定義情報604に含まれる全てのフィールド定義情報601を抽出し、変数baseStepIDと同一の値を持つid要素を含むステップ定義情報604に含まれるフィールド定義情報群602の末尾に追加する(ステップ1004)。
フロー定義情報変更部112は、フロー定義情報502から変数targetStepIDと同一の値を持つid要素を含むステップ定義情報604を抽出し、該ステップ定義情報604をフロー定義情報502から削除する(ステップ1005)。
フロー定義情報変更部112は、変数targetStepIDが変数stepIDGroupの末尾の要素であるか否かを判断するステップ1006を実行する。変数targetStepIDが変数stepIDGroupの末尾の要素である場合(ステップ1006:Yes)は、ステップ統合処理を終了し、末尾の要素でない場合(ステップ1006:No)は、ステップ1003へ進む。
上記処理によって、複数の業務ステップをひとつのWebページに統合することができる。統合された業務ステップは、フィールド間の依存関係からフィールド(構成要素)の入力順序を制限することで、複数の業務ステップ間の整合性を保つことができる。例えば、第1の業務ステップで第1のフィールドへの入力が終了した後に、第2の業務ステップとして第2のフィールドへ入力する業務フローでは、第1のフィールドへの入力が完了するまでは編集可能な第2のフィールドを非活性化することで入力を禁止する。そして、統合されたWebページにはイベントリスナを追加することで、第1のフィールドへの入力を検知した後に、イベントリスナが第2のフィールドを活性化してユーザからの入力を許可することで、ひとつのWebページ内で複数の業務ステップ間の整合性を保持することができる。
また、複数のフィールドが同一の値を使用する場合には、入出力履歴情報テーブル530から重複する値を表示するフィールドを検出して削除することで、統合された業務ステップに同一の値が複数表示されるのを防止できるのである。
図11A、図11B、図11Cは、本実施形態におけるイベントリスナ処理の一例を示すフローチャートである。この処理は、統合された業務ステップに対してクライアント装置100のユーザ400が入力を行うことで起動する。
はじめに、ユーザ400が表示装置103の画面に表示された入力フィールドに対して入力装置104から入力を行うと、ブラウザ110は入力の受け付けを完了するステップ1101を実行する。
ユーザ400の入力完了はブラウザ110によって検知され、該入力フィールドに定義されたイベントリスナを通じてフロー実行部111が呼び出される。なお、本イベントリスナは図8Aのステップ805において、フロー定義情報変更部112により業務ステップに付与されたものである。
フロー実行部111は、ブラウザ110からの呼び出しを受けて、ユーザ400が入力を完了したフィールドのIDを変数fieldIDに登録する(ステップ1102)。なお、フィールドのIDはブラウザ110によりフロー実行部111に通知される。
フロー実行部111は、変更フィールド記憶部113に対して、フィールドIDを通知し、変更フィールド記憶テーブル520の更新を依頼する(ステップ1103)。この際、変更フィールド記憶部113は、変更フィールド記憶テーブル520のカラム522の値が受け取ったフィールドIDと一致し、かつカラム523の値が「IN」である全ての行について、カラム524の値を「TRUE」に設定する。
フロー実行部111は、変更フィールド記憶部113に対して、フィールドIDをキーとした検索を依頼し、結果として受け取った入出力ID群を配列inputOutputIDsに登録する(ステップ1104)。この際、変更フィールド記憶部113は、カラム522の値が受け取ったフィールドIDと一致し、かつカラム523の値が「IN」である行を全て抽出し、抽出した行に含まれる入出力IDから重複を排除して応答する。
フロー実行部111は、配列inputOutputIDsの各要素をinputOutputIDとして、以下の処理(ループ1)を実行する。
フロー実行部111は、変更フィールド記憶部113に対して、変数inputOutputIDの値をキーとした検索を依頼し、対応する要素数を受け取る(ステップ1105)。この際、変更フィールド記憶部113は、変更フィールド記憶テーブル520からカラム521の値が受け取った変数inputOutputIDの値と一致し、カラム523の値が「IN」であり且つカラム524の値が「FALSE」である全ての要素を抽出し、その要素数を通知する。
フロー実行部111は、ステップ1105で受け取った要素数が1以上であるか否かを判断する(ステップ1106)。要素数が1以上である場合(ステップ1106:Yes)は、変数inputOutputIDを配列inputOutputIDsの次の要素に変更してループ1の起点であるステップ1105に進み、要素数が0である場合(ステップ1106:No)は、ステップ1107に進む。
フロー実行部111は、サーバ装置200のプログラム実行部212に変数inputOutputIDを通知する(ステップ1107)。
プログラム実行部212は、変数inputOutputIDに対応するプログラムを実行する(ステップ1108)。本実施形態では、本ステップでプログラム実行部212が実行するプログラムは事前に変数inputOutputIDと対応付けて登録されているものとする。プログラム実行部212が実行するプログラムとしては、図示しないデータベースサーバに対する問い合わせの実行などを含むことができる。
プログラム実行部212は、ステップ1108で実行したプログラムの実行結果をフロー実行部111に応答する(ステップ1109)。
フロー実行部111は、プログラム実行部212から受け取ったプログラムの実行結果を変数resultに登録する(ステップ1110)。
フロー実行部111は、変更フィールド記憶部113に対して、変数inputOutputIDの値をキーとした検索を依頼し、結果として受け取ったフィールドID群を予め設定した配列activeFieldIDsに登録する(ステップ1111)。この際、変更フィールド記憶部113は、変更フィールド記憶テーブル520からカラム521の値が受け取った変数inputOutputIDの値と一致し、かつカラム523の値が「OUT」である全ての行を抽出し、抽出した各行からカラム522の値を抽出して応答する。
フロー実行部111は、配列activeFieldIDsの各要素を変数activeFieldIDとして、以下の処理(ループ2)を実行する。
フロー実行部111は、変数resultからフィールドIDの値が変数activeFieldIDと一致する全ての要素を抽出し、抽出した要素に対する出力データを、ユーザ400に提示されているHTMLに含まれるid属性が変数activeFieldIDと一致する要素の値として挿入する(ステップ1112)。
フロー実行部111は、フロー定義情報502から変数activeFieldIDと一致した値を持つid要素を含むフィールド定義情報601を抽出し、該フィールド定義情報601がHTMLに変換された際、編集可能なフィールドに変換されるか否かを判断する(ステップ1113)。該フィールド定義情報601が編集可能なフィールドに変換される場合(ステップ1113:Yes)は、ステップ1114に進み、編集可能なフィールドに変換されない場合(ステップ1113:No)は、変数activeFieldIDを配列activeFieldIDsの次の要素に変更してステップ1112に進む。
フロー実行部111は、ユーザ400に提示されているHTMLからid属性が変数activeFieldIDと一致する要素を抽出し、該要素が非活性化されている場合には活性化を行う(ステップ1114)。なお、HTML要素の非活性化とは、HTML要素に値がtrueのdisable属性を追加することにより入力を受け付けない状態にすることや、HTML要素自体を非表示することなど、ユーザが該HTML要素を編集できない状態とすることを表しており、これらの方法に限定されるものではない。また、HTML要素の活性化とは、上記の非活性化を解除するための方法であり、HTML要素からdisable属性を削除することやHTML要素の非表示を解除することなどが相当する。
フロー実行部111は、フロー定義情報502から変数activeFieldIDと同一の値を持つid要素を含むフィールド定義情報601を抽出し、該フィールド定義情報601が非活性化を指示する子要素を含むか否かを判断する(ステップ1115)。該フィールド定義情報601が非活性化を指示する子要素を含む場合(ステップ1115:Yes)は、ステップ1116へ進み、非活性化を指示する子要素を含まない場合(ステップ1115:No)は、変数activeFieldIDを配列activeFieldIDsの次の要素としてステップ1112へ進む。
フロー実行部111は、フロー定義情報502から変数activeFieldIDと同一の値を持つid要素を含むフィールド定義情報601を抽出し、該フィールド定義情報601から非活性化を指示する子要素を削除する(ステップ1116)。
フロー実行部111は、配列activeFieldIDsに含まれる全ての要素に対して上記処理(ループ2)を実行し、更に配列inputOutputIDsに含まれる全ての要素に対して上記処理(ループ1)を実行した後、イベントリスナ処理を終了する。
上記処理により、統合された業務ステップに追加されたイベントリスナによって、複数の業務ステップを統合したひとつのWebページ内で、複数の業務ステップの順序を保証することができる。
図12Aは、業務ステップが統合されていない場合の業務フローの表示形式を示し、図12Bは、業務ステップが統合された場合の業務フローの表示形式を示している。
図12Aの画面12−A及び12−Bは統合前の業務フローの表示形式を示しており、画面12−Aはユーザが商品検索処理を行う業務ステップのWebページで、画面12−Bはユーザが発注処理を実施する業務ステップのWebページを示している。
クライアント装置100はまず、画面12−Aを表示装置103に表示し、入力装置104から商品IDを受け付けると、次の業務ステップである発注処理に進むことで画面12−BのWebページを表示装置103に表示する。この際、クライアント装置100及びサーバ装置200ではフロー実行部111、及びプログラム実行部212が実行され、商品IDに対応する商品の在庫数が検索され、さらに発注数の初期値が計算される。ユーザは画面12−Bにおいて在庫数及び発注数の初期値を確認の上、必要に応じて発注数を変更し、発注処理を行う。図12Aの業務フローでは、画面12−Aから画面12−Bへ表示を切り替えることで複数の業務ステップが順次実行される。
上記2つの業務ステップ(Webページ)をひとつのWebページに統合する情報をステップ統合定義情報テーブル510へユーザ毎に格納しておき、クライアント装置100は、ユーザからの業務フローの実行要求を受け付ける。業務フローの実行要求から出力すべきWebページが統合すべきWebページである場合、クライアント装置100及びサーバ装置200は、上記業務ステップの統合を行って、図12Bに示す画面イメージを出力する。図12Bの画面12−Cでは、図12Aに示した2つの業務ステップ(Webページ)をひとつのWebページ(ひとつの画面)に統合したものである。
図12Bに示す画面12−C、12−C1、12−C2は業務ステップをひとつのWebページに統合した後の業務フローの表示形式を示す。画面12−Cはユーザが業務フローの開始を指示したときの画面イメージである。
画面12−Cは、複数の業務ステップを実施するために必要な情報としてフィールドなどを表示する作業情報表示領域1040と、複数の手順から構成される業務ステップの順序を表す業務フローを表示するフロー表示領域1041から構成される。
画面12−C1はユーザが商品IDを入力した瞬間の画面イメージを示す。画面12−C2はユーザの入力に基づいて上述のプログラムが実行され、画面12−C2に在庫数及び発注数の初期値が出力された状態を示している。
ユーザはまず、クライアント装置100に業務フローの表示を指示し、クライアント装置100は表示装置103に画面12−Cの画面を表示する。この際、在庫数1031及び発注数1032のフィールドの初期値は商品ID1030のフィールドに依存して決定されるため、画面12−Cの状態では各入力項目は非活性化された状態で表示される。
続いて、ユーザが商品ID1030を入力することで画面12−C1の状態へ遷移する。ユーザの入力はブラウザ110により検知され、フロー実行部111、プログラム実行部212及びイベントリスナが実行される。この結果、画面12−C2の状態へ遷移し、在庫数1031及び発注数1032の初期値がブラウザ110によって挿入されると同時に発注数を示す入力項目の非活性化が解除され、ユーザは発注数1032のフィールドに入力することが可能となる。
このように、商品ID1030のフィールドに依存して在庫数1031及び発注数1032の初期値が決定されるような業務ステップを統合した際に、ユーザが商品ID1030を入力する前に発注数1032を非活性化して指定不可能とすることで、ユーザが在庫数1031以上の数量を発注してしまうことを防ぐことができる。
図13は、統合された業務ステップが繰り返し定義を含む場合の統合画面の例を示している。
画面13―Aは統合前の業務フローの表示形式を示しており、業務ステップAと業務ステップBの実行が繰り返し実施される可能性があることを示している。画面13−Bは、このような業務フローにおいて、ユーザが業務ステップAと業務ステップBの統合を指示した場合の業務フローの表示形式の例を示している。
画面13−Bでは、業務ステップAに対応するガイドであるガイドAと業務ステップBに対応するガイドであるガイドBが同一の画面上に表示される。更に画面13−Bでは、これらのガイドがタブ表示により複数表示可能であることを示している。すなわち、画面13−Bでは、業務フローの繰り返しに応じてタブを増加させることができる。タブによる繰り返しの表現は一例であり、表現形式はこれに限定されるものではないが、図13に示すように、統合された画面を複数回表示可能とすることで、フローが繰り返しを含む場合にも業務ステップを統合することが可能となる。
図14は、統合された業務ステップが条件分岐を含む場合の統合画面の例を示している。
画面14−Aは統合前のフローの表示形式を示しており、業務ステップAを実行後、業務ステップB、もしくは業務ステップCが排他的に実行された後、業務ステップDが実行されることを示している。画面14−Bは、このようなフローにおいて、ユーザが業務ステップA、業務ステップB、及び業務ステップCの統合を指示した場合の業務フローの表示形式の例を示している。
複数の業務ステップが統合された画面14−Bでは、業務ステップAに対応するガイドであるガイドAに加え、業務ステップB、もしくは業務ステップCを排他的に選択可能なラジオボタンが表示され、業務ステップBの実行が選択された場合にはラジオボタンに加えて業務ステップBに対応するガイドであるガイドBが表示されることを示している。ラジオボタンで業務ステップCの実行が選択された場合には業務ステップCに対応するガイドが図中ガイドBの表示領域に出力される。
ラジオボタンによる排他的なステップの実行を指示する表現は一例であり、表現形式はこれに限定されるものではないが、図14に示すように、排他的に実行される業務ステップを選択するための選択方法をユーザに提示することで、条件分岐を含むフローについてもステップを統合することが可能となる。
<第2実施形態>
次に、第二の実施形態について、添付図面に基づいて説明する。
図15は、第二の実施形態に関わる計算機システム2000のハードウェアとソフトウェアの概要を示すブロック図である。
本実施形態では、前記第一の実施形態のクライアント装置100及びサーバ装置200に加えて開発者401が操作する開発用装置300が配備されている。
開発用装置300はクライアント装置100と同様、汎用の計算機により実現可能であり、CPU301、ネットワークインタフェース302、表示装置303、入力装置304、主記憶装置305、二次記憶装置306及びこれらを接続するシステムバス307から構成されている。個々のハードウェアの機能はクライアント装置100と同様であるため、詳細な説明は省略する。
開発用装置300の主記憶装置305上に格納されるプログラムもクライアント装置100と同様の機能を有するブラウザ311であるが、ブラウザ311上で実行されるプログラムがフロー編集部310である点がクライアント装置100と異なる。
図16は、開発用装置300のフロー編集部310が利用するグループ管理テーブル540の構成例を示している。グループ管理テーブル540は、ユーザIDを格納するカラム541とグループIDを格納するカラム542とから構成される。グループ管理テーブル540は、ユーザカラム541に格納されたユーザIDで一意に識別可能なユーザが、カラム542に格納されたグループIDにより一意に識別可能なグループに所属していることを表す。ここでグループとは、1人以上のユーザをまとめて管理するための集合と定義する。
具体的には、ユーザIDが「yamada」で識別可能なユーザと、ユーザIDが「tanaka」はグループID「group1」で識別されるグループに所属しており、ユーザID「kawada」で識別可能なユーザはグループID「group2」で識別されるグループに所属していることを示している。
なお、テーブルによるデータ構造の表現は一例であり、他のデータ構造による表現を制限するものではない。
本実施形態では、前記第一の実施形態においてステップ統合定義情報テーブル510を用いてユーザごとに管理していたステップ統合定義情報513を、グループごと、すなわち複数のユーザに対するステップの統合定義を一括して管理する方法を提供する。これは、前述の図7Aのステップ705において、ステップ統合定義情報記憶部221がユーザIDをキーとしてステップ統合記憶テーブル510を検索する前に、ステップ定義情報記憶部221はグループ管理テーブル540を、ユーザIDをキーとして検索を行う。そして、ステップ統合定義情報記憶部221が、グループ管理テーブル540からカラム541の値がユーザIDと一致する行のカラム542の値をグループIDとして抽出することでユーザIDをグループIDに変換し、該グループIDをキーとしてステップ統合定義情報テーブル510を検索することで、実現が可能である。
なお、ユーザIDとグループIDのマッピング定義、及びグループに対するステップ統合定義情報は、開発者401がフロー編集部310にグループID、フローID及び統合するステップIDの集合を通知し、フロー編集部310が受け取った情報をステップ統合定義情報登録部211へ通知し、更にステップ統合定義情報登録部211がステップ統合定義情報記憶部221へ該情報の格納を依頼し、ステップ統合定義情報記憶部221がステップ統合定義情報テーブル510に該情報を格納することで登録される。
本実施形態では、開発者401にグループに対するステップ統合定義情報の定義方法を提供することで、例えば企業の部門単位など、同一の業務を行う多数のユーザが存在する場合、該多数のユーザに対して一括して統合されたフローを提供することが可能となり、開発者の作業負荷を軽減することができる。
<第3実施形態>
次に、第三の実施形態について、添付図面に基づいて説明する。
図17は、第三の実施形態に関わる計算機システム3000のハードウェアとソフトウェアの概要を示すブロック図である。本実施形態では、前記第一の実施形態においてクライアント装置100のブラウザ110に配備されていたフロー実行部111、フロー定義情報変更部112、変更フィールド記憶部113を、サーバ装置200のWebサーバプログラム210に配備したものである。その他の構成は前記第1実施形態と同様である。
本実施形態では、ユーザ400の要求に基づいてブラウザ110はHTTPリクエストをサーバ装置200に送信し、要求を受け付けたWebサーバプログラム210は、Webサーバプログラム210に配備されたフロー実行部111、フロー定義情報変更部112、変更フィールド記憶部113によりフロー定義情報502の変更処理、及びフロー定義情報502に基づいたHTMLの生成処理を実行して応答を返し、ブラウザ110がHTMLの表示を行う。
本実施形態を用いれば、クライアント装置100は、ユーザからの要求を受け付けてHTTPリクエストを送信する処理、及びフロー実行部111から受信したHTMLを表示する処理のみを実行すればよく、クライアント装置100にかかる負荷を軽減することができる。その他については前記第1の実施形態と同様であり、複数の業務ステップをひとつのWebページに統合することができる。
図1A、図1Bは、本発明を適用した第1の実施形態に関する計算機システム1のハードウェアとソフトウェアの概要を示すブロック図である。図1A、はクライアント装置100を主体としたブロック図である。図1Bは、サーバ装置200を主体としたブロック図である。
計算機システム1は、クライアント装置100とサーバ装置200とが、ネットワーク1500を介して接続され、ユーザ(作業者)400が、クライアント装置100を操作して、サーバ装置200と通信を行うことで、所定の業務アプリケーションサービスの提供を受けることができるWebアプリケーションシステムとして構成されている。サーバ装置200は、クライアント装置100からの要求に応じて業務アプリケーションサービスを業務フローとして提供する。なお、本実施形態における業務フローは、複数の業務ステップから構成され、例えば、商品を発注する業務フローは、商品のIDを入力する業務ステップと、商品の在庫を表示する業務ステップ及び商品の数量を入力する業務ステップなど、複数の業務ステップから構成される。各業務ステップは、それぞれ独立したWebページで構成される。
本実施形態では、クライアント装置100のユーザ毎に、複数のWebページをひとつのWebページに統合する情報を予め設定しておき、業務フローの実行要求を受け付けてクライアント装置100及びサーバ装置200が単一のWebページに複数の業務ステップをまとめて出力する処理を実行する。
はじめに、クライアント装置100の構成を示す。
図1Aにおいて、クライアント装置100は汎用の計算機により実現されており、CPU101、ネットワークインタフェース102、表示装置103、入力装置104、主記憶装置105、二次記憶装置106及びこれらを接続するシステムバス107から構成されている。
ネットワークインタフェース101は、CPU101の指示に従って、ネットワーク1500を介して接続されているサーバ装置200などと通信を行う。なお、図1A、図1Bでは、機能ブロック間の関係性を明記するために、後述する機能ブロック間を直接接続した記述としているが、実際に処理する際にはネットワークインタフェース102を通じて接続が行われる。
表示装置103は、ディスプレイなどの画像表示装置に表示する画像の処理を行う。入力装置104は、マウスやキーボードなどの装置からユーザの入力を受け付ける機能を持つ。
主記憶装置105上には、ブラウザ110が格納され、CPU101の指示によって実行される。二次記憶装置106は、CPU101からの指示に従い、データの入出力を行う。主記憶装置105は、メモリ等の揮発性記憶装置であり、二次記憶装置106は、ハードディスクなどの磁気記憶装置や、CD又はDVDドライブなどの光学記憶装置といった種々の不揮発性記憶媒体が適用可能な記憶装置である。なお、二次記憶装置106は、後述するブラウザなどのプログラムの記憶媒体として機能する。
ブラウザ110は、ユーザ400の要求に応じて、HTTP(HyperText Transfer Protocol)リクエストをサーバ装置200に送信し、サーバ装置200からテキストや画像のデータが含まれたHTTPレスポンスを受信することにより、サーバ装置200が管理するコンテンツデータを取得し、表示装置103上に表示することができる。ここでブラウザ110はインターネット上のWebコンテンツを表示するための一般的なアプリケーションであるため詳細な説明は省略するが、ブラウザ110上では、フロー実行部111、フロー定義情報変更部112及び変更フィールド記憶部113が機能する。これらは、JavaScript(登録商標)などのプログラミング言語で実装された処理部として以降の説明を行うが、これに限定されるものではない。
フロー実行部111は、ユーザ400の要求に基づいてフロー定義情報変更部112の呼び出しを行い、XML(eXtensible Markup Language)などの言語で記述されたフロー定義情報を受け取り、受け取ったフロー定義情報をHTMLに変換することで業務フローを実行する機能と、ユーザ400の要求に応じて、後述するステップ統合定義情報登録部211及びプログラム実行部212を呼び出す処理を行う。なお、フロー実行部111が行うフロー定義情報をHTMLに変換して業務フローを実行する方法については、周知又は公知の技術で実現できるためここでは詳細な説明は省略する。なお、フロー実行部111は、ユーザ400から業務ステップの結合などの変更要求を受け付けたときには、サーバ装置200に対して、ユーザ400によって変更された業務ステップの情報を通知する。
フロー定義情報変更部112は、フロー実行部111の要求に基づいてサーバ装置200の情報取得部213からフロー定義情報、ステップ統合定義情報及び入出力履歴情報を取得し、取得した情報に基づいてフロー定義の変更を行い、変更した結果をフロー実行部111に返信する。さらに、フロー定義情報変更部112は、変更フィールド記憶部113に上記変更されたフロー定義の情報を登録する。フロー定義情報の構成及びフロー定義の変更処理は後述する。
変更フィールド記憶部113は、フロー定義情報変更部112がフロー定義変更処理時に、定義を変更した業務フローに含まれるフィールドに関する情報を、入出力定義情報と関連付けて変更フィールド記憶テーブル520に記憶する。フロー定義情報の構成、及びフロー定義情報に含まれるフィールド定義情報、入出力定義情報の構成については、後述する。また、変更フィールド記憶テーブル520は変更フィールド記憶部113内に存在し、主記憶装置105もしくは二次記憶装置106内に格納される。
次に、サーバ装置200の構成を図1Bに示す。サーバ装置200はクライアント装置100と同様に、汎用の計算機により実現されており、CPU201、ネットワークインタフェース202、表示装置203、入力装置204、主記憶装置205、二次記憶装置206及びこれらを接続するシステムバス207から構成されている。個々のハードウェアの機能はクライアント装置100と同様であるため詳細な説明は省略するが、主記憶装置205上に格納され、CPU201によって実行されるプログラムがWebサーバプログラム210である点が、クライアント装置100と異なる。なお、二次記憶装置206はWebサーバプログラム210を格納する記憶媒体として機能する。
次に、サーバ装置200は、ブラウザ110などから発行されるHTTPリクエストを、常に、待ち受けており、HTTPリクエストを受信すると、HTTPリクエストで指定された文書データをHTTPレスポンスとして応答するWebサーバプログラム210を有する。また、本実施形態においては、Webサーバプログラム210はステップ統合定義情報登録部211、プログラム実行部212、情報取得部213、ステップ統合定義情報記憶部221、入出力履歴情報記憶部222及びフロー定義情報記憶部223を有する。
ステップ統合定義情報登録部211は、ユーザ400の指示により統合(または結合)される業務ステップの情報を、フロー実行部111の要求から受信し、ステップ統合定義情報記憶部221に記憶する。すなわちユーザ400が統合を指示した業務ステップを含む業務フローのフローIDとステップIDの集合をステップ統合定義情報記憶部221に通知し、ステップ統合定義情報記憶部221がフローID、ステップIDの集合及びユーザIDを関連付けてステップ統合定義情報テーブル510に格納する。ステップ統合定義情報テーブル510の構成は後述する。なお、ステップ統合定義情報テーブル510は、ステップ統合定義情報記憶部221内に存在し、主記憶装置205もしくは二次記憶装置206に格納される。
プログラム実行部212は、クライアント装置100から受信したフロー実行部111の要求に基づいて、フロー実行部111により指定されたプログラムを実行して業務アプリケーションサービスの提供を行い、実行したプログラムの履歴情報を入出力履歴情報記憶部222に登録する。
情報取得部213は、クライアント装置100のフロー定義情報変更部112の要求に基づいて、フロー定義情報記憶部223からフロー定義情報502を取得し、ステップ統合定義情報記憶部221からステップ統合定義情報を取得し、入出力履歴情報記憶部222から入出力履歴情報を抽出し、フロー定義情報変更部112に応答する。
ステップ統合定義情報記憶部221は、ステップ統合定義情報登録部211の要求に基づいて、フローID及びユーザIDと関連付けて統合する業務ステップに関するステップ統合定義情報513をステップ統合定義情報テーブル510に格納する。また、ステップ統合定義情報記憶部221は、情報取得部213の要求に基づいて統合する業務ステップに関連する情報の抽出を行う。ステップ統合定義情報テーブル510の構成は後述する。
入出力履歴情報記憶部222は、プログラム実行部212が実行したプログラムの入出力データをフローID及びフィールドIDと関連付けて入出力履歴情報テーブル530に格納する。また、入出力履歴情報記憶部222は、情報取得部213の要求に基づいて入出力データに関する情報の抽出を行う。入出力履歴情報テーブル530の構成は後述する。なお、入出力履歴情報テーブル530は、入出力履歴情報記憶部222内に存在し、主記憶装置205もしくは二次記憶装置206に格納される。
フロー定義情報記憶部223は、情報取得部213の要求に基づいて、フローIDとフロー定義情報を関連付けて記憶するフロー定義情報テーブル500から、フロー定義情報の抽出を行う。フロー定義情報テーブル500の構成は後述する。なお、本実施形態では、フロー定義情報テーブル500に格納されるデータは、事前に定義されているものとする。なお、フロー定義情報テーブル500は、フロー定義情報記憶部223に存在し、主記憶装置205もしくは二次記憶装置206内に格納される。
図2は、フロー定義情報テーブル500の構成の一例を示している。フロー定義情報テーブル500は、業務フローのフローIDを格納するカラム501と、フロー定義情報を格納するカラム502とから構成され、カラム501に格納されたフローIDで一意に識別可能なフロー定義情報がカラム502に格納される。
具体的には、フローIDが「flow1」で一意に識別が可能なフロー定義情報が「ryohishinsei.xml」であり、フローID「flow2」で一意に識別可能なフロー定義情報が「mitumori.xml」であることを示している。
図3は、ステップ統合定義情報テーブル510の構成の一例を示している。ステップ統合定義情報テーブル510は、業務フローのフローIDを表すカラム511、ユーザIDを表すカラム512及びステップ統合定義情報を表すカラム513から構成される。ステップ統合定義情報テーブル510は、カラム511に格納されたフローIDに対応するフローについて、カラム512に格納されたユーザIDを持つユーザ400が、カラム513に格納されたステップの統合を指示したことを表す。
具体的には、フローIDが「flow1」で一意に識別されるフロー定義情報に対して、ユーザIDが「yamada」であるユーザ400が、フロー定義情報で定義された業務ステップのIDが「step1」と「step2」である業務ステップの統合と、IDが「step5」と「step6」である業務ステップの統合を指示したことを示している。また、フローIDが「flow2」で一意に識別されるフロー定義情報に対して、ユーザIDが「tanaka」であるユーザ400が、フロー定義情報で定義されたIDが「step1」、「step2」、及び「step3」である業務ステップの統合と、IDが「step4」と「step5」である業務ステップの統合を指示したことを示している。
図4は、変更フィールド記憶テーブル520の構成例を示している。変更フィールド記憶テーブル520は、入出力IDを格納するカラム521、フィールドIDを格納するカラム522、入出力フラグを格納するカラム523、及び入力済みであるか否かを格納するカラム524から構成される。
フロー定義情報変更部112は、フロー定義情報(502)で定義されたIDが入出力IDである入出力定義情報について、入出力定義情報を構成するフィールドをフィールドIDで識別し、該フィールドIDが表すフィールドが入力定義情報に含まれるか、出力定義情報に含まれるか、をカラム523により識別し、更に該フィールドがユーザ400により入力されたか否かを、カラム524により識別する。
なお、変更フィールド記憶テーブル520のカラム523は、値が「IN」である場合には入力定義情報を表し、「OUT」である場合には出力定義情報をそれぞれ表す。また、変更フィールド記憶テーブル520のカラム524では、値が「FALSE」である場合にはフィールドID522に対応するフィールドが未入力であることを示し、値が「TRUE」である場合には、フィールドID522に対応するフィールドが入力済みであることを表す。具体的には、入出力IDが「io1」である入出力定義情報に対して、未入力の入力定義情報としてフィールドIDが「field1」と「field2」のフィールドが、出力定義情報としてフィールドIDが「field3」のフィールドが定義されていることを示している。
図5は、入出力履歴情報テーブル530の構成例を示している。入出力履歴情報テーブル530は、履歴IDを格納するカラム531、フローIDを格納するカラム532、フィールドIDを格納するカラム533、入出力フラグを格納するカラム534及びプログラムの入出力データを格納するカラム535から構成される。カラム535には、プログラム実行部212がプログラムを実行するたびに、該プログラムの入出力データが格納される。なお、カラム531は、プログラム実行部212によるプログラムの実行履歴を一意に識別可能とするIDを格納するカラムである。また、カラム534は、カラム523と同様に、その値によりフィールドIDに対応するフィールドが入力定義情報もしくは出力定義情報であることを表す。具体的には、履歴ID「001」では、フローIDが「flow1」である業務フローを実行した際に、フィールドIDが「field1」のフィールドには値「山田太郎」が入力され、フィールドIDが「field2」のフィールドには値「26」が入力されてプログラムが呼び出された履歴を示す。そして、上記入力の結果、結果フィールドIDが「field3」であるフィールドに値「山田太郎」が出力された履歴を示している。また、履歴ID「002」では、フローIDが「flow2」である業務フローを実行した際に、フィールドIDが「field1」のフィールドに値「2008」が入力されてプログラムが実行され、入力に対する結果フィールドIDが「field2」であるフィールドに値「1」が出力された履歴を示している。
なお、図2から図5に表したテーブルによるデータ構造の表現は一例であり、他のデータ構造による表現を制限するものではない。
図6は、フロー定義情報502の記述例を示している。なお、本実施形態では、フロー定義情報502の記述形式をXMLで記述しているが、これに限定されるものではない。フロー定義情報502は、ルート要素としてflow要素<flow>を持つ。flow要素は子要素としてid要素<id>を持ち、id要素の値がフロー定義情報502を一意に識別するフローIDとなる。更に、flow要素はステップ定義情報群605と入出力定義情報群609を子要素に持つ。
ステップ定義情報群605は、業務フローを構成する業務ステップを表す情報の集合である。ここで業務ステップとは、フロー実行部111がフロー定義情報502をHTMLに変換してユーザ400(表示装置103)に提示する際に、HTMLのページ単位に相当する情報を定義するものである。ステップ定義情報群605はひとつ以上のステップ定義情報604から構成されており、各ステップ定義情報604はstep要素により定義される。各step要素はid要素を子要素として持ち、id要素の値がステップ定義情報604を一意に識別するステップIDとなる。また、ステップ定義情報604はガイド定義情報603を持ち、これはguide要素により定義される。
ガイド定義情報603は、フロー実行部111によりHTMLの構成要素として変換され、表示装置103の画面に出力される情報を定義する。ガイド定義情報603はフィールド定義情報群602から構成され、フィールド定義情報群602はひとつ以上のフィールド定義情報601から構成される。ここでフィールドとは、フロー実行部111により変換されるHTMLの個々の要素を表す。フィールド定義情報601はfield要素により定義され、その子要素であるid要素の値がフィールド定義情報601を一意に識別するフィールドIDとなる。また、type要素により変換されるHTML要素を定義する。
入出力定義情報群609は、ユーザ400の指示によりフロー実行部111が業務ステップを遷移する際に呼び出すプログラムを定義する情報の集合であり、0個以上の入出力定義情報608から構成される。入出力定義情報608は、input−output要素により定義される。input−output要素は子要素としてid要素を持ち、id要素の値が入出力定義情報608を一意に識別可能な入出力IDとなる。また、input−output要素は0個以上の入力定義情報606と0個以上の出力定義情報607を子要素として持つ。但し、入力定義情報606と出力定義情報607は同時に0個になることはない。各入力定義情報606はinput要素により定義し、input要素は入出力定義情報608における入力データとなるフィールドIDをfieldid要素により定義する。また、各出力定義情報607はoutput要素により定義し、output要素は入出力定義情報608
における出力データを格納するフィールドIDをfieldid要素として定義する。
図6の例では、idがflow1であるフロー定義情報502の一部を示しており、該フローはidがstep1、step2のステップ定義情報604と、idがio1の入出力定義情報を含んでいることを示している。
idがstep1の業務ステップは、ガイド定義情報603としてidがfield1であるフィールド定義情報601及びfield2であるフィールド定義情報を含み、これらのフィールドはtype要素がtextであるため、テキスト入力フィールドとして定義されている。また、idがstep2の業務ステップは、ガイド定義情報603としてidがfield3であるフィールド定義情報62を含み、このフィールドはtype要素がlabelであるため、文字列フィールドとして定義されている。
なお、type要素の定義内容は一例であり、これらの値に限定されるものではない。また、HTML要素への変換はテキスト入力フィールドと文字列要素に限定されるものではなく、HTML要素への変換を一意に定めることで、あらゆるHTML要素に対応した定義が可能である。
idがio1の入出力定義情報609は、入力定義情報609として値がfield1及びfield2であるfieldid要素を含んでおり、これによりio1の入力としてフィールドIDがfield1及びfield2であるフィールドに入力された値が利用されることが定義されている。また、出力定義情607報として値がfield3であるfieldid要素を含んでおり、これによりio1の出力データはフィールドIDがfield3のフィールドに出力されることが定義されている。
なお、XMLによるフローの定義は一例であり、他の定義方法を制限するものではない。
以降の説明においては、クライアント装置100のCPU101またはサーバ装置200のCPU201がプログラムを実行することで提供される上述の各処理部を主体として説明する。また、以降の説明においては、複数の変数を格納するデータを配列で表現するが、これに限らず、複数の変数を一つのデータとして記憶するデータ構造であれば、他のデータ構造を用いてもよい。
図7A、図7Bは、本実施形態におけるフロー定義情報502を変更する処理の一例を示すフローチャートである。この処理は、クライアント装置100のブラウザ110がユーザ400の操作を契機に実行する。
本実施形態では、はじめにユーザ400がブラウザ110に対し、業務フローの表示を指示するステップ701を実行する。
フロー実行部111は、ユーザ400が指示した業務フローを識別するフローID及びユーザ400を識別するユーザIDを、フロー定義情報変更部112に通知する(ステップ702)。なお、ユーザIDはユーザ400が事前にフロー実行部111に通知していることとする。
フロー定義情報変更部112は、受け取ったフローIDとユーザIDをサーバ装置200の情報取得部213に通知する(ステップ703)。
情報取得部213は、フロー定義情報記憶部223にフロー定義情報変更部112から受け取ったフローIDをキーとした検索を依頼し、対応するフロー定義情報502を取得する(ステップ704)。この際、フロー定義情報記憶部223は、フロー定義情報テーブル500から、カラム501の値が受け取ったフローIDに一致する行からカラム502のフロー定義情報502を取得して情報取得部213に応答する。
続いて情報取得部213は、ステップ統合定義情報記憶部221にフロー定義情報変更部112から受け取ったフローIDとユーザIDをキーとした検索を依頼し、対応するステップ統合定義情報群を取得する(ステップ705)。この際、ステップ統合定義情報記憶部221は、ステップ統合定義情報テーブル510からカラム511の値が受け取ったフローIDと一致し且つカラム512の値が受け取ったユーザIDと一致する全ての行からカラム513のステップ統合定義情報を取得して情報取得部213に応答する。
更に情報取得部213は、入出力履歴情報記憶部222にフロー定義情報変更部112から受け取ったフローIDをキーとした検索を依頼し、対応する入出力履歴情報群を取得する(ステップ706)。この際、入出力履歴情報記憶部222は入出力履歴情報テーブル530を参照し、カラム532の値が受け取ったフローIDと一致する全ての行からカラム531の履歴ID、カラム533のフィールドID、カラム534の入出力フラグ及びカラム535の入出力データを取得して情報取得部213に返却する。
情報取得部213は、ステップ704、705及び706で取得したフロー定義情報502、ステップ統合定義情報群及び入出力履歴情報群をフロー定義情報変更部112へ応答する(ステップ707)。
情報取得部213から応答を受けたクライアント装置100のフロー定義情報変更部112は、受信したステップ統合定義情報群を予め設定した配列stepIDGroupsに登録する(ステップ708)。
フロー定義情報変更部112は、変更フィールド記憶テーブル520を空にする(ステップ709)。
続いて、フロー定義情報変更部112は、配列stepIDGroupsの各要素をstepIDGroupとして、以下の処理(ループ1)を繰り返す。
フロー定義情報変更部112は、情報取得部213から受信したフロー定義情報502と変数stepIDGroupを引数として、入力項目制御処理800を呼び出す(ステップ710)。入力項目制御処理800の内容は後述する。
次に、フロー定義情報変更部112は、情報取得部213から受信したフロー定義情報502、変数stepIDGroup及び入出力履歴情報群を引数として、重複削除処理900を呼び出す(ステップ711)を実行する。重複削除処理900の内容は後述する。
更に、フロー定義情報変更部112は、情報取得部213から受信したフロー定義情報502と変数stepIDGroupを引数として、ステップ統合処理1000を呼び出す(ステップ712)。ステップ統合処理1000の内容は後述する。
フロー定義情報変更部112は上記ループ1を完了した後、上記ループ1で変更したフロー定義情報502をフロー実行部111に応答する(ステップ713)。
フロー実行部111は、フロー定義情報変更部112が応答したフロー定義情報502に基づいてHTMLを生成し、表示装置103に出力する(ステップ714)。
上記処理によりユーザ400が指定した複数の業務ステップがひとつのWebページとして表示装置103に出力され、ユーザ400が所望する表示形態で業務フローを遂行することができる。
図8A、図8Bは、本実施形態における入力項目制御処理の一例を示すフローチャートである。この処理は、図7Bのステップ710で行われる処理のサブルーチンを示す。
はじめにフロー定義情報変更部112は、フロー定義情報502から入出力定義情報群を抽出し、予め設定した配列inputOutputsに登録する(ステップ801)。
フロー定義情報変更部112は、配列inputOutputsに登録された各要素をinputOutputとして、以下の処理(ループ1)を繰り返す。
フロー定義情報変更部112は、変数inputOutputに含まれる入力定義情報を抽出し、抽出した入力定義情報に含まれる全てのfieldid要素の値を配列inputFieldIDsに登録する(ステップ802)。
フロー定義情報変更部112は、配列inputFieldIDsに登録された各要素をinputFieldIDとして、以下の処理(ループ2)を繰り返す。
フロー定義情報変更部112は、フロー定義情報502から変数inputFieldIDと同一の値を持つid要素を含むフィールド定義情報601を抽出し、更に該フィールド定義情報601を含むステップ定義情報604を抽出し、該ステップ定義情報604のステップIDを変数inputStepIDに登録する(ステップ803)。
フロー定義情報変更部112は、変数inputStepIDが変数stepIDGroupに含まれる値であるか否かを判定する(ステップ804)。なお、本実施形態では変数stepIDGroupにはステップIDがカンマ区切りで登録されており、変数inputStepIDが変数stepIDGroupに含まれるとは、カンマ区切りで登録されたステップIDのいずれかが変数inputStepIDと一致することを意味する。変数inputStepIDが変数stepIDGroupに含まれる場合(ステップ804:Yes)は下記ステップ805へ進み、変数inputStepIDが変数stepIDGroupに含まれていない場合(ステップ804:No)は、変数stepIDGroupを配列stepIDGroupsの次の要素に変更してステップ803の処理を繰り返す。
フロー定義情報変更部112は、フロー定義情報502から変数inputFieldIDと同一の値を持つid要素を含むフィールド定義情報601を抽出し、該フィールド定義情報601にイベントリスナ定義追加を指示する子要素を追加する(ステップ805)。ここで追加するイベントリスナは、該フィールド定義情報601が変換されたHTMLにおいて、ユーザ400が入力操作を完了したことを検知し、後述するイベントリスナ処理の呼び出しを行うものである。
フロー定義情報変更部112は、変更フィールド記憶部113に対して、変数inputOutputのid要素の値、変数inputFieldIDの値の登録を依頼する(ステップ806)。この際、変更フィールド記憶部113は、受け取った変数inputOutputのid要素の値をカラム521の値、受け取った変数inputFieldIDの値をカラム522の値、カラム523の値を「IN」、カラム524の値を「FALSE」として変更フィールド記憶テーブル520に登録する。
フロー定義情報変更部112は、配列inputFieldIDsに含まれる全要素に対して上記処理(ループ2)を実行した後、変更フィールド記憶部113に対して、変数inputOutputのid要素の値をキーとした検索を依頼し、対応する要素数を受け取る(ステップ807)。この際、変更フィールド記憶部113は、変更フィールド記憶テーブル520から、受け取った変数inputOutputのid要素の値とカラム521の値が一致する要素を全て抽出し、その要素数をフロー定義情報変更部112に応答する。
フロー定義情報変更部112は、ステップ807で受け取った要素数が1以上であるか否かを判断する(ステップ808)。要素数が1以上である場合(ステップ808:Yes)は、ステップ809へ進み、要素数が0である場合(ステップ808:No)は、変数inputOutputを配列inputOutputsの次の要素に変更して、ステップ802へ進む。
フロー定義情報変更部112は、変数inputOutputに含まれる出力定義情報を抽出し、抽出した出力定義情報に含まれる全てのfiedldid要素の値を配列outputFieldIDsに登録する(ステップ809)を実行する。
フロー定義情報変更部112は、配列outputFieldIDsに含まれる各要素をoutputFieldIDとして、以下の処理(ループ3)を実行する。
フロー定義情報変更部112は、フロー定義情報502から変数outputFieldIDと同一の値を持つid要素を含むフィールド定義情報601を抽出し、更に該フィールド定義情報601を含むステップ定義情報604を抽出し、該ステップ定義情報604のステップIDを変数outputStepIDに登録する(ステップ810)。
フロー定義情報変更部112は、変数outputStepIDが変数stepIDGroupに含まれる値であるか否かを判断する(ステップ811)。変数outputStepIDが変数stepIDGroupに含まれる場合(ステップ811:Yes)は、ステップ812へ進み、変数outputStepIDが変数stepIDGroupに含まれない場合(ステップ811:No)は変数outputFieldIDを配列outputFieldIDsの次の要素に変更してステップ810へ進む。
フロー定義情報変更部112は、フロー定義情報502から変数outputStepIDと同一の値を持つid要素を含むフィールド定義情報601を抽出し、該フィールド定義情報601がHTMLに変換された際、編集可能な要素として変換されるか否かを判断する(ステップ812)。なお、編集可能な要素として変換されるか否かは、フィールド定義情報601に含まれるtype属性の値から判断することが可能であり、例えばtype属性の値がtextである場合にはテキスト入力フィールドに変換されるため、フロー定義情報変更部112は編集可能な要素に変換されると判断する。一方、フィールド定義情報601に含まれるtype属性がlabelである場合には文字列フィールドに変換されるため、フロー定義情報変更部112は編集可能な要素には変換されないと判断する。フィールド定義情報601が編集可能な要素を表している場合(ステップ812:Yes)は、ステップ813に進み、編集可能な要素ではない場合(ステップ812:No)はステップ814に進む。
フロー定義情報変更部112は、フロー定義情報502から変数outputStepIDと同一の値を持つid要素を含むフィールド定義情報601を抽出し、該フィールド定義情報601に対してフィールドの非活性化を表す子要素を追加する(ステップ813)。非活性化を表す子要素とは、例えばdisable要素をfield要素の子要素として追加し、その値をtrueに設定することで表現が可能である。非活性化を表す子要素を追加された編集可能なフィールドは、disable要素がfalseに変化するか、もしくは要素が削除されるまではユーザ400からの入力を禁止する。
フロー定義情報変更部112は、変更フィールド記憶部113に対して、変数inputOutputのid要素の値と、変数outputFiledIDの値の登録を依頼する(ステップ814)。この際、変更フィールド記憶部113は、受け取った変数inputOutputのid要素の値をカラム521の値、受け取ったoutputFiledIDの値をカラム522の値、カラム523の値を「OUT」、カラム524の値を「FALSE」として変更フィールド記憶テーブル520に登録する。
フロー定義情報変更部112は、配列outputFieldIDsに含まれる全要素に対して上記処理(ループ3)を実行し、更に配列inputOutputsに含まれる全要素に対して上記処理(ループ1)を実行し、入力項目制御処理を終了する。
上記処理により、サーバ装置200が提供するアプリケーションサービスの業務ステップ(Webページ)について、クライアント装置100はユーザ400から業務フローの実行要求を受け付けると、ステップ統合定義情報テーブル510を参照して複数の業務ステップをひとつにまとめるWebページを特定する。クライアント装置100とサーバ装置200は、統合する業務ステップに含まれる構成要素(フィールド)間の入出力の関係を抽出し、抽出した入出力の関係から出力先となる業務ステップの構成要素を抽出し、抽出した出力先となる業務ステップの編集可能な構成要素に対する操作を抑止する。
図9A、図9B、図9Cは、本実施形態における重複削除処理のフローチャートによる表現例である。この処理は、図7のステップ711で行われる処理のサブルーチンを示す。
フロー定義情報変更部112は、予め設定した配列fieldIDsを空にする(ステップ901)。
フロー定義情報変更部112は、入力として受け付けた変数stepIDGroupの各要素をstepIDとして、以下の処理(ループ1)を実行する。
フロー定義情報変更部112は、フロー定義情報502から変数stepIDと同一の値を持つid要素を含むステップ定義情報604を抽出し、該ステップ定義情報604に含まれるフィールド定義情報群602を抽出する。フロー定義情報変更部112は、抽出した全てのフィールド定義情報群602に含まれるフィールド定義情報601からフィールドIDの値を抽出し、配列fieldIDsに追加する(ステップ902)。
フロー定義情報変更部112は、変数stepIDGroupの各要素に対して上記処理(ループ1)を実行した後、入出力履歴情報群におけるカラム533から抽出したフィールドIDの値が配列fieldIDsに含まれるフィールドIDの値と一致する入出力履歴情報を全て抽出し、予め設定した配列recordsに登録する(ステップ903)。
フロー定義情報変更部112は、配列recordsを検索して入出力履歴情報テーブル530のカラム534から抽出した入出力フラグが「OUT」である入出力履歴情報のフィールドIDを抽出し、配列outputFieldIDsに登録する(ステップ904)。
フロー定義情報変更部112は、配列outputFieldIDsに含まれる各要素をoutputFieldIDとして、以下の処理(ループ2)を実行する。
フロー定義情報変更部112は、配列inputFieldIDsを空にする(ステップ905)。
フロー定義情報変更部112は、配列recordsからフィールドIDの値が変数outputFieldIDと一致し、かつ入出力フラグが「OUT」である全ての入出力履歴情報を抽出し、予め設定した配列outputRecordsに登録する(ステップ906)。
フロー定義情報変更部112は、配列outputRecordsの先頭の要素を変数outputRecordに登録する(ステップ907)。
フロー定義情報変更部112は、配列recordsから履歴IDの値が変数outputRecordの履歴IDの値と同一であり、かつ入出力フラグが「IN」である全ての入出力履歴情報を抽出し、変数inputRecordsに登録する(ステップ908)。
フロー定義情報変更部112は、配列inputRecordsに含まれる各要素をinputRecordとして、以下の処理(ループ3)を実行する。
フロー定義情報変更部112は、変数outputRecordの入出力データの値と変数inputRecordの入出力データの値が一致するか否かを判断するステップ909を実行し、値が一致する場合はステップ910に進む。一方、変数outputRecordの入出力データの値と変数inputRecordの入出力データの値が一致しない場合は変数inputRecordを配列inputRecordsの次の値に変更してステップ909の判断を繰り返す。
フロー定義情報変更部112は、変数inputRecordのフィールドIDの値を配列inputFieldIDsに追加する(ステップ910)。
フロー定義情報変更部112は、配列inputRecordsに含まれる全ての要素に対して上記処理(ループ3)を実行した後、配列outputRecordsに含まれる変数outputRecordの次の要素を新たな変数outputRecordとして登録する(ステップ911)。
フロー定義情報変更部112は、配列inputFieldIDsに含まれる各要素をinputFieldIDとして以下の処理(ループ4)を実行する。
フロー定義情報変更部112は、配列recordsから履歴IDが変数outputRecordの履歴IDと一致し、かつフィールドIDが変数inputFieldIDと一致する全ての要素を予め設定した配列targetRecordsに登録する(ステップ912を)。
フロー定義情報変更部112は、変数targetRecordの入出力データの値と変数outputRecordの入出力データの値が一致するか否かを判断し(ステップ913)、値が一致する場合(ステップ913:Yes)は、変数inputFieldIDを配列inputFieldIDsの次の要素に変更してステップ912に進み、一致しない場合(ステップ913:No)はステップ914へ進む。
フロー定義情報変更部112は、配列inputFiledIDsから変数inputFieldIDの値を削除する(ステップ914)。
フロー定義情報変更部112は、配列inputFieldIDsに含まれる各要素に対して上記処理(ループ4)を実行した後、配列inputFieldIDsの要素数が1以上であるか否かを判断する(ステップ915)。要素数が1以上である場合(ステップ915:Yes)は、ステップ916へ進み、要素数が0であった場合(ステップ915:No)は変数outputFieldIDを配列outputFieldIDsの次の要素に変更してループ2の起点であるステップ905へ進む。
フロー定義情報変更部112は、変数outputRecordが配列outputRecordsの末尾の要素か否かを判断する(ステップ916)。変数outputRecordが末尾の要素であった場合(ステップ916:Yes)は、ステップ917へ進み、末尾の要素でない場合(ステップ916:No)は、ステップ911へ進む。
フロー定義情報変更部112は、フロー定義情報502から変数outputFieldIDと同一のid要素を持つフィールド定義情報601を抽出し、該フィールド定義情報601がHTMLに変換された際、編集不可能な要素として変換されるか否かを判断する(ステップ917)。フィールド定義情報601が編集不可能な要素を表している場合(ステップ917:Yes)は、ステップ918に進み、編集不可能な要素ではない場合(ステップ917:No)は、変数outputFieldIDを配列outputFieldIDsの次の要素に変更してループ2の起点であるステップ905へ進む。
フロー定義情報変更部112は、フロー定義情報502から変数outputFieldIDと同一のid要素を持つフィールド定義情報601を抽出し、該フィールド定義情報601をフロー定義情報502から削除する(ステップ918)。
フロー定義情報変更部112は、配列outputFieldIDsに含まれる各要素に対して上記処理(ループ2)を実行した後、重複削除処理を終了する。
上記重複削除処理により、入出力関係の入力元となる業務ステップの構成要素(フィールド)と、出力先となる業務ステップの構成要素の入出力の履歴情報を比較して、比較結果が常に等しくなる出力先の業務ステップの構成要素を削除することで、統合後の業務ステップに同一の構成要素が表示されるのを防止することができる。
図10は、本実施形態におけるステップ統合処理のフローチャートによる表現例である。この処理は、図7Bのステップ712で実行される処理のサブルーチンである。
フロー定義情報変更部112は、変数stepIDGroupの先頭要素をbaseStepIDに登録する(ステップ1001)。
フロー定義情報変更部112は、変数baseStepIDを変数targetStepIDに登録する(ステップ1002)。
フロー定義情報変更部112は、変数stepIDGroupの中で変数targetStepIDの次の要素を新たな変数targetStepIDとして登録する(ステップ1003)。
フロー定義情報変更部112は、フロー定義情報502から変数targetStepIDと同一の値を持つid要素を含むステップ定義情報604を抽出し、該ステップ定義情報604に含まれる全てのフィールド定義情報601を抽出し、変数baseStepIDと同一の値を持つid要素を含むステップ定義情報604に含まれるフィールド定義情報群602の末尾に追加する(ステップ1004)。
フロー定義情報変更部112は、フロー定義情報502から変数targetStepIDと同一の値を持つid要素を含むステップ定義情報604を抽出し、該ステップ定義情報604をフロー定義情報502から削除する(ステップ1005)。
フロー定義情報変更部112は、変数targetStepIDが変数stepIDGroupの末尾の要素であるか否かを判断するステップ1006を実行する。変数targetStepIDが変数stepIDGroupの末尾の要素である場合(ステップ1006:Yes)は、ステップ統合処理を終了し、末尾の要素でない場合(ステップ1006:No)は、ステップ1003へ進む。
上記処理によって、複数の業務ステップをひとつのWebページに統合することができる。統合された業務ステップは、フィールド間の依存関係からフィールド(構成要素)の入力順序を制限することで、複数の業務ステップ間の整合性を保つことができる。例えば、第1の業務ステップで第1のフィールドへの入力が終了した後に、第2の業務ステップとして第2のフィールドへ入力する業務フローでは、第1のフィールドへの入力が完了するまでは編集可能な第2のフィールドを非活性化することで入力を禁止する。そして、統合されたWebページにはイベントリスナを追加することで、第1のフィールドへの入力を検知した後に、イベントリスナが第2のフィールドを活性化してユーザからの入力を許可することで、ひとつのWebページ内で複数の業務ステップ間の整合性を保持することができる。
また、複数のフィールドが同一の値を使用する場合には、入出力履歴情報テーブル530から重複する値を表示するフィールドを検出して削除することで、統合された業務ステップに同一の値が複数表示されるのを防止できるのである。
図11A、図11B、図11Cは、本実施形態におけるイベントリスナ処理の一例を示すフローチャートである。この処理は、統合された業務ステップに対してクライアント装置100のユーザ400が入力を行うことで起動する。
はじめに、ユーザ400が表示装置103の画面に表示された入力フィールドに対して入力装置104から入力を行うと、ブラウザ110は入力の受け付けを完了するステップ1101を実行する。
ユーザ400の入力完了はブラウザ110によって検知され、該入力フィールドに定義されたイベントリスナを通じてフロー実行部111が呼び出される。なお、本イベントリスナは図8Aのステップ805において、フロー定義情報変更部112により業務ステップに付与されたものである。
フロー実行部111は、ブラウザ110からの呼び出しを受けて、ユーザ400が入力を完了したフィールドのIDを変数fieldIDに登録する(ステップ1102)。なお、フィールドのIDはブラウザ110によりフロー実行部111に通知される。
フロー実行部111は、変更フィールド記憶部113に対して、フィールドIDを通知し、変更フィールド記憶テーブル520の更新を依頼する(ステップ1103)。この際、変更フィールド記憶部113は、変更フィールド記憶テーブル520のカラム522の値が受け取ったフィールドIDと一致し、かつカラム523の値が「IN」である全ての行について、カラム524の値を「TRUE」に設定する。
フロー実行部111は、変更フィールド記憶部113に対して、フィールドIDをキーとした検索を依頼し、結果として受け取った入出力ID群を配列inputOutputIDsに登録する(ステップ1104)。この際、変更フィールド記憶部113は、カラム522の値が受け取ったフィールドIDと一致し、かつカラム523の値が「IN」である行を全て抽出し、抽出した行に含まれる入出力IDから重複を排除して応答する。
フロー実行部111は、配列inputOutputIDsの各要素をinputOutputIDとして、以下の処理(ループ1)を実行する。
フロー実行部111は、変更フィールド記憶部113に対して、変数inputOutputIDの値をキーとした検索を依頼し、対応する要素数を受け取る(ステップ1105)。この際、変更フィールド記憶部113は、変更フィールド記憶テーブル520からカラム521の値が受け取った変数inputOutputIDの値と一致し、カラム523の値が「IN」であり且つカラム524の値が「FALSE」である全ての要素を抽出し、その要素数を通知する。
フロー実行部111は、ステップ1105で受け取った要素数が1以上であるか否かを判断する(ステップ1106)。要素数が1以上である場合(ステップ1106:Yes)は、変数inputOutputIDを配列inputOutputIDsの次の要素に変更してループ1の起点であるステップ1105に進み、要素数が0である場合(ステップ1106:No)は、ステップ1107に進む。
フロー実行部111は、サーバ装置200のプログラム実行部212に変数inputOutputIDを通知する(ステップ1107)。
プログラム実行部212は、変数inputOutputIDに対応するプログラムを実行する(ステップ1108)。本実施形態では、本ステップでプログラム実行部212が実行するプログラムは事前に変数inputOutputIDと対応付けて登録されているものとする。プログラム実行部212が実行するプログラムとしては、図示しないデータベースサーバに対する問い合わせの実行などを含むことができる。
プログラム実行部212は、ステップ1108で実行したプログラムの実行結果をフロー実行部111に応答する(ステップ1109)。
フロー実行部111は、プログラム実行部212から受け取ったプログラムの実行結果を変数resultに登録する(ステップ1110)。
フロー実行部111は、変更フィールド記憶部113に対して、変数inputOutputIDの値をキーとした検索を依頼し、結果として受け取ったフィールドID群を予め設定した配列activeFieldIDsに登録する(ステップ1111)。この際、変更フィールド記憶部113は、変更フィールド記憶テーブル520からカラム521の値が受け取った変数inputOutputIDの値と一致し、かつカラム523の値が「OUT」である全ての行を抽出し、抽出した各行からカラム522の値を抽出して応答する。
フロー実行部111は、配列activeFieldIDsの各要素を変数activeFieldIDとして、以下の処理(ループ2)を実行する。
フロー実行部111は、変数resultからフィールドIDの値が変数activeFieldIDと一致する全ての要素を抽出し、抽出した要素に対する出力データを、ユーザ400に提示されているHTMLに含まれるid属性が変数activeFieldIDと一致する要素の値として挿入する(ステップ1112)。
フロー実行部111は、フロー定義情報502から変数activeFieldIDと一致した値を持つid要素を含むフィールド定義情報601を抽出し、該フィールド定義情報601がHTMLに変換された際、編集可能なフィールドに変換されるか否かを判断する(ステップ1113)。該フィールド定義情報601が編集可能なフィールドに変換される場合(ステップ1113:Yes)は、ステップ1114に進み、編集可能なフィールドに変換されない場合(ステップ1113:No)は、変数activeFieldIDを配列activeFieldIDsの次の要素に変更してステップ1112に進む。
フロー実行部111は、ユーザ400に提示されているHTMLからid属性が変数activeFieldIDと一致する要素を抽出し、該要素が非活性化されている場合には活性化を行う(ステップ1114)。なお、HTML要素の非活性化とは、HTML要素に値がtrueのdisable属性を追加することにより入力を受け付けない状態にすることや、HTML要素自体を非表示することなど、ユーザが該HTML要素を編集できない状態とすることを表しており、これらの方法に限定されるものではない。また、HTML要素の活性化とは、上記の非活性化を解除するための方法であり、HTML要素からdisable属性を削除することやHTML要素の非表示を解除することなどが相当する。
フロー実行部111は、フロー定義情報502から変数activeFieldIDと同一の値を持つid要素を含むフィールド定義情報601を抽出し、該フィールド定義情報601が非活性化を指示する子要素を含むか否かを判断する(ステップ1115)。該フィールド定義情報601が非活性化を指示する子要素を含む場合(ステップ1115:Yes)は、ステップ1116へ進み、非活性化を指示する子要素を含まない場合(ステップ1115:No)は、変数activeFieldIDを配列activeFieldIDsの次の要素としてステップ1112へ進む。
フロー実行部111は、フロー定義情報502から変数activeFieldIDと同一の値を持つid要素を含むフィールド定義情報601を抽出し、該フィールド定義情報601から非活性化を指示する子要素を削除する(ステップ1116)。
フロー実行部111は、配列activeFieldIDsに含まれる全ての要素に対して上記処理(ループ2)を実行し、更に配列inputOutputIDsに含まれる全ての要素に対して上記処理(ループ1)を実行した後、イベントリスナ処理を終了する。
上記処理により、統合された業務ステップに追加されたイベントリスナによって、複数の業務ステップを統合したひとつのWebページ内で、複数の業務ステップの順序を保証することができる。
図12Aは、業務ステップが統合されていない場合の業務フローの表示形式を示し、図12Bは、業務ステップが統合された場合の業務フローの表示形式を示している。
図12Aの画面12−A及び12−Bは統合前の業務フローの表示形式を示しており、画面12−Aはユーザが商品検索処理を行う業務ステップのWebページで、画面12−Bはユーザが発注処理を実施する業務ステップのWebページを示している。
クライアント装置100はまず、画面12−Aを表示装置103に表示し、入力装置104から商品IDを受け付けると、次の業務ステップである発注処理に進むことで画面12−BのWebページを表示装置103に表示する。この際、クライアント装置100及びサーバ装置200ではフロー実行部111、及びプログラム実行部212が実行され、商品IDに対応する商品の在庫数が検索され、さらに発注数の初期値が計算される。ユーザは画面12−Bにおいて在庫数及び発注数の初期値を確認の上、必要に応じて発注数を変更し、発注処理を行う。図12Aの業務フローでは、画面12−Aから画面12−Bへ表示を切り替えることで複数の業務ステップが順次実行される。
上記2つの業務ステップ(Webページ)をひとつのWebページに統合する情報をステップ統合定義情報テーブル510へユーザ毎に格納しておき、クライアント装置100は、ユーザからの業務フローの実行要求を受け付ける。業務フローの実行要求から出力すべきWebページが統合すべきWebページである場合、クライアント装置100及びサーバ装置200は、上記業務ステップの統合を行って、図12Bに示す画面イメージを出力する。図12Bの画面12−Cでは、図12Aに示した2つの業務ステップ(Webページ)をひとつのWebページ(ひとつの画面)に統合したものである。
図12Bに示す画面12−C、12−C1、12−C2は業務ステップをひとつのWebページに統合した後の業務フローの表示形式を示す。画面12−Cはユーザが業務フローの開始を指示したときの画面イメージである。
画面12−Cは、複数の業務ステップを実施するために必要な情報としてフィールドなどを表示する作業情報表示領域1040と、複数の手順から構成される業務ステップの順序を表す業務フローを表示するフロー表示領域1041から構成される。
画面12−C1はユーザが商品IDを入力した瞬間の画面イメージを示す。画面12−C2はユーザの入力に基づいて上述のプログラムが実行され、画面12−C2に在庫数及び発注数の初期値が出力された状態を示している。
ユーザはまず、クライアント装置100に業務フローの表示を指示し、クライアント装置100は表示装置103に画面12−Cの画面を表示する。この際、在庫数1031及び発注数1032のフィールドの初期値は商品ID1030のフィールドに依存して決定されるため、画面12−Cの状態では各入力項目は非活性化された状態で表示される。
続いて、ユーザが商品ID1030を入力することで画面12−C1の状態へ遷移する。ユーザの入力はブラウザ110により検知され、フロー実行部111、プログラム実行部212及びイベントリスナが実行される。この結果、画面12−C2の状態へ遷移し、在庫数1031及び発注数1032の初期値がブラウザ110によって挿入されると同時に発注数を示す入力項目の非活性化が解除され、ユーザは発注数1032のフィールドに入力することが可能となる。
このように、商品ID1030のフィールドに依存して在庫数1031及び発注数1032の初期値が決定されるような業務ステップを統合した際に、ユーザが商品ID1030を入力する前に発注数1032を非活性化して指定不可能とすることで、ユーザが在庫数1031以上の数量を発注してしまうことを防ぐことができる。
図13は、統合された業務ステップが繰り返し定義を含む場合の統合画面の例を示している。
画面13―Aは統合前の業務フローの表示形式を示しており、業務ステップAと業務ステップBの実行が繰り返し実施される可能性があることを示している。画面13−Bは、このような業務フローにおいて、ユーザが業務ステップAと業務ステップBの統合を指示した場合の業務フローの表示形式の例を示している。
画面13−Bでは、業務ステップAに対応するガイドであるガイドAと業務ステップBに対応するガイドであるガイドBが同一の画面上に表示される。更に画面13−Bでは、これらのガイドがタブ表示により複数表示可能であることを示している。すなわち、画面13−Bでは、業務フローの繰り返しに応じてタブを増加させることができる。タブによる繰り返しの表現は一例であり、表現形式はこれに限定されるものではないが、図13に示すように、統合された画面を複数回表示可能とすることで、フローが繰り返しを含む場合にも業務ステップを統合することが可能となる。
図14は、統合された業務ステップが条件分岐を含む場合の統合画面の例を示している。
画面14−Aは統合前のフローの表示形式を示しており、業務ステップAを実行後、業務ステップB、もしくは業務ステップCが排他的に実行された後、業務ステップDが実行されることを示している。画面14−Bは、このようなフローにおいて、ユーザが業務ステップA、業務ステップB、及び業務ステップCの統合を指示した場合の業務フローの表示形式の例を示している。
複数の業務ステップが統合された画面14−Bでは、業務ステップAに対応するガイドであるガイドAに加え、業務ステップB、もしくは業務ステップCを排他的に選択可能なラジオボタンが表示され、業務ステップBの実行が選択された場合にはラジオボタンに加えて業務ステップBに対応するガイドであるガイドBが表示されることを示している。ラジオボタンで業務ステップCの実行が選択された場合には業務ステップCに対応するガイドが図中ガイドBの表示領域に出力される。
ラジオボタンによる排他的なステップの実行を指示する表現は一例であり、表現形式はこれに限定されるものではないが、図14に示すように、排他的に実行される業務ステップを選択するための選択方法をユーザに提示することで、条件分岐を含むフローについてもステップを統合することが可能となる。
<第2実施形態>
次に、第二の実施形態について、添付図面に基づいて説明する。
図15は、第二の実施形態に関わる計算機システム2000のハードウェアとソフトウェアの概要を示すブロック図である。
本実施形態では、前記第一の実施形態のクライアント装置100及びサーバ装置200に加えて開発者401が操作する開発用装置300が配備されている。
開発用装置300はクライアント装置100と同様、汎用の計算機により実現可能であり、CPU301、ネットワークインタフェース302、表示装置303、入力装置304、主記憶装置305、二次記憶装置306及びこれらを接続するシステムバス307から構成されている。個々のハードウェアの機能はクライアント装置100と同様であるため、詳細な説明は省略する。
開発用装置300の主記憶装置305上に格納されるプログラムもクライアント装置100と同様の機能を有するブラウザ311であるが、ブラウザ311上で実行されるプログラムがフロー編集部310である点がクライアント装置100と異なる。
図16は、開発用装置300のフロー編集部310が利用するグループ管理テーブル540の構成例を示している。グループ管理テーブル540は、ユーザIDを格納するカラム541とグループIDを格納するカラム542とから構成される。グループ管理テーブル540は、ユーザカラム541に格納されたユーザIDで一意に識別可能なユーザが、カラム542に格納されたグループIDにより一意に識別可能なグループに所属していることを表す。ここでグループとは、1人以上のユーザをまとめて管理するための集合と定義する。
具体的には、ユーザIDが「yamada」で識別可能なユーザと、ユーザIDが「tanaka」はグループID「group1」で識別されるグループに所属しており、ユーザID「kawada」で識別可能なユーザはグループID「group2」で識別されるグループに所属していることを示している。
なお、テーブルによるデータ構造の表現は一例であり、他のデータ構造による表現を制限するものではない。
本実施形態では、前記第一の実施形態においてステップ統合定義情報テーブル510を用いてユーザごとに管理していたステップ統合定義情報513を、グループごと、すなわち複数のユーザに対するステップの統合定義を一括して管理する方法を提供する。これは、前述の図7Aのステップ705において、ステップ統合定義情報記憶部221がユーザIDをキーとしてステップ統合記憶テーブル510を検索する前に、ステップ定義情報記憶部221はグループ管理テーブル540を、ユーザIDをキーとして検索を行う。そして、ステップ統合定義情報記憶部221が、グループ管理テーブル540からカラム541の値がユーザIDと一致する行のカラム542の値をグループIDとして抽出することでユーザIDをグループIDに変換し、該グループIDをキーとしてステップ統合定義情報テーブル510を検索することで、実現が可能である。
なお、ユーザIDとグループIDのマッピング定義、及びグループに対するステップ統合定義情報は、開発者401がフロー編集部310にグループID、フローID及び統合するステップIDの集合を通知し、フロー編集部310が受け取った情報をステップ統合定義情報登録部211へ通知し、更にステップ統合定義情報登録部211がステップ統合定義情報記憶部221へ該情報の格納を依頼し、ステップ統合定義情報記憶部221がステップ統合定義情報テーブル510に該情報を格納することで登録される。
本実施形態では、開発者401にグループに対するステップ統合定義情報の定義方法を提供することで、例えば企業の部門単位など、同一の業務を行う多数のユーザが存在する場合、該多数のユーザに対して一括して統合されたフローを提供することが可能となり、開発者の作業負荷を軽減することができる。
<第3実施形態>
次に、第三の実施形態について、添付図面に基づいて説明する。
図17は、第三の実施形態に関わる計算機システム3000のハードウェアとソフトウェアの概要を示すブロック図である。本実施形態では、前記第一の実施形態においてクライアント装置100のブラウザ110に配備されていたフロー実行部111、フロー定義情報変更部112、変更フィールド記憶部113を、サーバ装置200のWebサーバプログラム210に配備したものである。その他の構成は前記第1実施形態と同様である。
本実施形態では、ユーザ400の要求に基づいてブラウザ110はHTTPリクエストをサーバ装置200に送信し、要求を受け付けたWebサーバプログラム210は、Webサーバプログラム210に配備されたフロー実行部111、フロー定義情報変更部112、変更フィールド記憶部113によりフロー定義情報502の変更処理、及びフロー定義情報502に基づいたHTMLの生成処理を実行して応答を返し、ブラウザ110がHTMLの表示を行う。
本実施形態を用いれば、クライアント装置100は、ユーザからの要求を受け付けてHTTPリクエストを送信する処理、及びフロー実行部111から受信したHTMLを表示する処理のみを実行すればよく、クライアント装置100にかかる負荷を軽減することができる。その他については前記第1の実施形態と同様であり、複数の業務ステップをひとつのWebページに統合することができる。
本発明は、Webブラウザを利用して業務を行う計算機システム及びWebブラウザ、Webサーバのプログラムに利用することができる。
Claims (19)
- 複数のWebページを計算機で統合して単一のWebページとして出力するWebページの制御方法において、
前記計算機が、単一のWebページに統合する複数のWebページを定義した統合定義情報を取得する第1のステップと、
前記計算機が、前記統合定義情報の複数のWebページに含まれる構成要素間の入出力関係を抽出する第2のステップと、
前記計算機が、前記抽出した入出力関係から出力先となるWebページの構成要素を抽出する第3のステップと、
前記計算機が、前記抽出した出力先となるWebページの構成要素に対する操作を禁止する第4のステップと、
前記計算機が、前記抽出した入出力関係から入力元となる全てのWebページの構成要素を抽出する第5のステップと、
前記計算機が、前記入力元となる全てのWebページの構成要素に対する操作が完了した際に、前記出力先となるWebページの構成要素に対する操作を許可する第6のステップと、
を含むことを特徴とするWebページの制御方法。 - 請求項1に記載のWebページの制御方法であって、
前記計算機が、前記Webページ毎に設定された前記構成要素と、前記複数のWebページの操作順序と、を予め設定した操作手順定義情報を参照する第7のステップと、
前記計算機が、前記統合する複数のWebページの操作手順定義情報から前記複数のWebページの操作順序を表示する手順表示領域と、前記複数のWebページに設定された前記構成要素を統合した単一の作業情報表示領域と、を含むWebページを出力する第8のステップと、
をさらに含むことを特徴とするWebページの制御方法。 - 請求項1に記載のWebページの制御方法であって、
前記第4のステップは、
前記抽出した出力先となるWebページの構成要素を非活性化することにより操作の禁止を実現することを特徴とするWebページの制御方法。 - 請求項1に記載のWebページの制御方法であって、
前記第4のステップは、
前記抽出した出力先となるWebページの構成要素を非表示にすることにより操作の抑止を実現することを特徴とするWebページの制御方法。 - 請求項2に記載のWebページの制御方法であって、
前記計算機が、前記操作手順定義情報に設定された構成要素のうち、入出力関係における入力元となるWebページの構成要素に対して入力された値と、出力先となるWebページの構成要素に出力された値とを対応付けて格納した履歴情報を保持するステップをさらに含み、
前記第8のステップは、
前記作業手順表示領域に含まれる前記統合対象の複数のWebページの構成要素間の入出力関係に対する前記履歴情報を抽出するステップと、
前記抽出した履歴情報から、前記入出力関係の入力元となるWebページの構成要素に対して入力された値と、対応する前記入出力関係の出力先となるWebページの構成要素に出力された値とを比較するステップと、
前記比較の結果が常に等しくなる該出力先となるWebページの構成要素を削除するステップと、
を含むことを特徴とするWebページの制御方法。 - 請求項2に記載のWebページの制御方法であって、
前記第8のステップは、
前記操作手順定義情報から、前記統合する複数のWebページの業務の順序に含まれる繰り返し情報を抽出するステップと、
前記抽出した繰り返し情報に含まれる業務の順序に対応して前記作業情報表示領域を前記繰り返しに応じて複数表示するステップと、
を含むことを特徴とするWebページの制御方法。 - 請求項2に記載のWebページの制御方法であって、
前記第8のステップは、
前記操作手順定義情報から、前記統合する複数のWebページの業務の順序に含まれる条件分岐を抽出するステップと、
前記抽出した条件分岐において排他的に実行される業務を選択する情報を前記作業情報表示領域に追加するステップと、
前記業務を選択する情報から、前記業務の実施に必要となる構成要素のみを前記統合した作業情報表示領域に出力するステップと、
を含むことを特徴とするWebページの制御方法。 - 請求項2に記載のWebページの制御方法であって、
前記操作手順定義情報は、
前記複数のWebページに含まれる構成要素間の入出力関係を定義する入出力定義情報と、前記Webページの構成を定義するWebページ定義情報と、
を含むことを特徴とするWebページの制御方法。 - 複数のWebページを統合して単一のWebページとして出力する計算機システムにおいて、
前記単一のWebページ内に統合して出力する複数のWebページを定義する統合定義情報を記憶した統合定義情報記憶部と、
前記複数のWebページに含まれる構成要素間の入出力関係を定義する入出力定義情報を記憶した入出力定義情報記憶部と、
前記Webページの構成要素を定義するWebページ定義情報を記憶格納したWebページ定義情報記憶部と、
を有するサーバ装置と、
前記サーバ装置から前記統合定義情報と、前記入出力定義情報及び前記Webページ定義情報を受信し、前記受信した統合定義情報から統合すべきWebページを抽出し、前記受信した入出力定義情報に含まれる出力先となるWebページの構成要素で、且つ前記抽出した統合すべきWebページに含まれる構成要素に対する操作を禁止するために前記Webページ定義情報を変更する定義情報変更部と、
前記入出力定義情報に定義された入力元となるWebページの構成要素に対する操作の状態を、該入出力定義情報に定義された出力結果を格納するWebページの構成要素と関連付けて記憶する変更記憶部と、
前記定義情報変更部から取得した変更後のWebページ定義情報に基づいてWebページを表示装置に表示し、当該表示しているWebページに含まれる構成要素に対する操作の完了を検知したときに、前記変更記憶部に記憶された構成要素のうち、前記操作が完了した構成要素に対応する出力結果を格納するWebページの構成要素と、前記抽出した出力結果を格納するWebページの構成要素に対応する入力元となる全ての構成要素を抽出して、抽出した入力元となる全ての構成要素が操作済みである場合に、該出力先となるWebページの構成要素に対する操作を許可する実行部と、
を有するクライアント装置と、
を有することを特徴とする計算機システム。 - 請求項9に記載の計算機システムであって、
前記Webページ定義情報は、
前記Webページ毎に設定された前記構成要素と、前記複数のWebページの操作順序と、を予め設定した操作手順定義情報を含み、
前記実行部は、
前記統合定義情報を参照して前記統合する複数のWebページ定義情報から前記複数の業務の順序を表す業務フローを表示する手順表示領域と、前記複数のWebページに設定された前記構成要素を統合した単一の作業情報表示領域と、を含むWebページを出力することを特徴とする計算機システム。 - 請求項9に記載の計算機システムであって、
前記定義情報変更部は、
前記抽出した出力先となるWebページの構成要素を非活性化することにより前記操作を禁止することを特徴とする計算機システム。 - 請求項9に記載の計算機システムであって、
前記定義情報変更部は、
前記抽出した出力先となるWebページの構成要素を非表示にすることにより前記操作を禁止することを特徴とする計算機システム。 - 請求項10に記載の計算機システムであって、
前記変更記憶部は、
前記入出力定義情報に定義された入力元となるWebページの構成要素に対して入力された値と、出力先となるWebページの構成要素に出力された値とを対応付けて格納した履歴情報を保持し、
前記定義情報変更部は、
前記作業手順表示領域に含まれる前記統合対象の複数のWebページの構成要素間の入出力関係に対する前記履歴情報を抽出し、前記抽出した履歴情報から、前記入出力関係の入力元となるWebページの構成要素に対して入力された値と、対応する前記入出力関係の出力先となるWebページの構成要素に出力された値とを比較し、前記比較の結果が常に等しくなる該出力先となるWebページの構成要素を削除することを特徴とする計算機システム。 - 請求項10に記載の計算機システムであって、
前記定義情報変更部は、
前記操作手順定義情報から、前記統合する複数のWebページの業務の順序に含まれる繰り返し情報を抽出し、
前記実行部は、
前記定義情報変更部が抽出した前記繰り返し情報に含まれる業務の順序に対応して前記作業情報表示領域を前記繰り返しに応じて複数表示することを特徴とする計算機システム。 - 請求項10に記載の計算機システムであって、
前記定義情報変更部は、
前記操作手順定義情報から、前記統合する複数のWebページの業務の順序に含まれる条件分岐を抽出し、前記抽出した条件分岐において排他的に実行される業務を選択する情報を前記作業情報表示領域に追加し、
前記実行部は、
前記業務を選択する情報から、前記業務の実施に必要となる構成要素のみを前記統合した作業情報表示領域に出力することを特徴とする計算機システム。 - 請求項10に記載の計算機システムであって、
前記操作手順定義情報は、
前記複数のWebページに含まれる構成要素間の入出力関係を定義する入出力定義情報と、前記Webページの構成を定義するWebページ定義情報と、
を含むことを特徴とする計算機システム。 - 複数のWebページを統合して単一のWebページとして出力する処理を計算機に実行させるプログラムにおいて、
前記単一のWebページに統合する複数のWebページを定義した統合定義情報を取得する第1の手順と、
前記統合定義情報の複数のWebページに含まれる構成要素間の入出力関係を抽出する第2の手順と、
前記抽出した入出力関係から出力先となるWebページの構成要素を抽出する第3の手順と、
前記抽出した出力先となるWebページの構成要素に対する操作を禁止する第4の手順と、
前記抽出した入出力関係から入力元となる全てのWebページの構成要素を抽出する第5の手順と、
前記入力元となる全てのWebページの構成要素に対する操作が完了した際に、前記出力先となるWebページの構成要素に対する操作を許可する第6の手順と、
を前記計算機に実行させることを特徴とするプログラム。 - 請求項17に記載のプログラムであって、
前記Webページ毎に設定された前記構成要素と、前記複数のWebページの操作順序と、を予め設定した操作手順定義情報を参照する第7の手順と、
前記統合する複数のWebページの操作手順定義情報から前記複数の業務のWebページの操作順序を表示する手順表示領域と、前記複数のWebページに設定された前記構成要素を統合した単一の作業情報表示領域と、を含むWebページを出力する第8の手順と、
をさらに含むことを特徴とするプログラム。 - 請求項18に記載のプログラムであって、
前記操作手順定義情報に設定された構成要素のうち、入出力関係における入力元となるWebページの構成要素に対して入力された値と、出力先となるWebページの構成要素に出力された値とを対応付けて格納した履歴情報を保持する手順をさらに含み、
前記第8の手順は、
前記作業手順表示領域に含まれる前記統合対象の複数のWebページの構成要素間の入出力関係に対する前記履歴情報を抽出する手順と、
前記抽出した履歴情報から、前記入出力関係の入力元となるWebページの構成要素に対して入力された値と、対応する前記入出力関係の出力先となるWebページの構成要素に出力された値とを比較する手順と、
前記比較の結果が常に等しくなる該出力先となるWebページの構成要素を削除する手順と、
を含むことを特徴とするプログラム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2010/057982 WO2011135733A1 (ja) | 2010-04-30 | 2010-04-30 | Webページの制御方法、計算機システム及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2011135733A1 JPWO2011135733A1 (ja) | 2013-07-18 |
JP5267732B2 true JP5267732B2 (ja) | 2013-08-21 |
Family
ID=44861070
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012512617A Expired - Fee Related JP5267732B2 (ja) | 2010-04-30 | 2010-04-30 | Webページの制御方法、計算機システム及びプログラム |
Country Status (4)
Country | Link |
---|---|
US (1) | US20130205193A1 (ja) |
JP (1) | JP5267732B2 (ja) |
CN (1) | CN102844774B (ja) |
WO (1) | WO2011135733A1 (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9851951B1 (en) | 2013-12-20 | 2017-12-26 | Emc Corporation | Composable action flows |
US10466872B1 (en) | 2013-12-20 | 2019-11-05 | Open Text Corporation | Composable events for dynamic user interface composition |
US9170786B1 (en) | 2013-12-20 | 2015-10-27 | Emc Corporation | Composable context menus |
US9529572B1 (en) | 2013-12-20 | 2016-12-27 | Emc Corporation | Composable application session parameters |
US9756147B1 (en) * | 2013-12-20 | 2017-09-05 | Open Text Corporation | Dynamic discovery and management of page fragments |
CN110636212A (zh) * | 2018-06-22 | 2019-12-31 | 杭州阿尔法红外检测技术有限公司 | 信息选择配置装置和信息选择配置方法 |
JP7316060B2 (ja) * | 2019-02-26 | 2023-07-27 | 株式会社日立製作所 | アプリケーション画面表示プログラム実装方法 |
CN112347403B (zh) * | 2020-10-26 | 2022-11-15 | 长沙市到家悠享网络科技有限公司 | 页面检查方法、装置、设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001188641A (ja) * | 1999-12-22 | 2001-07-10 | Internatl Business Mach Corp <Ibm> | サーバクライアントシステム、ネットワークサーバ、クライアント、フォーム提供方法、記憶媒体、およびプログラム伝送装置 |
JP2003345697A (ja) * | 2002-05-27 | 2003-12-05 | Hitachi Ltd | 統合インタフェース提供方法、装置及び記憶媒体 |
JP2004272871A (ja) * | 2003-02-20 | 2004-09-30 | Hitachi Software Eng Co Ltd | Webコンテンツ内のデータ抽出配信方法およびシステム |
JP2005107635A (ja) * | 2003-09-29 | 2005-04-21 | Dainippon Printing Co Ltd | 電子フォーム入力システム、方法、プログラムおよび媒体 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002312391A (ja) * | 2001-04-09 | 2002-10-25 | Ntt Data Pocket Corp | 情報提供システム |
TWI242727B (en) * | 2003-12-12 | 2005-11-01 | Inst Information Industry | System and method of online education website establishment |
CN101216857B (zh) * | 2008-01-07 | 2010-07-14 | 苏州阔地网络科技有限公司 | 网页区块剪取、合并的方法 |
JP5241286B2 (ja) * | 2008-03-31 | 2013-07-17 | 株式会社日立製作所 | コールセンタ支援システム |
-
2010
- 2010-04-30 WO PCT/JP2010/057982 patent/WO2011135733A1/ja active Application Filing
- 2010-04-30 JP JP2012512617A patent/JP5267732B2/ja not_active Expired - Fee Related
- 2010-04-30 CN CN201080066257.7A patent/CN102844774B/zh not_active Expired - Fee Related
- 2010-04-30 US US13/642,013 patent/US20130205193A1/en not_active Abandoned
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001188641A (ja) * | 1999-12-22 | 2001-07-10 | Internatl Business Mach Corp <Ibm> | サーバクライアントシステム、ネットワークサーバ、クライアント、フォーム提供方法、記憶媒体、およびプログラム伝送装置 |
JP2003345697A (ja) * | 2002-05-27 | 2003-12-05 | Hitachi Ltd | 統合インタフェース提供方法、装置及び記憶媒体 |
JP2004272871A (ja) * | 2003-02-20 | 2004-09-30 | Hitachi Software Eng Co Ltd | Webコンテンツ内のデータ抽出配信方法およびシステム |
JP2005107635A (ja) * | 2003-09-29 | 2005-04-21 | Dainippon Printing Co Ltd | 電子フォーム入力システム、方法、プログラムおよび媒体 |
Also Published As
Publication number | Publication date |
---|---|
CN102844774A (zh) | 2012-12-26 |
US20130205193A1 (en) | 2013-08-08 |
JPWO2011135733A1 (ja) | 2013-07-18 |
WO2011135733A1 (ja) | 2011-11-03 |
CN102844774B (zh) | 2015-11-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5267732B2 (ja) | Webページの制御方法、計算機システム及びプログラム | |
JP4625337B2 (ja) | プロセス管理装置、プロセス管理方法及びプロセス管理プログラム | |
US8621421B2 (en) | Workflow visualization | |
KR101510355B1 (ko) | 데이터 관계의 그래픽 표현 | |
KR101368068B1 (ko) | 데이터베이스 구축 방법, 이를 실행하는 데이터베이스 구축 서버 및 이를 저장한 기록 매체 | |
Frischmuth et al. | Ontowiki–an authoring, publication and visualization interface for the data web | |
JPH10143574A (ja) | 業務遂行支援システム | |
JP2008546106A (ja) | セグメンテーション定義の作成 | |
US11611627B2 (en) | Action flow fragment management | |
US8548967B1 (en) | System for visual query and manipulation of configuration management records | |
US11537989B2 (en) | Dynamically controlling case model structure using case fragments | |
Gómez et al. | An approach to the co-creation of models and metamodels in Enterprise Architecture Projects. | |
US9250925B2 (en) | Adding inheritance support to a computer programming language | |
US20100121830A1 (en) | Identifying screen flows to support multiple entities and their diverse rules with a single application instance | |
JP5023038B2 (ja) | プログラム生成用プログラム及びプログラム生成装置 | |
KR101414795B1 (ko) | 인스턴트 웹 앱 생성 장치 및 방법 | |
JP6758167B2 (ja) | データ処理装置、データ処理方法及びデータ処理プログラム | |
JPH11288412A (ja) | 文書作成方法及びシステム及び文書作成プログラムを記録したコンピュータ読み取り可能な記録媒体 | |
JP7004930B2 (ja) | 情報処理装置と、その処理方法及びプログラム | |
US11275729B2 (en) | Template search system and template search method | |
JP2007026391A (ja) | 運用管理ルール流用装置、運用管理ルール流用方法およびプログラム | |
JP4624870B2 (ja) | デモ作成システム | |
JP2006276989A (ja) | ウェブ・ページ・コンテンツ生成システム | |
KR20150069987A (ko) | 웹 앱 조합 메타모델이 적용된 인스턴트 웹 앱 조합 시스템 | |
US20040070617A1 (en) | Method, system and article of manufacture for creating composite objects and executable user interfaces for these objects that utilize relationships represented by metadata |
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: 20130409 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130422 |
|
LAPS | Cancellation because of no payment of annual fees |