server/instances/2/properties.xml in cpee-1.4.8 vs server/instances/2/properties.xml in cpee-1.4.10
- old
+ new
@@ -1,31 +1,156 @@
<properties xmlns="http://riddl.org/ns/common-patterns/properties/1.0">
<attributes>
- <info/>
+ <uuid>ead087ef-ee6d-4ae3-b8b6-189ace13b39c</uuid>
+ <info>Enter info here</info>
<modeltype>CPEE</modeltype>
<theme>default</theme>
- <uuid/>
</attributes>
- <state>ready</state>
+ <state>finished</state>
<handlerwrapper>DefaultHandlerWrapper</handlerwrapper>
<positions/>
- <dataelements/>
+ <dataelements>
+ <persons>0</persons>
+ <card>Visa_12345</card>
+ <airline>AUA</airline>
+ <hotels>["Ibis","Ibis","Ibis"]</hotels>
+ <from>Vienna</from>
+ <to>Prague</to>
+ <costs>1145.0</costs>
+ </dataelements>
<endpoints>
- <timeout>http://gruppe.wst.univie.ac.at/~mangler/services/timeout.php</timeout>
+ <bookAir>http://gruppe.wst.univie.ac.at/~mangler/services/airline.php</bookAir>
+ <bookHotel>http://gruppe.wst.univie.ac.at/~mangler/services/hotel.php</bookHotel>
+ <approve>http://gruppe.wst.univie.ac.at/~mangler/services/approval.php</approve>
</endpoints>
- <dsl/>
+ <dsl>call :a1, :bookAir, parameters: { :label => "Book Airline", :method => :post, :arguments => [⭐(:name => :from, :value => "data.from"), ⭐(:name => :to, :value => "data.to"), ⭐(:name => :persons, :value => "data.persons")] }, finalize: <<-END
+ data.airline = result.value('id')
+ data.costs += result.value('costs').to_f
+ status.update 1, 'Hotel'
+END
+parallel do
+ loop pre_test{data.persons > 0} do
+ parallel_branch data.persons do |p|
+ call :a2, :bookHotel, parameters: { :label => "Book Hotel", :method => :post, :arguments => [⭐(:name => :to, :value => "data.to")] }, finalize: <<-END
+ data.hotels << result.value('id')
+ data.costs += result.value('costs').to_f
+ END
+ end
+ manipulate :a3, <<-END
+ data.persons -= 1
+ END
+ end
+end
+choose :inclusive do
+ alternative test{data.costs > 700} do
+ call :a4, :approve, parameters: { :label => "Approve Hotel", :method => :post, :arguments => [⭐(:name => :costs, :value => "data.costs")] }
+ end
+end
+</dsl>
<dslx>
- <description xmlns="http://cpee.org/ns/description/1.0"/>
+ <description xmlns="http://cpee.org/ns/description/1.0">
+ <call id="a1" endpoint="bookAir">
+ <parameters>
+ <label>Book Airline</label>
+ <method>:post</method>
+ <arguments>
+ <from>data.from</from>
+ <to>data.to</to>
+ <persons>data.persons</persons>
+ </arguments>
+ </parameters>
+ <finalize output="result">data.airline = result.value('id')
+data.costs += result.value('costs').to_f
+status.update 1, 'Hotel'</finalize>
+ </call>
+ <parallel>
+ <loop mode="pre_test" condition="data.persons > 0">
+ <parallel_branch pass="data.persons" local="p">
+ <call id="a2" endpoint="bookHotel">
+ <parameters>
+ <label>Book Hotel</label>
+ <method>:post</method>
+ <arguments>
+ <to>data.to</to>
+ </arguments>
+ </parameters>
+ <finalize output="result">data.hotels << result.value('id')
+data.costs += result.value('costs').to_f</finalize>
+ </call>
+ </parallel_branch>
+ <manipulate id="a3">data.persons -= 1</manipulate>
+ </loop>
+ </parallel>
+ <choose mode="inclusive">
+ <alternative condition="data.costs > 700">
+ <call id="a4" endpoint="approve">
+ <parameters>
+ <label>Approve Hotel</label>
+ <method>:post</method>
+ <arguments>
+ <costs>data.costs</costs>
+ </arguments>
+ </parameters>
+ </call>
+ </alternative>
+ </choose>
+ </description>
</dslx>
<status>
- <id>0</id>
- <message>undefined</message>
+ <id>1</id>
+ <message>Hotel</message>
</status>
<description>
- <description xmlns="http://cpee.org/ns/description/1.0"/>
+ <description xmlns="http://cpee.org/ns/description/1.0">
+ <call id="a1" endpoint="bookAir">
+ <parameters>
+ <label>Book Airline</label>
+ <method>:post</method>
+ <arguments>
+ <from>data.from</from>
+ <to>data.to</to>
+ <persons>data.persons</persons>
+ </arguments>
+ </parameters>
+ <finalize output="result">data.airline = result.value('id')
+data.costs += result.value('costs').to_f
+status.update 1, 'Hotel'</finalize>
+ </call>
+ <parallel>
+ <loop mode="pre_test" condition="data.persons > 0">
+ <parallel_branch pass="data.persons" local="p">
+ <call id="a2" endpoint="bookHotel">
+ <parameters>
+ <label>Book Hotel</label>
+ <method>:post</method>
+ <arguments>
+ <to>data.to</to>
+ </arguments>
+ </parameters>
+ <finalize output="result">data.hotels << result.value('id')
+data.costs += result.value('costs').to_f</finalize>
+ </call>
+ </parallel_branch>
+ <manipulate id="a3">data.persons -= 1</manipulate>
+ </loop>
+ </parallel>
+ <choose mode="inclusive">
+ <alternative condition="data.costs > 700">
+ <call id="a4" endpoint="approve">
+ <parameters>
+ <label>Approve Hotel</label>
+ <method>:post</method>
+ <arguments>
+ <costs>data.costs</costs>
+ </arguments>
+ </parameters>
+ </call>
+ </alternative>
+ </choose>
+ </description>
</description>
<transformation>
<description type="copy"/>
- <dataelements type="none"/>
- <endpoints type="none"/>
+ <dataelements type="rest"/>
+ <endpoints type="rest"/>
</transformation>
</properties>
\ No newline at end of file