ヘッダーをスキップ

Oracle Workflow APIリファレンス
リリース2.6.3.5

部品番号: B15622-01
前へ 次へ       目次 索引 用語集
         前へ  次へ          目次  索引  用語集

Oracle Workflow Javaインタフェース

Oracle Workflow Javaインタフェースには、あらゆるJavaプログラムをOracle Workflowと統合するための手段が用意されています。Oracleワークフロー・エンジンおよび通知のAPIには、パブリック・サーバーのPL/SQLパッケージおよび公開されているビューを介してアクセスできます。Oracle Workflow Javaインタフェースでは、これらのAPIが、Oracle Workflowとやりとりするために任意のJavaプログラムからコールできるJavaメソッドとして公開されます。 Javaメソッドは、WF_ENGINEおよびWF_NOTIFICATION PL/SQLパッケージ・プロシージャおよびビューを直接参照し、JDBCを介してOracle Workflowデータベースとやりとりします。

これらのメソッドは、Javaパッケージ「oracle.apps.fnd.wf.engine」内のWFEngineAPIクラスとWFNotificationAPIクラスに定義されています。ワークフロー・エンジンまたは通知のAPIに対応するJavaメソッドがある場合は、ドキュメント内でPL/SQL構文に続いて対象のJavaメソッドの構文が表示されます。 「Workflow Engine API」および「通知API」を参照してください。

また、Java関数を外部Java関数アクティビティとしてワークフロー・プロセス内に組み込むことができます。現在、この機能を使用できるのはOracle Workflowのスタンドアロン版のみです。これらのアクティビティのカスタムJavaクラスは、WFFunctionAPIクラスの拡張クラスとして実装します。カスタム・クラスは、Oracle WorkflowのJava関数アクティビティ・エージェントで正しく実行できるように、標準APIの書式に従う必要があります。 『Oracle Workflow開発者ガイド』の関数アクティビティがコールするJavaプロシージャの標準APIに関する項、および『Oracle Workflow開発者ガイド』の関数アクティビティに関する項を参照してください。

WFFunctionAPIクラスとWFAttributeクラスには、Oracle Workflowと通信するときにコールできるメソッドも含まれています。これらのクラスは、Javaパッケージ「oracle.apps.fnd.wf」に定義されています。 「Workflow関数API」および「Workflow属性API」を参照してください。

Oracle Workflowと統合するJavaプログラムには、次のimport文を含めて、Oracle Workflowに必要なクラスへのアクセス権を付与する必要があります。


import java.io.*; 
import java.sql.*;
import java.math.BigDecimal;

import oracle.sql.*;
import oracle.jdbc.driver.*;

import oracle.apps.fnd.common.*;
import oracle.apps.fnd.wf.engine.*;
import oracle.apps.fnd.wf.*;

Oracle Workflowのコンテキスト

データベースにアクセスするOracle Workflow Javaメソッドでは、WFContextオブジェクトの入力が必要になります。WFContextオブジェクトは、ユーザーによってインスタンス化されるデータベース接続情報と、WFContextクラスによってインスタンス化されるリソース・コンテキスト情報から構成されます。JavaプログラムからいずれかのWorkflow Java APIをコールするには、最初にクラスWFDBのデータベース変数を、データベースのユーザー名、パスワードおよび別名でインスタンス化する必要があります。また、オプションでJDBC文字列を指定することもできます。次に、データベース変数でWFContextオブジェクトをインスタンス化する必要があります。システム・プロパティCHARSETを取得して、データベース・セッションのキャラクタ・セットを指定することができます。 次のコードは、これらのオブジェクトをインスタンス化する方法の例です。


WFDB myDB;
WFContext ctx;

myDB = new WFDB(m_user, m_pwd, m_jdbcStr, m_conStr);
m_charSet = System.getProperty("CHARSET");
if (m_charSet == null) { // cannot be null
m_charSet = "UTF8";
}

try {
ctx = new WFContext(myDB, m_charSet);
// m_charSet is 'UTF8' by default

if (ctx.getDB().getConnection() == null) {
// connection failed
return;
}

  // We now have a connection to the database.
}

catch (Exception e) {
// exit Message for this exception
}

JDBC接続をすでに確立している場合は、次の例で示すように、その接続をWFContextオブジェクトに設定します。


WFContext ctx;

m_charSet = System.getProperty("CHARSET");
if (m_charSet == null) { // cannot be null
m_charSet = "UTF8";
}

ctx = new WFContext(m_charSet);
// m_charSet is 'UTF8' by default

ctx.setJDBCConnection(m_conn);  
// m_conn is a pre-established JDBC connection

Oracle Workflow Java APIはスレッド内で安全に使用できますが、次のような制限事項があります。

Oracle Workflow Java APIには、同期されたコードはありませんが、共有されているリソースもありません。

Oracle Workflow Java APIには接続プーリングもありません。 Oracle Applicationsの場合、接続プーリングはAOL/Jレベルで実装されます。JDBC接続を取得した後、WFContext.setJDBCConnection() APIを使用して接続を設定します。 この方法を使用すれば、JDBC接続をOracle Workflow APIの外部で管理できます。

Javaプログラムのサンプル

Oracle Workflowには、ほとんどのワークフロー・エンジンおよび通知のJava APIのコール方法を示すJavaプログラムのサンプルが用意されています。このJavaプログラム名はWFTestです。WFTestは、様々なJava APIをコールしてWFDEMOプロセスを起動し、属性を設定または取得し、プロセスを一時停止、再開および中止します。また、通知を送信し、通知属性を設定および取得し、通知を委任および譲渡するときも、Java APIをコールします。WFTest Javaプログラムを実行する前に、Oracle JDBC実装とOracleのサポートされるバージョンのCLASSPATHおよびLD_LIBRARY_PATHが定義されていることを確認する必要があります。 たとえば、UNIXでは次のコマンドを使用します。


setenv CLASSPATH 
<Workflow_JAR_file_directory>/wfapi.jar:${ORACLE_HOME}/jdbc/lib/classes111.zip


setenv LD_LIBRARY_PATH ${ORACLE_HOME}/lib:${LD_LIBRARY_PATH}

注意: Oracle Workflowスタンドアロン版を使用している場合、Workflow JARファイルは<ORACLE_HOME>/jlibディレクトリに格納されています。 Oracle Applicationsに組み込まれているWorkflowを使用している場合、Workflow JARファイルは<ORACLE_HOME>/wf/java/oracle/apps/fnd/wf/jar/ディレクトリに格納されています。

WFTestプログラムを開始するには、oracle.apps.fnd.wf.WFTestに対してJavaコマンドを実行します。 たとえば、UNIXの場合は、コマンドラインに次の文を指定します。


$java oracle.apps.fnd.wf.WFTest

このプログラムのソース・ファイルは、Oracle Workflowのインストールにも含まれているため、サンプル・コードを表示できます。 ソース・ファイル名はWFTest.javaで、<ORACLE_HOME>/wf/java/oracle/apps/fnd/wf/ディレクトリにあります。


          前へ   次へ           目次   索引   用語集



Oracleロゴ
Copyright © 2003, 2004, Oracle. All rights reserved.