BEA ホーム | 製品 | デベロッパ・センタ | support | askBEA |
![]() |
![]() |
|
![]() |
e-docs > WebLogic Integration > BPM トピック > BPM プラグイン プログラミング ガイド > プラグイン開発の基礎 |
BPM プラグイン プログラミング ガイド
|
プラグイン開発の基礎
この章では、プラグイン開発に必要な基本的タスクについて説明します。この章の内容は以下のとおりです。
また、『BPM クライアント アプリケーション プログラミング ガイド』の次の章も参考になります。
パッケージおよびインタフェースのインポート
BPM パッケージおよびインタフェースをインポートし、必要であれば汎用 Java パッケージ もインポートします。
プラグイン管理のために使用される以下のものも含めて、インポートするパッケージやインタフェースの説明については、『BPM クライアント アプリケーション プログラミング ガイド』の「パッケージおよびインタフェースのインポート」を参照してください。
Plug-in Manager への接続
BPM Plug-in Manager に接続するには、PluginManager セッション EJBと PluginManagerCfg セッション EJBのどちらか一方、または両方を使用します。
他の EJB と同じく、PluginManager EJB または PluginManagerCfg EJB にアクセスするには、ホーム インタフェースおよびリモート インタフェースを使用する必要があります。そのための手順は次のとおりです。
API セッション EJB(この場合は、PluginManager EJB と PluginManagerCfg EJB)へのアクセス方法については、『BPM クライアント アプリケーション プログラミング ガイド』の「プロセス エンジンへの接続」を参照してください。
プラグイン サンプルから抜粋した後述のコード リストは、次の 2 ステップの手順により Plug-in Manager に接続する方法を示しています。
この抜粋は、SAMPLES_HOME/integration/samples/bpm_api/plugin/src/com/bea/wlpi/tour/po/plugin ディレクトリの SamplePluginBean.java ファイルから取り出したものです。重要なコード行は、太字で示します。
注意: 初期コンテキストの詳細については、javax.naming.InitialContext() Javadoc を参照してください。
コード リスト 2-1 Plug-in Manager への接続
private final static String PLUGIN_MANAGER_CFG_HOME =
"java:comp/env/ejb/PluginManagerCfg";
.
.
.
private PluginManagerCfg getPluginManagerCfg() throws PluginException {
PluginManagerCfg pm = null;
InitialContext ic = null;
try {
ic = new InitialContext();
PluginManagerCfgHome pmHome =
(PluginManagerCfgHome)ic.lookup(PLUGIN_MANAGER_CFG_HOME);
pm = pmHome.create();
} catch (Exception e) {
e.printStackTrace();
throw new PluginException(SamplePluginConstants.PLUGIN_NAME,
"Unable to get PluginManagerCfg");
} finally {
try {
ic.close();
} catch (Exception e) {
}
}
return pm;
}
プラグイン サンプルの詳細については、BPM プラグイン サンプルを参照してください。
プラグイン フレームワーク バージョンの取得
プラグイン フレームワーク バージョンを取得するには、次のいずれかのメソッドを使用します。
public com.bea.wlpi.common.VersionInfo com.bea.wlpi.server.plugin.PluginManager.getFrameworkVersion(
) throws java.rmi.RemoteException
public com.bea.wlpi.common.VersionInfo com.bea.wlpi.common.plugin.PluginInfo.getPluginFrameworkVersion(
) throws java.rmi.RemoteException
これらのメソッドは、Plug-in Manager バージョンを com.bea.wlpi.common.VersionInfo オブジェクトとして返します。バージョンに関する情報を取得するには、『BPM クライアント アプリケーション プログラミング ガイド』の「値オブジェクトのまとめ」に説明されている VersionInfo オブジェクト メソッドを使用します。
たとえば、次のコードは、PluginManager オブジェクト メソッドを使用して Plug-in Manager バージョンを取得し、その情報を version オブジェクトに保存します。この例では、pm は PluginManager EJB への EJBObject 参照を表します。
VersionInfo version = pm.getFrameworkVersion();
getFrameworkVersion() メソッドの詳細については、com.bea.wlpi.server.plugin.PluginManager Javadoc を参照してください。getPluginFrameworkVersion() メソッドの詳細については、com.bea.wlpi.common.plugin.PluginInfo Javadoc を参照してください。
プラグイン値オブジェクトの使い方
com.bea.wlpi.common.plugin パッケージは、定義時と実行時の両方でプラグイン オブジェクト データを取得するための Info クラス、すなわち 値オブジェクトを提供します。プロセス エンジンと BPM クライアント アプリケーションは、プラグイン値オブジェクトを使用して、指定されたロケールに関するプラグイン オブジェクト データを要求し、プラグインで表示文字列などのリソースを適切にローカライズできるようにします。
値オブジェクトは、設計クライアントでのリモート クラスのロードに重要な役割を果たします。特に、BPM 設計クライアントは値オブジェクトを使用して、次のことを行います。
リモート クラス ロードの詳細については、プラグイン実装へのアクセスを参照してください。
次の表に、プラグイン オブジェクト データの作成およびアクセスに使用できる値オブジェクトを示します。
次の節では、値オブジェクトの作成および使用方法について説明します。 値オブジェクト コンストラクタ、および関連付けられた get メソッドと set メソッドの詳細については、プラグイン値オブジェクトのまとめを参照してください。値オブジェクトにより共有される一般的特性のリストと、値オブジェクトをソートする方法については、『BPM クライアント アプリケーション プログラミング ガイド』の「値オブジェクトの使用法」を参照してください。 プラグイン値オブジェクトの定義 プラグイン値オブジェクトを定義するには、関連付けられているコンストラクタを使用します。プラグイン値オブジェクトの表に記載された各プラグイン値オブジェクトには、オブジェクト データを作成するためのコンストラクタが 1 つまたは複数用意されています。値オブジェクトを作成するためのコンストラクタの詳細については、プラグイン値オブジェクトのまとめを参照してください。 com.bea.wlpi.common.plugin.PluginCapabilitiesInfo オブジェクトを定義する際には、それぞれのプラグイン コンポーネントについてプラグイン値オブジェクトを渡す必要があります。詳細については、リモート インタフェース プラグイン情報メソッドの表の getPluginCapabilitiesInfo() メソッドの説明を参照してください。 値オブジェクトを作成する場合、次を指定する必要があります。
たとえば、次のコードは、StartInfo オブジェクトを作成し、結果のオブジェクトを si に割り当てます。
si = new StartInfo(SamplePluginConstants.PLUGIN_NAME, 5,
bundle.getString("startOrderName"),
bundle.getString("startOrderDesc"), ICON_BYTE_ARRAY,
SamplePluginConstants.START_CLASSES, orderFieldInfo);
START_CLASSES 配列は、プラグイン開始ノードのためのプラグイン データ、プラグイン パネル、実行時コンポーネント クラス名を定義します。START_CLASSES 配列は、SamplePluginConstants.java クラス ファイル内で次のように定義されます。
final static String[] START_CLASSES = {
START_DATA,
START_PANEL,
START_NODE };
この例では、配列変数値は、SamplePluginConstants.javaファイルで次のように定義されます。
final static String START_NODE =
"com.bea.wlpi.tour.po.plugin.StartNode";
final static String START_DATA =
"com.bea.wlpi.tour.po.plugin.StartNodeData";
final static String START_PANEL =
"com.bea.wlpi.tour.po.plugin.StartNodePanel";
ICON_BYTE_ARRAY 変数は、グラフィカル イメージ(アイコン)のバイト配列表現を指定するもので、Studio インタフェース ビューが有効な場合に、プラグインを表すために Studio により使用されます。
値オブジェクト コンストラクタ、および関連付けられた get メソッドと set メソッドの詳細については、プラグイン値オブジェクトのまとめを参照してください。
オブジェクト データの取得と設定
プラグイン値オブジェクトの表に記載した各プラグイン値オブジェクトは、オブジェクト データの取得および設定のためのさまざまなメソッドを提供します。これらのメソッドの詳細については、プラグイン値オブジェクトのまとめを参照してください。
たとえば、次のコードは、プラグイン開始ノードのための PluginTriggerPanel 実装クラスを取得し、それを startpanel 文字列に保存します。
java.lang.String startpanel = si.getClassName(KEY_PANEL);
この例では、si は、プラグイン開始ノードのための com.bea.wlpi.common.plugin.StartInfo 値オブジェクトに対する参照を表します。
プラグイン値オブジェクト メソッドの詳細については、プラグイン値オブジェクトのまとめを参照してください。
Plug-in Manager からの切断
BPM Plug-in Manager から切断するには、次の手順を実行します。
![]() |
![]() |
![]() |
![]() |
||
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |