cpee 1.3.174 → 1.3.175

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.
Files changed (50) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +0 -6
  3. data/cockpit/js/instance.js +15 -0
  4. data/cpee.gemspec +1 -1
  5. data/lib/cpee/controller.rb +9 -0
  6. data/lib/cpee/handler_properties.rb +2 -0
  7. data/server/instances/1/properties.xml +101 -69
  8. data/server/instances/10/properties.xml +70 -106
  9. data/server/instances/11/properties.xml +73 -133
  10. data/server/instances/12/notifications/8d7f2ae546a742fce3a0a488266ea51d/consumer-secret +1 -0
  11. data/server/instances/12/notifications/8d7f2ae546a742fce3a0a488266ea51d/producer-secret +1 -0
  12. data/server/instances/12/notifications/8d7f2ae546a742fce3a0a488266ea51d/subscription.xml +6 -0
  13. data/server/instances/12/properties.xml +0 -1
  14. data/server/instances/13/notifications/4ff0cde5161c44dae49b263cbc12eaf8/consumer-secret +1 -0
  15. data/server/instances/13/notifications/4ff0cde5161c44dae49b263cbc12eaf8/producer-secret +1 -0
  16. data/server/instances/{14/notifications/5bcce90b170116a77fb25aea4e133acc → 13/notifications/4ff0cde5161c44dae49b263cbc12eaf8}/subscription.xml +0 -0
  17. data/server/instances/14/properties.xml +160 -160
  18. data/server/instances/15/properties.xml +314 -28
  19. data/server/instances/16/properties.xml +249 -28
  20. data/server/instances/17/properties.xml +130 -28
  21. data/server/instances/18/properties.xml +2 -3
  22. data/server/instances/19/properties.xml +1 -0
  23. data/server/instances/2/properties.xml +44 -191
  24. data/server/instances/3/properties.xml +44 -70
  25. data/server/instances/4/properties.xml +68 -28
  26. data/server/instances/5/properties.xml +70 -10
  27. data/server/instances/6/properties.xml +55 -175
  28. data/server/instances/7/properties.xml +52 -118
  29. data/server/instances/8/properties.xml +50 -112
  30. data/server/instances/9/properties.xml +47 -115
  31. metadata +117 -131
  32. data/server/instances/1/notifications/d12eff1ac812661c05d7090ce7394cf9/consumer-secret +0 -1
  33. data/server/instances/1/notifications/d12eff1ac812661c05d7090ce7394cf9/producer-secret +0 -1
  34. data/server/instances/1/notifications/d12eff1ac812661c05d7090ce7394cf9/subscription.xml +0 -27
  35. data/server/instances/12/notifications/7ace1a6f6974fe3574107a19b5e9d036/consumer-secret +0 -1
  36. data/server/instances/12/notifications/7ace1a6f6974fe3574107a19b5e9d036/producer-secret +0 -1
  37. data/server/instances/12/notifications/7ace1a6f6974fe3574107a19b5e9d036/subscription.xml +0 -33
  38. data/server/instances/14/notifications/5bcce90b170116a77fb25aea4e133acc/consumer-secret +0 -1
  39. data/server/instances/14/notifications/5bcce90b170116a77fb25aea4e133acc/producer-secret +0 -1
  40. data/server/instances/20/properties.xml +0 -46
  41. data/server/instances/21/properties.xml +0 -46
  42. data/server/instances/22/notifications/f9c504b8c715ec94a99fc3c6a660c53a/consumer-secret +0 -1
  43. data/server/instances/22/notifications/f9c504b8c715ec94a99fc3c6a660c53a/producer-secret +0 -1
  44. data/server/instances/22/notifications/f9c504b8c715ec94a99fc3c6a660c53a/subscription.xml +0 -23
  45. data/server/instances/22/properties.xml +0 -112
  46. data/server/instances/23/notifications/0a5a059f4ae897aee1446d560210dec0/consumer-secret +0 -1
  47. data/server/instances/23/notifications/0a5a059f4ae897aee1446d560210dec0/producer-secret +0 -1
  48. data/server/instances/23/notifications/0a5a059f4ae897aee1446d560210dec0/subscription.xml +0 -23
  49. data/server/instances/23/properties.xml +0 -148
  50. data/server/server.pid +0 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 57b2bcb0a54d9ba22dfe122a16356af176febe0d
