cpee 1.3.215 → 1.3.216

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 81086a732b73cc9fbd226de99af3ed04fbebe293
4
- data.tar.gz: 437c2e25e1e617be28d9da30d6f0ab09bf8dd13d
3
+ metadata.gz: ba26baed827237368387cef1a332c786556e19ad
4
+ data.tar.gz: 043b528836d5e8fc2e21fcdc54f22ef4bcbcbd2f
5
5
  SHA512:
6
- metadata.gz: e5095a24c631f487a18d7848f8cb1b7f8bf05fc5e1209cda9bccfd61749e4151cb8ee141726e1c6d946d414e301ccad86ebffa0ec978d1a4ad4db1229bd53cb1
7
- data.tar.gz: 61ab61dc74f7906c7434420be12ec23addde78e7d89fa972e184236ed0ca792021961bac82ca4ee2291ae6ef94611b20134ab76fd0716e13015d2885c46307f4
6
+ metadata.gz: 584c2860805a2ab2192d9555fcd556f825736d8fc4061ed60aef17e0e7d6133e11a8c2f1f604cea9675e31a31fc59a8c149147157b7c5f7e1f8d8acb8a7d26f7
7
+ data.tar.gz: dd02f23944d101b2ccde6fd25a85731cc1e9944e3e3554dafb88cc2d88d04819419259206228c938a248b30d195565920a075ec0544eb46692aee0e24f8948c6
@@ -572,7 +572,7 @@ function save_testset() {// {{{
572
572
  pars.find('uuid').remove();
573
573
  testset.append(pars);
574
574
  $('#savetestset').attr('download',name + '.xml');
575
- $('#savetestset').attr('href','data:application/xml;charset=utf-8;base64,' + window.btoa(testset.serializePrettyXML()));
575
+ $('#savetestset').attr('href','data:application/xml;charset=utf-8;base64,' + $B64(testset.serializePrettyXML()));
576
576
  document.getElementById('savetestset').click();
577
577
  },
578
578
  error: report_failure
