ワークフローの定義

intersystems.com

ワークフローの定義

ワークフローの 定 義Version 2013.12013 年 07 月 02 日InterSystems Corporation 1 Memorial Drive Cambridge MA 02142 www.intersystems.com


ワークフローの 定 義Ensemble Version 2013.1 2013 年 07 月 02 日Copyright © 2012 InterSystems CorporationAll rights reserved.このドキュメントは、 Sun Microsystems、RenderX Inc.、 アドビ システムズ および ワールドワイド・ウェブ・コンソーシアム(www.w3c.org)のツールと情 報 を 使 用 して、 Adobe Portable Document Format (PDF)で 作 成 およびフォーマットされました。 主 要 ドキュメント 開 発 ツールは、InterSystemsが 構築 したCacheéと Javaを 使 用 した 特 別 目 的 のXML 処 理 アプリケーションです。, ,Caché WEBLINK, Distributed Cache Protocol, M/SQL, M/NET および M/PACT は InterSystems Corporation の 登 録 商 標 です。, , and ,InterSystems TrakCare, InterSystems Jalapeño Technology, Enterprise Cache Protocol, ECP および InterSystems Zen は InterSystems Corporation の登 録 商 標 です。ここで 使 われている 他 の 全 てのブランドまたは 製 品 名 は、 各 社 および 各 組 織 の 商 標 または 登 録 商 標 です。このドキュメントは、インターシステムズ 社 ( 住 所 :One Memorial Drive, Cambridge, MA 02142)あるいはその 子 会 社 が 所 有 する 企 業 秘 密 および 秘 密情 報 を 含 んでおり、インターシステムズ 社 の 製 品 を 稼 動 および 維 持 するためにのみ 提 供 される。この 発 行 物 のいかなる 部 分 も 他 の 目 的 のために 使用 してはならない。また、インターシステムズ 社 の 書 面 による 事 前 の 同 意 がない 限 り、 本 発 行 物 を、いかなる 形 式 、いかなる 手 段 で、その 全 てまたは一 部 を、 再 発 行 、 複 製 、 開 示 、 送 付 、 検 索 可 能 なシステムへの 保 存 、あるいは 人 またはコンピュータ 言 語 への 翻 訳 はしてはならない。かかるプログラムと 関 連 ドキュメントについて 書 かれているインターシステムズ 社 の 標 準 ライセンス 契 約 に 記 載 されている 範 囲 を 除 き、ここに 記 載 された 本 ドキュメントとソフトウェアプログラムの 複 製 、 使 用 、 廃 棄 は 禁 じられている。インターシステムズ 社 は、ソフトウェアライセンス 契 約 に 記 載 されている 事 項 以 外 にかかるソフトウェアプログラムに 関 する 説 明 と 保 証 をするものではない。さらに、かかるソフトウェアに 関 する、あるいはかかるソフトウェアの 使 用 から 起 こるいかなる 損 失 、 損 害 に 対 するインターシステムズ 社 の 責 任 は、ソフトウェアライセンス 契 約 にある 事 項 に 制 限 される。前 述 は、そのコンピュータソフトウェアの 使 用 およびそれによって 起 こるインターシステムズ 社 の 責 任 の 範 囲 、 制 限 に 関 する 一 般 的 な 概 略 である。 完全 な 参 照 情 報 は、インターシステムズ 社 の 標 準 ライセンス 契 約 に 記 され、そのコピーは 要 望 によって 入 手 することができる。インターシステムズ 社 は、 本 ドキュメントにある 誤 りに 対 する 責 任 を 放 棄 する。また、インターシステムズ 社 は、 独 自 の 裁 量 にて 事 前 通 知 なしに、 本 ドキュメントに 記 載 された 製 品 および 実 行 に 対 する 代 替 と 変 更 を 行 う 権 利 を 有 する。インターシステムズ 社 の 製 品 に 関 するサポートやご 質 問 は、 以 下 にお 問 い 合 わせください:Tel:Fax:Email:InterSystems Worldwide Customer Support+1 617 621-0700+1 617 374-9391support@InterSystems.com


目 次このドキュメントの 概 要 ...................................................................................................... 11 Ensemble 内 のワークフローの 概 要 .................................................................................. 31.1 概 要 .................................................................................................................. 31.1.1 Ensemble への 統 合 ..................................................................................... 31.1.2 複 合 アプリケーションのサポート ..................................................................... 41.1.3 生 産 性 機 能 ................................................................................................ 41.2 プロダクション 内 のワークフロー・コンポーネント ......................................................... 41.3 ワークフロー・ロールとワークフロー・ユーザ ............................................................... 51.4 ワークフローのユーザ・インタフェース ...................................................................... 61.4.1 実 装 担 当 者 とスーパーバイザ ........................................................................ 61.4.2 エンド・ユーザ ............................................................................................. 61.5 タスクのライフ・サイクル ......................................................................................... 71.6 タスク・フォームとカスタマイズ・オプション ................................................................. 71.7 タスク 分 配 のオプション ......................................................................................... 81.7.1 カスタム・タスク 分 配 ..................................................................................... 92 ワークフローの 開 発 ..................................................................................................... 112.1 概 要 ................................................................................................................. 112.2 ビジネス・プロセスの 設 計 ..................................................................................... 132.3 ワークフロー・プロセスの 作 成 ............................................................................... 132.3.1 タスク 要 求 の 定 義 ....................................................................................... 142.3.2 タスク 応 答 の 使 用 ....................................................................................... 142.3.3 プロダクションへのワークフロー・プロセスの 追 加 ............................................. 152.4 プロダクションへのワークフロー・オペレーションの 追 加 ............................................. 162.5 次 のステップ ...................................................................................................... 163 ワークフローへのカスタム 機 能 の 組 み 込 み ...................................................................... 173.1 標 準 タスク・フォームの 拡 張 .................................................................................. 173.2 カスタム・タスク・フォームの 使 用 ............................................................................ 183.3 タスク 分 配 方 式 のカスタマイズ .............................................................................. 193.3.1 カスタム・タスク 応 答 クラスの 作 成 .................................................................. 203.3.2 カスタム・タスク 応 答 クラスの 呼 び 出 し ............................................................ 204 ワークフローのテスト .................................................................................................... 234.1 テストのチェックリスト ........................................................................................... 234.2 ビジュアル・トレースでのワークフロー・アクティビティの 表 示 ....................................... 23付 録 A: ワークフロー・サンプルの 紹 介 ............................................................................... 25A.1 サンプルの 概 要 ................................................................................................. 25A.2 セットアップ・タスク ............................................................................................. 25A.3 サンプル・リクエスト・メッセージ ............................................................................. 26A.4 ビジネス・プロセス・クラスのサンプル ..................................................................... 26A.5 コントロール・フローのサンプル ............................................................................ 31A.6 ダッシュボードとメトリック ...................................................................................... 32付 録 B: 使 用 可 能 なワークフロー・メトリック .......................................................................... 35索 引 ............................................................................................................................ 39ワークフローの 定 義iii


このドキュメントの 概 要このドキュメントでは、Ensemble ワークフロー・エンジンのオペレーションについて、およびそれを 使 用 して Ensemble 統合 ソリューションにワークフローを 構 築 する 方 法 について 説 明 します。このドキュメントの 内 容 は 次 のとおりです。• Ensemble 内 のワークフローの 概 要• ワークフローの 開 発• ワークフローへのカスタム 機 能 の 組 み 込 み• ワークフローのテスト• ワークフロー・サンプルの 紹 介• 使 用 可 能 なワークフロー・メトリック詳 細 な 概 要 は、 目 次 を 参 照 してください。以 下 のドキュメントでは、 関 連 する 情 報 について 説 明 しています。• "Ensemble のベスト・プラクティス" では、Ensemble プロダクションの 編 成 と 開 発 に 関 するベスト・プラクティスについて 説 明 します。• "Ensemble プロダクションの 開 発 " では、Ensemble プロダクションの 作 成 に 関 連 した 開 発 タスクの 実 行 方 法 について 説 明 します。• "Ensemble プロダクションの 構 成 " では、Ensemble プロダクションの 作 成 に 関 連 した 構 成 タスクの 実 行 方 法 について 説 明 します。• "Ensemble の 管 理 " では、 管 理 ポータルの Ensemble ページの 使 用 方 法 について 説 明 します。 特 に、“ワークフロー・ロール、ワークフロー・ユーザ、およびワークフロー・タスクの 管 理 ” の 章 を 参 照 してください。一 般 情 報 は、"InterSystems ドキュメント・ガイド" を 参 照 してください。ワークフローの 定 義 1


1Ensemble 内 のワークフローの 概 要この 章 では、Ensemble 内 のワークフロー 機 能 の 概 要 を 説 明 します。 以 下 のトピックについて 説 明 します。• 概 要• プロダクション 内 のワークフロー・コンポーネント• ワークフロー・ロールとワークフロー・ユーザ• ワークフローのユーザ・インタフェース• タスクのライフ・サイクル• タスク・フォームとカスタマイズ・オプション• タスク 分 配 のオプション1.1 概 要ワークフロー 管 理 システムによって、ユーザ 間 でのタスクの 分 配 が 自 動 化 されます。 事 前 に 設 定 した 方 式 に 従 ってタスクの 分 配 を 自 動 化 することで、タスクの 割 り 当 てが 効 率 化 されると 共 に、タスク 実 行 の 責 任 がより 明 確 になります。 一 般 的 な例 としては、 顧 客 から 問 題 レポートを 受 け 取 り、 適 切 な 組 織 のメンバにそれらのレポートを 転 送 して 対 応 を 求 め、 問 題 が解 決 されると、 顧 客 に 結 果 を 報 告 するヘルプ・デスク・アプリケーションが 挙 げられます。これ 以 降 の 項 で 説 明 するように、Ensemble ワークフロー・エンジンは、 従 来 のスタンドアロンのワークフロー 管 理 システムに 比 べ、きわめて 高 レベルの 機 能 を 備 えています。1.1.1 Ensemble への 統 合Ensemble ワークフロー・エンジンでは、Ensemble アーキテクチャが 最 大 限 に 活 用 されます。このため、Ensemble ワークフロー・エンジンは、 企 業 のアプリケーション、テクノロジ、データ、および 人 間 の 参 加 者 とシームレスに 連 携 できます。このコラボレーションで 最 も 重 要 な 事 項 は、 以 下 のとおりです。• “ストレートスルー” ビジネス・プロセス (つまり、 完 全 に 自 動 化 されたビジネス・プロセス) は、 特 に 大 量 の 注 文 の 承認 などの 例 外 的 なケースを 扱 うために 人 間 の 介 入 を 組 み 込 むことができます。• Ensemble ワークフローは 企 業 アプリケーションを 呼 び 出 して、 人 間 のワークフロー 内 のイベントを 通 知 したり、 人 間のワークフローが 必 要 とする 追 加 情 報 を 入 手 したりできます。• 永 続 性 : ワークフロー・エンジンは Ensemble 永 続 ストレージ 機 能 を 活 用 して、 完 了 するまで 数 日 または 数 週 間 かかる、 長 期 間 実 行 されるビジネス・プロセスをサポートします。ワークフローの 定 義 3


