<properties xmlns="http://riddl.org/ns/common-patterns/properties/1.0">
  <attributes>
    <uuid>c25bd9e6-a5b5-44b3-a375-87e40d87f985</uuid>
    <info>a1200993</info>
    <modeltype>Signavio</modeltype>
    <theme>labels</theme>
  </attributes>
  <state>finished</state>
  <handlerwrapper>DefaultHandlerWrapper</handlerwrapper>
  <positions/>
  <dataelements>
    <passportStatus>0</passportStatus>
    <visaStatus>0</visaStatus>
    <jobStatus>0</jobStatus>
    <money>0</money>
    <adress>null</adress>
  </dataelements>
  <endpoints>
    <timeout>http://gruppe.wst.univie.ac.at/~mangler/services/timeout.php</timeout>
  </endpoints>
  <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
  data.money=10000
END
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
  data.passportStatus=0
END
choose :exclusive do
  alternative "data.passportStatus==0" do
    call :a4, :timeout, parameters: { :label =&gt; "Renew passport", :method =&gt; :post, :arguments =&gt; [⭐(:name =&gt; :timeout, :value =&gt; 2)] }, finalize: &lt;&lt;-END
      data.passportStatus=1
      data.money=data.money-60
    END
  end
end
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
  data.visaStatus=1
END
choose :exclusive do
  alternative "data.passportStatus==1" do
    call :a5, :timeout, parameters: { :label =&gt; "Apply for visa", :method =&gt; :post, :arguments =&gt; [⭐(:name =&gt; :timeout, :value =&gt; 2)] }, finalize: &lt;&lt;-END
      data.visaStatus=0
      data.money=data.money-110
    END
  end
end
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
  data.money=data.money-200
END
parallel :wait =&gt; -1 do
  parallel_branch do
    call :a12, :timeout, parameters: { :label =&gt; "\"Organise bank account\"", :method =&gt; :post, :arguments =&gt; [⭐(:name =&gt; :timeout, :value =&gt; 2)] }, finalize: &lt;&lt;-END
      data.money=data.money+100
    END
  end
  parallel_branch do
    call :a13, :timeout, parameters: { :label =&gt; "\"Organise accomodation\"", :method =&gt; :post, :arguments =&gt; [⭐(:name =&gt; :timeout, :value =&gt; 2)] }, finalize: &lt;&lt;-END
      data.adress="Sonnenallee 51/1/16"
    END
  end
end
call :a15, :timeout, parameters: { :label =&gt; "\"Enter Austria\"", :method =&gt; :post, :arguments =&gt; [⭐(:name =&gt; :timeout, :value =&gt; 2)] }, finalize: &lt;&lt;-END
  data.money=data.money-1000
  data.jobStatus=1
END
loop pre_test{data.jobStatus==0}  do
  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
    data.jobStatus=1
  END
end
</dsl>
  <dslx>
    <description xmlns="http://cpee.org/ns/description/1.0">
      <call id="a1" endpoint="timeout">
        <parameters>
          <label>"Save money for living expenses in Austria"</label>
          <method>:post</method>
          <arguments>
            <timeout>2</timeout>
          </arguments>
        </parameters>
        <finalize output="result">data.money=10000
</finalize>
        <update output="result"/>
      </call>
      <call id="a2" endpoint="timeout">
        <parameters>
          <label>"Check if passport still valid"</label>
          <method>:post</method>
          <arguments>
            <timeout>2</timeout>
          </arguments>
        </parameters>
        <finalize output="result">data.passportStatus=0
</finalize>
        <update output="result"/>
      </call>
      <choose mode="exclusive">
        <alternative condition="data.passportStatus==0">
          <call id="a4" endpoint="timeout">
            <parameters>
              <label>Renew passport</label>
              <method>:post</method>
              <arguments>
                <timeout>2</timeout>
              </arguments>
            </parameters>
            <finalize output="result">data.passportStatus=1
data.money=data.money-60</finalize>
            <update output="result"/>
          </call>
        </alternative>
        <otherwise/>
      </choose>
      <call id="a6" endpoint="timeout">
        <parameters>
          <label>"Check if visa is needed"</label>
          <method>:post</method>
          <arguments>
            <timeout>2</timeout>
          </arguments>
        </parameters>
        <finalize output="result">data.visaStatus=1</finalize>
        <update output="result"/>
      </call>
      <choose mode="exclusive">
        <alternative condition="data.passportStatus==1">
          <call id="a5" endpoint="timeout">
            <parameters>
              <label>Apply for visa</label>
              <method>:post</method>
              <arguments>
                <timeout>2</timeout>
              </arguments>
            </parameters>
            <finalize output="result">data.visaStatus=0
