BEA ホーム | 製品 | デベロッパ・センタ | support | askBEA
 ドキュメントのダウンロード   サイト マップ   用語集 
検索

WebLogic Integration Studio ユーザーズ ガイド

 前 次 目次 索引 PDFで表示  

アクションの定義

この章では、WebLogic Integration アクションを使用して各種ワークフロー アクティビティを遂行する方法について説明します。

 


アクションの概要

ビジネス プロセスの論理的順序と制御を指定するにはノードとコネクタが使用されますが、ワークフロー定義の実際の作業を実行するのはアクションです。アクションは、何らかのアクティビティを実行できる最も基本的なワークフローの単位です。このアクティビティには、変数の初期化のような単純なものから、クライアント システム上でカスタム アプリケーションを呼び出すような複雑なものまであります。アクションは、すべてのタイプのノード(結合ノードを除く)、例外ハンドラ、および他のアクションに追加できます。

以下の節では、ワークフローでアクティビティを実行するためにアクションを使用する場合の重要な基礎情報を示します。構成は以下のとおりです。

アクション カテゴリ

Studio では、アクションはいくつかのカテゴリに分類されます。ただし、このガイドでは、実行できる主要アクティビティにアクションを分類します。次の表に、カテゴリ、カテゴリに含まれるアクション、実行されるアクティビティおよびこのガイドで詳細に説明されている節をリストします。

カテゴリ

アクション

使用目的

タスク


メイン プログラム フローの制御。

詳細は、プログラム フローの制御を参照。

手動タスクの割り当てとそのプロパティの設定。

詳細については、手動タスクの設定を参照。

手動タスクおよび非手動タスクの期日の設定、あるいは時間遅延の導入。

詳細については、手動タスクの設定を参照。

ワークフロー


メイン プログラム フローの制御。

詳細は、プログラム フローの制御を参照。

サブワークフローの呼び出し。

詳細については、サブワークフローの使用法を参照。

変数の初期化。

詳細については、変数値の設定を参照。

実行時状態のモニタ。

詳細については、実行時状態のモニタリングを参照。

統合


ワークフローを、EJB や Java クラスのような外部ソフトウェア コンポーネント、あるいは実行可能プログラムと統合。

詳細については、コンポーネントの呼び出しを参照。

Worklist 上またはカスタム クライアント システム上で別のオペレーションを実行。

詳細については、手動タスクの設定を参照。

ワークフロー、コンポーネント、アプリケーションの間で XML メッセージを交換。

詳細については、JMS トピックまたはキューへの XML メッセージのポストを参照。

スタイル シートに従って、XML ドキュメントをあるフォーマットから別のフォーマットに変換。

詳細については、XML ドキュメントの変換を参照。

例外処理


ワークフローのために使用する例外ハンドラの管理。

詳細については、ワークフロー例外の処理を参照。

例外を処理するサブワークフローの呼び出し。

詳細については、ワークフロー例外の処理を参照。

その他


メイン プログラム フローの制御。

詳細については、プログラム フローの制御を参照。

条件付きサブワークフローの埋め込み。

詳細については、サブワークフローの使用法を参照。

時限サブワークフローの埋め込みと時間遅延の導入。

詳細については、時限オペレーションの使用法を参照。

電子メールをユーザ、ロール、または外部クライアントに送信。

詳細については、電子メール メッセージを送信を参照。

実行時状態のモニタとワークフロー設計のデバッグ。

詳細については、実行時状態のモニタリングを参照。


 

アクション タイプと配置を理解する

タスク、ワークフロー、統合、例外処理、その他の Studio により表わされるアクション カテゴリだけでなく、アクションとその動作の間に存在する以下のような区別も知っておく必要があります。

これらは、ワークフロー オペレーションが実行される順序に影響することがあるため、その区別は重要です。それぞれの区別の詳細について、以下の節で説明します。

端末アクションと非端末アクション

大部分のアクションは端末アクションです。つまり、アクションの中に他のアクションを含めることはできません。一方、一部のアクションは、その内部にサブアクションを定義できます。サブアクションは、親アクションの性質に応じて特定の条件に従って実行されます。以下のアクションは、その内部で定義されるサブアクションを持つことができるため非端末アクションです。

このような非端末アクションの場合、サブアクションは [プロパティ] ダイアログ ボックスにのみ表示され、フォルダ ツリーには表示されません。

非端末アクションに関する特記事項として、大部分の端末アクションは常に同期方式で実行される、つまりワークフローは端末アクションの実行が終了するまで待機しますが、非端末アクションは同期方式または非同期方式のどちらでもオペレーションを実行できます。非端末アクションの非同期的実行とは、ワークフローがアクションまたはそのサブアクションのオペレーションの完了を待たずに先に進み、並行して処理を続けることです。以下で、この区別について詳しく説明します。

アクションの同期的実行と非同期的実行

すべてのアクションは同期的です。ワークフローは現在のアクションにより実行されているオペレーションが完了するまで次のアクションに進みません。ただし、以下の例外があります。

ただし、以下のアクションと、それに含まれるすべてのサブアクションは、アクションがどのように配置されているかに応じて同期方式または非同期方式のいずれかで実行できます。

上記の非端末アクションとそのサブアクションは以下の条件で非同期的に実行されます。

上記の場合、アクションのオペレーションおよび指定されたサブアクションは、ワークフロー内の後続のノードで並行実行されます。これを次の図に示します。

図6-2 ワークフロー アクションの非同期的実行


 

一方、非端末アクションとそのサブアクションは、アクションのプロパティでそれらのアクションの置かれているタスク ノードに完了マークが付けられている場合、同期的に実行されます。これを次の図に示します。

図6-3 [アクションのプロパティ] で完了マークが付いたタスクを持つ非端末アクション


 

つまり、ワークフローは次の図に示すように、すべてのオペレーションとサブアクションが完了するまで待ってから次のノードに進みます。

図6-4 ワークフロー アクションの同期的実行


 

アクション設計問題に関する詳細については以下のトピックを参照してください。

タスクに完了マークを付ける方法の詳細については以下の節を参照してください。

タスク ノードにアクションを置く

タスク ノードを使用する場合、特定のアクティビティを実行するために、アクションをどのように置くことがよいか知っておく必要があります。そのためには、まず、[タスクのプロパティ] ダイアログ ボックスの適切なタブ([アクティブ時] または [実行時])にアクションを置き、次に適切なポイントでタスクに完了マークを付けます。[タスクのプロパティ] ダイアログ ボックスの各タブの詳細については、タスクの状態を理解するを参照してください。

[アクティブ時] タブと [実行時] タブを使用する

タスクは以下の方法でのみ実行されます。

したがって、一般的にはアクション配置を考える場合に以下のガイドラインに従います。

[タスクのプロパティ] ダイアログ ボックスの各タブを使用して、このガイドで説明する主なアクティビティを実行する場合のガイドラインをまとめた詳しい表は、タスク ノードでのアクション配置に関するガイドラインにあります。

タスクに完了マークを付ける

すべてのタスクには完了マークを付ける必要があります。これは、タスクに対して実行せずに完了マークを付けるパーミッションが割り当てられている場合は Worklist またはカスタム クライアント ユーザにより手動で(詳細についてはタスク パーミッションについてを参照)、あるいはタスクに完了マークを付けるアクションを使用することにより設計時に明示的に行います。

タスクに完了マークが付けられていない場合、ワークフローはタスク ノードから先に進みません。逆に、[タスクのプロパティ] ダイアログ ボックスでタスクに完了マークを付けるアクション以降にリストされたアクションは、[タスクのプロパティ] ダイアログ ボックスの [完了マーク時] タブに置かれている場合を除き実行されません。

注意: 同様に、非端末アクションの場合、[アクションのプロパティ] ダイアログ ボックスの [タスクに完了マークを付ける] アクション以降に置かれたアクション(アクションの同期的実行と非同期的実行に説明)は実行されません。

タスクに完了マークを付けるために使用できる一般的ガイドラインは以下のとおりです。

[タスクのプロパティ] ダイアログ ボックスの各タブを使用して、このガイドで説明する主なアクティビティを実行する場合のガイドラインをまとめた詳しい表は以下の節にあります。

タスク ノードでのアクション配置に関するガイドライン

通常はタスク ノードにのみアクションを置き、他のタイプのノードでアクションを使用することは避けてください。また、少数のタスク ノードに長いアクション リストを置くよりも、短いアクション リストを多数のタスク ノードに置くようにしてください。浅いまたはフラットな設計アプローチを使用すると、グラフィック表現の中で、ワークフローのロジックやトランザクション単位を一目で把握できます。

ただし、場合によっては、同じノードに複数のアクションを指定しなければならないこともあります。たとえば、ユーザに割り当てられるタスクにさまざまなプロパティを指定する必要がある場合などです(詳細については、手動タスクの設定を参照)。同様に、タスク以外のノードにアクションを追加する方が効率的な場合や、新たなタスク ノードを作成してグラフィカル フローを複雑にするよりも、1 つのタスク ノードにアクション リストを置く方が効率的な場合もあります。たとえば、変数値の設定、タスクまたはワークフローのコメントの設定、監査エントリの作成のような単純なアクティビティの場合が該当します。

次の表に、主な一般的アクティビティを実行する再利用可能なノード パターンを設計する場合の参考となるガイドラインを示します。

表6-1 アクション配置のガイドライン

アクティビティ

タスク ノードに置くアクション

アクションを置くタブ

タスクに完了マークを付けるタブ

詳細の参照先

Java コンポーネントの呼び出し

[ビジネス オペレーションを実行]

[アクティブ時]

[アクティブ時]

ビジネス オペレーションを呼び出す

実行可能プログラムの呼び出し

[プログラムの呼び出し]

[アクティブ時]

[アクティブ時]

サーバ上の実行可能なプログラムを呼び出す

XML ドキュメントの変換

[XSL 変換]

[アクティブ時]

[アクティブ時]

XML ドキュメントの変換

電子メール送信

[電子メール メッセージを送信]

[アクティブ時]

[アクティブ時]

電子メール メッセージを送信

JMS トピックまたはキューへの XML メッセージのポスト

[XML イベントをポスト]

[アクティブ時]

[アクティブ時]

JMS トピックまたはキューへの XML メッセージのポスト

プラグイン アクションの使用

[カスタム アクション]

[アクティブ時]

[アクティブ時]


手動タスクの割り当て

(省略可能) [タスク コメントを設定]

(省略可能) [タスク期日を設定]

[Assign Task to User/Role/Using Routing Table]

[アクティブ時]

[実行時]

手動タスクの設定

(省略可能) [XML をクライアントに送信]

[実行時]

[XML をクライアントに送信] ダイアログ ボックスの [コールバック アクション] タブ

クライアント アプリケーションに対し XML メッセージを送信する

サブワークフローの同期的呼び出し

[ワークフローを開始]

[アクティブ時]

[ワークフローを開始] ダイアログ ボックスの [アクション] タブ

サブワークフローを呼び出す

時間遅延の導入

[タスク期日を設定]

[アクティブ時]

[タスク期日を設定] ダイアログ ボックスの [期日に実行するアクション] タブ

タスク期日を設定する

[時限イベント]

[アクティブ時]

[時限イベント] ダイアログ ボックスの [トリガ時のアクション] タブ

時限シーケンスを埋め込む


 

 


アクション定義タスクの概要

ワークフローを作成し、必要なリソースをコンフィグレーションした後、ノードなどのオブジェクトにアクションを追加できます。アクションの追加と定義は反復的プロセスです。新しいノードを追加する、新しい変数を作成する、データとリソースを再コンフィグレーションする、XML ドキュメントを定義するなどのタスクが必要です。アクションの定義には次のタスクが関係します。各タスクはどの順序で実行してもかまいません。

注意: 大部分のアクションでは、ダイアログ ボックス フィールドに式の入力が必要になるため、アクションの定義を開始する前に、ワークフロー式言語および Studio のツールである Expression Builer と XPath Wizard の学習も必要です。ワークフロー式に関する詳細については、ワークフロー式の使用法を参照してください。

 


アクションの操作

アクションの追加および更新は、[タスク]、[分岐]、[イベント]、[完了]、[開始のプロパティ] の各ダイアログ ボックス、ならびにカスタム例外ハンドラ、および端末アクションと非端末アクションにリストされた [アクションのプロパティ] ダイアログ ボックスで行います。各ダイアログ ボックスには、アクションの配置と保守のために使用する [アクション] タブがあります。この節では、すべてのアクションに共通な機能について説明します。

アクションを追加する