Ensemble 内 のワークフローの 概 要1.1.2 複 合 アプリケーションのサポートEnsemble では、 開 発 者 が 企 業 内 のさまざまなシステムとテクノロジにまたがる 複 合 アプリケーションを 簡 単 に 作 成 することができる、 豊 富 な 機 能 が 備 えられた 開 発 環 境 を 利 用 できます。ワークフロー・エンジンは Ensemble 内 に 完 全 に 統 合 されているため、 以 下 のことが 実 現 します。• 複 合 アプリケーションによって、 地 理 的 、 技 術 的 および 部 門 の 区 分 を 越 える 複 雑 な 情 報 交 流 のしくみを 容 易 に 組 み込 むことができます。• ユーザベースのプロセス 定 義 はビジネス・ロジックから 切 り 離 すことができ、 開 発 者 やアナリストは 各 セグメントを 1 つのまとまりの 中 に 明 確 に 定 義 できます。• ワークフロー・システムは、 機 能 および 性 能 が 増 し、 作 成 しやすく、メンテナンスが 簡 単 になりました。1.1.3 生 産 性 機 能Ensemble ワークフロー・エンジンでは、 以 下 のような 生 産 性 ツールを 使 用 する 自 動 統 合 が 実 現 します。• ビジネス・プロセス・デザイナ : ワークフロー・アナリストは、Ensemble のグラフィカル 編 集 ツールであるビジネス・プロセス・デザイナを 使 用 してワークフローを 作 成 できます。ビジネス・プロセス・デザイナは、ビジネス・プロセス・ダイアグラムに 基 づいて 本 格 的 な 実 用 コードを 自 動 的 に 生 成 します。• ビジネス・アクティビティ・モニタリング : 開 発 者 は 企 業 向 けダッシュボードおよびイベント・トリガを 簡 単 に 作 成 して、企 業 アナリストに 現 在 のワークフローのステータスを 提 示 できます。• ビジュアル・トレース : すべてのタスクはメッセージとして 送 信 されるので、システム 管 理 者 は 高 機 能 なビジュアル・トレース・メッセージ・トレース・ツールを 使 用 してタスクのステータスを 表 示 できます。1.2 プロダクション 内 のワークフロー・コンポーネント以 下 の 図 は、プロダクション 内 のワークフロー・コンポーネントを 示 しています。4 ワークフローの 定 義


ワークフロー・ロールとワークフロー・ユーザワークフロー・プロセスは、タスク 要 求 をワークフロー・オペレーションに 送 信 する BPL プロセスです。このプロセスは、これらのワークフロー・オペレーション 間 で 作 業 を 調 整 する 役 割 を 果 たします。このプロセスは、 標 準 のビジネス・オペレーション ( 人 的 介 入 を 必 要 としないもの) を 呼 び 出 すこともあります。ビジネス・プロセスを 完 了 するには、 両 方 のタイプの 要素 が 必 要 な 場 合 があります。ワークフロー・オペレーションは、ワークフロー・ロールを 表 す 特 定 用 途 のビジネス・オペレーションです ( 次 の 節 で 説 明 )。ワークフロー・オペレーションは、ワークフローの 受 信 トレイを 介 して、 関 連 付 けられたロールに 属 するすべてのユーザにタスクを 送 信 します。ワークフロー・プロセスは、ビジネス・プロセスが 他 の 種 類 の 要 求 メッセージを 他 の 種 類 のビジネス・オペレーションに 送信 するのとまったく 同 じ 方 法 で、ワークフロー・オペレーションにタスク 要 求 を 送 信 します。Ensemble 用 語 では、ワークフロー・タスクとは、 進 行 中 のビジネス・プロセスをサポートするためにオフラインで 実 行 される 処 理 の 項 目 です。Ensemble は、タスク 要 求 と 呼 ばれる 特 定 用 途 の Ensemble メッセージ・オブジェクトを 使 用 してタスクを 表 します。タスク 要 求 は、そのタスクの 作 業 に 関 する 情 報 を 伝 搬 します。ワークフロー・プロセスは、タスク 要 求 を 送 信して、タスク 応 答 を 受 信 します。 他 のすべてのメッセージと 同 様 に、これらのメッセージは 削 除 されるまでデータベースに保 存 されます ( 仮 に 削 除 される 場 合 )。1.3 ワークフロー・ロールとワークフロー・ユーザ一 般 的 な 組 織 では、 複 数 のユーザが 特 定 の 同 一 タスクを 実 行 できることがあります。したがって、 複 数 のユーザへのタスク 分 配 を 統 制 するために、Ensemble ではワークフロー・ロールが 使 用 されます。ワークフロー・ロールは、 特 定 の 種 類 のタスクを 実 行 できるユーザのリストです。理 論 的 には、1 つの 企 業 では、ワークフロー・ロールをいくつでも 定 義 できます。 実 際 には、ロールは 社 内 で、 経 理 、 財務 、 窓 口 、マネージャ、スーパーバイザ、 役 員 などの 部 門 や 職 位 にマップします。ワークフローの 定 義 5


Ensemble 内 のワークフローの 概 要任 意 の 数 のワークフロー・ユーザをワークフロー・ロールのメンバにできます。ロールへのユーザの 割 り 当 ては、 実 際 的 な視 点 および 組 織 的 な 視 点 から 考 えて、 適 切 である 必 要 があります。あるユーザにタスクの 実 行 を 許 可 する 場 合 、そのユーザは 対 応 するワークフロー・ロールのメンバである 必 要 があります。ワークフロー・ロールは、プロダクションごとではなく、Ensemble ネームスペースごとに 定 義 されます。つまり、 同 じワークフロー・ロール 定 義 を、 同 じ Ensemble ネームスペース 内 のすべてのプロダクションで 使 用 できます。ワークフロー・ユーザが Ensemble ユーザ・アカウントに 対 応 する 場 合 は ( 通 常 はそうですが)、これと 同 じことがワークフロー・ユーザにも 当てはまります。1.4 ワークフローのユーザ・インタフェースEnsemble では 現 在 、ワークフローをサポートするための 2 つのユーザ・インタフェースが 用 意 されています。これらのユーザ・インタフェースはそれぞれ 異 なるユーザ 群 を 対 象 にしています。1.4.1 実 装 担 当 者 とスーパーバイザ管 理 ポータルには、 実 装 担 当 者 やスーパーバイザがワークフローのロール、ユーザ、およびタスクを 管 理 するために 使用 できるページが 用 意 されています。これらのページにアクセスするには、[Ensemble] を 選 択 して、[ 管 理 ] をクリックし、[ワークフロー] をクリックします。これらのページはエンド・ユーザ 向 けではありません。スーパーバイザはタスクを 割 り 当 てたり 取 り 消 したりできますが、 他のアクション (タスクを 完 了 済 みとしてマークするなど) はここでは 実 行 できません。詳 細 は、"Ensemble の 管 理 " の “ワークフロー・ロール、ワークフロー・ユーザ、およびワークフロー・タスクの 管 理 ” を 参照 してください。1.4.2 エンド・ユーザユーザは DeepSee ユーザ・ポータル 内 で 自 身 のワークフロー・タスクを 管 理 し、このポータルには Ensemble ダッシュボード (および DeepSee ダッシュボード) も 表 示 されます。DeepSee ユーザ・ポータルには 管 理 ポータルからアクセスできますが、 多 くの 場 合 は、お 使 いのアプリケーションで DeepSee ユーザ・ポータルへの 直 接 リンクが 用 意 されています(ユーザ・ポータルにはタイトルはないため、すべてのユーザ 向 けの 汎 用 として 適 しています)。Ensemble ワークフロー・ユーザに 対 しては、ユーザ・ポータルのメイン 領 域 にワークフローの 受 信 トレイが 表 示 されます。以 下 に 例 を 示 します。ユーザが [ワークフローの 受 信 トレイ] をクリックすると、ユーザ・ポータルには 次 のような 内 容 が 表 示 されます。6 ワークフローの 定 義


タスクのライフ・サイクルユーザがタスクをクリックすると、 対 応 するタスク・フォームが 表 示 されます (このタスク・フォームを 構 成 またはカスタマイズできます)。 以 下 に 例 を 示 します。詳 細 は、"DeepSee ユーザ・ポータルの 使 用 法 " の “ポータルの 機 能 の 使 用 法 ” を 参 照 してください。1.5 タスクのライフ・サイクルEnsemble プロダクション 内 のタスクのライフ・サイクルは 以 下 のとおりです。1. ワークフロー・プロセスは 何 らかの 入 力 を 受 信 してから、タスク 要 求 (メッセージ) を 作 成 します。2. ワークフロー・プロセスはこのタスク 要 求 をワークフロー・オペレーションに 送 信 します。3. ワークフロー・オペレーションは、ワークフロー・エンジンへタスク 要 求 を 送 信 します。4. ワークフロー・エンジンは、 適 切 なタスク 応 答 オブジェクトをインスタンス 化 します。このオブジェクトには、 元 のタスク要 求 からのフィールドが 含 まれており、 同 じユーザへのタスク 分 配 を 管 理 します。5. タスク 分 配 は、デフォルト 方 式 またはカスタム 分 配 方 式 のどちらかに 従 って 行 われます。 詳 細 は、この 章 で 後 出 する“タスク 分 配 のオプション” を 参 照 してください。6. タスクが 割 り 当 てられて 完 了 すると、ワークフロー・エンジンはビジネス・プロセスへタスク 応 答 を 返 します。1.6 タスク・フォームとカスタマイズ・オプションDeepSee ユーザ・ポータル ( 前 述 の 説 明 を 参 照 ) は、 各 ユーザに 対 して 1 つのワークフロー 受 信 トレイを 提 供 します。ユーザがタスクをクリックすると、そのタスクに 固 有 のフォームが 表 示 されます。このフォームは 次 のようにカスタマイズできます。• このフォームはメタデータから 生 成 されます。メタデータは、 再 利 用 可 能 なテンプレート・ファイル 内 に 含 まれているか、 企 業 スタッフによって 実 行 時 に 定 義 されます。ワークフローの 定 義 7