data.money=data.money-110</finalize>
            <update output="result"/>
          </call>
        </alternative>
        <otherwise/>
      </choose>
      <call id="a10" endpoint="timeout">
        <parameters>
          <label>"Apply for \"Rot-Weiß-Rot\" card"</label>
          <method>:post</method>
          <arguments>
            <timeout>2</timeout>
          </arguments>
        </parameters>
        <finalize output="result">data.money=data.money-200</finalize>
        <update output="result"/>
      </call>
      <parallel wait="-1">
        <parallel_branch>
          <call id="a12" endpoint="timeout">
            <parameters>
              <label>"Organise bank account"</label>
              <method>:post</method>
              <arguments>
                <timeout>2</timeout>
              </arguments>
            </parameters>
            <finalize output="result">data.money=data.money+100</finalize>
            <update output="result"/>
          </call>
        </parallel_branch>
        <parallel_branch>
          <call id="a13" endpoint="timeout">
            <parameters>
              <label>"Organise accomodation"</label>
              <method>:post</method>
              <arguments>
                <timeout>2</timeout>
              </arguments>
            </parameters>
            <finalize output="result">data.adress="Sonnenallee 51/1/16"</finalize>
            <update output="result"/>
          </call>
        </parallel_branch>
      </parallel>
      <call id="a15" endpoint="timeout">
        <parameters>
          <label>"Enter Austria"</label>
          <method>:post</method>
          <arguments>
            <timeout>2</timeout>
          </arguments>
        </parameters>
        <finalize output="result">data.money=data.money-1000
data.jobStatus=1</finalize>
        <update output="result"/>
      </call>
      <loop mode="pre_test" condition="data.jobStatus==0">
        <call id="a3" endpoint="timeout">
          <parameters>
            <label>Search for a job</label>
            <method>:post</method>
            <arguments>
              <timeout>2</timeout>
            </arguments>
          </parameters>
          <finalize output="result">data.jobStatus=1</finalize>
          <update output="result"/>
        </call>
      </loop>
    </description>
  </dslx>
  <status>
    <id>0</id>
    <message>undefined</message>
  </status>
  <description>
    <description xmlns="http://cpee.org/ns/description/1.0">
      <call id="a1" endpoint="timeout">
        <parameters>
          <label>"Save money for living expenses in Austria"</label>
          <method>:post</method>
          <arguments>
            <timeout>2</timeout>
          </arguments>
        </parameters>
        <finalize output="result">data.money=10000
</finalize>
        <update output="result"/>
      </call>
      <call id="a2" endpoint="timeout">
        <parameters>
          <label>"Check if passport still valid"</label>
          <method>:post</method>
          <arguments>
            <timeout>2</timeout>
          </arguments>
        </parameters>
        <finalize output="result">data.passportStatus=0
</finalize>
        <update output="result"/>
      </call>
      <choose mode="exclusive">
        <alternative condition="data.passportStatus==0">
          <call id="a4" endpoint="timeout">
            <parameters>
              <label>Renew passport</label>
              <method>:post</method>
              <arguments>
                <timeout>2</timeout>
              </arguments>
            </parameters>
            <finalize output="result">data.passportStatus=1
data.money=data.money-60</finalize>
            <update output="result"/>
          </call>
        </alternative>
        <otherwise/>
      </choose>
      <call id="a6" endpoint="timeout">
        <parameters>
          <label>"Check if visa is needed"</label>
          <method>:post</method>
          <arguments>
            <timeout>2</timeout>
          </arguments>
        </parameters>
        <finalize output="result">data.visaStatus=1</finalize>
        <update output="result"/>
      </call>
      <choose mode="exclusive">
        <alternative condition="data.passportStatus==1">
          <call id="a5" endpoint="timeout">
            <parameters>
              <label>Apply for visa</label>
              <method>:post</method>
              <arguments>
                <timeout>2</timeout>
              </arguments>
            </parameters>
            <finalize output="result">data.visaStatus=0
data.money=data.money-110</finalize>
            <update output="result"/>
          </call>
        </alternative>
        <otherwise/>
      </choose>
      <call id="a10" endpoint="timeout">
        <parameters>
          <label>"Apply for \"Rot-Weiß-Rot\" card"</label>
          <method>:post</method>
          <arguments>
            <timeout>2</timeout>
          </arguments>
        </parameters>
        <finalize output="result">data.money=data.money-200</finalize>
        <update output="result"/>
      </call>
      <parallel wait="-1">
        <parallel_branch>
          <call id="a12" endpoint="timeout">
            <parameters>
              <label>"Organise bank account"</label>
              <method>:post</method>
              <arguments>
                <timeout>2</timeout>
              </arguments>
            </parameters>
            <finalize output="result">data.money=data.money+100</finalize>
            <update output="result"/>
          </call>
        </parallel_branch>
        <parallel_branch>
          <call id="a13" endpoint="timeout">
            <parameters>
              <label>"Organise accomodation"</label>
              <method>:post</method>
              <arguments>
                <timeout>2</timeout>
              </arguments>
            </parameters>
            <finalize output="result">data.adress="Sonnenallee 51/1/16"</finalize>
            <update output="result"/>
          </call>
        </parallel_branch>
      </parallel>
      <call id="a15" endpoint="timeout">
        <parameters>
          <label>"Enter Austria"</label>
          <method>:post</method>
          <arguments>
            <timeout>2</timeout>
          </arguments>
        </parameters>
        <finalize output="result">data.money=data.money-1000
data.jobStatus=1</finalize>
        <update output="result"/>
      </call>
      <loop mode="pre_test" condition="data.jobStatus==0">
        <call id="a3" endpoint="timeout">
          <parameters>
            <label>Search for a job</label>
            <method>:post</method>
            <arguments>
              <timeout>2</timeout>
            </arguments>
          </parameters>
          <finalize output="result">data.jobStatus=1</finalize>
          <update output="result"/>
        </call>
      </loop>
    </description>
  </description>
  <transformation>
    <description type="copy"/>
    <dataelements type="none"/>
    <endpoints type="none"/>
  </transformation>
</properties>