アクションを追加する手順は、以下のとおりです。

  1. 以下のいずれか 1 つを実行します。

    [アクションを追加] ダイアログ ボックスが表示されます。

    図6-7 [アクションを追加] ダイアログ ボックス


     

    注意: アクションに対してプラグインが定義されている場合、このダイアログ ボックスに新しいアクションが入ります。

  2. アクション タイプのフォルダをダブルクリックして展開し、アクションを選択し、[OK] をクリックします。選択したアクションに固有な [プロパティ] ダイアログ ボックスが表示されます。

  3. ダイアログ ボックスのフィールドに入力し、[OK] をクリックします。各アクション タイプに関する詳細な手順は、このガイドの残りの部分で説明します。

    アクションは、選択したノードの [プロパティ] ダイアログ ボックスに追加され次第、フォルダ ツリー内でそのアクションを含むノードまたは例外ハンドラを表すフォルダの下に表示されます。

アクションを更新する

アクションを更新する手順は、以下のとおりです。

  1. 以下のいずれか 1 つを実行します。

    選択したアクションの [プロパティ] ダイアログ ボックスが表示されます。

  2. アクション定義の変更が完了した後 [OK] をクリックします。

アクションを削除する

アクションを削除する手順は、以下のとおりです。

  1. 以下のいずれか 1 つを実行します。

  2. 警告メッセージが表示されたら、削除する場合は [OK] を、この操作を取り消す場合は [取消し] をクリックします。

アクションをコピーする

ワークフロー ノードの内部または相互間で、あるいはワークフロー テンプレート定義(およびテンプレート)の内部または相互間でアクションをコピーすることにより、再利用可能な設計パターンを作成できます。アクション内で定義されたプロパティもコピーされるので、アクションをわずかに変更するだけで済み、時間を節約できます。

注意: テンプレート定義間でアクションをコピーする場合は、そのアクションが参照する変数がコピー先のテンプレート定義内にすでに作成されていること、およびその他の参照オブジェクトであるロール、ユーザ、ビジネス カレンダーなどが、そのテンプレートと関連付けられているオーガニゼーションについて定義されていることを必ず確認してください。

ノード内またはノード間でアクションとそのプロパティをコピーする手順は、次のとおりです。

  1. 以下のいずれか 1 つを実行します。

  2. 別のノードまたはテンプレート定義に貼り付ける場合は、次の操作のうち 1 つを実行します。

    このアクションの [プロパティ] ダイアログ ボックスが表示されます。すべての設定が元のアクションからコピーされています。

  3. 必要に応じて、アクションの [プロパティ] ダイアログ ボックスの設定を変更します。

  4. [OK] をクリックすると変更内容が保存され、コピー先のオブジェクトにアクションが追加されます。

アクションの順序を変更する

アクションは実行される順序で表示されます。アクションの順序を変更するには、[プロパティ] ダイアログ ボックスのリストからアクションを選択し、上矢印または下矢印を押してリスト内での位置を移動してください。

アクションへコメントを追加する

すべてのアクションの [プロパティ] ダイアログ ボックスには、アクションに関するコメントを入力できる [メモ] テキスト ボックスがあります。これは、同じワークフローにアクセスする他のユーザが、そのワークフローのロジックや設計を理解する必要のある場合に役立ちます。

図6-8 [メモ] テキスト ボックス


 

 


変数値の設定

どのタイプのノードについても、ワークフローのどこかのポイントで既存のワークフロー変数に値を割り当てるには、ワークフロー変数を設定アクションを使用します。たとえば、ループを設計するには、このアクションを使用してカウンタをインクリメントできます。変数の定義方法の詳細は、変数に関する作業を参照。

変数に対して割り当てる値は、式または定数にできます。式は、アクションの実行時に評価され、結果は指定された変数に割り当てられます。

このアクションを使用して、既存の XML ドキュメントの作成やインポートおよび XML または文字列型の変数への定数の格納を行うこともできます。この後、その変数を再利用して XML イベント アクションのポストなどのために、ワークフローのさまざまな場所でこの XML の内容を参照できます(JMS トピックまたはキューへの XML メッセージのポスト参照)。

注意: 非 XML 変数の場合、開始ノード、イベント ノード、[XML をクライアントに送信]、[例外ハンドラのプロパティ] の各ダイアログ ボックスの [変数] タブを使用しても変数値を設定できます。

図6-9 [ワークフロー変数を設定] ダイアログ ボックス


 

変数に値を割り当てる手順は、以下のとおりです。

  1. [アクションを追加] ダイアログ ボックスの [ワークフロー アクション] フォルダから [ワークフロー変数を設定] を選択し、[OK] をクリックすると、[ワークフロー変数を設定] ダイアログ ボックスが表示されます。

  2. [設定する変数] ドロップダウン リストから値を割り当てる既存の変数を選択するか、変数を入力します(詳細は、変数に関する作業を参照)。

  3. 以下のいずれかのオプションを選択します。

    ユーザ定義の XML ドキュメントは、ワークフロー テンプレート定義内に保存される。

    注意: 文字列型の変数に格納された XML ドキュメントは、まず文字列に変換されます。

  4. [OK] をクリックすると [ワークフロー変数を設定] アクションが追加されます。

 


プログラム フローの制御

通常は、プログラム フローを制御するにはノードとコネクタを使用してください。ただし、場合によってはノード内から代替実行パスを指定しなければならないこともあります。たとえば、ワークフローの特定のノードまでに限ってトリガを許可し、それ以降は禁止するようなイベントを定義することがあります。あるいは、条件に応じて別のノード内から自動的にタスクを実行しなければならないこともあります。最も重要なことは、タスクに完了マークを付けるアクションの位置により、サブアクションあるいはサブワークフロー全体を同期的に実行するか、非同期的に実行するかを制御できることです。

したがって、以下のアクションをプログラム制御のために使用できます。

タスクに完了マークを付ける

ユーザに割り当てられたタスクの定義で、ユーザが実行時にタスクに手動で完了マークを付けることを許可されている場合を除き(タスクのプロパティを定義するを参照)、すべてのタスク ノードには、その [タスクのプロパティ] ダイアログ ボックス、または非端末アクションの [アクション] タブのいずれかでタスクに完了マークを付けるアクションを指定しておく必要があります。このアクションの使用法の詳細については、アクション タイプと配置を理解するを参照してください。

図6-10 [タスクに完了マークを付ける] ダイアログ ボックス


 

タスクに完了マークを付ける手順は、次のとおりです。

  1. [アクションを追加] ダイアログ ボックスの [タスク アクション] フォルダで [タスクに完了マークを付ける] を選択し、[OK] をクリックして [タスクに完了マークを付ける] ダイアログ ボックスを表示します。

  2. [完了マークを付けるタスク] フィールドで、アクション実行時に完了マークを付けるタスクを選択します。一度に選択できるタスクは、1 つのみ。

  3. [OK] をクリックすると [タスクに完了マークを付ける] アクションが追加されます。

タスクから完了マークを外す

タスクの完了マークを外すアクションは、タスクが完了していないものとしてマークします。このアクションを割り当てられたタスクは、Worklist でアクティブになり再度実行できます。ループや並行ワークフローなどで、タスクを再度実行できるようにするには、このアクションを使用してください。

注意: 完了していないものとしてマークされたタスクは、再度トリガされて起動状態にはなりません。タスクを起動状態にトリガするには、ワークフローでタスクを再度開始する必要があります。タスク状態の詳細については、タスクの状態を理解するを参照してください。

図6-11 [タスクの完了マークを外す] ダイアログ ボックス


 

タスクから完了マークを外す手順は、以下のとおりです。

  1. [アクションを追加] ダイアログ ボックスの [タスク アクション] フォルダから [タスクの完了マークを外す] を選択し、[OK] をクリックすると、[タスクの完了マークを外す] ダイアログ ボックスが表示されます。

  2. [完了マークを外すタスク] フィールドで、アクション実行時に完了マークを付けるタスクを選択します。一度に選択できるタスクは、1 つのみ。

  3. [OK] をクリックすると [タスクの完了マークを外す] アクションが追加されます。

ワークフロー イベントをキャンセルする

ワークフロー内で定義された 1 つまたは複数のイベント ノードをキャンセルする場合は、ワークフロー イベントを取消しアクションを使用してください。このアクションは、ワークフローの特定のポイント以降イベントがトリガされないようにするため、イベント ノードの終了メカニズムとして使用できます。たとえば、注文処理ワークフローで、顧客からのキャンセル通知を待つイベントがあり、その結果に応じて何らかのアクションを実行するとします。出荷後に注文のキャンセルを発行できないようにするには、ワークフローで出荷タスクが実行されるポイントでワークフロー イベントを取消しアクションを定義し、注文キャンセル イベントのトリガを禁止できます。

図6-12 [ワークフロー イベントを取消し] ダイアログ ボックス


 

イベントをキャンセルする手順は、以下のとおりです。

  1. [アクションを追加] ダイアログ ボックスの [その他のアクション] フォルダで、[ワークフロー イベントを取消し] を選択し [OK] をクリックして、[ワークフロー イベントを取消し] ダイアログ ボックスを表示します。

  2. [取り消すイベント] フィールドで、キャンセルするワークフローを強調表示します(複数のイベントを強調表示するには〔Ctrl〕を押したままで選択)。

  3. [OK] をクリックすると [ワークフロー イベントを取消し] アクションが追加されます。

ワークフローに完了マークを付ける

ワークフローに完了マークを付けるアクションは、現在のワークフローに完了マークを付け、ワークフローが完了ノードに到達したのと同じ状態にします。これは分岐ノードにおいて、完了ノードより前のすべてのアクションをスキップし、そのポイントでワークフローを終了したい場合などに使用できます。

図6-13 [ワークフローに完了マークを付ける]


 

ワークフローに完了マークを付ける手順は、次のとおりです。

  1. [アクションを追加] ダイアログ ボックスの [ワークフロー アクション] フォルダから [ワークフローに完了マークを付ける] を選択し、[OK] をクリックすると、[ワークフローに完了マークを付ける] ダイアログ ボックスが表示されます。

  2. [OK] をクリックすると [ワークフローに完了マークを付ける] アクションが追加されます。

ワークフローを中断する

ワークフローを中断アクションは、現在処理中のワークフローを恒久的に停止します。このアクションは、インスタンスを終了しなければならない例外的な状況で使用できます。

注意: 中断されたワークフロー インスタンスは、データベースから削除され、モニタできなくなります。ワークフローを終了させてもインスタンスのレコードは保持したい場合は、完了ノードまたは [ワークフローに完了マークを付ける] アクションを使用してください。

図6-14 [ワークフローを中断] ダイアログ ボックス


 

ワークフローを中断する手順は、以下のとおりです。

  1. [アクションを追加] ダイアログ ボックスの [ワークフロー アクション] フォルダから [ワークフローを中断] を選択し、[OK] をクリックすると、[ワークフローを中断] ダイアログ ボックスが表示されます。

  2. [OK] をクリックすると [ワークフローを中断] アクションが追加されます。

タスクを自動実行する

タスクを実行アクションを使用して、ユーザではなくワークフローにワークフロー内のタスクを明示的に実行させることができます。このアクションによって、タスクのステータスは実行済みになり、[タスクのプロパティ] ダイアログ ボックスの [実行時] タブに一覧表示されているすべてのアクションが実行されます。タスク状態の詳細については、タスクの状態を理解するを参照してください。

このアクションを使用して、たとえば、例外ハンドラ内から例外ハンドラのアクションの完了後にタスク ノードのアクションを再実行させることができます。あるいは、グラフィックに表現するのが難しいループを作成するためにも使用できます。

図6-15 [タスクを実行] ダイアログ ボックス


 

タスクを自動的に実行する手順は、以下のとおりです。

  1. [アクションを追加] ダイアログ ボックスの [タスク アクション] フォルダから [タスクを実行] を選択し、[OK] をクリックすると、[タスクを実行] ダイアログ ボックスが表示されます。

  2. [実行するタスク] フィールドで実行するタスクを選択します。一度に選択できるタスクは、1 つのみ。

  3. [OK] をクリックすると [タスクを実行] アクションが追加されます。

プレースホルダ アクションを追加する

処理なしアクションはワークフローには影響しません。後でアナリストがアクションの追加を忘れないようにするためのプレースホルダとしての役割だけです。

図6-16 [処理なし] ダイアログ ボックス


 

