activitiワークフロー学習(C)

独占ゲートウェイ

フローチャート作成

ここに画像を挿入説明
各分岐ラインプラス条件ゲートウェイ条件のための排他処理
ここに画像を挿入説明
結果のPNGファイルの保存、完全をフローチャート作成

設計リソースの展開

/**
	 * 部署设计资源 即之前创建的流程设计图
	 */
	@Test
	public void deploy() {
		pe.getRepositoryService().createDeployment().addClasspathResource("MyProcess.png")
				.addClasspathResource("MyProcess.bpmn").name("学生请假-排他网关").deploy();
	}

act_re_deploymentテーブル生成展開プロセス情報

テストを開始

/**
	 * 启动流程实例
	 */
	@Test
	public void start() {
		// 通过id启动 启动时赋予流程执行人即 刚才${}中的值
		//此时act_ru_execution act_ru_task 两张表中有数据
		Map<String, Object> map = new HashMap<>();
		map.put("student", "冯宝宝");
		map.put("time", "请假2天");
		ProcessInstance pi = pe.getRuntimeService().startProcessInstanceByKey("myProcess", map);
	}
  • 地図情報を生成するact_ru_variableテーブルは可変です

フォンは、アプリケーションを完了しました

/**
	 * 完成任务
	 * 此时act_ru_execution act_ru_task 两张表中没有数据
	 * 相对应的 在历史表中有数据
	 */
	@Test
	public void completeTask() {
		Map<String, Object> map = new HashMap<>();
		map.put("day", "2");//流程图 流程连线的判断依据,sta
		pe.getTaskService().complete("32507",map);//通过任务id来完成任务 此处将判断依据传入 
													//这里的id在实际应用中建议和实体类绑定
	}

次のステップ、放置時間決意、関係者への承認に従って。

/**
	 * 启动流程实例
	 */
	@Test
	public void start() {
		// 通过id启动 启动时赋予流程执行人即 刚才${}中的值
		//此时act_ru_execution act_ru_task 两张表中有数据
		Map<String, Object> map = new HashMap<>();
		map.put("student", "冯宝宝");
		map.put("time", "请假2天");
		ProcessInstance pi = pe.getRuntimeService().startProcessInstanceByKey("myProcess", map);
	}

関連する承認を完了

/**
	 * 完成任务
	 * 此时act_ru_execution act_ru_task 两张表中没有数据
	 * 相对应的 在历史表中有数据
	 */
	@Test
	public void completeTask() {
		Map<String, Object> map = new HashMap<>();
		map.put("day", "2");//流程图 流程连线的判断依据,sta
		pe.getTaskService().complete("35007",map);//通过任务id来完成任务 此处将判断依据传入
	}
历史任务id35007
历史任务名称学生请假
历史任务创建时间Wed Jan 22 14:35:08 CST 2020
历史任务结束时间Wed Jan 22 14:36:05 CST 2020
历史任务执行人冯宝宝
历史任务id37504
历史任务名称班长审批
历史任务创建时间Wed Jan 22 14:36:05 CST 2020
历史任务结束时间null
历史任务执行人班长

再度実行する
クエリの歴史

/**
	 * 查看历史任务数据
	 */
	@Test
	public void findHistoryTask() {
		List<HistoricTaskInstance> htis = pe.getHistoryService()
										.createHistoricTaskInstanceQuery()
										.taskId("37504").list();
		htis.forEach(hti->{
			System.out.println("历史任务id"+hti.getId());
			System.out.println("历史任务名称"+hti.getName());
			System.out.println("历史任务创建时间"+hti.getCreateTime());
			System.out.println("历史任务结束时间"+hti.getEndTime());
			System.out.println("历史任务执行人"+hti.getAssignee());
		});
	}
历史任务id37504
历史任务名称班长审批
历史任务创建时间Wed Jan 22 14:36:05 CST 2020
历史任务结束时间Wed Jan 22 14:39:07 CST 2020
历史任务执行人班长

プロセスが終了します

説明

上記のプロセス:

  1. 学生は、のtaskIdの学生がタスクIDを残して埋め、タスクが完了したタスクを完了するために、休暇を残して開始します
  2. 完了すると、学生は履歴データに消えてテーブルを実行するタスクを残します。
  3. タスクが表示されますを実行して、チームのリーダーを承認するタスク、
  4. タスクがここに完成されたときに、承認のためのタスクチームリーダーのIDでのtaskId日に承認の実装、承認の完了を監視
公開された19元の記事 ウォンの賞賛4 ビュー545

おすすめ

転載: blog.csdn.net/qq_44382452/article/details/104069679