Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
1
www.netgrif.comPN & ACSD 2018, Slovakia
Process ActionsProcess Driven Application Development
2
www.netgrif.comPN & ACSD 2018, Slovakia
Problem
Model
DataRoles Actions
Test
Deploy
ActionsProcess Driven Application Development Cycle
3
www.netgrif.comPN & ACSD 2018, Slovakia
Content
Events in a process
Actions as the answer to to event
Actions in Petriflow
External services
Demonstration -Mortgage process
4
www.netgrif.comPN & ACSD 2018, Slovakia
To every action there is always opposed an equal reaction.– sir Isaac Newton
5
www.netgrif.comPN & ACSD 2018, Slovakia
To every event there is always an reaction.
6
www.netgrif.comPN & ACSD 2018, Slovakia
Process EventsWhat can happen in a process
● Fired● Assigned● Canceled● Finished● Delegated
TRANSITION● Value is read● Value is set● Attribute changed● Behaviour changed
DATA
● Marking changed● Instance created● Instance destroyed
PROCESS
7
www.netgrif.comPN & ACSD 2018, Slovakia
Start an appropriate
reaction
Apply consequences
Identifythe event
An event occured
Event-Reaction cycle
8
www.netgrif.comPN & ACSD 2018, Slovakia
Single purposeOne action is capable of doing only one thing.
Attachable to any eventAction can be set to response on any published event
in a process.
ScopedEvery action has defined scope of operation.
SmallSmall components of a process.
EncapsulatedEvery action directly interacts with a process instance.
Interacting with external servicesAn action can be a call to an external web service.
Actionsas the reaction to a event
9
www.netgrif.comPN & ACSD 2018, Slovakia
Structure of an action
question: f.q1,
field: f.some_number,
transition: t.154;
make field,visible on transition when {
!question.value
}
DECLARATION
STATEMENT
10
www.netgrif.comPN & ACSD 2018, Slovakia
Declaration
dataField: f.some_text,
choiceTrans: t.256;
Local name String ID
Data variable reference
Transition reference
Integer ID
Action parts separator
Variable separator
11
www.netgrif.comPN & ACSD 2018, Slovakia
Statement
Make field,editable on transition when { otherField.value == “PDAD” }
1st statement function 2nd statement function
Arguments Condition
Closure
12
www.netgrif.comPN & ACSD 2018, Slovakia
Constants● Behaviours
○ editable
○ visible
○ required
○ optional
○ hidden
○ forbidden
● unchanged
● always
● once
Built-in statements functions
Helper functions● cache _ , _
● cache _
● cacheFree _
Functions● make _ , _ on _ when { }
● close [ ]
● change _ about { }
● change _ choices { }
● generate _ , _
● generate _ , _ into _
13
www.netgrif.comPN & ACSD 2018, Slovakia
Process scope
Instancecontext
Transitionscope
Scope encapsulation
14
www.netgrif.comPN & ACSD 2018, Slovakia
Faster runtimeAn action is executed
quicker.
Dynamic actionsOption to change an action definition in
runtime.
Simulation of consequences
A simulation of change propagation in testing
phase.
CacheCache results to
optimize evaluation.
Runtime optimization
Analyze and optimize an action in runtime.
Compilation
AOT JIT
15
www.netgrif.comPN & ACSD 2018, Slovakia
Identification of an event and populating
metadata of the event.
Identify an event
Set action’s variables from instance context.
Populate local variables Propagate change that
was done by the statement execution.
Propagate change
Execute the action statement
Execution of an Action
16
www.netgrif.comPN & ACSD 2018, Slovakia
Global Action 1
Local Action 1
Local Action 2
Event
Global Action
Local Action 1
Local Action 3
Action Call TreeBecause callstack wasn’t enough
Local Action 2
17
www.netgrif.comPN & ACSD 2018, Slovakia
Postal code register
Business register of the Slovak Republic
External ServicesIt’s all about integration
Web services integration
18
www.netgrif.com© 2018
THANK YOU