Oracle® Fusion Middleware Oracle Business Process Managementユーザーズ・ガイド 11gリリース1 (11.1.1.9) B61408-11 |
|
![]() 前 |
![]() 次 |
この章では、プロセス・ワークスペースで、プロセスの所有者とプロセス・ワークスペース管理者が実行中のプロセス・インスタンスのフローを変更する方法について説明します。また、プロセス・ワークスペースでインスタンスを移行する方法についても説明します。
この章の内容は次のとおりです。
実行中のプロセス・インスタンスのトークンを現在のアクティビティから別のものに移動できますが、次の構造的制約があります。
インスタンスは、同じプロセス・レベルで定義されているアクティビティにのみ移動できます。
インスタンスは境界イベントに移動できません。
境界イベントが中断中でない場合や同じレベルで定義されていない場合は、境界イベントにインスタンスを移動できません。イベント・サブプロセスの内部または外部にインスタンスを移動することはできません。
インスタンスはゲートウェイのブランチの外部に移動できません。ただし、それをマージ・ゲートウェイに移動して、そのパスをマージできます。
注意: 排他ゲートウェイを使用している場合は、排他ゲートウェイ・ブランチの外部にインスタンスを移動できます。 |
実行中のプロセス・インスタンスのフローを変更するには:
「プロセス・トラッキング」タブ・ページから、プロセス・インスタンスを選択します。そのインスタンスの詳細が表示されます。
「アクション」リストから、「フローを変更して一時停止」を選択します。
1つのプロセス・インスタンスを選択すると、図11-1の例のように「フローの変更」ダイアログ・ボックスが表示されます。
デフォルトでは、「フローの変更」ダイアログ・ボックスにはプロセスおよびプロジェクト・データ属性のみが表示されます。いずれかのオープン・アクティビティを選択すると、そのオープン・アクティビティのコンテキストにおけるデータ・オブジェクトが表示されます。たとえば、オープン・アクティビティがサブプロセスである場合、「フローの変更」ダイアログ・ボックスにはサブプロセス・レベルのデータ・オブジェクトが表示されます。
「フローの変更」ダイアログ・ボックスで、次のいずれかまたはすべてを実行できます。
「オープン・アクティビティ」表に、実行中のプロセス・インスタンスの現在のアクティビティのリストを表示します。トークンを移動する新しいアクティビティを選択できます。「新規アクティビティ」リストには、トークンを有効に移動できる場所のみが表示されます。
図11-1に示されているように、データ・オブジェクトのリストに相関キーを表示します。相関キーは、プロセスで相関が使用されている場合のみ表示されます。これを行うには、「相関キーの表示」を選択します。相関キーを選択した場合、そのキーを構成する相関プロパティが詳細セクションに表示されます。相関キーをリセットするには、「相関キーのリセット」を選択します。
相関キーの詳細は、Oracle Fusion Middleware Oracle Business Process Managementモデリングおよび実装ガイドを参照してください。
図11-1に示されているように、データ・オブジェクトのリストにプロセス・インスタンスの属性を表示します。これを行うには、「インスタンス属性の表示」を選択します。特定のインスタンス属性の詳細を表示するには、その属性を選択します。変更できるインスタンス属性のみが編集可能として表示されます。その他は読取り専用です。
「コメント」フィールドにコメントを追加します。
次のいずれかをクリックします。
再開: トークンを別のアクティビティに移動し、プロセスを実行中の状態に戻します。
保存: プロセス・インスタンスを一時停止します。後で戻って、フローを変更したり再開できます。
取消: プロセス・インスタンスを最後に保存された状態に戻します。プロセスは引き続き実行中の状態になります。
注意:
|
同じコンポジット・リビジョンの新しい実装がデプロイされ、以前にデプロイされたコンポジットに、より新しいBPMプロセスの定義を持つコンポーネントがある場合、影響を受けるコンポーネントは一時停止状態になります。一時停止中のコンポーネントを再開するには、移行を保留している状態のプロセス・インスタンスを移行または一時停止します。
移行を保留しているすべてのインスタンスを再開するときに明示的または自動的にコンポーネントを再開する場合を除いて、トークンを移動しても新しいタスク・インスタンスは作成されません。
Oracle BPMでは、プロセスを再デプロイするときに既存の実行中のプロセス・インスタンスを保持する方法を提供しています。これを行うには、Fusion Middleware Controlコンソールでのプロセスの再デプロイ中に、「実行中のインスタンスの保持」を選択します。再デプロイが成功した場合、インスタンスは移行を保留している状態になり、プロセス・コンポーネントは一時停止します。
注意: コンポジットに101個以上の既存のインスタンスが含まれている場合、再デプロイ時には100個のインスタンスしか移行されず、コンポジットは一時停止されます。この制限は、再デプロイ時間を最小化するために使用されます。残りのインスタンスを移行するには、Process Management APIを使用します。 |
この項では、移行を保留しているインスタンスを移行する方法と、一時停止していたコンポーネントを再開する方法について説明します。内容は次のとおりです。
注意: 11gリリース1 (11.1.1.5.0 Feature Pack)より前に作成されたタスク・インスタンスを実行中で、それ以降のリリースを使用して新しいインスタンスを作成する場合は、以前より実行中のタスク・インスタンスがすべて完了するまで新しいインスタンスに移行しないでください。 |
次の2つの方法のいずれかで、プロセス・インスタンスを移行できます。
そのままの状態で移行: トークンを移動したりペイロードを更新せずにインスタンスを移行します。
変更して移行: 指定した新しいアクティビティにトークンを移動し、指定したとおりにペイロードを更新してからインスタンスを移行します。
プロセス・インスタンスを移行するには:
1つまたは複数のプロセス・インスタンスを選択します。「アクション」リストから、「移行」を選択します。「移行」ダイアログ・ボックスが表示されます。
このダイアログ・ボックスの要素は、選択によって変わります。「そのままの状態で移行」を選択した場合は、「コメント」フィールドのみが使用可能になります。1つのインスタンスを選択し、「変更して移行」を選択すると、図11-2に示すように「移行」ダイアログ・ボックスが表示されます。
「変更して移行」を選択すると、次のいずれかまたはすべてを実行できます。
「オープン・アクティビティ」表に、トークンが現在実行されているアクティビティを表示し、トークンを移動する新しいアクティビティを選択できます。「新規アクティビティ」リストには、トークンを有効に移動できる場所のみが表示されます。
注意:
|
データ・オブジェクトのリストに相関キーを含めます。これを行うには、「相関キーの表示」を選択し、「データ・オブジェクト」タブで「ツリーで表示」を選択してデータ・オブジェクトを展開します。相関キーを選択した場合、そのキーを構成する相関プロパティが詳細セクションに表示されます。相関キーをリセットするには、「リセット」を選択します。
相関キーの詳細は、Oracle Fusion Middleware Oracle Business Process Managementモデリングおよび実装ガイドを参照してください。
データ・オブジェクトのリストにプロセス・インスタンス属性を含めます。これを行うには、「インスタンス属性の表示」を選択してから、「データ・オブジェクト」タブで「ツリーで表示」を選択し、データ・オブジェクトを展開してから「インスタンス属性」を展開します。特定のインスタンス属性の詳細を表示するには、その属性を選択します。変更できるインスタンス属性のみが編集可能として表示されます。その他は読取り専用です。
「コメント」フィールドにコメントを追加します。
次のいずれかをクリックします。
保存: プロセスを、移行を保留している状態のままにします。
移行: プロセスを移行し、実行中の状態にします。
取消: プロセス・インスタンスを最後に保存された状態に戻します。
なんらかの理由で移行が失敗した場合は、図11-3に示すように「移行確認」ダイアログ・ボックスに理由が表示されます。
すべての一時停止中のコンポーネントは、図11-4の例に示すように、「保留中コンポーネント」パネルに一覧表示されます。
一時停止中のコンポーネントを再開するには:
「保留中コンポーネント」パネルから、再開するコンポーネントを選択します。図11-5の例に示すように、「コンポーネントの再開」ダイアログ・ボックスが表示されます。そのコンポーネントで移行を保留しているインスタンスの数が表示されます。
「コンポーネントの再開」ダイアログ・ボックスで、移行を保留しているプロセス・インスタンスの状態を選択します。
そのままの状態で移行
一時停止中
そのままの状態で移行できないインスタンスがあるときに、コンポーネントを再開する必要がある場合は、「移行されないインスタンスを一時停止にする」を選択します。このオプションを選択せず、そのままの状態で移行できないインスタンスがある場合は、コンポーネントを再開できません。
「再開」をクリックします。コンポーネントが再開され、「保留中コンポーネント」パネルが表示されなくなります。「コンポーネント再開の確認」ダイアログ・ボックスに、結果と一時停止しているインスタンスの数が表示されます。新しいプロセス・インスタンスを開始できるようになり、リクエストが処理されます。
注意: コンポーネントが一時停止している場合でも、プロセス・インスタンスを開始できます。ただし、この場合、リクエストはキューに格納され、コンポーネントが再開されるまで処理されません。 |
プロセスを再デプロイする場合、設計時に「実行中のインスタンスの保持」オプションを選択すると、次のシナリオでは再デプロイに失敗します。
パラレル・ゲートウェイや包含ゲートウェイのペアが削除されます
包含-複合ゲートウェイ・ペアが包含-包含ゲートウェイ・ペアに変更される
サブプロセスが削除されるか、そのループ特性が変更される
ユーザー・タスクがゲートウェイ・ペアの別のブランチまたはゲートウェイ・ペアの外部に移動される
アクティビティ・レベルが変更される。たとえば、アクティビティがサブプロセス内またはゲートウェイ構造内で移動される
サブプロセスまたはイベント・サブプロセスまたはコール・アクティビティが追加される
イベント・サブプロセスが連続しないタイプから連続するタイプに変更される
境界イベントが連続しないタイプから連続するタイプに変更される
境界イベントが追加される
ユーザー・タスクの実装が別のヒューマン・タスクを使用するように変更される
これらのシナリオで再デプロイが失敗することを望まない場合は、Oracle JDeveloperでcomposite.xmlファイルを編集し、
force.deployフラグを手動で設定する必要があります。
force.deploy
をコンポーネント・レベルで設定するには、次のように入力します。
<component name="T4"> <property name="oracle.bpm.bpmn.force.deploy">true</property> <implementation.bpmn src="processes/T4.bpmn"/> </component>
コンポジット・レベルでforce.deploy
を設定するには、図11-6
の例に示すように、コンポジット要素の子として同じ.xml要素を使用できます。
この項では、インスタンスの移行について説明します。この項の内容は次のとおりです。
インスタンスの移行を実行すると、選択したコンポジット・インスタンスを既存の互換性のあるコンポジット・リビジョン間で移行したり、既存のリビジョンから新規リビジョンに移行できます。互換性は、コンポジット内のコンポーネントの互換性によって決定されます。移行の完了後、インスタンスの監査証跡は新しいコンポジット・リビジョンの下に表示されます。
インスタンスのパッチ適用とは異なり、移行はデプロイメントの一部ではありません。これは別のアクティビティで、どのインスタンスを移行し、どのようなアクションを実行するか(たとえば、データおよびフローの更新)という宣言仕様を提供するAntタスクとXMLファイルによって遂行します。どのインスタンスを移行するかは選択することができます。
移行を実行する前に考慮すべき重要な事項は次のとおりです。
移行時には、インスタンスのパッチ適用の実行時と同じ制約が適用されます。たとえば、トークンを非割込みの境界イベントに移動することはできません。
移行中は、該当リビジョンのインスタンスが受信リクエストを処理しないように、ソース・インスタンスのコンポジット・リビジョンは一時停止されます。
この機能は、Antコマンドを使用して実装します。
これらのコマンドには、インストールの一部である次のアーティファクトが必要です。
/AS11gR1SOA/bin/ant-composite-instance-migration.xml
.
このアーティファクトには、$
FMW_HOME
/wlserver_10.3/server/lib
ディレクトリにwlfullclient.jar
が必要です。
Oracle WebLogic Serverクライアント・ライブラリを生成するには:
cd $fmw.home/wlserver_10.3/server/lib java -jar wljarbuilder.jar
この項では、インスタンスを移行するために実行する必要がある手順の概要を説明します。インスタンスの移行に必要な手順は次のとおりです。
移行するインスタンスの範囲を特定して、それらを指定するコンポジット・フィルタを作成します。
指定されたインスタンスの移行実現性レポートを実行し、出力を確認します。
出力レポートには、どのインスタンスが自動的に移行可能で(これには、たとえばアクティブなアクティビティが削除されたなどのような、移行を遂行するために必要なプランが必要です)、どのインスタンスが移行不可能であるかが含まれます。
移行プランを作成します。
移行を実行し、出力を確認します。
コンポジットの互換性は、コンポジット内に定義されたコンポーネントに依存します。コンポーネントへの変更に互換性がなければ、コンポジットのインスタンスの移行はできません。BPEL、BPMN、ヒューマン・ワークフロー、ビジネス・ルールの互換性のある変更のみ許可されます。その他のコンポーネントが変更されると、コンポジットのインスタンスは移行できません。
この項では、各コンポーネントで注意が必要な制約について説明します。この項の内容は次のとおりです。
移行できるBPELコンポーネントはsync process
のみです。sync process
には、HumanTask、Wait、Receiveのように、永続的なアクティビティが含まれていません。
sync processインスタンスの場合、BPELは、実行中のコンポジット・インスタンスの一部である完了したすべてのインスタンスのリビジョンを変更します。
その他のBPELプロセスは、インスタンスの移行との互換性はありません。
次に示す、BPMNコンポーネントへ変更は、インスタンスの自動移行との互換性があります。
Add Scripタスク
データの関連付けの変更
新しいデータ・オブジェクトの追加
境界イベント以外の新しいアクティビティの追加
次に示す、BPMNコンポーネントへ変更は、移行プランを使用したインスタンスの手動移行との互換性があります。
サブプロセス、境界イベントおよびマージ・ゲートウェイ以外のアクティビティの削除
次に示す変更は、インスタンスの移行との互換性がありません。
ゲートウェイの削除(排他以外)
サブプロセスの削除
ヒューマン・タスク実装の更新
サブプロセスのループ特性の更新
境界イベントの追加
割込みから非割込みへの境界イベントの更新
イベント・サブプロセスの追加
割込みから非割込みへのイベント・サブプロセスの更新
アクティビティ・レベルの更新(サブプロセスまたはゲートウェイの構造内のアクティビティの移動)
コール・アクティビティを含む
ヒューマン・ワークフローは、実行中および完了したすべてのヒューマン・タスクのインスタンスの移動をサポートします。
ヒューマン・タスクには、タスク・メタデータの変更が実行中のタスクに影響しないように、タスクを初期化した後にルーティング・スリップを格納します。
移行は同期をとりながら実行されるため、ビジネス・ルール・コンポーネントには制限はありません。
メディエータ・コンポーネントの制限は次のとおりです。
ルーティング・ルール: メディエータの古いバージョンには、順次ルーティング・ルールのみが含まれている必要があります。
メディエータ・インスタンスの状態: メディエータ・インスタンスは完了しているか、または失敗している必要があります。
メッセージ・パターン: サポートされるメッセージ・パターンは、リクエストのみまたはリクエストの応答です。
Antタスクの要素は次のとおりです(図11-7を参照)。
CompositeInstanceFilter: インスタンスを移行する条件を指定し、移行の範囲を定義します。この範囲は、コンポジット・インスタンスを次のどれに基づいてフィルタするかによって決定されます。
compositeDN
domainName
compositeName
revision
label
ecid
conversationId
compositeInstanceId
tenantId
title
maxCreationDate
minCreationDate
maxModifyDate
minModifyDate
like
pageStart
pageSize
実現性レポートを実行するタスク: 結果は、不可能、自動または手動です。レポートを確認し、CompositeInstanceFilterを変更して、条件を緩和するように変更したり、一部のインスタンスを移行から削除できます。
移行を実行するタスク
移行の要素は次のとおりです。
移行レポート: 提案されたコンポジット・インスタンスの移行の実現性が記載されます。移行レポートの内容は次のとおりです。
コンポジット・インスタンスの詳細
名前: コンポーネント・インスタンス名
ID: コンポーネント・インスタンスID
状態: コンポジット・インスタンスの状態
移行機能: 自動、移行プラン必須(適用可能な場合は変更プランも必要)
コンポーネント・インスタンス・データ: 関連するコンポーネント・インスタンスの詳細
サマリー・データ:
ターゲットのリビジョン
一致するコンポジット・インスタンスの合計数
自動的に移行可能なコンポジット・インスタンスの数
自動的に移行不可能なコンポジット・インスタンスの数
移行結果: コンポジット・インスタンスの移行結果を示します。
移行プラン: 重要なコンポジット変更またはコンポーネント変更に伴う処理方法のXML記述を提供します。移行プランは、MigrationPlan XMLスキーマに基づきます。
移行プラン・オブジェクトは、MigrationPlanFactoryを使用して作成されます。
注意: インスタンス移行の詳細は、BPM Suite 11g SamplesのWebページ(http://java.net/projects/oraclebpmsuite11g/pages/Samples )に移動して、記載されているデモ・サンプルを参照してください。サンプルの詳細な説明は、各サンプルのPDFをダウンロードして確認してください。 |