プレースホルダを追加する手順は、以下のとおりです。

  1. [アクションを追加] ダイアログ ボックスの [その他のアクション] フォルダから [処理なし] を選択し、[OK] をクリックすると、[処理なし] ダイアログ ボックスが表示されます。

  2. [説明] フィールドに処理なしアクションの内容を表わす名前を入力します。後でアクションを追加することを思い出させるような名前がよいでしょう。

  3. [OK] をクリックすると [処理なし] アクションが追加されます。

 


時限オペレーションの使用法

以下のアクションにより時限オペレーションを設定できます。

時限シーケンスを埋め込む

時限イベント アクションを使用して、正確な日時にトリガされる時限アクションのシーケンスを作成できます。必要に応じて指定されたスケジュールに従って再実行することもできます。

実行スケジュールについて

時限イベントを再スケジューリングする場合、2 つのオプションに従って実行停止メソッドを指定する必要があります。

非同期的および同期的にトリガされたアクションを実行する

時限シーケンスに指定されたアクションは、同期モードまたは非同期モードのいずれでも実行できます。非同期モードではサブアクションは並行実行され、その間にワークフローは次のノードに進みます。この方法でアクションを設定するには、タスク ノードで時限イベントを使用し、タスク ノード自体で、または他のタイプのノードで、アクションの入っているタスクに完了マークを付けます。

同期モードでは、このアクションを使用してワークフローで時間遅延の作成ができます。ワークフローは、トリガ日時に達するまで待ってからサブアクションを実行し、その後、先に進みます。この方法でアクションを設定するには、タスク ノードでアクションを使用し、[時限イベント] ダイアログ ボックスの [トリガ時のアクション] タブに[タスクに完了マークを付ける] アクションを追加します。

どの場合でも、時限イベントを再スケジューリングするには、ワークフローが完了した場合に限り実行を停止してください。

図6-17 [時限イベント] : [イベントのトリガ] タブ


 

時限イベントを定義する

時限イベントを定義する手順は、以下のとおりです。

  1. [アクションを追加] ダイアログ ボックスの [その他のアクション] フォルダで、[時限イベント] を選択し [OK] をクリックして、[時限イベント] ダイアログ ボックスを表示します。

  2. [イベントのトリガ] タブで以下のいずれかのオプションを選択することにより、サブアクションを実行する時刻を指定します。

  3. [式] を選択した場合、以下のように Java Date オブジェクトを戻す日付関数をフィールドに入力します。

  4. (省略可能) DateAdd() 関数のパラメータとしてビジネス カレンダーを指定しない場合、以下のようにビジネス カレンダーを指定する方法もあります。

  5. (省略可能)トリガされたアクションを反復するため、[実行スケジュール] タブの [再スケジューリング間隔] フィールドに、トリガされたアクションの再実行インターバルを表わす値を入力し、ドロップダウン リストから時間の単位を選択します。たとえば、「4 分」を選択すると、指定された実行が停止するまで、最初のトリガ後、4 分ごとにサブアクションが実行されます。

    サーバが指定した開始時刻に実行されていない場合、指定した時刻に開始されるイベントを回復する(つまりサーバが再開始されるまで遅らせる)またはスキップするかを指定するには [回復可能] チェックボックスを設定します。

    図6-18 [時限イベント] : [実行スケジュール] タブ


     

  6. 実行スケジュールを指定した場合、[実行停止条件] オプションを選択し、トリガを停止する時期を指定します。

  7. [トリガ時のアクション] タブで [追加] をクリックすると、[アクションを追加] ダイアログ ボックスが表示され、イベントがトリガされた際に実行するサブアクションを選択および定義します。サブアクションが同期的に実行されるようにする場合、またはこのアクションを使用してワークフローで時間遅延を作成する場合は、このアクション リストの最後にタスクに完了マークを付けるアクションを追加します。[タスクに完了マークを付ける] ダイアログ ボックスで、時限イベント アクションの入ったタスク ノードを選択します。

  8. [OK] をクリックすると [時限イベント] アクションが追加されます。

 


サブワークフローの使用法

一部のアクションではサブワークフローを指定できます。これは設計領域に表示されません。そのようなサブワークフローについて以下で説明します。

注意: イベント トリガされたワークフローを開始する XML メッセージを内部 JMS キューに対してポストすることにより、サブワークフローを呼び出すこともできます。詳細については、JMS トピックまたはキューへの XML メッセージのポストを参照してください。

サブワークフローを呼び出す

大きく複雑なワークフローを複数の部分に分割するために、プロセスを複数のワークフローで構成したい場合や、特定の条件に従ってのみ呼び出されるプロセスのためにサブワークフローを使用する場合があります。

ワークフローを開始アクションを使用することにより、現在のワークフローから別のワークフローを開始できます。開始されるワークフローはサブワークフローと呼ばれます。呼び出されるワークフローまたはワークフローと呼ばれることもあります。サブワークフローを開始する側のワークフローは、呼び出し側のワークフローまたは親ワークフローと呼びます。

ワークフローを呼び出すには、Called Start ノードを含み、アクティブとしてマークされ、現在有効な開始日および終了日を指定しているテンプレート定義が、ワークフロー テンプレートに少なくとも 1 つ入っている必要があります。そのワークフロー テンプレートの中の 1 つのワークフロー テンプレート定義のみを開始できます。これは、アクティブなワークフロー テンプレート定義の中で最も有効的な定義だからです。詳細については、テンプレート定義に関する作業を参照してください。

パラメータを引き渡す

サブワークフローに入力パラメータとして定義された変数がある場合、その変数には親ワークフローから受け取った値が入れられます。したがって、ワークフローを開始アクションのプロパティで、サブワークフローに入力パラメータとして渡す値を指定する必要があります。通常、値は親ワークフローに定義された、対応する変数から取られます。

同様に、サブワークフローに出力パラメータとして定義された変数がある場合、サブワークフローの取得または計算した値が親ワークフローに戻されます。この場合も、ワークフローを開始アクションのプロパティで、結果の値を受け取る親ワークフロー変数を指定する必要があります。

サブワークフローを非同期的または同期的に実行する

ワークフローを開始アクションは、同期モードおよび非同期モードのいずれでもワークフローを開始するために使用できます。同期モードでは、呼び出し側ワークフローは、サブワークフローの処理完了を待ってから次のノードに進みます。この方法でアクションを設定するには、開始ノードまたは分岐ノードでワークフローを開始アクションを使用するか、またはタスク ノードにおいて、タスク ノードではなくワークフローを開始アクションのサブアクションとしてタスクに完了マークを付けます。

非同期モードでは、呼び出し側ワークフローは呼び出されたワークフローの完了を待たずに次のノードに続くため、両方のワークフローが並行実行されます。この方法でアクションを設定するには、タスク ノードでアクションを使用し、タスク ノード自体でタスクに完了マークを付けるか、または分岐、開始、イベントのような他のタイプのノードでアクションを使用します。

注意: 内部 JMS キューに XML メッセージをポストして、イベント トリガされるワークフローをトリガすることによっても、別のワークフローを非同期的または同期的に実行できます。パラメータの引き渡しなど、2 つのワークフロー間の相互作用は、XML/JMS メッセージングにより行われ、実行の制御は、親ワークフローのイベント ノードを使用して、サブワークフローから戻される応答を受け取ることにより行われます。実際、クラスタ化環境で WebLogic Integration を実行している場合、この方法の方が負荷バランスをよく制御できます。詳細については、JMS トピックまたはキューへの XML メッセージのポストを参照してください。

親ワークフローがサブワークフローの完了を待ってから先に進むかどうかにかかわらず、呼び出されたワークフローの完了時に実行する任意のサブアクションのセットを定義しておくこともできます。

サブワークフローをトラッキングする

呼び出し側ワークフローで定義された変数に、呼び出されたワークフロー インスタンスの ID を割り当てることができます。インスタンス ID は文字列として戻されるため、文字列型として定義した変数を作成してください(その手順については、変数に関する作業参照)。呼び出し側ワークフローは、WorkflowVariable() を使用して式の中で参照変数を使用することにより、呼び出されたサブワークフローから変数を取り出すことができます。WorkflowVariable() 関数でのインスタンス ID の使い方の詳細については、実行時のワークフロー データを収集するを参照してください。

図6-19 [ワークフローを開始] ダイアログ ボックス


 

サブワークフローを呼び出す手順は、以下のとおりです。

  1. [アクションを追加] ダイアログ ボックスの [ワークフロー アクション] フォルダから [ワークフローを開始] を選択し、[OK] をクリックすると、[ワークフローを開始] ダイアログ ボックスが表示されます。

  2. [開始するワークフロー] フィールドで、アクション実行時に開始するワークフロー テンプレートを選択します。このフィールドには、現在のオーガニゼーションに関連付けられたワークフロー テンプレートがすべて表示される。これらのワークフロー テンプレートは、呼び出された側のワークフローの [開始]、現在有効な [開始] および [終了] の各日付を伴うテンプレート定義を少なくとも 1 つ含み、[アクティブ] とマークされている。ワークフローを選択すると、ダイアログ ボックス下部の [パラメータ] タブと [結果] タブに、そのワークフロー内で定義された入力変数と出力変数が表示される。

  3. [オーガニゼーション内での開始] フィールドで、以下のいずれかのオプションを選択します。

  4. (省略可能) [参照に使用する変数] フィールドで、現在のワークフローのために利用できる変数のリストから変数を選択することもできます。呼び出されたワークフローがインスタンス化されると、そのインスタンス ID が自動的に選択された変数に割り当てられます。

    注意: この変数は、文字型でなければなりません。

  5. [パラメータ] タブの [パラメータ] リストからパラメータを選択し、[更新] をクリックすると、[パラメータを設定] ダイアログ ボックスが表示されます。これを使用して、呼び出されたワークフローに渡す値を指定します。

    図6-20 [パラメータを設定] ダイアログ ボックス


     

  6. [式] フィールドに、式としてサブワークフローに渡す値を入力します。この値は、一般的に親ワークフロー内の対応する変数の値からなる。

  7. [OK] をクリックします。パラメータとその値が、[ワークフローを開始] ダイアログ ボックスの [パラメータ] タブのリストに表示されます。

  8. リストのすべてのパラメータについて、手順 5 から 7 を繰り返します。

  9. [結果] タブの [結果] リストから結果を選択し、[更新] をクリックすると、[結果から変数を設定] ダイアログ ボックスが表示されます。これを使用して、親ワークフローでサブワークフローにより戻された値を格納する変数を指定します。

    図6-21 [結果から変数を設定] ダイアログ ボックス


     

  10. [変数] ドロップダウン リストから、サブワークフロー内で定義した対応する出力変数によって返される値を格納する変数を選択する。

  11. [OK] をクリックします。結果とその値が、[ワークフローを開始] ダイアログ ボックスの [結果] タブのリストに表示されます。

  12. リストのすべての結果について、手順 8 から 10 を繰り返します。

  13. (省略可能) [アクション] タブを選択し、[追加] をクリックすると、[アクションを追加] ダイアログ ボックスが表示され、サブワークフロー完了時に実行するサブアクションを選択および定義できます。親ワークフロー内で実行される他のどのノードよりも先にサブワークフローを完了させたい場合は、このタブに [タスクに完了マークを付ける] アクションを必ず追加すること。[タスクに完了マークを付ける] ダイアログ ボックスで、ワークフローを開始アクションを指定したタスク ノードを選択します。

  14. [OK] をクリックすると [ワークフローを開始] アクションが追加されます。

条件付きシーケンスを埋め込む

条件を評価アクションは、分岐ノードと同じ方法で機能します。つまり、実行時に条件式を評価し、その結果に応じてサブアクションの代替シーケンスを実行します。通常、このタイプのフローを実行するには、分岐ノードを使用してください。ただし、そのワークフローの独立したノードとしてではなく、別のノード内にアクションの条件付きセットを指定することにより行われる方法で、メイン ワークフロー内に条件付きサブワークフローを埋め込む場合もあります。これは、例外ハンドラの中など、条件を指定する他の方法がない場合に必要となります。

条件が True と評価された場合に実行する一連のアクション条件が False と評価された場合に実行する一連のアクション、またはその両方を定義します。

図6-22 [条件を評価] ダイアログ ボックス


 

条件を評価する手順は、以下のとおりです。

  1. [アクションを追加] ダイアログ ボックスの [その他のアクション] フォルダから [条件を評価] を選択し、[OK] をクリックすると、[条件を評価] ダイアログ ボックスが表示されます。

  2. [条件] フィールドに、どのサブアクションのセットを実行するかを決定するために実行時に評価する有効なワークフロー条件を入力します。式の作成方法の詳細については、ワークフロー式の使用法を参照してください。

  3. [False] タブまたは [True] タブで、[追加] をクリックすると [アクションを追加] ダイアログ ボックスが表示され、次のボタンを使用して、それぞれ条件が False または True と評価された場合に実行するサブアクションを選択および定義します。

  4. [OK] をクリックすると [条件を評価] アクションが追加されます。

 


