cpee 1.3.215 → 1.3.216

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 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>