cpee 1.3.196 → 1.3.197

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: d5200d2c427d48101d74a760328fe54294fee5fb
4
- data.tar.gz: 2f17a1cdf61c65ae94efc2fd59903e0e5473894a
3
+ metadata.gz: 8a7db5db9880226cac36d87fcbaac5d6aa79aece
4
+ data.tar.gz: 900fc76be60a67ac9575d837b17531a76da7e881
5
5
  SHA512:
6
- metadata.gz: ebf975384da3856a6689fb1d7863128d19ab0b4e6f0ceb7d4e4cd21b42b29f219305f308b8b68cdb0372e29152ed4a34ddf001ee52e2e3f08da204be9535a713
7
- data.tar.gz: f9e0970be02b46418936bbde573822c9e9baacbde86a88d83057339c38a648e99a3a5e8db626063d001dfe4aa455ad809d3f20aa21fb8500a1fa6fb89ccbaf94
6
+ metadata.gz: 39b912e7f85a8a880cea4ea3d3c00187996e4a561acff9ae48ae457b73de5b0e1bdbdfc33416bf0514c272cacebc1fa48d46b5401427b88cf1d8d283992c3b13
7
+ data.tar.gz: dadc1b059cb3ee1d5b36df473b6538c72dff78a29b55cc3e5b553939dc57d0822a8a9f74160f27510db3553f8ac91c694fa01b6c497390ec90628131a0d07844
@@ -793,7 +793,7 @@ function load_testset_attributes(url,testset) {// {{{
793
793
  type: "GET",
794
794
  url: url + "/properties/values/attributes/uuid",
795
795
  success: function(res){
796
- var uuid = $X('<uuid/>');
796
+ var uuid = $X('<uuid xmlns="http://riddl.org/ns/common-patterns/properties/1.0"/>');
797
797
  uuid.text($('value',res).text());
798
798
  $("testset > attributes",testset).prepend(uuid);
799
799
  $("testset > attributes > *",testset).each(function(){
@@ -16,44 +16,44 @@
16
16
  <parameters>
17
17
  <label>"Kalibrieren"</label>
18
18
  <method>:post</method>
19
- <parameters/>
19
+ <arguments/>
20
20
  </parameters>
21
21
  </call>
22
22
  <call id="a1" endpoint="centering" >
23
23
  <parameters>
24
24
  <label>"Zentrieren"</label>
25
25
  <method>:post</method>
26
- <parameters/>
26
+ <arguments/>
27
27
  </parameters>
28
28
  </call>
29
29
  <call id="a3" endpoint="start" >
30
30
  <parameters>
31
31
  <label>"Starten"</label>
32
32
  <method>:post</method>
33
- <parameters/>
33
+ <arguments/>
34
34
  </parameters>
35
35
  </call>
36
36
  <call id="a4" endpoint="timeout" >
37
37
  <parameters>
38
38
  <label>"Timeout"</label>
39
39
  <method>:post</method>
40
- <parameters>
40
+ <arguments>
41
41
  <timeout>6</timeout>
42
- </parameters>
42
+ </arguments>
43
43
  </parameters>
44
44
  </call>
45
45
  <call id="a5" endpoint="stop">
46
46
  <parameters>
47
47
  <label>"Stop"</label>
48
48
  <method>:post</method>
49
- <parameters/>
49
+ <arguments/>
50
50
  </parameters>
51
51
  </call>
52
52
  <call id="a6" endpoint="calibrate">
53
53
  <parameters>
54
54
  <label>"Kalibrieren"</label>
55
55
  <method>:post</method>
56
- <parameters/>
56
+ <arguments/>
57
57
  </parameters>
58
58
  </call>
59
59
  </description>
@@ -1,7 +1,7 @@
1
1
  <?xml version="1.0"?>
2
2
  <testset>
3
3
  <dataelements/>
4
- <handlerwrapper>PromiseHandlerWrapper</handlerwrapper>
4
+ <handlerwrapper>DefaultHandlerWrapper</handlerwrapper>
5
5
  <endpoints>
6
6
  <timeout xmlns="http://riddl.org/ns/common-patterns/properties/1.0">http://promise.wst.univie.ac.at:9301/timeout</timeout>
7
7
  <timeout1 xmlns="http://riddl.org/ns/common-patterns/properties/1.0">http://promise.wst.univie.ac.at:9301/timeout/1</timeout1>
@@ -23,9 +23,6 @@
23
23
  <credit_consume xmlns="http://riddl.org/ns/common-patterns/properties/1.0">http://promise.wst.univie.ac.at:9301/credit/consume</credit_consume>
24
24
  <credit_activate xmlns="http://riddl.org/ns/common-patterns/properties/1.0">http://promise.wst.univie.ac.at:9301/credit/activate</credit_activate>
25
25
  </endpoints>
26
- <attributes>
27
- <theme>promise</theme>
28
- </attributes>
29
26
  <positions/>
30
27
  <description>
31
28
  <description xmlns="http://cpee.org/ns/description/1.0">
@@ -50,7 +47,6 @@
50
47
  </call>
51
48
  <parallel wait="1" svg-label="">
52
49
  <parallel_branch svg-label="">
53
- <manipulate id="a16" svg-label="">sleep 2</manipulate>
54
50
  <call id="a14" endpoint="timeout1" svg-label="2-woechige Frist">
55
51
  <parameters>
56
52
  <label>"2-woechige Frist"</label>
@@ -73,7 +69,6 @@
73
69
  </call>
74
70
  <parallel wait="1" svg-label="">
75
71
  <parallel_branch svg-label="">
76
- <manipulate id="a21" svg-label="">sleep 2</manipulate>
77
72
  <call id="a7" endpoint="timeout2" svg-label="2-woechige Frist">
78
73
  <parameters>
79
74
  <label>"2-woechige Frist"</label>
@@ -252,6 +247,7 @@
252
247
  <endpoints type="none"/>
253
248
  </transformation>
254
249
  <attributes>
250
+ <theme xmlns="http://riddl.org/ns/common-patterns/properties/1.0">default</theme>
255
251
  <info xmlns="http://riddl.org/ns/common-patterns/properties/1.0">ss</info>
256
252
  <modeltype xmlns="http://riddl.org/ns/common-patterns/properties/1.0">CPEE</modeltype>
257
253
  </attributes>
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "cpee"
3
- s.version = "1.3.196"
3
+ s.version = "1.3.197"
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"
@@ -24,7 +24,7 @@ module CPEE
24
24
 
25
25
  module ProcessTransformation
26
26
 
27
- module Target
27
+ module Target
28
28
 
29
29
  class CPEE < Default
30
30
  def generate
@@ -39,14 +39,14 @@ module CPEE
39
39
 
40
40
  def print_Loop(node,res)
41
41
  if node.sub.length == 2 && node.sub[1].condition.empty? && ((node.sub[1].length == 1 && node.sub[1][0].class.name.gsub(/\w+:+/,'') == 'Break') || node.sub[1].length == 0)
42
- s1 = res.add('loop', 'pre_test' => node.sub[0].condition.empty? ? 'true' : node.sub[0].condition.join(' && '))
42
+ s1 = res.add('loop', 'mode' => 'pre_test', 'condition' => node.sub[0].condition.empty? ? 'true' : node.sub[0].condition.join(' && '))
43
43
  s1.attributes['language'] = node.sub[0].condition_type unless node.sub[0].condition_type.nil?
44
44
  node.sub[0].attributes.each do |k,v|
45
45
  s1.attributes[k] = v
46
46
  end
47
47
  generate_for_list(node.sub[0],s1)
48
- else
49
- s1 = res.add('loop', 'pre_test' => 'true')
48
+ else
49
+ s1 = res.add('loop', 'mode' => 'pre_test', 'condition' => 'true')
50
50
  print_Conditional(node,s1)
51
51
  end
52
52
  s1
@@ -64,7 +64,7 @@ module CPEE
64
64
  p.add('d:method',node.methods.join(',') || 'post')
65
65
  p.add('d:type',":#{node.type}")
66
66
  p.add('d:mid',"'#{node.id}'")
67
- par = p.add('d:parameters')
67
+ par = p.add('d:arguments')
68
68
  node.parameters.each do |k,v|
69
69
  par.add(k,v)
70
70
  end
@@ -9,7 +9,7 @@ require 'riddl/utils/properties'
9
9
  require 'riddl/utils/fileserve'
10
10
  require 'riddl/utils/downloadify'
11
11
  require 'riddl/utils/turtle'
12
-
12
+ require 'time'
13
13
 
14
14
  class Logging < Riddl::Implementation #{{{
15
15
  LOGTEMPLATE = <<-END
@@ -17,6 +17,7 @@ class Logging < Riddl::Implementation #{{{
17
17
  <extension name="Time" prefix="time" uri="http://www.xes-standard.org/time.xesext"/>
18
18
  <extension name="Concept" prefix="concept" uri="http://www.xes-standard.org/concept.xesext"/>
19
19
  <extension name="Organizational" prefix="org" uri="http://www.xes-standard.org/org.xesext"/>
20
+ <extension name="Lifecycle" prefix="lifecycle" uri="http://www.xes-standard.org/lifecycle.xesext"/>
20
21
  <trace/>
21
22
  </log>
22
23
  END
@@ -28,6 +29,7 @@ class Logging < Riddl::Implementation #{{{
28
29
  instancenr = @h['CPEE_INSTANCE'].split('/').last
29
30
  notification = JSON.parse(@p[3].value)
30
31
  uuid = notification['instance_uuid']
32
+ activity = notification["activity"]
31
33
  parameters = notification['parameters']
32
34
  Dir.mkdir(log_dir+'/'+uuid) unless Dir.exist?(log_dir+'/'+uuid)
33
35
  time_added=false
@@ -36,9 +38,13 @@ class Logging < Riddl::Implementation #{{{
36
38
  trace = xml.find("/xmlns:log/xmlns:trace").first
37
39
  trace.add 'string', :key => "concept:name", :value => "Instance #{instancenr}" if trace.find('xmlns:string').empty?
38
40
  event = trace.add "event"
39
- event.add 'string', :key => "concept:name", :value => parameters["label"] if parameters && parameters.has_key?('label')
41
+ if parameters && parameters.has_key?('label')
42
+ event.add 'string', :key => "concept:name", :value => parameters["label"]
43
+ else
44
+ event.add 'string', :key => "concept:name", :value => trace.find("string(xmlns:event[xmlns:string[@key='id:id' and @value='#{activity}']]/xmlns:string[@key='concept:name']/@value)")
45
+ end
40
46
  event.add 'string', :key => "concept:instance", :value => notification["endpoint"] if notification["endpoint"]
41
- event.add 'string', :key => "id:id", :value => notification["activity"]
47
+ event.add 'string', :key => "id:id", :value => activity
42
48
  event.add 'string', :key => "lifecycle:transition", :value => event_name=='done'?"complete":"start"
43
49
  data_send = ((parameters[:arguments].nil? ? [] : parameters[:arguments]) rescue [])
44
50
  if data_send.any?
@@ -47,7 +53,7 @@ class Logging < Riddl::Implementation #{{{
47
53
  list.add 'string', :key => k , :value => v
48
54
  end
49
55
  end
50
- event.add 'date', :key => "time:timestamp", :value => Time.now unless time_added
56
+ event.add 'date', :key => "time:timestamp", :value => Time.now.iso8601 unless time_added
51
57
  rescue => e
52
58
  puts e.message
53
59
  puts e.backtrace
@@ -58,6 +64,7 @@ class Logging < Riddl::Implementation #{{{
58
64
  instancenr = @h['CPEE_INSTANCE'].split('/').last
59
65
  notification = JSON.parse(@p[3].value)
60
66
  uuid = notification['instance_uuid']
67
+ activity = notification["activity"]
61
68
  receiving = notification['received']
62
69
  Dir.mkdir(log_dir+'/'+uuid) unless Dir.exist?(log_dir+'/'+uuid)
63
70
  time_added=false
@@ -66,6 +73,7 @@ class Logging < Riddl::Implementation #{{{
66
73
  trace = xml.find("/xmlns:log/xmlns:trace").first
67
74
  trace.add 'string', :key => "concept:name", :value => "Instance #{instancenr}" if trace.find('xmlns:string').empty?
68
75
  event = trace.add "event"
76
+ event.add 'string', :key => "concept:name", :value => trace.find("string(xmlns:event[xmlns:string[@key='id:id' and @value='#{activity}']]/xmlns:string[@key='concept:name']/@value)")
69
77
  event.add 'string', :key => "concept:instance", :value => notification["endpoint"] if notification["endpoint"]
70
78
  event.add 'string', :key => "id:id", :value => notification["activity"]
71
79
  event.add 'string', :key => "lifecycle:transition", :value => "unknown"
@@ -75,7 +83,7 @@ class Logging < Riddl::Implementation #{{{
75
83
  list.add 'string', :key => k, :value => v
76
84
  end
77
85
  end
78
- event.add 'date', :key => "time:timestamp", :value => Time.now unless time_added
86
+ event.add 'date', :key => "time:timestamp", :value => Time.now.iso8601 unless time_added
79
87
  rescue => e
80
88
  puts e.message
81
89
  puts e.backtrace
@@ -0,0 +1,561 @@
1
+ <properties xmlns="http://riddl.org/ns/common-patterns/properties/1.0">
2
+ <attributes>
3
+ <uuid>d8b178e9-1e48-4855-b678-c78f9c84f55b</uuid>
4
+ <theme>promise</theme>
5
+ <uuid>d8b178e9-1e48-4855-b678-c78f9c84f55b</uuid>
6
+ <info>ss</info>
7
+ <modeltype>CPEE</modeltype>
8
+ </attributes>
9
+ <state>ready</state>
10
+ <handlerwrapper>DefaultHandlerWrapper</handlerwrapper>
11
+ <positions/>
12
+ <dataelements/>
13
+ <endpoints>
14
+ <timeout>http://promise.wst.univie.ac.at:9301/timeout</timeout>
15
+ <timeout1>http://promise.wst.univie.ac.at:9301/timeout/1</timeout1>
16
+ <timeout2>http://promise.wst.univie.ac.at:9301/timeout/16</timeout2>
17
+ <timeout3>http://promise.wst.univie.ac.at:9301/timeout/41</timeout3>
18
+ <preminder1>http://promise.wst.univie.ac.at:9301/preminder/1</preminder1>
19
+ <preminder2>http://promise.wst.univie.ac.at:9301/preminder/2</preminder2>
20
+ <sreminder1>http://promise.wst.univie.ac.at:9301/sreminder/1</sreminder1>
21
+ <sreminder2>http://promise.wst.univie.ac.at:9301/sreminder/2</sreminder2>
22
+ <inkasso>http://promise.wst.univie.ac.at:9301/inkasso</inkasso>
23
+ <customer>http://promise.wst.univie.ac.at:9301/customer</customer>
24
+ <credit>http://promise.wst.univie.ac.at:9301/credit</credit>
25
+ <credit_worthy>http://promise.wst.univie.ac.at:9301/credit/worthy</credit_worthy>
26
+ <activation>http://promise.wst.univie.ac.at:9301/activation</activation>
27
+ <zaehler>http://promise.wst.univie.ac.at:9301/zaehler</zaehler>
28
+ <update>http://promise.wst.univie.ac.at:9301/update</update>
29
+ <consume>http://promise.wst.univie.ac.at:9301/consume</consume>
30
+ <decide>http://promise.wst.univie.ac.at:9301/decide</decide>
31
+ <credit_consume>http://promise.wst.univie.ac.at:9301/credit/consume</credit_consume>
32
+ <credit_activate>http://promise.wst.univie.ac.at:9301/credit/activate</credit_activate>
33
+ </endpoints>
34
+ <dsl>call :a20, :customer, parameters: { :label =&gt; "\"Generate Customer\"", :method =&gt; :post, :arguments =&gt; nil }, finalize: &lt;&lt;-END
35
+ data.knr=result[0].value;data.status="normal";data.zaehlerid=result[1].value
36
+ END
37
+ call :a10, :sreminder1, parameters: { :label =&gt; "\"Sendung erste Mahnung\"", :method =&gt; :post, :arguments =&gt; {:knr =&gt; data.knr}, :type =&gt; :task, :mid =&gt; 'sid-5CD9191C-7233-414F-8EF4-A4E1A8D39E07' }
38
+ parallel :wait =&gt; 1 do
39
+ parallel_branch do
40
+ manipulate :a16, &lt;&lt;-END
41
+ sleep 2
42
+ END
43
+ call :a14, :timeout1, parameters: { :label =&gt; "\"2-woechige Frist\"", :method =&gt; :post, :arguments =&gt; {:timeout =&gt; 2} }
44
+ call :a11, :sreminder2, parameters: { :label =&gt; "\"Senden zweite Mahnung\"", :method =&gt; :post, :arguments =&gt; {:knr =&gt; data.knr}, :type =&gt; :task, :mid =&gt; 'sid-8417E18E-016C-4F87-86FC-216475C1C029' }
45
+ parallel :wait =&gt; 1 do
46
+ parallel_branch do
47
+ manipulate :a21, &lt;&lt;-END
48
+ sleep 2
49
+ END
50
+ call :a7, :timeout2, parameters: { :label =&gt; "\"2-woechige Frist\"", :method =&gt; :post, :arguments =&gt; {:timeout =&gt; 2} }
51
+ call :a1, :inkasso, parameters: { :label =&gt; "\"Registrierung als Inkassokunde\"", :method =&gt; :put, :arguments =&gt; {:status =&gt; data.status} }, finalize: &lt;&lt;-END
52
+ data.status=result[0].value;data.zaehler_status='normal'
53
+ END
54
+ parallel :wait =&gt; -1 do
55
+ parallel_branch do
56
+ call :a4, :activation, parameters: { :label =&gt; "\"Aktivierung Register fuer Guthaben und Anzeige am Display (Prepayment)\"", :method =&gt; :post, :type =&gt; :task, :mid =&gt; 'sid-032C8450-4DF9-435B-8105-F0C13734A7A8', :arguments =&gt; {:knr =&gt; data.knr} }
57
+ end
58
+ parallel_branch do
59
+ call :a2, :inkasso, parameters: { :label =&gt; "\"Umparametrierung des Zaehlers von Normal- auf Inkassobetrieb\"", :method =&gt; :put, :arguments =&gt; {:zaehlerid =&gt; data.zaehlerid, :status =&gt; data.zaehler_status} }, finalize: &lt;&lt;-END
60
+ data.zaehler_status=result[0].value
61
+ END
62
+ end
63
+ end
64
+ call :a6, :update, parameters: { :label =&gt; "\"Aktualisierung Guthaben\"", :method =&gt; :post, :arguments =&gt; nil }, finalize: &lt;&lt;-END
65
+ data.wartefrist="ok";data.guthaben=result[0].value.to_i
66
+ END
67
+ call :a3, :timeout3, parameters: { :label =&gt; "\"Aufladen\"", :method =&gt; :post, :arguments =&gt; nil }, finalize: &lt;&lt;-END
68
+ p data.guthaben
69
+ END
70
+ loop pre_test{data.wartefrist!='verstrichen'} do
71
+ loop pre_test{data.guthaben&gt;0} do
72
+ call :a5, :consume, parameters: { :label =&gt; "\"Verbrauchen\"", :method =&gt; :post, :arguments =&gt; {:knr =&gt; data.knr} }, finalize: &lt;&lt;-END
73
+ data.guthaben=data.guthaben-result[0].value.to_i
74
+ END
75
+ end
76
+ call :a13, :decide, parameters: { :label =&gt; "\"Gesetzl. Frist\"", :method =&gt; :post, :arguments =&gt; {:knr =&gt; data.knr} }, finalize: &lt;&lt;-END
77
+ data.wartefrist="verstrichen" if result[0].name == 'wartefrist';data.guthaben=result[0].value.to_i if result[0].name == "balance"
78
+ END
79
+ end
80
+ call :a17, :timeout, parameters: { :label =&gt; "\"Abschaltung\"", :method =&gt; :post, :arguments =&gt; {:knr =&gt; data.knr} }, finalize: &lt;&lt;-END
81
+ data.zaehler_status='off'
82
+ END
83
+ call :a8, :credit_worthy, parameters: { :label =&gt; "\"Kreditwuerdig\"", :method =&gt; :post, :arguments =&gt; {:knr =&gt; data.knr} }, finalize: &lt;&lt;-END
84
+ data.kreditf=result[0].value;data.kredit_wanted="true"
85
+ END
86
+ choose :exclusive do
87
+ alternative "data.kreditf=='true'" do
88
+ call :a12, :timeout, parameters: { :label =&gt; "\"activate parametrizable credit function and credit offer\"", :method =&gt; :post, :arguments =&gt; {:knr =&gt; data.knr} }
89
+ choose :exclusive do
90
+ alternative "data.kredit_wanted=='true'" do
91
+ call :a18, :credit_activate, parameters: { :label =&gt; "\"activate meter\"", :method =&gt; :post, :arguments =&gt; {:knr =&gt; knr=data.knr} }, finalize: &lt;&lt;-END
92
+ data.kredit=result[0].value.to_i
93
+ END
94
+ loop pre_test{data.kredit&gt;0} do
95
+ call :a19, :credit_consume, parameters: { :label =&gt; "\"Consume credit\"", :method =&gt; :post, :arguments =&gt; {:knr =&gt; knr=data.knr} }, finalize: &lt;&lt;-END
96
+ data.kredit=data.kredit-result[0].value.to_i
97
+ END
98
+ end
99
+ end
100
+ end
101
+ end
102
+ end
103
+ end
104
+ parallel_branch do
105
+ call :a9, :preminder2, parameters: { :label =&gt; "\"Kunde zahlt\"", :method =&gt; :post, :arguments =&gt; nil }
106
+ end
107
+ end
108
+ end
109
+ parallel_branch do
110
+ call :a15, :preminder1, parameters: { :label =&gt; "\"Kunde zahlt\"", :method =&gt; :post, :arguments =&gt; nil }
111
+ end
112
+ end
113
+ </dsl>
114
+ <dslx>
115
+ <description xmlns="http://cpee.org/ns/description/1.0">
116
+ <call id="a20" endpoint="customer" svg-label="Generate Customer">
117
+ <parameters>
118
+ <label>"Generate Customer"</label>
119
+ <method>:post</method>
120
+ <arguments/>
121
+ </parameters>
122
+ <finalize>data.knr=result[0].value;data.status="normal";data.zaehlerid=result[1].value</finalize>
123
+ </call>
124
+ <call id="a10" endpoint="sreminder1" svg-label="Sendung erste Mahnung">
125
+ <parameters>
126
+ <label>"Sendung erste Mahnung"</label>
127
+ <method>:post</method>
128
+ <arguments>
129
+ <knr>data.knr</knr>
130
+ </arguments>
131
+ <type>:task</type>
132
+ <mid>'sid-5CD9191C-7233-414F-8EF4-A4E1A8D39E07'</mid>
133
+ </parameters>
134
+ </call>
135
+ <parallel wait="1" svg-label="">
136
+ <parallel_branch svg-label="">
137
+ <manipulate id="a16" svg-label="">sleep 2</manipulate>
138
+ <call id="a14" endpoint="timeout1" svg-label="2-woechige Frist">
139
+ <parameters>
140
+ <label>"2-woechige Frist"</label>
141
+ <method>:post</method>
142
+ <arguments>
143
+ <timeout>2</timeout>
144
+ </arguments>
145
+ </parameters>
146
+ </call>
147
+ <call id="a11" endpoint="sreminder2" svg-label="Senden zweite Mahnung">
148
+ <parameters>
149
+ <label>"Senden zweite Mahnung"</label>
150
+ <method>:post</method>
151
+ <arguments>
152
+ <knr>data.knr</knr>
153
+ </arguments>
154
+ <type>:task</type>
155
+ <mid>'sid-8417E18E-016C-4F87-86FC-216475C1C029'</mid>
156
+ </parameters>
157
+ </call>
158
+ <parallel wait="1" svg-label="">
159
+ <parallel_branch svg-label="">
160
+ <manipulate id="a21" svg-label="">sleep 2</manipulate>
161
+ <call id="a7" endpoint="timeout2" svg-label="2-woechige Frist">
162
+ <parameters>
163
+ <label>"2-woechige Frist"</label>
164
+ <method>:post</method>
165
+ <arguments>
166
+ <timeout>2</timeout>
167
+ </arguments>
168
+ </parameters>
169
+ </call>
170
+ <call id="a1" endpoint="inkasso" svg-label="Registrierung als Inkassokunde">
171
+ <parameters>
172
+ <label>"Registrierung als Inkassokunde"</label>
173
+ <method>:put</method>
174
+ <arguments>
175
+ <status>data.status</status>
176
+ </arguments>
177
+ </parameters>
178
+ <finalize>data.status=result[0].value;data.zaehler_status='normal'</finalize>
179
+ </call>
180
+ <parallel wait="-1" svg-label="">
181
+ <parallel_branch svg-label="">
182
+ <call id="a4" endpoint="activation" svg-label="Aktivierung Register fuer Guthaben und Anzeige am Display (Prepayment)">
183
+ <parameters>
184
+ <label>"Aktivierung Register fuer Guthaben und Anzeige am Display (Prepayment)"</label>
185
+ <method>:post</method>
186
+ <type>:task</type>
187
+ <mid>'sid-032C8450-4DF9-435B-8105-F0C13734A7A8'</mid>
188
+ <arguments>
189
+ <knr>data.knr</knr>
190
+ </arguments>
191
+ </parameters>
192
+ </call>
193
+ </parallel_branch>
194
+ <parallel_branch svg-label="">
195
+ <call id="a2" endpoint="inkasso" svg-label="Umparametrierung des Zaehlers von Normal- auf Inkassobetrieb">
196
+ <parameters>
197
+ <label>"Umparametrierung des Zaehlers von Normal- auf Inkassobetrieb"</label>
198
+ <method>:put</method>
199
+ <arguments>
200
+ <zaehlerid>data.zaehlerid</zaehlerid>
201
+ <status>data.zaehler_status</status>
202
+ </arguments>
203
+ </parameters>
204
+ <finalize>data.zaehler_status=result[0].value</finalize>
205
+ </call>
206
+ </parallel_branch>
207
+ </parallel>
208
+ <call id="a6" endpoint="update" svg-label="Aktualisierung Guthaben">
209
+ <parameters>
210
+ <label>"Aktualisierung Guthaben"</label>
211
+ <method>:post</method>
212
+ <arguments/>
213
+ </parameters>
214
+ <finalize>data.wartefrist="ok";data.guthaben=result[0].value.to_i</finalize>
215
+ </call>
216
+ <call id="a3" endpoint="timeout3" svg-label="Aufladen">
217
+ <parameters>
218
+ <label>"Aufladen"</label>
219
+ <method>:post</method>
220
+ <arguments/>
221
+ </parameters>
222
+ <finalize>p data.guthaben</finalize>
223
+ </call>
224
+ <loop mode="pre_test" condition="data.wartefrist!='verstrichen'" svg-label="">
225
+ <loop mode="pre_test" condition="data.guthaben&gt;0" svg-label="">
226
+ <call id="a5" endpoint="consume" svg-label="Verbrauchen">
227
+ <parameters>
228
+ <label>"Verbrauchen"</label>
229
+ <method>:post</method>
230
+ <arguments>
231
+ <knr>data.knr</knr>
232
+ </arguments>
233
+ </parameters>
234
+ <finalize>data.guthaben=data.guthaben-result[0].value.to_i</finalize>
235
+ </call>
236
+ </loop>
237
+ <call id="a13" endpoint="decide" svg-label="Gesetzl. Frist">
238
+ <parameters>
239
+ <label>"Gesetzl. Frist"</label>
240
+ <method>:post</method>
241
+ <arguments>
242
+ <knr>data.knr</knr>
243
+ </arguments>
244
+ </parameters>
245
+ <finalize>data.wartefrist="verstrichen" if result[0].name == 'wartefrist';data.guthaben=result[0].value.to_i if result[0].name == "balance"</finalize>
246
+ </call>
247
+ </loop>
248
+ <call id="a17" endpoint="timeout" svg-label="Abschaltung">
249
+ <parameters>
250
+ <label>"Abschaltung"</label>
251
+ <method>:post</method>
252
+ <arguments>
253
+ <knr>data.knr</knr>
254
+ </arguments>
255
+ </parameters>
256
+ <finalize>data.zaehler_status='off'</finalize>
257
+ </call>
258
+ <call id="a8" endpoint="credit_worthy" svg-label="Kreditwuerdig">
259
+ <parameters>
260
+ <label>"Kreditwuerdig"</label>
261
+ <method>:post</method>
262
+ <arguments>
263
+ <knr>data.knr</knr>
264
+ </arguments>
265
+ </parameters>
266
+ <finalize>data.kreditf=result[0].value;data.kredit_wanted="true"</finalize>
267
+ </call>
268
+ <choose mode="exclusive" svg-label="">
269
+ <alternative condition="data.kreditf=='true'" svg-label="">
270
+ <call id="a12" endpoint="timeout" svg-label="activate parametrizable credit function and credit offer">
271
+ <parameters>
272
+ <label>"activate parametrizable credit function and credit offer"</label>
273
+ <method>:post</method>
274
+ <arguments>
275
+ <knr>data.knr</knr>
276
+ </arguments>
277
+ </parameters>
278
+ </call>
279
+ <choose mode="exclusive" svg-label="">
280
+ <alternative condition="data.kredit_wanted=='true'" svg-label="">
281
+ <call id="a18" endpoint="credit_activate" svg-label="activate meter">
282
+ <parameters>
283
+ <label>"activate meter"</label>
284
+ <method>:post</method>
285
+ <arguments>
286
+ <knr>knr=data.knr</knr>
287
+ </arguments>
288
+ </parameters>
289
+ <finalize>data.kredit=result[0].value.to_i</finalize>
290
+ </call>
291
+ <loop mode="pre_test" condition="data.kredit&gt;0" svg-label="">
292
+ <call id="a19" endpoint="credit_consume" svg-label="Consume credit">
293
+ <parameters>
294
+ <label>"Consume credit"</label>
295
+ <method>:post</method>
296
+ <arguments>
297
+ <knr>knr=data.knr</knr>
298
+ </arguments>
299
+ </parameters>
300
+ <finalize>data.kredit=data.kredit-result[0].value.to_i</finalize>
301
+ </call>
302
+ </loop>
303
+ </alternative>
304
+ <otherwise svg-label=""/>
305
+ </choose>
306
+ </alternative>
307
+ <otherwise svg-label=""/>
308
+ </choose>
309
+ </parallel_branch>
310
+ <parallel_branch svg-label="">
311
+ <call id="a9" endpoint="preminder2" svg-label="Kunde zahlt">
312
+ <parameters>
313
+ <label>"Kunde zahlt"</label>
314
+ <method>:post</method>
315
+ <arguments/>
316
+ </parameters>
317
+ </call>
318
+ </parallel_branch>
319
+ </parallel>
320
+ </parallel_branch>
321
+ <parallel_branch svg-label="">
322
+ <call id="a15" endpoint="preminder1" svg-label="Kunde zahlt">
323
+ <parameters>
324
+ <label>"Kunde zahlt"</label>
325
+ <method>:post</method>
326
+ <arguments/>
327
+ </parameters>
328
+ </call>
329
+ </parallel_branch>
330
+ </parallel>
331
+ </description>
332
+ </dslx>
333
+ <status>
334
+ <id>0</id>
335
+ <message>undefined</message>
336
+ </status>
337
+ <description>
338
+ <description xmlns="http://cpee.org/ns/description/1.0">
339
+ <call id="a20" endpoint="customer" svg-label="Generate Customer">
340
+ <parameters>
341
+ <label>"Generate Customer"</label>
342
+ <method>:post</method>
343
+ <arguments/>
344
+ </parameters>
345
+ <finalize>data.knr=result[0].value;data.status="normal";data.zaehlerid=result[1].value</finalize>
346
+ </call>
347
+ <call id="a10" endpoint="sreminder1" svg-label="Sendung erste Mahnung">
348
+ <parameters>
349
+ <label>"Sendung erste Mahnung"</label>
350
+ <method>:post</method>
351
+ <arguments>
352
+ <knr>data.knr</knr>
353
+ </arguments>
354
+ <type>:task</type>
355
+ <mid>'sid-5CD9191C-7233-414F-8EF4-A4E1A8D39E07'</mid>
356
+ </parameters>
357
+ </call>
358
+ <parallel wait="1" svg-label="">
359
+ <parallel_branch svg-label="">
360
+ <manipulate id="a16" svg-label="">sleep 2</manipulate>
361
+ <call id="a14" endpoint="timeout1" svg-label="2-woechige Frist">
362
+ <parameters>
363
+ <label>"2-woechige Frist"</label>
364
+ <method>:post</method>
365
+ <arguments>
366
+ <timeout>2</timeout>
367
+ </arguments>
368
+ </parameters>
369
+ </call>
370
+ <call id="a11" endpoint="sreminder2" svg-label="Senden zweite Mahnung">
371
+ <parameters>
372
+ <label>"Senden zweite Mahnung"</label>
373
+ <method>:post</method>
374
+ <arguments>
375
+ <knr>data.knr</knr>
376
+ </arguments>
377
+ <type>:task</type>
378
+ <mid>'sid-8417E18E-016C-4F87-86FC-216475C1C029'</mid>
379
+ </parameters>
380
+ </call>
381
+ <parallel wait="1" svg-label="">
382
+ <parallel_branch svg-label="">
383
+ <manipulate id="a21" svg-label="">sleep 2</manipulate>
384
+ <call id="a7" endpoint="timeout2" svg-label="2-woechige Frist">
385
+ <parameters>
386
+ <label>"2-woechige Frist"</label>
387
+ <method>:post</method>
388
+ <arguments>
389
+ <timeout>2</timeout>
390
+ </arguments>
391
+ </parameters>
392
+ </call>
393
+ <call id="a1" endpoint="inkasso" svg-label="Registrierung als Inkassokunde">
394
+ <parameters>
395
+ <label>"Registrierung als Inkassokunde"</label>
396
+ <method>:put</method>
397
+ <arguments>
398
+ <status>data.status</status>
399
+ </arguments>
400
+ </parameters>
401
+ <finalize>data.status=result[0].value;data.zaehler_status='normal'</finalize>
402
+ </call>
403
+ <parallel wait="-1" svg-label="">
404
+ <parallel_branch svg-label="">
405
+ <call id="a4" endpoint="activation" svg-label="Aktivierung Register fuer Guthaben und Anzeige am Display (Prepayment)">
406
+ <parameters>
407
+ <label>"Aktivierung Register fuer Guthaben und Anzeige am Display (Prepayment)"</label>
408
+ <method>:post</method>
409
+ <type>:task</type>
410
+ <mid>'sid-032C8450-4DF9-435B-8105-F0C13734A7A8'</mid>
411
+ <arguments>
412
+ <knr>data.knr</knr>
413
+ </arguments>
414
+ </parameters>
415
+ </call>
416
+ </parallel_branch>
417
+ <parallel_branch svg-label="">
418
+ <call id="a2" endpoint="inkasso" svg-label="Umparametrierung des Zaehlers von Normal- auf Inkassobetrieb">
419
+ <parameters>
420
+ <label>"Umparametrierung des Zaehlers von Normal- auf Inkassobetrieb"</label>
421
+ <method>:put</method>
422
+ <arguments>
423
+ <zaehlerid>data.zaehlerid</zaehlerid>
424
+ <status>data.zaehler_status</status>
425
+ </arguments>
426
+ </parameters>
427
+ <finalize>data.zaehler_status=result[0].value</finalize>
428
+ </call>
429
+ </parallel_branch>
430
+ </parallel>
431
+ <call id="a6" endpoint="update" svg-label="Aktualisierung Guthaben">
432
+ <parameters>
433
+ <label>"Aktualisierung Guthaben"</label>
434
+ <method>:post</method>
435
+ <arguments/>
436
+ </parameters>
437
+ <finalize>data.wartefrist="ok";data.guthaben=result[0].value.to_i</finalize>
438
+ </call>
439
+ <call id="a3" endpoint="timeout3" svg-label="Aufladen">
440
+ <parameters>
441
+ <label>"Aufladen"</label>
442
+ <method>:post</method>
443
+ <arguments/>
444
+ </parameters>
445
+ <finalize>p data.guthaben</finalize>
446
+ </call>
447
+ <loop mode="pre_test" condition="data.wartefrist!='verstrichen'" svg-label="">
448
+ <loop mode="pre_test" condition="data.guthaben&gt;0" svg-label="">
449
+ <call id="a5" endpoint="consume" svg-label="Verbrauchen">
450
+ <parameters>
451
+ <label>"Verbrauchen"</label>
452
+ <method>:post</method>
453
+ <arguments>
454
+ <knr>data.knr</knr>
455
+ </arguments>
456
+ </parameters>
457
+ <finalize>data.guthaben=data.guthaben-result[0].value.to_i</finalize>
458
+ </call>
459
+ </loop>
460
+ <call id="a13" endpoint="decide" svg-label="Gesetzl. Frist">
461
+ <parameters>
462
+ <label>"Gesetzl. Frist"</label>
463
+ <method>:post</method>
464
+ <arguments>
465
+ <knr>data.knr</knr>
466
+ </arguments>
467
+ </parameters>
468
+ <finalize>data.wartefrist="verstrichen" if result[0].name == 'wartefrist';data.guthaben=result[0].value.to_i if result[0].name == "balance"</finalize>
469
+ </call>
470
+ </loop>
471
+ <call id="a17" endpoint="timeout" svg-label="Abschaltung">
472
+ <parameters>
473
+ <label>"Abschaltung"</label>
474
+ <method>:post</method>
475
+ <arguments>
476
+ <knr>data.knr</knr>
477
+ </arguments>
478
+ </parameters>
479
+ <finalize>data.zaehler_status='off'</finalize>
480
+ </call>
481
+ <call id="a8" endpoint="credit_worthy" svg-label="Kreditwuerdig">
482
+ <parameters>
483
+ <label>"Kreditwuerdig"</label>
484
+ <method>:post</method>
485
+ <arguments>
486
+ <knr>data.knr</knr>
487
+ </arguments>
488
+ </parameters>
489
+ <finalize>data.kreditf=result[0].value;data.kredit_wanted="true"</finalize>
490
+ </call>
491
+ <choose mode="exclusive" svg-label="">
492
+ <alternative condition="data.kreditf=='true'" svg-label="">
493
+ <call id="a12" endpoint="timeout" svg-label="activate parametrizable credit function and credit offer">
494
+ <parameters>
495
+ <label>"activate parametrizable credit function and credit offer"</label>
496
+ <method>:post</method>
497
+ <arguments>
498
+ <knr>data.knr</knr>
499
+ </arguments>
500
+ </parameters>
501
+ </call>
502
+ <choose mode="exclusive" svg-label="">
503
+ <alternative condition="data.kredit_wanted=='true'" svg-label="">
504
+ <call id="a18" endpoint="credit_activate" svg-label="activate meter">
505
+ <parameters>
506
+ <label>"activate meter"</label>
507
+ <method>:post</method>
508
+ <arguments>
509
+ <knr>knr=data.knr</knr>
510
+ </arguments>
511
+ </parameters>
512
+ <finalize>data.kredit=result[0].value.to_i</finalize>
513
+ </call>
514
+ <loop mode="pre_test" condition="data.kredit&gt;0" svg-label="">
515
+ <call id="a19" endpoint="credit_consume" svg-label="Consume credit">
516
+ <parameters>
517
+ <label>"Consume credit"</label>
518
+ <method>:post</method>
519
+ <arguments>
520
+ <knr>knr=data.knr</knr>
521
+ </arguments>
522
+ </parameters>
523
+ <finalize>data.kredit=data.kredit-result[0].value.to_i</finalize>
524
+ </call>
525
+ </loop>
526
+ </alternative>
527
+ <otherwise svg-label=""/>
528
+ </choose>
529
+ </alternative>
530
+ <otherwise svg-label=""/>
531
+ </choose>
532
+ </parallel_branch>
533
+ <parallel_branch svg-label="">
534
+ <call id="a9" endpoint="preminder2" svg-label="Kunde zahlt">
535
+ <parameters>
536
+ <label>"Kunde zahlt"</label>
537
+ <method>:post</method>
538
+ <arguments/>
539
+ </parameters>
540
+ </call>
541
+ </parallel_branch>
542
+ </parallel>
543
+ </parallel_branch>
544
+ <parallel_branch svg-label="">
545
+ <call id="a15" endpoint="preminder1" svg-label="Kunde zahlt">
546
+ <parameters>
547
+ <label>"Kunde zahlt"</label>
548
+ <method>:post</method>
549
+ <arguments/>
550
+ </parameters>
551
+ </call>
552
+ </parallel_branch>
553
+ </parallel>
554
+ </description>
555
+ </description>
556
+ <transformation>
557
+ <description type="copy"/>
558
+ <dataelements type="none"/>
559
+ <endpoints type="none"/>
560
+ </transformation>
561
+ </properties>