Пример #1
0
        public virtual void testQueryByVariableTypeInWithCapitalLetter()
        {
            // given
            IDictionary <string, object> variables1 = new Dictionary <string, object>();

            variables1["stringVar"] = "test";
            variables1["boolVar"]   = true;
            runtimeService.startProcessInstanceByKey("oneTaskProcess", variables1);

            // when
            HistoricDetailQuery query = historyService.createHistoricDetailQuery().variableTypeIn("Boolean");

            // then
            assertEquals(1, query.list().size());
            assertEquals(1, query.count());
            HistoricDetail historicDetail = query.list().get(0);

            if (historicDetail is HistoricVariableUpdate)
            {
                HistoricVariableUpdate variableUpdate = (HistoricVariableUpdate)historicDetail;
                assertEquals(variableUpdate.VariableName, "boolVar");
                assertEquals(variableUpdate.TypeName, "boolean");
            }
            else
            {
                fail("Historic detail should be a variable update!");
            }
        }
Пример #2
0
        public virtual void testHistoricVariableInstanceSetOnProcessInstance()
        {
            // when
            ProcessInstance instance = runtimeService.createProcessInstanceByKey("exclusiveGateway").setVariable("aVar", "aValue").startBeforeActivity("task1").execute();

            ActivityInstance activityInstance = runtimeService.getActivityInstance(instance.Id);

            // then
            HistoricVariableInstance historicVariable = historyService.createHistoricVariableInstanceQuery().variableName("aVar").singleResult();

            assertNotNull(historicVariable);
            assertEquals(instance.Id, historicVariable.ProcessInstanceId);
            assertEquals(activityInstance.Id, historicVariable.ActivityInstanceId);
            assertEquals("aVar", historicVariable.Name);
            assertEquals("aValue", historicVariable.Value);

            HistoricDetail historicDetail = historyService.createHistoricDetailQuery().variableInstanceId(historicVariable.Id).singleResult();

            assertEquals(instance.Id, historicDetail.ProcessInstanceId);
            assertNotNull(historicDetail);
            // TODO: fix if this is not ok due to CAM-3886
            assertEquals(instance.Id, historicDetail.ActivityInstanceId);
            assertTrue(historicDetail is HistoricVariableUpdate);
            assertEquals("aVar", ((HistoricVariableUpdate)historicDetail).VariableName);
            assertEquals("aValue", ((HistoricVariableUpdate)historicDetail).Value);
        }
Пример #3
0
        public virtual void testStartBeforeScopeWithVariablesInHistory()
        {
            ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("subprocess");

            runtimeService.createProcessInstanceModification(processInstance.Id).startBeforeActivity("innerTask").setVariable("procInstVar", "procInstValue").setVariableLocal("localVar", "localValue").execute();

            ActivityInstance updatedTree = runtimeService.getActivityInstance(processInstance.Id);

            HistoricVariableInstance procInstVariable = historyService.createHistoricVariableInstanceQuery().variableName("procInstVar").singleResult();

            assertNotNull(procInstVariable);
            assertEquals(updatedTree.Id, procInstVariable.ActivityInstanceId);
            assertEquals("procInstVar", procInstVariable.Name);
            assertEquals("procInstValue", procInstVariable.Value);

            HistoricDetail procInstanceVarDetail = historyService.createHistoricDetailQuery().variableInstanceId(procInstVariable.Id).singleResult();

            assertNotNull(procInstanceVarDetail);
            // when starting before/after an activity instance, the activity instance id of the
            // execution is null and so is the activity instance id of the historic detail
            assertNull(procInstanceVarDetail.ActivityInstanceId);

            HistoricVariableInstance localVariable = historyService.createHistoricVariableInstanceQuery().variableName("localVar").singleResult();

            assertNotNull(localVariable);
            assertEquals(updatedTree.getActivityInstances("subProcess")[0].Id, localVariable.ActivityInstanceId);
            assertEquals("localVar", localVariable.Name);
            assertEquals("localValue", localVariable.Value);

            HistoricDetail localInstanceVarDetail = historyService.createHistoricDetailQuery().variableInstanceId(localVariable.Id).singleResult();

            assertNotNull(localInstanceVarDetail);
            assertNull(localInstanceVarDetail.ActivityInstanceId);
        }
