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