Squashed 'SpiffWorkflow/' changes from 9d597627..d9fcd45a

d9fcd45a Updating release numbers
e0d04877 Merge pull request #251 from sartography/bugfix/make-data-objects-available-to-prescripts
7d260c36 Merge pull request #252 from sartography/bug/data_object_serializer_fix
3de54d97 Fixing a failing test.
27c5d3e1 A minor fix during deserialization to avoid issues for some users that upgraded between official releases.
250311d6 copy data objects before prescript execution

git-subtree-dir: SpiffWorkflow
git-subtree-split: d9fcd45a384f8376a669cf58677564289d2c661c
This commit is contained in:
jasquat 2022-10-14 15:42:16 -04:00
parent c04049105f
commit cf7e156048
4 changed files with 80 additions and 2 deletions

View File

@ -22,7 +22,7 @@ copyright = '2022, Sartography'
author = 'Sartography'
# The full version, including alpha/beta/rc tags
release = '1.2.0'
# -- General configuration ---------------------------------------------------

View File

@ -13,7 +13,7 @@ HERE = pathlib.Path(__file__).parent
README = (HERE / "README.md").read_text()
setup(name='SpiffWorkflow',
version='1.1.7',
version='1.2.0',
description='A workflow framework and BPMN/DMN Processor',
long_description=README,
long_description_content_type="text/markdown",

View File

@ -17,6 +17,19 @@ class PrescriptPostsciptTest(BaseTestCase):
def testCallActivitySaveRestore(self):
self.call_activity_test(True)
def testDataObject(self):
spec, subprocesses = self.load_workflow_spec('prescript_postscript_data_object.bpmn', 'Process_1')
self.workflow = BpmnWorkflow(spec, subprocesses)
# Set a on the workflow and b in the first task.
self.workflow.data['a'] = 1
self.set_process_data({'b': 2})
ready_tasks = self.workflow.get_tasks(TaskState.READY)
# This execute the same script as task_test
ready_tasks[0].complete()
# a should be removed, b should be unchanged, and c and z should be present (but not x & y)
self.assertDictEqual({'b': 2, 'c': 12, 'z': 6}, ready_tasks[0].data)
def task_test(self, save_restore=False):
spec, subprocesses = self.load_workflow_spec('prescript_postscript.bpmn', 'Process_1')

View File

@ -0,0 +1,65 @@
<?xml version="1.0" encoding="UTF-8"?>
<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:spiffworkflow="http://spiffworkflow.org/bpmn/schema/1.0/core" xmlns:modeler="http://camunda.org/schema/modeler/1.0" id="Definitions_19o7vxg" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="5.0.0" modeler:executionPlatform="Camunda Platform" modeler:executionPlatformVersion="7.17.0">
<bpmn:process id="Process_1" isExecutable="true">
<bpmn:ioSpecification />
<bpmn:startEvent id="Event_1ftsuzw">
<bpmn:outgoing>Flow_1hjrex4</bpmn:outgoing>
</bpmn:startEvent>
<bpmn:task id="Activity_1iqs4li" name="Any Task">
<bpmn:extensionElements>
<spiffworkflow:preScript>x = a * 2
y = b * 2
z = x + y</spiffworkflow:preScript>
<spiffworkflow:postScript>c = z * 2
del x
del y</spiffworkflow:postScript>
</bpmn:extensionElements>
<bpmn:incoming>Flow_1hjrex4</bpmn:incoming>
<bpmn:outgoing>Flow_1xndbxy</bpmn:outgoing>
<bpmn:property id="Property_1bj3qrk" name="__targetRef_placeholder" />
<bpmn:dataInputAssociation id="DataInputAssociation_0qit1wt">
<bpmn:sourceRef>DataObjectReference_15lldo2</bpmn:sourceRef>
<bpmn:targetRef>Property_1bj3qrk</bpmn:targetRef>
</bpmn:dataInputAssociation>
</bpmn:task>
<bpmn:sequenceFlow id="Flow_1hjrex4" sourceRef="Event_1ftsuzw" targetRef="Activity_1iqs4li" />
<bpmn:endEvent id="Event_0c80924">
<bpmn:incoming>Flow_1xndbxy</bpmn:incoming>
</bpmn:endEvent>
<bpmn:sequenceFlow id="Flow_1xndbxy" sourceRef="Activity_1iqs4li" targetRef="Event_0c80924" />
<bpmn:dataObjectReference id="DataObjectReference_15lldo2" name="a" dataObjectRef="a" />
<bpmn:dataObject id="a" />
</bpmn:process>
<bpmndi:BPMNDiagram id="BPMNDiagram_1">
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Process_1">
<bpmndi:BPMNEdge id="Flow_1xndbxy_di" bpmnElement="Flow_1xndbxy">
<di:waypoint x="380" y="220" />
<di:waypoint x="432" y="220" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1hjrex4_di" bpmnElement="Flow_1hjrex4">
<di:waypoint x="228" y="220" />
<di:waypoint x="280" y="220" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="Event_1ftsuzw_di" bpmnElement="Event_1ftsuzw">
<dc:Bounds x="192" y="202" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1iqs4li_di" bpmnElement="Activity_1iqs4li">
<dc:Bounds x="280" y="180" width="100" height="80" />
<bpmndi:BPMNLabel />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_0c80924_di" bpmnElement="Event_0c80924">
<dc:Bounds x="432" y="202" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="DataObjectReference_15lldo2_di" bpmnElement="DataObjectReference_15lldo2">
<dc:Bounds x="312" y="75" width="36" height="50" />
<bpmndi:BPMNLabel>
<dc:Bounds x="328" y="38" width="7" height="14" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="DataInputAssociation_0qit1wt_di" bpmnElement="DataInputAssociation_0qit1wt">
<di:waypoint x="330" y="125" />
<di:waypoint x="330" y="180" />
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</bpmn:definitions>