Oracle® Fusion Middleware Oracle Business Process Management Studioでのビジネス・プロセスの開発 12c (12.2.1.2.0) E82789-01 |
|
前 |
次 |
この章では、ケース管理定義を作成および構成する方法について説明します。
この章の内容は次のとおりです。
適応型ケース管理は、非常に柔軟性の高いデータ処理集中型のビジネス・プロセスをモデル化するための1つの方法です。
次の特性が関連する作業のパターンをモデル化する場合、適応型ケース管理を使用します。
人、コンテンツおよびポリシーの複雑な相互作用
複雑な意思決定および判断
ケースの進行状況は、ユーザーの決定、アクション、イベントおよびポリシーに依存します
実行時の変更(新しいステークホルダーを追加すると新しいアクションが有効になるなど)。
コンテキストドリブンの割当て(特定のアナリストが解決するケースの数およびそれらの解決にかかった時間に基づく割当てなど)
ケース管理を使用すると、構造化されていない非定型のプロセスを処理することができます。プロセスのコンテンツと情報を利用することで、ユーザーは情報に基づくビジネス・デシジョンを行うことができるようになります。ケース管理では、ワーカーの知識に依存したり、参加者が必要となる、予期しないビジネス・プロセスに焦点を合わせます。
ケース管理には、次のものが関係します。
人。通常はケース・ワーカーまたはナレッジ・ワーカーと呼ばれます。
データ
ドキュメント
コラボレーション
レポート作成
履歴
イベント
ポリシー
プロセス
ケースは、情報、プロセス、タスク、ルール、サービスの集合です。ケースを進めるには、ワーカーの知識、関与および積極的なコラボレーションが必要です。
適応型ケース管理では、ワークフロー・プロセスを定義せずに目標を達成するためにユーザーが実行するアクティビティを定義できるのみです。ただし、動的ワークフロー、構造化プロセスおよびその両方の組合せがサポートされています。
ケース定義には、ケースのコンテキスト内でユーザーが実行できる様々な作業を表す各種のケース・アクティビティが含まれています。Oracle BPMでは、次のものに基づいてケース・アクティビティを定義できます。
ヒューマン・タスク
BPMNプロセス
カスタムJavaクラス
適応型ケース管理ではエンド・ユーザーが実行時にケース・フローを定義できますが、ビジネス・プロセスでは設計時にフローを定義する必要があります。適応型ケース管理では、ドキュメントとコンテキスト情報を使用して、実行時にケースのフローが決定されます。
表33-1は、適応型ケース管理とビジネス・プロセスの違いを示しています。
表33-1 適応型ケース管理とビジネス・プロセスの違い
適応型ケース管理 | ビジネス・プロセス |
---|---|
データ中心 |
プロセス中心 |
ケースの作成からその終了状態までの、構造化されていない非定型の進行状況 |
プロセス・インスタンスが事前定義済ワークフローに従う |
非確定的 - ケース・フローが実行時に動的に決定される |
プロセス・フロー・ロジックが実行時に定義される |
ケースはプロセスおよび分離されたタスクの集合で構成される |
フロー・ロジックはプロセス・モデルで表現される |
フローが目的によって決定され、ケース・ワーカーが特定の目標を満たすためにアクションを選択する |
プロセスを自動化および改善して効率性が向上するようにフローが設計される |
ナレッジ・ワーク・ベース |
ルーチン・ワーク・ベース |
コラボレーション環境 |
コラボレーション要件は優先事項ではない |
ドキュメントに強く依存する |
構造化データを使用する |
適応型ケース管理の主要なアーティファクトは次のとおりです。
ケース: ビジネス上の意思決定を行うために使用される、構造化プロセス、半構造化プロセス、非構造化プロセス、情報および相互作用の集合です。
ケース・モデル: ケースの定義をモデル化します。ケースには、名前、タイプ、各種マイルストンなどの、複数の属性があります。また、動作コンテナやルート・フォルダなどのアソシエーションも含まれています。ケースの定義は、これらの属性とアソシエーションの集合です。
ケース・インスタンス: ケースの処理とケースの進行状況の監査に使用されるドキュメント、データおよびケース・アクティビティの集合です。
ケース・フォルダ: ケース情報が格納されるコンテンツ管理システ内のフォルダです。
ケース・データ: BPMデータベースに格納されたケースのデータです。
ケース・ライフサイクル: ケース・ライフサイクルはケース状態(アクティブ、失効、一時停止中、中断済、クローズ済のいずれか)により反映されます。
マイルストン: ケースの進行状況を示すチェックポイントであり、成果物または一連の関連成果物の完成を表します。ステークホルダーは、マイルストンを使用してケースのステータスの概要を把握できます。
ケース・アクティビティ: ケースのコンテキスト内で実行できる作業です。ケース・アクティビティには、その動作を定義する様々なプロパティが含まれています。ケース・アクティビティは、必須、条件付き、オプションのいずれかに設定できます。ケース・アクティビティは、手動または自動に設定できます。手動のケース・アクティビティはケース・ワーカーが開始する必要がありますが、自動のケース・アクティビティはケース・ランタイムによって開始されます。ケース・アクティビティは、BPMNプロセス、ヒューマン・タスクまたはカスタムJavaクラスを使用して実装します。
サブケース: ケースの子タスクであり、親ケースの処理の一部として追加のアクティビティを生成する必要がある場合に使用されます。サブケースは実行時にインスタンス化され、ケース・アクティビティと似ていますが、親ケースからのみのデータを継承するという点が異なります。
ケース・イベント: ケース・ライフサイクルの変更、ケース・マイルストンの変更、ケース・アクティビティの変更およびその他の手動ケース・イベントが含まれます。手動のケース・イベントは、ケースの処理中に発生する各種の手動アクションに対応する、ケース内にモデル化されているイベントです。
適応型ケース管理は、多種の業界およびシナリオにおけるビジネス・プロセスをモデル化する場合に適しています。
金融サービス: ローンの組成、クレジット/デビット・カード係争管理、金融犯罪管理(不審活動報告)、資産管理、委託売買、トレーディング、新規ビジネス・アカウント開設、電子バンク口座開設、買掛金、売掛金およびB2B受注管理。
保険: 損害保険請求処理、保険契約管理、保険サービシング、引受、保険詐欺防止、顧客オンボーディング。
医療: 保険者請求処理、ポリシーおよび手続きの管理、仮想患者記録の管理、メンバー・サービス管理、プロバイダ・サービス管理、グループ・セールス管理、健康保険プランに関するインサイト、臨床および運営面でのインサイト。
エネルギー/公益事業: プロセス安全管理、FERC電子関税申告、送電プロセス、SOP処理。
公共部門: 給付金受給資格および給付金申請手続き、助成金管理、治安、納税申告、裁判および司法問題。
人事: 従業員オンボーディング、従業員オフボーディング、従業員の勤務評定、福利厚生管理。
法務: 契約管理、訴訟管理、監査およびコンプライアンス。
顧客サービス: 顧客対応、コール・センター、有権者サービス。
まだ1つもケースが含まれていない既存のBPMプロジェクトにケースを追加したり、ケースに新規のBPMプロジェクトを作成することもできます。
BPMプロジェクトごとに1つのケースのみを定義できます。
ケースを作成するには、BPMプロジェクトを開くか新しいBPMプロジェクトを作成してから、ケースを作成する必要があります。BPMプロジェクトの作成方法の詳細は、「プロジェクトの作成および使用」を参照してください。
ケースを作成するには:
ケースの一般プロパティを構成するには、「一般」タブを使用します。
「一般」タブには次のセクションが含まれています。
一般プロパティ - このセクションを使用して、「タイトル」、「サマリー」(ケースの内容のテキスト・サマリー)、「優先度」(1(高)から5(低)までの値)、「カテゴリ」(「プレーン・テキスト」または「変換」に設定)を含むケースのプロパティを構成します。「ケースの一般プロパティの構成方法」を参照してください
期限時刻 - 「期間」の値を使用してケース期日を指定します。
「期間」は、静的な値(「値別」を選択)またはXPath式(「式別」を選択)として表すことができます。ケース期日は、ケースの開始日時から計算されます。
「ビジネス・カレンダの使用」を選択し、組織単位を指定した場合(次を参照)、ケース期日は組織単位に関連付けられたビジネス・カレンダを使用して計算されます。それ以外の場合、通常のカレンダが使用されます。「ケース期限」を参照してください。
組織単位 - ケースに関連付ける組織単位を選択します。これは静的な値(「値別」を選択)またはXPath式(「式別」を選択)として表すことができます。指定した組織単位のメンバーのみが、このメンバーが同時にステークホルダーとして指定されていても、ケースにアクセスできます。
マイルストン - ケースのマイルストンおよびそのプロパティを指定します。
マイルストンは、成果物の完成または一連の関連成果物を表します。ケースの進行状況を示すチェックポイントです。ステークホルダーはマイルストンを使用してケースのステータスの概要を把握できます。
マイルストンにアクティビティまたは作業が直接関連付けられることはありません。
マイルストンが失効可能であることを示すには、「失効可能」チェック・ボックスを使用します。失効できるのは、すでに実行が完了しているマイルストンのみです。これは、ケースの他の実行済マイルストンに影響しません。
マイルストンの「期間」は、値またはXPath式を使用して設定できます。これは、マイルストンの開始日時に基づいてマイルストン期限を計算するために使用されます。「ケース期限」を参照してください。
マイルストンの追加、編集、削除および並替えは、パネル内のコントロールを使用して行います。このパネルを使用して、マイルストンの「名前」、「Can be Revoked」の値、「期間タイプ」および「期間」を構成します。「ケース・マイルストンの追加方法」を参照してください。
結果 - このセクションで、ケース結果を作成、編集および削除します。
結果は、ケースの完了時にそのケースに割り当てられるユーザー定義の値です。たとえば、医療ケースの結果として考えられるのは、入院、退院、要再検などです。
それぞれの結果に名前および表示名が含まれます。「ケース結果の定義方法」を参照してください。
ケースでは、2つのタイプの期限(ケース期日およびマイルストン期限)がサポートされています。これらはどちらも期間として表され、値またはXPath式として指定します。期間は、ケース管理エディタの「一般」タブで構成します。
ケース期日は、ケースの開始日時に基づいて、「期限時刻」パネルの「期間」フィールドで指定された値を使用して計算されます。ケース期日に到達すると、ケース期限イベントが発生します。
「ビジネス・カレンダの使用」を選択し、組織単位を指定した場合、ケース期日は組織単位に関連付けられたビジネス・カレンダを使用して計算されます。それ以外の場合、通常のカレンダが使用されます。
マイルストン期限は、マイルストンの開始日時に基づいて、「マイルストン」パネルのマイルストンの「期間」フィールドで指定された値を使用して計算されます。マイルストン期限に到達した時点でなおマイルストンがアクティブになっている場合、マイルストン期限イベントが発生します。
ケースの進行状況を追跡するためのマイルストンを作成します。マイルストン名の間には空白を含めないでください。
マイルストンを追加する手順は次のとおりです。
データおよびドキュメントの格納は、ケース管理エディタの「データとドキュメント」タブで構成します。
ドキュメントがエンタープライズ・コンテンツ・マネージャに格納されるようにケースを構成できます。
ケースには1つ以上の関連ドキュメントを含めることができます。ステークホルダーは、適切な権限を持つ他のステークホルダーのみが表示または削除できるケース・ドキュメントをアップロードできます。
ドキュメントに対する操作を実行するには、Oracle Fusion Middleware Business Process Management Suite Java APIリファレンスで説明されているようにCaseStreamServiceを使用します。
権限タグを使用すると、ドキュメントの読取りと更新を行うことができるユーザーを構成できます。権限タグの詳細は、「ケース・タグ権限の定義」を参照してください。
権限タグは、次の状況で指定できます。
CaseDocumentStreamService
クラスのメソッドuploadDocument()
を使用して新しいドキュメントを作成する場合
CaseService
クラスのメソッドsetPermissionTag()
を使用して、権限タグ・パラメータに適切な値を渡して、既存のドキュメントに対する権限を変更する場合
ドキュメントに対する権限タグのサポートは、ドキュメント・ストアのタイプによって異なります。
Oracle以外のコンテンツ管理システム
この機能は、Oracle WebCenter Content以外のコンテンツ管理システムではサポートされていません。
BPMデータベース
BPM DBをドキュメント・ストアとして使用している場合は、何も構成せずにケース・ドキュメントに対する権限タグを設定できます。「データ格納でのBPMデータベースの使用」を参照してください。
Oracle WebCenter Content
ドキュメントの権限タグを設定すると、CaseManagementPermissionTagのメタデータ情報フィールドにその値が格納されます。ドキュメントに対する権限タグを使用する前に、CaseManagementPermissionTag情報フィールドを作成する必要があります。フィールドを作成するには、「Oracle WebCenter Contentでのケース・フィールドの作成」を参照してください。既存のドキュメントに対して権限タグを設定しようとすると、失敗します。
データ格納にBPMデータベースを使用する場合は、動作にいくつかの違いがあります。
ケース設計で親ルート・フォルダおよびインスタンス・フォルダが指定されていない場合、ドキュメントの格納に使用されるフォルダは、ルート・フォルダと同様にスラッシュとして表示されます(例: /
)。
ケース設計で親ルート・フォルダおよびインスタンス・フォルダが指定されていない場合、ケースの起動中にcaseHeaderペイロード内のecmFolderタグの使用をオーバーライドすると(例: caseroot
)、ドキュメントの格納に使用されるフォルダは、ルート下のフォルダとして表示されます(例: /caseroot
)。
ケース設計で親ルート・フォルダおよびインスタンス・フォルダが指定されている場合、ドキュメントの格納に使用されるフォルダは、/parentFolderName/InstanceFolderName
です。ただし、親フォルダとインスタンス・フォルダがペイロードからオーバーライドされると、そのペイロードで指定されているフォルダが表示されます。
WebCenterに格納するケース・ドキュメントには、起点となるケースの詳細を表示するためのWebブラウザ・リンクを含めることができます。
この機能を使用する前に、WebCenterでCaseManagementLinkという名前のカスタム属性を作成する必要があります。「Oracle WebCenter Contentでのケース・フィールドの作成」を参照してください。
ケース・ドキュメントがWebCenterにアップロードされると、CaseManagementLinkが移入されます。
CaseManagementLinkプロパティの値は、Enterprise Managerの「ワークフロー」プロパティ構成で変更でき、これによりカスタム・ケース管理ユーザー・インタフェースの様々な使用方法がサポートされます。
ドキュメントが格納されてCaseManagementLinkプロパティが移入されたときに置換されるライブ値に、プレースホルダを使用できます。たとえば、ホスト名を表すために$hostを使用し、ポート番号を表すために$portを使用できます。これらのプレースホルダ値は、mdm-url-resolver.xml
内で定義する必要があります。
mdm-url-resolver.xml
で追加の構成を行わなくても、$caseId
と$caseNumber
の値はそれぞれの値で置換されます。
Oracle WebCenterで、ケース情報をサポートするフィールドを使用前に作成する必要があります。これは、CaseManagementPermissionTagフィールドおよびCaseManagement Linkフィールドに適用されます。「ケース・ドキュメントの権限タグの指定」および「WebCenterケース・ドキュメントのケース・リンク」を参照してください。
Oracle WebCenter Contentでフィールドを作成する手順は次のとおりです。
データは、ケースのペイロードを表し、ケースの入力パラメータを定義します。データは、ケース内の情報の一部を表します。
注意:
XSDまたはビジネス・オブジェクトに基づいて作成されたケース・データは、XSDまたはビジネス・オブジェクトに定義されているデフォルト値で初期化されることはありません。
システム・スキーマ・タイプまたはシステム・タイプ(StartCaseInputMessageなど)に基づくケース・データの作成はサポートされていません。これにより、適応型ケース管理プロジェクトが破損する可能性があります。
ケース・データを構成する手順は次のとおりです。
ケース・ペイロード・データにマップするフレックス・フィールドを構成できます。ケース管理エディタの「データとドキュメント」タブの「フレックス・フィールド」セクションを使用して、フレックス・フィールド変数をケース内のデータとリンクするフレックス・フィールド・マッピングを作成および編集します。
「更新可能」チェック・ボックスの選択を解除すると、フレックス・フィールドを変更不可に設定でき、これにより作成後も変更されないデータ(シリアル番号など)をサポートできます。
ケース・データを永続化すると、フレックス・フィールド・マッピングがチェックされて、リンクされたデータも永続化されます。
ケース・ペイロード・データへのマッピングを作成するだけでなく、実行時タスク構成でフレックス・フィールドをタスク・フィールドにマップする必要があります。
ケース管理エディタの「データとドキュメント」タブの「ドキュメント」セクションを使用して、ドキュメントの場所を構成します。ドキュメントの場所は、エンタープライズ・コンテンツ管理システム内のフォルダです。このフォルダに、ケース・インスタンスに関連するすべてのドキュメントが格納されます。このフォルダには他のフォルダが含まれることもあります。
ケース・ドキュメントのフォルダ名は、親フォルダ名と、ユーザーが指定したケース・インスタンスのフォルダ名を連結して作成されます。ケース・インスタンス・フォルダ名を指定する必要があり、そうしない場合は実行時に例外がトリガーされます。
ドキュメントの場所を構成する手順は次のとおりです。
デフォルトでは、Oracle BPM SuiteはOracle Databaseドキュメント・ストアを使用するように構成されます。エンタープライズ・コンテンツ・マネージャにアクセスできない場合は、プロジェクトの開発時にこのデフォルト構成を使用できます。この場合は、Oracle SOA Serverでの構成は必要ありません。
ケース・ドキュメントの格納に使用できるエンタープライズ・コンテンツ・マネージャは次のとおりです。
Oracle WebCenter
Alfresco CMIS
これらのコンテンツ・マネージャを使用するには、BPMのインストール後にEMを使用してこれらを手動で構成する必要があります。
次のリストに、サポートされているエンタープライズ・コンテンツ・マネージャの構成を示します。
Oracle WebCenter
エンドポイントURLをidc://ucm_host:4444
の形式にする必要があります。
管理者ユーザーをweblogic
とすることができます。
Alfresco CMIS
エンドポイントURLの形式はhttp://alfresco_host:8080/alfresco/cmisatom
にしてください
管理者ユーザーをweblogic
とすることができます。
ケースの処理中に発生する手動アクションを表すカスタム・ユーザー・イベントを定義できます。
ケース・ワーカーはイベントを発生させて、何かが起きていることを示します。イベントが発生すると、ケース・アクティビティのアクティブ化がトリガーされるか、またはマイルストンが完了済としてマークされます。たとえば、ファクスの待機をケースの一部とする場合、ファクスの到着時に、ケース・ワーカーは、これが発生したことを示す適切なイベントを発生させることができます。
ケース管理エンジンは、イベントをOracle EDNに公開します。これらのイベントは、ケース内のシステム・イベントおよびユーザー・イベントをキャプチャします。システム・イベントには、ケース・ライフサイクル、ケース・アクティビティ・ライフサイクル、マイルストン、ドキュメントおよびコメント関連のイベントが含まれます。
これらのイベントをリスニングして、イベントに反応するようにプロセスを設計できます。Oracle BPMでのイベントの使用方法の詳細は、「特定のシグナルに反応するプロセスの構成方法」を参照してください。
ケース・イベントを公開する手順は次のとおりです。
注意:
ケース・イベント定義は、oramds:/soa/shared/casemgmt/CaseEvent.edl
にあります。
ケース・イベント・スキーマの詳細は、「CaseEvent.edl」を参照してください。
ケース管理エディタの「ステークホルダーと権限」タブを使用して、ステークホルダーおよびそれに関連する権限を作成、編集および削除します。権限モデルを使用すると、ステークホルダー権限とタグ権限の両方を定義できます。
定義するケースごとに複数のステークホルダーを定義できます。ケース・オブジェクトに対してアクションを実行できるのは、ステークホルダーのみです。ケースに組織単位を指定した場合は、指定した組織単位のメンバーのみが、このメンバーが同時にステークホルダーとして指定されていても、ケースにアクセスできます。
ステークホルダーの「メンバー・タイプ」は、「ユーザー」、「グループ」、「アプリケーション・ロール」または「プロセス・ロール」として構成できます。これらのステークホルダーの値は、「メンバー・タイプ」に適しています。たとえば、「ユーザー」ステークホルダーでは特定のユーザーIDを指定し、「グループ」ステークホルダーではLDAPディレクトリからの特定のユーザー・グループを指定します。
ステークホルダーの「値」は、特定の値を入力するか、またはXPATH式により指定できます。
注意:
weblogicステークホルダーは、BPMOrganizationAdminロールの一部であり、すべての権限があります。このロールの一部であるユーザーには管理者権限があります。weblogicステークホルダーは、ユーザーがケースに追加されない場合でも、ケースの表示やケースに対するアクションの実行が可能です。将来のケース・プロジェクトの再デプロイにより、新しいステークホルダー・アプリケーション・ロールや新しい権限タグ・ロールが追加される可能性がありますが、その場合も既存のロールは影響を受けません。ケースをアンデプロイしても、権限付与またはアプリケーション・ロールには影響しません。
表33-2に、ケース・オブジェクト別のデフォルト権限を示します。
表33-2 ケース・オブジェクト別の権限
番号 | リソース(ケース・オブジェクト) | 許可されたアクション |
---|---|---|
1 |
CASE |
READ、UPDATE |
2 |
COMMENT |
READ、UPDATE |
3 |
DOCUMENT |
READ、UPDATE |
4 |
DATA |
READ、UPDATE |
5 |
EVENT |
INVOKE |
6 |
ACTIVITY |
INVOKE |
7 |
MILESTONE |
READ、UPDATE |
8 |
STAKEHOLDER |
READ、UPDATE |
9 |
HEADER |
READ、UPDATE 注意: ケース・ヘッダーのREAD権限はどこでも使用されず、権限の変更が影響を及ぼすことはありません。 |
ステークホルダーは、ケースの処理に関与する様々な人です。これらの人は、ケースを表示して、ケースに取り組むことができるケース・ワーカーです。
図33-3は、ケース管理エディタの「ステークホルダーと権限」タブを示しています。
ステークホルダーを追加する手順は次のとおりです。
注意:
ケース・ステークホルダー定義を削除しても、その基礎となる組織内のユーザー、ロール、グループまたはロールは削除されません。
ケース管理エディタの「ステークホルダーと権限」タブの「権限」セクションを使用して、ケースに固有の権限を定義します。
ケース・オブジェクトに適切な権限値のタグを付けることにより、ケースを更新できるユーザーを指定します。権限のタグが付いたケース・オブジェクトの表示または更新が可能なのは、読取り/書込みOPSS権限を持つユーザーのみです。
ドキュメントやデータなどのケース・オブジェクトに権限を割り当てることができます。
ユーザー独自の権限を定義できます。UIには、デフォルト権限のPUBLICとRESTRICTEDが表示されます。これらのデフォルトの権限は変更可能です。
通常使用される権限の例としては、internal、public、press releaseなどがあります。
注意:
電子メールおよび単純ワークフローは、グローバル・ケース・アクティビティであるため、権限タグはグローバルです。
権限を追加する手順は次のとおりです。
Oracle Enterprise Managerを使用して、各ステークホルダーに割り当てられた権限を管理できます。
権限を管理する手順は次のとおりです。
Oracle Enterprise managerの「WebLogicドメイン」で、soainfraを右クリックし、「セキュリティ」、「アプリケーション・ポリシー」の順に選択します。
「アプリケーション・ポリシー」ページで、次の検索基準で検索を実行します。
「アプリケーション・ストライプ」フィールドに、OracleBPMPRocessRolesAppと入力します。
「プリンシパル・タイプ」フィールドに、Application Roleと入力します。
「名前が次で始まる:」フィールドにケースの名前を入力するか、フィールドを空白のままにしておきます。
検索結果から、権限を編集するステークホルダーに対応するアプリケーション・ロールを1つ選択します。
「編集」ボタンをクリックします。
「アプリケーション権限の編集」ダイアログ・ボックスが表示されます。
「権限」表で、権限を選択して「編集」をクリックします。
注意:
Oracle Enterprise Managerでは、アクション文字列は検証されないため、正確なアクション文字列を指定する必要があります。
注意:
複数のアクションを割り当てる場合は、空白を挿入せずにカンマで区切ります。例: READ,UPDATE
ステークホルダーは、実行時にケース・オブジェクトに追加の権限を割り当てることができます。このオプションを使用できるようにするには、Oracle BPM Studioでケースを設計するときに権限タグを作成する必要があります。
たとえば、PUBLIC、RESTRICTEDおよびHIGHLY_CONFIDENTIALという権限タグを指定してケースを定義できます。
デプロイ時に、ケースに定義されている権限タグに対応するアプリケーション・ロールがOracle Business Process Managerによって作成されます。
たとえば、EURentというケースでEURent.RESTRICTED.UPDATEアクションを使用して、EURent.RESTRICTED.UPDATE.Roleロールをユーザーに付与する場合、ドキュメントにRESTRICTED権限タグを割り当てることができます。EURent.RESTRICTED.READ.Roleロールを持つユーザーのみが、そのドキュメントにアクセスできます。
注意:
タグ権限は、ステークホルダー権限と連携して動作します。たとえば、ケース・オブジェクトの読取りや更新を行うためには、ステークホルダーにREAD/UPDATE権限が付与されており、ケース・オブジェクトには自身の読取りまたは更新を許可する適切なタグが割り当てられている必要があります。
ステークホルダー権限の詳細は、「ケースのステークホルダーおよび権限の定義」を参照してください。
Oracle Enterprise Managerの「WebLogicドメイン」で、「soainfra」を右クリックし、「セキュリティ」、「アプリケーション・ポリシー」の順に選択します。
「アプリケーション・ポリシー」ページで、次を指定します。
「アプリケーション・ストライプ」フィールドに、OracleBPMPRocessRolesAppと入力します。
「名前が次で始まる:」フィールドにケースの名前を入力するか、フィールドを空白のままにしておきます。
「アプリケーション・ロール」ページで、権限タグ・ロールを選択して「編集」をクリックします。
「アプリケーション・ロールの編集」ダイアログ・ボックスが表示されます。
「追加」をクリックして、このアプリケーション・ロールに、ユーザー、グループまたはアプリケーション・ロール・メンバーを追加します。
実行時に表示されるときに様々な言語を使用するようにケースを構成できます。
ローカライズできるケース・アーティファクトは次のとおりです。
ケース・タイトル
ケース・カテゴリ
マイルストン名
結果
データ
ユーザー・イベント
ステークホルダー
権限
前述のアーティファクトのうち、ケース・タイトルとケース・カテゴリ以外のアーティファクトには表示名を定義できます。表示名はデフォルト・ロケールのリソース・バンドルに格納されます。
注意:
複数のアーティファクトを同じ表示名で構成できます。ただし、表示されるデータをすぐに識別できるようなわかりやすい一意の表示名を使用することをお薦めします。
図33-4は、表示名の構成が可能なマイルストンの作成ダイアログ・ボックスを示しています。
ケース・タイトル
「プレーン・テキスト」オプションまたは「変換」オプションを使用してケース・タイトルを指定できます。「変換」オプションを選択した場合は、次のものを定義する必要があります。
リソース・バンドルのキー
変換対象のテキスト
タイトルを動的にするためのパラメータ(該当する場合)
図33-5は、「変換」オプションを使用して指定したタイトルを示しています。この例では、リソース・バンドルのキーはCaseTitleです。変換対象のテキスト(Car rental for %0 %1)には、2つのパラメータが含まれています。これらのパラメータ値は、「引数」表で指定されています。
ケース・カテゴリ
「プレーン・テキスト」オプションまたは「変換」オプションを使用してケース・カテゴリを指定できます。「変換」オプションでは、単純な変換文字列のみがサポートされています。
次のクラスは、クラスCaseObjectのタイプです。
CaseData
CaseDocumentObject
CaseEvent
CaseHeader
CaseMilestone
CaseStakeHolder
Comment
DatabaseDocument
クラスCaseObjectには、そのタイプと共有される次の属性が含まれています。
Id
CaseId
ObjectName
ObjectDisplayName
ObjectType
UpdatedBy
UpdatedByDisplayName
UpdatedDate
PermissionTag
このリストでは、ObjectDisplayNameにはローカライズされたObjectNameの値が含まれ、UpdatedByDisplayNameにはローカライズされたUpdatedByの値が含まれています。
注意:
初期状態では、UpdateByとUpdatedByDisplayNameには、CaseObjectを作成したユーザーの名前が含まれています。ユーザーがケースを更新すると、これらのフィールドには、そのケースを最後に更新したユーザーの名前が含まれます。
ケース・アクティビティは、エンド・ユーザーがケースの一部として実行できるタスクをモデル化したものです。ケース・アクティビティは、ヒューマン・タスク、BPMNプロセスまたはカスタム・ケース・アクティビティのいずれかです。ケース・アクティビティは、ケース・ワーカーが実行する必要がある特定の作業を表します。
ケース・アクティビティはサブケースをモデル化できます。「サブケースの作成」を参照してください。
ケースは様々なケース・アクティビティで構成されます。BPMプロセスまたはヒューマン・タスクに基づいてこれらのケース・アクティビティを作成することも、カスタム・ケース・アクティビティを作成することもできます。
ケース・アクティビティは、次の方法で作成できます。
BPMNプロセスをケース・アクティビティに昇格させます。
「BPMNプロセスをケース・アクティビティに昇格させる方法」を参照してください。
ヒューマン・タスクをケース・アクティビティに昇格させます。
「ヒューマン・タスクをケース・アクティビティに昇格させる方法」を参照してください。
カスタム・ケース・アクティビティを作成します。
「カスタム・ケース・アクティビティの作成方法」を参照してください。
ケース・アクティビティおよびサブケースは、次の属性によって定義されます。
手動でアクティブ化/自動的にアクティブ化
手動でアクティブ化したケース・アクティビティはケース内で使用可能になり、ユーザーが呼び出すことができます。自動でアクティブ化されたケース・アクティビティは、システムによって呼び出されます。
必須
必須アクティビティは、ケースのクローズ前に少なくとも1回呼び出す必要があります。
繰返し可能
繰返し可能ケース・アクティビティは、1つのケース内で複数回呼び出すことができます。繰返し不可ケース・アクティビティは、1回のみ呼び出すことができます。すでに呼び出されている手動ケース・アクティビティは、ライブラリには表示されません。
条件付きで使用可能
条件付きで使用可能な手動アクティビティは、ビジネス・ルールによってアクティブ化されると、ライブラリ内で使用可能になります。条件なしで使用可能な手動アクティビティは、デフォルトで、ユーザーによって呼び出されるまでライブラリ内で使用可能です。
繰返し可能アクティビティは、呼び出された後もライブラリに表示されます。条件なしの自動アクティビティは、Oracle BPMによってケースが開始された後に呼び出されます。
権限
「権限」の値は、ケース・アクティビティへのアクセスを指定します(例: PUBLICまたはPRIVATE)。
ケース・アクティビティに入力パラメータおよび出力パラメータを指定できます。詳細は、「ケース・アクティビティの入力パラメータの追加方法」および「ケース・アクティビティの出力パラメータの追加方法」を参照してください。
サブケースではデータ・マッピングはサポートされておらず、その親ケースからのみデータが継承されます。「サブケースの作成」を参照してください
ケースには、デフォルトで次のケース・アクティビティが含まれています。
単純ワークフロー
このアクティビティを使用して、単純なヒューマン・タスクを作成できます。タスクのタイトル、優先度、期日、コメント、割当てタイプおよび割当て先を構成できます。サポートされている割当てタイプは、単純、順次、パラレルおよびFYIです。
キーSimpleWFActivityPayload
を使用してペイロード入力をメソッドinitiateCaseActivity
に渡す必要があります。「単純ワークフロー・ペイロード・スキーマ」に示したスキーマのペイロードを使用する必要があります。
電子メール通知
このアクティビティを使用して、電子メール通知を送信できます。電子メール通知が適切に動作するようにワークフロー通知をEMAILに設定する必要があります。
キーEmailActivityPayload
を使用してペイロード入力をメソッドinitiateCaseActivity
に渡す必要があります。「電子メール通知ペイロード・スキーマ」に示したスキーマのペイロードを使用する必要があります。
注意:
添付ファイルとして送信できるのは、グローバル・ケース・アクティビティの電子メール通知アクティビティ内のケース・ドキュメントのみです。ファイル・システム内にあるドキュメントはサポートされていません。
別のケース・アクティビティの後にケース・アクティビティを実行する場合は、2番目のアクティビティで、最初のアクティビティが完了した後にそのアクティビティを実行することを示す条件を定義する必要があります。
条件の定義の詳細は、「ケースでのビジネス・ルールの使用」を参照してください。
BPMNプロセスに基づいてケース・アクティビティを作成できます。これによって、BPMNプロセスはケース・アクティビティとして公開されます。ケース・アクティビティは、ケース・ワーカーが実行できる単一の項目です。
ケース・アクティビティを作成すると、Oracle BPM Studioによって、BPMNプロセスの複数のエンド・ポイントのすべての引数に対して出力引数が生成されます。ただし、複数のスタート・ポイントが含まれるプロセスの入力引数に対応する場合は、スタート・ポイントごとにケース・アクティビティを作成する必要があります。
BPMNプロセスがすでに存在している必要があります。同期および非同期のBPMNプロセスを使用できます。ケース・アクティビティでは、メッセージのスタート・ポイントとエンド・ポイントのみがサポートされます。
BPMNプロセスをケース・アクティビティに昇格させる手順は次のとおりです。
注意:
ケース・アクティビティは基礎となるBPMNプロセスに入力パラメータを渡すことができます。BPMNプロセスの出力引数を読み取ってその値を格納するようにケース・アクティビティを構成することもできます。
詳細は、「ケース・アクティビティの入力パラメータの定義」および「ケース・アクティビティの出力パラメータの定義」を参照してください。
「拡張」タブには、ケース・アクティビティを作成するために使用されるサービス参照と操作が表示されます。
ヒューマン・タスク操作を表示する手順は次のとおりです。
ケースを開きます。
「詳細設定」タブを選択します。
図33-7は、BPMNプロセスに基づいたケース・アクティビティの「拡張」タブを示しています。
BPMNプロセスを開くには、サービス参照をクリックします。
操作を変更するには、「リフレッシュ」ボタンをクリックします。
ヒューマン・タスクに基づいてケース・アクティビティを作成できます。
ヒューマン・タスクがすでに存在している必要があります。
BPMNプロセスをケース・アクティビティに昇格させる手順は次のとおりです。
注意:
ケース・アクティビティは基礎となるヒューマン・タスクに入力パラメータを渡すことができます。ヒューマン・タスクの出力パラメータを読み取ってその値を格納するようにケース・アクティビティを構成することもできます。
詳細は、「ケース・アクティビティの入力パラメータの定義」および「ケース・アクティビティの出力パラメータの定義」を参照してください。
「拡張」タブには、ケース・アクティビティを作成するために使用されるヒューマン・タスクが表示されます。
ヒューマン・タスク操作を表示する手順は次のとおりです。
Javaクラスに基づいてカスタム・ケース・アクティビティを作成できます。
カスタム・ケース・アクティビティを使用すると、ユーザーは独自のケース・アクティビティ(スケジューラなど)を作成できます。エンド・ユーザーにとっては、その他のタイプのケース・アクティビティと何の違いもありません。
ケース・アクティビティを作成する手順は次のとおりです。
注意:
入力パラメータおよび出力パラメータをカスタム・ケース・アクティビティに追加できます。入力パラメータには、ケース・データまたはユーザー入力の値を割り当てることができます。出力パラメータの値をケース・データとして格納することもできます。
サブケースを使用して、親ケースの解決に寄与するアクティビティを管理します。サブケースはケース・アクティビティと似ており、親ケースのコンテキスト内で実行時にインスタンス化されます。
たとえば、停電ケースのサブケースとしては回線修理が考えられます。親の停電ケースの進行中に、親ケースの作業で発見された必要な修理を促進するために、1つまたは複数の回線修理サブケースが開始されることがあります。
サブケースは、親ケース・プロジェクトから独立したコンポジットとしてデプロイされます。これらは、ケース・リンク・メカニズムを使用して親にリンクされます。サブケース・コンポジット・バージョンは常に、親コンポジットのアクティブ・バージョンです。
サブケースではデータ・マッピングはサポートされておらず、その親ケースからのみデータが継承されます。
サブケースが完了すると、アクティビティ完了イベントが発生します。ケース・アクティビティに適用される制約と同じ制約が、サブケース・アクティビティにも適用されます。
入力パラメータは、ケース・データまたはユーザー入力にすることができます。
入力パラメータは、デフォルトでケース・データから値を取り込みます。ユーザー入力からその値が取り込まれるように、これを変更できます。
また、.caseファイルにケース・データを定義する必要もあります。ケース・データを定義しないと、ケース・アクティビティを作成するときに、Oracle BPM Studioによって必須タイプの新しいケース・データが作成されます。
BPMNプロセスまたはヒューマン・タスクの入力引数と同じ順序でケース・アクティビティの入力パラメータを定義する必要があります。
入力パラメータがユーザー入力タイプである場合、この値をケース・データとして保存できます。
図33-8は、BPMNプロセスに基づいたケース・アクティビティの入力パラメータの入力引数と、BPMNプロセスの開始イベントの引数を示しています。ケース・アクティビティの入力パラメータの名前は、BPMNプロセスの引数の名前と一致する必要があります。
デフォルトでは、Oracle BPM Studioによって、BPMNプロセスまたはヒューマン・タスクの引数に基づいて出力引数が作成されます。編集可能なヒューマン・ワークフロー引数のみが出力引数としてケース・アクティビティに表示されます。
出力パラメータの値をケース・データとして保存できます。これを行うには、ケース・アクティビティの出力パラメータの名前がBPMNプロセスまたはヒューマン・タスクの引数のルート要素名と一致している必要があります。ケースを作成した後、出力パラメータの名前を変更できます。
図33-9は、BPMNプロセスに基づいたケース・アクティビティの出力パラメータの出力引数と、BPMNプロセスの終了イベントの引数を示しています。ケース・アクティビティの出力パラメータの名前は、BPMNプロセスの引数の名前と一致する必要があります。
出力をケース・データとして保存できます。デフォルトでは、同じタイプのケース・データが使用可能でない場合に、ケース・アクティビティ・エディタによってケース・データ・フィールドが移入されます。それ以外の場合は、ケース・アクティビティ・エディタによって同じタイプの新しいケース・データが.caseファイル内に作成されます。
ケース・アクティビティを作成した後、BPM Studioの「ケース・アクティビティ」エディタにケースが表示され、構成できるようになります。
ケース・アクティビティのプロパティを構成することにより、ケース・ワークフロー中に様々方法で動作するようにケース・アクティビティを構成できます。
作成したケース・アクティビティの次の基本プロパティを構成できます。
自動
必須
繰返し可能
条件付きで使用可能
これらの属性の詳細は、「ケース・アクティビティおよびサブケースの属性」を参照してください。
ケース・アクティビティの入力パラメータおよび出力パラメータを追加することもできます。「ケース・アクティビティの入力パラメータの追加方法」および「ケース・アクティビティの出力パラメータの追加方法」を参照してください。
グローバル・ケース・アクティビティは、スコープ内でグローバルで、どのコンポジットの一部にもなっていないカスタム・ケース・アクティビティです。グローバル・アクティビティは、タイプに関係なくすべてのケースに適用されます。
グローバル・アクティビティはグローバル・フラグtrueによって識別されます。Oracle BPM Studioを使用してグローバル・アクティビティを設計することはできません。
グローバル・アクティビティのコールバックJavaクラスをワークフロー・カスタマイズ・クラスパスに追加する必要があります。
「グローバル・ケース・アクティビティ・メタデータ・スキーマの例」に、グローバル・アクティビティ・メタデータのメタデータの例を示します。isGlobal属性の値はtrueに設定されます。
グローバル・ケース・アクティビティを作成した後、Oracle Fusion Middleware Business Process Management Suite Java APIリファレンスのregisterCaseActivityクラスを使用して、そのグローバル・ケース・アクティビティを登録する必要があります。これを行うには、ケース・アクティビティ・ドキュメントをアンマーシャルし、CaseActivityをパラメータとして渡す必要があります。
例33-1は、グローバル・ケース・アクティビティの登録方法を示しています。
例33-1 グローバル・ケース・アクティビティの登録
InputStream is = classLoader.getResourceAsStream(<file>); public static CaseActivity unmarshall(InputStream inputStream) throws JAXBException, IOException { try { // create a document DOMParser p = new DOMParser(); p.retainCDATASection(true); p.parse(inputStream); Document doc = p.getDocument(); JAXBContext jaxbContext = JAXBContext.newInstance(JAXB_CONTEXT); //return unmarshal(doc); return (CaseActivity) jaxbContext.createUnmarshaller().unmarshal(doc); } catch (oracle.xml.parser.v2.XMLParseException e) { throw new JAXBException(e); } catch (org.xml.sax.SAXException e) { throw new JAXBException(e); } } private static final String JAXB_CONTEXT = "oracle.bpm.casemgmt.metadata.activity.model";
ビジネス・ルールを使用して、自動開始または手動開始のためにアクティブ化するケース・アクティビティ、または取り消すケース・アクティビティを決定できます。また、ルールを使用してマイルストンを実行済または取消し済としてマークすることもできます。
ケースを作成すると、Oracle BPM Studioによって関連するビジネス・ルール・ディクショナリが自動的に生成されます。
適切なプラクティスとして、イベントに対してケース管理ルールを定義します。ケース管理ルールは、ルールのイベントで発生します。そのため、条件ではなくイベントで発生するルールを定義することをお薦めします。
Oracle BPMでは、すべてのケース・イベントに対してビジネス・ルールを適用します。ケース・イベントは、ケースの実行時に発生する論理イベントです。次のリストに、使用可能なケース・イベントを示します。
ライフサイクル・イベント
マイルストン・イベント
アクティビティ・イベント
データ・イベント
ドキュメント・イベント
コメント・イベント
ユーザー・イベント
注意:
次の順序でルールをモデリングしますイベント・タイプ
アクティビティ名
アクティビティ状態
次のものに基づいてビジネス・ルールの条件を定義できます。
ビジネス・ルールを起動したイベント
表33-3に、ビジネス・ルールを起動する可能性のある各種のイベントを示します。
ケース・インスタンス
ケース・データ
ケースに構成されているケース・データは、ビジネス・ルール・ディクショナリ内のファクトとして使用できます。ルールは、ケース管理関連のファクトと組み合せたケース・データに基づいて作成できます。
表33-3 ケース・イベント
名前 | 説明 | 属性 |
---|---|---|
CaseLifeCycleEvent |
ライフサイクル・イベント |
state、lifecycleEvent |
CaseMilestoneEvent |
マイルストン・イベント |
milestone、type |
CaseActivityEvent |
アクティビティ・イベント |
activityName、type |
CaseDataEvent |
データ・イベント |
dataName |
CaseDocumentEvent |
ドキュメント・イベント |
document、documentName、type |
CaseCommentEvent |
コメント・イベント |
comment |
UserDefinedEvent |
ユーザー・イベント |
eventName、event |
図33-10は、ケース管理システム関連のデータに基づいたビジネス・ルールの条件の定義に使用できるファクトを示しています。
ケースの作成時に作成されたビジネス・ルール・ディクショナリは、Oracle MDS内の共通ベース・ディクショナリにリンクされます。共通ベース・ディクショナリには、図33-10に示されているファクトがすべて含まれています。ベース・ディクショナリの名前は、CaseManagementBaseDictionary
です。
ケース・ビジネス・ルール・ディクショナリでは、次の操作がサポートされています。
ビジネス・ルールから条件付き自動アクティビティを自動的に起動する
ビジネス・ルールから条件付き手動アクティビティをケースに公開する
ビジネス・ルールからアクティビティを取り消す
注意:
条件なしの手動アクティビティは取り下げられません。取り下げることができるのは、条件付き手動アクティビティだけです。ビジネス・ルールからマイルストンを実行および取り消す
これらの操作の実行に使用する関数の詳細は、表33-4を参照してください。
ケースを作成すると、Oracle BPMによって関連するビジネス・ルール・ディクショナリが自動的に生成されます。このケース・ビジネス・ルール・ディクショナリを使用すると、ケースに基づいたルール条件でビジネス・ルールを定義できます。
ケース・ビジネス・ルール・ディクショナリを生成する手順は次のとおりです。
表33-4 ルール関数
ルール関数 | 説明 | パラメータ |
---|---|---|
|
条件付き自動ケース・アクティビティと条件付き手動ケース・アクティビティを起動します。 |
activityName: 起動するアクティビティの名前です。 |
|
ケース・アクティビティを取り消します。 |
activityName: 取り消すアクティビティの名前です。 |
|
ケース・アクティビティを評価します(評価の理由を含む)。 |
activityName: 取り消すアクティビティの名前です。 comments: 評価の理由。 relevance: ケース・アクティビティの評価(NONE、LOW、NORMALまたはHIGH)。 caseAction: 戻り時に関数により移入されます。 |
|
ケース・アクティビティが繰返し可能かどうか(true、false)を設定します。 |
activityName: ケース・アクティビティの名前。 value: TRUE - ケース・アクティビティは繰返し可能です。FALSE - ケース・アクティビティは繰返し不可です。 caseAction: 戻り時に関数により移入されます。 |
|
ケース・アクティビティが必須かどうかを設定します。 |
activityName: ケース・アクティビティの名前。 value: TRUE - 必須のケース・アクティビティです。FALSE - 必須ではありません。 caseAction: 戻り時に関数により移入されます。 |
|
ケース・アクティビティが自動的に開始されるかどうかを設定します。 |
activityName: ケース・アクティビティの名前。 value: TRUE - 自動的に開始されます。FALSE - 手動で開始します。 caseAction: 戻り時に関数により移入されます。 |
|
マイルストンを実行済としてマークします。 |
milestoneName: 実行済としてマークするマイルストンの名前です。 comments: このマイルストンを実行済としてマークする理由を示すコメントです。 |
|
マイルストンを取り消します。 |
milestoneName: 取り消すマイルストンの名前です。 comments: このマイルストンを取り消す理由を示すコメントです。 |
どのステークホルダーも、ケース内の必須アクティビティがすべて完了していれば、ケースをクローズできます。追加の権限を持つユーザーは、保留中の必須アクティビティがあっても、ケースを強制的にクローズできます。
ケースのクローズは、ケースのステータスをクローズ済としてマークする論理操作です。CaseInstanceService
クラスのcloseCase
メソッドを呼び出して、ケースをクローズできます。ケースをクローズするときに、オプションの結果パラメータとコメントを指定できます。
ケースの現在の状態およびケース・アクティビティの状態に関係なく、ケースをクローズできます。
ケースをクローズすると、そのケースの状態はCLOSEDに設定されます。queryCase APIを使用して取得するユーザーのケースのリストには、クローズ済ケースが含められます。
注意:
ケースをクローズまたは一時停止した後でも、マイルストンを実行または取り消すことができます。
Oracle BPMと統合するには、BPMNプロセスからケースを呼び出すか、ケース・イベントをOracle EDNに公開します。
次に、これらのイベントに反応するプロセスを作成します。
この項では、単純ワークフロー・スキーマ、電子メール通知スキーマ、およびグローバル・ケース・アクティビティ・メタデータ・スキーマの例を示します。
このスキーマには、単純なヒューマン・タスクを作成するためにメソッドinitiateCaseActivityに渡すことができるペイロードのリストが含まれます。詳細は、「事前定義済ケース・アクティビティ」を参照してください。
このスキーマには、電子メール通知を送信するためにメソッドinitiateCaseActivityに渡すことができるペイロードのリストが含まれます。詳細は、「事前定義済ケース・アクティビティ」を参照してください。
グローバル・ケース・アクティビティ・メタデータ・スキーマの例
このスキーマは、グローバル・アクティビティに対するメタデータの例です。グローバル・アクティビティの詳細は、「グローバル・ケース・アクティビティの作成」を参照してください。
このスキーマは、Oracle EDNに公開できるケース・イベントを定義します。詳細は、「ケース・ユーザー・イベントの公開方法」を参照してください。
例33-2 シンプル・ワークフロー・ペイロード・スキーマ
<?xml version="1.0" ?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:extension="http://xmlns.oracle.com/bpm/case/metadata/extension" xmlns="http://xmlns.oracle.com/bpm/case/activity/custom" targetNamespace="http://xmlns.oracle.com/bpm/case/activity/custom" xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" jaxb:version="2.0" elementFormDefault="qualified" blockDefault="#all"> <xsd:annotation> <xsd:documentation>Simple WF Activity Schema</xsd:documentation> <xsd:appinfo> <jaxb:schemaBindings> <jaxb:package name="oracle.bpm.casemgmt.customactivity.simplewf.model"/> </jaxb:schemaBindings> <jaxb:globalBindings generateElementClass="true" generateIsSetMethod="true"> <jaxb:serializable uid="123456"/> </jaxb:globalBindings> </xsd:appinfo> </xsd:annotation> <xsd:import namespace="http://xmlns.oracle.com/bpm/case/metadata/extension" schemaLocation="ExtensibleElements.xsd"/> <xsd:element name="SimpleWorkflowPayload" type="tSimpleWorkflowPayload"/> <xsd:complexType name="tSimpleWorkflowPayload"> <xsd:complexContent> <xsd:extension base="extension:tExtensibleElements"> <xsd:sequence> <xsd:choice minOccurs="1" maxOccurs="1"> <xsd:element name="simpleAssignmentType" type="tSimpleAssignmentType"/> <xsd:element name="sequentialAssignmentType" type="tSequentialAssignmentType"/> <xsd:element name="parallelAssignmentType" type="tParallelAssignmentType"/> <xsd:element name="fyiAssignmentType" type="tFyiAssignmentType"/> </xsd:choice> <xsd:element name="title" type="xsd:string" minOccurs="0" maxOccurs="1"/> <xsd:element name="dueDate" type="xsd:date" minOccurs="0" maxOccurs="1"/> <xsd:element name="priority" type="xsd:integer" minOccurs="0" maxOccurs="1"/> <xsd:element name="comment" type="xsd:string" minOccurs="0" maxOccurs="1"/> <xsd:element name="payloadType" type="tPayloadType" minOccurs="0" maxOccurs="1"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="tSimpleAssignmentType"> <xsd:complexContent> <xsd:extension base="extension:tExtensibleElements"> <xsd:sequence> <xsd:element name="assigneeType" type="tAssigneeType" minOccurs="1" maxOccurs="1"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="tSequentialAssignmentType"> <xsd:complexContent> <xsd:extension base="extension:tExtensibleElements"> <xsd:sequence> <xsd:element name="assigneeType" type="tAssigneeType" minOccurs="1" maxOccurs="unbounded"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="tFyiAssignmentType"> <xsd:complexContent> <xsd:extension base="extension:tExtensibleElements"> <xsd:sequence> <xsd:element name="assigneeType" type="tAssigneeType" minOccurs="1" maxOccurs="unbounded"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="tParallelAssignmentType"> <xsd:complexContent> <xsd:extension base="extension:tExtensibleElements"> <xsd:sequence> <xsd:element name="assigneeType" type="tAssigneeType" minOccurs="1" maxOccurs="unbounded"/> <xsd:element name="defaultOutcome" type="tOutcomeTypeEnum" minOccurs="1" maxOccurs="1"/> <xsd:element name="completionCriteriaType" type="tCompletionCriteriaType" minOccurs="1" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attribute name="waitForAllVotes" type="xsd:boolean"/> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="tCompletionCriteriaType"> <xsd:complexContent> <xsd:extension base="extension:tExtensibleElements"> <xsd:sequence> <xsd:element name="outcome" type="tOutcomeTypeEnum" minOccurs="1" maxOccurs="1"/> <xsd:element name="outcomePercentage" type="xsd:integer" minOccurs="1" maxOccurs="1"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:simpleType name="tOutcomeTypeEnum"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="APPROVE"/> <xsd:enumeration value="REJECT"/> </xsd:restriction> </xsd:simpleType> <xsd:complexType name="tAssigneeType"> <xsd:complexContent> <xsd:extension base="extension:tExtensibleElements"> <xsd:sequence> <xsd:element name="identityName" type="xsd:string" minOccurs="1" maxOccurs="1"/> <xsd:element name="identityType" type="tIdentityTypeEnum" minOccurs="1" maxOccurs="1"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:simpleType name="tIdentityTypeEnum"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="USER"/> <xsd:enumeration value="GROUP"/> <xsd:enumeration value="APPROLE"/> </xsd:restriction> </xsd:simpleType> <xsd:complexType name="tPayloadType"> <xsd:complexContent> <xsd:extension base="extension:tExtensibleElements"> <xsd:sequence> <xsd:element name="parameter" type="tParameterType" minOccurs="1" maxOccurs="unbounded"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="tParameterType"> <xsd:complexContent> <xsd:extension base="extension:tExtensibleElements"> <xsd:sequence> <xsd:element name="name" type="xsd:string" minOccurs="1" maxOccurs="1"/> <xsd:element name="value" type="xsd:string" minOccurs="1" maxOccurs="1"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> </xsd:schema>
例33-3 電子メール通知ペイロード・スキーマ
<?xml version="1.0" ?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:extension="http://xmlns.oracle.com/bpm/case/metadata/extension" xmlns="http://xmlns.oracle.com/bpm/case/activity/custom" targetNamespace="http://xmlns.oracle.com/bpm/case/activity/custom" xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" jaxb:version="2.0" elementFormDefault="qualified" blockDefault="#all"> <xsd:annotation> <xsd:documentation>Email Activity Schema</xsd:documentation> <xsd:appinfo> <jaxb:schemaBindings> <jaxb:package name="oracle.bpm.casemgmt.customactivity.notification.model"/> </jaxb:schemaBindings> <jaxb:globalBindings generateElementClass="true" generateIsSetMethod="true"> <jaxb:serializable uid="123456"/> </jaxb:globalBindings> </xsd:appinfo> </xsd:annotation> <xsd:import namespace="http://xmlns.oracle.com/bpm/case/metadata/extension" schemaLocation="ExtensibleElements.xsd"/> <xsd:element name="emailPayload" type="tEmailPayload"/> <xsd:complexType name="tEmailPayload"> <xsd:complexContent> <xsd:extension base="extension:tExtensibleElements"> <xsd:sequence> <xsd:element name="from" type="xsd:string" minOccurs="1" maxOccurs="1"/> <xsd:element name="to" type="xsd:string" minOccurs="1" maxOccurs="1"/> <xsd:element name="replyTo" type="xsd:string" minOccurs="0" maxOccurs="1"/> <xsd:element name="cc" type="xsd:string" minOccurs="0" maxOccurs="1"/> <xsd:element name="bcc" type="xsd:string" minOccurs="0" maxOccurs="1"/> <xsd:element name="ject" type="xsd:string" minOccurs="0" maxOccurs="1"/> <xsd:element name="message" type="xsd:string" minOccurs="0" maxOccurs="1"/> <xsd:element name="attachments" type="tAttachment" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="tAttachment"> <xsd:complexContent> <xsd:extension base="extension:tExtensibleElements"> <xsd:sequence> <xsd:element name="name" type="xsd:string" minOccurs="1" maxOccurs="1"/> <xsd:element name="mimeType" type="xsd:string" minOccurs="1" maxOccurs="1"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType> </xsd:schema>
例33-4 グローバル・ケース・アクティビティ・メタデータ・スキーマの例
<caseActivity targetNamespace="http://xmlns.oracle.com/bpm/case/activity"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.oracle.com/bpm/case/activity ../../../../../interface/src/main/resources/schemas/CaseActivity.xsd"
xmlns="http://xmlns.oracle.com/bpm/case/activity">
<documentation xmlns="http://xmlns.oracle.com/bpm/case/metadata/extension"/>
<name>SimpleWorkflowActivity</name>
<activityDefinitionId>http://xmlns.oracle.com/bpm/case/activity/SimpleWFActivityDefinition</activityDefinitionId>
<activityType>CUSTOM</activityType>
<repeatable>true</repeatable>
<required>false</required>
<manual>true</manual>
<isGlobal>true</isGlobal>
<isConditional>false</isConditional>
<caseAssociations>
<documentation xmlns="http://xmlns.oracle.com/bpm/case/metadata/extension"/>
<allCases/>
</caseAssociations>
<globalActivity>
<definition>
<documentation xmlns="http://xmlns.oracle.com/bpm/case/metadata/extension"/>
<className>oracle.bpm.casemgmt.customactivity.simplewf.SimpleWFActivityCallback</className>
</definition>
</globalActivity>
</caseActivity>
例33-5 CaseEvent.edl
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <definitions xmlns="http://schemas.oracle.com/events/edl" targetNamespace="http://xmlns.oracle.com/bpm/case/event"> <schema-import location="oramds:/soa/shared/casemgmt/CaseEvent.xsd" namespace="http://xmlns.oracle.com/bpm/case/event"/> <event-definition name="CaseEvent"> <content xmlns:ns0="http://xmlns.oracle.com/bpm/case/event" element="ns0:caseEvent"/> </event-definition> </definitions>