public static HistoricDecisionInputInstanceDto fromHistoricDecisionInputInstance(HistoricDecisionInputInstance historicDecisionInputInstance) { HistoricDecisionInputInstanceDto dto = new HistoricDecisionInputInstanceDto(); dto.id = historicDecisionInputInstance.getId(); dto.decisionInstanceId = historicDecisionInputInstance.getDecisionInstanceId(); dto.clauseId = historicDecisionInputInstance.getClauseId(); dto.clauseName = historicDecisionInputInstance.getClauseName(); dto.createTime = historicDecisionInputInstance.getCreateTime(); dto.removalTime = historicDecisionInputInstance.getRemovalTime(); dto.rootProcessInstanceId = historicDecisionInputInstance.getRootProcessInstanceId(); if(historicDecisionInputInstance.getErrorMessage() == null) { VariableValueDto.fromTypedValue(dto, historicDecisionInputInstance.getTypedValue()); } else { dto.errorMessage = historicDecisionInputInstance.getErrorMessage(); dto.type = VariableValueDto.toRestApiTypeName(historicDecisionInputInstance.getTypeName()); } return dto; }
@Test @Deployment(resources = {DECISION_PROCESS, DECISION_SINGLE_OUTPUT_DMN}) public void decisionInputInstanceProperties() { // given start process and evaluate decision VariableMap variables = Variables.createVariables(); variables.put("input1", null); runtimeService.startProcessInstanceByKey("testProcess", variables); // when List<HistoricDecisionInstance> decisionInstances = optimizeService.getHistoricDecisionInstances(pastDate(), null, 10); // then assertThat(decisionInstances.size(), is(1)); HistoricDecisionInstance decisionInstance = decisionInstances.get(0); List<HistoricDecisionInputInstance> inputs = decisionInstance.getInputs(); assertThat(inputs, is(notNullValue())); assertThat(inputs.size(), is(1)); HistoricDecisionInputInstance input = inputs.get(0); assertThat(input.getDecisionInstanceId(), is(decisionInstance.getId())); assertThat(input.getClauseId(), is("in")); assertThat(input.getClauseName(), is("input")); }
@Test @Deployment(resources = { DECISION_PROCESS, DECISION_SINGLE_OUTPUT_DMN }) public void decisionInputInstanceValue() throws ParseException { SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss.SSS"); Date fixedDate = sdf.parse("01/01/2001 01:01:01.000"); ClockUtil.setCurrentTime(fixedDate); startProcessInstanceAndEvaluateDecision(inputValue); HistoricDecisionInstance historicDecisionInstance = engineRule.getHistoryService().createHistoricDecisionInstanceQuery().includeInputs().singleResult(); List<HistoricDecisionInputInstance> inputInstances = historicDecisionInstance.getInputs(); assertThat(inputInstances.size(), is(1)); HistoricDecisionInputInstance inputInstance = inputInstances.get(0); assertThat(inputInstance.getTypeName(), is(valueType)); assertThat(inputInstance.getValue(), is(inputValue)); assertThat(inputInstance.getCreateTime(), is(fixedDate)); }
@Test @Deployment(resources = { "org/camunda/bpm/engine/test/dmn/deployment/drdDish.dmn11.xml" }) public void shouldNotResolveHistoricDecisionInputInstance() { // given // when decisionService.evaluateDecisionTableByKey("dish-decision", Variables.createVariables() .putValue("temperature", 32) .putValue("dayType", "Weekend")); HistoricDecisionInstance historicDecisionInstance = historyService.createHistoricDecisionInstanceQuery() .rootDecisionInstancesOnly() .includeInputs() .singleResult(); // assume assertThat(historicDecisionInstance, notNullValue()); List<HistoricDecisionInputInstance> historicDecisionInputInstances = historicDecisionInstance.getInputs(); // then assertThat(historicDecisionInputInstances.get(0).getRemovalTime(), nullValue()); assertThat(historicDecisionInputInstances.get(1).getRemovalTime(), nullValue()); }
protected boolean isBinaryValue(HistoricDecisionInputInstance decisionInputInstance) { return AbstractTypedValueSerializer.BINARY_VALUE_TYPES.contains(decisionInputInstance.getTypeName()); }
@Deployment(resources = { DECISION_PROCESS, DECISION_SINGLE_OUTPUT_DMN }) public void testDisableDecisionInputInstanceByteValue() { byte[] bytes = "object".getBytes(); startProcessInstanceAndEvaluateDecision(bytes); HistoricDecisionInstance historicDecisionInstance = historyService.createHistoricDecisionInstanceQuery().includeInputs().disableBinaryFetching().singleResult(); List<HistoricDecisionInputInstance> inputs = historicDecisionInstance.getInputs(); assertThat(inputs.size(), is(1)); HistoricDecisionInputInstance input = inputs.get(0); assertThat(input.getTypeName(), is("bytes")); assertThat(input.getValue(), is(nullValue())); }
@Test @Deployment(resources = { "org/camunda/bpm/engine/test/dmn/deployment/drdDish.dmn11.xml" }) public void shouldNotResolveHistoricDecisionInputInstance() { // given // when decisionService.evaluateDecisionTableByKey("dish-decision", Variables.createVariables() .putValue("temperature", 32) .putValue("dayType", "Weekend")); HistoricDecisionInstance historicDecisionInstance = historyService.createHistoricDecisionInstanceQuery() .rootDecisionInstancesOnly() .includeInputs() .singleResult(); // assume assertThat(historicDecisionInstance, notNullValue()); List<HistoricDecisionInputInstance> historicDecisionInputInstances = historicDecisionInstance.getInputs(); // then assertThat(historicDecisionInputInstances.get(0).getRootProcessInstanceId(), nullValue()); assertThat(historicDecisionInputInstances.get(1).getRootProcessInstanceId(), nullValue()); }
private void collectHistoricDecisionInputIds(List<HistoricDecisionInstance> historicDecisionInstances, List<String> historicDecisionInputIds, List<String> inputByteArrayIds) { for (HistoricDecisionInstance historicDecisionInstance : historicDecisionInstances) { for (HistoricDecisionInputInstance inputInstanceEntity : historicDecisionInstance.getInputs()) { historicDecisionInputIds.add(inputInstanceEntity.getId()); final String byteArrayValueId = ((HistoricDecisionInputInstanceEntity) inputInstanceEntity).getByteArrayValueId(); if (byteArrayValueId != null) { inputByteArrayIds.add(byteArrayValueId); } } } assertEquals(PROCESS_INSTANCE_COUNT, historicDecisionInputIds.size()); }
@Deployment(resources = { DECISION_PROCESS, DECISION_SINGLE_OUTPUT_DMN }) public void testDecisionInputInstanceProperties() { startProcessInstanceAndEvaluateDecision(); HistoricDecisionInstance historicDecisionInstance = historyService.createHistoricDecisionInstanceQuery().includeInputs().singleResult(); List<HistoricDecisionInputInstance> inputs = historicDecisionInstance.getInputs(); assertThat(inputs, is(notNullValue())); assertThat(inputs.size(), is(1)); HistoricDecisionInputInstance input = inputs.get(0); assertThat(input.getDecisionInstanceId(), is(historicDecisionInstance.getId())); assertThat(input.getClauseId(), is("in")); assertThat(input.getClauseName(), is("input")); }
@Test @Deployment(resources = { DECISION_PROCESS, DECISION_SINGLE_OUTPUT_DMN }) public void decisionInputInstanceValue() throws ParseException { SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss.SSS"); Date fixedDate = sdf.parse("01/01/2001 01:01:01.000"); ClockUtil.setCurrentTime(fixedDate); startProcessInstanceAndEvaluateDecision(inputValue); HistoricDecisionInstance historicDecisionInstance = engineRule.getHistoryService().createHistoricDecisionInstanceQuery().includeInputs().singleResult(); List<HistoricDecisionInputInstance> inputInstances = historicDecisionInstance.getInputs(); assertThat(inputInstances.size(), is(1)); HistoricDecisionInputInstance inputInstance = inputInstances.get(0); assertThat(inputInstance.getTypeName(), is(valueType)); assertThat(inputInstance.getValue(), is(inputValue)); assertThat(inputInstance.getCreateTime(), is(fixedDate)); }
@Test @Deployment(resources = { "org/camunda/bpm/engine/test/dmn/deployment/drdDish.dmn11.xml" }) public void shouldResolveStandaloneHistoricDecisionInputInstance() { // given ClockUtil.setCurrentTime(START_DATE); DecisionDefinition decisionDefinition = repositoryService.createDecisionDefinitionQuery() .decisionDefinitionKey("dish-decision") .singleResult(); repositoryService.updateDecisionDefinitionHistoryTimeToLive(decisionDefinition.getId(), 5); // when decisionService.evaluateDecisionTableByKey("dish-decision", Variables.createVariables() .putValue("temperature", 32) .putValue("dayType", "Weekend")); HistoricDecisionInstance historicDecisionInstance = historyService.createHistoricDecisionInstanceQuery() .rootDecisionInstancesOnly() .includeInputs() .singleResult(); // assume assertThat(historicDecisionInstance, notNullValue()); List<HistoricDecisionInputInstance> historicDecisionInputInstances = historicDecisionInstance.getInputs(); Date removalTime = addDays(START_DATE, 5); // then assertThat(historicDecisionInputInstances.get(0).getRemovalTime(), is(removalTime)); assertThat(historicDecisionInputInstances.get(1).getRemovalTime(), is(removalTime)); }
protected boolean isBinaryValue(HistoricDecisionInputInstance decisionInputInstance) { return AbstractTypedValueSerializer.BINARY_VALUE_TYPES.contains(decisionInputInstance.getTypeName()); }
@Deployment(resources = { DECISION_PROCESS, DECISION_SINGLE_OUTPUT_DMN }) public void testDisableDecisionInputInstanceByteValue() { byte[] bytes = "object".getBytes(); startProcessInstanceAndEvaluateDecision(bytes); HistoricDecisionInstance historicDecisionInstance = historyService.createHistoricDecisionInstanceQuery().includeInputs().disableBinaryFetching().singleResult(); List<HistoricDecisionInputInstance> inputs = historicDecisionInstance.getInputs(); assertThat(inputs.size(), is(1)); HistoricDecisionInputInstance input = inputs.get(0); assertThat(input.getTypeName(), is("bytes")); assertThat(input.getValue(), is(nullValue())); }
@Test @Deployment(resources = { "org/camunda/bpm/engine/test/dmn/deployment/drdDish.dmn11.xml" }) public void shouldResolveHistoricDecisionInputInstance() { // given testRule.deploy(Bpmn.createExecutableProcess(CALLING_PROCESS_KEY) .startEvent() .businessRuleTask() .camundaDecisionRef("dish-decision") .endEvent().done()); // when ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(CALLING_PROCESS_KEY, Variables.createVariables() .putValue("temperature", 32) .putValue("dayType", "Weekend")); HistoricDecisionInstance historicDecisionInstance = historyService.createHistoricDecisionInstanceQuery() .rootDecisionInstancesOnly() .includeInputs() .singleResult(); // assume assertThat(historicDecisionInstance, notNullValue()); List<HistoricDecisionInputInstance> historicDecisionInputInstances = historicDecisionInstance.getInputs(); // then assertThat(historicDecisionInputInstances.get(0).getRootProcessInstanceId(), is(processInstance.getProcessInstanceId())); assertThat(historicDecisionInputInstances.get(1).getRootProcessInstanceId(), is(processInstance.getProcessInstanceId())); }
private void collectHistoricDecisionInputIds(List<HistoricDecisionInstance> historicDecisionInstances, List<String> historicDecisionInputIds, List<String> inputByteArrayIds) { for (HistoricDecisionInstance historicDecisionInstance : historicDecisionInstances) { for (HistoricDecisionInputInstance inputInstanceEntity : historicDecisionInstance.getInputs()) { historicDecisionInputIds.add(inputInstanceEntity.getId()); final String byteArrayValueId = ((HistoricDecisionInputInstanceEntity) inputInstanceEntity).getByteArrayValueId(); if (byteArrayValueId != null) { inputByteArrayIds.add(byteArrayValueId); } } } assertEquals(PROCESS_INSTANCE_COUNT, historicDecisionInputIds.size()); }
public static HistoricDecisionInputInstanceDto fromHistoricDecisionInputInstance(HistoricDecisionInputInstance historicDecisionInputInstance) { HistoricDecisionInputInstanceDto dto = new HistoricDecisionInputInstanceDto(); dto.id = historicDecisionInputInstance.getId(); dto.decisionInstanceId = historicDecisionInputInstance.getDecisionInstanceId(); dto.clauseId = historicDecisionInputInstance.getClauseId(); dto.clauseName = historicDecisionInputInstance.getClauseName(); dto.createTime = historicDecisionInputInstance.getCreateTime(); dto.removalTime = historicDecisionInputInstance.getRemovalTime(); dto.rootProcessInstanceId = historicDecisionInputInstance.getRootProcessInstanceId(); if(historicDecisionInputInstance.getErrorMessage() == null) { VariableValueDto.fromTypedValue(dto, historicDecisionInputInstance.getTypedValue()); } else { dto.errorMessage = historicDecisionInputInstance.getErrorMessage(); dto.type = VariableValueDto.toRestApiTypeName(historicDecisionInputInstance.getTypeName()); } return dto; }
@Deployment(resources = { DECISION_PROCESS, DECISION_SINGLE_OUTPUT_DMN }) public void testDecisionInputInstanceProperties() { startProcessInstanceAndEvaluateDecision(); HistoricDecisionInstance historicDecisionInstance = historyService.createHistoricDecisionInstanceQuery().includeInputs().singleResult(); List<HistoricDecisionInputInstance> inputs = historicDecisionInstance.getInputs(); assertThat(inputs, is(notNullValue())); assertThat(inputs.size(), is(1)); HistoricDecisionInputInstance input = inputs.get(0); assertThat(input.getDecisionInstanceId(), is(historicDecisionInstance.getId())); assertThat(input.getClauseId(), is("in")); assertThat(input.getClauseName(), is("input")); }
@Test @Deployment(resources = { "org/camunda/bpm/engine/test/dmn/deployment/drdDish.dmn11.xml" }) public void shouldResolveHistoricDecisionInputInstance() { // given ClockUtil.setCurrentTime(START_DATE); testRule.deploy(Bpmn.createExecutableProcess(CALLING_PROCESS_KEY) .camundaHistoryTimeToLive(5) .startEvent() .businessRuleTask() .camundaDecisionRef("dish-decision") .endEvent().done()); // when runtimeService.startProcessInstanceByKey(CALLING_PROCESS_KEY, Variables.createVariables() .putValue("temperature", 32) .putValue("dayType", "Weekend")); HistoricDecisionInstance historicDecisionInstance = historyService.createHistoricDecisionInstanceQuery() .rootDecisionInstancesOnly() .includeInputs() .singleResult(); // assume assertThat(historicDecisionInstance, notNullValue()); List<HistoricDecisionInputInstance> historicDecisionInputInstances = historicDecisionInstance.getInputs(); Date removalTime = addDays(START_DATE, 5); // then assertThat(historicDecisionInputInstances.get(0).getRemovalTime(), is(removalTime)); assertThat(historicDecisionInputInstances.get(1).getRemovalTime(), is(removalTime)); }
protected boolean isBinaryValue(HistoricDecisionInputInstance decisionInputInstance) { return AbstractTypedValueSerializer.BINARY_VALUE_TYPES.contains(decisionInputInstance.getTypeName()); }
@Test @Deployment(resources = { "org/camunda/bpm/engine/test/dmn/deployment/drdDish.dmn11.xml" }) public void shouldNotResolveHistoricDecisionInputInstance() { // given // when decisionService.evaluateDecisionTableByKey("dish-decision", Variables.createVariables() .putValue("temperature", 32) .putValue("dayType", "Weekend")); HistoricDecisionInstance historicDecisionInstance = historyService.createHistoricDecisionInstanceQuery() .rootDecisionInstancesOnly() .includeInputs() .singleResult(); // assume assertThat(historicDecisionInstance, notNullValue()); List<HistoricDecisionInputInstance> historicDecisionInputInstances = historicDecisionInstance.getInputs(); // then assertThat(historicDecisionInputInstances.get(0).getRootProcessInstanceId(), nullValue()); assertThat(historicDecisionInputInstances.get(1).getRootProcessInstanceId(), nullValue()); }