過去のデータクエリ
HistoricProcessInstanceQuery query = pe.getHistoryService()
.createHistoricProcessInstanceQuery();
List<HistoricProcessInstance> list = query.list();
for (HistoricProcessInstance hi : list) {
System.out.println(hi.getId());
}
HistoricActivityInstanceQuery query = pe.getHistoryService()
.createHistoricActivityInstanceQuery();
List<HistoricActivityInstance> list = query.list();
for (HistoricActivityInstance hi : list) {
System.out.println(hi.getActivityId());
}
HistoricTaskInstanceQuery query = pe.getHistoryService()
.createHistoricTaskInstanceQuery();
List<HistoricTaskInstance> list = query.list();
for (HistoricTaskInstance hi : list) {
System.out.println(hi.getAssignee());
}
プロセス変数
プロセス変数を設定します
String processDefinitionKey = "variable";
Map<String, Object> variables = new HashMap<String, Object>();
variables.put("key1", "value1");
variables.put("key2", 200);
ProcessInstance pi = pe.getRuntimeService().startProcessInstanceByKey(
processDefinitionKey, variables);
System.out.println(pi.getId());
String taskId = "1206";
Map<String, Object> variables = new HashMap<String, Object>();
variables.put("user", new User(1,"小王"));
pe.getTaskService().complete(taskId, variables);
- RuntimeServiceを提供する方法を使用して
String executionId = "601";
String variableName = "key3";
Object value = "value3";
pe.getRuntimeService().setVariable(executionId , variableName , value);
String taskId = "704";
Map<String, Object> variables = new HashMap<String, Object>();
variables.put("key4", 400);
variables.put("k5", "v5");
pe.getTaskService().setVariables(taskId , variables);
取得プロセス変数
String executionId = "1201";
Map<String, Object> variables = pe.getRuntimeService().getVariables(executionId);
Set<String> set = variables.keySet();
for (String key : set) {
Object value = variables.get(key);
System.out.println(key + " = " + value);
}
String taskId = "1305";
Map<String, Object> variables = pe.getTaskService().getVariables(taskId );
System.out.println(variables);
タスク
- タスクは、個々のタスク、共通タスク、受信タスクに分割し、個々のタスクは、一人で行われ、公共のタスクはプロシージャ呼び出し信号方式によって実行されるタスクを受け、人によって実行されている(のような:テキストメッセージは、通知プロセスを発行しました)
- 公共問い合わせタスク
TaskQuery query = pe.getTaskService().createTaskQuery();
String candidateUser = "李四";
query.taskCandidateUser(candidateUser);
List<Task> list = query.list();
for (Task task : list) {
System.out.println(task.getName());
}
- タスクをピックアップ(パブリックタスクが個人的な作業になります)
String taskId = "1602";
String userId = "王五";
pe.getTaskService().claim(taskId , userId);
- (個人的なタスクは、共通の課題となって)仕事を返します。
String taskId = "1602";
pe.getTaskService().setAssignee(taskId , null);
String executionId = "2101";
pe.getRuntimeService().signal(executionId );
モニター
実行リスナー
- ExecutionListenerは、次のように実装するインタフェースは、メソッドの書き換え通知することクラスを定義します
public class MyExecutionListener implements ExecutionListener {
public void notify(DelegateExecution execution) throws Exception {
System.out.println("自定义的监听器执行了。");
}
}
- 私達はちょうどリスナー設計プロセスで定義されたクラスを追加します
タスクのリスナー
- TaskListenerは、次のように実装するインタフェースは、メソッドの書き換え通知することクラスを定義します
public class MyTaskListener implements TaskListener{
public void notify(DelegateTask delegateTask) {
String assignee = delegateTask.getAssignee();
String eventName = delegateTask.getEventName();
String name = delegateTask.getName();
String processInstanceId = delegateTask.getProcessInstanceId();
Set<String> variableNames = delegateTask.getVariableNames();
for (String key : variableNames) {
Object value = delegateTask.getVariable(key);
System.out.println(key + " = " + value);
}
System.out.println("一个任务["+name+"]被创建了,由["+assignee+"]负责办理");
}
}