このシナリオでは、ヒューマン・タスクを定義するタスク・テンプレートのインスタンスを作成し、タスク・インスタンスを開始する方法を示します。
タスクの名前が既に分かっている場合は、このステップはオプションです。
TaskTemplate[] taskTemplates = task.queryTaskTemplates ("TASK_TEMPL.KIND=TASK_TEMPL.KIND.KIND_HUMAN", "TASK_TEMPL.NAME", new Integer(50), 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 null);
タスク・インスタンスに関連する人に対して作業項目が作成されます。 例えば、潜在的な所有者は、新規タスク・インスタンスを要求できます。
ClientObjectWrapper input2 = task.claim(tkiid); DataObject taskInput = null ; if ( input2.getObject()!= null && input2.getObject() instanceof DataObject ) { taskInput = (DataObject)input2.getObject(); // read the values ... }
タスク・インスタンスが要求される と、タスクの入力メッセージが戻されます。