Ensemble 内 のワークフローの 概 要• このフォームは、 企 業 の 標 準 に 適 合 するように 簡 単 にスタイル 設 定 できます。• 企 業 がユーザに 経 験 を 積 ませるために 社 内 技 術 の 活 用 を 望 む 場 合 は、Ensemble のワークフロー・タスクを XML 文書 、Web サービス、.NET、Java、C++ オブジェクトによって、またはリレーショナル 構 造 として、さまざまな 方 法 で 社 内の 技 術 に 対 して 使 用 できます。1.7 タスク 分 配 のオプションワークフロー・オペレーションがタスク 要 求 を 受 け 取 ると、 要 求 が Ensemble ワークフロー・エンジンに 渡 され、そのロール用 に 定 義 されたユーザの 1 人 にタスクが 分 配 されます。タスクを 分 配 するために 使 用 される 方 式 は Ensemble デフォルトで、 以 下 のように 機 能 します。• 各 ワークフロー・ユーザに 対 して 1 つのワークリストが 存 在 し、このワークリストには、そのユーザに 現 在 割 り 当 てられているか 関 連 付 けられているすべてのタスクが 一 覧 表 示 されます。 特 定 のユーザに 対 するアクティブなタスクのみがワークリストに 表 示 されます。タスクは、 完 了 、 破 棄 、 取 り 消 し、または 別 のユーザへの 再 割 り 当 てのいずれかが 行 われた 場 合 、リストから 削 除 されます。• ワークフロー・エンジンは、 要 求 が 送 信 されたワークフロー・ロールの 各 ユーザ 用 のワークリストで 受 け 取 るすべてのタスク 要 求 を 表 示 します。タスクが 最 初 に 表 示 される 場 合 、ステータスは [ 未 割 り 当 て] です。このタスクは、これらのすべてのユーザと 関 連 付 けられていると 表 現 されます。ステータスが [ 未 割 り 当 て] である 間 に、 関 連 付 けられた 各ユーザは、 自 分 のワークリストのタスクを 確 認 します。• ユーザはタスクの 所 有 権 をスーパーバイザによる 割 り 当 て、またはデフォルトによる 割 り 当 てから 取 得 できますが、 通常 所 有 権 を 取 得 するにはタスクを 受 け 入 れる 必 要 があります。ワークフロー・ロール 内 の 任 意 のユーザは、ワークフローの 受 信 トレイを 使 用 して、FCFS (first-come, first-served : 先 着 順 ) 方 式 で 自 身 のワークリスト 上 の 任 意 のタスクを 受 け 入 れることができます。• ユーザがタスクの 所 有 権 を 取 得 すると、タスクはそのユーザに 割 り 当 てられたことになります。タスクのステータスは、[ 未 割 り 当 て] から [ 割 り 当 て 済 み] に 変 わります。このタスクはそのタスクを 受 け 入 れたユーザのワークフロー 受 信 トレイには 残 りますが、そのワークフロー・ロールの 他 のユーザのワークフロー 受 信 トレイからは 消 えます。• タスク 要 求 には、 特 定 のユーザを 優 先 することを 表 すことができるプロパティがあります。そのユーザが 非 アクティブであるか、タスク 要 求 が 受 信 された 時 点 で 定 義 されていない 場 合 、ワークフロー・エンジンはワークフロー・オペレーションにエラーを 返 し、タスクは 実 行 されません。• スーパーバイザは 管 理 ポータルのワークフロー・ページからアクティブなタスクを 再 割 り 当 てすることができます。この 場 合 、タスクは 以 前 割 り 当 てられたユーザのワークリストから 消 えて、 新 しく 割 り 当 てられたユーザのワークリストに表 示 されます。• 割 り 当 てられたユーザは、タスクを 完 了 せずに、そのタスクを 放 棄 する 場 合 があります。ユーザが 未 完 了 の 状 態 のタスクを 放 棄 すると、そのタスクは 元 の [ 未 割 り 当 て] のステータスに 戻 り、ワークフロー・エンジンはそのタスクを、それぞれの 関 連 付 けられたユーザ (ワークフロー・ロール 内 の 各 ユーザ) のワークフロー 受 信 トレイに 表 示 します。• ワークフローの 進 行 中 にスーパーバイザがユーザ 定 義 を 削 除 するか、ユーザを 非 アクティブとしてマーキングすると、ユーザが 突 然 自 分 のタスクをすべて 放 棄 した 場 合 と 同 じ 結 果 になります。つまり、ユーザのワークリストにある 各タスクは [ 未 割 り 当 て] ステータスになり、ワークフロー・エンジンはそのタスクが 最 初 に 送 信 された 先 であるワークフロー・ロールに 属 するすべてのユーザのワークフロー 受 信 トレイに 各 タスクを 表 示 します。• スーパーバイザが、ワークリストの 進 行 中 にワークフロー・ロール 定 義 を 削 除 した 場 合 、そのロールに 対 する 未 処 理の 要 求 は 完 了 できますが、そのロールに 対 し、その 後 で 要 求 を 行 うとエラーが 発 生 します。ワークフロー・オペレーションの 名 前 と ( 存 在 しない) ロール 定 義 の 名 前 の 間 に 不 一 致 が 発 生 するためです。• 各 タスク 要 求 は、1 つまたは 複 数 のアクションを 指 定 します。 各 アクションは、 関 連 付 けられたタスク・フォームで [ 承認 ] や [ 放 棄 ] などのボタンとして 表 示 される 文 字 列 です。 割 り 当 てられたユーザはこれらのボタンの 1 つをクリックして、タスクを 完 了 させ、ビジネス・プロセスに 応 答 を 返 信 できます。8 ワークフローの 定 義


タスク 分 配 のオプション• 割 り 当 てられたユーザがタスクに 対 するアクション・ボタンをクリックすると、ワークフロー・エンジンが、ユーザが 選 択したアクション 名 を 含 む、タスク 応 答 オブジェクトのさまざまなプロパティを 設 定 してワークフロー・オペレーションにこの 応 答 を 返 し、ここから 元 の 要 求 ビジネス・プロセスに 応 答 が 渡 されます。ワークフロー・エンジンは、タスクを [ 完 了 ]とマーキングして、すべてのワークリストからそのタスクを 削 除 します。• 完 了 後 、すべてのタスクの 完 全 なレコードはプロダクションのメッセージ・ウェアハウスに 残 り、Ensemble 管 理 ポータルから 表 示 できます。ワークフローに 直 接 関 連 するタスクの 詳 細 は、Workflow Management Portal から 表 示 できます。これは、メッセージが 適 切 に 完 了 せずに 破 棄 されたか 取 り 消 された 場 合 、またはエラーが 発 生 した 場 合 でも 当てはまります。タスクの 分 配 に 使 用 される 方 式 は、タスク 応 答 クラス EnsLib.Workflow.TaskResponse の OnNewTask() メソッドに 埋 め 込まれます。 必 要 に 応 じて、このクラスとそのメソッドのサブクラスを 作 成 して、ロジックを 変 更 できます。 手 順 については、“ワークフローへのカスタム 機 能 の 組 み 込 み” を 参 照 してください。1.7.1 カスタム・タスク 分 配ワークフロー 設 計 者 は、ワークフロー 定 義 内 でさまざまなタスク 分 配 方 式 を 使 用 できます。Ensemble ワークフロー・エンジンには 以 下 の 方 式 が 組 み 込 まれています。• FCFS (first come, first served)• ジョブのタイトルによる 割 り 当 て• 名 前 による 割 り 当 て• ユーザ 定 義 のランキングによる 割 り 当 て• 現 在 のユーザの 作 業 負 荷 による 割 り 当 て• 他また、カスタムのタスク 分 配 方 式 を 新 規 作 成 することもできます。ワークフローの 定 義 9


2ワークフローの 開 発この 章 では、ワークフローを 開 発 してプロダクションに 追 加 する 方 法 を 説 明 します。 次 の 章 では、 開 発 時 に 実 行 できるオプションのカスタマイズについて 詳 述 します。この 章 は 以 下 のトピックで 構 成 されています。• 概 要• ワークフロー・プロセスの 設 計• ワークフロー・プロセスの 作 成 と 追 加• プロダクションへのワークフロー・オペレーションの 追 加• 次 のステップ付 録 “ワークフロー・サンプルの 紹 介 ” では、ENSDEMO ネームスペースで 使 用 できる 簡 単 なサンプルを 紹 介 しています。2.1 概 要以 下 の 図 は、プロダクション 内 のワークフロー 要 素 を 示 しています。ワークフローの 定 義 11


ワークフローの 開 発これらのコンポーネントは 以 下 のとおりです ( 左 から 右 の 順 )。• メッセージ 要 求 クラスは、プロダクション 内 の 別 の 場 所 にある 発 信 元 からワークフローの 具 体 的 な 詳 細 情 報 を 伝 送 します。これは、 各 自 が 定 義 できる 標 準 のメッセージ 要 求 クラスです。つまり、Ens.Request のサブクラスまたは 別 の 永続 クラスのサブクラス ( 前 者 の 場 合 の 方 が 多 い) です。• メッセージ 応 答 クラスは、 当 該 タスクが 完 了 するか 他 の 形 で 処 理 された 後 に、ワークフローの 具 体 的 な 詳 細 情 報 を 発信 元 に 返 送 します。これは、 各 自 が 定 義 できる 標 準 のメッセージ 応 答 クラスです。つまり、Ens.Response のサブクラスまたは 別 の 永 続 クラスのサブクラスです ( 前 者 の 場 合 の 方 が 多 いです)。このドキュメントでは、このクラスや 対 応 する 要 求 クラスの 定 義 に 関 する 特 別 な 詳 細 情 報 は 提 供 していません。これらの 実 装 は 各 自 のニーズに 全 面 的 に 依 存 しているからです。• 通 信 の 調 整 役 として 機 能 するワークフロー・プロセス。ワークフロー・プロセスを 作 成 するには、 以 下 の 操 作 を 行 います。1. ビジネス・プロセス・デザイナを 使 用 して、Ens.BusinessProcess.BPL を 基 本 クラスとするビジネス・プロセスを 作成 します。このビジネス・プロセスには、 受 信 メッセージを 受 信 するためのロジック、および 必 要 に 応 じて 同 じプロダクション 内 のビジネス・オペレーションを ( 非 同 期 的 に) 呼 び 出 すためのロジックが 含 まれている 必 要 があります。2. このビジネス・プロセスをプロダクションに 通 常 どおりに 追 加 します。• 特 別 なメッセージ・クラスである EnsLib.Workflow.TaskRequest は、ビジネス・プロセスから 要 求 を 伝 送 します。同 様 に、 特 別 なメッセージ・クラスである EnsLib.Workflow.TaskResponse は、ワークフロー・エンジンから 応 答 を 伝送 します。12 ワークフローの 定 義


