ワークフロー・インスタンスの作成
ワークフロー・インスタンスの作成は、Launch ステップ・プロセッサーがワークフローを起動するために必要な一連のオペレーションです。
ワークフロー・インスタンスを作成するには、以下の操作を実行するクラスを作成します。
- ワークフロー定義オブジェクトを作成する
- ワークフロー定義オブジェクトを転送する
- 転送が成功したことを検証する
- 転送結果のバージョンを取得する
- ワークフロー・インスタンスを作成する
- ワークフローを起動する
開発を促進するには、LaunchSample 用の API サンプル・コンストラクターを適用することもできます。
ワークフロー定義オブジェクトを作成する
VWWorkflowDefinition.readFromFile() を使用して、オブジェクト・ストア、ファイル・ストア、または Content Services ライブラリー・ファイルからワークフロー定義オブジェクトを作成します。
注: ローカルのワークフロー定義 (*.pep ファイル) が存在している必要があります。VWWorkflowDefinition コンストラクター、または WFDefinitionSample サンプル・クラス用のコンストラクターを使用します。
ワークフロー定義オブジェクトを転送する
ワークフローが既にプロセス・データベースに転送されていて未変更だった場合、転送は不要です。ただし、ワークフローが転送されなかった場合か、ワークフローに変更が加えられた場合は、転送が必要です。
VWSession.transfer() を使用して、ワークフロー定義オブジェクトをプロセス・データベースに転送します。Content Platform Engine (または Content Services) docid をワークフロー定義を識別するパラメーターとして指定します。 次に例を示します。
// ワークフロー定義オブジェクトを転送、2 番目のパラメーターは固有の ID。
VWTransferResult transferResult = m_vwSession.transfer(wflDef, uniqueid, false, true);
転送を検証する
ワークフロー定義オブジェクトをデータベースに転送したら、転送が成功したかどうかを検証してログ記録し、転送エラーを表示します。
if (transferResult.success()) {
m_logger.log("The transfer was successful.")
// ( less significant code . . . )
}
else {
// Display the transfer errors.
String[] errorArray = transferResult.getErrors();
if (errorArray != null)
m_logger.log("¥tThe following transfer errors occurred: ", errorArray);
else
m_logger.log("¥t¥tError messages were not available.");
}
転送結果のバージョンを取得する
VWTransferResult.getVersion() を使用するバージョンを取得し、起動ステップの作成を準備します。
VWSession.createWorkflow() を使用するワークフローを作成する場合、VWTransferResult.getVersion() から返されるバージョン文字列を VWStepElement 呼び出しに対する引数として使用します。
ワークフロー・インスタンスを作成する
VWSession.createWorkflow() を使用するワークフローのインスタンスを作成します。VWSession.createWorkflow() は、ワークフローの起動ステップを表す VWStepElement オブジェクトを返します。
VWStepElement.setComment() を使用すると、この起動ステップにラベルを付けることができます。 次に例を示します。
launchStep = m_vwSession.createWorkflow(vwVersion);
launchStep.setComment("This is a sample workflow Launch step comment");
「ワークフロー・データの更新」も参照してください。
ワークフローを起動する
Launch ステップ・プロセッサーに必要な最後のオペレーションは、ワークフローの起動です。
VWStepElement.doDispatch を使用して、ワークフローを起動します。doDispatch() メソッドは、データベースに対する変更を保存し、ワーク・オブジェクトをワークフロー定義に定義されている次のステップにディスパッチします。保存された変更は、ステップ・エレメントに関連付けられたワーク・オブジェクトに加えられた変更です。