793c0f2d-f7d7-4305-8ad7-93bc4dca4e9a Enter info here CPEE default finished DefaultHandlerWrapper 0 Visa_12345 American Airlines ["Mariott","Mariott","Mariott"] Vienna Prague 652.0 http://gruppe.wst.univie.ac.at/~mangler/services/airline.php http://gruppe.wst.univie.ac.at/~mangler/services/hotel.php http://gruppe.wst.univie.ac.at/~mangler/services/approval.php call :a1, :bookAir, parameters: { :method => :post, :arguments => [Struct.new(:name, :value).new(:from, data.from), Struct.new(:name, :value).new(:to, data.to), Struct.new(:name, :value).new(:persons, 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: { :method => :post, :arguments => [Struct.new(:name, :value).new(:to, 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 "data.costs > 700" do call :a4, :approve, parameters: { :method => :post, :arguments => [Struct.new(:name, :value).new(:costs, data.costs)] } end end :post data.from data.to data.persons data.airline = result.value('id') data.costs += result.value('costs').to_f status.update 1, 'Hotel' :post data.to data.hotels << result.value('id') data.costs += result.value('costs').to_f data.persons -= 1 :post data.costs 0 undefined :post data.from data.to data.persons data.airline = result.value('id') data.costs += result.value('costs').to_f status.update 1, 'Hotel' :post data.to data.hotels << result.value('id') data.costs += result.value('costs').to_f data.persons -= 1 :post data.costs