ビジネス・プロセスの 設 計サブクラスを 作 成 して 使 用 することもできますが、これらのクラスは 柔 軟 な 方 法 で 情 報 を 伝 送 できるように 設 計 されているため、 通 常 はその 必 要 はありません。• 各 ワークフロー・オペレーションはタスク 要 求 を 受 信 して、ワークフロー・エンジンと 通 信 し、ワークフロー・エンジンはタスクを 特 定 のユーザに 表 示 します。 特 に、 各 ワークフロー・オペレーションにはワークフロー・ロールが 1 つだけ 関連 付 けられています。ワークフロー・オペレーションは、そのワークフロー・ロールに 属 するすべてのユーザにタスクを 表 示 します ( 他 のユーザにはこれらのタスクは 表 示 されません)。これらのタスクのそれぞれを 作 成 するには、EnsLib.Workflow.Operation を 基 本 クラスとするビジネス・オペレーションを 追 加 します。 構 成 はほとんど 必 要 ありません。または、EnsLib.Workflow.Operation のサブクラスを 作 成 して、ワークフロー・エンジンと 独 自 の 方 法 で 相 互 動 作 するためのそのコールバック・メソッドを 実 装 することもできます。2.2 ビジネス・プロセスの 設 計最 初 のステップは、ビジネス・プロセス・クラスを 設 計 して、いくつかの 重 要 な 決 定 を 下 すことです。1. ワークフローへの 呼 び 出 し ( 人 間 のプロセス) が 発 生 する 箇 所 を 特 定 します。2. これらの 各 呼 び 出 しはタスクです。 各 タスクに 名 前 をつけます。3. タスクが 送 信 される 各 ワークフロー・ロールに 名 前 をつけます。4. 各 タスクのタスク 分 配 方 式 を 決 定 します ( 通 常 はデフォルト 方 式 )。5. ビジネス・プロセスを 呼 び 出 すために 必 要 な 任 意 のメッセージ・タイプを 作 成 します。このドキュメントでは、これらのメッセージの 定 義 に 関 する 特 別 な 詳 細 情 報 は 提 供 していません。これらの 実 装 は 各自 のニーズに 全 面 的 に 依 存 しているからです。6. 次 の 節 の 説 明 に 従 ってビジネス・プロセス・クラスを 作 成 します。2.3 ワークフロー・プロセスの 作 成ワークフロー・プロセスを 作 成 するには、"BPL プロセスの 開 発 " の 説 明 に 従 って、ビジネス・プロセス・デザイナを 使 用 します。ビジネス・プロセスのタスク 別 に、 以 下 を 実 行 します。• ワークフロー・オペレーションを 非 同 期 で 呼 び 出 すために を 指 定 します。• で、 宛 先 ワークフロー・オペレーションを 名 前 で 指 定 します。 各 ワークフロー・オペレーションは 1 つのみのワークフロー・ロールと 関 連 付 けられており、そのワークフロー・ロールは 構 成 可 能 な 1 つのユーザ・セットに 対 応 しています。• で、 適 切 なタスク 要 求 オブジェクト (EnsLib.Workflow.TaskRequest またはサブクラス) を 使 用 し、そのオブジェクトのプロパティを 設 定 します。 では、タスク 応 答 オブジェクト (EnsLib.Workflow.TaskResponse またはサブクラス) を 検 査 し、このオブジェクトを 使 用 して BPL の context 変 数 を 設 定 することも 必 要 になります (この 変 数 は 後 の 処 理 で 使 用 されます)。• を 設 定 して、 非 同 期 の 結 果 をキャッチします。例 については、 付 録 “ワークフロー・サンプルの 紹 介 ” を 参 照 してください。ワークフローの 定 義 13


ワークフローの 開 発2.3.1 タスク 要 求 の 定 義プロセス 内 の 各 では、そのメッセージ・クラスとして EnsLib.Workflow.TaskRequest またはサブクラスを 使 用 する必 要 があります。 要 求 を 定 義 するには、 に callrequest 変 数 のプロパティを 設 定 する 必 要 があります。以 下 のテーブルは、EnsLib.Workflow.TaskRequest の 使 用 可 能 なプロパティを 一 覧 表 示 しています。これらのプロパティはすべてオプションですが、 当 然 ながら、ビジネス・プロセスはワークフロー・エンジンが 必 要 とするすべての 情 報 を 送 信する 必 要 があります。プロパティ%Actions%Command%FormTemplate%FormFields%FormValues%Message%Priority%Subject%TaskHandler%Title%UserName目 的オプション。このタスク 用 に 定 義 されているアクションのカンマ 区 切 りリスト。 例 えば、"Approve,Reject,NeedMoreInfo"。これらによって、タスクを 確 認 するときに 表 示 されるアクション・ボタンが 決 まります。 選 択 したユーザ・アクションは、タスク 応 答 の 一 部 として 返 されます。オプション。ワークフロー・エンジンに 引 き 渡 されるコマンド 文 字 列 。これを 使 用 すると、データ 駆 動型 のカスタム 動 作 をタスクに 追 加 できます。オプション。このタスクの HTML フォーム・テンプレートを 表 示 する Caché Server Pages (CSP)ページの 名 前 。オプション。このタスクに 関 連 付 けられているフォームに 表 示 されるフィールドのカンマ 区 切 りリスト。オプション。このタスクに 関 して 表 示 されるフォーム 内 に 表 示 する 値 の 集 まり。オプション。このタスクの 詳 細 なメッセージ 本 文 。これは、ユーザがタスクを 確 認 したときに 表 示 されます。オプション。 要 求 したタスクの 優 先 順 位 (1 が 最 高 )。この 値 は、ユーザのワークリスト 内 にある 項目 の 並 べ 替 えに 使 用 します。オプション。このタスクの 簡 単 な 要 約 。これは、[ユーザ] ワークリストに 表 示 されます。オプション。このタスクの 分 配 を 管 理 するために 使 用 する 応 答 クラスの 名 前 。この 要 求 の 応 答 タイプとしても 使 用 されます。%TaskHandler で 指 定 するクラスは、EnsLib.Workflow.TaskResponse のサブクラスである 必 要 があります。オプション。 指 定 した 中 で、このタスクの 処 理 に 適 したタイトルの 名 前 。このユーザがタスクに 実 際に 割 り 当 てられているかどうかは、このタスクに 関 して 分 配 方 式 をどのように 使 用 するかによって異 なります。オプション。このタスクの 処 理 に 適 したユーザの 名 前 。このユーザがタスクに 実 際 に 割 り 当 てられているかどうかは、このタスクに 関 して 分 配 方 式 をどのように 使 用 するかによって 異 なります。2.3.2 タスク 応 答 の 使 用前 述 のとおり、 指 定 されたタスクの では、タスク 応 答 オブジェクト (EnsLib.Workflow.TaskResponse またはサブクラス) を 調 査 し、このオブジェクトを 使 用 して BPL の context 変 数 を 設 定 することも 必 要 になります (この 変 数 は 後 の 処 理で 使 用 されます)。EnsLib.Workflow.TaskResponse は、 以 下 のプロパティを 定 義 します。プロパティ%Action目 的オプション。タスクが 完 了 すると、タスク 完 了 のためにユーザが 選 択 したアクションの 値 が、このプロパティに 含 まれます。"%Actions" を 参 照 してください。14 ワークフローの 定 義


ワークフローの 開 発2.4 プロダクションへのワークフロー・オペレーションの 追 加ワークフロー・オペレーションをプロダクションに 追 加 するには、 以 下 の 操 作 を 行 います。1. そのプロダクションを 管 理 ポータルの [Ensemble] > [プロダクション 構 成 ] ページで 表 示 します。このページにアクセスするには、[Ensemble]、[ 構 成 する]、[プロダクション] の 順 にクリックし、[ 進 む] をクリックします。2. [オペレーション] 列 で、[ 追 加 ] ボタン (プラス 記 号 ) をクリックします。ダイアログ・ボックスが 表 示 されます。3. [ワークフロー] タブをクリックします。4. [クラス 名 ] リストから EnsLib.Workflow.Operation クラスを 選 択 します。または、カスタム・サブクラスを 選 択 します。5. [オペレーション 名 ] に、このビジネス・オペレーションの 名 前 を 入 力 します。この 名 前 は、BPL ビジネス・プロセスの 対応 する に 含 まれる target 属 性 と 一 致 させる 必 要 があります。6. 必 要 に 応 じて、[ 自 動 作 成 ロール] をクリックします。このオプションを 有 効 にすると、[オペレーション 名 ] で 指 定 されたのと 同 じ 名 前 のワークフロー・ロールが 自 動 的 に 作 成 されます。希 望 に 応 じて、このオプションを 後 で 有 効 にすることもできます。7. [OK] をクリックします。その 他 の 設 定 に 関 する 情 報 は、"Ensemble プロダクションの 構 成 " を 参 照 してください。2.5 次 のステップ• ワークフロー・ユーザを 適 切 なワークフロー・ロールと 関 連 付 けます。"Ensemble の 管 理 " の “ワークフロー・ロール、ワークフロー・ユーザ、およびワークフロー・タスクの 管 理 ” を 参 照 してください。• “ワークフローのテスト” の 章 の 説 明 に 従 って、ワークフローをテストします。• 必 要 に 応 じて、スーパーバイザがワークフローの 進 捗 状 況 を 監 視 できるようにするためのダッシュボードを 追 加 します。Ensemble は、 特 定 のワークフロー・メトリックを 自 動 的 に 収 集 します。 一 般 的 な 開 発 タスクと 構 成 タスクは 通 常 どおりです。1. 1 つ 以 上 のビジネス・メトリック・クラスを 作 成 します。"Ensemble プロダクションの 開 発 " の “ビジネス・メトリックの定 義 ” を 参 照 してください。各 クラスは、ワークフロー・ロールに 関 する 統 計 情 報 を 報 告 するメソッドを 提 供 する EnsLib.Workflow.Engine クラスのメソッドを 呼 び 出 すことができます。クイック・リファレンスとして、これらのメソッドは 付 録 “ 使 用 可 能 なワークフロー・メトリック” に 列 挙 されています。2. プロダクションを 構 成 するときに、 各 ビジネス・メトリックをビジネス・サービスとして 追 加 します。3. ダッシュボードを 定 義 します。"Ensemble プロダクションの 構 成 " の “ダッシュボードの 定 義 ” を 参 照 してください。16 ワークフローの 定 義


