提交 90c0028a 编写于 作者: T Tijs Rademakers

Merge pull request #235 from mikedias/boundarymessage

ACT-1739: Added support to Message Boundary Events in Modeler
......@@ -51,6 +51,7 @@ public interface StencilConstants {
final String STENCIL_EVENT_BOUNDARY_TIMER = "BoundaryTimerEvent";
final String STENCIL_EVENT_BOUNDARY_ERROR = "BoundaryErrorEvent";
final String STENCIL_EVENT_BOUNDARY_SIGNAL = "BoundarySignalEvent";
final String STENCIL_EVENT_BOUNDARY_MESSAGE = "BoundaryMessageEvent";
final String STENCIL_EVENT_CATCH_SIGNAL = "CatchSignalEvent";
final String STENCIL_EVENT_CATCH_TIMER = "CatchTimerEvent";
......
......@@ -361,7 +361,21 @@ public abstract class BaseBpmnJsonConverter implements EditorJsonConstants, Sten
} else if (eventDefinition instanceof MessageEventDefinition) {
MessageEventDefinition messageDefinition = (MessageEventDefinition) eventDefinition;
if (StringUtils.isNotEmpty(messageDefinition.getMessageRef())) {
propertiesNode.put(PROPERTY_MESSAGEREF, messageDefinition.getMessageRef());
String messageRef = messageDefinition.getMessageRef();
// remove the namespace from the message id if set
if (messageRef.startsWith(model.getTargetNamespace())) {
messageRef = messageRef.replace(model.getTargetNamespace(), "");
messageRef = messageRef.replaceFirst(":", "");
} else {
for (String prefix : model.getNamespaces().keySet()) {
String namespace = model.getNamespace(prefix);
if (messageRef.startsWith(namespace)) {
messageRef = messageRef.replace(model.getTargetNamespace(), "");
messageRef = prefix + messageRef;
}
}
}
propertiesNode.put(PROPERTY_MESSAGEREF, messageRef);
}
} else if (eventDefinition instanceof SignalEventDefinition) {
......@@ -650,6 +664,10 @@ public abstract class BaseBpmnJsonConverter implements EditorJsonConstants, Sten
return JsonConverterUtil.getPropertyValueAsBoolean(name, objectNode);
}
protected boolean getPropertyValueAsBoolean(String name, JsonNode objectNode, boolean defaultValue) {
return JsonConverterUtil.getPropertyValueAsBoolean(name, objectNode, defaultValue);
}
protected List<String> getPropertyValueAsList(String name, JsonNode objectNode) {
return JsonConverterUtil.getPropertyValueAsList(name, objectNode);
}
......
......@@ -21,6 +21,7 @@ import org.activiti.bpmn.model.ErrorEventDefinition;
import org.activiti.bpmn.model.EventDefinition;
import org.activiti.bpmn.model.FlowElement;
import org.activiti.bpmn.model.GraphicInfo;
import org.activiti.bpmn.model.MessageEventDefinition;
import org.activiti.bpmn.model.SignalEventDefinition;
import org.codehaus.jackson.JsonNode;
import org.codehaus.jackson.node.ArrayNode;
......@@ -42,6 +43,7 @@ public class BoundaryEventJsonConverter extends BaseBpmnJsonConverter {
convertersToBpmnMap.put(STENCIL_EVENT_BOUNDARY_TIMER, BoundaryEventJsonConverter.class);
convertersToBpmnMap.put(STENCIL_EVENT_BOUNDARY_ERROR, BoundaryEventJsonConverter.class);
convertersToBpmnMap.put(STENCIL_EVENT_BOUNDARY_SIGNAL, BoundaryEventJsonConverter.class);
convertersToBpmnMap.put(STENCIL_EVENT_BOUNDARY_MESSAGE, BoundaryEventJsonConverter.class);
}
public static void fillBpmnTypes(Map<Class<? extends BaseElement>, Class<? extends BaseBpmnJsonConverter>> convertersToJsonMap) {
......@@ -61,6 +63,8 @@ public class BoundaryEventJsonConverter extends BaseBpmnJsonConverter {
return STENCIL_EVENT_BOUNDARY_ERROR;
} else if (eventDefinition instanceof SignalEventDefinition) {
return STENCIL_EVENT_BOUNDARY_SIGNAL;
} else if (eventDefinition instanceof MessageEventDefinition) {
return STENCIL_EVENT_BOUNDARY_MESSAGE;
} else {
return STENCIL_EVENT_BOUNDARY_TIMER;
}
......@@ -77,26 +81,27 @@ public class BoundaryEventJsonConverter extends BaseBpmnJsonConverter {
dockersArrayNode.add(dockNode);
flowElementNode.put("dockers", dockersArrayNode);
if (boundaryEvent.isCancelActivity() == false) {
propertiesNode.put(PROPERTY_CANCEL_ACTIVITY, PROPERTY_VALUE_NO);
}
propertiesNode.put(PROPERTY_CANCEL_ACTIVITY, boundaryEvent.isCancelActivity() ? PROPERTY_VALUE_YES : PROPERTY_VALUE_NO);
addEventProperties(boundaryEvent, propertiesNode);
}
protected FlowElement convertJsonToElement(JsonNode elementNode, JsonNode modelNode, Map<String, JsonNode> shapeMap) {
BoundaryEvent boundaryEvent = new BoundaryEvent();
boundaryEvent.setAttachedToRefId(lookForAttachedRef(elementNode.get(EDITOR_SHAPE_ID).asText(), modelNode.get(EDITOR_CHILD_SHAPES)));
boundaryEvent.setCancelActivity(getPropertyValueAsBoolean(PROPERTY_CANCEL_ACTIVITY, elementNode, true));
String stencilId = BpmnJsonConverterUtil.getStencilId(elementNode);
if (STENCIL_EVENT_BOUNDARY_TIMER.equals(stencilId)) {
boundaryEvent.setCancelActivity(getPropertyValueAsBoolean(PROPERTY_CANCEL_ACTIVITY, elementNode));
convertJsonToTimerDefinition(elementNode, boundaryEvent);
} else if (STENCIL_EVENT_BOUNDARY_ERROR.equals(stencilId)) {
boundaryEvent.setCancelActivity(true); //always true
convertJsonToErrorDefinition(elementNode, boundaryEvent);
} else if (STENCIL_EVENT_BOUNDARY_SIGNAL.equals(stencilId)) {
boundaryEvent.setCancelActivity(getPropertyValueAsBoolean(PROPERTY_CANCEL_ACTIVITY, elementNode));
convertJsonToSignalDefinition(elementNode, boundaryEvent);
} else if (STENCIL_EVENT_BOUNDARY_MESSAGE.equals(stencilId)) {
convertJsonToMessageDefinition(elementNode, boundaryEvent);
}
boundaryEvent.setAttachedToRefId(lookForAttachedRef(elementNode.get(EDITOR_SHAPE_ID).asText(), modelNode.get(EDITOR_CHILD_SHAPES)));
return boundaryEvent;
}
......
......@@ -117,6 +117,7 @@ public class BpmnJsonConverter implements EditorJsonConstants, StencilConstants,
DI_CIRCLES.add(STENCIL_EVENT_BOUNDARY_ERROR);
DI_CIRCLES.add(STENCIL_EVENT_BOUNDARY_SIGNAL);
DI_CIRCLES.add(STENCIL_EVENT_BOUNDARY_TIMER);
DI_CIRCLES.add(STENCIL_EVENT_BOUNDARY_MESSAGE);
DI_CIRCLES.add(STENCIL_EVENT_CATCH_MESSAGE);
DI_CIRCLES.add(STENCIL_EVENT_CATCH_SIGNAL);
......@@ -289,10 +290,7 @@ public class BpmnJsonConverter implements EditorJsonConstants, StencilConstants,
pool.setId(BpmnJsonConverterUtil.getElementId(shapeNode));
pool.setName(JsonConverterUtil.getPropertyValueAsString(PROPERTY_NAME, shapeNode));
pool.setProcessRef(JsonConverterUtil.getPropertyValueAsString(PROPERTY_PROCESS_ID, shapeNode));
JsonNode processExecutableNode = JsonConverterUtil.getProperty(PROPERTY_PROCESS_EXECUTABLE, shapeNode);
if (processExecutableNode != null && StringUtils.isNotEmpty(processExecutableNode.asText())) {
pool.setExecutable(JsonConverterUtil.getPropertyValueAsBoolean(PROPERTY_PROCESS_EXECUTABLE, shapeNode));
}
pool.setExecutable(JsonConverterUtil.getPropertyValueAsBoolean(PROPERTY_PROCESS_EXECUTABLE, shapeNode, true));
bpmnModel.getPools().add(pool);
Process process = new Process();
......
......@@ -19,11 +19,19 @@ public class JsonConverterUtil implements EditorJsonConstants, StencilConstants
}
public static boolean getPropertyValueAsBoolean(String name, JsonNode objectNode) {
boolean result = false;
return getPropertyValueAsBoolean(name, objectNode, false);
}
public static boolean getPropertyValueAsBoolean(String name, JsonNode objectNode, boolean defaultValue) {
boolean result = defaultValue;
String stringValue = getPropertyValueAsString(name, objectNode);
if (PROPERTY_VALUE_YES.equalsIgnoreCase(stringValue)) {
result = true;
} else if (PROPERTY_VALUE_NO.equalsIgnoreCase(stringValue)) {
result = false;
}
return result;
}
......
package org.activiti.editor.language;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.assertFalse;
import java.io.InputStream;
import org.activiti.bpmn.model.BpmnModel;
import org.activiti.bpmn.model.Event;
import org.activiti.bpmn.model.EventDefinition;
import org.activiti.bpmn.model.FlowElement;
import org.activiti.editor.language.json.converter.BpmnJsonConverter;
import org.codehaus.jackson.JsonNode;
import org.codehaus.jackson.map.ObjectMapper;
......@@ -24,5 +31,13 @@ public abstract class AbstractConverterTest {
return bpmnModel;
}
protected EventDefinition extractEventDefinition(FlowElement flowElement) {
assertNotNull(flowElement);
assertTrue(flowElement instanceof Event);
Event event = (Event)flowElement;
assertFalse(event.getEventDefinitions().isEmpty());
return event.getEventDefinitions().get(0);
}
protected abstract String getResource();
}
package org.activiti.editor.language;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import org.activiti.bpmn.converter.BpmnXMLConverter;
import org.activiti.bpmn.model.BoundaryEvent;
import org.activiti.bpmn.model.BpmnModel;
import org.activiti.bpmn.model.FlowElement;
import org.activiti.bpmn.model.ErrorEventDefinition;
import org.activiti.bpmn.model.MessageEventDefinition;
import org.activiti.bpmn.model.SignalEventDefinition;
import org.activiti.bpmn.model.TimerEventDefinition;
import org.junit.Test;
......@@ -22,7 +25,6 @@ public class BoundaryEventConverterTest extends AbstractConverterTest {
public void doubleConversionValidation() throws Exception {
BpmnModel bpmnModel = readJsonFile();
bpmnModel = convertToJsonAndBack(bpmnModel);
System.out.println("xml " + new String(new BpmnXMLConverter().convertToXML(bpmnModel), "utf-8"));
validateModel(bpmnModel);
}
......@@ -33,24 +35,26 @@ public class BoundaryEventConverterTest extends AbstractConverterTest {
private void validateModel(BpmnModel model) {
FlowElement errorElement = model.getMainProcess().getFlowElement("errorEvent");
assertTrue(errorElement instanceof BoundaryEvent);
BoundaryEvent errorElement = (BoundaryEvent)model.getMainProcess().getFlowElement("errorEvent");
ErrorEventDefinition errorEvent = (ErrorEventDefinition)extractEventDefinition(errorElement);
assertTrue(errorElement.isCancelActivity()); //always true
assertEquals("errorRef", errorEvent.getErrorCode());
FlowElement signalElement = model.getMainProcess().getFlowElement("signalEvent");
assertTrue(signalElement instanceof BoundaryEvent);
BoundaryEvent signalElement = (BoundaryEvent)model.getMainProcess().getFlowElement("signalEvent");
SignalEventDefinition signalEvent = (SignalEventDefinition)extractEventDefinition(signalElement);
assertFalse(signalElement.isCancelActivity());
assertEquals("signalRef", signalEvent.getSignalRef());
FlowElement timerElement = model.getMainProcess().getFlowElement("timerEvent");
assertTrue(timerElement instanceof BoundaryEvent);
BoundaryEvent messageElement = (BoundaryEvent)model.getMainProcess().getFlowElement("messageEvent");
MessageEventDefinition messageEvent = (MessageEventDefinition)extractEventDefinition(messageElement);
assertFalse(messageElement.isCancelActivity());
assertEquals("messageRef", messageEvent.getMessageRef());
BoundaryEvent errorEvent = (BoundaryEvent) errorElement;
assertTrue(errorEvent.isCancelActivity()); //always true
BoundaryEvent timerElement = (BoundaryEvent)model.getMainProcess().getFlowElement("timerEvent");
TimerEventDefinition timerEvent = (TimerEventDefinition)extractEventDefinition(timerElement);
assertFalse(timerElement.isCancelActivity());
assertEquals("PT5M", timerEvent.getTimeDuration());
BoundaryEvent signalEvent = (BoundaryEvent) signalElement;
assertFalse(signalEvent.isCancelActivity());
BoundaryEvent timerEvent = (BoundaryEvent) timerElement;
assertFalse(timerEvent.isCancelActivity());
}
}
package org.activiti.editor.language;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import org.activiti.bpmn.model.BpmnModel;
import org.activiti.bpmn.model.EventDefinition;
import org.activiti.bpmn.model.FlowElement;
import org.activiti.bpmn.model.IntermediateCatchEvent;
import org.activiti.bpmn.model.MessageEventDefinition;
import org.activiti.bpmn.model.SignalEventDefinition;
import org.activiti.bpmn.model.TimerEventDefinition;
......@@ -55,10 +53,4 @@ public class CatchEventConverterTest extends AbstractConverterTest {
}
private EventDefinition extractEventDefinition(FlowElement messageElement) {
assertNotNull(messageElement);
assertTrue(messageElement instanceof IntermediateCatchEvent);
IntermediateCatchEvent messageEvent = (IntermediateCatchEvent)messageElement;
return messageEvent.getEventDefinitions().get(0);
}
}
{
"resourceId": "canvas",
"properties": {
"name": "CancelActivity",
"documentation": "",
"process_id": "CancelActivity",
"process_author": "",
"process_executable": "Yes",
"process_version": "",
"process_namespace": "http://www.activiti.org/processdef",
"executionlisteners": ""
},
"stencil": {
"id": "BPMNDiagram"
},
"childShapes": [{
"resourceId": "sid-A8989E47-F12C-45F6-9083-0579A76581B0",
"properties": {
"overrideid": "sid-A8989E47-F12C-45F6-9083-0579A76581B0",
"name": "",
"documentation": "",
"formproperties": "{\"totalCount\":0,\"items\":[]}",
"initiator": "",
"formkeydefinition": "",
"executionlisteners": ""
},
"stencil": {
"id": "StartNoneEvent"
},
"childShapes": [],
"outgoing": [{
"resourceId": "sid-CFEB46A7-643C-40C9-B7E4-899C01DF81F8"
}],
"bounds": {
"lowerRight": {
"x": 154,
"y": 196
},
"upperLeft": {
"x": 124,
"y": 166
}
},
"dockers": []
}, {
"resourceId": "sid-F0CFBBC4-5B4A-4FC6-B48D-3A1FD9928F1E",
"properties": {
"overrideid": "sid-F0CFBBC4-5B4A-4FC6-B48D-3A1FD9928F1E",
"name": "Error",
"documentation": "",
"formkeydefinition": "",
"duedatedefinition": "",
"prioritydefinition": "",
"usertaskassignment": "",
"formproperties": "{\"totalCount\":0,\"items\":[]}",
"tasklisteners": "{\"totalCount\":0,\"items\":[]}",
"asynchronousdefinition": "No",
"exclusivedefinition": "Yes",
"looptype": "None",
"multiinstance_sequential": "Yes",
"multiinstance_cardinality": "",
"multiinstance_collection": "",
"multiinstance_variable": "",
"multiinstance_condition": "",
"isforcompensation": "false"
},
"stencil": {
"id": "UserTask"
},
"childShapes": [],
"outgoing": [{
"resourceId": "sid-B65C6FC1-315E-4E68-AFC1-6AF2BE15C211"
}, {
"resourceId": "errorEvent"
}],
"bounds": {
"lowerRight": {
"x": 299,
"y": 221
},
"upperLeft": {
"x": 199,
"y": 141
}
},
"dockers": []
}, {
"resourceId": "sid-CFEB46A7-643C-40C9-B7E4-899C01DF81F8",
"properties": {
"overrideid": "sid-CFEB46A7-643C-40C9-B7E4-899C01DF81F8",
"name": "",
"documentation": "",
"conditionsequenceflow": "",
"defaultflow": "None",
"conditionalflow": "None"
},
"stencil": {
"id": "SequenceFlow"
},
"childShapes": [],
"outgoing": [{
"resourceId": "sid-F0CFBBC4-5B4A-4FC6-B48D-3A1FD9928F1E"
}],
"bounds": {
"lowerRight": {
"x": 198.15625,
"y": 181
},
"upperLeft": {
"x": 154.609375,
"y": 181
}
},
"dockers": [{
"x": 15,
"y": 15
}, {
"x": 50,
"y": 40
}],
"target": {
"resourceId": "sid-F0CFBBC4-5B4A-4FC6-B48D-3A1FD9928F1E"
}
}, {
"resourceId": "sid-66B45DB4-082B-4330-B81E-66BAC97C4A9E",
"properties": {
"overrideid": "sid-66B45DB4-082B-4330-B81E-66BAC97C4A9E",
"name": "Signal",
"documentation": "",
"formkeydefinition": "",
"duedatedefinition": "",
"prioritydefinition": "",
"usertaskassignment": "",
"formproperties": "{\"totalCount\":0,\"items\":[]}",
"tasklisteners": "{\"totalCount\":0,\"items\":[]}",
"asynchronousdefinition": "No",
"exclusivedefinition": "Yes",
"looptype": "None",
"multiinstance_sequential": "Yes",
"multiinstance_cardinality": "",
"multiinstance_collection": "",
"multiinstance_variable": "",
"multiinstance_condition": "",
"isforcompensation": "false"
},
"stencil": {
"id": "UserTask"
},
"childShapes": [],
"outgoing": [{
"resourceId": "sid-092C8E0A-3AFB-45AF-80E7-9A4D1A26A2C3"
}, {
"resourceId": "signalEvent"
}],
"bounds": {
"lowerRight": {
"x": 444,
"y": 221
},
"upperLeft": {
"x": 344,
"y": 141
}
},
"dockers": []
}, {
"resourceId": "sid-B65C6FC1-315E-4E68-AFC1-6AF2BE15C211",
"properties": {
"overrideid": "sid-B65C6FC1-315E-4E68-AFC1-6AF2BE15C211",
"name": "",
"documentation": "",
"conditionsequenceflow": "",
"defaultflow": "None",
"conditionalflow": "None"
},
"stencil": {
"id": "SequenceFlow"
},
"childShapes": [],
"outgoing": [{
"resourceId": "sid-66B45DB4-082B-4330-B81E-66BAC97C4A9E"
}],
"bounds": {
"lowerRight": {
"x": 343.15625,
"y": 181
},
"upperLeft": {
"x": 299.84375,
"y": 181
}
},
"dockers": [{
"x": 50,
"y": 40
}, {
"x": 50,
"y": 40
}],
"target": {
"resourceId": "sid-66B45DB4-082B-4330-B81E-66BAC97C4A9E"
}
}, {
"resourceId": "sid-6FAA94BB-370E-4F90-9C94-6AB0EAF8DF58",
"properties": {
"overrideid": "sid-6FAA94BB-370E-4F90-9C94-6AB0EAF8DF58",
"name": "Timer",
"documentation": "",
"formkeydefinition": "",
"duedatedefinition": "",
"prioritydefinition": "",
"usertaskassignment": "",
"formproperties": "{\"totalCount\":0,\"items\":[]}",
"tasklisteners": "{\"totalCount\":0,\"items\":[]}",
"asynchronousdefinition": "No",
"exclusivedefinition": "Yes",
"looptype": "None",
"multiinstance_sequential": "Yes",
"multiinstance_cardinality": "",
"multiinstance_collection": "",
"multiinstance_variable": "",
"multiinstance_condition": "",
"isforcompensation": "false"
},
"stencil": {
"id": "UserTask"
},
"childShapes": [],
"outgoing": [{
"resourceId": "sid-BA041571-52AB-4DDA-B242-58BB5A105A6E"
}, {
"resourceId": "timerEvent"
}],
"bounds": {
"lowerRight": {
"x": 589,
"y": 221
},
"upperLeft": {
"x": 489,
"y": 141
}
},
"dockers": []
}, {
"resourceId": "sid-092C8E0A-3AFB-45AF-80E7-9A4D1A26A2C3",
"properties": {
"overrideid": "sid-092C8E0A-3AFB-45AF-80E7-9A4D1A26A2C3",
"name": "",
"documentation": "",
"conditionsequenceflow": "",
"defaultflow": "None",
"conditionalflow": "None"
},
"stencil": {
"id": "SequenceFlow"
},
"childShapes": [],
"outgoing": [{
"resourceId": "sid-6FAA94BB-370E-4F90-9C94-6AB0EAF8DF58"
}],
"bounds": {
"lowerRight": {
"x": 488.15625,
"y": 181
},
"upperLeft": {
"x": 444.84375,
"y": 181
}
},
"dockers": [{
"x": 50,
"y": 40
}, {
"x": 50,
"y": 40
}],
"target": {
"resourceId": "sid-6FAA94BB-370E-4F90-9C94-6AB0EAF8DF58"
}
}, {
"resourceId": "sid-8CEA4E49-4FB1-4003-98CE-6B6536B68E37",
"properties": {
"overrideid": "sid-8CEA4E49-4FB1-4003-98CE-6B6536B68E37",
"name": "",
"documentation": "",
"executionlisteners": ""
},
"stencil": {
"id": "EndNoneEvent"
},
"childShapes": [],
"outgoing": [],
"bounds": {
"lowerRight": {
"x": 662,
"y": 195
},
"upperLeft": {
"x": 634,
"y": 167
}
},
"dockers": []
}, {
"resourceId": "sid-BA041571-52AB-4DDA-B242-58BB5A105A6E",
"properties": {
"overrideid": "sid-BA041571-52AB-4DDA-B242-58BB5A105A6E",
"name": "",
"documentation": "",
"conditionsequenceflow": "",
"defaultflow": "None",
"conditionalflow": "None"
},
"stencil": {
"id": "SequenceFlow"
},
"childShapes": [],
"outgoing": [{
"resourceId": "sid-8CEA4E49-4FB1-4003-98CE-6B6536B68E37"
}],
"bounds": {
"lowerRight": {
"x": 633.375,
"y": 181
},
"upperLeft": {
"x": 589.390625,
"y": 181
}
},
"dockers": [{
"x": 50,
"y": 40
}, {
"x": 14,
"y": 14
}],
"target": {
"resourceId": "sid-8CEA4E49-4FB1-4003-98CE-6B6536B68E37"
}
}, {
"resourceId": "errorEvent",
"properties": {
"cancelactivity": "No",
"overrideid": "errorEvent",
"name": "",
"documentation": "",
"errorref": "errorRef"
},
"stencil": {
"id": "BoundaryErrorEvent"
},
"childShapes": [],
"outgoing": [],
"bounds": {
"lowerRight": {
"x": 314.8012179144882,
"y": 227.35323980563692
},
"upperLeft": {
"x": 284.8012179144882,
"y": 197.35323980563692
}
},
"dockers": [{
"x": 91.15795302422589,
"y": 65.40165815020094
}]
}, {
"resourceId": "timerEvent",
"properties": {
"overrideid": "timerEvent",
"name": "",
"documentation": "",
"cancelactivity": "no",
"timerdurationdefinition": "PT5M",
"timerdatedefinition": "",
"timercycledefinition": ""
},
"stencil": {
"id": "BoundaryTimerEvent"
},
"childShapes": [],
"outgoing": [],
"bounds": {
"lowerRight": {
"x": 604.5976124197048,
"y": 230.5415236336683
},
"upperLeft": {
"x": 574.5976124197048,
"y": 200.5415236336683
}
},
"dockers": [{
"x": 87.2628288572098,
"y": 65.43825334982392
}]
}, {
"resourceId": "signalEvent",
"properties": {
"overrideid": "signalEvent",
"name": "",
"documentation": "",
"cancelactivity": "No",
"signalref": "signalRef"
},
"stencil": {
"id": "BoundarySignalEvent"
},
"childShapes": [],
"outgoing": [],
"bounds": {
"lowerRight": {
"x": 459.597612419705,
"y": 230.5415236336683
},
"upperLeft": {
"x": 429.597612419705,
"y": 200.5415236336683
}
},
"dockers": [{
"x": 87.26282885720991,
"y": 65.4382533498239
}]
}]
}
\ No newline at end of file
{"resourceId":"canvas","properties":{"name":"","documentation":"","process_id":"BoundaryProcess","process_author":"","process_executable":"Yes","process_version":"","process_namespace":"http://www.activiti.org/processdef","processresource":"","executionlisteners":""},"stencil":{"id":"BPMNDiagram"},"childShapes":[{"resourceId":"sid-F3E937F5-E2AA-40B2-92F6-6CA3DD16AE42","properties":{"overrideid":"","name":"","documentation":"","formproperties":"","initiator":"","formkeydefinition":"","executionlisteners":""},"stencil":{"id":"StartNoneEvent"},"childShapes":[],"outgoing":[{"resourceId":"sid-28B16048-3F64-4C15-B237-5156A5ED6EF8"}],"bounds":{"lowerRight":{"x":198,"y":178},"upperLeft":{"x":168,"y":148}},"dockers":[]},{"resourceId":"sid-F21E9F4D-EA19-44DF-B1D3-14663A809CAE","properties":{"overrideid":"","name":"BoundaryTask","documentation":"","formkeydefinition":"","duedatedefinition":"","prioritydefinition":"","estimatedduration":"","usertaskresource":"","usertaskassignment":"","formproperties":"","tasklisteners":"","asynchronousdefinition":"No","exclusivedefinition":"Yes","looptype":"None","multiinstance_sequential":"Yes","multiinstance_cardinality":"","multiinstance_collection":"","multiinstance_variable":"","multiinstance_condition":"","isforcompensation":"false"},"stencil":{"id":"UserTask"},"childShapes":[],"outgoing":[{"resourceId":"sid-5C99C4CD-ED35-4581-ADAA-609A935479AA"},{"resourceId":"sid-3752F2E2-83DA-43EC-9E37-877BB578D84F"},{"resourceId":"sid-9B824105-7FB9-4ED6-B05A-DEC03616129A"},{"resourceId":"sid-DA1374FF-562E-43E9-9CDA-23B9D88FDA32"},{"resourceId":"sid-616FDD57-A1DF-4BCB-A363-14DB948FEC79"}],"bounds":{"lowerRight":{"x":343,"y":203},"upperLeft":{"x":243,"y":123}},"dockers":[]},{"resourceId":"sid-28B16048-3F64-4C15-B237-5156A5ED6EF8","properties":{"overrideid":"","name":"","documentation":"","conditionsequenceflow":"","defaultflow":"None","conditionalflow":"None","probability":""},"stencil":{"id":"SequenceFlow"},"childShapes":[],"outgoing":[{"resourceId":"sid-F21E9F4D-EA19-44DF-B1D3-14663A809CAE"}],"bounds":{"lowerRight":{"x":242.15625,"y":163},"upperLeft":{"x":198.609375,"y":163}},"dockers":[{"x":15,"y":15},{"x":50,"y":40}],"target":{"resourceId":"sid-F21E9F4D-EA19-44DF-B1D3-14663A809CAE"}},{"resourceId":"sid-5C99C4CD-ED35-4581-ADAA-609A935479AA","properties":{"overrideid":"errorEvent","name":"","documentation":"","errorref":"errorRef"},"stencil":{"id":"BoundaryErrorEvent"},"childShapes":[],"outgoing":[{"resourceId":"sid-E94169B7-65C1-487C-9A3A-0B97E457826A"}],"bounds":{"lowerRight":{"x":282.58718855999683,"y":137.3395016959949},"upperLeft":{"x":252.58718855999683,"y":107.33950169599491}},"dockers":[{"x":30,"y":8}]},{"resourceId":"sid-3752F2E2-83DA-43EC-9E37-877BB578D84F","properties":{"overrideid":"signalEvent","name":"","documentation":"","cancelactivity":"no","signalref":"signalRef"},"stencil":{"id":"BoundarySignalEvent"},"childShapes":[],"outgoing":[{"resourceId":"sid-00D945E4-C50A-4D09-8C64-DF62B5DCFDD6"}],"bounds":{"lowerRight":{"x":331.42647844739906,"y":137.84032266160156},"upperLeft":{"x":301.42647844739906,"y":107.84032266160156}},"dockers":[{"x":71,"y":4}]},{"resourceId":"sid-9B824105-7FB9-4ED6-B05A-DEC03616129A","properties":{"overrideid":"messageEvent","name":"","documentation":"","cancelactivity":"no","messageref":"messageRef"},"stencil":{"id":"BoundaryMessageEvent"},"childShapes":[],"outgoing":[{"resourceId":"sid-EBB534C3-3C27-44C3-8A45-536B2AC87CC3"}],"bounds":{"lowerRight":{"x":335.4952158555515,"y":218.09718978934598},"upperLeft":{"x":305.4952158555515,"y":188.09718978934598}},"dockers":[{"x":74,"y":75}]},{"resourceId":"sid-DA1374FF-562E-43E9-9CDA-23B9D88FDA32","properties":{"overrideid":"timerEvent","name":"","documentation":"","cancelactivity":"no","timerdurationdefinition":"PT5M","timerdatedefinition":"","timercycledefinition":""},"stencil":{"id":"BoundaryTimerEvent"},"childShapes":[],"outgoing":[{"resourceId":"sid-6F59A7D3-5C22-449E-B996-D4A4697C0BB8"}],"bounds":{"lowerRight":{"x":285.1729854536931,"y":218.46607124118043},"upperLeft":{"x":255.17298545369312,"y":188.46607124118043}},"dockers":[{"x":28,"y":79}]},{"resourceId":"sid-F51815EA-3AA1-4B45-B6FC-DFEB267B9DB0","properties":{"overrideid":"","name":"","documentation":"","executionlisteners":""},"stencil":{"id":"EndNoneEvent"},"childShapes":[],"outgoing":[],"bounds":{"lowerRight":{"x":416,"y":177},"upperLeft":{"x":388,"y":149}},"dockers":[]},{"resourceId":"sid-616FDD57-A1DF-4BCB-A363-14DB948FEC79","properties":{"overrideid":"","name":"","documentation":"","conditionsequenceflow":"","defaultflow":"None","conditionalflow":"None","probability":""},"stencil":{"id":"SequenceFlow"},"childShapes":[],"outgoing":[{"resourceId":"sid-F51815EA-3AA1-4B45-B6FC-DFEB267B9DB0"}],"bounds":{"lowerRight":{"x":387.375,"y":163},"upperLeft":{"x":343.390625,"y":163}},"dockers":[{"x":50,"y":40},{"x":14,"y":14}],"target":{"resourceId":"sid-F51815EA-3AA1-4B45-B6FC-DFEB267B9DB0"}},{"resourceId":"sid-8495B25D-0B0F-44BF-8982-1160711D54DF","properties":{"overrideid":"","name":"","documentation":"","executionlisteners":""},"stencil":{"id":"EndNoneEvent"},"childShapes":[],"outgoing":[],"bounds":{"lowerRight":{"x":281.58718855999683,"y":73},"upperLeft":{"x":253.58718855999683,"y":45}},"dockers":[]},{"resourceId":"sid-E94169B7-65C1-487C-9A3A-0B97E457826A","properties":{"overrideid":"","name":"","documentation":"","conditionsequenceflow":"","defaultflow":"None","conditionalflow":"None","probability":""},"stencil":{"id":"SequenceFlow"},"childShapes":[],"outgoing":[{"resourceId":"sid-8495B25D-0B0F-44BF-8982-1160711D54DF"}],"bounds":{"lowerRight":{"x":267.58718855999683,"y":106.4943059859961},"upperLeft":{"x":267.58718855999683,"y":73.85551599599887}},"dockers":[{"x":15,"y":15},{"x":14,"y":14}],"target":{"resourceId":"sid-8495B25D-0B0F-44BF-8982-1160711D54DF"}},{"resourceId":"sid-EDF2257D-D0BA-44B3-9C5E-CCD880CABE67","properties":{"overrideid":"","name":"","documentation":"","executionlisteners":""},"stencil":{"id":"EndNoneEvent"},"childShapes":[],"outgoing":[],"bounds":{"lowerRight":{"x":330.42647844739906,"y":73},"upperLeft":{"x":302.42647844739906,"y":45}},"dockers":[]},{"resourceId":"sid-00D945E4-C50A-4D09-8C64-DF62B5DCFDD6","properties":{"overrideid":"","name":"","documentation":"","conditionsequenceflow":"","defaultflow":"None","conditionalflow":"None","probability":""},"stencil":{"id":"SequenceFlow"},"childShapes":[],"outgoing":[{"resourceId":"sid-EDF2257D-D0BA-44B3-9C5E-CCD880CABE67"}],"bounds":{"lowerRight":{"x":316.42647844739906,"y":106.87774703778868},"upperLeft":{"x":316.42647844739906,"y":73.96507058222535}},"dockers":[{"x":15,"y":15},{"x":14,"y":14}],"target":{"resourceId":"sid-EDF2257D-D0BA-44B3-9C5E-CCD880CABE67"}},{"resourceId":"sid-960DE6F3-5A62-4217-A656-B334AFF1E4D5","properties":{"overrideid":"","name":"","documentation":"","executionlisteners":""},"stencil":{"id":"EndNoneEvent"},"childShapes":[],"outgoing":[],"bounds":{"lowerRight":{"x":281.58718855999683,"y":283},"upperLeft":{"x":253.58718855999683,"y":255}},"dockers":[]},{"resourceId":"sid-6F59A7D3-5C22-449E-B996-D4A4697C0BB8","properties":{"overrideid":"","name":"","documentation":"","conditionsequenceflow":"","defaultflow":"None","conditionalflow":"None","probability":""},"stencil":{"id":"SequenceFlow"},"childShapes":[],"outgoing":[{"resourceId":"sid-960DE6F3-5A62-4217-A656-B334AFF1E4D5"}],"bounds":{"lowerRight":{"x":269.567915686273,"y":254.6891982553599},"upperLeft":{"x":268.15185525095296,"y":218.80084062267707}},"dockers":[{"x":15,"y":15},{"x":14,"y":14}],"target":{"resourceId":"sid-960DE6F3-5A62-4217-A656-B334AFF1E4D5"}},{"resourceId":"sid-B09A28BB-1E9C-4400-BECB-AE3181B7F018","properties":{"overrideid":"","name":"","documentation":"","executionlisteners":""},"stencil":{"id":"EndNoneEvent"},"childShapes":[],"outgoing":[],"bounds":{"lowerRight":{"x":334.4952158555515,"y":281},"upperLeft":{"x":306.4952158555515,"y":253}},"dockers":[]},{"resourceId":"sid-EBB534C3-3C27-44C3-8A45-536B2AC87CC3","properties":{"overrideid":"","name":"","documentation":"","conditionsequenceflow":"","defaultflow":"None","conditionalflow":"None","probability":""},"stencil":{"id":"SequenceFlow"},"childShapes":[],"outgoing":[{"resourceId":"sid-B09A28BB-1E9C-4400-BECB-AE3181B7F018"}],"bounds":{"lowerRight":{"x":320.4952158555515,"y":252.02126026641943},"upperLeft":{"x":320.4952158555515,"y":219.07441093246803}},"dockers":[{"x":15,"y":15},{"x":14,"y":14}],"target":{"resourceId":"sid-B09A28BB-1E9C-4400-BECB-AE3181B7F018"}}],"bounds":{"lowerRight":{"x":1485,"y":1050},"upperLeft":{"x":0,"y":0}},"stencilset":{"url":"../stencilsets/bpmn2.0/bpmn2.0.json","namespace":"http://b3mn.org/stencilset/bpmn2.0#"},"ssextensions":[]}
\ No newline at end of file
......@@ -1409,6 +1409,17 @@
"propertyPackages" : [ "elementbase", "baseattributes", "cancelactivityattribute", "signalrefdefinition" ],
"roles" : [ "sequence_start", "BoundaryEventsMorph", "IntermediateEventOnActivityBoundary" ]
}, {
"type" : "node",
"id" : "BoundaryMessageEvent",
"title" : "Boundary message event",
"description" : "A boundary event with a message trigger",
"view" : "intermediateevent/message.catching.svg",
"icon" : "catching/message.png",
"groups" : [ "Boundary Events" ],
"propertyPackages" : [ "elementbase", "baseattributes", "cancelactivityattribute", "messagerefdefinition" ],
"roles" : [ "sequence_start", "BoundaryEventsMorph", "IntermediateEventOnActivityBoundary" ]
},
{
"type" : "node",
"id" : "CatchTimerEvent",
"title" : "Intermediate timer catching event",
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册