JP6487282B2 - ワークフロー管理システムにおいて実行するためのアプリケーションを開発する方法、及びワークフロー管理システムにおいて実行するためのアプリケーションの生成を支援する装置 - Google Patents

ワークフロー管理システムにおいて実行するためのアプリケーションを開発する方法、及びワークフロー管理システムにおいて実行するためのアプリケーションの生成を支援する装置 Download PDF

Info

Publication number
JP6487282B2
JP6487282B2 JP2015123694A JP2015123694A JP6487282B2 JP 6487282 B2 JP6487282 B2 JP 6487282B2 JP 2015123694 A JP2015123694 A JP 2015123694A JP 2015123694 A JP2015123694 A JP 2015123694A JP 6487282 B2 JP6487282 B2 JP 6487282B2
Authority
JP
Japan
Prior art keywords
workflow
application
phase
phases
transition
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.)
Active
Application number
JP2015123694A
Other languages
English (en)
Other versions
JP2016029558A (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.)
Asset Srl
Original Assignee
Asset Srl
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 Asset Srl filed Critical Asset Srl
Publication of JP2016029558A publication Critical patent/JP2016029558A/ja
Application granted granted Critical
Publication of JP6487282B2 publication Critical patent/JP6487282B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • 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
    • 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/103Workflow collaboration or project management

Description

