ontomde-uml2-jpdl 1.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/History.txt +5 -0
- data/Manifest.txt +18 -0
- data/README.txt +44 -0
- data/Rakefile +21 -0
- data/lib/ontomde-uml2-jpdl/bpm.pprj +1745 -0
- data/lib/ontomde-uml2-jpdl/bpm.rdf +140 -0
- data/lib/ontomde-uml2-jpdl/bpm.rdfs +231 -0
- data/lib/ontomde-uml2-jpdl/constant.rb +5 -0
- data/lib/ontomde-uml2-jpdl/graphic.rb +52 -0
- data/lib/ontomde-uml2-jpdl/jpdl.rb +280 -0
- data/lib/ontomde-uml2-jpdl/jpdl_deploy.rb +114 -0
- data/lib/ontomde-uml2-jpdl/main.rb +311 -0
- data/lib/ontomde-uml2-jpdl/main.rdoc +2 -0
- data/lib/ontomde-uml2-jpdl/processOperationToClass.rb +316 -0
- data/lib/ontomde-uml2-jpdl/version.rb +7 -0
- data/lib/ontomde-uml2-jpdl.rb +12 -0
- data/test/test_ontomde-uml2-jpdl.rb +0 -0
- metadata +89 -0
@@ -0,0 +1,140 @@
|
|
1
|
+
<?xml version='1.0' encoding='UTF-8'?>
|
2
|
+
<!DOCTYPE rdf:RDF [
|
3
|
+
<!ENTITY rdf 'http://www.w3.org/1999/02/22-rdf-syntax-ns#'>
|
4
|
+
<!ENTITY kb 'http://protege.stanford.edu/kb#'>
|
5
|
+
<!ENTITY bpm 'http://orange-ftgroup.com/2007/rd/xmda/bpm#'>
|
6
|
+
<!ENTITY rdfs 'http://www.w3.org/2000/01/rdf-schema#'>
|
7
|
+
]>
|
8
|
+
<rdf:RDF xmlns:rdf="&rdf;"
|
9
|
+
xmlns:kb="&kb;"
|
10
|
+
xmlns:bpm="&bpm;"
|
11
|
+
xmlns:rdfs="&rdfs;">
|
12
|
+
<bpm:timeOutTransition rdf:about="&kb;bpm_Instance_6"
|
13
|
+
bpm:timeOutDuration="454.0"
|
14
|
+
bpm:timeOutIsBusinessDuration="false"
|
15
|
+
bpm:timeOutUnit="seconds"
|
16
|
+
bpm:transitionName="ccv">
|
17
|
+
<rdfs:label>DeliverMaterial (deliveryProcess)(end (deliveryProcess))454.0secondsfalse</rdfs:label>
|
18
|
+
<bpm:inverse_of_leavingTransition rdf:resource="&kb;deliveryProcess3"/>
|
19
|
+
<bpm:destinationNode rdf:resource="&kb;deliveryProcess5"/>
|
20
|
+
</bpm:timeOutTransition>
|
21
|
+
<bpm:timeOutTransition rdf:about="&kb;bpm_Instance_7"
|
22
|
+
rdfs:label="end (deliveryProcess)(start (deliveryProcess))">
|
23
|
+
<bpm:inverse_of_leavingTransition rdf:resource="&kb;deliveryProcess2"/>
|
24
|
+
<bpm:destinationNode rdf:resource="&kb;deliveryProcess3"/>
|
25
|
+
</bpm:timeOutTransition>
|
26
|
+
<bpm:process rdf:about="&kb;deliveryProcess1"
|
27
|
+
bpm:processName="deliveryProcess"
|
28
|
+
rdfs:label="deliveryProcess">
|
29
|
+
<bpm:processDefinition xml:space='preserve'><![CDATA[<?xml version="1.0" encoding="ISO-8859-1"?><process-definition xmlns="urn:jbpm.org:jpdl-3.2" name="deliveryProcess"><start-state name="Start Process"><transition name="AfterStart" to="Material And Or Service Fork"/></start-state><fork name="Material And Or Service Fork"><transition name="SCAChoice" to="Any Service To Configure"></transition><transition name="MaterialDeliveryChoice" to="Any Material To Deliver"></transition></fork><join name="Service And Material Join"><transition name="AfterServiceAndMaterialJoin" to="Ok To Configure Billing"/></join><decision name="Any Service To Configure"><transition name="ToDoConfigureService" to="Configure And Activate Service"/><transition name="NoServiceConfiguration" to="SCA Reporting"/></decision><decision name="Any Material To Deliver"><transition name="ToDoDeliverMaterial" to="Deliver Material"/><transition name="NoMaterialDelivery" to="Material Delivery Reporting"/></decision><end-state name="End Process"/><state name="Configure And Activate Service"><transition name="AfterConfigureAndActivateService" to="SCA Reporting"/></state><state name="Deliver Material"><transition name="AfterDeliverMaterial" to="Material Delivery Reporting"/></state><state name="Configure Billing"><transition name="AfterConfigureBilling" to="End Process"/></state><decision name="Ok To Configure Billing"><transition name="ToDoConfigureBilling" to="Configure Billing"/><transition name="NoBillingConfiguration" to="End Process"/></decision><state name="Material Delivery Reporting"><transition name="AfterMaterialDeliveryReporting" to="Service And Material Join"/></state><state name="SCA Reporting"><transition name="AfterSCAReporting" to="Service And Material Join"/></state></process-definition>]]></bpm:processDefinition>
|
30
|
+
<bpm:processNode rdf:resource="&kb;deliveryProcess12"/>
|
31
|
+
<bpm:processNode rdf:resource="&kb;deliveryProcess15"/>
|
32
|
+
<bpm:processNode rdf:resource="&kb;deliveryProcess2"/>
|
33
|
+
<bpm:processNode rdf:resource="&kb;deliveryProcess3"/>
|
34
|
+
<bpm:processNode rdf:resource="&kb;deliveryProcess4"/>
|
35
|
+
<bpm:processNode rdf:resource="&kb;deliveryProcess5"/>
|
36
|
+
<bpm:processNode rdf:resource="&kb;deliveryProcess6"/>
|
37
|
+
<bpm:processNode rdf:resource="&kb;deliveryProcess7"/>
|
38
|
+
<bpm:processNode rdf:resource="&kb;deliveryProcess8"/>
|
39
|
+
<bpm:processNode rdf:resource="&kb;deliveryProcess9"/>
|
40
|
+
</bpm:process>
|
41
|
+
<bpm:transition rdf:about="&kb;deliveryProcess10"
|
42
|
+
bpm:transitionName="ToDoConfigureService">
|
43
|
+
<rdfs:label>ToDoConfigureService( ->ConfigureAndActivateService (deliveryProcess))</rdfs:label>
|
44
|
+
<bpm:destinationNode rdf:resource="&kb;deliveryProcess4"/>
|
45
|
+
<bpm:inverse_of_leavingTransition rdf:resource="&kb;deliveryProcess9"/>
|
46
|
+
</bpm:transition>
|
47
|
+
<bpm:transition rdf:about="&kb;deliveryProcess11"
|
48
|
+
bpm:transitionName="NoServiceConfiguration"
|
49
|
+
rdfs:label="NoServiceConfiguration( ->SCAReporting (deliveryProcess))">
|
50
|
+
<bpm:destinationNode rdf:resource="&kb;deliveryProcess8"/>
|
51
|
+
<bpm:inverse_of_leavingTransition rdf:resource="&kb;deliveryProcess9"/>
|
52
|
+
</bpm:transition>
|
53
|
+
<bpm:synchronousDecisionNode rdf:about="&kb;deliveryProcess12"
|
54
|
+
bpm:nodeName="AnyMaterialToDeliver"
|
55
|
+
rdfs:label="? AnyMaterialToDeliver ?">
|
56
|
+
<bpm:inverse_of_processNode rdf:resource="&kb;deliveryProcess1"/>
|
57
|
+
<bpm:leavingTransition rdf:resource="&kb;deliveryProcess13"/>
|
58
|
+
<bpm:leavingTransition rdf:resource="&kb;deliveryProcess14"/>
|
59
|
+
</bpm:synchronousDecisionNode>
|
60
|
+
<bpm:transition rdf:about="&kb;deliveryProcess13"
|
61
|
+
bpm:transitionName="ToDoDeliverMaterial"
|
62
|
+
rdfs:label="ToDoDeliverMaterial( ->DeliverMaterial (deliveryProcess))">
|
63
|
+
<bpm:inverse_of_leavingTransition rdf:resource="&kb;deliveryProcess12"/>
|
64
|
+
<bpm:destinationNode rdf:resource="&kb;deliveryProcess5"/>
|
65
|
+
</bpm:transition>
|
66
|
+
<bpm:transition rdf:about="&kb;deliveryProcess14"
|
67
|
+
bpm:transitionName="NoMaterialDelivery">
|
68
|
+
<rdfs:label>NoMaterialDelivery( ->MaterialDeliveryReporting (deliveryProcess))</rdfs:label>
|
69
|
+
<bpm:inverse_of_leavingTransition rdf:resource="&kb;deliveryProcess12"/>
|
70
|
+
<bpm:destinationNode rdf:resource="&kb;deliveryProcess7"/>
|
71
|
+
</bpm:transition>
|
72
|
+
<bpm:synchronousDecisionNode rdf:about="&kb;deliveryProcess15"
|
73
|
+
bpm:nodeName="OkToConfigureBilling"
|
74
|
+
rdfs:label="? OkToConfigureBilling ?">
|
75
|
+
<bpm:inverse_of_processNode rdf:resource="&kb;deliveryProcess1"/>
|
76
|
+
<bpm:leavingTransition rdf:resource="&kb;deliveryProcess16"/>
|
77
|
+
<bpm:leavingTransition rdf:resource="&kb;deliveryProcess17"/>
|
78
|
+
</bpm:synchronousDecisionNode>
|
79
|
+
<bpm:transition rdf:about="&kb;deliveryProcess16"
|
80
|
+
bpm:transitionName="ToDoConfigureBilling"
|
81
|
+
rdfs:label="ToDoConfigureBilling( ->ConfigureBilling (deliveryProcess))">
|
82
|
+
<bpm:inverse_of_leavingTransition rdf:resource="&kb;deliveryProcess15"/>
|
83
|
+
<bpm:destinationNode rdf:resource="&kb;deliveryProcess6"/>
|
84
|
+
</bpm:transition>
|
85
|
+
<bpm:transition rdf:about="&kb;deliveryProcess17"
|
86
|
+
bpm:transitionName="NoBillingConfiguration"
|
87
|
+
rdfs:label="NoBillingConfiguration( ->end (deliveryProcess))">
|
88
|
+
<bpm:inverse_of_leavingTransition rdf:resource="&kb;deliveryProcess15"/>
|
89
|
+
<bpm:destinationNode rdf:resource="&kb;deliveryProcess3"/>
|
90
|
+
</bpm:transition>
|
91
|
+
<bpm:startNode rdf:about="&kb;deliveryProcess2"
|
92
|
+
rdfs:label="start (deliveryProcess)">
|
93
|
+
<bpm:leavingTransition rdf:resource="&kb;bpm_Instance_7"/>
|
94
|
+
<bpm:inverse_of_processNode rdf:resource="&kb;deliveryProcess1"/>
|
95
|
+
</bpm:startNode>
|
96
|
+
<bpm:endNode rdf:about="&kb;deliveryProcess3"
|
97
|
+
rdfs:label="end (deliveryProcess)">
|
98
|
+
<bpm:inverse_of_destinationNode rdf:resource="&kb;bpm_Instance_7"/>
|
99
|
+
<bpm:inverse_of_processNode rdf:resource="&kb;deliveryProcess1"/>
|
100
|
+
<bpm:inverse_of_destinationNode rdf:resource="&kb;deliveryProcess17"/>
|
101
|
+
</bpm:endNode>
|
102
|
+
<bpm:asynchronousNode rdf:about="&kb;deliveryProcess4"
|
103
|
+
bpm:nodeName="ConfigureAndActivateService"
|
104
|
+
rdfs:label="ConfigureAndActivateService (deliveryProcess)">
|
105
|
+
<bpm:inverse_of_processNode rdf:resource="&kb;deliveryProcess1"/>
|
106
|
+
<bpm:inverse_of_destinationNode rdf:resource="&kb;deliveryProcess10"/>
|
107
|
+
</bpm:asynchronousNode>
|
108
|
+
<bpm:asynchronousNode rdf:about="&kb;deliveryProcess5"
|
109
|
+
bpm:nodeName="DeliverMaterial"
|
110
|
+
rdfs:label="DeliverMaterial (deliveryProcess)">
|
111
|
+
<bpm:inverse_of_destinationNode rdf:resource="&kb;bpm_Instance_6"/>
|
112
|
+
<bpm:inverse_of_processNode rdf:resource="&kb;deliveryProcess1"/>
|
113
|
+
<bpm:inverse_of_destinationNode rdf:resource="&kb;deliveryProcess13"/>
|
114
|
+
</bpm:asynchronousNode>
|
115
|
+
<bpm:asynchronousNode rdf:about="&kb;deliveryProcess6"
|
116
|
+
bpm:nodeName="ConfigureBilling"
|
117
|
+
rdfs:label="ConfigureBilling (deliveryProcess)">
|
118
|
+
<bpm:inverse_of_processNode rdf:resource="&kb;deliveryProcess1"/>
|
119
|
+
<bpm:inverse_of_destinationNode rdf:resource="&kb;deliveryProcess16"/>
|
120
|
+
</bpm:asynchronousNode>
|
121
|
+
<bpm:asynchronousNode rdf:about="&kb;deliveryProcess7"
|
122
|
+
bpm:nodeName="MaterialDeliveryReporting"
|
123
|
+
rdfs:label="MaterialDeliveryReporting (deliveryProcess)">
|
124
|
+
<bpm:inverse_of_processNode rdf:resource="&kb;deliveryProcess1"/>
|
125
|
+
<bpm:inverse_of_destinationNode rdf:resource="&kb;deliveryProcess14"/>
|
126
|
+
</bpm:asynchronousNode>
|
127
|
+
<bpm:asynchronousNode rdf:about="&kb;deliveryProcess8"
|
128
|
+
bpm:nodeName="SCAReporting"
|
129
|
+
rdfs:label="SCAReporting (deliveryProcess)">
|
130
|
+
<bpm:inverse_of_processNode rdf:resource="&kb;deliveryProcess1"/>
|
131
|
+
<bpm:inverse_of_destinationNode rdf:resource="&kb;deliveryProcess11"/>
|
132
|
+
</bpm:asynchronousNode>
|
133
|
+
<bpm:synchronousDecisionNode rdf:about="&kb;deliveryProcess9"
|
134
|
+
bpm:nodeName="AnyServiceToConfigure"
|
135
|
+
rdfs:label="? AnyServiceToConfigure ?">
|
136
|
+
<bpm:inverse_of_processNode rdf:resource="&kb;deliveryProcess1"/>
|
137
|
+
<bpm:leavingTransition rdf:resource="&kb;deliveryProcess10"/>
|
138
|
+
<bpm:leavingTransition rdf:resource="&kb;deliveryProcess11"/>
|
139
|
+
</bpm:synchronousDecisionNode>
|
140
|
+
</rdf:RDF>
|
@@ -0,0 +1,231 @@
|
|
1
|
+
<?xml version='1.0' encoding='UTF-8'?>
|
2
|
+
<!DOCTYPE rdf:RDF [
|
3
|
+
<!ENTITY rdf 'http://www.w3.org/1999/02/22-rdf-syntax-ns#'>
|
4
|
+
<!ENTITY a 'http://protege.stanford.edu/system#'>
|
5
|
+
<!ENTITY bpm 'http://orange-ftgroup.com/2007/rd/xmda/bpm#'>
|
6
|
+
<!ENTITY rdfs 'http://www.w3.org/2000/01/rdf-schema#'>
|
7
|
+
]>
|
8
|
+
<rdf:RDF xmlns:rdf="&rdf;"
|
9
|
+
xmlns:a="&a;"
|
10
|
+
xmlns:bpm="&bpm;"
|
11
|
+
xmlns:rdfs="&rdfs;">
|
12
|
+
<rdfs:Class rdf:about="&bpm;BPM"
|
13
|
+
a:role="abstract"
|
14
|
+
rdfs:label="bpm:BPM">
|
15
|
+
<rdfs:subClassOf rdf:resource="&rdfs;Resource"/>
|
16
|
+
</rdfs:Class>
|
17
|
+
<rdfs:Class rdf:about="&bpm;abstractTransition"
|
18
|
+
a:role="abstract"
|
19
|
+
rdfs:label="bpm:abstractTransition">
|
20
|
+
<rdfs:subClassOf rdf:resource="&bpm;BPM"/>
|
21
|
+
</rdfs:Class>
|
22
|
+
<rdfs:Class rdf:about="&bpm;action_Node"
|
23
|
+
a:role="abstract"
|
24
|
+
rdfs:label="bpm:action_Node">
|
25
|
+
<rdfs:subClassOf rdf:resource="&bpm;named_Node"/>
|
26
|
+
</rdfs:Class>
|
27
|
+
<rdfs:Class rdf:about="&bpm;asynchronousDecisionNode"
|
28
|
+
rdfs:label="bpm:asynchronousDecisionNode">
|
29
|
+
<rdfs:subClassOf rdf:resource="&bpm;decision_Node"/>
|
30
|
+
<rdfs:subClassOf rdf:resource="&bpm;destination_Node"/>
|
31
|
+
</rdfs:Class>
|
32
|
+
<rdfs:Class rdf:about="&bpm;asynchronousNode"
|
33
|
+
rdfs:label="bpm:asynchronousNode">
|
34
|
+
<rdfs:subClassOf rdf:resource="&bpm;destination_Node"/>
|
35
|
+
<rdfs:subClassOf rdf:resource="&bpm;source_Node"/>
|
36
|
+
</rdfs:Class>
|
37
|
+
<rdfs:Class rdf:about="&bpm;decision_Node"
|
38
|
+
a:role="abstract"
|
39
|
+
rdfs:label="bpm:decision_Node">
|
40
|
+
<rdfs:subClassOf rdf:resource="&bpm;named_Node"/>
|
41
|
+
<rdfs:subClassOf rdf:resource="&bpm;source_Node"/>
|
42
|
+
</rdfs:Class>
|
43
|
+
<rdf:Property rdf:about="&bpm;destinationNode"
|
44
|
+
a:maxCardinality="1"
|
45
|
+
a:minCardinality="1"
|
46
|
+
rdfs:label="bpm:destinationNode">
|
47
|
+
<rdfs:domain rdf:resource="&bpm;abstractTransition"/>
|
48
|
+
<rdfs:range rdf:resource="&bpm;destination_Node"/>
|
49
|
+
<a:inverseProperty rdf:resource="&bpm;inverse_of_destinationNode"/>
|
50
|
+
</rdf:Property>
|
51
|
+
<rdfs:Class rdf:about="&bpm;destination_Node"
|
52
|
+
a:role="abstract"
|
53
|
+
rdfs:label="bpm:destination_Node">
|
54
|
+
<rdfs:subClassOf rdf:resource="&bpm;named_Node"/>
|
55
|
+
</rdfs:Class>
|
56
|
+
<rdfs:Class rdf:about="&bpm;endNode"
|
57
|
+
rdfs:label="bpm:endNode">
|
58
|
+
<rdfs:subClassOf rdf:resource="&bpm;destination_Node"/>
|
59
|
+
</rdfs:Class>
|
60
|
+
<rdfs:Class rdf:about="&bpm;forkNode"
|
61
|
+
rdfs:label="bpm:forkNode">
|
62
|
+
<rdfs:subClassOf rdf:resource="&bpm;destination_Node"/>
|
63
|
+
<rdfs:subClassOf rdf:resource="&bpm;passive_Node"/>
|
64
|
+
<rdfs:subClassOf rdf:resource="&bpm;source_Node"/>
|
65
|
+
</rdfs:Class>
|
66
|
+
<rdf:Property rdf:about="&bpm;inverse_of_destinationNode"
|
67
|
+
rdfs:label="bpm:inverse_of_destinationNode">
|
68
|
+
<rdfs:range rdf:resource="&bpm;abstractTransition"/>
|
69
|
+
<a:inverseProperty rdf:resource="&bpm;destinationNode"/>
|
70
|
+
<rdfs:domain rdf:resource="&bpm;destination_Node"/>
|
71
|
+
</rdf:Property>
|
72
|
+
<rdf:Property rdf:about="&bpm;inverse_of_leavingTransition"
|
73
|
+
a:maxCardinality="1"
|
74
|
+
a:minCardinality="1"
|
75
|
+
rdfs:label="bpm:inverse_of_leavingTransition">
|
76
|
+
<rdfs:domain rdf:resource="&bpm;abstractTransition"/>
|
77
|
+
<a:inverseProperty rdf:resource="&bpm;leavingTransition"/>
|
78
|
+
<rdfs:range rdf:resource="&bpm;source_Node"/>
|
79
|
+
</rdf:Property>
|
80
|
+
<rdf:Property rdf:about="&bpm;inverse_of_processNode"
|
81
|
+
a:maxCardinality="1"
|
82
|
+
a:minCardinality="1"
|
83
|
+
rdfs:label="bpm:inverse_of_processNode">
|
84
|
+
<rdfs:domain rdf:resource="&bpm;node"/>
|
85
|
+
<rdfs:range rdf:resource="&bpm;process"/>
|
86
|
+
<a:inverseProperty rdf:resource="&bpm;processNode"/>
|
87
|
+
</rdf:Property>
|
88
|
+
<rdfs:Class rdf:about="&bpm;joinNode"
|
89
|
+
rdfs:label="bpm:joinNode">
|
90
|
+
<rdfs:subClassOf rdf:resource="&bpm;destination_Node"/>
|
91
|
+
<rdfs:subClassOf rdf:resource="&bpm;passive_Node"/>
|
92
|
+
<rdfs:subClassOf rdf:resource="&bpm;source_Node"/>
|
93
|
+
</rdfs:Class>
|
94
|
+
<rdf:Property rdf:about="&bpm;leavingTransition"
|
95
|
+
rdfs:comment="Transition leaving this node"
|
96
|
+
rdfs:label="bpm:leavingTransition">
|
97
|
+
<rdfs:range rdf:resource="&bpm;abstractTransition"/>
|
98
|
+
<rdfs:domain rdf:resource="&bpm;decision_Node"/>
|
99
|
+
<a:inverseProperty rdf:resource="&bpm;inverse_of_leavingTransition"/>
|
100
|
+
<rdfs:domain rdf:resource="&bpm;source_Node"/>
|
101
|
+
</rdf:Property>
|
102
|
+
<rdfs:Class rdf:about="&bpm;named_Node"
|
103
|
+
a:role="abstract"
|
104
|
+
rdfs:label="bpm:named_Node">
|
105
|
+
<rdfs:subClassOf rdf:resource="&bpm;node"/>
|
106
|
+
</rdfs:Class>
|
107
|
+
<rdfs:Class rdf:about="&bpm;node"
|
108
|
+
a:role="abstract"
|
109
|
+
rdfs:label="bpm:node">
|
110
|
+
<rdfs:subClassOf rdf:resource="&bpm;BPM"/>
|
111
|
+
</rdfs:Class>
|
112
|
+
<rdf:Property rdf:about="&bpm;nodeName"
|
113
|
+
a:maxCardinality="1"
|
114
|
+
a:minCardinality="1"
|
115
|
+
rdfs:label="bpm:nodeName">
|
116
|
+
<rdfs:domain rdf:resource="&bpm;named_Node"/>
|
117
|
+
<rdfs:range rdf:resource="&rdfs;Literal"/>
|
118
|
+
</rdf:Property>
|
119
|
+
<rdfs:Class rdf:about="&bpm;passive_Node"
|
120
|
+
a:role="abstract"
|
121
|
+
rdfs:label="bpm:passive_Node">
|
122
|
+
<rdfs:subClassOf rdf:resource="&bpm;named_Node"/>
|
123
|
+
</rdfs:Class>
|
124
|
+
<rdfs:Class rdf:about="&bpm;process"
|
125
|
+
rdfs:label="bpm:process">
|
126
|
+
<rdfs:subClassOf rdf:resource="&bpm;BPM"/>
|
127
|
+
</rdfs:Class>
|
128
|
+
<rdf:Property rdf:about="&bpm;processDefinition"
|
129
|
+
a:maxCardinality="1"
|
130
|
+
rdfs:label="bpm:processDefinition">
|
131
|
+
<rdfs:domain rdf:resource="&bpm;process"/>
|
132
|
+
<rdfs:range rdf:resource="&rdfs;Literal"/>
|
133
|
+
</rdf:Property>
|
134
|
+
<rdf:Property rdf:about="&bpm;processName"
|
135
|
+
a:maxCardinality="1"
|
136
|
+
rdfs:label="bpm:processName">
|
137
|
+
<rdfs:domain rdf:resource="&bpm;process"/>
|
138
|
+
<rdfs:range rdf:resource="&rdfs;Literal"/>
|
139
|
+
</rdf:Property>
|
140
|
+
<rdf:Property rdf:about="&bpm;processNode"
|
141
|
+
rdfs:comment="Nodes owned by the process"
|
142
|
+
rdfs:label="bpm:processNode">
|
143
|
+
<a:inverseProperty rdf:resource="&bpm;inverse_of_processNode"/>
|
144
|
+
<rdfs:range rdf:resource="&bpm;node"/>
|
145
|
+
<rdfs:domain rdf:resource="&bpm;process"/>
|
146
|
+
</rdf:Property>
|
147
|
+
<rdf:Property rdf:about="&bpm;processReturnType"
|
148
|
+
a:maxCardinality="1"
|
149
|
+
rdfs:label="bpm:processReturnType">
|
150
|
+
<rdfs:domain rdf:resource="&bpm;process"/>
|
151
|
+
<rdfs:range rdf:resource="&rdfs;Literal"/>
|
152
|
+
</rdf:Property>
|
153
|
+
<rdfs:Class rdf:about="&bpm;source_Node"
|
154
|
+
a:role="abstract"
|
155
|
+
rdfs:label="bpm:source_Node">
|
156
|
+
<rdfs:subClassOf rdf:resource="&bpm;named_Node"/>
|
157
|
+
</rdfs:Class>
|
158
|
+
<rdfs:Class rdf:about="&bpm;startNode"
|
159
|
+
rdfs:label="bpm:startNode">
|
160
|
+
<rdfs:subClassOf rdf:resource="&bpm;source_Node"/>
|
161
|
+
</rdfs:Class>
|
162
|
+
<rdfs:Class rdf:about="&bpm;synchronousDecisionNode"
|
163
|
+
rdfs:label="bpm:synchronousDecisionNode">
|
164
|
+
<rdfs:subClassOf rdf:resource="&bpm;decision_Node"/>
|
165
|
+
<rdfs:subClassOf rdf:resource="&bpm;destination_Node"/>
|
166
|
+
</rdfs:Class>
|
167
|
+
<rdfs:Class rdf:about="&bpm;synchronousNode"
|
168
|
+
rdfs:label="bpm:synchronousNode">
|
169
|
+
<rdfs:subClassOf rdf:resource="&bpm;destination_Node"/>
|
170
|
+
<rdfs:subClassOf rdf:resource="&bpm;source_Node"/>
|
171
|
+
</rdfs:Class>
|
172
|
+
<rdf:Property rdf:about="&bpm;timeOutDuration"
|
173
|
+
a:maxCardinality="1"
|
174
|
+
a:minCardinality="1"
|
175
|
+
a:range="float"
|
176
|
+
rdfs:label="bpm:timeOutDuration">
|
177
|
+
<rdfs:comment>Example (literal)
|
178
|
+
1 business day
|
179
|
+
1 day
|
180
|
+
1 business minute
|
181
|
+
...</rdfs:comment>
|
182
|
+
<rdfs:domain rdf:resource="&bpm;timeOutTransition"/>
|
183
|
+
<rdfs:range rdf:resource="&rdfs;Literal"/>
|
184
|
+
</rdf:Property>
|
185
|
+
<rdf:Property rdf:about="&bpm;timeOutIsBusinessDuration"
|
186
|
+
a:maxCardinality="1"
|
187
|
+
a:minCardinality="1"
|
188
|
+
a:range="boolean"
|
189
|
+
rdfs:label="bpm:timeOutIsBusinessDuration">
|
190
|
+
<rdfs:domain rdf:resource="&bpm;timeOutTransition"/>
|
191
|
+
<rdfs:range rdf:resource="&rdfs;Literal"/>
|
192
|
+
</rdf:Property>
|
193
|
+
<rdfs:Class rdf:about="&bpm;timeOutTransition"
|
194
|
+
rdfs:label="bpm:timeOutTransition">
|
195
|
+
<rdfs:subClassOf rdf:resource="&bpm;abstractTransition"/>
|
196
|
+
</rdfs:Class>
|
197
|
+
<rdf:Property rdf:about="&bpm;timeOutUnit"
|
198
|
+
a:maxCardinality="1"
|
199
|
+
a:minCardinality="1"
|
200
|
+
a:range="symbol"
|
201
|
+
rdfs:label="bpm:timeOutUnit">
|
202
|
+
<rdfs:domain rdf:resource="&bpm;timeOutTransition"/>
|
203
|
+
<rdfs:range rdf:resource="&rdfs;Literal"/>
|
204
|
+
<a:allowedValues>day</a:allowedValues>
|
205
|
+
<a:allowedValues>days</a:allowedValues>
|
206
|
+
<a:allowedValues>hour</a:allowedValues>
|
207
|
+
<a:allowedValues>hours</a:allowedValues>
|
208
|
+
<a:allowedValues>minute</a:allowedValues>
|
209
|
+
<a:allowedValues>minutes</a:allowedValues>
|
210
|
+
<a:allowedValues>month</a:allowedValues>
|
211
|
+
<a:allowedValues>months</a:allowedValues>
|
212
|
+
<a:allowedValues>second</a:allowedValues>
|
213
|
+
<a:allowedValues>seconds</a:allowedValues>
|
214
|
+
<a:allowedValues>week</a:allowedValues>
|
215
|
+
<a:allowedValues>weeks</a:allowedValues>
|
216
|
+
<a:allowedValues>year</a:allowedValues>
|
217
|
+
<a:allowedValues>years</a:allowedValues>
|
218
|
+
</rdf:Property>
|
219
|
+
<rdfs:Class rdf:about="&bpm;transition"
|
220
|
+
rdfs:label="bpm:transition">
|
221
|
+
<rdfs:subClassOf rdf:resource="&bpm;abstractTransition"/>
|
222
|
+
</rdfs:Class>
|
223
|
+
<rdf:Property rdf:about="&bpm;transitionName"
|
224
|
+
a:maxCardinality="1"
|
225
|
+
a:minCardinality="1"
|
226
|
+
rdfs:comment="Name of the transition"
|
227
|
+
rdfs:label="bpm:transitionName">
|
228
|
+
<rdfs:domain rdf:resource="&bpm;abstractTransition"/>
|
229
|
+
<rdfs:range rdf:resource="&rdfs;Literal"/>
|
230
|
+
</rdf:Property>
|
231
|
+
</rdf:RDF>
|
@@ -0,0 +1,52 @@
|
|
1
|
+
module Mrdf_Model
|
2
|
+
def bpm_graphGen_dot
|
3
|
+
bpm_allProcess { |res|
|
4
|
+
res.bpm_graphGen_dot
|
5
|
+
}
|
6
|
+
end
|
7
|
+
end
|
8
|
+
module Mbpm_AsynchronousNode
|
9
|
+
def bpm_dotStyle
|
10
|
+
return %{label="#{bpm_nodeName}"}
|
11
|
+
end
|
12
|
+
end
|
13
|
+
module Mbpm_decision_Node
|
14
|
+
def bpm_dotStyle
|
15
|
+
return %{label="? #{bpm_nodeName} ?"}
|
16
|
+
end
|
17
|
+
end
|
18
|
+
module Mbpm_SynchronousNode
|
19
|
+
def bpm_dotStyle
|
20
|
+
return %{label="#{bpm_nodeName}"}
|
21
|
+
end
|
22
|
+
end
|
23
|
+
module Mbpm_startNode
|
24
|
+
def bpm_dotStyle
|
25
|
+
return %{label="#{bpm_nodeName}"}
|
26
|
+
end
|
27
|
+
end
|
28
|
+
module Mbpm_endNode
|
29
|
+
def bpm_dotStyle
|
30
|
+
return %{label="#{bpm_nodeName}"}
|
31
|
+
end
|
32
|
+
end
|
33
|
+
module Mbpm_asynchronousNode
|
34
|
+
def bpm_dotStyle
|
35
|
+
return %{label="#{bpm_nodeName}"}
|
36
|
+
end
|
37
|
+
end
|
38
|
+
module Mbpm_synchronousNode
|
39
|
+
def bpm_dotStyle
|
40
|
+
return %{label="#{bpm_nodeName}"}
|
41
|
+
end
|
42
|
+
end
|
43
|
+
module Mbpm_synchronousDecisionNode
|
44
|
+
def bpm_dotStyle
|
45
|
+
return %{label="#{bpm_nodeName}"}
|
46
|
+
end
|
47
|
+
end
|
48
|
+
module Mbpm_asynchronousDecisionNode
|
49
|
+
def bpm_dotStyle
|
50
|
+
return %{label="#{bpm_nodeName}"}
|
51
|
+
end
|
52
|
+
end
|
@@ -0,0 +1,280 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
module Mrdf_Model
|
4
|
+
def bpm_dumpJPDL
|
5
|
+
bpm_allProcess.each { |c|
|
6
|
+
puts ""
|
7
|
+
puts "#{mtk_stss{c.bpm_writeJPDL}}"
|
8
|
+
}
|
9
|
+
end
|
10
|
+
def bpm_genJPDLDeploy
|
11
|
+
bpm_allProcess.each { |c|
|
12
|
+
}
|
13
|
+
end
|
14
|
+
|
15
|
+
# Load a BPM from a JPDL XML file
|
16
|
+
def bpm_loadJPDL(fileNameJPDL)
|
17
|
+
nameHash=Hash.new
|
18
|
+
file = File.new( fileNameJPDL)
|
19
|
+
doc = REXML::Document.new file
|
20
|
+
i=0
|
21
|
+
pname=doc.elements["/process-definition"].attribute("name").to_s
|
22
|
+
#puts "pname=#{pname}"
|
23
|
+
|
24
|
+
if (pname.nil? || pname=="")
|
25
|
+
log.error { %{Error detected
|
26
|
+
********* PROCESS WITHOUT NAME ****************
|
27
|
+
This software has detected that process stored
|
28
|
+
in file #{fileNameJPDL} has a blank name.
|
29
|
+
********* PROCESS WITHOUT NAME ****************
|
30
|
+
}}
|
31
|
+
|
32
|
+
exit 1
|
33
|
+
end
|
34
|
+
|
35
|
+
|
36
|
+
pr=Cbpm_process.new(self,"#{pname}_#{i}")
|
37
|
+
#Le nom du process peut contenir le type de retour du process
|
38
|
+
pnames = pname.split('|')
|
39
|
+
pr.bpm_processName=pnames[0]
|
40
|
+
if pnames.length > 1
|
41
|
+
pr.bpm_processReturnType = pnames[1]
|
42
|
+
end
|
43
|
+
|
44
|
+
doc.elements.each("/process-definition/*") { |elt|
|
45
|
+
# t is the XML node name() which is the type of the node
|
46
|
+
nodeType=elt.elements["name()"].to_s
|
47
|
+
i=i+1 ; obj=nil
|
48
|
+
name=elt.attribute("name").to_s
|
49
|
+
node_uri="node_#{pname}_#{name}"
|
50
|
+
|
51
|
+
if (name.nil? || name=="")
|
52
|
+
log.error { %{Error detected
|
53
|
+
********* PROCESS WITHOUT NAME ****************
|
54
|
+
This software has detected that process stored
|
55
|
+
in file #{fileNameJPDL} has a blank name.
|
56
|
+
********* PROCESS WITHOUT NAME ****************
|
57
|
+
}}
|
58
|
+
|
59
|
+
exit 1
|
60
|
+
end
|
61
|
+
if nodeType==Cbpm_forkNode::BPM_JPDL_TYPE_NAME
|
62
|
+
obj=Cbpm_forkNode.new(self,node_uri)
|
63
|
+
elsif nodeType==Cbpm_joinNode::BPM_JPDL_TYPE_NAME
|
64
|
+
obj=Cbpm_joinNode.new(self,node_uri)
|
65
|
+
elsif nodeType==Cbpm_endNode::BPM_JPDL_TYPE_NAME
|
66
|
+
obj=Cbpm_endNode.new(self,node_uri)
|
67
|
+
elsif nodeType==Cbpm_startNode::BPM_JPDL_TYPE_NAME
|
68
|
+
obj=Cbpm_startNode.new(self,node_uri)
|
69
|
+
elsif nodeType==Cbpm_synchronousDecisionNode::BPM_JPDL_TYPE_NAME
|
70
|
+
obj=Cbpm_synchronousDecisionNode.new(self,node_uri)
|
71
|
+
elsif nodeType==Cbpm_synchronousNode::BPM_JPDL_TYPE_NAME
|
72
|
+
obj=Cbpm_synchronousNode.new(self,node_uri)
|
73
|
+
elsif nodeType==Cbpm_asynchronousNode::BPM_JPDL_TYPE_NAME
|
74
|
+
obj=Cbpm_asynchronousNode.new(self,node_uri)
|
75
|
+
#elsif #TODO: asynchronous decision node
|
76
|
+
else
|
77
|
+
throw Exception.new("unknown jpdl node type '#{nodeType}' for process #{pr.bpm_processName} in file #{fileNameJPDL}")
|
78
|
+
end
|
79
|
+
|
80
|
+
# this node is part of pr process
|
81
|
+
pr.bpm_processNode_add(obj)
|
82
|
+
|
83
|
+
if obj.kind_of?(Mbpm_named_Node)
|
84
|
+
obj.bpm_nodeName=name
|
85
|
+
end
|
86
|
+
nameHash[name]=obj
|
87
|
+
}
|
88
|
+
|
89
|
+
timerHash=Hash.new
|
90
|
+
|
91
|
+
doc.elements.each("//timer") { |elt|
|
92
|
+
from=nameHash[elt.elements[".."].attribute("name").to_s]
|
93
|
+
#Le nom du timer est en fait le nom de la transition de sortie du timer
|
94
|
+
puts "Timer found:#{elt} "
|
95
|
+
name=elt.attribute("transition")
|
96
|
+
|
97
|
+
tr=Cbpm_timeOutTransition.new(self,"tr_#{pname}_#{name}")
|
98
|
+
tr.bpm_transitionName=name.to_s
|
99
|
+
from.bpm_leavingTransition_add(tr)
|
100
|
+
|
101
|
+
#Gestion du temps
|
102
|
+
jpdlDuration = "#{elt.attribute("duration")}"
|
103
|
+
jpdlSplit = jpdlDuration.split(" ")
|
104
|
+
tr.bpm_timeOutDuration=jpdlSplit[0]
|
105
|
+
tr.bpm_timeOutUnit=jpdlSplit[jpdlSplit.length - 1]
|
106
|
+
tr.bpm_timeOutIsBusinessDuration=RDF_FALSE
|
107
|
+
jpdlSplit.each { |element|
|
108
|
+
if "business"==element
|
109
|
+
tr.bpm_timeOutIsBusinessDuration=RDF_TRUE
|
110
|
+
break
|
111
|
+
end
|
112
|
+
}
|
113
|
+
|
114
|
+
timerHash["#{name}"]=tr
|
115
|
+
}
|
116
|
+
|
117
|
+
doc.elements.each("//transition") { |elt|
|
118
|
+
from=nameHash[elt.elements[".."].attribute("name").to_s]
|
119
|
+
to=nameHash[elt.attribute("to").to_s]
|
120
|
+
name=elt.attribute("name")
|
121
|
+
|
122
|
+
#On regarde si la transition porte le m�me nom que la transition du timer
|
123
|
+
tr = timerHash["#{name}"]
|
124
|
+
if tr.nil?
|
125
|
+
# Ce n'est pas une transition de timer
|
126
|
+
tr=Cbpm_transition.new(self,"tr_#{pname}_#{name}")
|
127
|
+
tr.bpm_transitionName=name.to_s
|
128
|
+
from.bpm_leavingTransition_add(tr)
|
129
|
+
end
|
130
|
+
#On rajoute dans tous les cas le noeud de sortie
|
131
|
+
tr.bpm_destinationNode=to
|
132
|
+
}
|
133
|
+
end
|
134
|
+
end
|
135
|
+
|
136
|
+
module Mbpm_process
|
137
|
+
#write element as XML JPDL
|
138
|
+
def bpm_writeJPDL
|
139
|
+
mtk_default_context( :bpm_rawJPDL => true) {
|
140
|
+
write(%{<?xml version="1.0" encoding="UTF-8"?>\n})
|
141
|
+
write(%{<process-definition\n xmlns="urn:jbpm.org:jpdl-3.2"\n name="#{self.bpm_processName}">\n})
|
142
|
+
bpm_processNode.each {|n|
|
143
|
+
n.bpm_writeJPDL
|
144
|
+
}
|
145
|
+
write(%{</process-definition>\n})
|
146
|
+
}
|
147
|
+
end
|
148
|
+
def bpm_processReturnTypeOrNullReturn
|
149
|
+
if self.bpm_processReturnType_one0.nil?
|
150
|
+
return BPM::NullReturn
|
151
|
+
end
|
152
|
+
return self.bpm_processReturnType
|
153
|
+
end
|
154
|
+
end
|
155
|
+
|
156
|
+
module Mbpm_abstractTransition
|
157
|
+
|
158
|
+
def bpm_DefaultOrTransitionName
|
159
|
+
|
160
|
+
if self.bpm_transitionName_one0.nil?
|
161
|
+
return "default"
|
162
|
+
end
|
163
|
+
return self.bpm_transitionName
|
164
|
+
end
|
165
|
+
|
166
|
+
#write element as XML JPDL
|
167
|
+
def bpm_writeJPDL
|
168
|
+
bpm_writeSimpleTransition
|
169
|
+
end
|
170
|
+
def bpm_writeSimpleTransition
|
171
|
+
write(%{ <transition name="#{bpm_DefaultOrTransitionName}" to="#{self.bpm_destinationNode_one.bpmNodeName}">\n})
|
172
|
+
bpm_writeJPDL_extensions
|
173
|
+
write(%{ </transition>\n})
|
174
|
+
end
|
175
|
+
end
|
176
|
+
|
177
|
+
module Mbpm_timeOutTransition
|
178
|
+
|
179
|
+
def bpm_writeJPDL
|
180
|
+
businessUnit = ""
|
181
|
+
if self.bpm_timeOutIsBusinessDuration?
|
182
|
+
businessUnit = "business "
|
183
|
+
end
|
184
|
+
write(%{ <timer name=\"#{bpm_DefaultOrTransitionName}\" duedate=\"#{bpm_timeOutDuration} #{businessUnit}#{bpm_timeOutUnit}\" transition=\"#{bpm_DefaultOrTransitionName}\" />\n})
|
185
|
+
bpm_writeSimpleTransition
|
186
|
+
end
|
187
|
+
|
188
|
+
|
189
|
+
end
|
190
|
+
|
191
|
+
def bpm_writeJPDL_extensions
|
192
|
+
return if context[:bpm_rawJPDL]
|
193
|
+
write(%{ <action name="action" class="com.incomplete.action.MessageActionGenericHandler" />\n}) unless context[:bpm_rawJPDL]
|
194
|
+
end
|
195
|
+
|
196
|
+
module Mbpm_node
|
197
|
+
#write element as XML JPDL
|
198
|
+
JPDL_ACTION_NOTIF=%{<action name="action" class="com.incomplete.action.ExceptionActionGenericHandler"/>}
|
199
|
+
JPDL_EXCEPTION_NOTIF=%{<action name="action" class="com.incomplete.action.ExceptionActionGenericHandler"/>}
|
200
|
+
JPDL_EVENTS=["node-enter","node-leave","before-signal","after-signal"]
|
201
|
+
JPDL_EXCEPTIONS=["exception-handler"]
|
202
|
+
|
203
|
+
def bpmNodeName
|
204
|
+
return self.bpm_nodeName
|
205
|
+
end
|
206
|
+
|
207
|
+
def bpm_writeJPDL
|
208
|
+
nt=bpm_getJPDLTypeName
|
209
|
+
write(%{ <#{nt} name="#{self.bpmNodeName}">\n})
|
210
|
+
bpm_writeJPDL_extensions
|
211
|
+
bpm_leavingTransition.each { |t|
|
212
|
+
t.bpm_writeJPDL
|
213
|
+
} if kind_of?(Mbpm_source_Node)
|
214
|
+
write(%{ </#{nt}>\n})
|
215
|
+
end
|
216
|
+
def bpm_writeJPDL_extensions
|
217
|
+
return if context[:bpm_rawJPDL]
|
218
|
+
if kind_of?(Mbpm_decision_Node)
|
219
|
+
write(%{<handler class="com.incomplete.action.MessageActionGenericHandler"/>\n})
|
220
|
+
end
|
221
|
+
JPDL_EVENTS.each { |evt|
|
222
|
+
write(%{ <event type="#{evt}">\n})
|
223
|
+
write(%{ #{JPDL_ACTION_NOTIF}\n})
|
224
|
+
write(%{ </event>\n})
|
225
|
+
}
|
226
|
+
write(%{ <exception-handler exception-class="com.incomplete.process.ProcessException">\n})
|
227
|
+
write(%{ #{JPDL_EXCEPTIONS}\n})
|
228
|
+
write(%{ </exception-handler>\n})
|
229
|
+
|
230
|
+
end
|
231
|
+
end
|
232
|
+
|
233
|
+
module Mbpm_forkNode
|
234
|
+
BPM_JPDL_TYPE_NAME="fork"
|
235
|
+
def bpm_getJPDLTypeName
|
236
|
+
return BPM_JPDL_TYPE_NAME
|
237
|
+
end
|
238
|
+
end
|
239
|
+
module Mbpm_joinNode
|
240
|
+
BPM_JPDL_TYPE_NAME="join"
|
241
|
+
def bpm_getJPDLTypeName
|
242
|
+
return BPM_JPDL_TYPE_NAME
|
243
|
+
end
|
244
|
+
end
|
245
|
+
module Mbpm_startNode
|
246
|
+
BPM_JPDL_TYPE_NAME="start-state"
|
247
|
+
def bpm_getJPDLTypeName
|
248
|
+
return BPM_JPDL_TYPE_NAME
|
249
|
+
end
|
250
|
+
end
|
251
|
+
module Mbpm_endNode
|
252
|
+
BPM_JPDL_TYPE_NAME="end-state"
|
253
|
+
def bpm_getJPDLTypeName
|
254
|
+
return BPM_JPDL_TYPE_NAME
|
255
|
+
end
|
256
|
+
end
|
257
|
+
module Mbpm_synchronousDecisionNode
|
258
|
+
BPM_JPDL_TYPE_NAME="decision"
|
259
|
+
def bpm_getJPDLTypeName
|
260
|
+
return "state"
|
261
|
+
end
|
262
|
+
end
|
263
|
+
module Mbpm_synchronousNode
|
264
|
+
BPM_JPDL_TYPE_NAME="node"
|
265
|
+
def bpm_getJPDLTypeName
|
266
|
+
return "state"
|
267
|
+
end
|
268
|
+
end
|
269
|
+
module Mbpm_asynchronousNode
|
270
|
+
BPM_JPDL_TYPE_NAME="state"
|
271
|
+
def bpm_getJPDLTypeName
|
272
|
+
return BPM_JPDL_TYPE_NAME
|
273
|
+
end
|
274
|
+
def bpmNodeName
|
275
|
+
#On rajoute state pour que l'ex�cuteur de process fasse la diff�rence entre
|
276
|
+
#un state et un node
|
277
|
+
return "state:#{self.bpm_nodeName}"
|
278
|
+
end
|
279
|
+
|
280
|
+
end
|