4
- data.tar.gz: b268f6cedef78bc4265d8564fdb72f7f940daaf6
3
+ metadata.gz: 70225433763cb242babcee10a600ef4c1c93608e
4
+ data.tar.gz: 656cdb6a210f034042af3286da1becec952e7e30
5
5
  SHA512:
6
- metadata.gz: 37cc26d6baf204364d8b6852e8948c1a49bf6c47729aa7a8d323d5fc9e552d5e099e451562cfa5f58d747e629659f22829e8329b7690a3f384c8ee022bbe5e8e
7
- data.tar.gz: a018352784375f69df6129f536d6d10a35cfc355c64b07b922962250165f4efc1174351d27763214f4e10fafc44bfaf25ed85037572b0de1b20ba9b8eb809500
6
+ metadata.gz: da3e0654adf834fdaa9b10268a31639516865fb80d9828a716679fc5d60e3c87147528ba16942254ce8ec81c25700b4533f1eddc049cc27aec8dfb8d15d6e623
7
+ data.tar.gz: 8b3493514a48f2fe03a7a1662ad71cacaedf124f92fa457bf179dbb6572c3d1d0ac12402c5cf0570ddcd82633de4e667d6364cc2944b9a0975ad049b34f610c0
data/Rakefile CHANGED
@@ -2,12 +2,6 @@ require 'rake'
2
2
  require 'rubygems/package_task'
3
3
  require 'rake/testtask'
4
4
 
5
- Rake::TestTask.new do |t|
6
- t.libs << "test"
7
- t.test_files = FileList['./test/*/tc_*.rb']
8
- t.verbose = false
9
- end
10
-
11
5
  Rake::TestTask.new do |t|
12
6
  t.libs << "test"
13
7
  t.test_files = FileList['./test/tc_*.rb']
@@ -610,6 +610,7 @@ function set_testset(testset) {// {{{
610
610
  });
611
611
 
612
612
  load_testset_dataelements(url,testset);
613
+ load_testset_attributes(url,testset);
613
614
  load_testset_endpoints(url,testset);
614
615
  load_testset_pos(url,testset);
615
616
 
@@ -786,6 +787,20 @@ function load_testset_dataelements(url,testset) {// {{{
786
787
  error: report_failure
787
788
  });
788
789
  }// }}}