本開示は、ワークフロー管理システムのためのアプリケーションを開発するための技術に関する。本ワークフロー管理システムはデータベースを含む。アプリケーションは、データベースとのインタラクションを含むワークフローを定義する。ワークフローは、ワークフローの複数のフェーズ、及び複数のフェーズの間の複数のトランジションとして表されることができる。
多くの場合、技術者、典型的にはプログラマは、業務オペレーションのアンサンブルを開発及び管理することが必要である。これらの業務オペレーションは、ワークフロー管理システムにおけるコンピュータ及びコンピュータシステム等の処理手段の助けを借りて、開発及び管理可能である。
例えば、顧客関係管理(CRM)の分野において、ビジネスプロセス及びそれらの基礎を成すロジックの自動化及び管理を補助するためのソフトウェアベースのシステムの採用は、よく知られている。そのようなシステムは、種々の企業機能(例えば、セールス、マーケティング、顧客サービス、及び技術サポート)の従業員の間のコミュニケーションを提供し、また、関連する販売、マーケティング、又はサポート処理を表すワークフローにおいて詳述するように、タスクを同期するためのメカニズムを提供する。そのようなシステムはまた、ペーパーレスデータエントリを促進し、ヒューマンエラーのリスクの低減を助け、またその他一般に業績を改善する。
通常の実施において、所望のワークフローは、マルチテナントデータベースに格納されたデータに基づいて動作するアプリケーションによって強制される。アプリケーションは通常、多くの場合ワークフロー管理システムによって提供されるプログラミングフレームワークを用いて、オブジェクト指向環境において設計される。プログラミングフレームワークは、ワークフロー管理システムに特有の高いレベルの構成ツールを用いた、アプリケーションの設計及び構成を可能にする。任意に、アプリケーションは、種々の組織又は企業からのユーザ、及び/又は種々の地理的位置において業務を行うユーザによって、各々1つ又は複数のサーバ、ワークステーション、又はモバイル機器を介して、使用可能であり且つこれらのユーザとインタラクトするように、設計される。ワークフロー管理システムの一例は、よく知られている「Salesforce.com」環境である。
アプリケーションの設計は通常、全体としてワークフローによって要求されるオペレーション及びデータ変換の所望のシーケンスを記述する処理マップはもちろん、分析フェーズの間に記載された設計ドキュメントに基づいている。アプリケーション開発者(例えばプログラマ)は、この情報を解釈して、実行されるべきタスクを予測して、そして上述の高いレベルの構成ツールを用いてワークフロー管理システムに特有の高いレベルの構成ツールの能力及び限界の範囲内で、適切なワークフローを定義する;必要な場合、アプリケーション開発者はまた、構成ツールにおける欠点の克服の補助を試みるカスタムオブジェクトを開発することができる。
しかし所望のワークフローの実施は通常、(ワークフロー管理システムの)高いレベルの構成ツールによって提供される設計ドキュメントと能力の解釈と、プログラマのスキルとに大きく依存している。従って、望まれるビジネスロジックを適切に与えるように、プログラマは注意しなければならない。例えば、アプリケーション開発者は通常、望まれるビジネスロジックに適合しない状態に入り込むことを避ける方法で、システムを設計する必要がある。更に、ビジネスプロセスの現在のロジック状態に応じて、特定の処理又は動作コンテキストに関連するオンスクリーンの情報を提供することが通常望まれる。例えば通常、ワークフロー内の所与のコンテキストに適切な、命令、チェックボックス、ドロップダウンメニュー、及び他のコマンド、又はサポート機能を表示することが望まれる。
要求されるコンテキスト上のサポートでは、通常、プログラマが、所望のワークフローの各ステップのために、エンドユーザが入手可能な各コマンド又はオプション(例えば、アクティブボタン)を、手動でコードする必要があるため、これらの制約内のアプリケーションの開発及び維持は両方とも、高価であり且つ時間がかかり得る。このプロセスは特に、処理ステージ間の数百の可能性のある複数のトランジション又は他の複雑なフロー構造を含むワークフローアプリケーションのために、骨の折れることである。
上述のコンテキストにおいて、例えば許されないトランジションをトリガする誤りを回避し、またプロセスビジネスロジックに従って特定のロジック状態に関連するユーザ画面と動作可能なボタンのコーディングを簡単にする等の、負担が比較的少ないそのような環境においてアプリケーションの開発及び維持を行う必要性と、前述の状況において開発者のタスクを簡単にする必要性とが組み合わさる。
これにより、特に、処理の各ステップに対して、コマンド及びユーザに利用可能にされる関連する動作のコーディングは構成タスクに移行可能であり、また上述の欠点が克服される。
1つ又は複数の実施形態は、上述の必要性を満たすことを目的とする。
種々の実施形態において、以下の請求項に特に記載の特徴を有するワークフロー管理システムにおいて実行するためのアプリケーションを開発する方法によって、そのような目的は達成される。
種々の実施形態はまた、ワークフロー管理システムにおいて実行するためのアプリケーションの生成を支援する装置、並びにコンピュータプログラムプロダクトに関する。ここで、当該コンピュータプログラムプロダクトは、少なくとも1つのコンピュータのメモリに読み込み可能であり、また少なくとも1つのコンピュータ上で本プロダクトが実行されるときに本方法のステップを実施するためのソフトウェアコード部分を含む。本明細書において、コンピュータプログラムプロダクトへの言及は、複数の実施形態に係る方法の実施を調整するように処理システムを制御するための命令を含むコンピュータ読み取り可能な媒体への言及に等価であることが意図される。「少なくとも1つのコンピュータ」への言及は明らかに、現在の複数の実施形態がモジュール形式及び/又は分散形式で実施され得るという可能性を強調することが意図される。
特許請求の範囲は、複数の実施形態に関連して本明細書において提供される技術的な教示の肝要な部分を形成する。
添付の図面は、本明細書において説明される原理の種々の実施形態を示し、明細書の一部である。示される複数の実施形態は単に例であり、特許請求の範囲を限定しない。
仮想のワークフローの例示的な実施例を示すフローチャートを示す。 図1Aのワークフローを表す状態図である。 例示的なマルチテナントデータベース環境の図である。 ワークフローを設計する方法の一実施形態を示す。 ワークフローを設計する方法の別の実施形態を示す。 例示的な実施形態に係る、フェーズ及びトランジション特有の定義をサポートするオブジェクト構造を生成する方法のフロー図である。 例示的な実施形態に係るケースオブジェクトを定義するために使用されるユーザインタフェースを示す。 ケースオブジェクト構造を示す。 例示的な実施形態に係るケース管理オブジェクトを構成するために、特にケース管理オブジェクトのためのフェーズフィールドCFを定義するために使用されるユーザインタフェースを示す。 例示的な実施形態に係る図7のケース管理オブジェクトが利用可能なフェーズを定義するために使用されるユーザインタフェースを示す。 フェーズ説明(右の列)及び対応するフェーズコード(左の列)のテーブルを表す。 例示的な実施形態に係るフェーズトランジションを定義するために用いられるユーザインタフェースを示す。 図10のユーザインタフェースを示す。しかしこの場合において、いくつかの許可されたフェーズトランジションを定義する動作タイプによって追加される方法におけるユーザインタフェースを示す。 図10及び11のユーザインタフェースに関連して用いられるポップアップダイアログを示す。 例示的な実施形態に係るフェーズ定義を編集するために用いられるユーザインタフェースを示す。 フェーズ定義と関連付けられたユーザインタフェースを示す。このインタフェースは図13の「新しいフェーズ」ボタン340の選択に応答して呼び出される。 例示的な実施形態に係る、ケース詳細を提供するオブジェクトのレイアウトを示す。 トランジションテーブルを示す。 例示的な実施形態に係る第1のトリガのオペレーションの方法のフロー図である。 例示的な実施形態に係る第2のトリガのオペレーションの方法のフロー図である。 例示的な実施形態に係る、試みられたトランジションを認証する方法のフロー図である。
工業上の発明の名称:「ワークフロー管理システムにおいて実行するためのアプリケーションを開発する方法、及びワークフロー管理システムにおいて実行するためのアプリケーションの生成を支援する装置」
出願人:Asset S.r.l., of Italian nationality, Via Suardi 24 24124 BERGAMO (Province of BERGAMO)
指定された発明者:Lorenzo COSLOVI, Alessandro PLEBANI
提出日:2014年6月20日
本開示は、ワークフロー管理システムにおいて実行するためのアプリケーションを開発する方法、装置、ソフトウェア、及びシステムを提供する。一実施形態において、これらの技術は、アプリケーション開発インタフェースを提供するステップを含む。ここで、アプリケーション開発インタフェースは、アプリケーション開発者による処理フェーズの定義を可能にする。本アプリケーション開発インタフェースはまた、定義された複数のフェーズの間の許可された複数のトランジションをアプリケーション開発者が定義するためのトランジションテーブルを、アプリケーション開発者に提示する。
アプリケーション開発インタフェースは、自動の動作パラメータ又は手動の動作パラメータを用いて各トランジションを記述するように、実装可能である;手動の動作パラメータが選択された場合、ユーザインタフェースは、データベースにエンドユーザがアクセスするために満たされるべき1つ又は複数の条件をアプリケーション開発者が定義するためのメカニズムと、エンドユーザが利用可能なリンク、コマンド、及び他のオプションをアプリケーション開発者が定義するためのメカニズムとを提供する。アプリケーション開発インタフェースは、これらの定義に基づいてメタデータを生成し、次いでこのメタデータを、所望のワークフローと関連付ける。メタデータはワークフロー実行の間に呼び出されて、任意の所望の条件及び従って所望のコンテキストに束縛される方法で、複数のトランジション及びデータベースとのエンドユーザインタラクションを拘束する。
明らかであるように、開示される技術は、所望のワークフローの開発、維持、及び修正を簡単にする。すなわち、例えば、開示される技術は、(例えば上述のメタデータを用いて)複数の状態及び複数のトランジションを表して、検討されたワークフローの各ステップに対してコンテキスト特有の条件を強制するための設計メカニズムを提供する。後述の特定の実施のために、アプリケーション開発インタフェースは、コマンド、ボタン、メニュー、及び他のワークフロー情報を特定のフェーズ及び/又はトランジションと明確に関連付けて、処理がどのように実施されるかをアプリケーション開発者が理解でき、且つ特定のワークフローステップが、必要とされる特徴と、又は反対に必要以上の又は不適切な特徴と関連付けられたかをアプリケーション開発者が理解できる、相対的に直接的なメカニズムを提供する。
後述の特定の複数の実施形態において、ワークフロー設計は、顧客関係管理(CRM)の分野のコンテキストにおいて例示されることに留意されたい;しかし本明細書において説明される技術は、他の分野においても適用可能であることが理解される必要がある。
また、所望のワークフローのオペレーションを定義する「アプリケーション」について種々の言及がされる。そのようなアプリケーションは、(処理を実行するに十分なコードを意味する)ソフトウェアアプリケーションであることが可能であり、また、特定のワークフローを実装するためのワークフロー非依存型のソフトウェア(例えば、一般的なワークフロー管理システム)によって使用される構成情報であることが可能である。例えば、全ての実施形態に必須ではないが、後述の一実施形態において、そのような構成情報はメタデータを含むことができる。従って、一般的なワークフロー管理システムは、共通のデータベースに対して適用される複数のワークフローをサポートすることができ、各ワークフローは、それ自体のメタデータのセットによって定義される。メタデータの各セットは、各々のワークフローを実装する方法で、一般的なワークフロー管理システムによる実行を効果的にカスタマイズする。
図1Aは、所望のオペレーションが3列にわたって分配された、仮想のワークフローを示すために用いられる例示的な処理マップ100を示す。特定のワークフローのためにアプローチされる可能性のある設計処理の理解のために、このワークフローがまず提示される。このワークフローは通常、ひとたび生成されると、図2に関連して後述されるように、ハードウェア及びソフトウェアを有するワークフロー管理システム上で実施される。
上述の3つの列はそれぞれ、CRMソフトウェア116、ドキュメントサービス117、及び請求サービス118によって実行されるオペレーションを表わす。
符号101は処理の開始を示し、一方で符号102はドキュメントを識別する目的のためのユーザデータの手動でのエントリを示す。符号102によって参照されるステップは、ユーザの介在を必要とし、従って図1Aにおいて、小さな円で囲まれた「M」から成る記号を伴う方法で表示される。図示される例において、符号103はデータエントリを確認するステップを示し、このステップはまたユーザの介在を必要とすることが示される。
図示の例において、ドキュメント選択のユーザ確認に続いて、選択されたドキュメントは印刷される。この趣旨で、ユーザ確認(103)は、ドキュメントサービス117を効果的に呼び出すオープン統合ステップ104をトリガする。この統合は以下のことを可能にする:(a)ドキュメントを抽出すること(105)、(b)ドキュメントを印刷すること(106)、及び(c)印刷オペレーションの結果をCRMソフトウェア116に返すこと(107)。この結果は、ステップ108において、CRMソフトウェア116によって受信される;ステップ109において印刷オペレーションが成功したと判断された場合、もう1つのオープン統合ステップ112は次いで実行されて、クライアントがこの場合適切に変更された状態で請求サービス118を起動する(ステップS113)。請求イベントに続いて、制御は次いで処理終了オペレーション114にパスされる。印刷オペレーションが成功しなかった場合、CRMソフトウェアは、ステップ110において、結果が修正可能であるかを判断する。結果が修正可能でない場合、制御は処理終了オペレーション114にパスされる。しかし、修正が可能な場合、ステップ111が次に実行されて、ユーザによる手動での修正を許す;制御は次いで、印刷オペレーション105〜107を再び試みるために、オープン統合ステップ104にパスされて戻される。
提示された仮想のワークフローを要約すると、図1Aのマップ100は、符号101〜114によって表される複数の状態要素と判断要素を示す。設計処理の間、アプリケーション開発者はこれらの要素を分析して、設計選択を行いそれらをフェーズF1〜F5としてグループ化する。図1Aに示す例において、アプリケーション開発者は、要素101〜114を5つのフェーズF1〜F5に編成することが仮定されるべきである。トランジションデスクリプタT12,T23,T24,T42,及びT45は、これらのフェーズの間の、望まれる又は許可された複数のトランジションを定義する。例えば、トランジションT12は、フェーズF1とF2の間(すなわち、ステップ103からステップ104へ)のトランジションを識別する。図1Aの例はワークフローの一例を単に提供する、ということに留意されたい。すなわち、ワークフローはCRM以外の分野に適用可能であり、より多い数の、又はより少ない数の状態、判断、フェーズ、トランジション、サービス、又は関連する処理から構成されることが可能である。
また、複数のフェーズは実際には、これらの状態の間のトランジションを表すトランジション符号「T」を用いて、状態機械の有限の又は論理的な状態と同一視可能であることに留意されたい。図1Bは、この関係を示す状態図を示す。各フェーズは、単一の論理的状態又は複数の論理的状態からなるグループと一致することが可能であり、また各フェーズは、所与のフェーズから後続の(論理的に許される)フェーズへのトランジションが、動作に応答して排他的に起こることによって特徴付けられる。(図1Bにおいて文字「M」を有するトランジションによって表されるように)手動の動作は通常、人間の動作であり、その一方で(図1Bにおいて文字「A」を有するトランジションによって表されるように)自動の動作は通常、処理の実行の間、特定のイベント、条件、又は基準に応じて、ソフトウェアアプリケーションによって自動的に呼び出される。
図2は、ワークフロー管理が使用される可能性があるマルチテナントオンデマンドデータベース環境10の例示的なアーキテクチャを示す。図2に示すように、複数のエンドユーザシステム12は、ローカル又はワイドエリアネットワーク14を介して、ワークフロー管理システム16に接続される。ワークフロー管理システム16は、1つ又は複数のプロセッサ(図2においては別々に示されていない)と、アプリケーションプラットフォーム18と、ネットワークインタフェース20と、テナントデータストレージ22と、システムデータストレージ24と、プログラムコード26と、メモリ28と、を含む。ワークフロー管理システム16は、相互に排他的な方式又は共有される方式で、協働してタスクを実行する1つ又は複数の機械として、例えば1つ又は複数のサーバ、パーソナルコンピュータ、携帯型機器、又は他の処理手段として、実装可能である。図示される実施形態において、所望のワークフローは、プログラムコード26(例えば、アプリケーション及び/又は関連のあるメタデータ)に従って定義される。そのようなプログラムコード及び/又はメタデータは、ワークフロー設計ソフトウェア43の助けを借りて、1つ又は複数のマシン42上で業務を行うアプリケーション開発者によって一部において設計される。ワークフロー設計ソフトウェア43は、実行時に(複数の)マシン42のオペレーションを指示する方法で構造化された、複数の命令を備える;これらの命令は、非一時的機械読み込み可能媒体上に格納されるものとして図示される。ワークフロー定義ソフトウェア43は、上述のように、(複数の)マシン42に、アプリケーション開発インタフェースをアプリケーション開発者に提示させて、フェーズ、トランジション、動作タイプ、コマンド、及び関連付けられた条件、並びに関連付けられたメタデータをアプリケーション開発者が定義することを可能にさせる。なお、(複数の)マシン42及びワークフロー設計ソフトウェア43は(図2においては別々に図示されるが)任意に、ワークフロー管理システム16又は任意のエンドユーザシステム12の統合的な一部である;すなわち、実施形態に応じて、エンドユーザはまた、アプリケーション開発者、及び/又はテナントであることが可能であり、設計及びワークフロー実行は、エンドユーザシステム12、ワークフロー管理システム16、又は(複数の)マシン42の任意の置換又は組み合わせを用いて実行可能である。
関連のある定義及びメタデータがひとたび所有されると、ワークフロー管理システム16は次いで、ワークフロー管理システムの実行時の間、メタデータによってインスタンス化された規則を強制する(すなわち、これによって、エンドユーザがテナントデータストレージシステム22とインタラクトする方法を拘束する)。
各エンドユーザシステム12は、所望のワークフローのエンドユーザがデータベースにアクセスすることを可能にする任意のマシン又はシステムであることができる。例えば、エンドユーザシステム12のうちのどれもが、ハンドヘルドのコンピュータ装置、携帯電話、ラップトップコンピュータ、ワークステーション、及び/又はコンピュータ装置のネットワークであることができる。上述のように、エンドユーザシステム12の一部又は全ては(複数の)マシン42と組み合わせられることができ、すなわち、一実施形態においてエンドユーザが本明細書における教示に従ってエンドユーザ自身のワークフローを設計及びカスタマイズすることができるように(複数の)マシン42と組み合わせられることができる。「エンドユーザ」は、仲介業者、サービス会社、及びそのデータベースに格納されるデータとインタラクトする任意の他のエンティティはもちろん個人を含む、マルチテナントデータベース環境においてデータを操作するいかなる者をも含むことができる;例えば、エンドユーザは、対応するエンドユーザシステム12を介してオンデマンドデータベースサービスにアクセスするサードパーティアプリケーション開発者又はソフトウェアプロバイダを含むことができる。同一のアクセス及び許可及び機能を用いて同一のデータを操作する1人又は複数人のエンドユーザからなる各グループは一般に「テナント」と呼ばれ、すなわち、テナントが個々のエンドユーザ又はエンドユーザのグループ(販売会社の従業員等)である可能性があることができるように、「テナント」と呼ばれる。最後に、本明細書において用いられる「アプリケーション開発者」は通常、アプリケーションを設計又はカスタマイズして(関連のあるデータアクセスを含む)特定のワークフローを提供する者である;これらの用語は必ずしも相互に排他的である必要がない点に再び留意されたい。例えば、複数のエンドユーザが自身の各々のワークフローを任意に設計する実施形態において、各エンドユーザは、テナントであることができることはもちろん、アプリケーション開発者であることもできる。他の複数の実施例は明確に可能である。
図2に示すように、各エンドユーザシステム12は、ネットワーク14を介して、ワークフロー管理システム16とインタラクトし得る。ワークフロー管理システム16は、1つ又は複数のオンデマンドデータベースサービス、1つ又は複数のアプリケーション、及び任意のサポートソフトウェアを提供する。以下の説明において、実施例は単一のワークフローアプリケーションを前提とするが、単一のマシン又は複数のマシンの集合上で動作する複数のそのようなアプリケーションであることが可能であることが理解されるべきである。特定のワークフローに対するテナントは、ワークフロー管理システム16又はデータベースシステムの構築及び/又は維持に必ずしも関与する必要はなく、ワークフロー管理システム16又はデータベースシステムは、むしろ一実施形態においては、(複数の)マシン42を使用する1人又は複数人のアプリケーション開発者によって設計及び維持される。データベースは、データベースシステムに対してアクセスを要求するエンドユーザによって「オンデマンド」で利用可能である。アプリケーションに応じて、オンデマンドデータベースサービスは、1つ又は複数のテナントからの情報を、共通のデータベースイメージの複数のテーブルに格納することができ、それによってマルチテナントデータベースシステム(MTS)を形成することができる。データベースイメージは、個々のデータベース又はそれらの構成オブジェクトに対して情報の格納と検索を実行するために使用されるリレーショナルデータベース管理システム(RDMS)又はその等価物を有する、1つ又は複数のデータベースを含むことができる。
アプリケーションプラットフォーム18はフレームワークを提供し、ここでこのフレームワークは、ワークフロー管理システム16の各アプリケーションが動作することを可能にし、またそのような各アプリケーションの任意的な生成及び維持を可能にする。アプリケーションプラットフォーム18はまた、サードパーティソフトウェアアプリケーション(当該アプリケーションは、ワークフロー管理システム16又は関心の特定のワークフローアプリケーションの構成要素を含む場合があり、又は含まない場合がある)をホストする。実行時、各アプリケーションは、ワークフロー管理システム16の処理空間において1つ又は複数の仮想マシンとしてインスタンス化可能であり、種々のデータベースオブジェクトの、関連する生成、削除、及び操作を可能にする。
異なる複数のテナントは、テナントのセキュリティ又は許可レベルに応じて、また設計されるべき特定のワークフローに応じて、アプリケーション及びデータベース情報へのアクセス又はこれらの修正に関する異なる能力を有することができる。これらの能力及び関連するセキュリティ対策に対するサポートは通常、マシン42を使用するアプリケーション開発者によって、所望のワークフロー内において設計されるが、個々のアクセス許可の仕様はワークフロー管理システムのプロバイダ又は管理者に留保可能である。一例として、第1のテナントにデータエントリ能力を与え、第2のテナントに対してはこれらの能力を認めない(そして他の能力を与える)ことが望まれる場合がある;アプリケーション開発者はアクセスの複数のクラスを提供でき、アプリケーション開発者又はその他の者(例えば管理者)のいずれかはこの場合、特定のテナントを、上記複数のクラスのうちの特定の1つに割り当てる。この区別に関連して、ワークフロー管理システムのメモリ28は、個々のテナント及び/又はエンドユーザの処理空間、並びにテナント管理処理空間を含むことができる。テナントデータベース22は、物理的配列又は論理的配列のいずれかに基づいて、個々のエンドユーザ格納領域に分割可能である。各格納領域内において、ストレージ及び関連のあるアプリケーション構成データ(任意のテナント特有のメタデータを含む)は同様に、各テナントに対して割り当て可能である。
ネットワーク14は、LAN(ローカルエリアネットワーク)、WAN(ワイドエリアネットワーク、例えばインターネット)、無線ネットワーク、ポイントツーポイントネットワーク、スター型ネットワーク、トークンリング型ネットワーク、ハブ型ネットワーク、又は任意の他の適切な構成であることができる。典型的なアプリケーションにおいて、エンドユーザシステム12及び/又はマシン42は、通信制御プロトコル(例えばTCP/IP)、ハイパーテキスト転送プロトコル(HTTP)、ファイル転送プロトコル(FTP)、及びその他のもの等の、種々のプロトコルを用いて、システム16と通信する。ネットワークインタフェース20は、アプリケーションプラットフォーム18、テナントデータストレージ22、及びシステムデータストレージ24と協働する1つ又は複数のHTTPアプリケーションサーバ1000として実施可能である。アプリケーションサーバは、TCP/IP等の種々のネットワーク接続及びプロトコルを用いて、アプリケーションプラットフォーム18に接続し得る。
HTTPが使用される実施例において、エンドユーザシステム12は通常、ワークフロー管理システム16におけるHTTPサーバへHTTPメッセージを送信し、また当該HTTPサーバからHTTPメッセージを受信する、HTTPクライアント(例えばウェブブラウザ)を含む。各エンドユーザシステム12及び/又はアプリケーション開発者のマシン42はまた、通常、後述する種々のページ、フォーム、アプリケーション、及び他の情報と共にディスプレイ(例えば、モニタスクリーン、LCDディスプレイ等)上にブラウザによって提供されるグラフィカルユーザインタフェース(GUI)とインタラクトするための1つ又は複数のユーザインタフェース機器、例えばキーボード、マウス、タッチスクリーン、ペン、又は同様のもの等を含む。例えば、ユーザインタフェース機器は、ワークフロー管理システム16によってホストされるデータ及びアプリケーションにアクセスするために使用可能であり、格納されたデータに対して検索を実行するために使用可能であり、またその他、テナント、エンドユーザ、管理者、アプリケーション開発者、又は他のエンティティに対して提示され得る種々のグラフィカルユーザインタフェース(GUI)ページとのインタラクションを可能にするために使用可能である。
アプリケーションプラットフォーム18は、ユーザインタフェース(UI)30及びアプリケーションプログラミングインタフェース(API)32を含み、エンドユーザ、テナント、管理者、及び/又はアプリケーション開発者が、任意にエンドユーザシステム12及び/又は(複数の)マシン42を介して、ワークフロー管理システム16とインタラクトすること可能にする。アプリケーションプラットフォーム18はまた、自動化された又は部分的に自動化された手段でアプリケーションの生成と管理をサポートするユーティリティを含み、例えば、アプリケーション開発者が、1つ又は複数のテナント処理の一部として実行される保存ルーチンを用いて、メタデータをテナントデータベース(及び/又は、必要に応じて、各テナントに特有のストレージ)に保存することを可能にする。一実施形態におけるそのような処理の呼び出しは、Apexを用いてコードされ、API32に対してプログラミング言語形式のインタフェース拡張を提供する。そのような呼び出しは、仮想マシンを介した特定のテナントに対するアプリケーションメタデータの検索及び関連のあるメタデータの実行を管理する、1つ又は複数のシステム処理によって検出可能である。
一例として、あるテナントは、販売員を雇用する会社であって、個々のエンドユーザ(例えば販売員)がワークフロー管理システム16を使用して、共通の方法でデータベースとインタラクトすることによって会社の販売プロセスを管理する、会社であり得る。このインタラクションの一部として、各エンドユーザは、全て1つ又は複数のエンドユーザシステム12を介してワークフロー管理システム16にロギングすることによって、そのような会社の販売プロセスに適用可能な、連絡先データ、見込み客(リード)データ、顧客追跡(フォローアップ)データ、業績データ、目標及び進捗データ、及びその他のものとインタラクトし得る。このコンテキストにおける種々のエンドユーザシステム12はアプリケーションサーバ1000と通信して、ワークフロー管理システム16からのシステムレベル及びテナントレベルのデータを要求及び更新する;これは、(例えば、所望の情報にアクセスするように設計された1つ又は複数のSQLクエリを用いて)1つ又は複数のクエリをシステムデータベース22及び/又はテナントデータベース24に要求し得る。
各データベースは一般に、予め定義された複数のカテゴリに適合されるデータを含む、論理テーブルのセット等のオブジェクトの集合とみなされることができる。各テーブル及び/又はオブジェクトは一般に、視認可能なスキーマにおいて1つ又は複数の行、列、レコード、又はフィールドにおいて論理的に配列された1つ又は複数のデータカテゴリを含む。次にテーブルの各行、列、又はレコードは、複数のフィールドによって定義された各カテゴリに対するデータのインスタンスを含む。例えば、テーブルは、顧客、製品、販売価格、日付等の情報のためのフィールドを含む購入注文を記述し得る。
いくつかのマルチテナントデータベースシステムにおいて、実施に依存して、テナントは、例えば標準的なオブジェクトのためのカスタムフィールドを生成することによって、カスタムオブジェクトを生成及び格納すること、又は標準的なオブジェクトをカスタマイズすることが可能とされることができる。また、いくつかのデータベースシステムにおいて、エンドユーザ及び/又はテナントは、ワークフローアプリケーションを生成、ポスト、及び交換する(例えば、特定のワークフロー又は関連するメタデータを交換する)機能が提供される;例えば、これは共有ディレクトリ、電子掲示板、又はソーシャルネットワークスキームを用いて実行可能である。更に別の実施形態において、複数のワークフローはネストされることができ、例えば、個々のテナントが第1のワークフローに従ってマルチテナントデータベースとインタラクトしながら、また第1のワークフローの特定のステップ又はコンテキスト内で、第2のワークフローを設計及び利用する機能が複数のテナントの各々に提供されながら、特定の処理を実行することが可能である。
アプリケーションは任意に、データモデル、ユーザインタフェースオペレーション、及び/又はビジネスロジックを定義するマルチテナントデータベースセットアップデータ(例えば、メタデータ)のグループ若しくはパッケージとして実施可能であることに留意されたい。すなわち、上述のように、そのような実施形態において、ワークフロー管理システム16は、実行ソフトウェア及びデータベースを提供し、その一方でワークフローを定義する特定のソフトウェアアプリケーションは、ワークフロー管理システムの制御構造を用いて、前記データベースのデータにアクセスし、当該データを修正し、また当該データを表示するための構成情報を提供する。アプリケーション開発者は、特定のアプリケーションを定義するために必要なセットアップデータ(例えば、カスタムオブジェクト定義、ページレイアウト定義、ワークフロー規則、等)の一部又は全てを含むメタデータ「パッケージ」として、特定のアプリケーションを定義する。各アプリケーションはまた、(Apex又はjavascript(登録商標)等の)種々の言語で記述されたコード、及び/又はワードプロセッサドキュメント等のファイルを含むことができる。メタデータベースの構造は、全ての実施のために必須ではなく、例えば、別の実施形態において、各アプリケーションはむしろ主として、自己完結型の実行ソフトウェアとして実施可能であることに留意されたい。
一実施形態において、アプリケーション開発者及び/又はテナントは、当該アプリケーション開発者及び/又はテナントの複数のアプリケーションを、中央ディレクトリに登録することができる。ディレクトリは、パブリック部分及びプライベート部分を任意に含むように実装可能であり、あるいは書き込み(又は修正)許可を有して又は有さずアプリケーションが選択的に共有可能である方法で構造化可能である。そのようなディレクトリは、例えばJSPページ及びJava(登録商標)クラスを用いて、構築可能である。そのような構造は、他のエンティティが、公開されたアプリケーションを閲覧すること、及び他者によって設計されたアプリケーションを選択的に利用することを可能にする。許可は、共通のマルチテナント環境における複数のテナントに対して、任意に制限可能である。他の複数の実施形態において、許可はまた、共通のマルチテナント環境のテナントではないエンティティに対しても、拡張可能である。
紹介されているワークフロー管理システムのための一般的な環境を用いて、本開示は次に、ワークフローの設計及び実装に関する更なる詳細を提供する。
より具体的には、前述のように、アプリケーション開発者は、ワークフロー実行の間にコンテキスト特有の規則を呼び出すためにメタデータが使用される方法で、ワークフローの自動化された又は部分的に自動化された開発を促進するアプリケーション開発インタフェースが提供されることができる。そのような処理の第1の実施形態は一般に、図3Aにおいて符号50で表される。アプリケーション開発者は設計機能を起動し、ワークフロー設計ソフトウェアによってアプリケーション開発インタフェースが提供される(符号52)。上述のように、アプリケーション開発者は、単独で又は他と協働して、所望のワークフローのフェーズ及び関連する許可されたトランジションを定義する。インタフェースは、各トランジションと関連付けられる複数の動作の定義を可能にするトランジションテーブルへのアクセスを提供する(符号54)。より具体的には、トランジションテーブルは、動作パラメータを用いて、ワークフローの任意の2つのフェーズの間の許可されるべき各トランジションに対して追加され、ここで各動作パラメータは自動(A)の動作タイプ又は手動(M)の動作タイプのいずれかを表す。上述の自動(A)の動作タイプは、ワークフローの実行の間にワークフロー管理システムによって自動的に呼び出されて処理されるべき、動作タイプである。その一方で、手動(M)の動作タイプは、通常エンドユーザによる、ある種類(タイプ)のユーザ介在を要求する。各特定される動作タイプに応じて、判断ブロック56で示すように、ワークフロー設計ソフトウェアは、例えばポップダウンメニュー、チェックボックス、又は類似の設計機能を介して、手動(M)の動作タイプ(及び、任意に、自動(A)の動作タイプに対する更新機能等の動作)のために提供されるべきデータベースアクセスのために優先する複数の条件を、ユーザが定義することを可能にする;これについては以下において更に例示される。アプリケーション開発者は、この時点において、トランジションテーブルにおいて生成された、生成されたトランジションを保存することが許可されるか、代わりにそのようなトランジションはバルク処理として保存されるかかのいずれかである(符号60)。生成又は修正されたトランジションテーブルに基づいて、符号62で示すように、メタデータは生成される。最後に、(そのようなメタデータを含む)生成されたワークフローは、機能ボックス64によってリレーされるように、非一時的機械読み込み可能媒体66上に格納される。一実施形態では、オプションの処理ブロック68で表すように、方法は、例えばネイティブソフトウェアを構成することによって、及び/又は本明細書において検討される技術に従って生成された顧客ワークフローの実行を可能にする拡張を生成することによって、レガシーのワークフローアプリケーションをカスタマイズして、説明される技術に従って設計された新たなワークフロー構造をサポートすることを含むことができることに留意されたい。
図3Bは、ワークフローを表す、アプリケーションを設計する方法の別の実施形態200を示す。ここでアプリケーションは、複数のフェーズF及び複数のトランジションTの観点から定義される。この実施形態の目的のために、ケースオブジェクトは、必要に応じて適切なカスタマイズを用いて従来のワークフロー管理システム(例えば、salesforce.com)によって提供されるプログラミングフレームワークを用いて、生成及び操作されることとなることが仮定されるべきである。図3Bにおけるブロック205によって全体として示すように、このカスタマイズは任意に、関連する構成を用いて、ワークフロー管理システム上へのソフトウェアのインストールによって、実行可能である。このインストール/実行は機能ブロック208によって表され、これは非一時的機械読み込み可能媒体43に対する命令によって行われる。結果として得られる修正は、以下の点をもたらす:
−ワークフロー管理システムにおける1つ又は複数の追加のソフトウェアモジュールのインストール;特定のオブジェクトベースの実施形態において、これは、符号300によって表される、フェーズ管理オブジェクト300、並びに関連するユーザインタフェース及びトリガを含む。
−特に要求管理オブジェクト(例えば、以下の検討において例示される「ケース」オブジェクト)の、プログラミングフレームワークのツールのカスタマイズ;このオブジェクトは、図3Bにおいて符号500で表される。
以下の概念は、この実施の理解に有用であろう。
−オブジェクト:マルチテナントデータベースにおける、ワークフロー管理と関連付けられた特定の単一的な構造。ここで、この単一的な構造は、格納又は参照されることが可能であり、またデータ、1つ又は複数の機能、及び/又はロケーションのポインタを通常含む。従業員環境に関する種々の実施形態において、オブジェクトはまた、そのような従業員環境においてデータがどのように表示されるかを定義するレイアウトに、すなわちページ及び場合によっては他のグラフィック属性に関するデータの配列に、関連付けられることが可能である。
−ケース:マルチテナントデータベースの特定のレコード、例えば、個々の顧客サービス要求及び関連する「チケット」を追跡するために用いられるデータベースエントリ;各新たなケースは、オブジェクト(すなわち、特定の要求管理オブジェクト)として表される。
−記録タイプ:共通のオブジェクトによって表されることができる種々のタイプ(種類)のチケット又はアイテムの間を区別することを可能にする、ワークフロー又はワークフロー管理システムに特有の区別;(フィールドがページにおいて配置される場所等の)種々のレイアウト及び種々のピックリストセットは各々、異なる記録タイプと関連付けられることが可能である;例えば、後述の1つの記録タイプ(「苦情」)は顧客の苦情を追跡するために使用され得、その一方で異なる記録タイプ(「再印刷」)は、特定のドキュメントをオーダーするための顧客要求を追跡するために使用され得る;記録タイプはときとして、ケースオブジェクト上にマップされる各異なるビジネスプロセスに特有である。
−ピックリスト:対応するオブジェクトに対する選択の(開発者によって定義された)変数セットを保持する選択メカニズムのタイプ(種類)
−ビジュアルフォース:Apexを用いて記述された動的ページのタイプ(種類);そのようなページは、ユーザインタフェースの一部、例えばコマンドボタンの変数選択、の動的表示を効果的にプロキシするために挿入可能である。
−トリガ:特定のイベントに応答して、例えばレコードにおけるエントリの変更(例えば、エントリの追加、更新、又は削除)行われるとき、自動的に実行されるコード;トリガは、例えば保存処理のとき、不整合(エラー)を検出して、ワークフローアプリケーションのインテグリティ及び/又はデータベースに格納される情報を維持することを補助するために、用いられることができる。
以下の検討において、CRM環境において根ざしている例示的な仮想のワークフローを用いて、ワークフロー管理システムにおけるオブジェクト(例えば、レガシーのワークフロー管理システムにおいて用いられる標準的なオブジェクト、又は新たなオブジェクト)の構成について説明する。従って、検討対象のオブジェクトのタイプは通常、顧客要求オブジェクトであり、特に、顧客からの特定のサービス要求をドキュメントに記録するために用いられる「ケース」オブジェクトであり得る。各ケースオブジェクトは実際には、顧客要求を最初に対応処理するエンドユーザによって生成され得るが、この検討の目的のために、ワークフロー設計のために提供されるカスタマイズによって、このオブジェクトのフォーマット(例えばデータ構造)の修正を行うことができ、本開示により提供されるワークフローアプリケーション設計原理が補助される。以下に言及されることとなるこのオブジェクトの特定のフィールドは「記録タイプ」フィールドであり、当該「記録タイプ」フィールドは、特定の要求が「苦情」、「再印刷」の要求、及びその他のもののいずれであるかを示す顧客要求を最初に対応処理するエンドユーザによって追加される。本明細書において検討される技術は例えば、図1A及び1Bのワークフローを実施するアプリケーションを設計するために用いられることができ、この例示的なワークフローは、以下に提供されるナラティブの一部において用いられることとなる。以下の検討は(顧客関係管理オブジェクトの特定の例であるとして)「ケース」オブジェクトに焦点を合わせるが、もちろん、開示される技術を限定することなく、(例えばSalesforce.comによって提供される)レガシーのワークフロー管理システムによって使用される任意のオブジェクトを含む他の種類のオブジェクトにも適用可能であるということに留意されたい。
処理208は、1つ又は複数の追加のソフトウェアモジュール(300)のインストール及び要求管理オブジェクト(例えば「ケース」オブジェクト)500のカスタマイズをもたらすことが上述された。(通常、予備的な処理として一度実行される)複数の追加のソフトウェアモジュール300は、上で説明したアプリケーション開発インタフェース、並びに関連する特定の画面、ツール、及びインタフェースを追加して、フェーズ及び関連するトランジションの定義を促進する。この促進は、後述のトランジションマトリクス、並びに関連付けられたトリガ、機能、及び関係する一貫性検査を用いて、一部において達成される。要求管理オブジェクトのカスタマイズは、「フェーズ」フィールドCFの追加を示す。すなわち、上述のように、いくつかの実施形態において、メタデータは、特定の規則及び条件の、特定のトランジションとの関連付けを可能にする方法で、生成可能である;従来のワークフロー管理システム(例えば、salesforce.com)と適合する方法でこの処理を促進するために、追加のフェーズフィールドは、セットアップにおいて、ケースオブジェクトと関連付けられてもよい(そのようなケースオブジェクトによってサポートされる任意のネイティブフィールドに加えて)。フェーズフィールドは、それが、各ケースオブジェクトの、単一の状態との関連付け又は代わりに複数の論理的状態のグループとの関連付けを可能にする方法で、定義される。
インストール/カスタマイズオペレーション205に続いて、特定のワークフローを設計する処理の一部として、所与のデータモデルを代表するオブジェクト(例えば、CRMアプリケーションのためのケース要求管理オブジェクト)を定義するための、セットアップオペレーション206が実行される。このオペレーションは、図4に示すフローチャートを参照することによって、より良く説明される。
図4を簡潔に参照し、このセットアップオペレーション206は、(CRMアプリケーションのための)要求管理オブジェクトのためのフォーマットを決定し、特にそのフィールド(例えば許可された記録タイプ、フェーズ、及びその他のもの)を定義する。第1のステップ207は、ケースオブジェクトをフォーマットする。このステップは、データを、ワークフローの特定の状態に対応する特定のレイアウト及びデータビュー等の、特定のデータインタフェースと関連付け可能なオブジェクト特有のフィールド及びアプリケーション特有のフィールドに編成するステップを含む。このフォーマットはまた、そのようなデータインタフェースへのコードリファレンスを定義するために使用されることとなる更なるフェーズフィールドCFと、トランジションとフェーズの一貫性を確保するために特定の節目(マイルストーン)において自動的に実行されるべきトリガ(例えば、TR1及びTR2)と、を自動的に含むように構造化される。
第2ステップ210は次いで実行されて、実施されているワークフローに特有のテンプレートを選択して、例えば、実施されるべきワークフローのタイプに特有の、任意のデフォルトのレイアウト/データインタフェース及び許される選択値、並びにその他のものを各フィールドに追加する。例えば、この第2ステップ210は、特定のCRMワークフローと共に使用可能な、予め定義されたカテゴリ(例えば、「苦情」、「再印刷」等)のデフォルトのセットを「記録タイプ」フィールドに追加するために用いられることができる。この選択はまた、設計中のオブジェクトを、以前に各カテゴリと(例えば各予め定義された記録タイプと)関連付けられているレイアウト及び/又はデータインタフェースと、関連付けるために使用可能である。
第3ステップ220は次いで実行されて、システムにおいて既に定義されていない場合には、特定のワークフローに対して要求されるタイプの、新たな複数のフェーズを追加する。これらのフェーズは、上で参照された異なる機能的なグループであり、通常、設計処理の分析フェーズの間に決定される。ステップ230は次いで実行されて、フェーズフィールドCFをカスタマイズし、実際には、実行されるべき(且つ、アプリケーション開発者が潜在的にトランジションを定義することができる)特定のワークフローの種々のフェーズを定義する。例えば、各ワークフローが複数のフェーズと論理的オペレーションのサブセットのみとインタラクトしている状態で、複数のワークフローを用いて、多くのフェーズと論理的オペレーションを有することが可能である;ステップ230は通常、実際上グローバルなフェーズであるものを、特定の(個々の)ワークフローと関連付けるように、実行される。望まれる場合、ステップ220及び230は交換可能である。ステップ220及び230は実際には、フェーズテーブルTFの生成を可能とするようにインポート可能である方法で、設計中のオブジェクトに関連する複数のフェーズを定義するように実行される。図4において示される種々のステップは、特にワークフローの複数のフェーズFと複数のトランジションを定義するための、予備的な前処理オペレーションを表す。
上に示された例は、要求管理オブジェクトの構築、1つ又は複数のテンプレートの採用、及びフェーズサポートの追加を説明するが、説明された処理はまた、例えば既存の要求管理オブジェクトを修正することによって、レガシーのワークフロー管理システムに適用可能であるということに留意されたい。
図3Bに戻り、フェーズテーブルTFの生成は、フェーズ管理オブジェクト300の使用のための述語(プレディケート)を提供する。フェーズ管理オブジェクト300は、(フェーズテーブルTFに依存して)使用可能であるトランジションマトリクスTS及び/又はトランジションテーブルTTを提供して、複数のフェーズ、任意の関連付けられた規則、条件、又はインタラクションの間の、許可されたトランジションを定義し、また一貫性検査及び他の処理のためのフレームワークを確立する。フェーズ管理オブジェクト300は、上述のメタデータを生成するために、また後述のようにトリガ及び一貫性検査を指示するために、用いられることとなる。オペレーション250は呼び出されてフェーズテーブルに対してデータ投入を行う;記入が完了してオブジェクト300が閉じられたとき、フェーズ管理オブジェクト300によって特定されるトリガは一貫性検査を行うように実行される。例えば、一実施形態において、第1及び第2のトリガ(TR1及びTR2)は、一貫性検査を提供し、またフェーズコードをフェーズ説明にそれぞれデコードするために用いられる;第1のトリガTR1は、結果として得られるテーブル(すなわち、トランジションテーブルTT、及び/又はトランジションマトリクスTS、及び/又はフェーズテーブルTF)を検査して、実行されるべき複数のトランジションTの適合性を確認するために用いられる。その一方で第2のトリガTR2は、フェーズテーブルTF及びトランジションテーブルTTを参照して、実行されるべき各フェーズの明示的な説明FPを探索するために用いられる。ケースオブジェクト500はまた、設計処理の間に複数のフェーズFの管理に用いる動作ボタン(例えば、ボタン、リンク、コマンド、リスト、チェックボックス、及びその他のもの)を、テーブルTTに依存して提示するモジュール(すなわち動的ページ)を備える。
新たなケースオブジェクト生成のステップは効果的に、対応するワークフローアプリケーションを表すオブジェクト定義、ページレイアウト、ワークフロー規則等の、全てのセットアップデータを含むメタデータのセットを、ケースオブジェクト500に属するものとみなす。(例えば上述のカスタマイズによって)既存のワークフロー管理システムフレームワークに対して改良が行われた場合、ここで説明される原理は、フェーズフィールドCF、関連するトランジションテーブル及び/又はマトリクス、並びにワークフローに適切な任意のトリガ、例えばトリガTR1及びTR2、の追加によって、既存のオブジェクトフォーマットをカスタマイズすることに留意されたい。これは次いで、フェーズ定義、及び(フェーズフィールドCFによって表される)定義された複数のフェーズ上で自動的に動作するソフトウェア制御を促進する。従って、オブジェクト500の修正は、種々のワークフローによって使用可能であるデータモデルを生成し、またワークフローのカスタマイズと修正を促進するように適応されたユーザインタフェースを提供する。ソフトウェアのカスタマイズ及び/又はそのような修正はまた、複数の新たなオブジェクト、及びそれらオブジェクトと関連付けられるべき複数のフィールドを簡単に定義し、また新たな複数のフィールドを既存の(例えばレガシーの)複数のオブジェクトに簡単に追加するためのユーザインタフェースを提供する。最後に、オブジェクト500の修正はまた、複数の記録タイプ、及び他の複数のフィールドをカスタマイズする手段であって、ここで上記他の複数のフィールドはそのような複数のフィールドに特有の複数のパラメータ(例えば、レイアウト、条件、可視化、振る舞い)を有する、手段と、(例えばテンプレートに従って)任意の所望の所定のパラメータをそのような複数のフィールドに追加する手段との両方を提供する。
これらの原理を例示すると、レガシーのワークフロー管理システムによって用いられるオブジェクトは、例えば図4のオペレーション210を用いて、許される複数のフィールド値を追加し、編集し、又は削除するように簡単にカスタマイズ可能である。上述のように、本開示によって提供される技術は、そのような複数の値をカスタマイズするための、図5に例示される、ユーザインタフェースを提供する。紹介された例に戻り、再印刷のための顧客要求に応えるためにワークフローが修正又は設計されるべきである場合、(例えばケースオブジェクトの)記録タイプフィールドは「再印刷」の選択可能な値を含むように定義され得る。同様に、既存のワークフローの拡張をサポートするために「苦情」の記録タイプの値が定義されるべきである場合、オブジェクト設計はそれに応じて、個々のケースオブジェクト(例えば新たなチケット)が「苦情」として識別されることを可能とするように、修正され得る。図5は、この設計オペレーションを実行するための、例示的な入力画面レイアウト600(例えばユーザインタフェース)を示す。そのような入力画面レイアウトは、アプリケーション開発者が、例えば既存の記録タイプをテンプレートとして指定するためのフィールド601、記録タイプラベル(この例では「再印刷」)のためのフィールド602、記録タイプ名のためのフィールド603、及びサポート処理タイプを定義するためのフィールド604を用いて、「record_type」を定義するための情報を入力することを可能にする。要求された情報の記入が完了すると、その効果として、特定のワークフローに対する要求管理オブジェクト500と関連付けられる方法で、新たな記録タイプが生成される。
図6は、特定の記録タイプの定義に関する追加の情報を提供する図である。新たに定義又は修正されたケースオブジェクト500を用いて実施されるべき各処理に対して、各関連記録タイプが定義される。図6において、「CRT1」及び「CRT2」は2つの記録タイプを示し、ここで「CRT1」はそれが実施する処理に従って、ケースオブジェクト500A及び500Bのために使用され、「CRT2」はそれが実施する処理に従ってケースオブジェクト500C及び500Cのために使用される。各記録タイプは図示のように、それ自身のケース番号、フェーズフィールドCF、及びフェーズ説明を有する。
図4に戻り、処理210を介して、新たな記録タイプCRTのための名前及び説明が入力される。新たな記録タイプは、その記録タイプに利用可能な(例えばデフォルトの、又は以前に定義された)全てのピックリスト値を含むようにデータ投入が行われることとなる。新たな記録タイプを保存した後、フェーズフィールドCFに対して選択可能である値を含むピックリスト値をアプリケーション開発者がカスタマイズすることが可能であるように、ソフトウェアは構造化されてもよいことに留意されたい。
記録タイプCRTの定義は多数の点でシステムに影響を与え、この定義の後に、従って、関連するレイアウト(視覚化)の構成、及び必要に応じて任意の関連するエンドユーザプロファイルが続いてもよい。
上述のように、ワークフロー管理システム及び対応するレイアウトの標準的な要求管理オブジェクトは、その複数のフィールドの中で、カスタムフィールドフェーズフィールドCFを含む。このフィールドCFは、一実施形態において、ピックリストタイプフィールドを含み、当該ピックリストタイプフィールドは、関連のあるワークフローのための全ての記録タイプのフェーズに対応する全ての値の完全なリストを、選択のために保持する。アプリケーション開発者は、特定のオブジェクトに関連する複数のフェーズのセットを定義するために、ワークフローに対して定義された複数のフェーズの中から選択する。例えば、図1A〜1Bの例を適用して、アプリケーション開発者は、ワークフロー全体のための複数のフェーズFの完全なリストから、フェーズF1〜F5を表す複数のコードを選択して、これらを要求管理オブジェクトと関連付けて入力し得る。この処理及び関連付けられたユーザインタフェースは、既存のワークフローの、準備ができている修正を許し、どのようにオブジェクト、又はその関連するワークフローが使用されるかをカスタマイズする。複数のフェーズは再び、プロジェクトの分析フェーズから決定される。
図7は、データベース環境の複数のフィールドをカスタマイズするための、特に要求管理オブジェクトの特定のフィールドに対して利用可能な選択値を構成するための、例示的な構成タブ(すなわち、ユーザインタフェースのためのレイアウト)610を示す。図7によって示される特定のケースにおいて、フェーズフィールドに対して利用可能な選択を特定することが望まれ、ここでエンドユーザの選択オプションは通常、アプリケーション開発者によって(すなわち、説明したように、分析フェーズに応じて)定義される。説明したように、一実施形態において、フェーズフィールドCFは、デフォルトで、全ての記録タイプに対して全ての可能性のあるフェーズFを保持する。タブ610は、実施されるべきアプリケーションに対する、複数のフェーズ又は個々のフェーズパラメータ(例えば、フェーズのためのコード、及び他の示されたフィールド)を追加、編集、又は削除するためにアプリケーション開発者によって使用されることができる。
タブ610は図示のように、フィールド、ラベル、名前、API名、オブジェクト名(例えば、この場合において「ケース」)等の情報を表示する情報セクション613を含む。符号611は、(例えば、関連のあるフェーズを選択するためのピックリストの使用を示すこの例を用いて)フィールドに値を追加するために使用される選択メカニズムを示す。処理の任意の時点において、ユーザはボタン614を用いて、ピックリストのための新たな値を選択できる(又は反対に、例えば、値の順番を変更し、及び/又は値を除去する)。他の選択、動作、及びコマンドのメカニズムは、当業者によって理解されるように、提供可能であることに留意されたい。
上述を考慮し、オブジェクトを追加又はカスタマイズするために、アプリケーション開発者は、(図7のスクリーンショットによって表される)ユーザインタフェースを用いて、所望のワークフローによって決定される通りに、関連のある複数のフェーズを定義する;各記録タイプはそれ自体の各々の選択オプション(例えば、関連のある複数のフェーズの各々のリスト)を有することができるため、この処理は、ワークフロー設計処理の間か後であるかによらず、新たなフェーズが追加されるとき、ワークフローの、準備ができている修正を促進する。
図8は、所望のワークフローの種々のフェーズを定義するためのピックリストに関する、もう1つの例示的な構成タブ(又はユーザインタフェースレイアウト)623を示す。例えば、このユーザインタフェースは、上述のボタン614のアプリケーション開発者による選択に応答して、入力されることができる。アプリケーション開発者は、利用可能な(既存の)複数の値621のセットから選択して、ピックリスト選択を定義する。各値は、(ページの中央において見られる右矢印ボタンを用いて)選択オプションとして選択及び追加されるため、その値は、検討中の特定の記録タイプのためのピックリストに利用可能な選択値のセット622に追加される。逆に、セット622から特定の値をハイライトさせて図の中央においてみられる左矢印ボタンを選択することによって、ユーザは、選択オプションとしての使用から1つ又は複数のフェーズを削除することによって、以前に選択した複数のオプションを編集できる。
この図から見られるように、各フェーズ値は、この実施形態ではワークフロー処理の各フェーズに対応する英数字のコードによって、フェーズフィールドCFにおいて表される。対応するフェーズ説明は参照目的のフェーズのテキスト説明を保持し、また対応するフェーズ説明は、図9において符号614で示すようにフェーズ説明のルックアップテーブルをロードするために関連する英数字のコードをダブルクリックすることによって、選択可能である。このテーブルは、新たなフェーズ選択オプションとして追加されて、ワークフローに追加される。ルックアップテーブル614は、英数字のフェーズコード「FC」及びテキストのフェーズ説明「FD」を含む、2つのフィールドを有する。これは、本開示において説明される多くの例示的なユーザインタフェースと同様に、必ずしも全ての実施形態に必須ではなく、代替手段によって実施可能であることに留意されたい。例えば、別の実施形態において、値に対するテキストの説明は、アプリケーション開発者が特定の英数字コードをハイライトさせるいかなるときにおいても、図8のユーザインタフェースの一部として自動的に検索され且つ表示されることが可能である。明らかに、他の変形例はまた、可能である。
所望のワークフローに関連する複数のフェーズFのセットがひとたび定義されると、それら複数のフェーズFは、ステップ205(図3B)において定義されるフェーズ管理オブジェクト300に追加される。このオブジェクトは次いで、許可された複数のトランジションを定義するために用いられる。このオブジェクトに対するレイアウトは、図10、11及び12に示される。すなわち、このオブジェクトは、所望のワークフローの複数のフェーズの間の全ての許可された複数のトランジションを定義して、それら複数のトランジションを構成するためのトランジション定義のための、ユーザインタフェースを提供する。このタスクはまた、特定のワークフロー管理システムによってサポートされている場合、標準的な非常に大きなレコードインポートツール(例えば、Apex Data Loader、又は類似のMicrosoft Excel Connector)を用いて、実行可能である。
図3Bに戻り、オペレーション250に従って、トランジションマトリクスTSは、オペレーション255においてトランジションテーブルTTを生成するために構築されて用いられる。フェーズ管理オブジェクト300のレイアウトの手段によって(図10、11、及び12参照)、所望のワークフローの任意の2つの関連するフェーズの間の各可能性のあるトランジションを表す交差は、関連のあるユーザインタフェースの一部として、アプリケーション開発者に対して自動的に提示される。特に、ステップ256において、アプリケーション開発者は、各所望のトランジションTが手動であるか自動であるかを特定するように要求される。自動である複数のフェーズトランジションT(例えば、これはボタン又は動作リンクを提供すること、又はエンドユーザ入力を要求することが条件とされない)は、「A」の印が付される。(確認のみであるとしても)エンドユーザによる画面上の動作を要求する手動のフェーズトランジションは、「M」の印が付される。ワークフロー処理の制御オブジェクトとしてのそのようなトランジションテーブルのストレージはこの場合、明らかに効果的に、トランジションマトリクスTS及び/又はトランジションテーブルTTによって明示的に提供されない任意の試みられたフェーズトランジションを禁止する方法で、所望のワークフローのオペレーションを指示する。これは、特に、ケースオブジェクト上で動作するように設定された対応するApexトリガを介してマトリクスTSからの情報を検索して確認することによって、強制される。
次いで、オペレーション257において、追加の動作構成ツール400の手段によって任意の手動の動作タイプ(M)の記入のために必要とされる複数のパラメータを有効にするためにエンドユーザが表示させてその上をクリックするボタン、コマンド、又はリンクを構成するように、アプリケーション開発者は呼び出される。
いくつかの非限定的な実施例を提供するために、そのような動作可能なボタンは、以下を含む。
条件付け:ケースオブジェクトのために優先する特定の条件が満たされる(例えば、いくつかのボタンが利用可能とされることができ、また特定のユーザプロファイルに対して表示可能である)とき、トランジションは利用可能である(また任意に、利用可能であるとして、エンドユーザに対して表示される)。
割り当て:動作ボタンがエンドユーザによってクリックされたとき、当該ボタンはデータの保存、及びワークフローイベント(例えば、その動作が実行されたときの日付)を追跡するために有用なケースオブジェクトの他のフィールドの値の割り当てをトリガする。
オペレーション257に関する追加の詳細は、図12において更に詳細に説明する。例えば、符号401,402,404a〜404b,405a〜405b,406,及び407は全て、任意の所望の手動のトランジションに対する複数の条件、パラメータ、及びコンテキストに設定されることができるフィールドを示す。表示されたユーザインタフェースは、追加されたトランジションテーブルを保存するとき、又は処理の任意の他の適切な時点において、手動の動作パラメータ(M)の選択に応答して、呼び出されることができる。
ひとたびオペレーション255及び257が完了すると、要求管理オブジェクト500(例えば、ケースオブジェクト)は、処理270を介して、生成される(又は適切に更新される)。要求管理オブジェクト500は、オブジェクト定義等の全てのセットアップデータを含むメタデータのセットと、複数のページレイアウト、及び特に、特定のアプリケーションを構成するために使用される複数のワークフロー規則とを含む。メタデータのセットは、所望のワークフローを実装するためにワークフロー管理システムによって用いられる構成及び規則を提供するために用いられる。レガシーの環境のために、ソフトウェアは、既存のオブジェクトの機能を、それらオブジェクトを修正することによって拡張し、(例えばフェーズ管理ツールオブジェクトによって定義された)フェーズフィールドCF、トランジション定義サポート、及びメタデータを提供することができる。メタデータは、オブジェクト500及びその関連付けられたレイアウトに対して複数の動作定義パラメータを定義し、また事実上手動であるとして定義されたそれら動作に対して、フェーズにおける複数のトランジションとインタラクトするエンドユーザを管理するための複数のパラメータを定義する。
簡単の目的のために、用語「ケース」又は「チケット」は、(例えば、顧客クエリに応答して起動される)特定のケースレコードとのアプリケーションのインタラクションを指すために用いられる。
図10,11,及び12について更に説明する前に、仮想のワークフロー処理に関連する更なる検討を提供することは有益であろう。この例及び次の検討は、(図3Bに示す)オペレーション255のステップを示す。
例えば、ケースオブジェクトの関連する複数のフェーズFを有する仮想の記録タイプ構造「CRT」は、以下のケースタイプ及び関連付けられた複数のフェーズFを含むことが仮定されるべきである。
ケースタイプ:「苦情」
フェーズ「F1」 フェーズ説明:「ケースがログに記録される」
フェーズ「F2」 フェーズ説明:「レターを送信する」
フェーズ「F9」 フェーズ説明:「ケースが閉じられる」
ケースタイプ:「RMA」
フェーズ「F1」 フェーズ説明:「ケースがログに記録される」
フェーズ「F4」 フェーズ説明:「ドキュメントを印刷する」
フェーズ「F9」 フェーズ説明:「ケースが閉じられる」
ケースタイプ:「顧客データ更新」
フェーズ「F1」 フェーズ説明:「ケースがログに記録される」
フェーズ「F4」 フェーズ説明:「ドキュメントを印刷する」
フェーズ「F9」 フェーズ説明:「ケースが閉じられる」
ケースタイプ:「ドキュメントを再印刷する」
フェーズ「F1」 フェーズ説明:「ケースがログに記録される/データエントリ」
フェーズ「F2」 フェーズ説明:「ドキュメントを印刷する」
フェーズ「F4」 フェーズ説明:「障害、介在を要求する」
フェーズ「F7」 フェーズ説明:「成功、アラインメント」
フェーズ「F9」 フェーズ説明:「ケースが閉じられる」
この仮想の例は、「苦情」、「RMA」、「顧客データ更新」、及び「ドキュメント再印刷」の4つの異なる仮想のサービス要求にそれぞれ対応する、4つの異なるケースタイプを表す。各異なるケースタイプ(すなわち、サービス要求のタイプ)は、ワークフローの異なるフェーズを用いて処理される。
図10は、フェーズ管理オブジェクト300の第1の構成を示す。図10に示す例は、図1A及び1Bからの印刷例に関連するデータに対応する。オブジェクト300のレイアウトは図示のように、以下の4つの異なるタブのセット301を備える:デフォルトのホームページタブに戻るために選択されるタブ301a;ユーザインタフェースを使用するためのガイドにアクセスするために選択されるタブ301b;トランジションマトリクスTSタブを呼び出すために選択されるタブ301c(又は、複数のトランジション、及び/又は複数の動作パラメータを定義するための他のユーザインタフェース);利用可能な複数のフェーズを構成するためにアプリケーション開発者によって選択されるタブ301d、すなわちフェーズタブ。一般に、フェーズ構成オブジェクト300は、検討中のオブジェクトに対する、全ての関連のある複数のフェーズ及び関連付けられたトランジションデータ(及び関連する複数のパラメータ)の識別を含む、図示される複数のタブの各々のデータ視覚化/管理のための複数のデータ構造及び複数のレイアウトを含む。例えば、上述のように、フェーズ構成オブジェクト300は、所望のワークフローの複数のフェーズFの入力又は定義の結果としてデータが投入されるフェーズテーブルTFと、許可された複数のトランジションを識別するために、フェーズテーブルに基づいて、且つアプリケーション開発者の入力に基づいてデータが投入されるトランジションテーブルTTを含む。アプリケーション開発者が、どのトランジションが許可されるべきか、及び自動(A)又は手動(M)のうちのいずれの動作が各トランジションに対してとられるべきかを識別することのみ必要であるように、図示されるユーザインタフェースは、全ての関連のあるフェーズ、及び全ての関連のある可能性のあるトランジション(すなわち、任意の2つの関連のあるフェーズの間の全ての可能性のあるトランジション)を効果的に識別する構造を、アプリケーション開発者に提供してもよい。種々のタブ301とインタラクトすることによって、アプリケーション開発者は、トランジションテーブルTTとフェーズテーブルTFのための種々の構成レイアウト、及び各許可されたトランジションのための複数のパラメータにアクセスすることができる。
特に、タブ301cが選択されるとき、タブ(ユーザインタフェース)は表示され、フェーズマトリクスTSの表現を示す。このインタフェースは、フェーズ管理オブジェクト300によって許可された複数のトランジションに対して入力、修正、又は削除を行うためのする手段を、アプリケーション開発者に提供する。インタフェースは、行選択と列選択との両方として提示される特定のケースタイプの種々の関連する複数のフェーズを有する、トランジションマトリクスTSのグラフ表示を含む。従って、図1A〜1Bからの印刷例において、トランジションマトリクスは5行5列のマトリクスであり、複数の列の各々はフェーズF1〜F5のうちの1つにそれぞれ対応し、複数の行の各々は、フェーズF1〜F5のうちの1つにそれぞれ対応する。従って、トランジションマトリクスTSの入力は、任意の2つのフェーズFの間の全ての可能性のあるトランジションTを定義する。タブ301cは、所与のケースタイプに対して、複数のトランジションTSの配列を読み込むためのボタン302と、アプリケーション開発者によって定義されている全ての定義と値を有するトランジションマトリクスTSを保存するためのボタン303とを提供する。
図11は、各許可されたトランジションのための動作パラメータを定義するための、手動(306)であることを指す「M」又は自動(307)であることを指す「A」のいずれかを有する行/列の交点において定義された許可された複数のトランジションが現在追加された、このフェーズ管理オブジェクト300を示す。図示のように、トランジションは、動作パラメータが特定された場合にのみ、トランジションは、許可されると定義される;例えば、行−列の値1−2は、フェーズF1からフェーズF2への手動のトランジションを構成するために用いられる手動の動作パラメータに対応する。アプリケーション開発者が、任意の所望のトランジション識別するセルを選択し、任意の許可されたトランジションの動作パラメータを(例えば適切なダイアログによってガイドされて)入力することができるように、フェーズ管理オブジェクト300によって提示されるトランジションマトリクスは、構造化されてもよい。手動のトランジションは、再び、例えば進むために確認ボタンをクリックすることによる人間の介在が要求される;対照的に、自動のトランジションは、全ての非手動のトランジション(すなわち、トランジションが、例えば外部システムとの自動化された統合の場合等において、ユーザの介在が条件付けられていない場合)を包含する。
図11は、6つの可能なフェーズトランジションがある仮想の表示を示す。図1A及び1Bからの「データエントリ」、「ドキュメントの印刷」、「修正」、「同期」、及び「ケースを閉じる」の複数のフェーズ、並びにこれらの図によって明確に示される複数のトランジションを用いて、トランジションマトリクスTSは、以下の更なるエントリが追加される:
−フェーズF1(「データエントリ」)からフェーズF2(「ドキュメントの印刷」)への、手動のトランジションT12;
−フェーズF2(「ドキュメントの印刷」)からフェーズF3(「同期」)への、自動のトランジションT23;
−フェーズF2(「ドキュメントの印刷」)からフェーズF4(「修正」)への、手動のトランジションT24;
−フェーズF4(「修正」)からフェーズF2(「ドキュメントの印刷」)への、手動のトランジションT42;
−フェーズF4(「修正」)からフェーズF5(「ケースを閉じる」)への、自動のトランジションT45;トランジションT45は、同一の起点フェーズと目的フェーズとの間の2つの異なる処理トランジション点を表すことに留意されたい。
所望のワークフロー処理が実行されているとき種々のチケット状態の間で進展する間、トランジションTは、許可されるか拒否されるかのいずれかである。進捗は、特定の実施(例えば、インタフェース側のユーザの介在、ワークフロー、トリガ、又はネットワークを介した外部サービスとの統合)に依存して大きく異なる場合がある。従って、トランジションテーブルTTの設定に従って、特に動作パラメータが特定のフェーズトランジションに対して提供されるか否かに従って、本明細書において説明される教示は、ワークフローが実行されるときに低いレベルの一貫性検査を実行する手段を提供する;より具体的に、所望のトランジションは、トリガが発生したとき、トランジションテーブルエントリの参照によって、チケットの現在のフェーズに従って、許可されるか拒否される。トリガは、レコードの変更に関するあるイベントに応答して手続き型のコードを自動的に実行する、よく知られたデータベース機能である。トリガの使用は、更に後述される。
トランジションマトリクスTSエントリ又はトランジションテーブルTTレコードに一致しない任意の試みられたトランジションが拒否されて(又は禁止されて)、例えばデータベースレコードの不適切な更新を回避するように、フェーズ管理オブジェクト300のこの構成は、保存がされるときのワークフローに関して直接的な効果を有する。例えば、ケースオブジェクト500(又は別のオブジェクト)が、許可されないトランジションを呼び出し得る方法で不正確に構成された場合、トランジションテーブルへの低いレベルの一貫性検査及び適切なエスケープメカニズムは効果的に、試みられたトランジションを無効にする。言い換えると、一貫性検査トリガは、実行時において、開発されたアプリケーションにおける不整合を拒否するための効果的な制御を提供し、また当該一貫性検査トリガによって、システム管理者がワークフローインテグリティ全体を危険にさらすことなく大量のデータ更新を安全に行うことができる。いくつかの例示的なトリガ処理は図17、18、及び19を参照して以下に更に説明されることに留意されたい。
再び図3Bを参照し、オペレーション257は、アプリケーション開発者が、各許可されたトランジションと関連して、画面上の1つ又は複数のコマンドの表示(例えば、ボタン、コマンドオプション、又は動作リンク)を提供することを可能にする。これらの機能の、アプリケーション開発者の構成は、ワークフロー実行のときに動作されている、又はワークフロー実行の間に実行されているケースオブジェクト500のための視覚的レイアウトの一部を形成し、コンテキスト特有である方法で現在利用可能な複数のコマンドを補助する。そのようなボタン、コマンド、又は動作リンクは通常、ワークフローを種々のフェーズへ進める機能に関連し、又は(例えばデータベースレコード又はケースオブジェクトを更新することによって)フェーズトランジションの実行を支援する。
関連のある複数のフェーズの定義に関連して、フェーズタブ301dは、各フェーズを一意的な識別子に、例えば上で識別されたようにフェーズコードFCに、割り当てるために用いられる。そのようなプロキシの使用は、システムドキュメンテーションの構成と維持を簡単にする。図示されるタブ(図13参照)は、リスト330のように表示される、全てのフェーズコード−説明ペアを格納する、カスタマイズされたサブオブジェクトを提供する。リストは、任意の既存のフェーズコード、並びにフェーズの識別332、名前333、及び説明334を編集又は削除するためのオプション331を提供する。タブ301dはまた、図示のように、選択されたときに図14に示すユーザインタフェースの提示を引き起こす、新たなフェーズコードを挿入するためのコマンド340を含む。
図15は、(例えば、顧客チケットの開始を文書で記録する)ケースオブジェクト500のための視覚的レイアウトの表示を示す。図示のように、このオブジェクトは、データを表示し且つ入力又は修正するための複数のセクションと、複数のコマンドを発行するためのセクションとを含むインタフェースをエンドユーザに提供する。図示されるレイアウトは、チケット(例えば、ケースファイル番号501a、ケースタイプの参照501b、ドケット番号の参照501c、チケットが現在において存するフェーズに対するフェーズ説明の参照501d、フェーズコードの参照501e)に関連する情報を示す参照セクション501を含む。レイアウトはまた、サービス要求が受け入れられていること(503a)又は優先であること(503b)を示すために用いられるステータスインジケータ503と、例えば、図示される「編集」、「削除」、及び「保存」のコマンド等の、利用可能な複数のコマンドをグループ化するために用いられる第1のコマンド領域504とを提供する。レイアウトはまた、第1のコマンド領域504から分離された第2のコマンド領域502を提供してもよい。当該第2のコマンド領域502は、(トランジションマトリクスTSによって定義されたように)オペレーションの現在のフェーズに対する任意の許可された手動の複数のトランジションに関連して定義されたように、ワークフローに関連するコンテキスト特有コマンドのセットを表示するためのものである。従って、第1のコマンド領域504は、コンテキストに基づいて通常変化しない、複数のコマンド又は複数のボタンの予め決定されたセットを表示し、その一方で、第2のコマンド領域502は、フェーズ管理オブジェクトによって特定される、現在のフェーズ及び任意の手動の動作条件に従って、コンテキスト特有のコマンドの変数を表示するために用いられる。
例えば、第2のコマンド領域502は、ケースオブジェクト500にネイティブに統合されたVisual forceコンポーネントによる使用のためのウィンドウを提供できる。Visual forceコンポーネントは、チケットステータスに従って、すなわち、ワークフローの現在のフェーズ及びアプリケーション開発者によって特定される任意の条件に従って、複数のボタン、コマンド、又は動作リンクを表示するように実行される動的ページを提供する。この構造は、案内される方法で、また特定のワークフロー処理の所望の制約と適合する方法で、オープンチケットに対する動作を実行する処理を、エンドユーザに提供することを促進する。
図15は、領域502において、特定の動作ボタン502a(「要求の確認」)を示す。このコマンドをオプションとしてエンドユーザに利用可能とするために、アプリケーション開発は、図12を参照して上述されたように、トランジションテーブルTT及び動作構成ツール400とインタラクトし、関連のあるトランジションマトリクスセルを、許可されている手動の動作として、表示する。すなわち、図11及び12に戻り簡潔に参照し、動作ボタン502aの利用可能性をエンドユーザに提供するために、アプリケーション開発者は、トランジションマトリクスTSにアクセスし(図11参照)、(フェーズF1からフェーズF2へのトランジションを表す)第1の行の第2の列を指定し、そのセルとインタラクトして「M」を入力し得る;(例えばコマンドボタンを押すことによって、又はマウスでダブルクリックすることによって)セルをハイライトさせることによって、アプリケーション開発者は、(図12の符号400で示すように)動作構成ツールダイアログにアクセスして、ラベル(符号403における「確認の要求」)を入力して、残りの複数のパラメータを構成し得る。アプリケーション開発者は、設定された複数のトランジションパラメータを格納し、エンドユーザはこの場合、ワークフロー実行時において、特定された条件を満たすことによって(このケースにおいて、フェーズトランジションを確認するために、提示された動作ボタンをクリックすることによって)、ワークフローの前進をトリガすることが許される。明らかであるように、種々のダイアログ及び関連付けられた複数のユーザインタフェースは、任意の関連のあるトランジション又はトランジションオプションと関連付けられた複数の条件及び複数のコマンドをアプリケーション開発者が定義することを可能にする。図12に示すように、次のダイアログのタイトルバー401は、現在選択されたフェーズトランジションTを(すなわち、F1からF2へのトランジションとして)識別することに留意されたい。図12において、「新しい手動のランジション[M]」のラベルが付されたボタンは、アプリケーション開発者が適切な新たなコマンドを動作可能なボタンとして構成することを可能にする。レイアウトはまた、以前に追加されたボタンのリストを表示し、動作ボタン402によって表すように、それらの削除を可能にする。
図12において記入動作ボタンの下に示す詳細のセクションにおいて、上述したように、ボタンのラベルを構成すること、又はボタンのエンドユーザへの提示の仕方をカスタマイズすることが可能である。例えば、図示されるチェックボックス404a及び404bは、以下の目的のためにボタンのエンドユーザ提示を提供するために選択可能である:
−エンドユーザがリダイレクトされることができるURL又は他のネットワークリソース識別子(例えば、Salesforce.com)を特定する「リンク」;及び/又は
−フェーズ変更又はデータ更新をトリガするための、エンドユーザに対して最終確認コマンドを提示する「確認してクリック」ボタン404b。
他の複数のコマンドはまた、複数の条件を設定するためのセクション405又は複数の更新を実行するためのセクション406を用いてアプリケーション開発者によって構成可能である。また、他のタイプの複数のコマンド又は複数の動作を提供することが可能である。例えば、典型的なワークフローにおいて、エンドユーザは、第1のフェーズ(例えば「F1」)から第2のフェーズ(例えば「F2」)へのトランジションの受け入れ可能性の確認、又は特定のケースオブジェクト(例えばチケット)のあるフィールドの更新のいずれかのために呼び出され得る。すなわち、まず、セクション405に示すように、複数の動的条件に依存する動作可能な複数のボタンを生成することが可能である。例えば、動作ボタンは、(例えば、エンドユーザのプロファイルへのアクセス、及びそのプロファイルが定義された基準を満たすかの判断の参照によって決定される)特定のエンドユーザに対してのみ表示されるように、又はある条件が満たされている者のみに対して表示されるように、構成可能である。図示のように、「条件」セクション405は、アプリケーション開発者が、それぞれフィールド、オペレータ、及び値のパラメータのためのドロップダウンリスト及びチェックボックスを用いて達成される複数の条件の構成を用いて、最大で5個の異なる論理的条件を、定義することを可能にする。フィールドパラメータ405aは、図示のように、所望の条件、典型的にはケースオブジェクトのフィールド、に対する特定のオペランドのドロップダウンリスト選択を可能にし、その一方で、オペレータパラメータ405bは、アプリケーション開発者が、予め決定された要求に対する任意の関連オブジェクトフィールドのコンテンツをテストするために、選択されたフィールド(例えば「subject=null」)上で実行されるべき論理的オペレーションを定義することを可能にする。図示される動作構成ツールダイアログ400は任意に、任意の所望の方法で、(例えば、複数の論理AND演算子及び/又は論理OR演算子を組み合わせて)例えば複雑な複数のブール条件の定義を可能にする方法で構造化され、比較、確認、及び他のロジックを実装し、トランジションのために優先する条件として満たされることができることに留意されたい。動作構成ツールダイアログはまた、アプリケーション開発者が、ケースオブジェクトの選択フィールドの更新を命令することを(すなわち、フェーズ変更を単に命令することに加えて)可能にするように構造化される。すなわち、動作構成ツール400の「更新動作」セクション406は、チェックボックス406aを選択することによってひとたび有効にされると、アプリケーション開発者が、ピックリスト又は日付のエントリとしてnull、TODAY等のシステム値を含む、更新のための複数のフィールド及び複数の値を定義することを可能にする。
図15に戻り、すぐ上に説明したようなトランジションテーブル編集の効果は、以下の方法で第2のコマンド領域502における動作ボタンが生成されることである:
−ケースタイプに特有である(すなわち、説明された処理に対して間接的であるように、記録タイプ);
−チケットの現在のフェーズFを識別する;及び
−複数のジョイント条件(各条件が満たされることが要求される)、複数のディスジョイント条件(いずれか1つの条件が満たされることが要求される)、又はこれら2つの組み合わせとしての、アプリケーション開発者によって定義された複数の条件の、選択的な実施を可能にして、更新等の任意の関連する複数の動作を定義する。
上述の複数の実施形態により、アプリケーション開発者は、ポインティングメカニズム若しくはクリックメカニズム又は他のユーザ機器のみを用いて、いかなる明確なコーディングの労力を要求することなく、所望のワークフローを構成及び再構成できる。
ひとたび構成が完了すると、「トランジションを格納」ボタン407は、アプリケーション開発者が、トランジションマトリクスTSにリンクされた方法で、任意の2つのフェーズFの間の(全ての手動のトランジション定義及び自動のトランジション定義を含む)トランジションテーブルTTに対して行われる全ての設定を格納することを可能にする。言い換えると、図示されるトランジションマトリクスTS及び動作構成ツール400(又は類似のユーザインタフェース)を介して、トランジションテーブルTTは、各々の定義された許可されたトランジションTが自動的に追加され、また反対に、特に提供されないいかなるトランジションも禁止するように構成される。任意のときに、アプリケーション開発者は、クローズオブジェクトボタン408を用いて、動作構成ツール400ダイアログによって提供される構成セッションを終了できる。
例として、一実施形態において、各トランジションTに対するレコードを生成、削除、又は上書きするためのボタン407を選択すると、トランジションテーブルTTは自動的に更新される。トランジションオブジェクトTOとしてのこのテーブルの例示的なフォーマットは図16に示される。上述のトランジションマトリクスTSと比較して、例えば、トランジションTに対応するレコードが行に配列される場合、構成された動作パラメータのフィールドは更に列に配列される。このように、トランジションオブジェクトTOの各トランジションテーブルTTは、各記録タイプに対して1つのテーブルとして、(各々が行で表された)複数のレコードを有することができ、当該複数のレコードの各々は、記録タイプCRTF、起点フェーズ及び目的フェーズ(それぞれOF及びDF)、ボタンプロパティBP、関連する条件BC、及びボタン動作BAを識別するエントリを含む。トランジションオブジェクトTOは、任意の所望のワークフロー及び関連付けられた記録タイプに対して、エンドユーザによって経験される又はエンドユーザに利用可能な現在のフェーズ(すなわち、起点フェーズOF)及びトランジションTに係る、対応する複数のユーザインタフェースコマンドを生成することができるメタデータ構造を表す。例を提供するために、単一のトランジションテーブルTTは、図1A及び1Bに関連して上に例示したトランジションT12,T23,T24,T42,T45,及びT35を含むことができる。代替実施形態において、複数のトランジションは、図16に示されるインタフェース及び関連付けられたダイアログを用いて、定義可能であることに留意されたい;他の変形実施形態もまた当業者により想到される。
言い換えると、フェーズ管理オブジェクト300は、トランジションマトリクスTS又はトランジションテーブルTTの手段により、又は他の入力手段により、所望のワークフローにおけるエンドユーザの動作を拘束する方法で、複数のトランジションTOを定義する方法を提供する。複数のトランジション定義は任意に、複数のレコードのセットとして、各トランジションに対して1つ、構造化可能であり、これらは、簡単に理解される方法で、且つ準備が整った編集(及びワークフローの修正)を提供する方法で、関連付けられた複数の動作及び複数のパラメータを定義する。更に、上述のように、そのような構造は、低いレベルの一貫性検査を実施する、準備が整った手段を提供し、処理及びデータベースのインテグリティを改善する。従って、一実施形態において、あるトランジションに関係する全ての情報は、関連のある複数の手動の動作パラメータを含むオブジェクトのテーブルの各々のレコードに適合可能である。
種々の時点において、複数のトリガは、低いレベルの一貫性検査を含む、更新のときに、自動的な動作を行うように実行可能であることに留意すべきであることを上述した。そのような複数のトリガは、図3において、頭字語TR1及びTR2によって表される。より具体的に、機能ブロック250への入力により見られるように、トリガは、フェーズ定義に関係するテーブル又はレコードが格納される任意のときにおいて、実行可能である;同様に、ワークフローアプリケーションの実行時の間、複数のエンドユーザは(実行時処理280を介して)ケース管理オブジェクトにアクセスするため、複数のオブジェクトプロパティの更新はまた、関連のある一貫性検査をトリガするために用いられることができる。これらのオペレーションは一般に図17〜19を参照して検討された。
特に、図17に示すように、第1のトリガTR1は、要求管理オブジェクトが更新され又はアクセスされる任意のときのワークフロー実行時の間、アクティブにされることができ(ブロック810)、試みられたトランジションを(起点フェーズと目的フェーズの両方の観点で)許可されたトランジションとして定義するトランジションオブジェクトTOにおいて対応するエントリが存在することを、トランジションが試みられたときはいつでも(ブロック820)、検査(ベリファイ)するために使用されることができる。この検査(ベリフィケーション)処理は、図17において、判断ブロック830によって表される。完全な一致が発見されない場合、試みられたオペレーションは、拒否可能であり(ブロック840)、システムのステータスはワークフロー管理システムによってロールバック可能である(ブロック850)。
図18は、第2のトリガのオペレーション、TR2を説明する。第2のトリガのオペレーションTR2は、フェーズテーブル又はオブジェクト定義フェーズ、トランジション、又は任意のトランジションパラメータの更新を試みるときに実行される。より具体的に、このトリガは、関連のあるオブジェクト又はテーブルが更新され又はアクセスされる任意のときにアクティブにされることができ(ブロック910)、これにより、目的とされるトランジションが適切に定義されたフェーズ説明に、確実に関連付けられることができる。ステップ920において、新たに更新され又は定義されたテーブル又はオブジェクトは、任意の、フェーズに関連付けられた(又はトランジションに関連付けられた)パラメータが、変更されているかを判断するために確認される。そのような変更が検出された場合、ワークフロー設計ソフトウェアは、(例えば、トランジションテーブルTTから、関連のあるフェーズコード又はトランジションデスクリプタを検索することによって)目的フェーズを検索して、フィールドに適用されるべき適切な説明を発見する。次いで、ステップ940において、更新されたフェーズ説明は、ケースオブジェクトのために格納される。このトリガは、フェーズコードを検索するルックアップテーブルを探索してフィールドに適用されるべき適切な説明を発見することによって、要求管理オブジェクト500におけるフェーズフィールドCFが変化するときはいつでも、フェーズ説明の更新を提供する。
図19は、図3Bからのオペレーション280の実行に関係するフロー図を提供する。
より具体的には、ステップ1110において、システムは、ケースオブジェクトに関連して任意の動作ボタン、コマンド、又はリンクがエンドユーザに提示されるまで、待機状態を保つ。判断ブロックステップ1120に示すように、ソフトウェアは、任意のボタン、コマンド、及びリンクが表示されたか、またそうでない場合(1130)、フェーズの変更が以前の状態に比較して発生しているかが判断されるループにおいて、動作する。そのようなフェーズの変更が発生した場合、ソフトウェアは、処理サークル800によって示されるトリガTR1を呼び出す。他方、ソフトウェアがエンドユーザコマンドの提示を検出した場合、ソフトウェアは関連のある入力機器を監視して、ボタン、コマンド、又はリンクのうちの1つを介したユーザコマンドの発行を検出する。これはステップ1140によって表される。これが検出された場合、ステップ1150において、クリックされたボタン、コマンド、又はリンクによって要求される動作が実行される。ステップ1160に示すように、そのとき、現在のフェーズは、目的フェーズの値に更新され、ソフトウェアはトリガTR2に対応する処理サークル900を実行する。上述のように、ステップ1150によって表される動作が、禁止された状態を呼び出した場合、ソフトウェア(図17参照)は、フェーズを、前から存在する値にロールバックし、又は試みられたトランジションが発生するのを抑止する。
上述のように、上で検討された複数の実施形態は、以下の拡張又はオブジェクト/ワークフロー管理プロパティのうちの1つ又は複数を提供する:
−例えば要求管理オブジェクト500の一部であることができる又は要求管理オブジェクト500に追加されることができるフェーズフィールドCF及びフェーズ説明フィールド;
−許可された複数のトランジション、複数の動作タイプ(例えば、自動及び手動のトランジション定義)、及び任意の関連付けられた複数の条件又は複数の動作を定義及び格納するためのカスタムオブジェクト;
−複数のフェーズ説明を保持するためのカスタムオブジェクト(フェーズテーブルTFに関連付けられたタブ301d);
−チケット又はレコードケース更新のフェーズ適合性を確認するための第1のトリガTR1;
−フェーズを自動的にデコードするための第2のトリガTR2(フェーズコードFC及びフェーズ説明FD);及び
−メタデータセットによって定義された複数のコマンドを表示するための要求管理オブジェクト500(例えば、コマンド領域502)のカスタムセクション。一実施形態において、このカスタムセクションは任意に、Visual forceコンポーネント/ページとして実装可能である。
他の実装は、疑いなく、これらの拡張を用いることなく当業者により想到される。
上述の説明において、特定の詳細は、選択された複数の実施形態の十分な理解を提供するために説明された。いくつかの例において、用語及び記号は、それらの実施形態の実施に必須ではない特定の詳細を意味し得る。用語「例示的な」及び「実施形態」は、選択又は要求ではなく、例を表すために用いられる。いくつかの例において、よく知られた材料又は方法は、提示の実施形態を曖昧にすることを避けるために、詳細に説明されていない。
一般的に、本明細書において検討される複数の処理又は複数の方法のいずれも、非一時的機械読み込み可能媒体上に格納される命令の形式で、例えばソフトウェアとして、実施可能である。「非一時的機械読み込み可能媒体」は、当該媒体上にデータがどのように格納されるかに関わりなく、任意の具体的な(すなわち、物理的な)記憶媒体を意味し、当該記憶媒体は、限定することなく、ランダムアクセスメモリ、ハードディスクメモリ、光ディスク、フロッピー(登録商標)ディスク、DVD又はCD、サーバストレージ、揮発性メモリ、及び命令が機械によって後に読み込まれることができる他の具体的なメカニズムを含む。機械読み込み可能な媒体は、スタンドアロンの形式で(例えば、プログラムディスク)あることができ、又はより大きなメカニズムの一部として、例えばラップトップコンピュータ、携帯型機器、サーバ、ネットワーク、プリンタ、又は1つ又は複数の機器の他のセットとして、実施可能である。命令は、種々のフォーマットで実装可能であり、例えば、呼び出されたときに、特定の動作を呼び出す効果を発揮するメタデータ、Java(登録商標)コード又はスクリプト、特定のプログラミング言語で(例えばC++コード、「Java(登録商標)」、「JavaScript(登録商標)」、「ActiveX」、「VBScript」、「Apex」、又は他の言語で)記述されたコード、若しくはプロセッサ特有の命令セットとして、又は他の形式で、実装可能である。命令はまた、実施形態に依存して、同一のプロセッサ、又は異なるプロセッサによって実行可能である。例えば、一実施例において、非一時的機械読み込み可能媒体上の命令は、単一のコンピュータによって実行可能であり、また他の場合において、上述のように、分配ベースで、例えば1つ又は複数のサーバ、ウェブクライアント、又はアプリケーション特有の機器を用いて、格納及び/又は実行されることができる。そのような複数の命令又はそれらの一部はまた、ソフトウェアソースから、伝送媒体を介して、例えばインターネットを介して伝送又はダウンロード可能であり、又はよく知られているように他のサーバから伝送又はダウンロード可能であり、又はよく知られているように任意の通信媒体及びプロトコル(例えば、TCP/IP、HTTP、HTTPs、イーサネット(登録商標)等)を用いて、よく知られているように任意の他の従来のネットワーク接続(例えば、エクストラネット、VPN、LAN、等)を介して伝送可能である。
本明細書において示された複数の実施形態は、開示の広範な精神と範囲から逸脱することなく、種々の修正及び変更が行われることができる。例えば、複数の実施形態のうちのいくつかの特徴又は態様は任意に、複数の実施形態の任意の他のいくつかの組み合わせに適用されることができ、又はその対応する特徴又は態様を置き換えて適用できる。従って、明細書及び図面は、限定的意味ではなくむしろ例示的なものとしてみなされるべきである。