Пример #4
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Deployment public void testInputMappings()
        public virtual void testInputMappings()
        {
            // given
            string processInstanceId = runtimeService.startProcessInstanceByKey("process").Id;

            HistoricActivityInstanceQuery activityInstanceQuery = historyService.createHistoricActivityInstanceQuery().processInstanceId(processInstanceId);

            string theService1Id = activityInstanceQuery.activityId("theService1").singleResult().Id;
            string theService2Id = activityInstanceQuery.activityId("theService2").singleResult().Id;
            string theTaskId     = activityInstanceQuery.activityId("theTask").singleResult().Id;

            // when (1)
            HistoricVariableInstance firstVariable = historyService.createHistoricVariableInstanceQuery().variableName("firstInputVariable").singleResult();

            // then (1)
            assertEquals(theService1Id, firstVariable.ActivityInstanceId);

            if (processEngineConfiguration.HistoryLevel.Id > ProcessEngineConfigurationImpl.HISTORYLEVEL_AUDIT)
            {
                HistoricDetail firstVariableDetail = historyService.createHistoricDetailQuery().variableUpdates().variableInstanceId(firstVariable.Id).singleResult();
                assertEquals(theService1Id, firstVariableDetail.ActivityInstanceId);
            }

            // when (2)
            HistoricVariableInstance secondVariable = historyService.createHistoricVariableInstanceQuery().variableName("secondInputVariable").singleResult();

            // then (2)
            assertEquals(theService2Id, secondVariable.ActivityInstanceId);

            if (processEngineConfiguration.HistoryLevel.Id > ProcessEngineConfigurationImpl.HISTORYLEVEL_AUDIT)
            {
                HistoricDetail secondVariableDetail = historyService.createHistoricDetailQuery().variableUpdates().variableInstanceId(secondVariable.Id).singleResult();
                assertEquals(theService2Id, secondVariableDetail.ActivityInstanceId);
            }

            // when (3)
            HistoricVariableInstance thirdVariable = historyService.createHistoricVariableInstanceQuery().variableName("thirdInputVariable").singleResult();

            // then (3)
            assertEquals(theTaskId, thirdVariable.ActivityInstanceId);

            if (processEngineConfiguration.HistoryLevel.Id > ProcessEngineConfigurationImpl.HISTORYLEVEL_AUDIT)
            {
                HistoricDetail thirdVariableDetail = historyService.createHistoricDetailQuery().variableUpdates().variableInstanceId(thirdVariable.Id).singleResult();
                assertEquals(theTaskId, thirdVariableDetail.ActivityInstanceId);
            }
        }
Пример #5
0
        public void TestHistoricDetail1()
        {
            HistoricDetail data = new HistoricDetail();

            data.BpmInstanceId     = Guid.NewGuid().ToString();
            data.CreateDate        = new DateTime();
            data.ExecutionId       = Guid.NewGuid().ToString();
            data.Id                = Guid.NewGuid().ToString();
            data.ProcessInstanceId = Guid.NewGuid().ToString();
            data.TaskId            = Guid.NewGuid().ToString();
            Assert.IsNotNull(data.BpmInstanceId);
            Assert.IsNotNull(data.CreateDate);
            Assert.IsNotNull(data.ExecutionId);
            Assert.IsNotNull(data.Id);
            Assert.IsNotNull(data.ProcessInstanceId);
            Assert.IsNotNull(data.TaskId);
        }
Пример #6
0
        public virtual void testStartBeforeAsyncWithVariablesInHistory()
        {
            ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("exclusiveGateway");

            runtimeService.createProcessInstanceModification(processInstance.Id).startBeforeActivity("task2").setVariable("procInstVar", "procInstValue").setVariableLocal("localVar", "localValue").execute();

            ActivityInstance updatedTree = runtimeService.getActivityInstance(processInstance.Id);

            HistoricVariableInstance procInstVariable = historyService.createHistoricVariableInstanceQuery().variableName("procInstVar").singleResult();

            assertNotNull(procInstVariable);
            assertEquals(updatedTree.Id, procInstVariable.ActivityInstanceId);
            assertEquals("procInstVar", procInstVariable.Name);
            assertEquals("procInstValue", procInstVariable.Value);

            HistoricDetail procInstanceVarDetail = historyService.createHistoricDetailQuery().variableInstanceId(procInstVariable.Id).singleResult();

            assertNotNull(procInstanceVarDetail);
            // when starting before/after an activity instance, the activity instance id of the
            // execution is null and so is the activity instance id of the historic detail
            assertNull(procInstanceVarDetail.ActivityInstanceId);

            HistoricVariableInstance localVariable = historyService.createHistoricVariableInstanceQuery().variableName("localVar").singleResult();

            assertNotNull(localVariable);
            // the following is null because localVariable is local on a concurrent execution
            // but the concurrent execution does not execute an activity at the time the variable is set
            assertNull(localVariable.ActivityInstanceId);
            assertEquals("localVar", localVariable.Name);
            assertEquals("localValue", localVariable.Value);

            HistoricDetail localInstanceVarDetail = historyService.createHistoricDetailQuery().variableInstanceId(localVariable.Id).singleResult();

            assertNotNull(localInstanceVarDetail);
            assertNull(localInstanceVarDetail.ActivityInstanceId);

            // end process instance
            completeTasksInOrder("task1");

            Job job = managementService.createJobQuery().singleResult();

            managementService.executeJob(job.Id);

            completeTasksInOrder("task2");
            assertProcessEnded(processInstance.Id);
        }