実行時状態のモニタリング

ワークフロー モニタリングのために 2 つのアクションを使用できます。

監査エントリを作成する

WebLogic Integration には、主要なすべてのユーザとのやりとりおよび変更を、JMS トピック、およびサーバ上のアクティブな WebLogic Integration ドメインのログ ディレクトリにある myserver.log に対して記録するデフォルト監査機能があります。

ワークフローのどのノードでも、監査エントリを作成アクションを使用して、ワークフローの実行中に監査ログに記録する実行時ワークフロー情報を追加定義できます。各エントリの日時が記録されるため、ユーザは実行時に記録したいデータを提供する式を定義します。それには、変数、関数、定数を含めることができます。たとえば、ロールに対して割り当てられたタスクで CurrentUser() 関数を使用することにより、それを実行したユーザを記録できます(実行時ワークフロー情報を戻す関数については、実行時のワークフロー データを収集するを参照)。

注意: このアクションを有効にするには、ワークフローの [テンプレート定義のプロパティ] ダイアログ ボックスで監査をオンにする必要があります。詳細については、ワークフロー テンプレート定義を作成するを参照してください。

図6-23 [監査エントリを作成] ダイアログ ボックス


 

監査エントリを作成する手順は、以下のとおりです。

  1. [アクションを追加] ダイアログ ボックスの [その他のアクション] フォルダで、[監査エントリを作成] を選択し [OK] をクリックして、[監査エントリを作成] ダイアログ ボックスを表示します。

  2. [監査エントリ式] フィールドに、監査エントリ情報を生成するために実行時に評価する式を入力します。式の作成方法の詳細については、ワークフロー式の使用法を参照してください。

  3. [OK] をクリックするとアクションが追加されます。

ワークフロー コメントを設定する

ワークフロー コメントを設定アクションを使用すると、ワークフロー インスタンスにコメントを指定できます。コメントは、アクションが実行された際に、Studio の [ワークフロー インスタンス] ダイアログ ボックスの [コメント] カラムに表示されます(詳細については、ワークフロー インスタンスの操作を参照)。一般的に、このコメントは情報の提供を目的とするもので、その時点でのワークフローのステータスを示します。

図6-24 [ワークフロー コメントを設定] ダイアログ ボックス


 

ワークフローにコメントを設定する手順は、次のとおりです。

  1. [アクションを追加] ダイアログ ボックスの [ワークフロー アクション] フォルダから [ワークフロー コメントを設定] を選択し、[OK] をクリックすると、[ワークフロー コメントを設定] ダイアログ ボックスが表示されます。

  2. [コメント] フィールドに、コメントを生成するために実行時に評価する式を入力します。一般的に、この式は文字列と変数からなる。式とその構文の詳細については、ワークフロー式の使用法を参照してください。

    注意: ワークフローのコメントは最大 254 文字までです。コメントの長さは、式の長さが異なる場合があるため実行時まで決定されません。254 文字を超過するコメントは、実行時に警告なしに短縮されます。

  3. [OK] をクリックすると [ワークフロー コメントを設定] アクションが追加されます。

 


手動タスクの設定

手動タスクを割り当てるため、または WebLogic Integration Worklist あるいはカスタム クライアント アプリケーションのユーザと対話するために、以下のタスク アクションを使用できます。

タスク アクションの配置に関するガイドライン

手動タスクを割り当てる場合、アクション配置について以下のガイドラインに従ってください。

タスクをユーザに割り当てる

個々のユーザに指定されたタスクを割り当てるにはユーザにタスクを割り当てアクションを使用します。ユーザにタスクを割り当てると、Worklist またはカスタム クライアント アプリケーションからタスクをビューおよび実行するユーザに通知が送信されます。Worklist アプリケーションの詳細については、『WebLogic Integration Worklist ユーザーズ ガイド』を参照してください。

タスクを割り当てる特定のユーザの指定、あるいはロール メンバーの指定ができます。その場合、システムにより、実行時に特定のロールに属するすべてのユーザの中で保留中タスク数が最小のユーザが決定されます。その後、そのユーザにタスクが割り当てられます。ユーザまたはロールは、定数として指定したり、実行時に提供されるワークフロー式から取得したりできます。

図6-25 [ユーザにタスクを割り当て] ダイアログ ボックス


 

ユーザにタスクを割り当てる手順は、次のとおりです。

  1. [アクションを追加] ダイアログ ボックスの [タスク アクション] フォルダから [ユーザにタスクを割り当て] を選択し、[OK] をクリックすると、[ユーザにタスクを割り当て] ダイアログ ボックスが表示されます。

  2. [割り当てるタスク] フィールドで割り当てるタスクを選択します。一度に選択できるタスクは、1 つのみ。

  3. ユーザを指定するには以下のオプションから選択します。

  4. [OK] をクリックすると [ユーザにタスクを割り当て] アクションが追加されます。

ロールに対するタスクを割り当てる

特定のユーザに対するタスクの割り当てを希望しない場合は [ロールにタスクを割り当て] アクションが使用できます。ロールに対してタスクを割り当てることにより、そのロールに属するどのユーザでもタスクをビューおよび実行できますが、Worklist でのタスクの明示的通知はありません。

ロールに対してタスクを割り当てるには、ロール名を指定するか、実行時にロールを決定する式を指定します。

図6-26 [ロールにタスクを割り当て] ダイアログ ボックス


 

ロールにタスクを割り当てる手順は、次のとおりです。

  1. [アクションを追加] ダイアログ ボックスの [タスク アクション] フォルダから [ロールにタスクを割り当て] を選択し、[OK] をクリックすると、[ロールにタスクを割り当て] ダイアログ ボックスが表示されます。

  2. [割り当てるタスク] フィールドで割り当てるタスクを選択します。一度に選択できるタスクは、1 つのみ。

  3. ロールを指定するには以下のオプションから選択します。

  4. [OK] をクリックすると [ロールにタスクを割り当て] アクションが追加されます。

ルーティング テーブルによりタスクを割り当てる

条件のセットに応じて、別のユーザまたはロールにタスクを割り当てることができます。ルーティング テーブルは、任意の数のルーティング条件のシーケンスからなっています。ルーティング条件には、タスクを割り当てるユーザまたはロールの候補、および割り当てが行われる条件を指定します。実行時にこのアクションが実行されると、True という結果が得られるまで条件が 1 つずつ評価されます。True という結果が得られると、該当するユーザまたはロールにタスクが割り当てられて、後続の条件は無視されます。

注意: どのルーティング条件も満たされない場合は、実行時例外が発生します。

特定の条件によって行う代わりに、一定期間だけ特定のユーザまたはロールにすべてのタスクをルーティングする場合は、オーガニゼーションのためのルーティング仕様を作成します。詳細については、タスク ルーティングの管理を参照してください。

注意: ルーティング機能では、ユーザに割り当てられたタスクのみ再ルーティングされ、ロールに割り当てられたタスクは再ルーティングされません。再ルーティングされたタスクは、別のユーザ、ロールのユーザ、またはロールに送ることができます。ロールに割り当てられたタスクの再ルーティングについてはロールに対するマッピングを変更するを参照してください。

図6-27 [ルーティング テーブルを使用してタスクを割り当て] ダイアログ ボックス


 

ルーティング テーブルを使ってタスクを割り当てる手順は、次のとおりです。

  1. [アクションを追加] ダイアログ ボックスの [タスク アクション] フォルダから [ルーティング テーブルを使用してタスクを割り当て] を選択し、[OK] をクリックすると、[ルーティング テーブルを使用してタスクを割り当て] ダイアログ ボックスが表示されます。

  2. [割り当てるタスク] フィールドで割り当てるタスクを選択します。一度に選択できるタスクは、1 つのみ。

  3. [ルーティング テーブル] フィールドの横の [追加] をクリックすると、[ルーティング条件を定義] ダイアログ ボックスが表示されます。

    図6-28 [ルーティング条件を定義] ダイアログ ボックス


     

  4. [条件] フィールドに、論理結果(True または False)を生成する有効なワークフロー条件式を入力します。式の作成方法については、ワークフロー式の使用法を参照してください。

  5. [割り当て先] フィールドで、[ユーザ]、[ロール内のユーザ]、または [ロール] のいずれかのオプションを選択します。

  6. ドロップダウン リストで希望のユーザまたはロール名を選択します。

  7. [OK] をクリックするとルーティング テーブルにルーティング条件が追加されます。

  8. さらに必要な数のルーティング条件を追加します。ルーティングを削除するには [削除] ボタン、ルーティングを編集するには [更新] ボタン、テーブル内でルーティングの順序を変更するには矢印キーを使用してください。

  9. [OK] をクリックすると [ルーティング テーブルを使用してタスクを割り当て] アクションが追加されます。

タスク期日を設定する

タスク期日を設定アクションを使用してタスクの実行期日を設定できます。期日は、タスクが割り当てられた Worklist またはカスタム クライアント ユーザに対して表示されます。期日は、分、時、日、週、または月の単位で表わすことができます。あるいは、実行時に日時が決定される式として表わすこともできます。

非手動タスクに対してこのアクションを使用することにより、ユーザにタスクを割り当てアクションを使用せずに、特定の日付以降に並行実行させるアクションを指定したり、ワークフローに時間遅延を導入することもできます。

期日超過アクションを非同期的および同期的に実行する

タスクが期日まで実行されない場合、期日後に実行すべきサブアクションを、同期モードまたは非同期モードで指定できます。非同期モードではサブアクションは並行実行され、その間にワークフローは次のノードに進みます。この方法でアクションを設定するには、タスク ノード自体で、アクションの入っているタスクに完了マークを付けます。これは、通常、アクションを手動でタスクに割り当てるために使用される方法です。

同期モードでは、このアクションを使用してワークフローで時間遅延を作成できます。ワークフローは、期日に達するまで待ってから期日超過アクションを実行し、その後、先に進みます。アクションをこの方法で設定するには、ユーザに割り当てられているタスクまたは割り当てられていないタスクまたは割り当てられていないタスクにアクションを置き、[タスク期日を設定] ダイアログ ボックスの [期日に実行するアクション] タブにタスクに完了マークを付けるアクションを追加することにより、アクションの入っているタスクに完了マークを付けます。

図6-29 [タスク期日を設定] ダイアログ ボックス


 

タスクの期日を設定する手順は、次のとおりです。

  1. [アクションを追加] ダイアログ ボックスの [タスク アクション] フォルダから [タスク期日を設定] を選択し、[OK] をクリックすると、[タスク期日を設定] ダイアログ ボックスが表示されます。

  2. [期日を設定するタスク] フィールドで、アクション実行時に期日設定を持っている必要のあるタスクを選択します。一度に選択できるタスクは、1 つのみ。

  3. [期日] タブの [式に設定] フィールドに、絶対日時または相対日時を指定する式を入力します。式は Java Date オブジェクトを戻さなければならないため、以下の関数を使用する必要があります。

  4. (省略可能) DateAdd() 関数のパラメータとしてビジネス カレンダーを指定しない場合、以下のようにビジネス カレンダーを指定する方法もあります。

  5. (省略可能) [期日に実行するアクション] タブを選択し、[追加] をクリックすると、[アクションを追加] ダイアログ ボックスが表示され、期日に達した際に実行するサブアクションを選択および定義できます。期日に達するまで先に進まずにワークフローを待たせたい場合、タスク ノードでこのアクションを使用し、このタブでタスクに完了マークを付けるアクションを必ず追加してください。[タスクに完了マークを付ける] ダイアログ ボックスで、タスク期日を設定アクションを指定したタスク ノードを選択してください。

  6. [OK] をクリックすると [タスク期日を設定] アクションが追加されます。

タスクのコメントを設定する

タスク コメントを設定アクションを使用して、タスク インスタンスに関するコメントを設定できます。コメントは、アクションが実行される際に、Worklist または Studio でタスクをビューするユーザに対してテキスト メッセージとして表示されます。通常、このテキストは、ユーザに実行を求める手動での作業に関する情報または指示を提供します。テキスト メッセージは、Worklist アプリケーションのタスク リスト、または Studio の [ワークフロー インスタンス] ダイアログ ボックスまたは [Worklist] ダイアログ ボックスで、タスクの横の [コメント] カラムに表示されます(詳細については、ワークフローのモニタリングを参照)。

図6-30 [タスク コメントを設定] ダイアログ ボックス


 

