cpee 1.3.196 → 1.3.197

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