ビジネス・プロセス内のスタッフ・アクティビティーは、作業項目を通じて、組織内の さまざまな人に割り当てられます。 プロセスが開始されると、潜在的な所有者に対して作業項目が作成されます。
QueryResultSet result = process.query("ACTIVITY.AIID", "ACTIVITY.STATE = ACTIVITY.STATE.STATE_READY AND ACTIVITY.KIND = ACTIVITY.KIND.KIND_STAFF AND WORK_ITEM.REASON = WORK_ITEM.REASON.REASON_POTENTIAL_OWNER", (String)null, (Integer)null, (TimeZone)null);このアクションは、 ログオン・ユーザーが作業することができるアクティビティーが含まれる照会結果セットを戻します。
if (result.size() > 0) { result.first(); AIID aiid = (AIID) result.getOID(1); ClientObjectWrapper input = process.claim(aiid); DataObject activityInput = null ; if ( input.getObject()!= null && input.getObject() instanceof DataObject ) { activityInput = (DataObject)input.getObject(); // read the values ... } }アクティビティーが要求される と、アクティビティーの入力メッセージが戻されます。
ActivityInstanceData activity = process.getActivityInstance(aiid); ClientObjectWrapper output = process.createMessage(aiid, activity.getOutputMessageTypeName()); DataObject myMessage = null ; if ( output.getObject()!= null && output.getObject() instanceof DataObject ) { myMessage = (DataObject)output.getObject(); //set the parts in your message, for example, an order number myMessage.setInt("OrderNo", 4711); } //complete the activity process.complete(aiid, output);このアクションは、オーダー番号が含まれる出力 メッセージを設定します。
//retrieve the faults modeled for the staff activity List faultNames = process.getFaultNames(aiid); //create a message of the appropriate type ClientObjectWrapper myFault = process.createMessage(aiid, faultNames.get(0)); // set the parts in your fault message, for example, an error number DataObject myMessage = null ; if ( myFault.getObject()!= null && input.getObject() instanceof DataObject ) { myMessage = (DataObject)myFault.getObject(); //set the parts in the message, for example, a customer name myMessage.setInt("error",1304); } process.complete(aiid, (String)faultNames.get(0), myFault);このアクションは、アクティビティーを失敗状態または停止状態のいずれかに設定します。 プロセス・モデル内のアクティビティーの continueOnError パラメーターが 真に設定されている場合、アクティビティーは失敗状態に置かれ、ナビゲーションが続行されます。 continueOnError パラメーターが false に設定され、障害が周囲の有効範囲で catch されない場合、そのアクティビティーは停止状態になります。この状態では、強制終了または強制再試行を使用してアクティビティーを修復できます。
(c) Copyright IBM Corporation 2005, 2006. All rights reserved.
(c) Copyright IBM Japan 2006
このインフォメーション・センターでは、Eclipse テクノロジー (http://www.eclipse.org) が採用されています。