タスクにコメントを設定する手順は、次のとおりです。

  1. [アクションを追加] ダイアログ ボックスの [タスク アクション] フォルダから [タスク コメントを設定] を選択し、[] をクリックすると、[タスク コメントを設定] ダイアログ ボックスが表示されます。

  2. [コメントを設定するタスク] で対象のタスクを選択します。一度に選択できるタスクは、1 つのみ。

  3. [コメント] フィールドに、コメントを生成するために実行時に評価する式を入力します。一般的に、この式は文字列と変数からなる。式とその構文の詳細については、ワークフロー式の使用法を参照してください。

    注意: タスクのコメントは最大 254 文字までです。コメントの長さは、式の長さが異なる場合があるため実行時まで決定されません。254 文字を超過するコメントは、実行時に警告なしに短縮されます。

  4. [OK] をクリックすると [タスク コメントを設定] アクションが追加されます。

タスク優先順位を設定する

タスク優先度を設定アクションを使用して、タスク優先順位を低、中、または高に設定できます。この優先度は、実行時におけるノードまたはノードのアクションの実行方法には影響を与えません。単に、Worklist に合わせてタスクを実行やソートを行うことができる Worklist ユーザに対して表示されるだけです。

[タスクのプロパティ] ダイアログ ボックスで現在のタスクの優先順位を設定できるため、ワークフローのどこかでタスクの優先順位を指定する条件の結果としてこのアクションを使用できます。

図6-31 [タスク優先度を設定] ダイアログ ボックス


 

タスクの優先度を設定する手順は、次のとおりです。

  1. [アクションを追加] ダイアログ ボックスの [タスク アクション] フォルダから [タスク優先度を設定] を選択し、[OK] をクリックすると、[タスク優先度を設定] ダイアログ ボックスが表示されます。

  2. [優先度を設定するタスク] で対象のタスクを選択します。一度に選択できるタスクは、1 つのみ。

  3. [優先度] ドロップダウン リストから、[低]、[中]、または[高] を選択します。

  4. [OK] をクリックすると [タスク優先度を設定] アクションが追加されます。

タスクの割り当てを解除する

タスクの割り当てを解除アクションを使用して、現在のタスク割り当てを削除できます。タスクはユーザまたはロールに対する割り当てを持たなくなります。条件の結果としてタスクの割り当ての解除もできます。

図6-32 [タスクの割り当てを解除] ダイアログ ボックス


 

タスクの割り当てを解除する手順は、次のとおりです。

  1. [アクションを追加] ダイアログ ボックスの [タスク アクション] フォルダから [タスクの割り当てを解除] を選択し、[OK] をクリックすると、[タスクの割り当てを解除] ダイアログ ボックスが表示されます。

  2. [割り当てを解除するタスク] フィールドで割り当て解除するタスクを選択します。一度に選択できるタスクは、1 つのみ。

  3. [OK] をクリックすると [タスクの割り当てを解除] アクションが追加されます。

クライアント アプリケーションに対し XML メッセージを送信する

ユーザにタスクを割り当てた後、XML をクライアントに送信アクションを使用して XML ドキュメントをクライアントに送信することにより、ワークフローと、Worklist またはカスタム クライアント アプリケーションとの間の通信を行うことができます。この場合、クライアント アプリケーションが XML ドキュメントを識別し、該当するアクションを実行し、ワークフローに応答して XML ドキュメントを返すようにプログラムされている必要があります。Worklist アプリケーションの場合、XML メッセージを送信して、メッセージ プロンプトやフォームをユーザに表示したり、クライアント システム上でカスタム コンポーネントや実行可能プログラムを呼び出したりできます。カスタム クライアント アプリケーションの開発方法については、『BPM クライアント アプリケーション プログラミング ガイド』を参照してください。

XML をクライアントに送信アクションは、XML の送信先のクライアント マシンまたはアプリケーションを実際に指定するわけではありません。したがって、まずタスクをユーザまたはロールに割り当てておく必要があります。すると、XML メッセージがタスクを実行するクライアントに送信されます。詳細については、手動タスクの設定を参照してください。

メッセージを非同期的または同期的に送信する

XML メッセージは、クライアント アプリケーションに対して、非同期的または同期的に送信できます。同期モードでは、ワークフローはクライアントからの応答を待ってから次のノードに進みます。この方法でアクションを設定するには、タスク ノードではなく、[XML をクライアントに送信] ダイアログ ボックスの [コールバック アクション] タブ上のサブアクションとして、アクションの入っているタスクにマークを付けます。

非同期モードでは、ワークフローはクライアントからの応答を待たずに次のノードに続くため、クライアント上のオペレーションは並行実行されます。この方法でアクションを設定するには、タスク ノード自体で、タスクに完了マークを付けます。

データを抽出する

XML メッセージを返信することにより、アプリケーションがワークフローに応答する場合、応答ドキュメントにより戻されるデータを格納するための変数を作成する必要があります(手順については変数に関する作業を参照)。また、応答 XML ドキュメントからデータ値を取り出すために、XPath 式(またはドット()表記)を使用して変数を初期化しておく必要があります。そのメッセージの JMS プロパティがアプリケーションにより使用される場合、EventAttribute() 関数を使用してこのデータを検索することもできます(詳細については、実行時のイベント データを抽出するを参照)。

XML をクライアントに送信アクションを定義する

以下のプロシージャが、非 Worklist アプリケーションのために生成されます。Worklist に XML メッセージを送信する方法の詳細については、Worklist アプリケーションに対する XML メッセージを送信するを参照してください。タイプ指定された XML ドキュメントを使用する方法の詳細については、タイプ指定ドキュメントを操作するを参照してください。

図6-33 [XML をクライアントに送信] ダイアログ ボックス


 

クライアントに XML メッセージを送信する手順は、次のとおりです。

  1. [アクションを追加] ダイアログ ボックスの [統合アクション] フォルダから [XML をクライアントに送信] を選択し、[OK] をクリックすると、[XML をクライアントに送信] ダイアログ ボックスが表示されます。ルート要素と actionid 要素を持つデフォルト XML ドキュメント構造が作成されます。

    注意: システムにより生成される actionid 要素とその値は、実行時に XML をクライアントに送信アクションを識別するために使用されます。actionid 要素は、ルート要素の最初の子要素でなければなりません。actionid 要素の移動、削除、編集は行ってはなりません。また、この要素に下位要素を追加しないでください。

  2. XML ドキュメント構造を指定するには以下のいずれかを行います。

    上記のオプションの詳細な手順については、XML ドキュメントの作成と編集を参照してください。

    ユーザ定義の XML ドキュメントは、ワークフロー テンプレート定義内に保存される。

  3. クライアントからの応答を受け取る変数を指定するには、[コールバック変数] タブを選択し、[追加] をクリックすると、[ワークフロー変数の割り当て] ダイアログ ボックスが表示されます。

    図6-34 [ワークフロー変数の割り当て] ダイアログ ボックス


     

  4. [式] フィールドに、実行時に評価される応答 XML ドキュメントからデータを抽出する式を入力します。そのために、次の操作のうちのどちらかを実行します。

  5. [OK] をクリックします。[XML をクライアントに送信] ダイアログ ボックスの [コールバック変数] タブのリストで変数初期化が行われます。

  6. 応答ドキュメントから取り込む必要があるデータ項目すべてについて、手順 4 〜 5 を繰り返します。

  7. [コールバック アクション] タブを選択し、[追加] をクリックして [アクションを追加] ダイアログ ボックスを表示します。そこで、クライアントからの応答を受信したときに実行するサブアクションを指定します。クライアントからの応答を待ってからワークフロー内の他のノードに進みたい場合は、このタブのアクション リストの最後に必ず [タスクに完了マークを付ける] アクションを追加してください。[タスクに完了マークを付ける] ダイアログ ボックスでは、[XML をクライアントに送信] アクションを指定したタスク ノードを選択します。

  8. タイプ指定ドキュメントを使用している場合、actionid 値の追加を要求されます。[はい] をクリックするとドキュメントが更新されます。

  9. 再度 [OK] をクリックするとアクション定義が保存されます。

Worklist アプリケーションに対する XML メッセージを送信する

注意: Worklist クライアント アプリケーションは、WebLogic Integration のこのリリースでは廃止になっています。置き換えられる機能の詳細については『BEA WebLogic Integration リリース ノート』を参照してください。

Worklist クライアント アプリケーションは、事前定義された DTD (Document Type Definition: ドキュメント タイプ定義) ファイルの 4 つのペアに準拠する XML ドキュメントに対する応答によってアクションを実行するように設計されており、これらのファイルにより以下のことを行うことができます。

事前定義された DTD ファイルの 4 つのペアは、WebLogic Integration サーバ インストレーションの次のディレクトリにあります。

WLI_HOME¥docs¥apidocs¥com¥bea¥wlpi¥common¥doc-files

このパスでは、WLI_HOME は WebLogic Integration をインストールしたディレクトリを表します。多くの場合、ディレクトリは、c:¥bea¥weblogic700¥integration となります。

各ペアは、Worklist クライアントに対する要求のための DTD ファイルと、Worklist クライアントからの応答のための DTD ファイルで構成されます。次の表に、事前定義された DTD ファイルと、要求 DTD ファイルの 1 つに準拠する XML ドキュメントを受け取った際に Worklist アプリケーションにより実行されるアクションをリストします。

表6-2 Worklist DTD ファイル

DTD ペア

使用目的

要求

ClientMsgBoxReq.dtd

メッセージまたはクエリに対してユーザが応答するためのメッセージ ダイアログ ボックスを表示する。

応答 = ok/yes/no/cancel

詳細については、ユーザに対してメッセージ プロンプトを表示するを参照。

応答

ClientMsgBoxResp.dtd

要求

ClientSetVarsReq.dtd

ユーザが値を入力する入力フィールドの入ったプロンプト ダイアログ ボックスを表示する。

応答 = フィールド名と値のペア

詳細については、ユーザに対してフォームを表示するを参照。

応答

ClientSetVarsResp.dtd

要求

ClientCallPgmReq.dtd

クライアント マシンでプログラムを実行する。

応答 = プログラム出口コード

詳細については、クライアント上の実行可能プログラムを呼び出すを参照。

応答

ClientCallPgmResp.dtd

要求

ClientCallAddInReq.dtd

Worklist クライアント アプリケーションに対するカスタム拡張を呼び出す。

応答 = カスタム

詳細については、クライアント上でのカスタム Worklist 拡張を呼び出すを参照。

応答

ClientCallAddInResp.dtd


 

注意: これらの DTD に頻繁にアクセスする場合、取り出しやすいようにリポジトリにインポートしておくこともできます。その手順については、リポジトリにあるエンティティの管理を参照してください。

クライアントから受け取る各応答について、応答により戻される値を置くための変数を作成する必要があります。大部分は文字列型変数です。変数作成の手順については、変数に関する作業を参照してください。

以下の節では、各 DTD ペアに必要なドキュメント構造について詳しく説明します。

ユーザに対してメッセージ プロンプトを表示する

次のサンプルのように、ClientMsgBox DTD を使用することにより、Worklist ユーザに対してメッセージ ボックスを表示できます。

図6-35 メッセージ プロンプトのサンプル


 

要求 DTD では次の構造を持つドキュメントが必要です。

コード リスト 6-1 ClientMsgBoxReq XML ドキュメントの構造

<message-box title=“text” style=“{plain|information|question|warning|error}”
options=“{ok|ok_cancel|yes_no|yes_no_cancel}”>
text
<actionid> provided by default </actionid>
</message-box>

すべての要素と属性は必須です。これらについて以下で説明します。

表6-3 ClientMsgBoxReq の要素と属性

要素または属性

説明

有効な値

message-box

ダイアログ ボックスのメッセージに表示するテキスト。

任意のテキスト文字列。

title

ダイアログ ボックスのタイトル バーに表示するテキスト。

任意のテキスト文字列。

style

ダイアログ ボックスの左上隅に表示する [Swing] アイコン。

デフォルトは plain

アイコンなし

plain


information


question


warning


error

options

ダイアログ ボックスの下部の選択ボタンと、その中のテキスト。

デフォルトは ok

[はい]、[いいえ]、[取消し] の 3 つのボタン

yes_no_cancel

style要素が plain または question に設定されている場合のみ有効。

[OK] と [取消し] の 2 つのボタン

ok_cancel

style要素が errorplain、または warning に設定されている場合のみ有効。

1 つの [OK] ボタン

ok

style要素が errorinformationplain、または warning に設定されている場合のみ有効。

[はい] と [いいえ] の 2 つのボタン

