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