- オプション: タスク・テンプレートをリストして、実行する親タスクの名前を探します。
タスクの名前が既に分かっている場合は、このステップはオプションです。
TaskTemplate[] taskTemplates = task.queryTaskTemplates
("TASK_TEMPL.KIND=TASK_TEMPL.KIND.KIND_HUMAN",
"TASK_TEMPL.NAME",
new Integer(50),
(TimeZone)null);
結果は名前でソート
されます。ソート済みのヒューマン・タスク・テンプレートのうちの
最初の 50 個を収容した配列が照会から戻されます。
- 該当する型の入力メッセージを作成します。
TaskTemplate template = taskTemplates[0];
// create a message for the selected task
ClientObjectWrapper input = task.createInputMessage( template.getID());
DataObject myMessage = null ;
if ( input.getObject()!= null && input.getObject() instanceof DataObject )
{
myMessage = (DataObject)input.getObject();
//set the parts in the message, for example, a customer name
myMessage.setString("CustomerName", "Smith");
}
- ヒューマン・タスクを作成し、開始します。この例では、応答ハンドラーは指定されません。
この例では、createAndStartTask メソッドを使用してタスクを作成し、開始します。
TKIID tkiid = task.createAndStartTask( template.getName(),
template.getNamespace(),
input,
(ReplyHandlerWrapper)null);
タスク・インスタンスに関連する人に対して作業項目が作成されます。
例えば、潜在的な所有者は、新規タスク・インスタンスを要求できます。
- タスク・インスタンスを要求します。
ClientObjectWrapper input2 = task.claim(tkiid);
DataObject taskInput = null ;
if ( input2.getObject()!= null && input2.getObject() instanceof DataObject )
{
taskInput = (DataObject)input2.getObject();
// read the values
...
}
タスク・インスタンスが要求される
と、タスクの入力メッセージが戻されます。