yes_no

style 要素が plain または question に設定されている場合のみ有効。


 

応答ドキュメントは、選択されたボタンに従ってユーザの応答をメッセージ ボックスに表示します。応答 DTD には次の構造が必要です。

コード リスト 6-2 ClientMsgBoxReq XML ドキュメントの構造

<message-box option=”{ok|yes|no|cancel}” /> 

要素と属性は必須です。それらについて、ワークフロー変数に値を戻すために必要な式と共に、以下で説明します。

表6-4 ClientMsgBoxResp の要素と属性

要素または属性

説明

有効な値

値を抽出するために必要な式

option

クライアント ユーザにより選択されたボタン。文字列として表わされる。

ok

yes

no

cancel

XPath(“/message-box/@option/text()”)


 

ユーザに対してフォームを表示する

次のサンプルのように、ClientSetVars DTD を使用することにより Worklist ユーザに対してフォームを表示できます。

図6-36 フォームのサンプル


 

要求 DTD では次の構造を持つドキュメントが必要です。

コード リスト 6-3 ClientSetVarsReq XML ドキュメントの構造

<set-variables title=“text”>
text
<actionid>provided by default </actionid>
<variable name=“variable name” prompt=“text” />
[<variable name=“variable name” prompt=“text” />]
</set-variables>

すべての要素と属性は必須です。少なくとも 1 つの <variable> 要素が必要です。さらに、任意の数の <variable> 要素を指定できます。要素と属性について以下で説明します。

表6-5 ClientSetVarsReq の要素と属性

要素または属性

説明

有効な値

set-variables

ダイアログ ボックスのメッセージに表示するテキスト。

任意のテキスト文字列。

title

ダイアログ ボックスのタイトル バーに表示するテキスト。

任意のテキスト文字列。

name

入力フィールドを識別する名前。

任意のテキスト文字列。

prompt

入力フィールドの前にプロンプトとして表示するテキスト。

任意のテキスト文字列。


 

応答ドキュメントは、ユーザの応答をそれぞれの入力フィールドに表示します。応答 DTD には次の構造が必要です。

コード リスト 6-4 ClientSetVarsResp XML ドキュメントの構造

<set-variables>
<variable name=“variable_name_1”>response_1</variable>
[<variable name=“variable name_2”>response_1</variable>]
.
.
.
</set-variables>

すべての要素と属性は必須です。<variable> 要素の数は、要求ドキュメントで使用された数に対応させてください。要素と属性は必須です。ワークフロー変数に値を戻すために必要な式について以下で説明します。

表6-6 ClientSetVarsResp の要素と属性

要素または属性

説明

有効な値

値を抽出するために必要な式

variable

クライアントにより与えられた応答。

任意のテキスト文字列。

XPath("/set-variables/variable[@name="field_name"]/text()")

name

入力フィールドを識別するために使用する名前。

要求ドキュメントで使用した名前に対応。


 

クライアント上の実行可能プログラムを呼び出す

ClientCallProgram DTD を使用して、Worklist クライアント上のプログラムを呼び出すことができます。要求ドキュメントには次の構造が必要です。

コード リスト 6-5 ClientCallProgramReq XML ドキュメントの構造

<call-program name=“name” mode=”{sync|async}”>
<actionid> provided by default </actionid>
[<parm>parameter_1</parm>]
.
.
.
[<env-var name=”name”>environment variable
definition_1</env-var>]
.
.
.
</call-program>

すべての要素と属性は必須です。ただし、<parm> 要素と <env-var> 要素は省略可能です。<parm> 要素と <env-var> 要素は、指定しないことも、あるいは複数指定することも可能です。

表6-7 ClientCallProgramReq の要素と属性

要素または属性

説明

有効な値

name

プログラムの名前。

テキスト文字列。

mode

Worklist に関連して、実行可能プログラムを実行する際のモード。

デフォルトは、async

プログラムは同期的に実行される。呼び出されたプログラムが終了するまで、Worklist の続行はブロックされ、そのユーザ インタフェースにアクセスできない。

sync

プログラムは非同期的に実行され、Worklist と並行して実行される。呼び出されたプログラムの実行中も、そのユーザ インタフェースにアクセスできる。

async

parm

プログラムに渡すパラメータ。

任意のテキスト文字列。

env-var

呼び出されるプログラムと関連付ける環境変数の定義。

テキスト文字列。

name

環境変数のシンボリック名。

テキスト文字列。


 

応答 DTD には次の構造が必要です。

コード リスト 6-6 ClientCallProgramResp XML ドキュメントの構造

<call-program exit-value=“value” />

要素と属性は必須です。これらについて以下で説明します。

表6-8 ClientCallProgramResp の要素

要素または属性

説明

有効な値

値を抽出するために必要な式

exit-

Value

呼び出されたプログラムの数値出口コード。オペレーティング システムにより検索される。

有効な終了コードに関する詳細については、該当するプログラム ドキュメントを参照。

XPath("/call-program/@exit-value")


 

クライアント上でのカスタム Worklist 拡張を呼び出す

ClientCallAddIn DTD を使用して、Worklist クライアントに対してカスタム拡張を呼び出すことができます。要求ドキュメントには次の構造が必要です。

コード リスト 6-7 ClientCallAddInReq XML ドキュメントの構造

<call-addin name=“name” mode=”{sync|async}”>
<actionid> provided by default </actionid>
[<parm>parameter_1</parm>]
.
.
.
</call-addin>

すべての要素と属性は必須です。ただし、<parm> 要素は省略可能です。<parm> 要素は、指定しないことも、あるいは複数指定することも可能です。

表6-9 ClientCallAddInReq の要素と属性

要素または属性

説明

有効な値

name

com.bea.wlpi.client.worklist.WorklistAddIn インタフェースを実装するカスタム Java クラスの名前。

Java クラスの完全修飾 JNDI 名。

mode

Worklist に関連して、プログラムを実行する際のモード。

デフォルトは、async

プログラムは同期的に実行される。呼び出されたプログラムが終了するまで Worklist の続行はブロックされ、そのユーザ インタフェースにアクセスできない。

sync

プログラムは非同期的に実行され、Worklist と並行して実行される。プログラムの実行中も、そのユーザ インタフェースにアクセスできる。

async

parm

拡張に渡すパラメータ。

任意のテキスト文字列。


 

応答ドキュメントの指定は省略可能です。要素は省略可能で、任意の数のカスタム要素と属性を定義できます。

コード リスト 6-8 ClientCallAddInResp XML ドキュメントの構造

<call-addin>
[<tag_name_1 attribute_name_1=”attribute_value”
. . .>value</tag_name_1>]
.
.
.
</call-addin>

これらの要素について以下で説明します。

表6-10 ClientCallAddInResp の要素と属性

要素または属性

説明

有効な値

値を抽出するために必要な式

任意の要素名

任意の数の属性で構成できる。

カスタム定義。

XPath("/call-addin/path/text()")


 

 


電子メール メッセージを送信

電子メール メッセージを送信アクションを使用して、WebLogic Integration システムのユーザまたは外部パーティのユーザにも電子メール メッセージを送信できます。メッセージの伝送には、インターネット標準の SMTP が使用されます。

設計時にオペレーティング システムがサポートしている文字セットであればどれでも電子メール メッセージを作成できます。また、メッセージを送信するために実行時にサーバにより使用される文字セットを指定できます。英語ロケールでは、サーバにより使用されるデフォルト文字セットは、Java Virtual Machine により使用されるデフォルト文字セットである cp1252 ですが、Java 言語によりサポートされるどの文字セットでも指定できます。文字セットのリストについては、http://java.sun.com/j2se/1.3/docs/guide/intl/encoding.doc.html を参照してください。

注意: このアクションには、WebLogic Integration サーバのインストレーション プロセス中またはその後で、電子メール サーバが正しくコンフィグレーションされている必要があります。インストレーション後にメール サーバ プロパティをコンフィグレーションする方法については、『WebLogic Integration の起動、停止およびカスタマイズ』の「WebLogic Integration のカスタマイズ」にある「メール セッション プロパティのカスタマイズ」を参照してください。

図6-37 [電子メール メッセージを送信] ダイアログ ボックス


 

電子メール メッセージを送信する手順は、以下のとおりです。

  1. [アクションを追加] ダイアログ ボックスの [その他のアクション] フォルダから [電子メール メッセージを送信] を選択し、[OK] をクリックすると、[電子メール メッセージを送信] ダイアログ ボックスが表示されます。

  2. [件名] フィールドに、電子メールの件名を生成するために実行時に評価する有効なワークフロー式を入力します。この式は、リテラル、変数、演算子、および関数で構成できる。式の作成方法の詳細については、ワークフロー式の使用法を参照してください。

  3. [メッセージ] タブのテキスト ボックスに、電子メールのメッセージ テキストを生成するために実行時に評価する有効なワークフロー式を入力します。

  4. (省略可能) [MIME 文字セット] フィールドで、Java 言語によりサポートされている MIME 文字セットを入力または選択し、サーバがメッセージを送信する際に使用させることができます。たとえば、2 バイト言語の文字を含むメッセージを送信する場合は、UTF-8 (Unicode 標準フォーマットの 1 つ) を選択する。受取人がメッセージを正しく表示するためには、選択されたエンコード方法が受取人の使用する電子メール クライアント プログラムでもサポートされていなければなりません。

    注意: ユーザが文字入力に使用するエンコードは、[MIME 文字セット] フィールドでの設定とは関係なく、OS およびロケールによって決まります。

  5. [To] タブを選択すると受取人に関する次の情報が表示されます。


     

    図6-38 [電子メール メッセージを送信] ダイアログ ボックスの [To] タブ


     

  6. [追加] をクリックすると受取人が追加されます。[メールの宛先] ダイアログ ボックスが表示されます。

    図6-39 [メールの宛先] ダイアログ ボックス


     

  7. 以下のオプションの 1 つを選択することにより、アドレスを指定します。

    詳細についてはワークフロー式の使用法を参照してください。

  8. [OK] をクリックします。新しい受取人がリストに追加されます。

  9. さらに受取人を追加するには、手順 6 から 8 を繰り返します。受取人を更新するには、リストでそれを選択し、[更新] をクリックします。受取人を削除するには、リストでそれを選択し、[削除] をクリックします。メッセージが表示されたら削除を確認します。

  10. (省略可能) [CC] タブまたは [BCC] タブで、手順 5 から 8 を繰り返し、明示する同報受取人または隠す同報受取人を指定してください。

  11. [OK] をクリックすると [電子メール メッセージを送信] アクションが追加されます。

 


コンポーネントの呼び出し

以下のアクションを使用して、EJB、Java クラス、実行可能プログラムなどのソフトウェア コンポーネントを呼び出したり、ワークフローとコンポーネントの間で入力パラメータや出力パラメータを直接受け渡すことができます。

サーバ上の実行可能なプログラムを呼び出す

プログラムの呼び出しアクションを使用して、WebLogic Integration サーバ上の実行可能プログラムを呼び出すことができます。このアクションは、常に非同期的に実行されます。つまり、ワークフロー内でこのアクションの後に続くアクションは、呼ばれた側のプログラムが完了するのを待つことなく同時に実行されます。

注意: XML をクライアントに送信アクション内でプログラムの呼び出しアクションを使用して、cmd.exec などのシェル プログラムへのアクセスを許可する場合は注意してください。これによりクライアント コンピュータへの完全なアクセスが可能になるため、アプリケーションのセキュリティが低減します。

図6-40 [プログラムの呼び出し] ダイアログ ボックス


 

サーバ上の実行可能プログラムを呼び出す手順は、以下のとおりです。

  1. [アクションを追加] ダイアログ ボックスで [統合アクション] フォルダを展開し、[プログラムの呼び出し] を選択して、[OK] をクリックすると、[プログラムの呼び出し] ダイアログ ボックスが表示されます。

  2. [プログラム] フィールドに、実行可能ファイルの名前を拡張子も含めて入力します。

    DOS シェル固有のコマンド(echo など)を含まない .cmd ファイルや .bat ファイルのような DOS スクリプト ファイルを実行する場合、以下のいずれかを行います。

    DOS シェル固有のコマンド(echo など)を含む .cmd ファイルや .bat ファイルのような DOS スクリプト ファイルを実行する場合、次を入力します。

    c:¥winnt¥system32¥cmd

  3. [引数] フィールドに、変数名などプログラムに渡す引数を生成するために実行時に評価する有効なワークフロー式を入力します。

    DOS シェル固有のコマンド(echo など)を含む .cmd ファイルや .bat ファイルのような DOS スクリプト ファイルを実行する場合、次を入力します。

    "/c start c:¥¥path¥¥filename.extension expression"

  4. [OK] をクリックすると [プログラムの呼び出し] アクションが追加されます。

