发送消息。 调用者必须是接收消息的活动的潜在所有者,也可以是流程实例的管理员。
if ( result.size() > 0 )
{
result.first();
VTID vtid = (VTID)result.getOID(1);
ATID atid = (ATID)result.getOID(2);
ActivityServiceTemplateData activity =
process.getActivityServiceTemplate(vtid,atid);
// create a message for the service to be called
ClientObjectWrapper message =
process.createMessage(vtid,atid,activity.getInputMessageTypeName());
DataObject myMessage = null;
if ( message.getObject()!= null && message.getObject() instanceof DataObject )
{
myMessage = (DataObject)message.getObject();
//set the strings in the message, for example, chocolate is to be ordered
myMessage.setString("Order", "chocolate");
}
// send the message to the waiting activity
process.sendMessage(vtid, atid, message);
}
此操作将指定的消息发送至处于“正在等待”状态的活动服务并传递一些订单数据。
您还可以指定流程实例标识以确保将该消息发送至指定的流程实例。如果未指定流程实例标识,就会将该消息发送至活动服务和由该消息中的关联值标识的流程实例。如果指定了流程实例标识,就会对使用关联值找到的流程实例进行检查,以确保它具有指定的流程实例标识。