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", null, null, 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 参数设置为 true,就会使该活动处于“已失败”状态,并且导航将继续进行。如果 continueOnError 参数设置为 false,就会使该活动处于“已停止”状态。在此状态下,可以通过强制终止或强制重试来修复该活动。