ビジネス オペレーションを呼び出す

ビジネス オペレーションを実行アクションを使用して、EJB や Java クラスなどの Java コンポーネントで、ビジネス アクティビティを実行するメソッドを呼び出すことができます。

開始したいビジネス オペレーションは、あらかじめ定義しておく必要があります。さらに、Java オブジェクト、セッション EJB、エンティティ EJB の各変数が、ビジネス オペレーションによって呼び出されるメソッドを持つ Java クラスまたは EJB インスタンスへの参照を保存するように、あらかじめ定義しておく必要があります。ビジネス オペレーションを定義する方法の詳細については、ビジネス オペレーションのコンフィグレーションを参照してください。変数の定義方法の詳細は、変数に関する作業を参照してください。

また、EJB 上のメソッドまたは Java クラス上の非静的メソッドを呼び出すビジネス オペレーションを実行できるようにするには、その前に、以下のルールに従って、WebLogic Integration サーバで Java クラスまたは EJB のインスタンスを作成するビジネス オペレーションを呼び出す必要があります。

インスタンスを作成するビジネス オペレーションを実行する場合、インスタンス変数と呼ばれる変数に対してインスタンスへの参照を割り当てます。その後、同じ EJB またはクラスに入っているメソッドを表わす他のビジネス オペレーションを呼び出す際に、EJB または Java クラス インスタンスを参照するインスタンス変数を識別します。詳細については以下の節で説明します。

EJB または Java クラス インスタンスを作成するためのビジネス オペレーションを呼び出す

EJB または Java クラス インスタンスを作成するビジネス オペレーションを呼び出す場合、以下のように、インスタンスに対する参照を同じデータ型の変数に対して割り当てる必要があります。

EJB または Java クラス インスタンスを作成するためにビジネス オペレーションを呼び出す手順は、以下のとおりです。

  1. [アクションを追加] ダイアログ ボックスの [統合アクション] フォルダから [ビジネス オペレーションを実行] を選択し、[OK] をクリックすると、[ビジネス オペレーションを実行] ダイアログ ボックスが表示されます。

  2. [オペレーション] ドロップダウン リストから、Java クラスまたは EJB インスタンスを作成するビジネス オペレーションを選択します。

  3. [結果の割り当て先] ドロップダウン リストから、このビジネス オペレーションのためのインスタンス変数を選択するか、[追加] をクリックして [変数を作成] ダイアログ ボックスを呼び出し、変数を作成します。変数の型は、作成されるコンポーネントのタイプに対応している必要があります。

  4. [OK] をクリックすると [ビジネス オペレーションを実行] アクションが追加されます。

他のビジネス オペレーションを呼び出す

EJB または Java クラスの create() またはコンストラクタ メソッドのためのビジネス オペレーションを実行をノードに追加した後、同じクラスまたは EJB 上のメソッドを呼び出す他のビジネス オペレーションを追加できます。

合計価格の計算のような、パラメータを取って結果を戻すメソッドの場合、ビジネス オペレーションにより戻される値を格納する変数も作成する必要があります。この変数は、メソッドにより指定された変数と同じタイプにしてください。

図6-42 [ビジネス オペレーションを実行] ダイアログ ボックス


 

他のビジネス オペレーションを呼び出す手順は、以下のとおりです。

  1. [アクションを追加] ダイアログ ボックスの [統合アクション] フォルダから [ビジネス オペレーションを実行] を選択し、[OK] をクリックすると、[ビジネス オペレーションを実行] ダイアログ ボックスが表示されます。

  2. [オペレーション] ドロップダウン リストから、実行するビジネス ロジックを表わすビジネス オペレーションを選択します。EJB 上のメソッド、または非静的 Java クラス メソッドを呼び出すビジネス オペレーションの場合、[インスタンス変数] ドロップダウン リストに、Java オブジェクト 変数、セッション EJB 変数、またはエンティティ EJB 変数が表示されます。

  3. [インスタンス変数] ドロップダウン リストから、EJB または Java クラスに対する参照を格納する変数を選択します。詳細については、EJB または Java クラス インスタンスを作成するためのビジネス オペレーションを呼び出すを参照してください。

  4. ビジネス オペレーションにより [パラメータ] リストにパラメータが表示された場合、そのリストからパラメータを選択し、[更新] をクリックし、表示された [Expression Builder] ダイアログ ボックスを使用して、この値を定義します。一般に、この値は、既に定義されたワークフロー変数により提供されます。

  5. ビジネス オペレーションから結果が戻される場合、[結果の割り当て先] ドロップダウン リストから結果を割り当てる変数を選択するか、あるいは、[追加] をクリックして、[変数を作成] ダイアログ ボックスを呼び出し、変数を定義します。変数の型は、メソッドにより指定された型と一致している必要があります。

  6. [OK] をクリックすると [ビジネス オペレーションを実行] アクションが追加されます。

 


JMS トピックまたはキューへの XML メッセージのポスト

イベントをトリガする目的で、指定された宛先に XML メッセージを送信するには、XML イベントをポストアクションを使用します。このアクションにより、新しい XML 文書を作成またはワークフローの既存の XML 型変数の内容を使用します。いずれの場合でも JMS メッセージ内に XML コンテンツを埋め込みます。この XML コンテンツは、外部アプリケーションで処理するために外部 JMS キューまたはトピックにポストすることも、あるいは、別のワークフローで処理するために内部キューにポストすることもできます。

注意: クラスタ化環境で WebLogic Integration を実行している場合、ワークフローを開始アクションで直接ワークフローを呼び出すより、別のワークフローを開始する XML イベントをポストするほうが、負荷バランスをよりよく調整できます。

送信する XML ドキュメントの作成もできれば、XML リポジトリ、ディスク上のファイル、または URL から既存の XML ドキュメントのインポートも可能です。また、XML コンテンツを実行時に指定できる変数として送信されるドキュメントを指定することもできます。

XML イベントをポストアクションは、XML メッセージ コンテンツだけでなく、アクションのプロパティに指定されたオプションに従って、JMS ヘッダと値をメッセージに挿入します。WebLogic Server サーバの標準 JMS ヘッダ フィ-ルドの詳細については、次の URL にある『WebLogic JMS プログラマーズ ガイド』の「WebLogic JMS の基礎」を参照してください。http://edocs.beasys.co.jp/e-docs/wls/docs70/jms/fund.html

JMS メッセージング オプションについて以下の節で説明します。

イベントを非同期的または同期的にポストする

発信メッセージを作成するようにコンフィグレーションされたワークフローまたは他のコンポーネントに関連して、XML イベントを、非同期的にも、あるいは同期的にも機能するよう設定できます。そのためには、受取側ワークフローから戻される確認メッセージを受け取るための通信を開始するワークフローでイベント ノードを使用します。

デフォルトでは、XML イベントをポストアクションは「発信後削除(fire and forget)」方式でメッセージをポストするだけの非同期的なものであり、その間にワークフローは次のアクションに進みます。したがって、並行して実行される他のワークフローまたはアプリケーションをトリガする場合、および呼び出し側ワークフローは、呼び出されたワークフローまたはアプリケーションからの返信を受け取る必要がない場合には、そのままそのアクションを使用してください。

呼び出し側ワークフローと呼び出されたワークフローまたはアプリケーションとを並行して実行し、呼び出し側ワークフローが呼び出されたワークフローまたはアプリケーションからの返信を期待している場合、「適時(just in time)」方式でメッセージを受け取るように、呼び出し側ワークフローでイベント ノードを設定できます。つまり、ワークフローの中で、呼び出されたワークフローまたはアプリケーションにより戻されるデータを必要とするポイントにのみイベント ノードを設定できます。次の図に 2 つのシナリオを示します。

図6-43 XML イベントの非同期的ポスト


 

XML イベントを純粋に同期的方法でポストする場合、つまり、呼び出されたワークフローまたはアプリケーションが実行を完了するまで、呼び出し側ワークフローが先に進まずに待つようにする場合、呼び出されたワークフローまたはアプリケーションが実行を終了した際にメッセージを送信するように設定し、呼び出し側ワークフローの XML イベントをポストアクションの直後にこのメッセージをリスンするイベント ノードを置きます。この設計を次の図に示します。

図6-44 イベントの同期的ポスト


 

JMS メッセージング オプション

以下の節では、[XML イベントをポスト] ダイアログ ボックス内から利用できる各種 JMS メッセージング オプションについて説明します。

送り先

内部 JMS キューを指定することにより、現在のワークフローまたは別のワークフローでイベント ノードをトリガしたり、イベントによりトリガされる開始を定義した別のワークフローを開始したりできます(開始ノードとイベント ノードでイベントをトリガする方法の詳細については、イベントおよびイベントトリガ型開始のプロパティを定義するを参照)。デフォルトのメッセージ送信先である内部 JMS キューの JNDI 名は、com.bea.wlpiEventQueue です。WebLogic Server で他にもキューがコンフィグレーションされている場合、代替キュー名を指定できます(WebLogic Integration のための代替メッセージ キューを設定する方法の詳細については、『WebLogic Integration の起動、停止およびカスタマイズ』の「WebLogic Integration のカスタマイズ」にある「カスタム Java Message Service キューのコンフィグレーション」を参照)。

また、指定した JMS トピックにサブスクライブする外部アプリケーションや、JMS キュー受信者である特定のアプリケーションと通信するために、外部 JMS トピックやキューに XML メッセージを送信することもできます。

ヘッダ

JMS メッセージは、メッセージと共に常に伝送されるヘッダ フィールドの標準セットを含んでいます。[XML イベントをポスト] ダイアログ ボックスで利用できるオプションにより自動的に挿入される JMSDeliveryModeJMSDestinationJMSPriorityJMSExpiration (存続時間) の各ヘッダに加え、アプリケーション固有の情報のプロパティ フィールドや値を発信メッセージに追加し、メッセージ本文には適していない情報の指定もできます。たとえば、別のワークフローをトリガするために XML メッセージングを使用する場合、ワークフローを開始するオーガニゼーションの名前を指定するためにプロパティ フィールドを使用できます。

JMS メッセージ プロパティは、名前と値の組み合わせです。名前には、Java 言語で有効な識別子ならば、ほとんどの文字列を使用できます。値は、ブール、バイト、ショート、整数、ロング、フロート、倍精度、または文字列にできます。

JMS ヘッダおよびプロパティ フィ-ルドの詳細については、次の URL にある『 WebLogic JMS プログラマーズ ガイド』の「WebLogic JMS の基礎」を参照。http://edocs.beasys.co.jp/e-docs/wls/docs70/jms/fund.html

順序指定メッセージまたはアドレス指定メッセージが使用された場合、[XML イベントをポスト] ダイアログ ボックス オプションの [アドレス指定] タブに入力された値に基づいて、順序指定メッセージの場合は指定された順序キーのためのプロパティ フィールドが、アドレス指定メッセージの場合は指定されたワークフロー インスタンス IDのためのプロパティ フィールドが、WebLogic Integration により挿入されます。ただし、さらに 2 つのプロパティがサポートされており、手動で挿入できます。

この機能は、現在のワークフローとの会話に入力されたワークフロー インスタンスまたはテンプレート名のリストを統合して、単一のメッセージにより外部アプリケーションに渡す必要がある場合に便利です。

メッセージが別のワークフローにより受信されるようにする場合、受信側ワークフローは、開始ノードまたはイベント ノードのイベント キー式または変数初期化で EventAttribute() 関数を使用することにより、プロパティ フィールドに指定された情報を検索できます。複数のインスタンス ID またはテンプレート名を指定する場合、Java オブジェクト データ型として定義された変数に関数の結果を割り当てる必要があります。

イベント キー式の詳細については、イベント キーのコンフィグレーションを参照してください。イベント データから変数を初期化する方法の詳細については、イベント データからの変数を初期化するを参照してください。EventAttribute() 関数の詳細については、実行時のイベント データを抽出するを参照してください。

配信モード

メッセージは、永続または非永続のいずれかとして指定できます。永続メッセージは、データベース表に書き込まれ、JMS サーバが失敗した場合でも失われません。このメッセージは、サーバが回復した後に再度配信される。非永続メッセージは、JMS サーバが失敗すると失われることがあります。このメッセージは、サーバが回復しても再配信されない。デフォルトの配信モードは永続です。

存続時間

