ontomde-uml2-jpdl 1.0.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -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