3ワークフローへのカスタム 機 能 の 組 み 込 みこの 章 では、ワークフローにカスタム 機 能 を 組 み 込 む 方 法 を 説 明 します。 以 下 のトピックについて 説 明 します。• 標 準 タスク・フォームの 拡 張• カスタム・タスク・フォームの 作 成• タスク 分 配 方 式 のカスタマイズ3.1 標 準 タスク・フォームの 拡 張各 タスクには、 少 なくとも 以 下 の 標 準 アイテム・セットを 表 示 する 1 つのタスク・フォームが 関 連 付 けられています。• そのタスクの TaskId、Owner、%Subject、および %Message という 読 み 取 り 専 用 プロパティ• [ 承 認 ] ボタン (そのタスクが 未 割 り 当 ての 場 合 )• [ 放 棄 ] ボタンと [ 保 存 ] ボタン (そのタスクが 割 り 当 て 済 みの 場 合 )他 のボタンを 追 加 するには (これらのボタンはそのタスクが 割 り 当 て 済 みの 場 合 にのみ 表 示 されます)、タスク 要 求 の%Actions プロパティで、 追 加 するボタン 名 のコンマ 区 切 りリストを 指 定 します。他 の 編 集 可 能 な 値 を 追 加 するには (これらの 値 はそのタスクが 割 り 当 て 済 みの 場 合 にのみ 表 示 されます)、タスク 要 求 オブジェクトで 次 のいずれかのプロパティを 設 定 します。• %FormFields — 表 示 するタスク・フォームのフィールドのリストを 提 供 します。タスク 要 求 オブジェクトおよびタスク 応 答 オブジェクトには、%FormFields プロパティがあります。タスク 要 求 を 呼 び 出すときに、%FormFields の 値 を、タスク・フォームに 表 示 するフィールドのカンマ 区 切 りリストに 設 定 します。 現 時 点 では、これらはすべて 単 純 な 文 字 列 値 と 見 なされます ( 制 御 を 強 化 する 必 要 がある 場 合 は、フォーム・テンプレートを使 用 )。• %FormTemplate — 表 示 する HTML フォーム・テンプレートを 定 義 する Caché Server Pages (CSP) ファイルを 指 定します。タスク 要 求 オブジェクトおよびタスク 応 答 オブジェクトには、%FormTemplate プロパティがあります。タスク 要 求 を 呼び 出 すときに、%FormTemplate の 値 を、 表 示 するフォームを 定 義 する CSP ファイルの 名 前 に 設 定 します。この CSPページでは、フォームとコンテンツのみを 定 義 します。HTML、HEAD、BODY の 各 セクションはありません。CSP ページでは、 特 定 の JavaScript イベント・メソッドをオーバーロードできます。このフォームを 処 理 するとき、 変 数 %task は現 在 のタスク 応 答 オブジェクトです。ワークフローの 定 義 17


ワークフローへのカスタム 機 能 の 組 み 込 み%FormFields または %FormTemplate を 使 用 する 場 合 は、 各 フィールドに 表 示 するデフォルト 値 を 指 定 できます。そのためには、タスク 要 求 オブジェクトの %FormValues プロパティを 指 定 します。このプロパティは、フィールド 名 が 添 え 字 として 使 用 された 多 次 元 配 列 です。ワークフロー・エンジンでは、タスクを 処 理 するときに、 配 列 コレクション %FormValues を 含 むフォーム 関 連 のすべてのプロパティが、タスク 要 求 からタスク 応 答 へコピーされます。フォーム 内 のフィールドの 値 が 更 新 されるたびに、ワークフロー・エンジンは、タスク 応 答 オブジェクトの %FormValues コレクションで 値 を 更 新 します。フォームには 常 に、%FormValues コレクションの 最 新 の 値 が 表 示 されます。これにより、 特 定 タスク 内 でフォームを 動 的に 処 理 できます。フォーム 関 連 のプロパティの 値 を 変 更 することにより、タスク 応 答 コールバック・メソッドを、フォーム 処 理の 実 行 方 法 に 反 映 させることができます。タスク 応 答 オブジェクトの %FormValues コレクションは、 最 終 的 なタスク 応 答 が送 り 返 されたときに、 元 の 呼 び 出 し 側 で 使 用 できます。3.2 カスタム・タスク・フォームの 使 用ワークフロー・タスク 用 に、カスタム・フォームをユーザに 対 して 表 示 できます。 手 順 は 以 下 のとおりです。1. カスタマイズされたフォームのコンテンツを 定 義 する HTML テンプレート・ファイルを 作 成 します。これは Caché ServerPages (CSP) ページとして 実 装 されるため、 必 要 に 応 じて 動 的 コンテンツを 含 めることができます。2. タスク 要 求 オブジェクトの %FormTemplate プロパティを、この CSP ページの 名 前 に 設 定 します。 例 えば、タスク 要求 をワークフロー・オペレーションに 送 信 する 文 には 以 下 のような 内 容 が 含 まれます。3. タスク 要 求 オブジェクトの %FormFields プロパティを、フィールド 名 のカンマ 区 切 りリストに 設 定 します。これは、フォーム 用 に 定 義 されるフィールドのリストです。 以 下 に 例 を 示 します。4. フォーム・フィールドに 初 期 値 を 指 定 する 場 合 は、タスク 要 求 オブジェクトの %FormValues コレクション・プロパティの 対 応 する 要 素 ( 配 列 キーがフィールドの 名 前 ) を、 必 要 な 値 に 設 定 します。 以 下 に 例 を 示 します。前 述 のとおり、ワークフロー・ユーザが 自 身 が 現 在 所 有 しているタスクをレビューするたびに、 関 連 付 けられたタスク・フォームが 自 動 的 に 表 示 されます。デフォルトでは、このフォームは、タスク 要 求 オブジェクトの %FormFields プロパティの 値 で定 義 されるフィールドを 使 用 して、 自 動 的 に 生 成 されます。 呼 び 出 し 側 のビジネス・プロセスが、これらの 値 を 指 定 します。ただし、この 生 成 されるフォームの 代 わりに、カスタム 設 計 されたテンプレートを 使 用 する 方 法 もあります。ワークフロー・フォーム・テンプレートでは、 標 準 タスク・フォームに 挿 入 される HTML のブロックが 定 義 されます。このHTML ブロックに 含 めることのできるフォーム・フィールドの 数 に 制 限 はありません。これらのフィールドは、ワークフロー・タスクでユーザがアクションを 実 行 するたびに、ワークフロー・エンジンによって 自 動 的 に 送 信 され、 処 理 されます。テンプレート・ファイルに 含 まれる HTML は、 完 全 な HTML ドキュメントではありません。フォームのカスタム 部 分 を 表 示 するために 必 要 な HTML です。 具 体 的 には、タスク・フォームによって 生 成 される HTML は 以 下 のようになります。—TEMPLATE CONTENTS INJECTED HERE—18 ワークフローの 定 義