メッセージを永続とするか、非永続とするかは、メッセージの期限により指定できます。消滅時間までに配信されない場合、メッセージは破棄されます。このオプションは、株の指し値のように、ある時刻以降には配信してはならないメッセージの場合に便利です。存続時間はミリ秒単位で表わされます。たとえば、メッセージを 1 時間有効にする場合は、3600000 (60 分 × 60 秒 × 1000 ミリ秒) という値を指定する。デフォルト値の 0 (ゼロ) は、メッセージに期限がないことを示す。

アドレス指定されたメッセージに対して消滅時間を指定した場合、指定されたすべての受取人にメッセージが正常に配信されるか、あるいは消滅するかのいずれか早い方のイベントが発生するまでメッセージは存続します。

優先度

0 から 9 のレベルの優先順位を割り当てることができます。レベル 0 から 4 は通常の優先順位です。レベル 5 から 9 は迅速を求める優先順位です。優先度が至急のメッセージは、通常の優先度のメッセージよりも先に配信される。一般に、アラーム メッセージやシャットダウン メッセージに対して迅速順位を使用します。デフォルト優先順位はレベル 4 です。

優先順位は順位付きメッセージングをオーバーライドするため、同じ順位キーを持つメッセージに対しては、すべて同じレベルの優先順位を指定する必要があります。推奨設定は、デフォルトの 4 のままにすることです。

他の優先順位レベルを使用するには、まず、WebLogic Server で宛先キーをコンフィグレーションする必要があります。詳細については、次の URL にある『WebLogic Server 管理者ガイド』の「JMS の管理」を参照してください。http://edocs.beasys.co.jp/e-docs/wls/docs70/adminguide/jms.html

トランザクション モード

メッセージを直ちに送信するか、XML イベントをポストアクションの入っている現在のトランザクションがコミットする際に送信するかを指定できます。メッセージを直ちに送信すると、トランザクションが完了したかどうかにかかわらず、メッセージは送信されます。コミット時にメッセージを送信すると、トランザクションが正常に完了し、コミットが発行された場合に限り、メッセージは送信されます。トランザクションが正常に完了せず、ロールバックされた場合、メッセージは送信されません。デフォルトは、トランザクションのコミット時です。ワークフロー トランザクション境界の詳細については、『BPM クライアント アプリケーション プログラミング ガイド』の「BPM トランザクション モデル」を参照してください。

アドレス指定メッセージング

インスタンス化されたワークフローの受信側イベント ノードがフローでアクティブ化されていない場合でも、現在のワークフローとの会話を開始した(ワークフローを開始アクションでワークフローを呼び出すことにより、または以前に送信された XML メッセージにより、ワークフロー内の開始ノードまたはイベント ノードをトリガすることにより)特定のワークフロー インスタンスに確実に応答メッセージが配信されるようにするには、アドレス指定メッセージングを使用できますノードのアクティブ化の詳細については、『BPM クライアント アプリケーション プログラミング ガイド』の「BPM トランザクション モデル」を参照してください。

アドレス指定メッセージングを使用する場合、通常は、メッセージの配信先のワークフロー インスタンス ID のリストを用意します。このリストは、XML メッセージに埋め込まれた WorkflowAttribute(“InstanceID”) 式により、またはワークフローを開始アクションによりワークフローに渡されるパラメータとして、発信元ワークフローから送信され、現在のワークフローの前のノードにより抽出され、変数に格納されます。インスタンス ID のリストは、通常、対象の ID の入ったカンマ区切りの変数のリストです。メッセージは、このリストに指定されたインスタンスに対してのみ配信されます。

注意: ワークフロー インスタンス ID は文字列として格納されるため、インスタンス ID 値を入れる変数を作成する場合は、文字列型として作成してください。ワークフロー属性関数の詳細については、実行時のワークフロー データを収集するを参照してください。

存続期間を指定した場合、メッセージが指定されたすべての受取人に配信されるか、消滅するかのいずれか早い方のイベントが発生するまで、メッセージは存続します。

順序指定メッセージング

同じイベントのリスナに、メッセージを受け取った順序どおりに処理させるには、順序キーを指定します。たとえば、注文処理システムが注文を作成する要求と、注文の更新またはキャンセルを行う要求を受け取った場合、作成要求メッセージを先に処理させることができます。

順序キーは整数値でなければならず、その値は受け取った順序で処理させたいすべてのイベントで同じでなければなりません。たとえば、2 つのイベントが同時にポストされ、受け取った順序で処理されるようにする場合、各イベントに対して、整数値の 8 のような同じ値の順序キーを入力します。また、順序指定メッセージは、同じ JMS キューに送信する必要があります。

順序指定メッセージングは、メッセージ優先順位と互換性がないため、順序キーを使用する場合は、同じ順序キーを持つすべてのメッセージに対して同じレベルの優先順位を設定する必要があります。推奨設定は、デフォルトの 4 のままにすることです。

XML イベントをポストアクションを定義する

XML イベントを定義する手順は、以下のとおりです。

  1. [アクションを追加] ダイアログ ボックスの [統合アクション] フォルダから [XML イベントをポスト] を選択し、[OK] をクリックすると、[XML イベントをポスト] ダイアログ ボックスが表示されます。

    図6-45 [XML イベントをポスト] ダイアログ ボックスの [XML メッセージ] タブ


     

  2. [XML メッセージ] タブを選択し、以下のいずれかを行うことにより、このアクションを送信する XML メッセージを定義します。

    ユーザ定義の XML ドキュメントは、ワークフロー テンプレート定義内に保存される。

  3. [送り先] タブの [送り先] オプションで、以下のいずれかを選択します。

    注意: 式の作成方法の詳細については、ワークフロー式の使用法を参照してください。

    図6-46 [XML イベントをポスト] ダイアログ ボックスの [送り先] タブ


     

  4. (省略可能) [トランザクション モード] オプションから以下のいずれかを選択します。

  5. (省略可能) [メッセージ ヘッダ] タブを選択し、メッセージに追加する JMS メッセージ プロパティを指定します(利用可能なワークフロー固有のプロパティについては、ヘッダを参照)。[追加] をクリックすると、[JMS プロパティを設定] ダイアログ ボックスが表示される。このダイアログ ボックスの設定手順は、次のとおり。

    1. [JMS プロパティ] フィールドに、プロパティ名を指定する。

    2. [JMS プロパティ値] フィールドに、プロパティの値を入力する。引用符で囲んだ値を直接入力する、または実行時に評価されて値を生成する式を入力する。

    3. [OK] をクリックします。

      図6-47 [JMS プロパティを設定] ダイアログ ボックス


       

  6. (省略可能) [メッセージ ヘッダ] タブで以下のオプションから選択することにより、配信モードを指定します。

  7. (省略可能) [メッセージ ヘッダ] タブで、[存続期間] フィールドに存続時間をミリ秒単位で指定するか、[式を使用] チェック ボックスにチェックして、実行時に評価されて値を生成する式をフィールドに入力します。値 0 はメッセージが消滅しないことがわかります。

  8. (省略可能)ドロップダウン リストから 0 (最低の優先順位) から 9 (最高の優先順位) の値を選択することにより、メッセージ優先順位を指定します。あるいは、[式を使用] チェック ボックスをオンにし、実行時に評価されて値を生成する式をフィールドに入力します。

    注意: メッセージを並べるための順序キーを指定する場合は、デフォルト値 4 のままにします。

  9. (省略可能)アドレス指定メッセージを送信する場合は、[アドレス指定] タブを選択し、1 つまたは複数のワークフロー インスタンスのために XML メッセージを残しておくことを指定します。[アドレス指定されたメッセージ] チェック ボックスにチェックし、[インスタンス ID] フィールドに 1 つの変数名、またはカンマ区切りの変数のリストを入力します。変数には、現在のワークフローであらかじめワークフロー インスタンス ID を格納しておきます(詳細については、アドレス指定メッセージングを参照)。

    図6-49 [XML イベントをポスト] ダイアログ ボックスの [アドレス指定] タブ


     

    注意: [メッセージ ヘッダ] 領域で [存続期間] を指定すると、指定した期間だけメッセージが保持されます。

  10. (省略可能)順序指定メッセージを送信する場合、[アドレス指定] タブでメッセージの順序キーを入力します。これは、順に処理されるようにするすべてのメッセージで同じ値にします。この値は、整数、または実行時に整数値を決定する式でなければなりません。

    注意: 順序キーを指定する場合は、メッセージ優先順位をデフォルトの 4 のままにしてください。

  11. [OK] をクリックすると [XML イベントをポスト] アクションが追加されます。

 


XML ドキュメントの変換

XSLT (Extensible Stylesheet Language Transformations: 拡張可能スタイルシート言語変換) は、XMLドキュメントを他の XML ドキュメントまたは非 XML ドキュメントに変換するためのルールを定義します。XSL テンプレート ドキュメントは、変換する入力 XML ドキュメントの要素と、その要素をどのように変換するかを指定します。

XSL 変換アクションにより、変換する入力 XML ドキュメント、変換の詳細を指定する XSL テンプレート ドキュメント、変換されたドキュメントを入れる出力変数を指定できます。実際の変換は実行時に行われ、WebLogic Server 付属の XSL 変換エンジンにより実行されます。

入力ドキュメントにはワークフロー式を入れることができます。その場合、式は変換を行う前にプロセス エンジンにより解決され、結果の入った式に置き換えられます。同様に、XSL テンプレート ドキュメントにはワークフロー変数に対する参照を入れることができます。その場合、参照は変換を行う前にプロセス エンジンにより解決され、適切な値の入った参照に置き換えられます。

入力ドキュメントは、実行時にドキュメントの場所を指示する式として指定されることに注意してください。この式には、XML ドキュメントを格納したワークフロー変数の名前を含めることができます。この場合、XML タイプ変数を作成し(変数に関する作業参照)、あらかじめワークフローで既存または着信 XML ドキュメントを割り当てておく必要があります。これを行う方法の 1 つは、ワークフロー変数を設定アクションです。その手順については、変数値の設定を参照してください。

XSL テンプレート ドキュメント(変換ドキュメント)は、リポジトリに格納されたエンティティにできます(詳細については、リポジトリにあるエンティティの管理を参照)。あるいは、実行時にドキュメントの場所を示す式を使用することもできます。リポジトリにある XSL エンティティまたは実行時に場所指定される XSL ドキュメントがパラメータを取る場合、実行時にパラメータの値を提供する式を指定することもできます。

出力ドキュメントは、事前に作成できる XML または文字変数に格納する必要があります。その手順については、変数を作成するを参照してください。

図6-50 [XSL 変換] ダイアログ ボックス


 

XML ドキュメントを変換する手順は、以下のとおりです。

  1. [アクションを追加] ダイアログ ボックスの [統合アクション] フォルダから [XSL 変換] を選択し、[OK] をクリックすると、[XSL 変換] ダイアログ ボックスが表示されます。

  2. [入力ドキュメント] フィールドに、変換する XML ドキュメントを表わす式を入力します。この式は実行時に評価され、XML ドキュメントを得ることができる。また、この式には、以前に入力ドキュメントを格納した変数名を含めることもできる。

    注意: 式の作成方法の詳細については、ワークフロー式の使用法を参照してください。

  3. [変換ドキュメント] フィールドの 1 つに、入力ドキュメントを変換するために使用する XSL テンプレート ドキュメントを指定します。以下のオプションからいずれか 1 つを選択します。

  4. XSL ドキュメントを表わす式を入力した場合、またはパラメータを取る XSL ドキュメントを指定した場合、必要に応じて [追加] をクリックして [XSL パラメータ] ダイアログ ボックスを表示させることにより、実行時に変換ドキュメントに渡すパラメータを追加できます。

    図6-51 [XSL パラメータ] ダイアログ ボックス


     

  5. [パラメータ] フィールドにパラメータ名を入力する。

  6. [式] フィールドに、実行時に評価されてパラメータの値を生成する式を入力する。

  7. [OK] をクリックしてパラメータを追加する。新しいパラメータが [XSL パラメータ] リストに表示される。

  8. パラメータをさらに追加する場合は、手順 4 〜 7 を繰り返す。あるいは、[更新] または [削除] をクリックして既存のパラメータを更新または削除する。

  9. [出力変数] ドロップダウン リストから、変換された XML ドキュメントを入れる変数を選択します。この変数は XML 型でなければならない。変数の名前の入力もできます。変数が存在しない場合には、変数を作成するように要求される。変数の定義方法の詳細は、変数に関する作業を参照してください。

  10. [OK] をクリックするとアクションが追加されます。

 


例外処理

例外の処理に関係するアクションは、すべてワークフロー例外の処理で説明します。

 

ページの先頭 前 次