Claims (19)

  1. ワークフロー管理システム(16)において実行するためのアプリケーションを開発する方法であって、前記ワークフロー管理システム(16)はデータベース(22)を含み、前記アプリケーションは前記データベース(22)とのインタラクションを含むワークフロー(WF)を定義し、前記ワークフロー(WF)は、ワークフローの複数のフェーズ(F)、及び前記複数のフェーズ(F)の間の複数のトランジション(T)として表されることができる、方法であって、
    アプリケーション開発インタフェース(300)を提供するステップ(250)であって、前記アプリケーション開発インタフェース(300)は少なくとも1人のアプリケーション開発者によって複数のデータエントリ(T12,T23,T24,T4,T45)が追加されるべきトランジションテーブル(TT)を含み、前記複数のデータエントリ(T12,T23,T24,T4,T45)は前記ワークフロー(WF)の前記複数のフェーズ(F)の間の各々のトランジション(T)を定義し、前記アプリケーション開発インタフェース(300)は、前記少なくとも1人のアプリケーション開発者が、各データエントリに対して、自動(A)の動作パラメータ又は手動(M)の動作パラメータのうちの1つを選択することを可能にする、ステップと、
    手動(M)の動作パラメータが、前記各々のトランジション(T)のうちの特定の1つに対して選択された場合、前記データベース(22)にアクセスするために満たされるべき少なくとも1つの条件(405)を前記少なくとも1人のアプリケーション開発者が定義するためのインタフェース(400)を提供するステップと、を含み、
    前記アプリケーション開発インタフェース(300)は、各動作パラメータ(A;M)の前記選択及び各条件(405)に応答して、メタデータを自動的に定義し、且つ、前記メタデータを、前記各々のトランジション(T)のうちの対応する1つと関連付け、
    前記方法は、ワークフロー実行の間、複数のコマンド(502)を自動的に呼び出して、前記ワークフロー(WF)の実行に係る現在のフェーズに応じて、前記メタデータに従って前記複数の動作パラメータ(A;M)を有効にするように前記アプリケーションを構成するステップを更に含む、
    ことを特徴とする方法。
  2. 前記データベースはマルチテナントデータベース(22)であり、
    前記ワークフロー(WF)は、実行の間、複数のテナントと前記マルチテナントデータベース(22)との間のインタラクションを可能にするためのものである、
    請求項1記載の方法。
  3. 前記アプリケーション開発インタフェース(300)はユーザインタフェース(301c)を備え、
    前記方法は、前記アプリケーション又は前記ワークフロー管理システム(16)のうちの少なくとも1つを構成して、第1のトリガプロシージャ(TR1)を用いて、前記トランジションテーブル(TT)を確認して、トランジションが許可されるかを判断するステップを更に備える
    請求項1記載の方法。
  4. 前記アプリケーション開発インタフェース(300)は、前記ワークフロー(WF)の前記複数のフェーズ(F)のうちの1つの編集(331)、前記ワークフロー(WF)の新たなフェーズの定義(340)、又は前記ワークフロー(WF)の前記複数のフェーズのうちの1つの削除(331)のうちの少なくとも1つを可能にするためのユーザインタフェース(301d)を更に備える、
    請求項1記載の方法。
  5. 前記ワークフロー(WF)の現在のフェーズを定義する情報の自動的な識別と表示を提供する前記アプリケーション開発インタフェース(300)を構成するステップ(900)を更に含む、
    請求項1記載の方法。
  6. 前記ワークフロー管理システム(16)はサードパーティによって分配され、
    前記方法は、前記サードパーティのソフトウェア又は前記サードパーティのソフトウェアによって動作されるべきオブジェクトのうちの少なくとも1つをカスタマイズして、当該少なくとも1つをワークフローの前記複数のフェーズのうちの少なくとも1つのオペランドとして表すように構成するための、構成ソフトウェアを提供するステップを含む、
    請求項1記載の方法。
  7. 前記アプリケーション開発インタフェース(300)を提供するステップは、前記複数のフェーズの間の可能性のある複数のトランジションのマトリクス(TS)を提供するステップであって、各可能性のあるトランジションは、前記自動(A)の動作パラメータ又は手動(M)の動作パラメータのうちの1つを選択するように、前記少なくとも1人のアプリケーション開発者によって選択可能である、ステップを含む、
    請求項1記載の方法。
  8. 視覚化を提供するステップは、前記ワークフロー(WF)の前記複数のフェーズ(F)の間の可能性のある複数のトランジション(T)を、前記マトリクス(TS)に自動的に追加するステップを含む、
    請求項7記載の方法。
  9. 構成インタフェースを含むアプリケーション開発インタフェース(300)を提供するステップは、
    エンドユーザコマンド(502)のラベルの構成、
    エンドユーザコマンドを表示することに先行する条件の定義(405)、
    少なくとも1つのフィールドの更新(406)、及び
    前記各々のトランジションのうちの1つの更新(407)、
    のうちの少なくとも1つを選択的に実行するためのコマンドを前記少なくとも1人のアプリケーション開発者に提供するステップを含む、請求項1記載の方法。
  10. 第1の視覚化メカニズム(502)を介して前記コマンドの表示を引き起こすように前記メタデータを構成するステップであって、前記第1の視覚化メカニズム(502)は、1つ又は複数のワークフロー非依存型のコマンドを表示するために用いられる第2の視覚化メカニズム(504)とは異なる、ステップを更に含む、
    請求項9記載の方法。
  11. 前記ワークフローは顧客関係管理ワークフロー(CRM)を表し、
    前記方法は、記録タイプフィールドを追加するための、前記ワークフロー管理システム(16)の要求管理オブジェクト(300)の選択的な修正を可能にする(206)、ユーザインタフェース(600)を提供するステップを更に含む、
    請求項1記載の方法。
  12. ワークフロー管理システムにおいて実行するためのアプリケーションの生成を支援する装置であって、前記ワークフロー管理システム(16)はデータベース(22)を含み、前記アプリケーションは前記データベース(22)とのインタラクションを含むワークフロー(WF)を定義し、前記ワークフロー(WF)は、少なくとも一部において、複数のフェーズ(F)及び複数のフェーズ(F)の間の複数のトランジション(T)として表されることができる、装置であって、
    少なくとも1人のアプリケーション開発者によって複数のデータエントリ(T12,T23,T24,T4,T45)が追加されるべきトランジションテーブル(TT)を含むアプリケーション開発インタフェース(300)を提供する手段であって、前記複数のデータエントリ(T12,T23,T24,T4,T45)は前記ワークフロー(WF)の前記複数のフェーズ(F)の間の各々のトランジション(T)を定義し、前記アプリケーション開発インタフェース(300)は、前記少なくとも1人のアプリケーション開発者が、各データエントリに対して、自動(A)の動作パラメータ又は手動(M)の動作パラメータのうちの1つを選択することを可能にする、手段と、
    手動(M)の動作パラメータが、前記各々のトランジション(T)のうちの特定の1つに対して選択された場合、前記データベースにアクセスするために満たされるべき少なくとも1つの条件(405)を定義するためのインタフェース(400)を、前記少なくとも1人のアプリケーション開発者に提供する手段と、を備え、
    前記アプリケーション開発インタフェース(300)は、各動作パラメータ(A;M)の前記選択及び各条件(402)に応答して、メタデータを自動的に定義するためのものであり、また前記メタデータを、前記各々のトランジション(T)のうちの対応する1つと関連付けるためのものであり、
    前記装置は、ワークフロー実行の間、複数のコマンド(502)を自動的に呼び出して、前記ワークフロー(WF)の実行の現在のフェーズに応じて、前記メタデータに従って前記複数の動作パラメータを有効にするための、前記アプリケーションを構成する手段を更に備える、
    装置。
  13. 前記データベースはマルチテナントデータベース(22)であり、
    前記ワークフロー(WF)は、実行の間、複数のテナントと前記マルチテナントデータベース(22)との間のインタラクションを可能にするためのものである、
    請求項12記載の装置。
  14. 第1のトリガプロシージャ(TR1)を用いて、前記トランジションテーブル(TT)を確認して、トランジションが許可されるかを判断するように更に構成された、
    請求項12記載の装置。
  15. 前記アプリケーション開発インタフェースは、前記ワークフロー(WF)の前記複数のフェーズ(F)のうちの1つの編集(331)、前記ワークフロー(WF)の新たなフェーズの定義(340)、又は前記ワークフロー(WF)の前記複数のフェーズのうちの1つの削除(331)のうちの少なくとも1つを可能にするように構成されたユーザインタフェース(301d)を更に備える、
    請求項12記載の装置。
  16. 前記トランジションテーブルは、前記複数のフェーズ(F)の間の可能性のある複数のトランジション(T)のマトリクス(TS)を含み、各可能性のあるトランジション(T)は、前記自動(A)の動作パラメータ又は手動(M)の動作パラメータのうちの1つを選択するように、前記少なくとも1人のアプリケーション開発者によって、選択可能である、
    請求項12記載の装置。
  17. 前記ワークフロー(WF)の前記複数のフェーズ(F)の間の可能性のある複数のトランジション(T)を前記マトリクス(TS)に自動的に追加することによって、視覚化を提供するように構成される、ことを特徴とする、
    請求項16記載の装置。
  18. 前記ワークフローは顧客関係管理ワークフロー(CRM)を表し、
    前記装置は、記録タイプフィールドを追加するための、前記ワークフロー管理システム(16)の要求管理オブジェクトの選択的な修正を提供する(206)、
    ように更に構成されることを特徴とする、
    請求項12記載の装置。
  19. 少なくともコンピュータのメモリ内に直接的に読み込み可能であるコンピュータプログラムプロダクトであって、
    コンピュータ上で実行するとき、請求項1〜11のうちの1つ又は複数の請求項のステップを実行するソフトウェアコード部分を備える、
    コンピュータプログラムプロダクト。
