added TrackVars
This commit is contained in:
+42
@@ -0,0 +1,42 @@
|
|||||||
|
package com.customer.work.service;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
import com.fasterxml.jackson.databind.node.ObjectNode;
|
||||||
|
import org.flowable.eventregistry.api.EventRegistry;
|
||||||
|
import org.flowable.eventregistry.api.model.EventPayloadTypes;
|
||||||
|
import org.flowable.eventregistry.api.runtime.EventPayloadInstance;
|
||||||
|
import org.flowable.eventregistry.impl.runtime.EventInstanceImpl;
|
||||||
|
import org.flowable.eventregistry.impl.runtime.EventPayloadInstanceImpl;
|
||||||
|
import org.flowable.eventregistry.model.EventPayload;
|
||||||
|
import org.flowable.task.service.delegate.DelegateTask;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collection;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
public class TaskListenerService {
|
||||||
|
private final EventRegistry eventRegistry;
|
||||||
|
private final ObjectMapper objectMapper;
|
||||||
|
|
||||||
|
public TaskListenerService(EventRegistry eventRegistry, ObjectMapper objectMapper) {
|
||||||
|
this.eventRegistry = eventRegistry;
|
||||||
|
this.objectMapper = objectMapper;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void throwTaskListenerEvent(String rootCaseId, String eventKey, DelegateTask task, String message) {
|
||||||
|
ObjectNode jsonTask = objectMapper.createObjectNode();
|
||||||
|
jsonTask.put("modelId", task.getTaskDefinitionKey());
|
||||||
|
jsonTask.put("assignee", task.getAssignee());
|
||||||
|
jsonTask.put("name", task.getName());
|
||||||
|
|
||||||
|
Collection<EventPayloadInstance> instances = new ArrayList<>();
|
||||||
|
instances.add(new EventPayloadInstanceImpl(EventPayload.correlation("caseId", EventPayloadTypes.STRING), rootCaseId));
|
||||||
|
instances.add(new EventPayloadInstanceImpl(new EventPayload("taskListenerTask", EventPayloadTypes.JSON), jsonTask));
|
||||||
|
instances.add(new EventPayloadInstanceImpl(new EventPayload("taskListenerMessage", EventPayloadTypes.STRING), message));
|
||||||
|
|
||||||
|
EventInstanceImpl event = new EventInstanceImpl(eventKey, instances, task.getTenantId());
|
||||||
|
eventRegistry.sendSystemEventOutbound(event);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
package com.customer.work.service;
|
||||||
|
|
||||||
|
import org.flowable.engine.RuntimeService;
|
||||||
|
import org.flowable.task.service.delegate.DelegateTask;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
@Component("taskProcessStarter")
|
||||||
|
public class TaskProcessStarter {
|
||||||
|
@Autowired
|
||||||
|
private RuntimeService runtimeService;
|
||||||
|
|
||||||
|
public void start(String processKey, DelegateTask task) {
|
||||||
|
// String processKey = (String) task.getVariable("subProcessKey"); // key from variable
|
||||||
|
|
||||||
|
Map<String, Object> vars = new HashMap<>(task.getVariables()); // carry over existing vars
|
||||||
|
vars.put("originTaskId", task.getId());
|
||||||
|
vars.put("originTaskName", task.getName());
|
||||||
|
|
||||||
|
runtimeService.startProcessInstanceByKey(processKey, vars);
|
||||||
|
// runtimeService.startProcessInstanceById(processKey, vars);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
package com.customer.work.model.test;
|
||||||
|
|
||||||
|
import com.customer.work.model.FlowableModelTest;
|
||||||
|
import com.customer.work.model.FlowableModelTestUtils;
|
||||||
|
import com.fasterxml.jackson.databind.JsonNode;
|
||||||
|
import com.fasterxml.jackson.databind.node.ObjectNode;
|
||||||
|
import org.junit.jupiter.api.Disabled;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
import org.junit.jupiter.params.ParameterizedTest;
|
||||||
|
import org.junit.jupiter.params.provider.Arguments;
|
||||||
|
import org.junit.jupiter.params.provider.MethodSource;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
|
||||||
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
|
@FlowableModelTest
|
||||||
|
public class TrackVarsTest {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
protected FlowableModelTestUtils flowableModelTest;
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@Disabled
|
||||||
|
public void exportApp() {
|
||||||
|
flowableModelTest.exportApp("http://localhost:8106", "andiWS", "trackVarsApp", "admin", "test");
|
||||||
|
}
|
||||||
|
|
||||||
|
private Stream<Arguments> trackVarsProcessTestData() {
|
||||||
|
return flowableModelTest.getJsonArgumentsFromExcel("model/test/TrackVars/trackVars.xlsx");
|
||||||
|
}
|
||||||
|
@ParameterizedTest
|
||||||
|
@MethodSource("trackVarsProcessTestData")
|
||||||
|
public void trackVarsProcessTest(String path, JsonNode argument) {
|
||||||
|
ObjectNode result = flowableModelTest.testJsonExcelRow(path, argument);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Binary file not shown.
Binary file not shown.
@@ -1,64 +0,0 @@
|
|||||||
http://localhost:8105/action-api/action-repository/action-definitions/key/GKB_A003?formId=FRM-ce76b8bf-27a5-11f1-8af0-3ead6594277e&formFieldId=GKB_F004_work-action1
|
|
||||||
|
|
||||||
http://localhost:8105/#/work/assignee/case/CAS-6d2e2764-325b-11f1-9ab1-3aee1b292dd9
|
|
||||||
#/work/assignee/case/{{$response.executionPayload.id}}
|
|
||||||
|
|
||||||
http://localhost:8105/platform-api/channel-definitions/key/DCL_CH002/events
|
|
||||||
|
|
||||||
|
|
||||||
{{endpoints.platform}}/search/query-case-instances/query/DCL_Q001?start={{$start}}&size={{$pageSize}}&sort={{$sort || 'startTime&order=desc'}}&{{$filter}}
|
|
||||||
{{endpoints.platform}}/search/query-case-instances/query/DCL_Q001?caseDefinitionKey=DCL_C001&start={{$start}}&size={{$pageSize}}&sort={{$sort || 'startTime&order=desc'}}&{{$filter}}
|
|
||||||
|
|
||||||
{{endpoints.platform}}/search/query-case-instances/query/DCL_Q001?caseDefinitionKey=DCL_C009&start={{$start}}&size={{$pageSize}}&sort={{$sort || 'startTime&order=desc'}}&{{$filter}}
|
|
||||||
|
|
||||||
${var:eq(payload.startOnHold, true) ? 'hold' : 'sign'}
|
|
||||||
|
|
||||||
http://localhost:8105/action-api/action-repository/action-definitions/AEN-ef8bdf0f-27ae-11f1-ba38-3ead6594277e/execute?scopeId=CAS-5b051448-3740-11f1-81d8-1eb9efb927bf&scopeType=cmmn
|
|
||||||
|
|
||||||
- ${json:addToArray(jsonArray, json:object())}
|
|
||||||
${json:object()}
|
|
||||||
|
|
||||||
${flw.format.formatString('Content %d' , root.versionNum)}
|
|
||||||
|
|
||||||
${root.versions.size() < root.versionNum ? json:addToArray(root.versions, json:object()) : null}
|
|
||||||
|
|
||||||
${cmmnRuntimeService.updateBusinessStatus(root.id, root.versions[root.versionIndex].)}
|
|
||||||
|
|
||||||
${verifyDecision == 'verified' ? cmmnRuntimeService.updateBusinessStatus(root.id, 'verified') : cmmnRuntimeService.updateBusinessStatus(root.id, 'rejected')}
|
|
||||||
|
|
||||||
root.versions[root.versionIndex]
|
|
||||||
|
|
||||||
${root.businessStatus == 'verified' || root.businessStatus == 'verify'}
|
|
||||||
|
|
||||||
${propertyConfigurationService.getProperty('baseUrl', 'baseUrl')}
|
|
||||||
${''.join('/', myBaseUrl, '#/work/assignee/case', root.id, 'task', myTaskId)}
|
|
||||||
|
|
||||||
${myBaseUrl}/#/work/assignee/case/${root.id}/task/myTaskId
|
|
||||||
|
|
||||||
${myBaseUrl}/#/work/assignee/case/${root.id}/task/${myTaskId}
|
|
||||||
|
|
||||||
http://localhost:8105/platform-api/process-instances?includeTranslations=true&createTestDefinition=false&includeNextTaskInfo=true
|
|
||||||
|
|
||||||
|
|
||||||
Document Generation V${root.versionIndex}: ${root.versions[root.versionIndex].documentGeneration}
|
|
||||||
Verify V${root.versionIndex}
|
|
||||||
Released V${root.versionIndex}
|
|
||||||
|
|
||||||
Verify Decision [${root.versionIndex}]: ${verifyDecision} - Overtime Selection: ${overtimeSelection}
|
|
||||||
|
|
||||||
${root.versions[root.versionIndex].documentGeneration}
|
|
||||||
|
|
||||||
Document Generation [${root.versionIndex}]: ${root.versions[root.versionIndex].documentGeneration}
|
|
||||||
|
|
||||||
Sign Decision [${root.versionIndex}]: ${signDecision} - Overtime Selection: ${overtimeSelection}
|
|
||||||
|
|
||||||
${root.versions[root.versionIndex].workOvertime}
|
|
||||||
|
|
||||||
Print Contract [${root.versionIndex}]
|
|
||||||
|
|
||||||
{{endpoints.platform}}/search/query-case-instances/query/DCL_Q001?caseDefinitionKey=DCL_C135&start={{$start}}&size={{$pageSize}}&sort={{$sort || 'startTime&order=desc'}}&{{$filter}}
|
|
||||||
|
|
||||||
|
|
||||||
{{endpoints.platform}}/search/query-process-instances/query/subitemProcessQuery?processDefinitionKey=subitemSubprocess&start={{$start}}&size={{$pageSize}}&sort={{$sort || 'startTime&order=desc'}}&{{$filter}}
|
|
||||||
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user