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.
@@ -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,5 @@
1
+ module BPM
2
+ NullReturn="xmda.bpm.client.NullReturn"
3
+ BpmClass="xmda.bpm.client.Process"
4
+ CallbackClass="xmda.bpm.api.XmdaCallbackHandler"
5
+ end
@@ -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