cpee 1.3.158 → 1.3.159
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.
- checksums.yaml +4 -4
- data/cpee.gemspec +1 -1
- data/lib/cpee/processtransformation/bpmn2.rb +9 -2
- data/lib/cpee/processtransformation/structures.rb +15 -9
- data/server/instances/1/properties.xml +101 -69
- data/server/instances/10/properties.xml +70 -106
- data/server/instances/11/properties.xml +73 -133
- data/server/instances/12/notifications/8d7f2ae546a742fce3a0a488266ea51d/consumer-secret +1 -0
- data/server/instances/12/notifications/8d7f2ae546a742fce3a0a488266ea51d/producer-secret +1 -0
- data/server/instances/12/notifications/8d7f2ae546a742fce3a0a488266ea51d/subscription.xml +6 -0
- data/server/instances/12/notifications/b0a0abbb8ad6fb81c579c4e97829d681/consumer-secret +1 -0
- data/server/instances/12/notifications/b0a0abbb8ad6fb81c579c4e97829d681/producer-secret +1 -0
- data/server/instances/{1/notifications/d12eff1ac812661c05d7090ce7394cf9 → 12/notifications/b0a0abbb8ad6fb81c579c4e97829d681}/subscription.xml +0 -0
- data/server/instances/12/properties.xml +43 -0
- data/server/instances/2/properties.xml +44 -191
- data/server/instances/3/properties.xml +44 -70
- data/server/instances/4/properties.xml +68 -28
- data/server/instances/5/properties.xml +70 -10
- data/server/instances/6/properties.xml +55 -175
- data/server/instances/7/properties.xml +52 -118
- data/server/instances/8/properties.xml +50 -112
- data/server/instances/9/properties.xml +47 -115
- data/server/resources/properties.init +1 -1
- metadata +106 -105
- data/server/instances/1/notifications/d12eff1ac812661c05d7090ce7394cf9/consumer-secret +0 -1
- data/server/instances/1/notifications/d12eff1ac812661c05d7090ce7394cf9/producer-secret +0 -1
- data/server/instances/11/notifications/e0910b6b5536976209bca471780066f1/consumer-secret +0 -1
- data/server/instances/11/notifications/e0910b6b5536976209bca471780066f1/producer-secret +0 -1
- data/server/instances/11/notifications/e0910b6b5536976209bca471780066f1/subscription.xml +0 -27
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 7c839fcbe55d2d855568d6467466d136d756288c
|
|
4
|
+
data.tar.gz: 74c5767ec1e718a38f440c01005922f54ba90920
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 532002e583957edbb012a7f9e62282680fc1dd59c5c495349762250de952822f96ccd94664ed05f9eab26306a4edd537aed9fc9001a0a1425117049a8b0cab21
|
|
7
|
+
data.tar.gz: d4bcf178ce517f1df5cbd3f3278976d6c1da7610f74db0084d459cf321eb2a5a160c06896dcba9a8f04e8c88a3108f86f11a5c127ac13b3c09aea00163f2ecac
|
data/cpee.gemspec
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Gem::Specification.new do |s|
|
|
2
2
|
s.name = "cpee"
|
|
3
|
-
s.version = "1.3.
|
|
3
|
+
s.version = "1.3.159"
|
|
4
4
|
s.platform = Gem::Platform::RUBY
|
|
5
5
|
s.license = "LGPL-3"
|
|
6
6
|
s.summary = "Preliminary release of cloud process execution engine (cpee). If you just need workflow execution, without a rest/xmpp service exposing it, then use WEEL"
|
|
@@ -206,9 +206,10 @@ module CPEE
|
|
|
206
206
|
end
|
|
207
207
|
end
|
|
208
208
|
end
|
|
209
|
+
nic = traces.incoming(node)
|
|
209
210
|
if node == enode
|
|
210
211
|
traces.shift_all
|
|
211
|
-
elsif
|
|
212
|
+
elsif nic == 1 || branch.is_a?(CPEE::ProcessTransformation::InfiniteLoop)
|
|
212
213
|
traces.shift_all
|
|
213
214
|
n = map_node(node)
|
|
214
215
|
if !(n.nil? || (n.container? && (node.outgoing <=1 || traces.finished?)))
|
|
@@ -218,6 +219,7 @@ module CPEE
|
|
|
218
219
|
loops = traces.loops
|
|
219
220
|
if node.type == :exclusiveGateway || traces.all_loops?
|
|
220
221
|
### as the first is a decision node, just remove and continue
|
|
222
|
+
### change to nic
|
|
221
223
|
if node.incoming == 2
|
|
222
224
|
node.incoming = 1
|
|
223
225
|
branch << Loop.new(node.id)
|
|
@@ -274,7 +276,12 @@ module CPEE
|
|
|
274
276
|
end
|
|
275
277
|
endnode.incoming -= 1 unless endnode.nil?
|
|
276
278
|
end
|
|
277
|
-
traces
|
|
279
|
+
# remove all traces that don't start with endnode to account for loops
|
|
280
|
+
if endnode.nil?
|
|
281
|
+
traces.empty!
|
|
282
|
+
else
|
|
283
|
+
traces.remove_by_endnode(endnode)
|
|
284
|
+
end
|
|
278
285
|
### all before is reduced to one incoming arrow
|
|
279
286
|
### if now there is still more than one incoming we have a loop situation
|
|
280
287
|
### where the end of a branching statement is also the starting/endpoint
|
|
@@ -271,6 +271,11 @@ module CPEE
|
|
|
271
271
|
self.delete(t)
|
|
272
272
|
end
|
|
273
273
|
end
|
|
274
|
+
def remove_by_endnode(enode)
|
|
275
|
+
self.delete_if do |t|
|
|
276
|
+
t[0] != enode
|
|
277
|
+
end
|
|
278
|
+
end
|
|
274
279
|
|
|
275
280
|
def empty!
|
|
276
281
|
self.delete_if{true}
|
|
@@ -311,14 +316,13 @@ module CPEE
|
|
|
311
316
|
end
|
|
312
317
|
|
|
313
318
|
# future use
|
|
314
|
-
def incoming
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
tcount
|
|
319
|
-
else
|
|
320
|
-
raise "Wrong Question"
|
|
319
|
+
def incoming(node)
|
|
320
|
+
tcount = 1
|
|
321
|
+
self.each do |t|
|
|
322
|
+
break if t.length == 1
|
|
323
|
+
tcount += 1 if t.last == node
|
|
321
324
|
end
|
|
325
|
+
tcount
|
|
322
326
|
end
|
|
323
327
|
|
|
324
328
|
def include_in_all?(e)
|
|
@@ -341,11 +345,12 @@ module CPEE
|
|
|
341
345
|
|
|
342
346
|
def add_breaks(context)
|
|
343
347
|
trueloops = self.find_all{ |t| t.last == t.first }.length
|
|
348
|
+
tb = Break.new(context,1)
|
|
344
349
|
if trueloops == self.length
|
|
345
350
|
self << [self.first_node] ### the blank conditional so that we get a break
|
|
346
351
|
else
|
|
347
352
|
self.each do |t|
|
|
348
|
-
t <<
|
|
353
|
+
t << tb unless t.last == t.first ### an explicit break
|
|
349
354
|
end
|
|
350
355
|
end
|
|
351
356
|
end
|
|
@@ -439,7 +444,8 @@ module CPEE
|
|
|
439
444
|
def find_endnode
|
|
440
445
|
# supress loops
|
|
441
446
|
trcs = self.dup
|
|
442
|
-
#
|
|
447
|
+
# dangerous TODO
|
|
448
|
+
trcs.delete_if { |t| t.uniq.length < t.length }
|
|
443
449
|
|
|
444
450
|
# find common node (except loops)
|
|
445
451
|
enode = nil
|
|
@@ -1,65 +1,90 @@
|
|
|
1
1
|
<properties xmlns="http://riddl.org/ns/common-patterns/properties/1.0">
|
|
2
|
-
<info>
|
|
3
|
-
<state>
|
|
2
|
+
<info>Enter info here</info>
|
|
3
|
+
<state>ready</state>
|
|
4
4
|
<handlerwrapper>DefaultHandlerWrapper</handlerwrapper>
|
|
5
|
-
<positions
|
|
6
|
-
<a1>after</a1>
|
|
7
|
-
</positions>
|
|
5
|
+
<positions/>
|
|
8
6
|
<dataelements>
|
|
9
|
-
<
|
|
7
|
+
<persons>3</persons>
|
|
8
|
+
<card>Visa_12345</card>
|
|
9
|
+
<airline>null</airline>
|
|
10
|
+
<hotels>[]</hotels>
|
|
11
|
+
<from>Vienna</from>
|
|
12
|
+
<to>Prague</to>
|
|
13
|
+
<costs>0</costs>
|
|
10
14
|
</dataelements>
|
|
11
15
|
<endpoints>
|
|
12
|
-
<
|
|
16
|
+
<bookAir>http://gruppe.wst.univie.ac.at/~mangler/services/airline.php</bookAir>
|
|
17
|
+
<bookHotel>http://gruppe.wst.univie.ac.at/~mangler/services/hotel.php</bookHotel>
|
|
18
|
+
<approve>http://gruppe.wst.univie.ac.at/~mangler/services/approval.php</approve>
|
|
13
19
|
</endpoints>
|
|
14
|
-
<dsl>
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
+
<dsl>call :a1, :bookAir, { :method => "post", :parameters => { :from => data.from, :to => data.to, :persons => data.persons } }, <<-end
|
|
21
|
+
data.airline = result.value('id')
|
|
22
|
+
data.costs += result.value('costs').to_f
|
|
23
|
+
status.update 1, 'Hotel'
|
|
24
|
+
end
|
|
25
|
+
parallel do
|
|
26
|
+
loop pre_test{data.persons > 0} do
|
|
27
|
+
parallel_branch data.persons do |p|
|
|
28
|
+
call :a2, :bookHotel, { :method => "post", :parameters => { :to => data.to } }, <<-end
|
|
29
|
+
data.hotels << result.value('id')
|
|
30
|
+
data.costs += result.value('costs').to_f
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
manipulate :a3, <<-end
|
|
34
|
+
data.persons -= 1
|
|
35
|
+
end
|
|
20
36
|
end
|
|
21
37
|
end
|
|
22
|
-
|
|
23
|
-
data.
|
|
38
|
+
choose do
|
|
39
|
+
alternative data.costs > 700 do
|
|
40
|
+
call :a4, :approve, { :method => "post", :parameters => { :costs => data.costs } }
|
|
41
|
+
end
|
|
24
42
|
end
|
|
25
43
|
</dsl>
|
|
26
44
|
<dslx>
|
|
27
45
|
<description xmlns="http://cpee.org/ns/description/1.0">
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
<
|
|
32
|
-
<
|
|
33
|
-
|
|
34
|
-
|
|
46
|
+
<call id="a1" endpoint="bookAir">
|
|
47
|
+
<parameters>
|
|
48
|
+
<method>post</method>
|
|
49
|
+
<parameters>
|
|
50
|
+
<from>data.from</from>
|
|
51
|
+
<to>data.to</to>
|
|
52
|
+
<persons>data.persons</persons>
|
|
53
|
+
</parameters>
|
|
54
|
+
</parameters>
|
|
55
|
+
<manipulate output="result"> data.airline = result.value('id')
|
|
56
|
+
data.costs += result.value('costs').to_f
|
|
57
|
+
status.update 1, 'Hotel'</manipulate>
|
|
58
|
+
</call>
|
|
59
|
+
<parallel>
|
|
60
|
+
<loop pre_test="data.persons > 0">
|
|
61
|
+
<parallel_branch pass="data.persons" local="p">
|
|
62
|
+
<call id="a2" endpoint="bookHotel">
|
|
35
63
|
<parameters>
|
|
36
|
-
<
|
|
64
|
+
<method>post</method>
|
|
65
|
+
<parameters>
|
|
66
|
+
<to>data.to</to>
|
|
67
|
+
</parameters>
|
|
37
68
|
</parameters>
|
|
38
|
-
|
|
39
|
-
</
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
<
|
|
69
|
+
<manipulate output="result"> data.hotels << result.value('id')
|
|
70
|
+
data.costs += result.value('costs').to_f</manipulate>
|
|
71
|
+
</call>
|
|
72
|
+
</parallel_branch>
|
|
73
|
+
<manipulate id="a3"> data.persons -= 1</manipulate>
|
|
74
|
+
</loop>
|
|
75
|
+
</parallel>
|
|
76
|
+
<choose>
|
|
77
|
+
<alternative condition="data.costs > 700">
|
|
78
|
+
<call id="a4" endpoint="approve">
|
|
43
79
|
<parameters>
|
|
44
|
-
<label/>
|
|
45
80
|
<method>post</method>
|
|
46
81
|
<parameters>
|
|
47
|
-
<
|
|
82
|
+
<costs>data.costs</costs>
|
|
48
83
|
</parameters>
|
|
49
84
|
</parameters>
|
|
50
85
|
</call>
|
|
51
|
-
</
|
|
52
|
-
</
|
|
53
|
-
<call id="a2" endpoint="timeout">
|
|
54
|
-
<parameters>
|
|
55
|
-
<label/>
|
|
56
|
-
<method>post</method>
|
|
57
|
-
<parameters>
|
|
58
|
-
<timeout>b</timeout>
|
|
59
|
-
</parameters>
|
|
60
|
-
</parameters>
|
|
61
|
-
<manipulate>data.x += "a2,"</manipulate>
|
|
62
|
-
</call>
|
|
86
|
+
</alternative>
|
|
87
|
+
</choose>
|
|
63
88
|
</description>
|
|
64
89
|
</dslx>
|
|
65
90
|
<status>
|
|
@@ -68,41 +93,48 @@ end
|
|
|
68
93
|
</status>
|
|
69
94
|
<description>
|
|
70
95
|
<description xmlns="http://cpee.org/ns/description/1.0">
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
<
|
|
75
|
-
<
|
|
76
|
-
|
|
77
|
-
|
|
96
|
+
<call id="a1" endpoint="bookAir">
|
|
97
|
+
<parameters>
|
|
98
|
+
<method>post</method>
|
|
99
|
+
<parameters>
|
|
100
|
+
<from>data.from</from>
|
|
101
|
+
<to>data.to</to>
|
|
102
|
+
<persons>data.persons</persons>
|
|
103
|
+
</parameters>
|
|
104
|
+
</parameters>
|
|
105
|
+
<manipulate output="result"> data.airline = result.value('id')
|
|
106
|
+
data.costs += result.value('costs').to_f
|
|
107
|
+
status.update 1, 'Hotel'</manipulate>
|
|
108
|
+
</call>
|
|
109
|
+
<parallel>
|
|
110
|
+
<loop pre_test="data.persons > 0">
|
|
111
|
+
<parallel_branch pass="data.persons" local="p">
|
|
112
|
+
<call id="a2" endpoint="bookHotel">
|
|
78
113
|
<parameters>
|
|
79
|
-
<
|
|
114
|
+
<method>post</method>
|
|
115
|
+
<parameters>
|
|
116
|
+
<to>data.to</to>
|
|
117
|
+
</parameters>
|
|
80
118
|
</parameters>
|
|
81
|
-
|
|
82
|
-
</
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
<
|
|
119
|
+
<manipulate output="result"> data.hotels << result.value('id')
|
|
120
|
+
data.costs += result.value('costs').to_f</manipulate>
|
|
121
|
+
</call>
|
|
122
|
+
</parallel_branch>
|
|
123
|
+
<manipulate id="a3"> data.persons -= 1</manipulate>
|
|
124
|
+
</loop>
|
|
125
|
+
</parallel>
|
|
126
|
+
<choose>
|
|
127
|
+
<alternative condition="data.costs > 700">
|
|
128
|
+
<call id="a4" endpoint="approve">
|
|
86
129
|
<parameters>
|
|
87
|
-
<label/>
|
|
88
130
|
<method>post</method>
|
|
89
131
|
<parameters>
|
|
90
|
-
<
|
|
132
|
+
<costs>data.costs</costs>
|
|
91
133
|
</parameters>
|
|
92
134
|
</parameters>
|
|
93
135
|
</call>
|
|
94
|
-
</
|
|
95
|
-
</
|
|
96
|
-
<call id="a2" endpoint="timeout">
|
|
97
|
-
<parameters>
|
|
98
|
-
<label/>
|
|
99
|
-
<method>post</method>
|
|
100
|
-
<parameters>
|
|
101
|
-
<timeout>b</timeout>
|
|
102
|
-
</parameters>
|
|
103
|
-
</parameters>
|
|
104
|
-
<manipulate>data.x += "a2,"</manipulate>
|
|
105
|
-
</call>
|
|
136
|
+
</alternative>
|
|
137
|
+
</choose>
|
|
106
138
|
</description>
|
|
107
139
|
</description>
|
|
108
140
|
<transformation>
|
|
@@ -1,90 +1,62 @@
|
|
|
1
1
|
<properties xmlns="http://riddl.org/ns/common-patterns/properties/1.0">
|
|
2
2
|
<info>Enter info here</info>
|
|
3
|
-
<state>
|
|
3
|
+
<state>ready</state>
|
|
4
4
|
<handlerwrapper>DefaultHandlerWrapper</handlerwrapper>
|
|
5
|
-
<positions
|
|
5
|
+
<positions>
|
|
6
|
+
<a1>after</a1>
|
|
7
|
+
</positions>
|
|
6
8
|
<dataelements>
|
|
7
|
-
<
|
|
8
|
-
<card>Visa_12345</card>
|
|
9
|
-
<airline>Lufthansa</airline>
|
|
10
|
-
<hotels>["Rathaus","Rathaus","Ibis"]</hotels>
|
|
11
|
-
<from>Vienna</from>
|
|
12
|
-
<to>Prague</to>
|
|
13
|
-
<costs>940.0</costs>
|
|
9
|
+
<x/>
|
|
14
10
|
</dataelements>
|
|
15
11
|
<endpoints>
|
|
16
|
-
<
|
|
17
|
-
<bookHotel>http://gruppe.wst.univie.ac.at/~mangler/services/hotel.php</bookHotel>
|
|
18
|
-
<approve>http://gruppe.wst.univie.ac.at/~mangler/services/approval.php</approve>
|
|
12
|
+
<timeout>http://gruppe.wst.univie.ac.at/~mangler/services/timeout.php</timeout>
|
|
19
13
|
</endpoints>
|
|
20
|
-
<dsl>call :a1, :
|
|
21
|
-
data.
|
|
22
|
-
data.costs += result.value('costs').to_f
|
|
23
|
-
status.update 1, 'Hotel'
|
|
14
|
+
<dsl>call :a1, :timeout, { :method => "post", :parameters => { :timeout => 2 } }, <<-end
|
|
15
|
+
data.x += "a1,"
|
|
24
16
|
end
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
parallel_branch data.persons do |p|
|
|
28
|
-
call :a2, :bookHotel, { :method => :post, :parameters => {:to => data.to} }, <<-end
|
|
29
|
-
data.hotels << result.value('id')
|
|
30
|
-
data.costs += result.value('costs').to_f
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
manipulate :a3, <<-end
|
|
34
|
-
data.persons -= 1
|
|
35
|
-
end
|
|
36
|
-
end
|
|
17
|
+
call :a2, :timeout, { :method => "post", :parameters => { :timeout => 4 } }, <<-end
|
|
18
|
+
data.x += "a2,"
|
|
37
19
|
end
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
call :a4, :approve, { :method => :post, :parameters => {:costs => data.costs} }
|
|
41
|
-
end
|
|
20
|
+
call :a3, :timeout, { :method => "post", :parameters => { :timeout => 4 } }, <<-end
|
|
21
|
+
data.x += "a3,"
|
|
42
22
|
end
|
|
43
23
|
</dsl>
|
|
44
24
|
<dslx>
|
|
45
25
|
<description xmlns="http://cpee.org/ns/description/1.0">
|
|
46
|
-
|
|
26
|
+
<!--{{{-->
|
|
27
|
+
<call id="a1" endpoint="timeout">
|
|
47
28
|
<parameters>
|
|
48
|
-
|
|
29
|
+
<!--{{{-->
|
|
30
|
+
<method>post</method>
|
|
49
31
|
<parameters>
|
|
50
|
-
<
|
|
51
|
-
<to>data.to</to>
|
|
52
|
-
<persons>data.persons</persons>
|
|
32
|
+
<timeout>2</timeout>
|
|
53
33
|
</parameters>
|
|
54
34
|
</parameters>
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
35
|
+
<!--}}}-->
|
|
36
|
+
<manipulate output="result"> data.x += "a1,"</manipulate>
|
|
37
|
+
</call>
|
|
38
|
+
<call id="a2" endpoint="timeout">
|
|
39
|
+
<parameters>
|
|
40
|
+
<!--{{{-->
|
|
41
|
+
<method>post</method>
|
|
42
|
+
<parameters>
|
|
43
|
+
<timeout>4</timeout>
|
|
44
|
+
</parameters>
|
|
45
|
+
</parameters>
|
|
46
|
+
<!--}}}-->
|
|
47
|
+
<manipulate output="result"> data.x += "a2,"</manipulate>
|
|
48
|
+
</call>
|
|
49
|
+
<call id="a3" endpoint="timeout">
|
|
50
|
+
<parameters>
|
|
51
|
+
<!--{{{-->
|
|
52
|
+
<method>post</method>
|
|
53
|
+
<parameters>
|
|
54
|
+
<timeout>4</timeout>
|
|
55
|
+
</parameters>
|
|
56
|
+
</parameters>
|
|
57
|
+
<!--}}}-->
|
|
58
|
+
<manipulate output="result"> data.x += "a3,"</manipulate>
|
|
58
59
|
</call>
|
|
59
|
-
<parallel>
|
|
60
|
-
<loop pre_test="data.persons > 0">
|
|
61
|
-
<parallel_branch pass="data.persons" local="p">
|
|
62
|
-
<call id="a2" endpoint="bookHotel">
|
|
63
|
-
<parameters>
|
|
64
|
-
<method>:post</method>
|
|
65
|
-
<parameters>
|
|
66
|
-
<to>data.to</to>
|
|
67
|
-
</parameters>
|
|
68
|
-
</parameters>
|
|
69
|
-
<manipulate output="result"> data.hotels << result.value('id')
|
|
70
|
-
data.costs += result.value('costs').to_f</manipulate>
|
|
71
|
-
</call>
|
|
72
|
-
</parallel_branch>
|
|
73
|
-
<manipulate id="a3"> data.persons -= 1</manipulate>
|
|
74
|
-
</loop>
|
|
75
|
-
</parallel>
|
|
76
|
-
<choose>
|
|
77
|
-
<alternative condition="data.costs > 700">
|
|
78
|
-
<call id="a4" endpoint="approve">
|
|
79
|
-
<parameters>
|
|
80
|
-
<method>:post</method>
|
|
81
|
-
<parameters>
|
|
82
|
-
<costs>data.costs</costs>
|
|
83
|
-
</parameters>
|
|
84
|
-
</parameters>
|
|
85
|
-
</call>
|
|
86
|
-
</alternative>
|
|
87
|
-
</choose>
|
|
88
60
|
</description>
|
|
89
61
|
</dslx>
|
|
90
62
|
<status>
|
|
@@ -93,48 +65,40 @@ end
|
|
|
93
65
|
</status>
|
|
94
66
|
<description>
|
|
95
67
|
<description xmlns="http://cpee.org/ns/description/1.0">
|
|
96
|
-
|
|
68
|
+
<!--{{{-->
|
|
69
|
+
<call id="a1" endpoint="timeout">
|
|
70
|
+
<parameters>
|
|
71
|
+
<!--{{{-->
|
|
72
|
+
<method>post</method>
|
|
73
|
+
<parameters>
|
|
74
|
+
<timeout>2</timeout>
|
|
75
|
+
</parameters>
|
|
76
|
+
</parameters>
|
|
77
|
+
<!--}}}-->
|
|
78
|
+
<manipulate output="result"> data.x += "a1,"</manipulate>
|
|
79
|
+
</call>
|
|
80
|
+
<call id="a2" endpoint="timeout">
|
|
81
|
+
<parameters>
|
|
82
|
+
<!--{{{-->
|
|
83
|
+
<method>post</method>
|
|
84
|
+
<parameters>
|
|
85
|
+
<timeout>4</timeout>
|
|
86
|
+
</parameters>
|
|
87
|
+
</parameters>
|
|
88
|
+
<!--}}}-->
|
|
89
|
+
<manipulate output="result"> data.x += "a2,"</manipulate>
|
|
90
|
+
</call>
|
|
91
|
+
<call id="a3" endpoint="timeout">
|
|
97
92
|
<parameters>
|
|
98
|
-
|
|
93
|
+
<!--{{{-->
|
|
94
|
+
<method>post</method>
|
|
99
95
|
<parameters>
|
|
100
|
-
<
|
|
101
|
-
<to>data.to</to>
|
|
102
|
-
<persons>data.persons</persons>
|
|
96
|
+
<timeout>4</timeout>
|
|
103
97
|
</parameters>
|
|
104
98
|
</parameters>
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
status.update 1, 'Hotel'</manipulate>
|
|
99
|
+
<!--}}}-->
|
|
100
|
+
<manipulate output="result"> data.x += "a3,"</manipulate>
|
|
108
101
|
</call>
|
|
109
|
-
<parallel>
|
|
110
|
-
<loop pre_test="data.persons > 0">
|
|
111
|
-
<parallel_branch pass="data.persons" local="p">
|
|
112
|
-
<call id="a2" endpoint="bookHotel">
|
|
113
|
-
<parameters>
|
|
114
|
-
<method>:post</method>
|
|
115
|
-
<parameters>
|
|
116
|
-
<to>data.to</to>
|
|
117
|
-
</parameters>
|
|
118
|
-
</parameters>
|
|
119
|
-
<manipulate output="result"> data.hotels << result.value('id')
|
|
120
|
-
data.costs += result.value('costs').to_f</manipulate>
|
|
121
|
-
</call>
|
|
122
|
-
</parallel_branch>
|
|
123
|
-
<manipulate id="a3"> data.persons -= 1</manipulate>
|
|
124
|
-
</loop>
|
|
125
|
-
</parallel>
|
|
126
|
-
<choose>
|
|
127
|
-
<alternative condition="data.costs > 700">
|
|
128
|
-
<call id="a4" endpoint="approve">
|
|
129
|
-
<parameters>
|
|
130
|
-
<method>:post</method>
|
|
131
|
-
<parameters>
|
|
132
|
-
<costs>data.costs</costs>
|
|
133
|
-
</parameters>
|
|
134
|
-
</parameters>
|
|
135
|
-
</call>
|
|
136
|
-
</alternative>
|
|
137
|
-
</choose>
|
|
138
102
|
</description>
|
|
139
103
|
</description>
|
|
140
104
|
<transformation>
|