JP2015123694A 2014-06-20 2015-06-19 ワークフロー管理システムにおいて実行するためのアプリケーションを開発する方法、及びワークフロー管理システムにおいて実行するためのアプリケーションの生成を支援する装置 Active JP6487282B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
ITTO20140492 2014-06-20
ITTO2014A000492 2014-06-20

Publications (2)

Publication Number Publication Date
JP2016029558A JP2016029558A (ja) 2016-03-03
JP6487282B2 true JP6487282B2 (ja) 2019-03-20

Family

ID=51399717

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015123694A Active JP6487282B2 (ja) 2014-06-20 2015-06-19 ワークフロー管理システムにおいて実行するためのアプリケーションを開発する方法、及びワークフロー管理システムにおいて実行するためのアプリケーションの生成を支援する装置

Country Status (3)

Country Link
US (1) US9977654B2 (ja)
EP (2) EP2958061A1 (ja)
JP (1) JP6487282B2 (ja)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021161104A1 (en) 2020-02-12 2021-08-19 Monday.Com Enhanced display features in collaborative network systems, methods, and devices
US11410129B2 (en) 2010-05-01 2022-08-09 Monday.com Ltd. Digital processing systems and methods for two-way syncing with third party applications in collaborative work systems
WO2021220058A1 (en) 2020-05-01 2021-11-04 Monday.com Ltd. Digital processing systems and methods for enhanced collaborative workflow and networking systems, methods, and devices
US10387836B2 (en) * 2015-11-24 2019-08-20 David Howard Sitrick Systems and methods providing collaborating among a plurality of users
US20160306503A1 (en) * 2015-04-16 2016-10-20 Vmware, Inc. Workflow Guidance Widget with State-Indicating Buttons
US11580472B2 (en) * 2015-05-14 2023-02-14 Palantir Technologies Inc. Systems and methods for state machine management
US9626171B2 (en) 2015-07-24 2017-04-18 Oracle International Corporation Composing a module system and a non-module system
US10104090B2 (en) 2015-08-25 2018-10-16 Oracle International Corporation Restrictive access control for modular reflection
US10528327B2 (en) * 2015-11-23 2020-01-07 Microsoft Technology Licensing Llc Workflow development system with ease-of-use features
US10452518B2 (en) * 2015-12-02 2019-10-22 Veeva Systems Inc. Uploading tenant code to a multi-tenant system
US10394528B2 (en) 2016-03-30 2019-08-27 Oracle International Corporation Returning a runtime type loaded from an archive in a module system
US10360008B2 (en) 2016-09-16 2019-07-23 Oracle International Corporation Metadata application constraints within a module system based on modular encapsulation
US10341420B1 (en) * 2016-10-14 2019-07-02 Amazon Technologies, Inc. Approaches for preparing and delivering bulk data to clients
CN106528172A (zh) * 2016-11-24 2017-03-22 广州途道信息科技有限公司 一种实现图像化编程的方法
CN106527227A (zh) * 2016-11-24 2017-03-22 广州途道信息科技有限公司 一种实现图像化编程的控制设备
US10909255B2 (en) * 2017-08-24 2021-02-02 Data Republic Pty Ltd Systems and methods to control data access and usage
US11436359B2 (en) 2018-07-04 2022-09-06 Monday.com Ltd. System and method for managing permissions of users for a single data type column-oriented data structure
US11698890B2 (en) 2018-07-04 2023-07-11 Monday.com Ltd. System and method for generating a column-oriented data structure repository for columns of single data types
US20200265353A1 (en) * 2019-02-15 2020-08-20 Siemens Product Lifecycle Management Software Inc. Intelligent workflow advisor for part design, simulation and manufacture
US10452360B1 (en) 2019-03-19 2019-10-22 Servicenow, Inc. Workflow support for dynamic action input
US10929107B2 (en) 2019-03-19 2021-02-23 Servicenow, Inc. Workflow support for dynamic action output
CN110308804A (zh) * 2019-05-16 2019-10-08 艾维克科技股份有限公司 滑鼠装置及其计算机控制系统
US11966774B2 (en) * 2019-10-25 2024-04-23 Microstrategy Incorporated Workflow generation using multiple interfaces
US20210150135A1 (en) 2019-11-18 2021-05-20 Monday.Com Digital processing systems and methods for integrated graphs in cells of collaborative work system tables
EP4062313A1 (en) 2019-11-18 2022-09-28 Monday.com Ltd. Collaborative networking systems, methods, and devices
US11880323B2 (en) * 2020-01-28 2024-01-23 Relativity Oda Llc System and method for building and implementing automated workflows
US11829953B1 (en) 2020-05-01 2023-11-28 Monday.com Ltd. Digital processing systems and methods for managing sprints using linked electronic boards
US11277361B2 (en) 2020-05-03 2022-03-15 Monday.com Ltd. Digital processing systems and methods for variable hang-time for social layer messages in collaborative work systems
US11397847B1 (en) 2021-01-14 2022-07-26 Monday.com Ltd. Digital processing systems and methods for display pane scroll locking during collaborative document editing in collaborative work systems
WO2024025522A1 (en) * 2022-07-27 2024-02-01 Rakuten Symphony Singapore Pte. Ltd. Method, system and computer program product for customizable presentation of workflow transition
US11741071B1 (en) 2022-12-28 2023-08-29 Monday.com Ltd. Digital processing systems and methods for navigating and viewing displayed content
US11886683B1 (en) 2022-12-30 2024-01-30 Monday.com Ltd Digital processing systems and methods for presenting board graphics
US11893381B1 (en) 2023-02-21 2024-02-06 Monday.com Ltd Digital processing systems and methods for reducing file bundle sizes

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001003037A2 (en) * 1999-07-01 2001-01-11 Microsoft Corporation Workflow method and system
US20030195789A1 (en) * 2001-03-30 2003-10-16 Yen Scott Shyh Guang Method for incorporating human-based activities in business process models
JP2003076543A (ja) * 2001-08-31 2003-03-14 Cats Kk プログラム生成装置、プログラム生成方法およびその方法をコンピュータに実行させるプログラム
JP2004070516A (ja) * 2002-08-02 2004-03-04 Hitachi Information Systems Ltd ワークフロー管理システム
US7421546B2 (en) * 2004-02-12 2008-09-02 Relaystar Sa/Nv Intelligent state engine system
US20060069605A1 (en) * 2004-09-29 2006-03-30 Microsoft Corporation Workflow association in a collaborative application
US7747958B2 (en) * 2005-04-18 2010-06-29 Research In Motion Limited System and method for enabling assisted visual development of workflow for application tasks
US8887133B2 (en) * 2006-04-28 2014-11-11 Bmc Software, Inc. Bi-directional communication between change management tool and implementation tools
US20100293027A1 (en) * 2007-04-12 2010-11-18 Eric Denis Du Fosse Workflow engine for media production and distribution
US9936205B2 (en) * 2009-07-10 2018-04-03 Open Invention Network Llc Method and apparatus of creating media content
US8966440B2 (en) * 2011-08-29 2015-02-24 Salesforce.Com, Inc. Custom application creation in multi-tenant systems
US8818783B2 (en) * 2011-09-27 2014-08-26 International Business Machines Corporation Representing state transitions

