b38661f588
Python application / build (push) Has been cancelled
- Add\Rework UI - Add Split Table and Listing - Add Support Customazeble schems
1127 lines
27 KiB
Plaintext
1127 lines
27 KiB
Plaintext
' md2gost BPMN 2.0 macros for PlantUML
|
||
' Notation: OMG BPMN 2.0.2 (formal/2013-12-09), Ch. 7 graphical elements,
|
||
' Ch. 10 Process (events, activities, gateways), Ch. 9 Collaboration (pools, message flow).
|
||
' PlantUML cannot attach boundary events to the activity border or draw a true
|
||
' double-circle; thickness + stereotypes approximate start / intermediate / end.
|
||
' Gateways use hexagon — in this renderer it reads as a BPMN diamond.
|
||
'
|
||
' Usage (scheme ```bpmn / ```uml-bpmn wraps @startuml + this include):
|
||
' Pool(company, "Компания") {
|
||
' Lane(op, "Оператор") {
|
||
' Start(s)
|
||
' UserTask(t, "Проверить")
|
||
' XOR(gw)
|
||
' End(e)
|
||
' Flow(s, t)
|
||
' Flow(t, gw)
|
||
' CondFlow(gw, e, "нет")
|
||
' }
|
||
' }
|
||
|
||
!ifndef BPMN_PUML
|
||
!define BPMN_PUML
|
||
|
||
hide stereotype
|
||
skinparam shadowing false
|
||
skinparam linetype polyline
|
||
skinparam nodesep 28
|
||
skinparam ranksep 42
|
||
skinparam defaultTextAlignment center
|
||
skinparam wrapWidth 140
|
||
skinparam ArrowColor #212121
|
||
skinparam Padding 2
|
||
|
||
' ---------------------------------------------------------------------------
|
||
' Sprites (event / task markers, BPMN 2.0 Table 7.2–7.4)
|
||
' ---------------------------------------------------------------------------
|
||
|
||
sprite $bpmnMsg [16x11/16] {
|
||
0000000000000000
|
||
0FFFFFFFFFFFFFF0
|
||
0F000000000000F0
|
||
0FF0000000000FF0
|
||
0F0FF000000FF0F0
|
||
0F000FFFFFF000F0
|
||
0F0000FFFF0000F0
|
||
0F000000000000F0
|
||
0F000000000000F0
|
||
0FFFFFFFFFFFFFF0
|
||
0000000000000000
|
||
}
|
||
|
||
sprite $bpmnMsgFill [16x11/16] {
|
||
0000000000000000
|
||
0FFFFFFFFFFFFFF0
|
||
0FFFFFFFFFFFFFF0
|
||
0FFFFFFFFFFFFFF0
|
||
0FFFFFFFFFFFFFF0
|
||
0FFF0FFFFFF0FFF0
|
||
0FF000FFFF000FF0
|
||
0F00000FF00000F0
|
||
0F000000000000F0
|
||
0FFFFFFFFFFFFFF0
|
||
0000000000000000
|
||
}
|
||
|
||
sprite $bpmnTimer [16x10/16] {
|
||
000000FFFF000000
|
||
0000FF0000FF0000
|
||
000F000FF000F000
|
||
00F0000FF0000F00
|
||
00F0000FF0000F00
|
||
00F0000FFFF00F00
|
||
00F0000000000F00
|
||
000F00000000F000
|
||
0000FF0000FF0000
|
||
000000FFFF000000
|
||
}
|
||
|
||
sprite $bpmnError [16x9/16] {
|
||
0000000FF0000000
|
||
000000FF00000000
|
||
00000FFFFF000000
|
||
0000FF0000000000
|
||
000FFFFF00000000
|
||
000000FF00000000
|
||
00000FF000000000
|
||
0000FF0000000000
|
||
000FF00000000000
|
||
}
|
||
|
||
sprite $bpmnSignal [16x8/16] {
|
||
00000000F0000000
|
||
0000000FFF000000
|
||
000000FF0FF00000
|
||
00000FF000FF0000
|
||
0000FF00000FF000
|
||
000FF0000000FF00
|
||
00FF000000000FF0
|
||
0FFFFFFFFFFFFFFF
|
||
}
|
||
|
||
sprite $bpmnSignalFill [16x8/16] {
|
||
00000000F0000000
|
||
0000000FFF000000
|
||
000000FFFFF00000
|
||
00000FFFFFFF0000
|
||
0000FFFFFFFFF000
|
||
000FFFFFFFFFFF00
|
||
00FFFFFFFFFFFFF0
|
||
0FFFFFFFFFFFFFFF
|
||
}
|
||
|
||
sprite $bpmnTerminate [16x9/16] {
|
||
00000FFFFFF00000
|
||
000FFFFFFFFFF000
|
||
00FFFFFFFFFFFF00
|
||
0FFFFFFFFFFFFFF0
|
||
0FFFFFFFFFFFFFF0
|
||
0FFFFFFFFFFFFFF0
|
||
00FFFFFFFFFFFF00
|
||
000FFFFFFFFFF000
|
||
00000FFFFFF00000
|
||
}
|
||
|
||
sprite $bpmnEscalation [16x9/16] {
|
||
00000000F0000000
|
||
0000000FFF000000
|
||
000000FF0FF00000
|
||
00000FF000FF0000
|
||
0000FFFFFFFFF000
|
||
000000F000F00000
|
||
000000F000F00000
|
||
000000F000F00000
|
||
000000FFFFF00000
|
||
}
|
||
|
||
sprite $bpmnComp [16x7/16] {
|
||
00F0000F00000000
|
||
0FF000FF00000000
|
||
FFF00FFF00000000
|
||
FFFF0FFFF0000000
|
||
FFF00FFF00000000
|
||
0FF000FF00000000
|
||
00F0000F00000000
|
||
}
|
||
|
||
sprite $bpmnLink [16x7/16] {
|
||
0000000000000000
|
||
00000000000F0000
|
||
00000000000FF000
|
||
0FFFFFFFFFFFFF00
|
||
00000000000FF000
|
||
00000000000F0000
|
||
0000000000000000
|
||
}
|
||
|
||
sprite $bpmnCond [16x10/16] {
|
||
0FFFFFFFFFF00000
|
||
0F00000000FF0000
|
||
0F00000000F0F000
|
||
0F00000000FFF000
|
||
0F00FFFF0000F000
|
||
0F0000000000F000
|
||
0F00FFFF0000F000
|
||
0F0000000000F000
|
||
0F00FFFF0000F000
|
||
0FFFFFFFFFFFF000
|
||
}
|
||
|
||
sprite $bpmnMulti [16x8/16] {
|
||
00000000F0000000
|
||
000000FF0FF00000
|
||
00000F00000F0000
|
||
0000F0000000F000
|
||
000F000000000F00
|
||
000F000000000F00
|
||
0000F0000000F000
|
||
00000FFFFFFF0000
|
||
}
|
||
|
||
sprite $bpmnParMulti [16x9/16] {
|
||
00000FFFFFF00000
|
||
000FF000000FF000
|
||
00F0000FF0000F00
|
||
0F00000FF00000F0
|
||
0F00FFFFFFFF00F0
|
||
0F00000FF00000F0
|
||
00F0000FF0000F00
|
||
000FF000000FF000
|
||
00000FFFFFF00000
|
||
}
|
||
|
||
sprite $bpmnCancel [16x11/16] {
|
||
0FF0000000000FF0
|
||
00FF00000000FF00
|
||
000FF000000FF000
|
||
0000FF0000FF0000
|
||
00000FF00FF00000
|
||
000000FFFF000000
|
||
00000FF00FF00000
|
||
0000FF0000FF0000
|
||
000FF000000FF000
|
||
00FF00000000FF00
|
||
0FF0000000000FF0
|
||
}
|
||
|
||
sprite $bpmnUser [16x10/16] {
|
||
000000FFFF000000
|
||
00000FFFFFF00000
|
||
00000FFFFFF00000
|
||
000000FFFF000000
|
||
0000000000000000
|
||
0000FFFFFFFF0000
|
||
000FF000000FF000
|
||
000FF000000FF000
|
||
000FF000000FF000
|
||
000FF000000FF000
|
||
}
|
||
|
||
sprite $bpmnService [16x9/16] {
|
||
000000FFFF000000
|
||
0000FFF00FFF0000
|
||
000FF0FFFF0FF000
|
||
00FF00FFFF00FF00
|
||
00F0000000000F00
|
||
00FF00FFFF00FF00
|
||
000FF0FFFF0FF000
|
||
0000FFF00FFF0000
|
||
000000FFFF000000
|
||
}
|
||
|
||
sprite $bpmnScript [16x9/16] {
|
||
0FFFFFFFFFF00000
|
||
0F00000000FF0000
|
||
0F00000000F0F000
|
||
0F00FFFF00FFF000
|
||
0F0000000000F000
|
||
0F00FFFF0000F000
|
||
0F0000000000F000
|
||
0F00FFFF0000F000
|
||
0FFFFFFFFFFFF000
|
||
}
|
||
|
||
sprite $bpmnManual [16x7/16] {
|
||
000000000FF00000
|
||
00000000FFFF0000
|
||
0000FF0FF0FF0000
|
||
000FFFFFFFFFF000
|
||
000FFFFFFFFFF000
|
||
0000FFFFFFFF0000
|
||
00000FFFFFF00000
|
||
}
|
||
|
||
sprite $bpmnRule [16x7/16] {
|
||
0FFFFFFFFFFFFFF0
|
||
0F000F000F0000F0
|
||
0FFFFFFFFFFFFFF0
|
||
0F000F000F0000F0
|
||
0FFFFFFFFFFFFFF0
|
||
0F000F000F0000F0
|
||
0FFFFFFFFFFFFFF0
|
||
}
|
||
|
||
sprite $bpmnPlusBox [12x9/16] {
|
||
FFFFFFFFFFFF
|
||
F0000000000F
|
||
F0000FF0000F
|
||
F0000FF0000F
|
||
F0FFFFFFFF0F
|
||
F0000FF0000F
|
||
F0000FF0000F
|
||
F0000000000F
|
||
FFFFFFFFFFFF
|
||
}
|
||
|
||
sprite $bpmnLoop [16x7/16] {
|
||
0000FFFFFF000000
|
||
000F000000F00000
|
||
00F000000000000F
|
||
0F00000000000FF0
|
||
0F000000000F0000
|
||
00F0000000F00000
|
||
000FFFFFF0000000
|
||
}
|
||
|
||
sprite $bpmnAdhoc [16x5/16] {
|
||
0000000000000000
|
||
0FF0000FFF000FF0
|
||
000FF0F000FF0000
|
||
00000F00000F0000
|
||
0000000000000000
|
||
}
|
||
|
||
sprite $bpmnMIPar [13x5/16] {
|
||
00F000F000F00
|
||
00F000F000F00
|
||
00F000F000F00
|
||
00F000F000F00
|
||
00F000F000F00
|
||
}
|
||
|
||
sprite $bpmnMISeq [13x7/16] {
|
||
0000000000000
|
||
0FFFFFFFFFFF0
|
||
0000000000000
|
||
0FFFFFFFFFFF0
|
||
0000000000000
|
||
0FFFFFFFFFFF0
|
||
0000000000000
|
||
}
|
||
|
||
' ---------------------------------------------------------------------------
|
||
' Skin (colours are conventional, not mandated by the spec)
|
||
' ---------------------------------------------------------------------------
|
||
|
||
skinparam circle<<bpmnStart>> {
|
||
BackgroundColor #C8E6C9
|
||
BorderColor #2E7D32
|
||
BorderThickness 1.5
|
||
FontSize 10
|
||
}
|
||
|
||
skinparam circle<<bpmnStartNI>> {
|
||
BackgroundColor #C8E6C9
|
||
BorderColor #2E7D32
|
||
BorderThickness 1.5
|
||
BorderStyle dashed
|
||
FontSize 10
|
||
}
|
||
|
||
skinparam circle<<bpmnInter>> {
|
||
BackgroundColor #FFF3E0
|
||
BorderColor #EF6C00
|
||
BorderThickness 2
|
||
FontSize 10
|
||
}
|
||
|
||
skinparam circle<<bpmnThrow>> {
|
||
BackgroundColor #FFE0B2
|
||
BorderColor #E65100
|
||
BorderThickness 2
|
||
FontSize 10
|
||
}
|
||
|
||
skinparam circle<<bpmnEnd>> {
|
||
BackgroundColor #FFCDD2
|
||
BorderColor #B71C1C
|
||
BorderThickness 3.5
|
||
FontSize 10
|
||
}
|
||
|
||
skinparam circle<<bpmnBoundary>> {
|
||
BackgroundColor #FFF3E0
|
||
BorderColor #EF6C00
|
||
BorderThickness 2
|
||
FontSize 9
|
||
}
|
||
|
||
skinparam circle<<bpmnBoundaryNI>> {
|
||
BackgroundColor #FFF3E0
|
||
BorderColor #EF6C00
|
||
BorderThickness 2
|
||
BorderStyle dashed
|
||
FontSize 9
|
||
}
|
||
|
||
skinparam hexagon<<bpmnGW>> {
|
||
BackgroundColor #FFF8E1
|
||
BorderColor #F9A825
|
||
BorderThickness 1.5
|
||
FontSize 12
|
||
}
|
||
|
||
skinparam rectangle<<bpmnTask>> {
|
||
RoundCorner 22
|
||
BackgroundColor #FFFFFF
|
||
BorderColor #1565C0
|
||
BorderThickness 1.4
|
||
FontSize 11
|
||
}
|
||
|
||
skinparam rectangle<<bpmnSubProcess>> {
|
||
RoundCorner 22
|
||
BackgroundColor #FAFAFA
|
||
BorderColor #1565C0
|
||
BorderThickness 1.4
|
||
FontSize 11
|
||
}
|
||
|
||
skinparam rectangle<<bpmnCall>> {
|
||
RoundCorner 22
|
||
BackgroundColor #FFFFFF
|
||
BorderColor #0D47A1
|
||
BorderThickness 3
|
||
FontSize 11
|
||
}
|
||
|
||
skinparam rectangle<<bpmnTransaction>> {
|
||
RoundCorner 22
|
||
BackgroundColor #FAFAFA
|
||
BorderColor #0D47A1
|
||
BorderThickness 2.5
|
||
FontSize 11
|
||
}
|
||
|
||
skinparam rectangle<<bpmnEventSub>> {
|
||
RoundCorner 22
|
||
BackgroundColor #FAFAFA
|
||
BorderColor #6A1B9A
|
||
BorderThickness 1.4
|
||
BorderStyle dashed
|
||
FontSize 11
|
||
}
|
||
|
||
skinparam rectangle<<bpmnPool>> {
|
||
RoundCorner 0
|
||
BackgroundColor #F5F5F5
|
||
BorderColor #212121
|
||
BorderThickness 1.6
|
||
FontSize 12
|
||
FontStyle bold
|
||
}
|
||
|
||
skinparam rectangle<<bpmnLane>> {
|
||
RoundCorner 0
|
||
BackgroundColor #FFFFFF
|
||
BorderColor #757575
|
||
BorderThickness 1
|
||
FontSize 11
|
||
}
|
||
|
||
skinparam rectangle<<bpmnBlackBox>> {
|
||
RoundCorner 0
|
||
BackgroundColor #EEEEEE
|
||
BorderColor #212121
|
||
BorderThickness 1.6
|
||
FontSize 12
|
||
FontStyle bold
|
||
}
|
||
|
||
skinparam rectangle<<bpmnGroup>> {
|
||
RoundCorner 8
|
||
BackgroundColor transparent
|
||
BorderColor #9E9E9E
|
||
BorderThickness 1.2
|
||
BorderStyle dashed
|
||
FontSize 10
|
||
}
|
||
|
||
skinparam file<<bpmnData>> {
|
||
BackgroundColor #E3F2FD
|
||
BorderColor #1565C0
|
||
FontSize 10
|
||
}
|
||
|
||
skinparam database<<bpmnStore>> {
|
||
BackgroundColor #E8F5E9
|
||
BorderColor #2E7D32
|
||
FontSize 10
|
||
}
|
||
|
||
skinparam note {
|
||
BackgroundColor #FFFDE7
|
||
BorderColor #F9A825
|
||
FontSize 10
|
||
}
|
||
|
||
' ---------------------------------------------------------------------------
|
||
' Internals
|
||
' ---------------------------------------------------------------------------
|
||
|
||
!unquoted procedure $bpmnCircle($alias, $stereo, $icon, $label)
|
||
!if ($icon == "")
|
||
!if ($label == "")
|
||
circle " " as $alias <<$stereo>>
|
||
!else
|
||
circle "$label" as $alias <<$stereo>>
|
||
!endif
|
||
!else
|
||
!if ($label == "")
|
||
circle "<$$icon>" as $alias <<$stereo>>
|
||
!else
|
||
circle "<$$icon>\n$label" as $alias <<$stereo>>
|
||
!endif
|
||
!endif
|
||
!endprocedure
|
||
|
||
!unquoted procedure $bpmnGW($alias, $mark, $label)
|
||
!if ($label == "")
|
||
hexagon "$mark" as $alias <<bpmnGW>>
|
||
!else
|
||
hexagon "$mark\n$label" as $alias <<bpmnGW>>
|
||
!endif
|
||
!endprocedure
|
||
|
||
!unquoted procedure $bpmnRect($alias, $stereo, $icon, $label, $marker="")
|
||
!if ($icon == "")
|
||
!if ($marker == "")
|
||
rectangle "$label" as $alias <<$stereo>>
|
||
!else
|
||
rectangle "$label\n\n<$$marker>" as $alias <<$stereo>>
|
||
!endif
|
||
!else
|
||
!if ($marker == "")
|
||
rectangle "<$$icon> $label" as $alias <<$stereo>>
|
||
!else
|
||
rectangle "<$$icon> $label\n\n<$$marker>" as $alias <<$stereo>>
|
||
!endif
|
||
!endif
|
||
!endprocedure
|
||
|
||
' ---------------------------------------------------------------------------
|
||
' Swimlanes — BPMN 2.0 §9.2 Pool / §9.3 Lane
|
||
' Pool(...) { ... } Lane(...) { ... }
|
||
' ---------------------------------------------------------------------------
|
||
|
||
!unquoted procedure Pool($alias, $label)
|
||
rectangle "$label" as $alias <<bpmnPool>>
|
||
!endprocedure
|
||
|
||
!unquoted procedure Lane($alias, $label)
|
||
rectangle "$label" as $alias <<bpmnLane>>
|
||
!endprocedure
|
||
|
||
!unquoted procedure BlackBoxPool($alias, $label)
|
||
rectangle "$label" as $alias <<bpmnBlackBox>>
|
||
!endprocedure
|
||
|
||
!unquoted procedure Participant($alias, $label)
|
||
BlackBoxPool($alias, $label)
|
||
!endprocedure
|
||
|
||
!unquoted procedure Group($alias, $label)
|
||
rectangle "$label" as $alias <<bpmnGroup>>
|
||
!endprocedure
|
||
|
||
' ---------------------------------------------------------------------------
|
||
' Start events — §10.5.2 (None, Message, Timer, Conditional, Signal, Error,
|
||
' Escalation, Multiple, Parallel Multiple). Error/Escalation only in event sub-process.
|
||
' ---------------------------------------------------------------------------
|
||
|
||
!unquoted procedure Start($alias, $label="")
|
||
$bpmnCircle($alias, "bpmnStart", "", $label)
|
||
!endprocedure
|
||
|
||
!unquoted procedure StartEvent($alias, $label="")
|
||
Start($alias, $label)
|
||
!endprocedure
|
||
|
||
!unquoted procedure StartMessage($alias, $label="")
|
||
$bpmnCircle($alias, "bpmnStart", "bpmnMsg", $label)
|
||
!endprocedure
|
||
|
||
!unquoted procedure StartTimer($alias, $label="")
|
||
$bpmnCircle($alias, "bpmnStart", "bpmnTimer", $label)
|
||
!endprocedure
|
||
|
||
!unquoted procedure StartCondition($alias, $label="")
|
||
$bpmnCircle($alias, "bpmnStart", "bpmnCond", $label)
|
||
!endprocedure
|
||
|
||
!unquoted procedure StartConditional($alias, $label="")
|
||
StartCondition($alias, $label)
|
||
!endprocedure
|
||
|
||
!unquoted procedure StartSignal($alias, $label="")
|
||
$bpmnCircle($alias, "bpmnStart", "bpmnSignal", $label)
|
||
!endprocedure
|
||
|
||
!unquoted procedure StartError($alias, $label="")
|
||
$bpmnCircle($alias, "bpmnStart", "bpmnError", $label)
|
||
!endprocedure
|
||
|
||
!unquoted procedure StartEscalation($alias, $label="")
|
||
$bpmnCircle($alias, "bpmnStart", "bpmnEscalation", $label)
|
||
!endprocedure
|
||
|
||
!unquoted procedure StartMultiple($alias, $label="")
|
||
$bpmnCircle($alias, "bpmnStart", "bpmnMulti", $label)
|
||
!endprocedure
|
||
|
||
!unquoted procedure StartParallelMultiple($alias, $label="")
|
||
$bpmnCircle($alias, "bpmnStart", "bpmnParMulti", $label)
|
||
!endprocedure
|
||
|
||
!unquoted procedure StartNI($alias, $label="")
|
||
$bpmnCircle($alias, "bpmnStartNI", "", $label)
|
||
!endprocedure
|
||
|
||
!unquoted procedure StartMessageNI($alias, $label="")
|
||
$bpmnCircle($alias, "bpmnStartNI", "bpmnMsg", $label)
|
||
!endprocedure
|
||
|
||
!unquoted procedure StartTimerNI($alias, $label="")
|
||
$bpmnCircle($alias, "bpmnStartNI", "bpmnTimer", $label)
|
||
!endprocedure
|
||
|
||
!unquoted procedure StartSignalNI($alias, $label="")
|
||
$bpmnCircle($alias, "bpmnStartNI", "bpmnSignal", $label)
|
||
!endprocedure
|
||
|
||
' ---------------------------------------------------------------------------
|
||
' Intermediate catching / throwing — §10.5.4
|
||
' ---------------------------------------------------------------------------
|
||
|
||
!unquoted procedure Intermediate($alias, $label="")
|
||
$bpmnCircle($alias, "bpmnInter", "", $label)
|
||
!endprocedure
|
||
|
||
!unquoted procedure CatchMessage($alias, $label="")
|
||
$bpmnCircle($alias, "bpmnInter", "bpmnMsg", $label)
|
||
!endprocedure
|
||
|
||
!unquoted procedure ThrowMessage($alias, $label="")
|
||
$bpmnCircle($alias, "bpmnThrow", "bpmnMsgFill", $label)
|
||
!endprocedure
|
||
|
||
!unquoted procedure CatchTimer($alias, $label="")
|
||
$bpmnCircle($alias, "bpmnInter", "bpmnTimer", $label)
|
||
!endprocedure
|
||
|
||
!unquoted procedure CatchSignal($alias, $label="")
|
||
$bpmnCircle($alias, "bpmnInter", "bpmnSignal", $label)
|
||
!endprocedure
|
||
|
||
!unquoted procedure ThrowSignal($alias, $label="")
|
||
$bpmnCircle($alias, "bpmnThrow", "bpmnSignalFill", $label)
|
||
!endprocedure
|
||
|
||
!unquoted procedure CatchError($alias, $label="")
|
||
$bpmnCircle($alias, "bpmnInter", "bpmnError", $label)
|
||
!endprocedure
|
||
|
||
!unquoted procedure CatchEscalation($alias, $label="")
|
||
$bpmnCircle($alias, "bpmnInter", "bpmnEscalation", $label)
|
||
!endprocedure
|
||
|
||
!unquoted procedure ThrowEscalation($alias, $label="")
|
||
$bpmnCircle($alias, "bpmnThrow", "bpmnEscalation", $label)
|
||
!endprocedure
|
||
|
||
!unquoted procedure CatchCondition($alias, $label="")
|
||
$bpmnCircle($alias, "bpmnInter", "bpmnCond", $label)
|
||
!endprocedure
|
||
|
||
!unquoted procedure CatchLink($alias, $label="")
|
||
$bpmnCircle($alias, "bpmnInter", "bpmnLink", $label)
|
||
!endprocedure
|
||
|
||
!unquoted procedure ThrowLink($alias, $label="")
|
||
$bpmnCircle($alias, "bpmnThrow", "bpmnLink", $label)
|
||
!endprocedure
|
||
|
||
!unquoted procedure CatchCompensation($alias, $label="")
|
||
$bpmnCircle($alias, "bpmnInter", "bpmnComp", $label)
|
||
!endprocedure
|
||
|
||
!unquoted procedure ThrowCompensation($alias, $label="")
|
||
$bpmnCircle($alias, "bpmnThrow", "bpmnComp", $label)
|
||
!endprocedure
|
||
|
||
!unquoted procedure CatchCancel($alias, $label="")
|
||
$bpmnCircle($alias, "bpmnInter", "bpmnCancel", $label)
|
||
!endprocedure
|
||
|
||
!unquoted procedure CatchMultiple($alias, $label="")
|
||
$bpmnCircle($alias, "bpmnInter", "bpmnMulti", $label)
|
||
!endprocedure
|
||
|
||
!unquoted procedure ThrowMultiple($alias, $label="")
|
||
$bpmnCircle($alias, "bpmnThrow", "bpmnMulti", $label)
|
||
!endprocedure
|
||
|
||
!unquoted procedure CatchParallelMultiple($alias, $label="")
|
||
$bpmnCircle($alias, "bpmnInter", "bpmnParMulti", $label)
|
||
!endprocedure
|
||
|
||
' ---------------------------------------------------------------------------
|
||
' Boundary events — interrupting (solid) / non-interrupting (dashed). Attach()
|
||
' ---------------------------------------------------------------------------
|
||
|
||
!unquoted procedure BoundaryMessage($alias, $label="")
|
||
$bpmnCircle($alias, "bpmnBoundary", "bpmnMsg", $label)
|
||
!endprocedure
|
||
|
||
!unquoted procedure BoundaryTimer($alias, $label="")
|
||
$bpmnCircle($alias, "bpmnBoundary", "bpmnTimer", $label)
|
||
!endprocedure
|
||
|
||
!unquoted procedure BoundaryError($alias, $label="")
|
||
$bpmnCircle($alias, "bpmnBoundary", "bpmnError", $label)
|
||
!endprocedure
|
||
|
||
!unquoted procedure BoundaryEscalation($alias, $label="")
|
||
$bpmnCircle($alias, "bpmnBoundary", "bpmnEscalation", $label)
|
||
!endprocedure
|
||
|
||
!unquoted procedure BoundarySignal($alias, $label="")
|
||
$bpmnCircle($alias, "bpmnBoundary", "bpmnSignal", $label)
|
||
!endprocedure
|
||
|
||
!unquoted procedure BoundaryCancel($alias, $label="")
|
||
$bpmnCircle($alias, "bpmnBoundary", "bpmnCancel", $label)
|
||
!endprocedure
|
||
|
||
!unquoted procedure BoundaryCompensation($alias, $label="")
|
||
$bpmnCircle($alias, "bpmnBoundary", "bpmnComp", $label)
|
||
!endprocedure
|
||
|
||
!unquoted procedure BoundaryCondition($alias, $label="")
|
||
$bpmnCircle($alias, "bpmnBoundary", "bpmnCond", $label)
|
||
!endprocedure
|
||
|
||
!unquoted procedure BoundaryMessageNI($alias, $label="")
|
||
$bpmnCircle($alias, "bpmnBoundaryNI", "bpmnMsg", $label)
|
||
!endprocedure
|
||
|
||
!unquoted procedure BoundaryTimerNI($alias, $label="")
|
||
$bpmnCircle($alias, "bpmnBoundaryNI", "bpmnTimer", $label)
|
||
!endprocedure
|
||
|
||
!unquoted procedure BoundaryEscalationNI($alias, $label="")
|
||
$bpmnCircle($alias, "bpmnBoundaryNI", "bpmnEscalation", $label)
|
||
!endprocedure
|
||
|
||
!unquoted procedure BoundarySignalNI($alias, $label="")
|
||
$bpmnCircle($alias, "bpmnBoundaryNI", "bpmnSignal", $label)
|
||
!endprocedure
|
||
|
||
!unquoted procedure BoundaryConditionNI($alias, $label="")
|
||
$bpmnCircle($alias, "bpmnBoundaryNI", "bpmnCond", $label)
|
||
!endprocedure
|
||
|
||
!unquoted procedure Attach($activity, $event)
|
||
$activity -[hidden]down- $event
|
||
!endprocedure
|
||
|
||
!unquoted procedure Attach_R($activity, $event)
|
||
$activity -[hidden]right- $event
|
||
!endprocedure
|
||
|
||
' ---------------------------------------------------------------------------
|
||
' End events — §10.5.3 (None, Message, Error, Escalation, Cancel, Compensation,
|
||
' Signal, Multiple, Terminate)
|
||
' ---------------------------------------------------------------------------
|
||
|
||
!unquoted procedure End($alias, $label="")
|
||
$bpmnCircle($alias, "bpmnEnd", "", $label)
|
||
!endprocedure
|
||
|
||
!unquoted procedure EndEvent($alias, $label="")
|
||
End($alias, $label)
|
||
!endprocedure
|
||
|
||
!unquoted procedure EndMessage($alias, $label="")
|
||
$bpmnCircle($alias, "bpmnEnd", "bpmnMsgFill", $label)
|
||
!endprocedure
|
||
|
||
!unquoted procedure EndError($alias, $label="")
|
||
$bpmnCircle($alias, "bpmnEnd", "bpmnError", $label)
|
||
!endprocedure
|
||
|
||
!unquoted procedure EndEscalation($alias, $label="")
|
||
$bpmnCircle($alias, "bpmnEnd", "bpmnEscalation", $label)
|
||
!endprocedure
|
||
|
||
!unquoted procedure EndCancel($alias, $label="")
|
||
$bpmnCircle($alias, "bpmnEnd", "bpmnCancel", $label)
|
||
!endprocedure
|
||
|
||
!unquoted procedure EndCompensation($alias, $label="")
|
||
$bpmnCircle($alias, "bpmnEnd", "bpmnComp", $label)
|
||
!endprocedure
|
||
|
||
!unquoted procedure EndSignal($alias, $label="")
|
||
$bpmnCircle($alias, "bpmnEnd", "bpmnSignalFill", $label)
|
||
!endprocedure
|
||
|
||
!unquoted procedure EndMultiple($alias, $label="")
|
||
$bpmnCircle($alias, "bpmnEnd", "bpmnMulti", $label)
|
||
!endprocedure
|
||
|
||
!unquoted procedure EndTerminate($alias, $label="")
|
||
$bpmnCircle($alias, "bpmnEnd", "bpmnTerminate", $label)
|
||
!endprocedure
|
||
|
||
!unquoted procedure Terminate($alias, $label="")
|
||
EndTerminate($alias, $label)
|
||
!endprocedure
|
||
|
||
' ---------------------------------------------------------------------------
|
||
' Activities — §10.3 Task types + markers (loop, MI, compensation, ad-hoc)
|
||
' ---------------------------------------------------------------------------
|
||
|
||
!unquoted procedure Task($alias, $label, $type="none", $marker="")
|
||
!if ($type == "user")
|
||
$bpmnRect($alias, "bpmnTask", "bpmnUser", $label, $marker)
|
||
!elseif ($type == "service")
|
||
$bpmnRect($alias, "bpmnTask", "bpmnService", $label, $marker)
|
||
!elseif ($type == "script")
|
||
$bpmnRect($alias, "bpmnTask", "bpmnScript", $label, $marker)
|
||
!elseif ($type == "manual")
|
||
$bpmnRect($alias, "bpmnTask", "bpmnManual", $label, $marker)
|
||
!elseif ($type == "send")
|
||
$bpmnRect($alias, "bpmnTask", "bpmnMsgFill", $label, $marker)
|
||
!elseif ($type == "receive")
|
||
$bpmnRect($alias, "bpmnTask", "bpmnMsg", $label, $marker)
|
||
!elseif ($type == "rule")
|
||
$bpmnRect($alias, "bpmnTask", "bpmnRule", $label, $marker)
|
||
!elseif ($type == "businessrule")
|
||
$bpmnRect($alias, "bpmnTask", "bpmnRule", $label, $marker)
|
||
!else
|
||
$bpmnRect($alias, "bpmnTask", "", $label, $marker)
|
||
!endif
|
||
!endprocedure
|
||
|
||
!unquoted procedure UserTask($alias, $label, $marker="")
|
||
Task($alias, $label, "user", $marker)
|
||
!endprocedure
|
||
|
||
!unquoted procedure ServiceTask($alias, $label, $marker="")
|
||
Task($alias, $label, "service", $marker)
|
||
!endprocedure
|
||
|
||
!unquoted procedure ScriptTask($alias, $label, $marker="")
|
||
Task($alias, $label, "script", $marker)
|
||
!endprocedure
|
||
|
||
!unquoted procedure ManualTask($alias, $label, $marker="")
|
||
Task($alias, $label, "manual", $marker)
|
||
!endprocedure
|
||
|
||
!unquoted procedure SendTask($alias, $label, $marker="")
|
||
Task($alias, $label, "send", $marker)
|
||
!endprocedure
|
||
|
||
!unquoted procedure ReceiveTask($alias, $label, $marker="")
|
||
Task($alias, $label, "receive", $marker)
|
||
!endprocedure
|
||
|
||
!unquoted procedure BusinessRuleTask($alias, $label, $marker="")
|
||
Task($alias, $label, "rule", $marker)
|
||
!endprocedure
|
||
|
||
!unquoted procedure LoopTask($alias, $label)
|
||
Task($alias, $label, "none", "bpmnLoop")
|
||
!endprocedure
|
||
|
||
!unquoted procedure SubProcess($alias, $label)
|
||
$bpmnRect($alias, "bpmnSubProcess", "", $label, "bpmnPlusBox")
|
||
!endprocedure
|
||
|
||
!unquoted procedure SubProcessExpanded($alias, $label)
|
||
rectangle "$label" as $alias <<bpmnSubProcess>>
|
||
!endprocedure
|
||
|
||
!unquoted procedure CallActivity($alias, $label)
|
||
$bpmnRect($alias, "bpmnCall", "", $label, "bpmnPlusBox")
|
||
!endprocedure
|
||
|
||
!unquoted procedure Transaction($alias, $label)
|
||
$bpmnRect($alias, "bpmnTransaction", "", $label, "bpmnPlusBox")
|
||
!endprocedure
|
||
|
||
!unquoted procedure EventSubProcess($alias, $label)
|
||
rectangle "$label" as $alias <<bpmnEventSub>>
|
||
!endprocedure
|
||
|
||
!unquoted procedure AdHocSubProcess($alias, $label)
|
||
$bpmnRect($alias, "bpmnSubProcess", "", $label, "bpmnAdhoc")
|
||
!endprocedure
|
||
|
||
' ---------------------------------------------------------------------------
|
||
' Gateways — §10.6 (Exclusive, Parallel, Inclusive, Complex, Event-Based)
|
||
' ---------------------------------------------------------------------------
|
||
|
||
!unquoted procedure Exclusive($alias, $label="")
|
||
$bpmnGW($alias, "×", $label)
|
||
!endprocedure
|
||
|
||
!unquoted procedure XOR($alias, $label="")
|
||
Exclusive($alias, $label)
|
||
!endprocedure
|
||
|
||
!unquoted procedure Xor($alias, $label="")
|
||
Exclusive($alias, $label)
|
||
!endprocedure
|
||
|
||
!unquoted procedure Gateway($alias, $label="")
|
||
Exclusive($alias, $label)
|
||
!endprocedure
|
||
|
||
!unquoted procedure Parallel($alias, $label="")
|
||
$bpmnGW($alias, "+", $label)
|
||
!endprocedure
|
||
|
||
!unquoted procedure AND($alias, $label="")
|
||
Parallel($alias, $label)
|
||
!endprocedure
|
||
|
||
!unquoted procedure And($alias, $label="")
|
||
Parallel($alias, $label)
|
||
!endprocedure
|
||
|
||
!unquoted procedure Inclusive($alias, $label="")
|
||
$bpmnGW($alias, "○", $label)
|
||
!endprocedure
|
||
|
||
!unquoted procedure OR($alias, $label="")
|
||
Inclusive($alias, $label)
|
||
!endprocedure
|
||
|
||
!unquoted procedure Or($alias, $label="")
|
||
Inclusive($alias, $label)
|
||
!endprocedure
|
||
|
||
!unquoted procedure ComplexGW($alias, $label="")
|
||
$bpmnGW($alias, "*", $label)
|
||
!endprocedure
|
||
|
||
!unquoted procedure Complex($alias, $label="")
|
||
ComplexGW($alias, $label)
|
||
!endprocedure
|
||
|
||
!unquoted procedure EventBased($alias, $label="")
|
||
$bpmnGW($alias, "◇", $label)
|
||
!endprocedure
|
||
|
||
!unquoted procedure EventBasedGateway($alias, $label="")
|
||
EventBased($alias, $label)
|
||
!endprocedure
|
||
|
||
!unquoted procedure ExclusiveEventBased($alias, $label="")
|
||
$bpmnGW($alias, "◇", $label)
|
||
!endprocedure
|
||
|
||
!unquoted procedure ParallelEventBased($alias, $label="")
|
||
$bpmnGW($alias, "⊕", $label)
|
||
!endprocedure
|
||
|
||
' ---------------------------------------------------------------------------
|
||
' Connecting objects — §8.4.13 Sequence Flow, Message Flow, Association
|
||
' Default = slash; conditional = mini-diamond (label prefixes as stand-in)
|
||
' ---------------------------------------------------------------------------
|
||
|
||
!unquoted procedure Flow($from, $to, $label="")
|
||
!if ($label == "")
|
||
$from --> $to
|
||
!else
|
||
$from --> $to : $label
|
||
!endif
|
||
!endprocedure
|
||
|
||
!unquoted procedure Flow_R($from, $to, $label="")
|
||
!if ($label == "")
|
||
$from -right-> $to
|
||
!else
|
||
$from -right-> $to : $label
|
||
!endif
|
||
!endprocedure
|
||
|
||
!unquoted procedure Flow_L($from, $to, $label="")
|
||
!if ($label == "")
|
||
$from -left-> $to
|
||
!else
|
||
$from -left-> $to : $label
|
||
!endif
|
||
!endprocedure
|
||
|
||
!unquoted procedure Flow_D($from, $to, $label="")
|
||
!if ($label == "")
|
||
$from -down-> $to
|
||
!else
|
||
$from -down-> $to : $label
|
||
!endif
|
||
!endprocedure
|
||
|
||
!unquoted procedure Flow_U($from, $to, $label="")
|
||
!if ($label == "")
|
||
$from -up-> $to
|
||
!else
|
||
$from -up-> $to : $label
|
||
!endif
|
||
!endprocedure
|
||
|
||
!unquoted procedure SequenceFlow($from, $to, $label="")
|
||
Flow($from, $to, $label)
|
||
!endprocedure
|
||
|
||
!unquoted procedure CondFlow($from, $to, $cond)
|
||
$from --> $to : ◇ $cond
|
||
!endprocedure
|
||
|
||
!unquoted procedure DefaultFlow($from, $to, $label="")
|
||
!if ($label == "")
|
||
$from --> $to : ╱
|
||
!else
|
||
$from --> $to : ╱ $label
|
||
!endif
|
||
!endprocedure
|
||
|
||
!unquoted procedure MessageFlow($from, $to, $label="")
|
||
!if ($label == "")
|
||
$from ..> $to
|
||
!else
|
||
$from ..> $to : $label
|
||
!endif
|
||
!endprocedure
|
||
|
||
!unquoted procedure MessageFlow_R($from, $to, $label="")
|
||
!if ($label == "")
|
||
$from -[dashed]right-> $to
|
||
!else
|
||
$from -[dashed]right-> $to : $label
|
||
!endif
|
||
!endprocedure
|
||
|
||
!unquoted procedure Assoc($from, $to, $label="")
|
||
!if ($label == "")
|
||
$from .. $to
|
||
!else
|
||
$from .. $to : $label
|
||
!endif
|
||
!endprocedure
|
||
|
||
!unquoted procedure Association($from, $to, $label="")
|
||
Assoc($from, $to, $label)
|
||
!endprocedure
|
||
|
||
!unquoted procedure DataAssoc($from, $to, $label="")
|
||
!if ($label == "")
|
||
$from ..> $to
|
||
!else
|
||
$from ..> $to : $label
|
||
!endif
|
||
!endprocedure
|
||
|
||
' ---------------------------------------------------------------------------
|
||
' Data / artifacts — §7.1.1.7 Data, Group, Text Annotation
|
||
' ---------------------------------------------------------------------------
|
||
|
||
!unquoted procedure DataObject($alias, $label)
|
||
file "$label" as $alias <<bpmnData>>
|
||
!endprocedure
|
||
|
||
!unquoted procedure DataInput($alias, $label)
|
||
file "▷ $label" as $alias <<bpmnData>>
|
||
!endprocedure
|
||
|
||
!unquoted procedure DataOutput($alias, $label)
|
||
file "$label ▷" as $alias <<bpmnData>>
|
||
!endprocedure
|
||
|
||
!unquoted procedure Collection($alias, $label)
|
||
file "$label\n<$bpmnMIPar>" as $alias <<bpmnData>>
|
||
!endprocedure
|
||
|
||
!unquoted procedure DataStore($alias, $label)
|
||
database "$label" as $alias <<bpmnStore>>
|
||
!endprocedure
|
||
|
||
!unquoted procedure Annotation($alias, $text)
|
||
note "$text" as $alias
|
||
!endprocedure
|
||
|
||
!unquoted procedure TextAnnotation($alias, $text)
|
||
Annotation($alias, $text)
|
||
!endprocedure
|
||
|
||
' ---------------------------------------------------------------------------
|
||
' Layout helpers
|
||
' ---------------------------------------------------------------------------
|
||
|
||
!unquoted procedure Lay_R($from, $to)
|
||
$from -[hidden]right-> $to
|
||
!endprocedure
|
||
|
||
!unquoted procedure Lay_L($from, $to)
|
||
$from -[hidden]left-> $to
|
||
!endprocedure
|
||
|
||
!unquoted procedure Lay_D($from, $to)
|
||
$from -[hidden]down-> $to
|
||
!endprocedure
|
||
|
||
!unquoted procedure Lay_U($from, $to)
|
||
$from -[hidden]up-> $to
|
||
!endprocedure
|
||
|
||
!procedure BPMN_HORIZONTAL()
|
||
left to right direction
|
||
!endprocedure
|
||
|
||
!procedure BPMN_VERTICAL()
|
||
top to bottom direction
|
||
!endprocedure
|
||
|
||
!procedure BPMN_ORTHO()
|
||
skinparam linetype ortho
|
||
!endprocedure
|
||
|
||
!procedure BPMN_POLYLINE()
|
||
skinparam linetype polyline
|
||
!endprocedure
|
||
|
||
!procedure BPMN_LEGEND()
|
||
legend right
|
||
<b>BPMN 2.0</b>
|
||
|= Элемент |= Смысл |
|
||
| тонкий круг | Start Event |
|
||
| двойная толщина | Intermediate |
|
||
| жирный круг | End Event |
|
||
| ● внутри конца | Terminate |
|
||
| скруглённый прямоугольник | Activity / Task |
|
||
| ромб × | Exclusive (XOR) |
|
||
| ромб + | Parallel (AND) |
|
||
| ромб ○ | Inclusive (OR) |
|
||
| ромб ◇ | Event-Based |
|
||
| сплошная стрелка | Sequence Flow |
|
||
| пунктир | Message Flow |
|
||
| ╱ | Default Flow |
|
||
| ◇ на стрелке | Conditional Flow |
|
||
endlegend
|
||
!endprocedure
|
||
|
||
!endif
|