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.
Reference in New Issue
Block a user