790
+ function load_testset_attributes(url,testset) {// {{{
791
+ if ($("testset > attributes",testset).length == 0) { return; }
792
+ var ser = '';
793
+ $("testset > attributes > *",testset).each(function(){
794
+ ser += $(this).serializeXML() + "\n";
795
+ });
796
+ var val = "<content>" + ser + "</content>";
797
+ $.ajax({
798
+ type: "PUT",
799
+ url: url + "/properties/values/attributes",
800
+ data: ({content: val}),
801
+ error: report_failure
802
+ });
803
+ }// }}}
789
804
  function load_testset_endpoints(url,testset) {// {{{
790
805
  if ($("testset > endpoints",testset).length == 0) { return; }
791
806
  var ser = '';
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "cpee"
3
- s.version = "1.3.174"
3
+ s.version = "1.3.175"
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"
@@ -62,6 +62,7 @@ module CPEE
62
62
  @callbacks = {}
63
63
  @instance = EmptyWorkflow.new(self)
64
64
  @positions = []
65
+ @attributes = {}
65
66
  @thread = nil
66
67
  @mutex = Mutex.new
67
68
  @opts = opts
@@ -93,6 +94,7 @@ module CPEE
93
94
  unserialize_endpoints!
94
95
  unserialize_dsl!
95
96
  unserialize_positions!
97
+ unserialize_attributes!
96
98
  end
97
99
 
98
100
  attr_reader :id
@@ -100,6 +102,7 @@ module CPEE
100
102
  attr_reader :notifications
101
103
  attr_reader :callbacks
102
104
  attr_reader :mutex
105
+ attr_reader :attributes
103
106
 
104
107
  def base_url
105
108
  @opts[:url]
@@ -273,6 +276,12 @@ module CPEE
273
276
  end
274
277
  end # }}}
275
278
 
279
+ def unserialize_attributes! #{{{
280
+ @attributes = {}
281
+ @properties.data.find("/p:properties/p:attributes/p:*").map do |ele|
282
+ @attributes[ele.qname.name] = ele.text
283
+ end
284
+ end #}}}
276
285
  def unserialize_dataelements! #{{{
277
286
  @instance.data.clear
278
287
  @properties.data.find("/p:properties/p:dataelements/p:*").each do |e|
@@ -29,6 +29,8 @@ class PropertiesHandler < Riddl::Utils::Properties::HandlerBase
29
29
  when 'dataelements'
30
30
  @data.unserialize_dataelements!
31
31
  @data.notify('properties/dataelements/change', :instance => @data.instance)
32
+ when 'attributes'
33
+ @data.unserialize_attributes!
32
34
  when 'positions'
33
35
  @data.unserialize_positions!
34
36
  @data.notify('properties/position/change', :instance => @data.instance)
@@ -1,65 +1,90 @@
1
1
  <properties xmlns="http://riddl.org/ns/common-patterns/properties/1.0">
2
- <info>asd</info>
3
- <state>stopped</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
- <x/>
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
- <timeout>http://gruppe.wst.univie.ac.at/~mangler/services/timeout.php</timeout>
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>parallel do
15
- parallel_branch do
16
- call :a4, :timeout, { :label =&gt; nil, :method =&gt; "post", :parameters =&gt; { :timeout =&gt; a } }
17
- end
18
- parallel_branch do
19
- call :a5, :timeout, { :label =&gt; nil, :method =&gt; "post", :parameters =&gt; { :timeout =&gt; a } }
20
+ <dsl>call :a1, :bookAir, { :method =&gt; "post", :parameters =&gt; { :from =&gt; data.from, :to =&gt; data.to, :persons =&gt; data.persons } }, &lt;&lt;-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 &gt; 0} do
27
+ parallel_branch data.persons do |p|
28
+ call :a2, :bookHotel, { :method =&gt; "post", :parameters =&gt; { :to =&gt; data.to } }, &lt;&lt;-end
29
+ data.hotels &lt;&lt; result.value('id')
30
+ data.costs += result.value('costs').to_f
31
+ end
32
+ end
33
+ manipulate :a3, &lt;&lt;-end
34
+ data.persons -= 1
35
+ end
20
36
  end
21
37
  end