タスク 分 配 方 式 のカスタマイズ以 下 のテンプレートでは、テキスト・ボックスと 選 択 (コンボボックス) の 2 つの HTML 入 力 コントロールを 表 示 する HTMLテーブルを 定 義 します。コントロールの 名 前 は、%FormFields プロパティで 定 義 されているフィールドに 対 応 します。この例 では、サーバ 側 の 式 も 使 用 して、Details プロパティの 初 期 値 を 取 得 します。%task 変 数 は、 常 に 現 在 のタスク 応 答 オブジェクトに 設 定 されています。Details:Company:ABC CorpXYZ CorpHTML の 他 に、ワークフロー・テンプレート・ファイルには、 以 下 の Javascript コールバック 関 数 をオプションで 含 めることができます。• onLoad() — ワークフロー・フォームがブラウザにロードされたときに 呼 び 出 されます。• onAction() — フォームで 表 示 されたアクション・ボタンのいずれかをユーザがクリックしたときに 呼 び 出 されます。これらのコールバックをワークフロー・テンプレート・ファイルに 追 加 するには、テンプレート・ファイルの タグの 中に 関 数 定 義 を 含 めます。 例 えば、 以 下 のようにします。function onLoad(form){// form is the workflow form objectreturn true;}function onAction(form,action){// form is the workflow form object// action is a string containing the user's action// returning false will cancel this actionreturn true;}3.3 タスク 分 配 方 式 のカスタマイズタスク 分 配 方 式 は、タスク 応 答 クラスで 指 定 されます。カスタム・タスク 分 配 方 式 を 実 装 するには、 以 下 の 操 作 を 行 います。• EnsLib.Workflow.TaskResponse のサブクラスを 作 成 し、その OnNewTask() コールバック・メソッド (および 場 合 によっては 他 のメソッド) をオーバーライドします。 最 初 の 項 では、これのオプションについて 詳 述 します。• カスタム・タスク 応 答 クラスを 必 ず 呼 び 出 してください。これについては、2 つ 目 の 項 で 説 明 します。ワークフローの 定 義 19


ワークフローへのカスタム 機 能 の 組 み 込 み3.3.1 カスタム・タスク 応 答 クラスの 作 成EnsLib.Workflow.TaskResponse のサブクラスを 作 成 する 際 には、その OnNewTask() コールバック・メソッド (および 場 合によっては 他 のメソッド) をオーバーライドします。 以 下 では、オーバーライドできるコールバック・メソッドを 列 挙 しています。• OnAction() — ワークリスト・フォームからユーザがアクションを 選 択 したときに 呼 び 出 されます。 通 常 、これはタスク 終了 のマーキングとなります。• OnAssign() — ユーザがタスクに 関 連 付 けられている 所 有 権 を 要 求 したときに 呼 び 出 されます。 通 常 、このメソッドでは 割 り 当 てが 実 行 されます。• OnCancel() — タスクが 取 り 消 されたとき、 例 えばタイム・アウトしたときなどに 呼 び 出 されます。• OnFormSubmit() — このタスクに 関 連 付 けられているタスク・フォームが 送 信 されたときに 呼 び 出 されます。• OnNewTask() — ワークフロー・エンジンで 新 しいタスクを 受 信 したときに 呼 び 出 されます。 通 常 、このメソッドでは、タスクが 現 在 の 役 割 のメンバに 関 連 付 けられます。• OnRelinquish() — ユーザがタスクに 関 連 付 けられている 所 有 権 の 放 棄 を 要 求 したときに 呼 び 出 されます。 通 常 、このメソッドでは、タスクの 割 り 当 てが 解 除 され、 役 割 に 含 まれる 他 のユーザにタスクが 戻 されます。• OnRoleChange() — このタスクに 関 連 付 けられているユーザまたはロールの 定 義 が 変 更 されたとき、 例 えばロールに含 まれるユーザのリストが 変 更 されたときなどに 呼 び 出 されます。EnsLib.Workflow.TaskResponse コールバック・メソッドでは、ワークフロー・エンジン (EnsLib.Workflow.Engine) で 定 義 されている API メソッドの 数 を 呼 び 出 すことにより、タスクの 分 配 が 制 御 されます。以 下 では、 上 記 のコールバックをオーバーライドする 際 に 使 用 できる EnsLib.Workflow.Engine 内 のクラス・メソッドを 列 挙しています。1. AssignTask() — 特 定 のユーザにタスクを 割 り 当 てます。2. CompleteTask() — タスクを [Completed] としてマーキングし、 呼 び 出 し 側 に 応 答 を 返 します。3. FindLeastBusyUser() — “ 最 もビジーでない” ユーザの 名 前 を 返 します。これは、システム 内 で 割 り 当 てられているタスクが 最 も 少 ないユーザです。4. SendTask() — 特 定 のユーザにタスクを 送 信 します。5. SendTaskToAll() — 現 在 のロールに 含 まれる 全 ユーザにタスクを 送 信 します。6. SendTaskToTitle() — 現 在 のロールの 中 で、 指 定 したタイトルを 持 つ 1 人 または 複 数 のユーザにタスクを 送 信 します。7. SendTaskToTop() — 現 在 のロールに 含 まれる 上 位 n ユーザに、ロールの 中 での 各 ユーザのランキングに 従 ってタスクを 送 信 します。8. UnassignTask() — タスクの 割 り 当 てを 削 除 します。これらのメソッドの 詳 細 は、"Intersystems クラス・リファレンス" を 参 照 してください。3.3.2 カスタム・タスク 応 答 クラスの 呼 び 出 しタスク 要 求 メッセージには、 使 用 する 応 答 クラスを 指 定 するクラス・パラメータ (RESPONSECLASSNAME) があります。このクラス・パラメータをオーバーライドするには、 要 求 クラスの %TaskHandler プロパティを 設 定 します。すなわち、タスク 要 求 で 目 的 のタスク 応 答 が 使 用 されるようにするには、 次 の 2 つの 方 法 があります。• 必 要 に 応 じて、EnsLib.Workflow.TaskRequest のサブクラスを 作 成 して、その RESPONSECLASSNAME パラメータをオーバーライドし、その 値 をカスタム・タスク 応 答 クラスの 名 前 に 一 致 させます。 以 下 に 例 を 示 します。20 ワークフローの 定 義


タスク 分 配 方 式 のカスタマイズClass MyApp.MyWorkflowRequest Extends EnsLib.Workflow.TaskRequest{Parameter RESPONSECLASSNAME = "MyApp.MyWorkflowResponse";}次 に、ワークフロー・プロセスの 適 切 な 部 分 でこのメッセージ・クラスを 使 用 します。• ワークフロー・プロセス 内 で、ワークフロー・オペレーションを 呼 び 出 す 際 に、 要 求 インスタンスの %TaskHandler プロパティの 値 を 目 的 のタスク 応 答 クラス 名 に 設 定 します。 以 下 に 例 を 示 します。set callrequest.%TaskHandler="MyApp.MyWorkflowResponse"ワークフローの 定 義 21


4ワークフローのテストこの 章 では、ワークフローのテストに 関 する 項 目 について 説 明 します。4.1 テストのチェックリストワークフローをテストする 際 は、 少 なくとも 以 下 の 項 目 をテストしてください。• タスク 分 配 をテストします。• タスクの 取 り 消 しをテストします。• タスクのエスカレーションをテストします。• 例 外 的 なケースをテストします。• タイムアウト 動 作 をテストします。• ダッシュボードを 表 示 します ( 存 在 する 場 合 )。"Ensemble の 管 理 " の “ワークフロー・ロール、ワークフロー・ユーザ、およびワークフロー・タスクの 管 理 ” の 説 明 に 従 って、 管 理 ポータル 経 由 でアクティビティをモニタできます。 次 の 節 で 説 明 するように、ビジュアル・トレースを 使 用 することもできます。4.2 ビジュアル・トレースでのワークフロー・アクティビティの 表 示Ensemble がメッセージおよびビジネス・オペレーションに 対 してサポートしているすべての 統 計 機 能 、メンテナンス 機 能 、および 表 示 機 能 は、それぞれワークフロー・タスクおよびワークフロー・ロールにも 適 用 されます。これらの 機 能 には、メッセージ・ビューワ、メッセージのパージ、およびビジュアル・トレースが 含 まれます。 詳 細 は、"Ensemble の 管 理 " を 参 照してください。特 に 留 意 すべきこととして、 他 のタイプのメッセージの 場 合 と 同 様 に、ビジュアル・トレースを 使 用 してワークフロー・タスクの 要 求 と 応 答 をトレースできます。 以 下 に 例 を 示 します。ワークフローの 定 義 23


ワークフローのテストこの 例 で 示 しているセッションでは、タスク 要 求 が Demo-Development ロールに 送 信 されて、このロール 内 のユーザによって 処 理 されました。 次 にワークフロー・プロセス (HelpDesk) が 別 のタスク 要 求 を Demo-Testing ロールに 送 信 しました。このロール 内 のユーザがこの 要 求 を 処 理 して、ワークフロー・プロセスは EnsLib.Testing.Process プロセスに 応 答 を送 信 しました。この 例 については、 付 録 “ワークフロー・サンプルの 紹 介 ” を 参 照 してください。24 ワークフローの 定 義


Aワークフロー・サンプルの 紹 介この 付 録 では、ENSDEMO ネームスペース 内 の Demo.Workflow パッケージに 含 まれているサンプルを 紹 介 します。このサンプルを 扱 いやすくするために、この 付 録 では、いくつかのセットアップ 情 報 および 留 意 事 項 に 関 する 提 案 内 容 も 掲載 しています。この 付 録 は 以 下 の 節 で 構 成 されています。• サンプルの 概 要• セットアップ・タスク• サンプル・リクエスト・メッセージ• ビジネス・プロセス・クラスのサンプル• コントロール・フローのサンプル• ダッシュボードとメトリックA.1 サンプルの 概 要Demo.Workflow サンプルには、Demo.Workflow.HelpDesk というビジネス・プロセスが 含 まれています。このビジネス・プロセスは、 問 題 レポートに 必 要 な 基 本 情 報 ( 送 信 者 名 と 問 題 の 説 明 ) が 含 まれた 受 信 要 求 を 受 け 取 ります。アクションを求 めるこの 要 求 を 受 け 取 ると、HelpDesk は、いずれかのアクションによって 問 題 が 解 決 されるまで 続 けられる 一 連 のアクションを 開 始 します。HelpDesk は、 最 初 に 問 題 レポートをタスクとして 開 発 グループに 送 信 します。このグループのメンバが 問 題 が 解 決 したことをレポートすると、HelpDesk は 問 題 レポートにメモを 追 加 し、それをタスクとしてテスト・グループに 送 信 します。このグループのメンバが 修 正 が 十 分 であるとレポートすると、HelpDesk はレポートした 問 題 が 解 決 したことを 示 すフラグを 付けて、 発 信 者 に 最 終 的 な 応 答 を 返 信 します。A.2 セットアップ・タスクこのサンプルをセットアップして 使 用 するには、 以 下 の 操 作 を 行 います。1. "Caché セキュリティ 管 理 ガイド" の “ユーザ” の 説 明 に 従 って、いくつかのユーザを 作 成 します。2. "Ensemble の 管 理 " の “ワークフロー・ロール、ワークフロー・ユーザ、およびワークフロー・タスクの 管 理 ” の 説 明に 従 って、これらのユーザのそれぞれをワークフロー・ユーザとして 構 成 します。3. ENSDEMO ネームスペースで、Demo.Workflow.Production プロダクションを 開 始 します。ワークフローの 定 義 25


ワークフロー・サンプルの 紹 介このプロダクションを 開 始 すると、Demo-Development と Demo-Testing という 2 つのロールが 自 動 的 に 作 成 されます(これらのロールが 作 成 されるのは、このプロダクション 内 の 2 つのワークフロー・オペレーションに 対 して [ 自 動 作成 ロール] 設 定 が 有 効 になっているためです)。4. "Ensemble の 管 理 " の “ワークフロー・ロール、ワークフロー・ユーザ、およびワークフロー・タスクの 管 理 ” の 説 明に 従 って、ワークフロー・ユーザをこれらのワークフロー・ロールに 割 り 当 てます。一 部 のユーザは 両 方 のロールに 割 り 当 てることができます。5. [Ensemble] > [テスト・サービス] ページを 使 用 して、 以 下 の 操 作 を 行 っていくつかのメッセージを HelpDesk に 送 信します。a. [Ensemble] をクリックして、[テスト] をクリックし、[ビジネス・ホスト] をクリックします。b. [ターゲットタイプ] で、[ビジネス・プロセス] をクリックします。c. [ターゲット 名 ] で、HelpDesk をクリックします。d. [テスト] をクリックします。e. [ 報 告 者 ] フィールドと [ 問 題 ] フィールドに 適 切 な 値 を 入 力 します。f. [テスト・サービスの 呼 び 出 し] をクリックします。いくつかのメッセージを 送 信 して、このシナリオを 対 象 にします。6. それぞれのユーザとして DeepSee ユーザ・ポータルにログインし、ワークフローの 受 信 トレイを 使 用 してタスクを 管 理します。まず Demo-Development ロールのユーザとしてログインして、いくつかのタスクを 完 了 済 みとしてマークします。これにより、 追 加 のテスト・タスクが 生 成 されます。 次 に Demo-Testing ロールのユーザとしてログインして、これらのテスト・タスクを 完 了 済 みとしてマークします。Tipヒント必 要 に 応 じて /csp/ensdemo という Web アプリケーションを 構 成 して、このアプリケーションがパスワード 認証 を 受 け 付 ける 一 方 で、 認 証 なしのアクセスを 受 け 付 けないようにしてください。 詳 細 は、"Caché セキュリティ管 理 ガイド" の “アプリケーション” を 参 照 してください。A.3 サンプル・リクエスト・メッセージ以 下 の 要 求 メッセージ・クラスは、サンプルのビジネス・プロセス HelpDesk に 入 る 要 求 メッセージを 定 義 します。このメッセージは 顧 客 から 送 られた 技 術 的 な 問 題 を 表 します。 要 求 メッセージ・クラスの 定 義 は 以 下 のようになります。Class Demo.Workflow.ProblemReport{/// Name of customer reporting the problem.Property ReportedBy As %String(MAXLEN = 60);/// Description of the problem.Property Problem As %String(MAXLEN = 200);}A.4 ビジネス・プロセス・クラスのサンプルDemo.Workflow.ProblemReport 要 求 メッセージを 受 け 取 ると、BPL ビジネス・プロセスのサンプルのDemo.Workflow.HelpDesk は、いずれかのアクションによって 問 題 が 解 決 されるまで 続 けられる 一 連 のアクションを 開 始します。26 ワークフローの 定 義


ビジネス・プロセス・クラスのサンプルHelpDesk ビジネス・プロセスは while ループで 構 成 されます。 問 題 レポートはこのループ 内 で、まず、 問 題 を 修 正 するために 開 発 ( グループへ、 次 に 修 正 をテストするためにテスト・グループへ 送 信 されます。この 一 連 のアクションが 完 了 するとすぐ、while 条 件 “Resolved” が 満 たされ、ビジネス・プロセスが 終 了 し、 最 終 的 な 応 答 が 呼 び 出 し 側 に 返 されます。ビジネス・プロセス・デザイナで 表 示 した 場 合 、HelpDesk ビジネス・プロセスは 次 のように 表 示 されます。展 開 された while ループの 上 部 は、 以 下 のように 表 示 されます。ワークフローの 定 義 27


ワークフロー・サンプルの 紹 介下 部 は 以 下 のとおりです。28 ワークフローの 定 義


ビジネス・プロセス・クラスのサンプルWhile ループ 内 のコードは、ワークフローに 対 して 2 つの 呼 び 出 しを 実 行 します。 各 呼 び 出 しには、 組 み 込 みタスク 要求 クラスおよびタスク 応 答 クラスが 使 用 されます。2 つの 要 素 の 違 いは、 次 のように BPL ソース・コード 内 で 簡 単に 確 認 できます。Class Demo.Workflow.HelpDesk Extends Ens.BusinessProcessBPL{XData BPL{Work on this problem until it is resolved.(Click on the loop icon to see details of this while loop.)Send the problem report to Development for review.ワークフローの 定 義 29


ワークフロー・サンプルの 紹 介If Development fixed the problem, test it.}}Send the problem to Testing for confirmation.Has the problem been corrected?30 ワークフローの 定 義


コントロール・フローのサンプルA.5 コントロール・フローのサンプルプロダクションの 実 行 中 、サンプルの BPL ビジネス・プロセス Demo.Workflow.HelpDesk は 以 下 のように 機 能 します。このコントロール・フローの 手 順 を、 前 の 節 で 示 した BPL ソース・コードで 対 応 している 文 と 比 較 してみてください。1. メッセージ・タイプ Demo.Workflow.ProblemReport によって、 問 題 の 報 告 者 がビジネス・プロセスに 伝 えられ、 問 題を 説 明 する 簡 単 なテキスト 文 字 列 が 表 示 されます。これら 2 つのプロパティの 値 は、このビジネス・プロセスを 呼 び出 すビジネス・ホストによって 提 供 されます。2. Demo-Development ワークフロー・オペレーションへの の 準 備 に 当 たり、Demo.Workflow.HelpDesk ビジネス・プロセスは 受 信 要 求 プロパティ ReportedBy および Problem を 使 用 して、タスク 要 求 フィールド %Subject および%Message にそれぞれ 入 力 します。これ 以 外 の 2 つの 組 み 込 みタスク・プロパティも 機 能 を 開 始 します。この callは、%Actions フィールドに Corrected,Ignored の 値 を 割 り 当 てることによって、 実 行 可 能 なユーザ・アクションのリストを 作 成 します。また、 呼 び 出 しはこのタスクを 確 認 するユーザがデータを 入 力 できるように、Comments と 呼 ばれるフォーム・フィールドも 用 意 します。3. ビジネス・プロセスは、Demo-Development への を 非 同 期 で 作 成 し、タスク 応 答 をキャッチするための 要 素 を 設 定 します。4. ワークフロー・エンジンは、タスクを Demo-Development ワークフロー・ロールの 各 ワークフロー・ユーザと 関 連 付 けます。5. ワークフロー・ユーザの 1 人 がタスクを 受 け 入 れます。ワークフロー・エンジンはそのユーザにタスクを 割 り 当 てます。6. 割 り 当 てられたユーザは、[ ] フィールドを 編 集 し、アクション [ 修 正 されました] または [ 無 視 されました] のいずれかをクリックします。7. タスク 応 答 が 返 されます。その %Action フィールドには、タスクを 完 了 したユーザ・アクションの 値 が 含 まれます ([] または [ ])。ビジネス・プロセスは、DevelopmentAction と 呼 ばれる 実 行 コンテキストのプロパティにこの 値 を 保 存 します。8. ビジネス・プロセスは、DevelopmentAction 値 をテストするために、 要 素 を 使 用 します。 結 果 は 以 下 のとおりです。• DevelopmentAction が [ ] の 場 合 、この 値 はヘルプ・デスクのビジネス・プロセスに、その 要 素の 部 分 を 実 行 する 必 要 があることを 知 らせます。 要 素 は、 次 の 手 順 に 示 すように、Demo-Testingワークフロー・ロールへの を 発 行 します。• DevelopmentAction が [ ] ではない 場 合 、この 値 はヘルプ・デスクのビジネス・プロセスに、BPL ソース・コードの 最 後 の 方 にある、その 要 素 の 部 分 を 実 行 する 必 要 があることを 知 らせます。ユーザによって DevelopmentAction が されると、コントロールはこの 文 に 至 ります。ビジネス・プロセスは、その 呼 び出 し 側 に 最 終 的 な 応 答 を 返 し、 報 告 された 問 題 は Not a problem であるとコメントして、ブーリアン 応 答 値Resolved を 1 ( 真 ) に 設 定 します。9. Demo-Testing ワークフロー・オペレーションへの の 準 備 に 当 たり、ビジネス・プロセスは 元 の 受 信 要 求 プロパティ ReportedBy および Problem を 使 用 して、タスク 要 求 フィールド %Subject および %Message にそれぞれ 入 力 します。ただし、 前 の とは 異 なり、Demo-Testing への には 定 義 されたフォーム・フィールドはありません。また、 実 行 可 能 なユーザ・アクションのリストが 異 なります。 相 違 点 は %Actions にあります。この で %Actionsフィールドに 割 り 当 てられる 値 は Corrected,Retest です。10. ビジネス・プロセスは、Demo-Testing への を 非 同 期 で 作 成 し、タスク 応 答 をキャッチするための 要 素を 設 定 します。11. ワークフロー・エンジンは、タスクを Demo-Testing ワークフロー・ロールの 各 ワークフロー・ユーザと 関 連 付 けます。12. ワークフロー・ユーザの 1 人 がタスクを 受 け 入 れます。ワークフロー・エンジンはそのユーザにタスクを 割 り 当 てます。ワークフローの 定 義 31


ワークフロー・サンプルの 紹 介13. 割 り 当 てられたユーザは、[ 修 正 されました] または [ 再 テスト] をクリックします。14. タスク 応 答 が 返 されます。その %Action フィールドには、タスクを 完 了 したユーザ・アクションの 値 が 含 まれます ([] または [ ])。ビジネス・プロセスは、TestingAction と 呼 ばれる 実 行 コンテキストのプロパティにこの 値を 保 存 します。15. ビジネス・プロセスは、TestingAction 値 をテストするために、 要 素 を 使 用 します。 結 果 は 以 下 のとおりです。• TestingAction が Corrected の 場 合 、ビジネス・プロセスはその 呼 び 出 し 側 に 最 終 的 な 応 答 を 返 し、 報 告 された 問 題 は Resolved であるとコメントして、ブーリアン 応 答 値 Resolved を 1 ( 真 ) に 設 定 します。• TestingAction が Corrected ではない 場 合 、ブーリアン 応 答 値 Resolved は 初 期 値 の 0 ( 偽 ) のままです。ビジネス・プロセスは 再 度 ループの 先 頭 に 入 ります。A.6 ダッシュボードとメトリックビジネス・メトリックとダッシュボードが 連 携 してワークフロー・ロール 統 計 を 表 示 する 様 子 を 確 認 するには、スタジオを 使用 して、ENSDEMO ネームスペースのサンプル・クラス Demo.Workflow.WFMetric と Demo.Workflow.Dashboard を 表 示します。以 下 のビジネス・メトリック・クラス Demo.Workflow.WFMetric のサンプル・コードは、3 つの 使 用 可 能 な 統 計 メソッドを 呼び 出 して、 戻 り 値 をメトリック・プロパティに 割 り 当 てています。 次 の 付 録 では、 使 用 可 能 なメソッドについて 説 明 しています。/// Sample business metric class for Workflow demoClass Demo.Workflow.WFMetric Extends Ens.BusinessMetric{/// Active TasksProperty ActiveTasks As Ens.DataType.Metric(AUTOHISTORY = 10, RANGELOWER = 0,RANGEUPPER = 50, UNITS = "Tasks")[ MultiDimensional ];/// Active LoadProperty Load As Ens.DataType.Metric(AUTOHISTORY = 10, RANGELOWER = 0,RANGEUPPER = 100, THRESHOLDUPPER = 90,UNITS = "%") [ MultiDimensional ];/// Completed Tasks (since previous day)Property CompletedTasks As Ens.DataType.Metric(AUTOHISTORY = 10, RANGELOWER = 0,RANGEUPPER = 100, UNITS = "Tasks")[ MultiDimensional ];/// Calculate and update the set of metrics for this classMethod OnCalculateMetrics() As %Status{// set the values of our metrics// %Instance is the current instance (RoleName in this case)Set tRole = ..%InstanceSet ..ActiveTasks = ##class(EnsLib.Workflow.Engine).BamActiveTasks(tRole)Set ..Load = ##class(EnsLib.Workflow.Engine).BamActiveLoad(tRole)// Get task since start of previous daySet tStart = $ZDT($H-1,3)Set ..CompletedTasks =##class(EnsLib.Workflow.Engine).BamCompletedTasks(tRole,tStart)}Quit $$$OK/// Set of instances for this metric class/// There is one instance for every defined role.Query MetricInstances() As %SQLQuery{SELECT Name FROM EnsLib_Workflow.RoleDefinition32 ワークフローの 定 義


ダッシュボードとメトリック}}ここで 使 用 されている ObjectScript 関 数 $ZDT ($ZDATETIME) と $H ($HOROLOG) については、"Caché ObjectScriptリファレンス" の “Caché ObjectScript 関 数 ” の 章 を 参 照 してください。ワークフローの 定 義 33


B使 用 可 能 なワークフロー・メトリックEnsLib.Workflow.Engine クラスは、ワークフロー・ロールに 関 する 統 計 を 報 告 するメソッドを 提 供 します。ビジネス・メトリックを 定 義 する 際 にこれらのメソッドを 使 用 することで、ユーザがワークフローの 進 捗 状 況 を 追 跡 および 分析 できるようになります ( 詳 細 な 手 順 は、"Ensemble プロダクションの 開 発 " の “ビジネス・メトリックの 定 義 ” を 参 照 してください。また、サンプルを 紹 介 している “ワークフロー・サンプルの 紹 介 ” も 参 照 してください)。そのメソッドは 以 下 のとおりです。BamActiveTasks()ClassMethod BamActiveTasks(pRole As %String) As %Integer指 定 のワークフロー・ロールのアクティブなタスクの 数 を 返 します。 入 力 引 数 の pRole は、ワークフロー・ロールの 構 成 名 です。このメソッドは、このロールに 割 り 当 てられたタスクのリストを 取 得 して、これらのタスクのうちまだ完 了 していないタスクを 特 定 することで、アクティブなタスクの 数 を 算 出 します。BamActiveLoad()ClassMethod BamActiveLoad(pRole As %String) As %Integer指 定 のワークフロー・ロールのアクティブな 負 荷 を 示 す 値 を 返 します。 入 力 引 数 の pRole は、ワークフロー・ロールの 構 成 名 です。このメソッドは、このワークフロー・ロールのアクティブなタスクの 現 在 の 数 を 取 得 して、その 数とワークフロー・ロール 定 義 内 の Capacity プロパティの 値 を 比 較 し、その 比 較 結 果 をこのワークフロー・ロールの 総 合 処 理 能 力 のパーセンテージとして 提 示 することにより、アクティブな 負 荷 を 算 出 します。 数 式 は 以 下 のとおりです。(ActiveTasks/Capacity)*100BamCompletedTasks()ClassMethod BamCompletedTasks(pRole As %String,pStart As %TimeStamp = "",pEnd As %TimeStamp = "") As %Integer指 定 のワークフロー・ロールの 完 了 したタスクの 数 を 返 します。それぞれ 以 下 の 意 味 を 持 ちます。• pRole は、ワークフロー・ロールの 構 成 名 です。• pStart と pEnd は、%TimeStamp 形 式 : yyyy-mm-dd で 表 されます。このメソッドは、このロールに 割 り 当 てられているタスクのリストを 取 得 し、これらのタスクのうちステータスが [ 完了 ] になっているタスクを 特 定 することで、 完 了 したタスクの 数 を 算 出 します。BamCompletedTasks() は、pStartと pEnd で 指 定 されている 期 間 内 に 開 始 したタスクのみを 考 慮 対 象 とします。pEnd 時 間 が 経 過 しているタスクは 完 了 しているものとなります。ワークフローの 定 義 35


使 用 可 能 なワークフロー・メトリックBamTasksWithStatus()ClassMethod BamTasksWithStatus(pRole As %String,pStatus As %String,pStart As %TimeStamp = "",pEnd As %TimeStamp = "") As %Integer指 定 のワークフロー・ロールに 特 定 のステータスのあるタスクの 数 を 返 します。それぞれ 以 下 の 意 味 を 持 ちます。• pRole は、ワークフロー・ロールの 構 成 名 です。• pStatus は、ロールのステータスを 表 す 以 下 のいずれかの 文 字 列 です。– [ ]– [ ]– [ ]– [ ]– [ ]• pStart と pEnd は、%TimeStamp 形 式 : yyyy-mm-dd で 表 されます。このメソッドは、そのロールに 割 り 当 てられているタスクのリストを 取 得 し、これらのタスクのうち 指 定 されたステータスに 現 在 なっているタスクの 数 を 特 定 します。BamTasksWithStatus() は、pStart と pEnd で 指 定 されている 期間 内 に 開 始 したタスクのみを 考 慮 対 象 とします。pEnd 時 間 が 経 過 したタスクは、その 理 由 にかかわらず、 完 了しているものとなります。目 的 のステータスが Completed である 場 合 は、BamCompletedTasks() を 使 用 するほうが 簡 単 です。BamAvgTaskTime()ClassMethod BamAvgTaskTime(pRole As %String,pStart As %TimeStamp = "",pEnd As %TimeStamp = "") As %Integer指 定 のワークフロー・ロールで 完 了 したタスクの 平 均 存 続 時 間 ( 秒 単 位 ) を 返 します。それぞれ 以 下 の 意 味 を 持ちます。• pRole は、ワークフロー・ロールの 構 成 名 です。• pStart と pEnd は、%TimeStamp 形 式 : yyyy-mm-dd で 表 されます。このメソッドは、pStart と pEnd で 指 定 されている 期 間 内 に 開 始 したタスクのみを 考 慮 対 象 とします。pEnd 時 間が 経 過 しているタスクは 完 了 しているものとなります。BamMinTaskTime()ClassMethod BamMinTaskTime(pRole As %String,pStart As %TimeStamp = "",pEnd As %TimeStamp = "") As %Integer指 定 のワークフロー・ロールで 完 了 したタスクの 最 短 存 続 時 間 ( 秒 単 位 ) を 返 します。それぞれ 以 下 の 意 味 を 持ちます。• pRole は、ワークフロー・ロールの 構 成 名 です。• pStart と pEnd は、%TimeStamp 形 式 : yyyy-mm-dd で 表 されます。このメソッドは、pStart と pEnd で 指 定 されている 期 間 内 に 開 始 したタスクのみを 考 慮 対 象 とします。pEnd 時 間が 経 過 しているタスクは 完 了 しているものとなります。36 ワークフローの 定 義


使 用 可 能 なワークフロー・メトリックBamMaxTaskTime()ClassMethod BamMaxTaskTime(pRole As %String,pStart As %TimeStamp = "",pEnd As %TimeStamp = "") As %Integer指 定 のワークフロー・ロールで 完 了 したタスクの 最 長 存 続 時 間 ( 秒 単 位 ) を 返 します。それぞれ 以 下 の 意 味 を 持ちます。• pRole は、ワークフロー・ロールの 構 成 名 です。• pStart と pEnd は、%TimeStamp 形 式 : yyyy-mm-dd で 表 されます。このメソッドは、pStart と pEnd で 指 定 されている 期 間 内 に 開 始 したタスクのみを 考 慮 対 象 とします。pEnd 時 間が 経 過 しているタスクは 完 了 しているものとなります。ワークフローの 定 義 37


索 引シンボル%Action, 14%Actions, 14, 15%Command, 14%FormFields, 14, 15, 17, 18%FormTemplate, 14, 15, 17, 18%FormValues, 14, 15, 18%Message, 14, 15, 17%Priority, 14, 15%RoleName, 15%Status, 15%Subject, 14, 15, 17%TaskHandler, 14%TaskStatus, 15%Title, 14%UserName, 14, 15%UserRanking, 15%UserTitle, 15エディタスタジオ, 16, 35管 理 ポータル, 23オペレーション次 を 参 照 ワークフロー・オペレーションカスタマイズ概 要 , 7スタジオ, 16, 35タスク, ワークフロー分 配 , 8制 御 の 流 れ, 7割 り 当 て, 8応 答 のプロパティ, 14概 要 , 5管 理 ポータル, 23要 求 のプロパティ, 14関 連 付 ける, 8タスクの 分 配 , 8タスク・フォームテンプレート, 18編 集 可 能 なフィールド, 17開 発 , 17ダッシュボード, 4, 35ツールスタジオ, 16, 35管 理 ポータル, 23テンプレート, HTML, 18パラメータRESPONSECLASSNAME, 19ビジネス・アクティビティ・モニタリング, 4ビジネス・オペレーション, 4, 16ビジネス・プロセス・デザイナ, 4ビジネス・メトリック, 35ビジュアル・トレース, 4, 23フィールドテンプレート, 18構 成 , 17フォーム, タスクテンプレート, 18編 集 可 能 なフィールド, 17開 発 , 17プロダクション構 成 , 16プロパティタスク 応 答 , 14タスク 要 求 , 14ボタン構 成 , 17メソッドワークフロー・エンジン, 20メッセージ, 5メトリック, 4ユーザ, ワークフロータスクの 分 配 , 8概 要 , 5ロール, ワークフロータスクの 分 配 , 8ワークフロー・オペレーション, 16概 要 , 5ワークフロータスク, 5フォーム, 17ユーザ, 5ロール, 5分 配 , 8概 要 , 3ワークフロー・エンジンメソッド, 20概 要 , 3ワークフロー・オペレーション制 御 の 流 れ, 31概 要 , 4構 成 , 16ワークリスト概 要 , 8制 御 の 流 れタスクの 分 配 , 8タスク 要 求 および 応 答 , 7ビジネス・プロセスのサンプル, 31ワークフロー・オペレーション, 31応 答 , 5プロパティ, 14管 理 ポータルビジュアル・トレース, 23プロダクションの 構 成 , 16統 計 , 35複 合 アプリケーション, 4要 求 , 5プロパティ, 14AActiveTasks, 35AssignTask(), 20ワークフローの 定 義 39


BBPLビジネス・プロセスのサンプル, 26, 31CCapacity, 35CompleteTask(), 20DDemo.Workflow.Dashboard, 16, 35Demo.Workflow.HelpDesk, 25, 31Demo.Workflow.ProblemReport, 26Demo.Workflow.WFMetric, 16, 35EEnsLib.Workflow.Engine, 20, 35EnsLib.Workflow.TaskRequest, 14EnsLib.Workflow.TaskResponse, 14FFindLeastBusyUser(), 20HHTMLタスク・フォーム, 17テンプレート, 18LLoad, 35OOnAction(), 20OnAssign(), 20OnCancel(), 20OnFormSubmit(), 20OnNewTask(), 20OnRelinquish(), 20OnRoleChange(), 20RRESPONSECLASSNAME, 19SSendTask(), 20SendTaskToAll(), 20SendTaskToTitle(), 20SendTaskToTop(), 20UUnassignTask(), 2040 ワークフローの 定 義

Weitere Magazine dieses Users
Ähnliche Magazine