@@ -16,7 +16,7 @@ BPMN Tasks have the following additional attributes.
1616
1717* `bpmn_id `: the ID of the BPMN Task (this will be :code: `None ` if the task is not visible on the diagram)
1818* `bpmn_name `: the BPMN name of the Task
19- * `lame `: the lane of the BPMN Task
19+ * `lane `: the lane of the BPMN Task
2020* `documentation `: the contents of the BPMN `documentation ` element for the Task
2121* `data_input_associations `: a list of incoming data object references
2222* `data_output_associtions `: a list of outgoing data object references
@@ -44,7 +44,7 @@ To retrieve a list of tasks associated with a particular task spec, use :code:`w
4444
4545.. code :: python
4646
47- tasks = workflow.get_tasks_from_spec_name(' customize_product' )
47+ tasks = workflow.get_tasks_from_spec_name(' customize_product' )
4848
4949 will return a list containing the Call Actitivities for the customization of a product in our example workflow.
5050
@@ -76,7 +76,7 @@ to create a list of all tasks. It is also possible to start from a particular s
7676
7777.. code :: python
7878
79- tasks = workflow.get_tasks_from_spec_name(' customize_prodcut ' )
79+ tasks = workflow.get_tasks_from_spec_name(' customize_product ' )
8080 subprocess = workflow.get_subprocess(tasks[0 ])
8181 subprocess_tasks = workflow.get_tasks(workflow = subprocess)
8282
@@ -126,11 +126,11 @@ See the example in :doc:`synthesis` for the basics of creating a parser. The pa
126126
127127- a set of namespaces (useful if you have custom extensions)
128128- a BPMN Validator (the one in the :code: `bpmn ` package validates against the BPMN 2.0 spec)
129- - a mapping of XML tag to Task Spec Descriptions. The default set of descriptions can be found in
129+ - a mapping of XML tag to Task Spec Descriptions. The default set of descriptions can be found in
130130 :code: `SpiffWorkflow.bpmn.parser.spec_descriptions `. These values will be added to the Task Spec in the `description ` attribute
131131 and are intended as a user-friendly description of what the task is.
132132
133- The :code: `BpmnValidator ` can be used and extended independently of the parser as well; call :code: `validate ` with
133+ The :code: `BpmnValidator ` can be used and extended independently of the parser as well; call :code: `validate ` with
134134an :code: `lxml ` parsed tree.
135135
136136Loading BPMN Files
@@ -150,7 +150,7 @@ The following methods are available for discovering the names of processes and D
150150- :code: `find_all_spec `: Returns a mapping of name -> :code: `BpmnWorkflowSpec ` for all processes used in all files that have been
151151 provided to the parser at that point.
152152- :code: `get_process_dependences `: Returns a list of process IDs referenced by the provided process ID
153- - :code: `get_dmn_dependencies `: Returns a list of DMN IDs referenced byt he provided process ID
153+ - :code: `get_dmn_dependencies `: Returns a list of DMN IDs referenced by the provided process ID
154154
155155
156156Serialization
@@ -171,7 +171,7 @@ Serializing Custom Objects
171171In `Custom Script Engines `_ , we add some custom methods and objects to our scripting environment. We create a simple
172172class (a :code: `namedtuple `) that holds the product information for each product.
173173
174- We'd like to be ble to save and restore our custom object.
174+ We'd like to be able to save and restore our custom object.
175175
176176.. code :: python
177177
@@ -398,7 +398,7 @@ that this could be a Docker container with a complex environment, an HTTP API ru
398398
399399 Note that our execute method returns :code: `True `. We could check the status of our process here and return
400400 :code: `False ` to force our task into an `ERROR ` state if the task failed to execute.
401-
401+
402402 We could also return :code: `None `
403403 if the task is not finished; this will cause the task to go into the `STARTED ` state. You would have to manually
404404 complete a task that has been `STARTED `. The purpose of the state is to tell SpiffWorkflow your application will
@@ -410,19 +410,14 @@ that this could be a Docker container with a complex environment, an HTTP API ru
410410Service Tasks
411411-------------
412412
413- Let's return to the simpler Custom Script Engine case, ignoring the possibility of running in some external environment.
414-
415- Each of these functions takes a parameter, and if you expect BPMN authors to use them, it's necessary to let them know
416- the functions exist, as well as how to call them. This is a little inconvenient, so an alternative would be to
417- re-implement them as Service Tasks.
418-
419413Service Tasks are also executed by the workflow's script engine, but through a different method, with the help of some
420414custom extensions in the :code: `spiff ` package:
421415
422416- `operation_name `, the name assigned to the service being called
423417- `operation_params `, the parameters the operation requires
424418
425- This is our script engine and scripting enviroment:
419+
420+ This is our script engine and scripting environment:
426421
427422.. code :: python
428423
@@ -449,7 +444,7 @@ This is our script engine and scripting enviroment:
449444 service_task_engine = ServiceTaskEngine()
450445
451446 Instead of adding our custom functions to the enviroment, we'll override :code: `call_service ` and call them directly
452- according to the `operation_name ` that was given. The :code: `spiff ` Service Task also evaluates the parameters
447+ according to the `operation_name ` that was given. The :code: `spiff ` Service Task also evaluates the parameters
453448against the task data for us, so we can pass those in directly. The Service Task will also store our result in
454449a user-specified variable.
455450
@@ -483,8 +478,8 @@ Our `modeler <https://github.com/sartography/bpmn-js-spiffworkflow>`_ has a mean
483478their parameters that can be displayed to a BPMN author in the Service Task configurtion panel. There is an example of
484479hard-coding a list of services in
485480`app.js <https://github.com/sartography/bpmn-js-spiffworkflow/blob/0a9db509a0e85aa7adecc8301d8fbca9db75ac7c/app/app.js#L47 >`_
486- and as suggested, it would be reasonably straightforward to replace this with a API call. SpiffArena has robust
487- mechanisms for handling this that might serve as a model for you.
481+ and as suggested, it would be reasonably straightforward to replace this with a API call. ` SpiffArena < https://www.spiffworkflow.org/posts/articles/get_started/ >`_
482+ has robust mechanisms for handling this that might serve as a model for you.
488483
489484How this all works is obviously heavily dependent on your application, so we won't go into further detail here, except
490485to give you a bare bones starting point for implementing something yourself that meets your own needs.
0 commit comments