@@ -180,9 +180,8 @@ function WfIllustrator(wf_adaptor) { // View {{{
180
180
  // }}}
181
181
  // Helper Functions {{{
182
182
  var draw_label = this.draw.draw_label = function (row, col, label, group, where) { // {{{
183
- var g = $X('<text class="label" transform="translate(' + String((col*self.width)-((self.width*0.39))) + ',' + String(row*self.height+20-((self.height*0.74))) + ')" xmlns="http://www.w3.org/2000/svg">' +
184
- (label != '' ? '◤ ' : '') + label +
185
- '</text>');
183
+ var g = $X('<text class="label" transform="translate(' + String((col*self.width)-((self.width*0.39))) + ',' + String(row*self.height+20-((self.height*0.74))) + ')" xmlns="http://www.w3.org/2000/svg"></text>');
184
+ g.text((label != '' ? '◤ ' : '') + label);
186
185
  if(group) { group.find('g.element[element-id=' + where + ']').append(g); }
187
186
  else {self.svg.container.children('g:first').append(g);}
188
187
  return g;
@@ -199,7 +198,9 @@ function WfIllustrator(wf_adaptor) { // View {{{
199
198
  '</g>' +
200
199
  '</g>');
201
200
  var sym = self.svg.defs[sym_name].clone();
202
- sym.prepend($X('<title xmlns="http://www.w3.org/2000/svg">' + title + '</title>'));
201
+ var tit = $X('<title xmlns="http://www.w3.org/2000/svg"></title>');
202
+ tit.text(title);
203
+ sym.prepend(tit);
203
204
  sym.attr('class','activities');
204
205
  $(g[0].childNodes[0]).append(sym);
205
206
 
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "cpee"
3
- s.version = "1.3.215"
3
+ s.version = "1.3.216"
4
4
  s.platform = Gem::Platform::RUBY
5
5
  s.license = "LGPL-3.0"
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"
@@ -66,7 +66,7 @@ module CPEE
66
66
  controller = {}
67
67
  Dir[opts[:instances] + '/*/properties.xml'].each do |e|
68
68
  id = ::File::basename(::File::dirname(e))
69
- (controller[id.to_i] = Controller.new(id,opts)) rescue nil
69
+ (controller[id.to_i] = (Controller.new(id,opts)) rescue nil)
70
70
  end
71
71
 
72
72
  interface 'properties' do |r|
@@ -157,9 +157,12 @@ module CPEE
157
157
 
158
158
  while true
159
159
  id += 1
160
- Dir.mkdir(opts[:instances] + "/#{id}") rescue nil
161
- break
160
+ unless Dir.exists? opts[:instances] + "/#{id}"
161
+ Dir.mkdir(opts[:instances] + "/#{id}") rescue nil
162
+ break
163
+ end
162
164
  end
165
+
163
166
  controller[id] = Controller.new(id,opts)
164
167
  info = controller[id].properties.data.find("/p:properties/p:attributes/p:info")
165
168
  info.first.text = name if info.length == 1
@@ -0,0 +1,156 @@
1
+ <properties xmlns="http://riddl.org/ns/common-patterns/properties/1.0">
2
+ <attributes>
3
+ <uuid>43593f10-b23f-4d59-b1a6-f2e26c4b2d7c</uuid>
4
+ <info>Enter info here</info>
5
+ <modeltype>CPEE</modeltype>
6
+ <theme>default</theme>
7
+ </attributes>
8
+ <state>ready</state>
9
+ <handlerwrapper>DefaultHandlerWrapper</handlerwrapper>
10
+ <positions/>
11
+ <dataelements>
12
+ <persons>3</persons>
13
+ <card>Visa_12345</card>
14
+ <airline>null</airline>
15
+ <hotels>[]</hotels>
16
+ <from>Vienna</from>
17
+ <to>Prague</to>
18
+ <costs>0</costs>
19
+ </dataelements>
20
+ <endpoints>
21
+ <bookAir>http://gruppe.wst.univie.ac.at/~mangler/services/airline.php</bookAir>
22
+ <bookHotel>http://gruppe.wst.univie.ac.at/~mangler/services/hotel.php</bookHotel>
23
+ <approve>http://gruppe.wst.univie.ac.at/~mangler/services/approval.php</approve>
24
+ </endpoints>
25
+ <dsl>call :a1, :bookAir, parameters: { :label =&gt; "Book Airline", :method =&gt; :post, :arguments =&gt; [⭐(:name =&gt; :from, :value =&gt; data.from), ⭐(:name =&gt; :to, :value =&gt; data.to), ⭐(:name =&gt; :persons, :value =&gt; data.persons)] }, finalize: &lt;&lt;-END
26
+ data.airline = result.value('id')
27
+ data.costs += result.value('costs').to_f
28
+ status.update 1, 'Hotel'
29
+ END
30
+ parallel do
31
+ loop pre_test{data.persons ≠ 0} do
32
+ parallel_branch data.persons do |p|
33
+ call :a2, :bookHotel, parameters: { :label =&gt; "Book Hotel", :method =&gt; :post, :arguments =&gt; [⭐(:name =&gt; :to, :value =&gt; data.to)] }, finalize: &lt;&lt;-END
34
+ data.hotels &lt;&lt; result.value('id')
35
+ data.costs += result.value('costs').to_f
36
+ END
37
+ end
38
+ manipulate :a3, &lt;&lt;-END
39
+ data.persons -= 1
40
+ END
41
+ end
42
+ end
43
+ choose :inclusive do
44
+ alternative "data.costs &gt; 700" do
45
+ call :a4, :approve, parameters: { :label =&gt; "Approve Hotel", :method =&gt; :post, :arguments =&gt; [⭐(:name =&gt; :costs, :value =&gt; data.costs)] }
46
+ end
47
+ end
48
+ </dsl>
49
+ <dslx>
50
+ <description xmlns="http://cpee.org/ns/description/1.0">
51
+ <call id="a1" endpoint="bookAir">
52
+ <parameters>
53
+ <label>Book Airline</label>
54
+ <method>:post</method>
55
+ <arguments>
56
+ <from>data.from</from>
57
+ <to>data.to</to>
58
+ <persons>data.persons</persons>
59
+ </arguments>
60
+ </parameters>
61
+ <finalize output="result">data.airline = result.value('id')
62
+ data.costs += result.value('costs').to_f
63
+ status.update 1, 'Hotel'</finalize>
64
+ </call>
65
+ <parallel>
66
+ <loop mode="pre_test" condition="data.persons &#x2260; 0">
67
+ <parallel_branch pass="data.persons" local="p">
68
+ <call id="a2" endpoint="bookHotel">
69
+ <parameters>
70
+ <label>Book Hotel</label>
71
+ <method>:post</method>
72
+ <arguments>
73
+ <to>data.to</to>
74
+ </arguments>
75
+ </parameters>
76
+ <finalize output="result">data.hotels &lt;&lt; result.value('id')
77
+ data.costs += result.value('costs').to_f</finalize>
78
+ </call>
79
+ </parallel_branch>
80
+ <manipulate id="a3">data.persons -= 1</manipulate>
81
+ </loop>
82
+ </parallel>
83
+ <choose mode="inclusive">
84
+ <alternative condition="data.costs &gt; 700">
85
+ <call id="a4" endpoint="approve">
86
+ <parameters>
87
+ <label>Approve Hotel</label>
88
+ <method>:post</method>
89
+ <arguments>
90
+ <costs>data.costs</costs>
91
+ </arguments>
92
+ </parameters>
93
+ </call>
94
+ </alternative>
95
+ </choose>
96
+ </description>
97
+ </dslx>
98
+ <status>
99
+ <id>0</id>
100
+ <message>undefined</message>
101
+ </status>
102
+ <description>
103
+ <description xmlns="http://cpee.org/ns/description/1.0">
104
+ <call id="a1" endpoint="bookAir">
105
+ <parameters>
106
+ <label>Book Airline</label>
107
+ <method>:post</method>
108
+ <arguments>
109
+ <from>data.from</from>
110
+ <to>data.to</to>
111
+ <persons>data.persons</persons>
112
+ </arguments>
113
+ </parameters>
114
+ <finalize output="result">data.airline = result.value('id')
115
+ data.costs += result.value('costs').to_f
116
+ status.update 1, 'Hotel'</finalize>
117
+ </call>
118
+ <parallel>
119
+ <loop mode="pre_test" condition="data.persons &#x2260; 0">
120
+ <parallel_branch pass="data.persons" local="p">
121
+ <call id="a2" endpoint="bookHotel">
122
+ <parameters>
123
+ <label>Book Hotel</label>
124
+ <method>:post</method>
125
+ <arguments>
126
+ <to>data.to</to>
127
+ </arguments>
128
+ </parameters>
129
+ <finalize output="result">data.hotels &lt;&lt; result.value('id')
130
+ data.costs += result.value('costs').to_f</finalize>
131
+ </call>
132
+ </parallel_branch>
133
+ <manipulate id="a3">data.persons -= 1</manipulate>
134
+ </loop>
135
+ </parallel>
136
+ <choose mode="inclusive">
137
+ <alternative condition="data.costs &gt; 700">
138
+ <call id="a4" endpoint="approve">
139
+ <parameters>
140
+ <label>Approve Hotel</label>
141
+ <method>:post</method>
142
+ <arguments>
143
+ <costs>data.costs</costs>
144
+ </arguments>
145
+ </parameters>
146
+ </call>
147
+ </alternative>
148
+ </choose>
149
+ </description>
150
+ </description>
151
+ <transformation>
152
+ <description type="copy"/>
153
+ <dataelements type="rest"/>
154
+ <endpoints type="rest"/>
155
+ </transformation>
156
+ </properties>
@@ -0,0 +1,156 @@
1
+ <properties xmlns="http://riddl.org/ns/common-patterns/properties/1.0">
2
+ <attributes>
3
+ <uuid>39388ed2-c5d6-4a61-aa12-5e0cc535dda0</uuid>
4
+ <info>Enter info here</info>
5
+ <modeltype>CPEE</modeltype>
6
+ <theme>default</theme>
7
+ </attributes>
8
+ <state>ready</state>
9
+ <handlerwrapper>DefaultHandlerWrapper</handlerwrapper>
10
+ <positions/>
11
+ <dataelements>
12
+ <persons>3</persons>
13
+ <card>Visa_12345</card>
14
+ <airline>null</airline>
15
+ <hotels>[]</hotels>
16
+ <from>Vienna</from>
17
+ <to>Prague</to>
18
+ <costs>0</costs>
19
+ </dataelements>
20
+ <endpoints>
21
+ <bookAir>http://gruppe.wst.univie.ac.at/~mangler/services/airline.php</bookAir>
22
+ <bookHotel>http://gruppe.wst.univie.ac.at/~mangler/services/hotel.php</bookHotel>
23
+ <approve>http://gruppe.wst.univie.ac.at/~mangler/services/approval.php</approve>
24
+ </endpoints>
25
+ <dsl>call :a1, :bookAir, parameters: { :label =&gt; "Book Airline", :method =&gt; :post, :arguments =&gt; [⭐(:name =&gt; :from, :value =&gt; data.from), ⭐(:name =&gt; :to, :value =&gt; data.to), ⭐(:name =&gt; :persons, :value =&gt; data.persons)] }, finalize: &lt;&lt;-END
26
+ data.airline = result.value('id')
27
+ data.costs += result.value('costs').to_f
28
+ status.update 1, 'Hotel'
29
+ END
30
+ parallel do
31
+ loop pre_test{data.persons ≠ 0} do
32
+ parallel_branch data.persons do |p|
33
+ call :a2, :bookHotel, parameters: { :label =&gt; "Book Hotel", :method =&gt; :post, :arguments =&gt; [⭐(:name =&gt; :to, :value =&gt; data.to)] }, finalize: &lt;&lt;-END
34
+ data.hotels &lt;&lt; result.value('id')
35
+ data.costs += result.value('costs').to_f
36
+ END
37
+ end
38
+ manipulate :a3, &lt;&lt;-END
39
+ data.persons -= 1
40
+ END
41
+ end
42
+ end
43
+ choose :inclusive do
44
+ alternative "data.costs &gt; 700" do
45
+ call :a4, :approve, parameters: { :label =&gt; "Approve Hotel", :method =&gt; :post, :arguments =&gt; [⭐(:name =&gt; :costs, :value =&gt; data.costs)] }
46
+ end
47
+ end
48
+ </dsl>
49
+ <dslx>
50
+ <description xmlns="http://cpee.org/ns/description/1.0">
51
+ <call id="a1" endpoint="bookAir">
52
+ <parameters>
53
+ <label>Book Airline</label>
54
+ <method>:post</method>
55
+ <arguments>
56
+ <from>data.from</from>
57
+ <to>data.to</to>
58
+ <persons>data.persons</persons>
59
+ </arguments>
60
+ </parameters>
61
+ <finalize output="result">data.airline = result.value('id')
62
+ data.costs += result.value('costs').to_f
63
+ status.update 1, 'Hotel'</finalize>
64
+ </call>
65
+ <parallel>
66
+ <loop mode="pre_test" condition="data.persons &#x2260; 0">
67
+ <parallel_branch pass="data.persons" local="p">
68
+ <call id="a2" endpoint="bookHotel">
69
+ <parameters>
70
+ <label>Book Hotel</label>
71
+ <method>:post</method>
72
+ <arguments>
73
+ <to>data.to</to>
74
+ </arguments>
75
+ </parameters>
76
+ <finalize output="result">data.hotels &lt;&lt; result.value('id')
77
+ data.costs += result.value('costs').to_f</finalize>
78
+ </call>
79
+ </parallel_branch>
80
+ <manipulate id="a3">data.persons -= 1</manipulate>
81
+ </loop>
82
+ </parallel>
83
+ <choose mode="inclusive">
84
+ <alternative condition="data.costs &gt; 700">
85
+ <call id="a4" endpoint="approve">
86
+ <parameters>
87
+ <label>Approve Hotel</label>
88
+ <method>:post</method>
89
+ <arguments>
90
+ <costs>data.costs</costs>
91
+ </arguments>
92
+ </parameters>
93
+ </call>
94
+ </alternative>
95
+ </choose>
96
+ </description>
97
+ </dslx>
98
+ <status>
99
+ <id>0</id>
100
+ <message>undefined</message>
101
+ </status>
102
+ <description>
103
+ <description xmlns="http://cpee.org/ns/description/1.0">
104
+ <call id="a1" endpoint="bookAir">
105
+ <parameters>
106
+ <label>Book Airline</label>
107
+ <method>:post</method>
108
+ <arguments>
109
+ <from>data.from</from>
110
+ <to>data.to</to>
111
+ <persons>data.persons</persons>
112
+ </arguments>
113
+ </parameters>
114
+ <finalize output="result">data.airline = result.value('id')
115
+ data.costs += result.value('costs').to_f
116
+ status.update 1, 'Hotel'</finalize>
117
+ </call>
118
+ <parallel>
119
+ <loop mode="pre_test" condition="data.persons &#x2260; 0">
120
+ <parallel_branch pass="data.persons" local="p">
121
+ <call id="a2" endpoint="bookHotel">
122
+ <parameters>
123
+ <label>Book Hotel</label>
124
+ <method>:post</method>
125
+ <arguments>
126
+ <to>data.to</to>
127
+ </arguments>
128
+ </parameters>
129
+ <finalize output="result">data.hotels &lt;&lt; result.value('id')
130
+ data.costs += result.value('costs').to_f</finalize>
131
+ </call>
132
+ </parallel_branch>
133
+ <manipulate id="a3">data.persons -= 1</manipulate>
134
+ </loop>
135
+ </parallel>
136
+ <choose mode="inclusive">
137
+ <alternative condition="data.costs &gt; 700">
138
+ <call id="a4" endpoint="approve">
139
+ <parameters>
140
+ <label>Approve Hotel</label>
141
+ <method>:post</method>
142
+ <arguments>
143
+ <costs>data.costs</costs>
144
+ </arguments>
145
+ </parameters>
146
+ </call>
147
+ </alternative>
148
+ </choose>
149
+ </description>
150
+ </description>
151
+ <transformation>
152
+ <description type="copy"/>
153
+ <dataelements type="none"/>
154
+ <endpoints type="none"/>
155
+ </transformation>
156
+ </properties>
@@ -0,0 +1,354 @@
1
+ <properties xmlns="http://riddl.org/ns/common-patterns/properties/1.0">
2
+ <attributes>
3
+ <uuid>55c9f9fe-d2eb-4494-a64c-f1bcbe459a55</uuid>
4
+ <info>a1200993</info>
5
+ <modeltype>Signavio</modeltype>
6
+ <theme>labels</theme>
7
+ </attributes>
8
+ <state>finished</state>
9
+ <handlerwrapper>DefaultHandlerWrapper</handlerwrapper>
10
+ <positions/>
11
+ <dataelements>
12
+ <passportStatus>0</passportStatus>
13
+ <visaStatus>0</visaStatus>
14
+ <jobStatus>0</jobStatus>
15
+ <money>0</money>
16
+ <adress>null</adress>
17
+ </dataelements>
18
+ <endpoints>
19
+ <timeout>http://gruppe.wst.univie.ac.at/~mangler/services/timeout.php</timeout>
20
+ </endpoints>
21
+ <dsl>call :a1, :timeout, parameters: { :label =&gt; "\"Save money for living expenses in Austria\"", :method =&gt; :post, :arguments =&gt; [⭐(:name =&gt; :timeout, :value =&gt; 2)] }, finalize: &lt;&lt;-END
22
+ data.money=10000
23
+ END
24
+ call :a2, :timeout, parameters: { :label =&gt; "\"Check if passport still valid\"", :method =&gt; :post, :arguments =&gt; [⭐(:name =&gt; :timeout, :value =&gt; 2)] }, finalize: &lt;&lt;-END
25
+ data.passportStatus=0
26
+ END
27
+ choose :exclusive do
28
+ alternative "data.passportStatus==0" do
29
+ call :a4, :timeout, parameters: { :label =&gt; "Renew passport", :method =&gt; :post, :arguments =&gt; [⭐(:name =&gt; :timeout, :value =&gt; 2)] }, finalize: &lt;&lt;-END
30
+ data.passportStatus=1
31
+ data.money=data.money-60
32
+ END
33
+ end
34
+ end
35
+ call :a6, :timeout, parameters: { :label =&gt; "\"Check if visa is needed\"", :method =&gt; :post, :arguments =&gt; [⭐(:name =&gt; :timeout, :value =&gt; 2)] }, finalize: &lt;&lt;-END
36
+ data.visaStatus=1
37
+ END
38
+ choose :exclusive do
39
+ alternative "data.passportStatus==1" do
40
+ call :a5, :timeout, parameters: { :label =&gt; "Apply for visa", :method =&gt; :post, :arguments =&gt; [⭐(:name =&gt; :timeout, :value =&gt; 2)] }, finalize: &lt;&lt;-END
41
+ data.visaStatus=0
42
+ data.money=data.money-110
43
+ END
44
+ end
45
+ end
46
+ call :a10, :timeout, parameters: { :label =&gt; "\"Apply for \\"Rot-Weiß-Rot\\" card\"", :method =&gt; :post, :arguments =&gt; [⭐(:name =&gt; :timeout, :value =&gt; 2)] }, finalize: &lt;&lt;-END
47
+ data.money=data.money-200
48
+ END
49
+ parallel :wait =&gt; -1 do
50
+ parallel_branch do
51
+ call :a12, :timeout, parameters: { :label =&gt; "\"Organise bank account\"", :method =&gt; :post, :arguments =&gt; [⭐(:name =&gt; :timeout, :value =&gt; 2)] }, finalize: &lt;&lt;-END
52
+ data.money=data.money+100
53
+ END
54
+ end
55
+ parallel_branch do
56
+ call :a13, :timeout, parameters: { :label =&gt; "\"Organise accomodation\"", :method =&gt; :post, :arguments =&gt; [⭐(:name =&gt; :timeout, :value =&gt; 2)] }, finalize: &lt;&lt;-END
57
+ data.adress="Sonnenallee 51/1/16"
58
+ END
59
+ end
60
+ end
61
+ call :a15, :timeout, parameters: { :label =&gt; "\"Enter Austria\"", :method =&gt; :post, :arguments =&gt; [⭐(:name =&gt; :timeout, :value =&gt; 2)] }, finalize: &lt;&lt;-END
62
+ data.money=data.money-1000
63
+ data.jobStatus=1
64
+ END
65
+ loop pre_test{data.jobStatus==0} do
66
+ call :a3, :timeout, parameters: { :label =&gt; "Search for a job", :method =&gt; :post, :arguments =&gt; [⭐(:name =&gt; :timeout, :value =&gt; 2)] }, finalize: &lt;&lt;-END
67
+ data.jobStatus=1
68
+ END
69
+ end
70
+ </dsl>
71
+ <dslx>
72
+ <description xmlns="http://cpee.org/ns/description/1.0">
73
+ <call id="a1" endpoint="timeout">
74
+ <parameters>
75
+ <label>"Save money for living expenses in Austria"</label>
76
+ <method>:post</method>
77
+ <arguments>
78
+ <timeout>2</timeout>
79
+ </arguments>
80
+ </parameters>
81
+ <finalize output="result">data.money=10000
82
+ </finalize>
83
+ <update output="result"/>
84
+ </call>
85
+ <call id="a2" endpoint="timeout">
86
+ <parameters>
87
+ <label>"Check if passport still valid"</label>
88
+ <method>:post</method>
89
+ <arguments>
90
+ <timeout>2</timeout>
91
+ </arguments>
92
+ </parameters>
93
+ <finalize output="result">data.passportStatus=0
94
+ </finalize>
95
+ <update output="result"/>
96
+ </call>
97
+ <choose mode="exclusive">
98
+ <alternative condition="data.passportStatus==0">
99
+ <call id="a4" endpoint="timeout">
100
+ <parameters>
101
+ <label>Renew passport</label>
102
+ <method>:post</method>
103
+ <arguments>
104
+ <timeout>2</timeout>
105
+ </arguments>
106
+ </parameters>
107
+ <finalize output="result">data.passportStatus=1
108
+ data.money=data.money-60</finalize>
109
+ <update output="result"/>
110
+ </call>
111
+ </alternative>
112
+ <otherwise/>
113
+ </choose>
114
+ <call id="a6" endpoint="timeout">
115
+ <parameters>
116
+ <label>"Check if visa is needed"</label>
117
+ <method>:post</method>
118
+ <arguments>
119
+ <timeout>2</timeout>
120
+ </arguments>
121
+ </parameters>
122
+ <finalize output="result">data.visaStatus=1</finalize>
123
+ <update output="result"/>
124
+ </call>
125
+ <choose mode="exclusive">
126
+ <alternative condition="data.passportStatus==1">
127
+ <call id="a5" endpoint="timeout">
128
+ <parameters>
129
+ <label>Apply for visa</label>
130
+ <method>:post</method>
131
+ <arguments>
132
+ <timeout>2</timeout>
133
+ </arguments>
134
+ </parameters>
135
+ <finalize output="result">data.visaStatus=0
136
+ data.money=data.money-110</finalize>
137
+ <update output="result"/>
138
+ </call>
139
+ </alternative>
140
+ <otherwise/>
141
+ </choose>
142
+ <call id="a10" endpoint="timeout">
143
+ <parameters>
144
+ <label>"Apply for \"Rot-Weiß-Rot\" card"</label>
145
+ <method>:post</method>
146
+ <arguments>
147
+ <timeout>2</timeout>
148
+ </arguments>
149
+ </parameters>
150
+ <finalize output="result">data.money=data.money-200</finalize>
151
+ <update output="result"/>
152
+ </call>
153
+ <parallel wait="-1">
154
+ <parallel_branch>
155
+ <call id="a12" endpoint="timeout">
156
+ <parameters>
157
+ <label>"Organise bank account"</label>
158
+ <method>:post</method>
159
+ <arguments>
160
+ <timeout>2</timeout>
161
+ </arguments>
162
+ </parameters>
163
+ <finalize output="result">data.money=data.money+100</finalize>
164
+ <update output="result"/>
165
+ </call>
166
+ </parallel_branch>
167
+ <parallel_branch>
168
+ <call id="a13" endpoint="timeout">
169
+ <parameters>
170
+ <label>"Organise accomodation"</label>
171
+ <method>:post</method>
172
+ <arguments>
173
+ <timeout>2</timeout>
174
+ </arguments>
175
+ </parameters>
176
+ <finalize output="result">data.adress="Sonnenallee 51/1/16"</finalize>
177
+ <update output="result"/>
178
+ </call>
179
+ </parallel_branch>
180
+ </parallel>
181
+ <call id="a15" endpoint="timeout">
182
+ <parameters>
183
+ <label>"Enter Austria"</label>
184
+ <method>:post</method>
185
+ <arguments>
186
+ <timeout>2</timeout>
187
+ </arguments>
188
+ </parameters>
189
+ <finalize output="result">data.money=data.money-1000
190
+ data.jobStatus=1</finalize>
191
+ <update output="result"/>
192
+ </call>
193
+ <loop mode="pre_test" condition="data.jobStatus==0">
194
+ <call id="a3" endpoint="timeout">
195
+ <parameters>
196
+ <label>Search for a job</label>
197
+ <method>:post</method>
198
+ <arguments>
199
+ <timeout>2</timeout>
200
+ </arguments>
201
+ </parameters>
202
+ <finalize output="result">data.jobStatus=1</finalize>
203
+ <update output="result"/>
204
+ </call>
205
+ </loop>
206
+ </description>
207
+ </dslx>
208
+ <status>
209
+ <id>0</id>
210
+ <message>undefined</message>
211
+ </status>
212
+ <description>
213
+ <description xmlns="http://cpee.org/ns/description/1.0">
214
+ <call id="a1" endpoint="timeout">
215
+ <parameters>
216
+ <label>"Save money for living expenses in Austria"</label>
217
+ <method>:post</method>
218
+ <arguments>
219
+ <timeout>2</timeout>
220
+ </arguments>
221
+ </parameters>
222
+ <finalize output="result">data.money=10000
223
+ </finalize>
224
+ <update output="result"/>
225
+ </call>
226
+ <call id="a2" endpoint="timeout">
227
+ <parameters>
228
+ <label>"Check if passport still valid"</label>
229
+ <method>:post</method>
230
+ <arguments>
231
+ <timeout>2</timeout>
232
+ </arguments>
233
+ </parameters>
234
+ <finalize output="result">data.passportStatus=0
235
+ </finalize>
236
+ <update output="result"/>
237
+ </call>
238
+ <choose mode="exclusive">
239
+ <alternative condition="data.passportStatus==0">
240
+ <call id="a4" endpoint="timeout">
241
+ <parameters>
242
+ <label>Renew passport</label>
243
+ <method>:post</method>
244
+ <arguments>
245
+ <timeout>2</timeout>
246
+ </arguments>
247
+ </parameters>
248
+ <finalize output="result">data.passportStatus=1
249
+ data.money=data.money-60</finalize>
250
+ <update output="result"/>
251
+ </call>
252
+ </alternative>
253
+ <otherwise/>
254
+ </choose>
255
+ <call id="a6" endpoint="timeout">
256
+ <parameters>
257
+ <label>"Check if visa is needed"</label>
258
+ <method>:post</method>
259
+ <arguments>
260
+ <timeout>2</timeout>
261
+ </arguments>
262
+ </parameters>
263
+ <finalize output="result">data.visaStatus=1</finalize>
264
+ <update output="result"/>
265
+ </call>
266
+ <choose mode="exclusive">
267
+ <alternative condition="data.passportStatus==1">
268
+ <call id="a5" endpoint="timeout">
269
+ <parameters>
270
+ <label>Apply for visa</label>
271
+ <method>:post</method>
272
+ <arguments>
273
+ <timeout>2</timeout>
274
+ </arguments>
275
+ </parameters>
276
+ <finalize output="result">data.visaStatus=0
277
+ data.money=data.money-110</finalize>
278
+ <update output="result"/>
279
+ </call>
280
+ </alternative>
281
+ <otherwise/>
282
+ </choose>
283
+ <call id="a10" endpoint="timeout">
284
+ <parameters>
285
+ <label>"Apply for \"Rot-Weiß-Rot\" card"</label>
286
+ <method>:post</method>
287
+ <arguments>
288
+ <timeout>2</timeout>
289
+ </arguments>
290
+ </parameters>
291
+ <finalize output="result">data.money=data.money-200</finalize>
292
+ <update output="result"/>
293
+ </call>
294
+ <parallel wait="-1">
295
+ <parallel_branch>
296
+ <call id="a12" endpoint="timeout">
297
+ <parameters>
298
+ <label>"Organise bank account"</label>
299
+ <method>:post</method>
300
+ <arguments>
301
+ <timeout>2</timeout>
302
+ </arguments>
303
+ </parameters>
304
+ <finalize output="result">data.money=data.money+100</finalize>
305
+ <update output="result"/>
306
+ </call>
307
+ </parallel_branch>
308
+ <parallel_branch>
309
+ <call id="a13" endpoint="timeout">
310
+ <parameters>
311
+ <label>"Organise accomodation"</label>
312
+ <method>:post</method>
313
+ <arguments>
314
+ <timeout>2</timeout>
315
+ </arguments>
316
+ </parameters>
317
+ <finalize output="result">data.adress="Sonnenallee 51/1/16"</finalize>
318
+ <update output="result"/>
319
+ </call>
320
+ </parallel_branch>
321
+ </parallel>
322
+ <call id="a15" endpoint="timeout">
323
+ <parameters>
324
+ <label>"Enter Austria"</label>
325
+ <method>:post</method>
326
+ <arguments>
327
+ <timeout>2</timeout>
328
+ </arguments>
329
+ </parameters>
330
+ <finalize output="result">data.money=data.money-1000
331
+ data.jobStatus=1</finalize>
332
+ <update output="result"/>
333
+ </call>
334
+ <loop mode="pre_test" condition="data.jobStatus==0">
335
+ <call id="a3" endpoint="timeout">
336
+ <parameters>
337
+ <label>Search for a job</label>
338
+ <method>:post</method>
339
+ <arguments>
340
+ <timeout>2</timeout>
341
+ </arguments>
342
+ </parameters>
343
+ <finalize output="result">data.jobStatus=1</finalize>
344
+ <update output="result"/>
345
+ </call>
346
+ </loop>
347
+ </description>
348
+ </description>
349
+ <transformation>
350
+ <description type="copy"/>
351
+ <dataelements type="none"/>
352
+ <endpoints type="none"/>
353
+ </transformation>
354
+ </properties>