Activiti高度なAPI操作

過去のデータクエリ

  • クエリプロセスインスタンス履歴リスト
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";//流程实例id
String variableName = "key3";
Object value = "value3";
pe.getRuntimeService().setVariable(executionId , variableName , value);
  • TaskServiceを提供する方法を使用して
String taskId = "704";
Map<String, Object> variables = new HashMap<String, Object>();
variables.put("key4", 400);
variables.put("k5", "v5");
pe.getTaskService().setVariables(taskId , variables);

取得プロセス変数

  • 使用RuntimeService道GETへ
String executionId = "1201";
Map<String, Object> variables = pe.getRuntimeService().getVariables(executionId);
Set<String> set = variables.keySet();//key2 key1 user
for (String key : set) {
    Object value = variables.get(key);
    System.out.println(key + " = " + value);
}
  • 使用TaskService道GETへ
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+"]负责办理");
	}

}
公開された22元の記事 ウォン称賛15 ビュー10000 +

おすすめ

転載: blog.csdn.net/qq_28566521/article/details/104003429