Пример #7
0
        public static HistoricDetailDto fromHistoricDetail(HistoricDetail historicDetail)
        {
            HistoricDetailDto dto = null;

            if (historicDetail is HistoricFormField)
            {
                HistoricFormField historicFormField = (HistoricFormField)historicDetail;
                dto = HistoricFormFieldDto.fromHistoricFormField(historicFormField);
            }
            else if (historicDetail is HistoricVariableUpdate)
            {
                HistoricVariableUpdate historicVariableUpdate = (HistoricVariableUpdate)historicDetail;
                dto = HistoricVariableUpdateDto.fromHistoricVariableUpdate(historicVariableUpdate);
            }

            fromHistoricDetail(historicDetail, dto);
            return(dto);
        }
Пример #8
0
 protected internal static void fromHistoricDetail(HistoricDetail historicDetail, HistoricDetailDto dto)
 {
     dto.id = historicDetail.Id;
     dto.processDefinitionKey = historicDetail.ProcessDefinitionKey;
     dto.processDefinitionId  = historicDetail.ProcessDefinitionId;
     dto.processInstanceId    = historicDetail.ProcessInstanceId;
     dto.activityInstanceId   = historicDetail.ActivityInstanceId;
     dto.executionId          = historicDetail.ExecutionId;
     dto.taskId            = historicDetail.TaskId;
     dto.caseDefinitionKey = historicDetail.CaseDefinitionKey;
     dto.caseDefinitionId  = historicDetail.CaseDefinitionId;
     dto.caseInstanceId    = historicDetail.CaseInstanceId;
     dto.caseExecutionId   = historicDetail.CaseExecutionId;
     dto.tenantId          = historicDetail.TenantId;
     dto.userOperationId   = historicDetail.UserOperationId;
     dto.time                  = historicDetail.Time;
     dto.removalTime           = historicDetail.RemovalTime;
     dto.rootProcessInstanceId = historicDetail.RootProcessInstanceId;
 }
Пример #9
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void testSetTaskVariablesInServiceTask()
        public virtual void testSetTaskVariablesInServiceTask()
        {
            // given
            BpmnModelInstance bpmnModelInstance = Bpmn.createExecutableProcess(PROCESS_KEY).startEvent().userTask().serviceTask().camundaExpression("${execution.setVariable('foo', 'bar')}").endEvent().done();

            testRule.deploy(bpmnModelInstance);

            identityService.AuthenticatedUserId = "demo";
            runtimeService.startProcessInstanceByKey(PROCESS_KEY);
            Task task = taskService.createTaskQuery().singleResult();

            // when
            taskService.complete(task.Id);

            //then
            HistoricDetail historicDetail = historyService.createHistoricDetailQuery().singleResult();

            // no user operation log id is set for this update, as it is not written as part of the user operation
            assertNull(historicDetail.UserOperationId);
        }
