Packages
mozart
0.1.4
1.0.1
1.0.0
0.9.8
0.9.7
0.9.6
0.9.5
0.9.4
0.9.3
0.9.2
0.9.1
0.9.0
0.8.9
0.8.8
0.8.7
0.8.6
0.8.5
0.8.4
0.8.3
0.8.2
0.8.1
0.8.0
0.7.8
0.7.7
0.7.6
0.7.5
0.7.4
0.7.3
0.7.2
0.7.1
0.7.0
0.6.8
0.6.7
0.6.6
0.6.5
0.6.4
0.6.3
0.6.2
0.6.1
0.6.0
0.5.8
0.5.7
0.5.6
0.5.5
0.5.4
0.5.3
0.5.2
0.5.1
0.5.0
0.4.5
0.4.4
0.4.3
0.4.2
0.4.1
0.4.0
0.3.7
0.3.6
0.3.5
0.3.4
0.3.3
0.3.2
0.3.1
0.3.0
0.2.11
0.2.10
0.2.9
0.2.8
0.2.7
0.2.6
0.2.5
0.2.4
0.2.3
0.2.2
0.2.1
0.2.0
0.1.11
0.1.10
0.1.9
0.1.8
0.1.7
0.1.6
0.1.5
0.1.4
0.1.3
0.1.2
0.1.1
0.1.0
Mozart is an Elixir based BPM platform. It provides a powerful and highly readable DSL for implementing executable business process models.
Current section
Files
Jump to
Current section
Files
lib/mozart/task/subprocess.ex
defmodule Mozart.Task.Subprocess do
@moduledoc """
Used to model a task that is completed by executing and completing a
subprocess. Called a **call activity** in BPMN2.
Example:
```
%ProcessModel{
name: :call_process_model,
tasks: [
%Subprocess{
name: :call_process_task,
sub_process: :service_subprocess_model,
next: :service_task1
},
%Service{
name: :service_task1,
function: fn data -> Map.put(data, :value, data.value + 1) end
}
],
initial_task: :call_process_task
},
%ProcessModel{
name: :service_subprocess_model,
tasks: [
%Service{
name: :service_task,
function: fn data -> Map.put(data, :subprocess_data, "subprocess data") end
}
],
initial_task: :service_task
}
```
"""
defstruct [
:name,
:function,
:next,
:uid,
:sub_process,
complete: false,
data: %{},
completed_sub_tasks: [],
type: :sub_process
]
end