22
- call :a2, :timeout, { :label =&gt; nil, :method =&gt; "post", :parameters =&gt; { :timeout =&gt; b } }, &lt;&lt;-end
23
- data.x += "a2,"
38
+ choose do
39
+ alternative data.costs &gt; 700 do
40
+ call :a4, :approve, { :method =&gt; "post", :parameters =&gt; { :costs =&gt; 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
- <parallel svg-label="">
30
- <parallel_branch svg-label="">
31
- <call id="a4" endpoint="timeout" svg-label="">
32
- <parameters>
33
- <label/>
34
- <method>post</method>
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 &gt; 0">
61
+ <parallel_branch pass="data.persons" local="p">
62
+ <call id="a2" endpoint="bookHotel">
35
63
  <parameters>
36
- <timeout>a</timeout>
64
+ <method>post</method>
65
+ <parameters>
66
+ <to>data.to</to>
67
+ </parameters>
37
68
  </parameters>
38
- </parameters>
39
- </call>
40
- </parallel_branch>
41
- <parallel_branch svg-label="">
42
- <call id="a5" endpoint="timeout" svg-label="">
69
+ <manipulate output="result"> data.hotels &lt;&lt; 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 &gt; 700">
78
+ <call id="a4" endpoint="approve">
43
79
  <parameters>
44
- <label/>
45
80
  <method>post</method>
46
81
  <parameters>
47
- <timeout>a</timeout>
82
+ <costs>data.costs</costs>
48
83
  </parameters>
49
84
  </parameters>
50
85
  </call>
51
- </parallel_branch>
52
- </parallel>
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
- <parallel svg-label="">
73
- <parallel_branch svg-label="">
74
- <call id="a4" endpoint="timeout" svg-label="">
75
- <parameters>
76
- <label/>
77
- <method>post</method>
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 &gt; 0">
111
+ <parallel_branch pass="data.persons" local="p">
112
+ <call id="a2" endpoint="bookHotel">
78
113
  <parameters>
79
- <timeout>a</timeout>
114
+ <method>post</method>
115
+ <parameters>
116
+ <to>data.to</to>
117
+ </parameters>
80
118
  </parameters>
81
- </parameters>
82
- </call>
83
- </parallel_branch>
84
- <parallel_branch svg-label="">
85
- <call id="a5" endpoint="timeout" svg-label="">
119
+ <manipulate output="result"> data.hotels &lt;&lt; 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 &gt; 700">
128
+ <call id="a4" endpoint="approve">
86
129
  <parameters>
87
- <label/>
88
130
  <method>post</method>
89
131
  <parameters>
90
- <timeout>a</timeout>
132
+ <costs>data.costs</costs>
91
133
  </parameters>
92
134
  </parameters>
93
135
  </call>
94
- </parallel_branch>
95
- </parallel>
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>finished</state>
3
+ <state>ready</state>
4
4
  <handlerwrapper>DefaultHandlerWrapper</handlerwrapper>
5
- <positions/>
5
+ <positions>
6
+ <a1>after</a1>
7
+ </positions>
6
8
  <dataelements>
7
- <persons>0</persons>
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
- <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>
12
+ <timeout>http://gruppe.wst.univie.ac.at/~mangler/services/timeout.php</timeout>
19
13
  </endpoints>
20
- <dsl>call :a1, :bookAir, { :method =&gt; :post, :parameters =&gt; {:from =&gt; data.from, :to =&gt; data.to, :persons =&gt; data.persons} }, &lt;&lt;-end
21
- data.airline = result.value('id')
22
- data.costs += result.value('costs').to_f
23
- status.update 1, 'Hotel'
14
+ <dsl>call :a1, :timeout, { :method =&gt; "post", :parameters =&gt; { :timeout =&gt; 2 } }, &lt;&lt;-end
15
+ data.x += "a1,"
24
16
  end
25
- parallel do
26
- loop pre_test{data.persons &gt; 0} do
27
- parallel_branch data.persons do |p|
28
- call :a2, :bookHotel, { :method =&gt; :post, :parameters =&gt; {:to =&gt; data.to} }, &lt;&lt;-end
29
- data.hotels &lt;&lt; result.value('id')
30
- data.costs += result.value('costs').to_f
31
- end
32
- end
33
- manipulate :a3, &lt;&lt;-end
34
- data.persons -= 1
35
- end
36
- end
17
+ call :a2, :timeout, { :method =&gt; "post", :parameters =&gt; { :timeout =&gt; 4 } }, &lt;&lt;-end
18
+ data.x += "a2,"
37
19
  end
38
- choose :inclusive do
39
- alternative "data.costs &gt; 700" do
40
- call :a4, :approve, { :method =&gt; :post, :parameters =&gt; {:costs =&gt; data.costs} }
41
- end
20
+ call :a3, :timeout, { :method =&gt; "post", :parameters =&gt; { :timeout =&gt; 4 } }, &lt;&lt;-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
- <call id="a1" endpoint="bookAir">
26
+ <!--{{{-->
27
+ <call id="a1" endpoint="timeout">
47
28
  <parameters>
48
- <method>:post</method>
29
+ <!--{{{-->
30
+ <method>post</method>
49
31
  <parameters>
50
- <from>data.from</from>
51
- <to>data.to</to>
52
- <persons>data.persons</persons>
32
+ <timeout>2</timeout>
53
33
  </parameters>
54
34
  </parameters>
55
- <manipulate output="result"> data.airline = result.value('id')
56
- data.costs += result.value('costs').to_f
57
- status.update 1, 'Hotel'</manipulate>
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 &gt; 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 &lt;&lt; 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 &gt; 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
- <call id="a1" endpoint="bookAir">
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
- <method>:post</method>
93
+ <!--{{{-->
94
+ <method>post</method>
99
95
  <parameters>
100
- <from>data.from</from>
101
- <to>data.to</to>
102
- <persons>data.persons</persons>
96
+ <timeout>4</timeout>
103
97
  </parameters>
104
98
  </parameters>
105
- <manipulate output="result"> data.airline = result.value('id')
106
- data.costs += result.value('costs').to_f
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 &gt; 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 &lt;&lt; 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 &gt; 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>