Also Published As

Publication number Publication date
EP2958061A1 (en) 2015-12-23
US20150370540A1 (en) 2015-12-24
EP3598357A1 (en) 2020-01-22
US9977654B2 (en) 2018-05-22
JP2016029558A (ja) 2016-03-03

Similar Documents

Publication Publication Date Title
JP6487282B2 (ja) ワークフロー管理システムにおいて実行するためのアプリケーションを開発する方法、及びワークフロー管理システムにおいて実行するためのアプリケーションの生成を支援する装置
US11762963B1 (en) Runtime management of application components
US11620117B2 (en) Systems and methods for code clustering analysis and transformation
US11188319B2 (en) Systems and methods for entry point-based code analysis and transformation
US10528343B2 (en) Systems and methods for code analysis heat map interfaces
US9612708B2 (en) Systems and methods for polymorphic content generation in a multi-application, multi-tenant environment
US20110016448A1 (en) System and method for rapid development of software applications
US20050125715A1 (en) Method of saving data in a graphical user interface
US11689609B2 (en) Mechanism for webpage composition
US11468229B2 (en) Describing changes in a workflow based on changes in structured documents containing workflow metadata
US20170185612A1 (en) Dynamically designing web pages
US11120200B1 (en) Capturing unstructured information in application pages
KR20130040057A (ko) SaaS 환경에서의 홈페이지 제작 시스템 및 방법, 그 방법을 컴퓨터에서 실행하기 위한 컴퓨터 프로그램이 기록된, 컴퓨터로 판독 가능한 기록 매체
KR20180060360A (ko) 클라우드 컴퓨팅 환경에서 제공되는 총무 관리 프로그램에서 사용자 정의에 따른 사용자 인터페이스 제공 방법 및 장치
KR20130051594A (ko) 웹기반 소프트웨어 생성 방법 및 장치
US11886434B1 (en) Management of application entities
Leung et al. Developing Model-Driven Apps
Vesterli Oracle Visual Builder Cloud Service Revealed
Beckner et al. Administering, Configuring, and Maintaining Microsoft Dynamics 365 in the Cloud
KR20130040167A (ko) SaaS 환경에서의 홈페이지 제작 시스템, 그 시스템의 기능을 컴퓨터에서 실행하기 위한 컴퓨터 프로그램이 기록된, 컴퓨터로 판독 가능한 기록 매체
EP3166016A1 (en) Combinatory working method for standardized elements in personal workspace, and computer program product and system using said method
Sinay Microsoft Dynamics CRM 2011 Reporting
Johannes SAP CRM: Technical Principles and Programming
Rubarth First Steps in ABAP
Bowley Rapid Portlet Development with WebSphere Portlet Factory: Step-by-step Guide for Building Your Own Portlets

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180219

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190116

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: 20190129

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190221

R150 Certificate of patent or registration of utility model

Ref document number: 6487282

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250