Пример #10
0
        public virtual void testHistoricProcessInstanceAsyncStartEvent()
        {
            // when
            ProcessInstance instance = runtimeService.createProcessInstanceByKey("exclusiveGateway").startBeforeActivity("task2").setVariable("aVar", "aValue").execute();

            // then
            HistoricProcessInstance historicInstance = historyService.createHistoricProcessInstanceQuery().singleResult();

            assertNotNull(historicInstance);
            assertEquals(instance.Id, historicInstance.Id);
            assertNotNull(historicInstance.StartTime);
            assertNull(historicInstance.EndTime);

            // should be the first activity started
            assertEquals("task2", historicInstance.StartActivityId);

            // task2 wasn't entered yet
            assertEquals(0, historyService.createHistoricActivityInstanceQuery().count());

            // history events for variables exist already
            ActivityInstance activityInstance = runtimeService.getActivityInstance(instance.Id);

            HistoricVariableInstance historicVariable = historyService.createHistoricVariableInstanceQuery().variableName("aVar").singleResult();

            assertNotNull(historicVariable);
            assertEquals(instance.Id, historicVariable.ProcessInstanceId);
            assertEquals(activityInstance.Id, historicVariable.ActivityInstanceId);
            assertEquals("aVar", historicVariable.Name);
            assertEquals("aValue", historicVariable.Value);

            HistoricDetail historicDetail = historyService.createHistoricDetailQuery().variableInstanceId(historicVariable.Id).singleResult();

            assertEquals(instance.Id, historicDetail.ProcessInstanceId);
            assertNotNull(historicDetail);
            // TODO: fix if this is not ok due to CAM-3886
            assertNull(historicDetail.ActivityInstanceId);
            assertTrue(historicDetail is HistoricVariableUpdate);
            assertEquals("aVar", ((HistoricVariableUpdate)historicDetail).VariableName);
            assertEquals("aValue", ((HistoricVariableUpdate)historicDetail).Value);
        }
Пример #11
0
        public virtual void testCmmnActivityInstanceIdOnCaseExecution()
        {
            // given
            caseService.createCaseInstanceByKey("oneTaskCase");

            string taskExecutionId = caseService.createCaseExecutionQuery().activityId("PI_HumanTask_1").singleResult().Id;

            // when
            caseService.withCaseExecution(taskExecutionId).setVariableLocal("foo", "bar").execute();

            // then
            HistoricVariableInstance variable = historyService.createHistoricVariableInstanceQuery().variableName("foo").singleResult();

            assertNotNull(variable);
            assertEquals(taskExecutionId, variable.ActivityInstanceId);

            if (processEngineConfiguration.HistoryLevel.Id > ProcessEngineConfigurationImpl.HISTORYLEVEL_AUDIT)
            {
                HistoricDetail variableDetail = historyService.createHistoricDetailQuery().variableUpdates().variableInstanceId(variable.Id).singleResult();
                assertEquals(taskExecutionId, variableDetail.ActivityInstanceId);
            }
        }
Пример #12
0
        public virtual void testStartTransitionWithVariablesInHistory()
        {
            ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("exclusiveGateway");

            runtimeService.createProcessInstanceModification(processInstance.Id).startTransition("flow2").setVariable("procInstVar", "procInstValue").setVariableLocal("localVar", "localValue").execute();

            ActivityInstance updatedTree = runtimeService.getActivityInstance(processInstance.Id);

            HistoricVariableInstance procInstVariable = historyService.createHistoricVariableInstanceQuery().variableName("procInstVar").singleResult();

            assertNotNull(procInstVariable);
            assertEquals(updatedTree.Id, procInstVariable.ActivityInstanceId);
            assertEquals("procInstVar", procInstVariable.Name);
            assertEquals("procInstValue", procInstVariable.Value);

            HistoricDetail procInstanceVarDetail = historyService.createHistoricDetailQuery().variableInstanceId(procInstVariable.Id).singleResult();

            assertNotNull(procInstanceVarDetail);
            assertEquals(updatedTree.Id, procInstVariable.ActivityInstanceId);

            HistoricVariableInstance localVariable = historyService.createHistoricVariableInstanceQuery().variableName("localVar").singleResult();

            assertNotNull(localVariable);
            assertEquals(updatedTree.Id, procInstVariable.ActivityInstanceId);
            assertEquals("localVar", localVariable.Name);
            assertEquals("localValue", localVariable.Value);

            HistoricDetail localInstanceVarDetail = historyService.createHistoricDetailQuery().variableInstanceId(localVariable.Id).singleResult();

            assertNotNull(localInstanceVarDetail);
            // when starting before/after an activity instance, the activity instance id of the
            // execution is null and so is the activity instance id of the historic detail
            assertNull(localInstanceVarDetail.ActivityInstanceId);

            completeTasksInOrder("task1", "task1");
            assertProcessEnded(processInstance.Id);
        }