activiti动态修改流程图

@Override
public Object execute(CommandContext commandContext) {
TaskEntityManager taskEntityManager = commandContext.getTaskEntityManager();
//根据任务id获取任务实例
TaskEntity taskEntity = taskEntityManager.findById(taskId);

    ProcessEngineConfigurationImpl processEngineConfiguration = commandContext.getProcessEngineConfiguration().getProcessEngineConfiguration();
    ManagementService managementService = processEngineConfiguration.getManagementService();

    // 添加节点进行测试: 问题 --> 一个流程添加了节点,新发起一个流程也有了这个节点
    Process mainProcess = managementService.executeCommand(new ProcessGetCmd(taskEntity.getProcessDefinitionId()));
    UserTask testTask = new UserTask();
    testTask.setId("123456");
    testTask.setName("审批人");
    testTask.setAssignee("1");
    mainProcess.addFlowElement(testTask);
    return null;
}

我刚学activiti,不清楚你的问题是什么。
这么添加节点的插入位置在哪,流入和流出不完善吧

在创建流程时,有具体设置流程id嘛?比如:我现在有请假流程和报销流程,则这两个流程的id也是不同的。
可以使用activiti插件,图形化设计流程,设计好以后会自动生成xml文件。

@Test
public void test() {
    //使用内存数据库,创建流程引擎
    ProcessEngine engine = ProcessEngineConfiguration
            .createStandaloneInMemProcessEngineConfiguration().buildProcessEngine();

    //部署
    RepositoryService repositoryService = engine.getRepositoryService();
    repositoryService.createDeployment().addClasspathResource
            ("workflow/diagrams/xx.bpmn")
            .deploy();

    //验证
    ProcessDefinition definition = repositoryService.createProcessDefinitionQuery()
            .singleResult();
    final String key = "firstProcess";
    assertEquals(key, definition.getKey());

    //启动流程并返回实例
    RuntimeService runtimeService = engine.getRuntimeService();
    ProcessInstance instance = runtimeService.startProcessInstanceByKey(key);
    assertNotNull(instance);
    System.out.println("id=" + instance.getId() + ",definitionId=" + instance
            .getProcessDefinitionId());

}


ProcessDefinitionId 流程定义id,流程定义数据在表act_re_procdef表中。可以查看两个流程数据库中的数据分析问题。