# camunda-demo **Repository Path**: h_deng_study/camunda-demo ## Basic Information - **Project Name**: camunda-demo - **Description**: No description available - **Primary Language**: Java - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-07-16 - **Last Updated**: 2025-09-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README @Test public void createProcessInstanceByKey() { String processInstanceByKey = "leave"; String activityId = "Activity_1r8r4jn"; ProcessInstantiationBuilder processInstantiationBuilder = runtimeService.createProcessInstanceByKey(processInstanceByKey); ProcessInstance processInstance = processInstantiationBuilder.businessKey("001") //某节点之前开始 .startBeforeActivity(activityId) .execute(); System.out.println(processInstance.getId() + "," + processInstance.getBusinessKey() + "," + processInstance.getProcessDefinitionId()); } @Test public void createProcessInstanceByKey2() { String processInstanceByKey = "leave"; String activityId = "Flow_1c279og"; ProcessInstantiationBuilder processInstantiationBuilder = runtimeService.createProcessInstanceByKey(processInstanceByKey); ProcessInstance processInstance = processInstantiationBuilder.businessKey("001") //从连线开始触发 .startTransition(activityId) .execute(); System.out.println(processInstance.getId() + "," + processInstance.getBusinessKey() + "," + processInstance.getProcessDefinitionId()); } @Test public void createProcessInstanceByKey3() { String processInstanceByKey = "leave"; String activityId = "Activity_0zafxq7"; ProcessInstantiationBuilder processInstantiationBuilder = runtimeService.createProcessInstanceByKey(processInstanceByKey); ProcessInstance processInstance = processInstantiationBuilder.businessKey("001") //某节点之后 .startAfterActivity(activityId) .execute(); System.out.println(processInstance.getId() + "," + processInstance.getBusinessKey() + "," + processInstance.getProcessDefinitionId()); } @Test public void createProcessInstanceByKey4() { String processInstanceByKey = "leave"; String activityId = "Activity_0zafxq7"; //跳过监听器 boolean skipCustomListeners = true; boolean skipIoMappings = true; ProcessInstantiationBuilder processInstantiationBuilder = runtimeService.createProcessInstanceByKey(processInstanceByKey); ProcessInstance processInstance = processInstantiationBuilder.businessKey("001") .startAfterActivity(activityId) .execute(skipCustomListeners, skipIoMappings); System.out.println(processInstance.getId() + "," + processInstance.getBusinessKey() + "," + processInstance.getProcessDefinitionId()); package com.hujha.bpmn.converter; import java.util.Arrays; import java.util.Optional; import org.camunda.bpm.model.bpmn.instance.*; public enum BpmnElementType { // Default UNSPECIFIED(null, null), SequenceFlow("SequenceFlow", SequenceFlow.class), START_EVENT("ApproveStartEvent", StartEvent.class), END_EVENT("EndTerminateEvent", EndEvent.class), // Containers SUB_PROCESS("subProcess", SubProcess.class), EVENT_SUB_PROCESS(null, null), // Events INTERMEDIATE_CATCH_EVENT("intermediateCatchEvent", IntermediateCatchEvent.class), INTERMEDIATE_THROW_EVENT("intermediateThrowEvent", IntermediateThrowEvent.class), BOUNDARY_EVENT("boundaryEvent", BoundaryEvent.class), // Tasks USER_TASK("ApproveUserTask", UserTask.class), SERVICE_TASK("serviceTask", ServiceTask.class), RECEIVE_TASK("receiveTask", ReceiveTask.class), MANUAL_TASK("manualTask", ManualTask.class), // Gateways INCLUSIVE_GATEWAY("inclusiveGateway", InclusiveGateway.class), EXCLUSIVE_GATEWAY("exclusiveGateway", ExclusiveGateway.class), PARALLEL_GATEWAY("parallelGateway", ParallelGateway.class), EVENT_BASED_GATEWAY("eventBasedGateway", EventBasedGateway.class), // Other MULTI_INSTANCE_BODY(null, null), CALL_ACTIVITY("callActivity", CallActivity.class), BUSINESS_RULE_TASK("businessRuleTask", BusinessRuleTask.class), SCRIPT_TASK("scriptTask", ScriptTask.class), SEND_TASK("sendTask", SendTask.class); private final String elementTypeName; private final Class elementTypeClass; private BpmnElementType( final String elementTypeName, final Class elementTypeClass) { this.elementTypeName = elementTypeName; this.elementTypeClass = elementTypeClass; } public Optional getElementTypeName() { return Optional.ofNullable(this.elementTypeName); } public Optional> getElementTypeClass() { return Optional.ofNullable(this.elementTypeClass); } public static BpmnElementType bpmnElementTypeFor(final String elementTypeName) { return Arrays.stream(values()) .filter( bpmnElementType -> bpmnElementType.elementTypeName != null && bpmnElementType.elementTypeName.equals(elementTypeName)) .findFirst() .orElseThrow( () -> new RuntimeException("Unsupported BPMN element of type " + elementTypeName)); } }