<properties xmlns="http://riddl.org/ns/common-patterns/properties/1.0">
  <attributes>
    <uuid>d70fb076-5954-4919-acf6-d61a3b2e9e41</uuid>
    <info>Main IS1</info>
    <modeltype>CPEE</modeltype>
    <theme>labels</theme>
    <customer>OEBB</customer>
    <status>development</status>
  </attributes>
  <state>finished</state>
  <handlerwrapper>DefaultHandlerWrapper</handlerwrapper>
  <positions/>
  <dataelements>
    <schaedigungen>["X","X","X"]</schaedigungen>
    <taetigkeiten>[]</taetigkeiten>
    <lagerlaufleistung>2.1</lagerlaufleistung>
    <tauschgruppe>{"lagerlaufleistung":1.5,"wucht_gramm_pro_meter":5,"bremsscheiben":true,"personenzug":true,"gueterzug":false,"restverschleissstaerke":5}</tauschgruppe>
    <lagerbauart>{"innenring":true,"deckel_mit_loch":false}</lagerbauart>
    <restverschleissstaerke>2</restverschleissstaerke>
    <wellenstatus>lagersitz ok</wellenstatus>
    <presskraftdiagramm>0</presskraftdiagramm>
    <geometriedaten_radsatz>{"X":1,"Y":2,"Z":3}</geometriedaten_radsatz>
    <geometriedaten_radsatz_neu>true</geometriedaten_radsatz_neu>
    <wucht_gramm_pro_meter>5</wucht_gramm_pro_meter>
    <radsatzwelle_status>gut</radsatzwelle_status>
    <innenring_status>ok</innenring_status>
  </dataelements>
  <endpoints>
    <timeout>http://localhost/customers/oebb/is1/timeout.php</timeout>
    <init>http://localhost/customers/oebb/is1/back.php?_taetigkeiten=taetigkeiten.txt&amp;_schaedigungen=schaedigungen.txt&amp;_tauschgruppe=tauschgruppe.txt&amp;lagerlaufleistung=2.1&amp;_lagerbauart=lagerbauart.txt&amp;restverschleissstaerke=2</init>
    <fix>http://localhost/customers/oebb/is1/back.php</fix>
    <eigen>http://localhost/customers/oebb/is1/back.php?taetigkeiten=Radsatz%20regenerieren</eigen>
    <scheibe_drehen>http://localhost/customers/oebb/is1/back.php?_geometriedaten=geometriedaten.txt&amp;_geometriedaten_neu=geometriedatenneu.txt</scheibe_drehen>
    <kerb>http://localhost/customers/oebb/is1/back.php</kerb>
    <lageraufbereitung>http://localhost/customers/oebb/is1/timeout.php</lageraufbereitung>
    <aufpressen>http://localhost/customers/oebb/is1/back.php?presskraftdiagramm=0&amp;wellenstatus=gut</aufpressen>
    <abpressen>http://localhost/customers/oebb/is1/back.php?status=lagersitz%20ok</abpressen>
    <aufpressen_gut>http://localhost/customers/oebb/is1/back.php?presskraftdiagramm=gut&amp;wellenstatus=gut</aufpressen_gut>
    <buersten>http://localhost/customers/oebb/is1/back.php?taetigkeiten=Sandstrahlen</buersten>
    <ut_welle>http://localhost/customers/oebb/is1/back.php?radsatzwelle_status=gut</ut_welle>
    <ut_scheibe>http://localhost/customers/oebb/is1/back.php?ut_scheibe_status=gut</ut_scheibe>
    <innenringmontage>http://localhost/customers/oebb/is1/back.php?innenring_status=ok</innenringmontage>
    <wuchten>http://localhost/customers/oebb/is1/back.php?wucht_gramm_pro_meter=5</wuchten>
    <worklist_b>http://localhost/customers/oebb/is1/back.php?taetigkeiten[0]=UT%20Scheibe&amp;taetigkeiten[1]=Eigenspannungsprüfung</worklist_b>
  </endpoints>
  <dsl>call :a1, :init, parameters: { :label =&gt; "Identifikation 110", :method =&gt; :post, :arguments =&gt; [⭐(:name =&gt; :radsatznummer, :value =&gt; nil), ⭐(:name =&gt; :wellentyp, :value =&gt; nil), ⭐(:name =&gt; :lagerbauart, :value =&gt; nil), ⭐(:name =&gt; :tauschgruppe, :value =&gt; nil), ⭐(:name =&gt; :eigentuemer, :value =&gt; nil), ⭐(:name =&gt; :regelwerk, :value =&gt; nil), ⭐(:name =&gt; :auftragsnummer, :value =&gt; nil), ⭐(:name =&gt; :mindeststragie, :value =&gt; nil), ⭐(:name =&gt; :technische_weisungen, :value =&gt; nil), ⭐(:name =&gt; :schadcodes, :value =&gt; nil), ⭐(:name =&gt; :lagerlaufleistung, :value =&gt; "in jahre"), ⭐(:name =&gt; :lagerlaufleistung, :value =&gt; "stempel am lager in zukunft aus sam")] }, finalize: &lt;&lt;-END
  # Liste der Schadcodes
  data.schaedigungen = result['schaedigungen']
  # Manganschweissen, Gelber Anstrich, technische_weisungen
  data.taetigkeiten = result['taetigkeiten']
  data.lagerlaufleistung = result["lagerlaufleistung"].to_f
  data.tauschgruppe = result["tauschgruppe"]
  data.lagerbauart = result["lagerbauart"]
  data.restverschleissstaerke = result["restverschleissstaerke"]
END
choose :exclusive do
  alternative test{data.lagerbauart["deckel_mit_loch"] == false &amp;&amp; not(data.taetigkeiten.include?("Lagerdemontage"))} do
    call :a2, :fix, parameters: { :label =&gt; "Lagerdeckeldemontage 130", :method =&gt; :post, :arguments =&gt; [⭐(:name =&gt; :deckel, :value =&gt; "true"), ⭐(:name =&gt; :lager, :value =&gt; "false"), ⭐(:name =&gt; :anbauteile, :value =&gt; "true")] }, finalize: &lt;&lt;-END
      data.taetigkeiten &lt;&lt; "Montage Deckel"
    END
  end
  otherwise  do
    call :a16, nil, parameters: { :label =&gt; "Lagerdemontage 130", :method =&gt; :post, :arguments =&gt; [⭐(:name =&gt; :deckel, :value =&gt; "true"), ⭐(:name =&gt; :lager, :value =&gt; "true"), ⭐(:name =&gt; :anbauteile, :value =&gt; "true"), ⭐(:name =&gt; :details, :value =&gt; nil)] }, finalize: &lt;&lt;-END
      # ab IS1+IL aufwaerts
      # data.details ist alles unten
      data.wellenhersteller
      data.wellenmaterial
      data.schmelze
      data.charge
      data.wellenherstelldatum
      data.erstfueger
      data.erstfuegerdatum
      data.wellennummer
      data.lagerherstelldatum
      data.lagerlaufleistung
      data.lhm_korbnummer_rechts
      data.lhm_korbnummer_links
      # gibt der mitarbeiter ein, wird verglichen
    END
    choose :exclusive do
      alternative test{data.radsatznummer != data.wellennummer} do
        call :a4, nil, parameters: { :label =&gt; "Datenkonsitenz herstellen, Radsatznummer ändern ", :method =&gt; :post, :arguments =&gt; nil }
      end
    end
    choose :exclusive do
      alternative test{data.lagertyp == "kartuschenlager" &amp;&amp; data.lagerlaufleistung &lt; data.lagertyp.maximallaufleistung} do
        call :a6, nil, parameters: { :label =&gt; "Externe Lageraufbereitung", :method =&gt; :post, :arguments =&gt; nil }
      end
      alternative test{data.lagertyp == "kartuschenlager" &amp;&amp; data.lagerlaufleistung &gt; data.lagertyp.maximallaufleistung} do
        call :a5, nil, parameters: { :label =&gt; "Lager Verschrotten", :method =&gt; :post, :arguments =&gt; nil }
      end
      otherwise  do
        manipulate :a42, { :label =&gt; "Lager soll aufbereitet werden" }, &lt;&lt;-END
          data.taetigkeiten &lt;&lt; 'Lageraufbereitung'
        END
      end
    end
  end
end
parallel :wait =&gt; -1 do
  parallel_branch  do ||
    loop post_test{data.tauschgruppe["bremsscheibe"] == false || data.taetigkeiten.include?('Eigenspannungspruefung')}  do
      call :a3, :eigen, parameters: { :label =&gt; "Eigenspannungspruefung 140", :method =&gt; :post, :arguments =&gt; [⭐(:name =&gt; :werkstoff, :value =&gt; nil), ⭐(:name =&gt; :bauform_scheibe, :value =&gt; nil), ⭐(:name =&gt; :pruefprogramm, :value =&gt; nil)] }, finalize: &lt;&lt;-END
        data.eigenspannungswerte
        # Radsatz regenerieren falls die Station das meldet
        data.taetigkeiten.push result["taetigkeiten"]
        data.taetigkeiten.delete("Eigenspannungspruefung")
        # eventuell entscheiden dass radsatz abgepresst werden soll
      END
      choose :exclusive do
        alternative test{data.taetigkeiten.include? 'Radsatz regenerieren'} do
          call :a20, :timeout, parameters: { :label =&gt; "Radsatz regenerieren", :method =&gt; :post, :arguments =&gt; [⭐(:name =&gt; :timeout, :value =&gt; "2")] }, finalize: &lt;&lt;-END
            data.taetigkeiten.delete("Radsatz regenerieren")
          END
        end
      end
    end
    choose :exclusive do
      alternative test{data.lagerbauart["innenring"]} do
        call :a32, :timeout, parameters: { :label =&gt; "Demontage Innenringe 420", :method =&gt; :post, :arguments =&gt; [⭐(:name =&gt; :timeout, :value =&gt; "2")] }
      end
      otherwise  do
        manipulate :a43, { :label =&gt; "Innenringstatus OK (weils keinen gibt)" }, &lt;&lt;-END
          data.innenring_status = "ok"
        END
      end
    end
    choose :exclusive do
      alternative test{data.tauschgruppe["bremsscheiben"] == true &amp;&amp; data.restverschleissstaerke.to_f &lt; data.tauschgruppe["restverschleissstaerke"].to_f} do
        manipulate :a18, { :label =&gt; "Abpressen dazu" }, &lt;&lt;-END
          data.taetigkeiten &lt;&lt; "Abpressen"
        END
      end
    end
    choose :exclusive do
      alternative test{data.taetigkeiten.include? 'Abpressen'} do
        loop post_test{data.wuchten_status == 'schlecht'}  do
          loop post_test{data.presskraftdiagramm.to_i != 0}  do
            call :a22, :abpressen, parameters: { :label =&gt; "Radscheibe abpressen 510/511", :method =&gt; :post, :arguments =&gt; nil }, finalize: &lt;&lt;-END
              data.wellenstatus = result["status"] # "gut", "kaputt", "beschaedigt", "zu glatt"
              data.taetigkeiten.delete("Abpressen")
            END
            choose :exclusive do
              alternative test{data.wellenstatus =~ /kaputt/} do
                call :a19, :terminate, parameters: { :label =&gt; "Terminate", :method =&gt; :post, :arguments =&gt; nil }
              end
              alternative test{data.wellenstatus == "beschaedigt" || data.wellenstatus == "glatt"} do
                call :a23, :timeout, parameters: { :label =&gt; "Radsatzwelle drehen 520/521", :method =&gt; :post, :arguments =&gt; [⭐(:name =&gt; :timeout, :value =&gt; "2")] }
                call :a24, :timeout, parameters: { :label =&gt; "MT Welle unbescheibt prüfen 535", :method =&gt; :post, :arguments =&gt; [⭐(:name =&gt; :timeout, :value =&gt; "2")] }, finalize: &lt;&lt;-END
                  data.wellenstatus = result["wellenstatus"] # "gut" oder "beschaedigt"
                END
              end
            end
            choose :exclusive do
              alternative test{data.presskraftdiagramm &amp;&amp; (data.presskraftdiagramm.to_i &gt;= 1 || data.presskraftdiagramm.to_i &lt; 0)} do
                call :a25, :timeout, parameters: { :label =&gt; "Senkrechtbohrwerk 530/531", :method =&gt; :post, :arguments =&gt; [⭐(:name =&gt; :timeout, :value =&gt; "2")] }
              end
            end
            call :a26, :aufpressen, parameters: { :label =&gt; "Radscheibe aufpressen 516/510", :method =&gt; :post, :arguments =&gt; nil }, finalize: &lt;&lt;-END
              data.presskraftdiagramm = result["presskraftdiagramm"]
              data.taetigkeiten.push *result["taetigkeiten"]
            END
          end
          choose :exclusive do
            alternative test{data.tauschgruppe["bremsscheiben"]} do
              call :a8, :scheibe_drehen, parameters: { :label =&gt; "Rad und Bremsscheibe messen 320", :method =&gt; :post, :arguments =&gt; [⭐(:name =&gt; :wellentyp, :value =&gt; nil)] }, finalize: &lt;&lt;-END
                data.geometriedaten_radsatz = result['geometriedaten']
                data.geometriedaten_radsatz_neu = result['geometriedaten_neu'] # true/false
              END
            end
            otherwise  do
              call :a9, :scheibe_drehen, parameters: { :label =&gt; "Radscheibe messen 321", :method =&gt; :post, :arguments =&gt; [⭐(:name =&gt; :wellentyp, :value =&gt; nil)] }, finalize: &lt;&lt;-END
                data.geometriedaten_radsatz = result['geometriedaten']
                data.geometriedaten_radsatz_neu = result['geometriedaten_neu'] # true/false
              END
            end
          end
          choose :exclusive do
            alternative test{data.geometriedata_radsatz_neu == false} do
              call :a30, :worklist_b, parameters: { :label =&gt; "Lesen Schadcode für Eigenspannung", :method =&gt; :post, :arguments =&gt; nil }, finalize: &lt;&lt;-END
                # lesen anhand barcode
                data.taetigkeiten.push *result["taetigkeiten"]
              END
            end
          end
          choose :exclusive do
            alternative test{data.tauschgruppe["personenzug"] || (data.tauschgruppe["gueterzug"] &amp;&amp; data.tauschgruppe["bremsscheiben"])} do
              call :a21, :wuchten, parameters: { :label =&gt; "Wuchten 550", :method =&gt; :post, :arguments =&gt; nil }, finalize: &lt;&lt;-END
                # sicher gramm pro meter, nachgeschaut
                data.wucht_gramm_pro_meter = result["wucht_gramm_pro_meter"]
                if data.wucht_gramm_pro_meter != data.tauschgruppe["wucht_gramm_pro_meter"]
                  data.wucht_status == 'schlecht'
                else
                  data.wucht_status == 'gut'
                end
              END
            end
          end
        end
      end
      otherwise  do
        call :a31, :buersten, parameters: { :label =&gt; "Radsatzwelle Bürsten 490", :method =&gt; :post, :arguments =&gt; [⭐(:name =&gt; :timeout, :value =&gt; "2")] }, finalize: &lt;&lt;-END
          # eventuell sandstrahlen
          data.taetigkeiten.push *result["taetigkeiten"]
        END
        choose :exclusive do
          alternative test{data.taetigkeiten.include? 'Sandstrahlen'} do
            call :a33, :timeout, parameters: { :label =&gt; "Sandstrahlen 480", :method =&gt; :post, :arguments =&gt; [⭐(:name =&gt; :timeout, :value =&gt; "2")] }, finalize: &lt;&lt;-END
              data.taetigkeiten.delete("Sandstrahlen")
            END
          end
        end
        call :a34, :ut_welle, parameters: { :label =&gt; "UT Radsatzwelle 430", :method =&gt; :post, :arguments =&gt; nil }, finalize: &lt;&lt;-END
          data.radsatzwelle_status = result["radsatzwelle_status"] # gut / schlecht
        END
        call :a41, :timeout, parameters: { :label =&gt; "MT Allg. Prüfung 170", :method =&gt; :post, :arguments =&gt; [⭐(:name =&gt; :timeout, :value =&gt; "2")] }
        manipulate :a27, { :label =&gt; "Radscheibe drehen dazu" }, &lt;&lt;-END
          data.taetigkeiten &lt;&lt; "Radscheibe drehen"
        END
      end
    end
    loop post_test{data.innenring_status != 'ok'}  do
      loop post_test{data.radsatzwelle_status == 'schlecht'}  do
        call :a38, :timeout, parameters: { :label =&gt; "Radsatzwelle drehen HS4 595", :method =&gt; :post, :arguments =&gt; [⭐(:name =&gt; :timeout, :value =&gt; "2")] }
        call :a37, :ut_welle, parameters: { :label =&gt; "UT Radsatzwelle 430", :method =&gt; :post, :arguments =&gt; nil }, finalize: &lt;&lt;-END
          data.radsatzwelle_status = result["radsatzwelle_status"] # gut / schlecht
        END
      end
      choose :exclusive do
        alternative test{data.lagerbauart["innenring"]} do
          call :a36, :innenringmontage, parameters: { :label =&gt; "Innenringmontage 190", :method =&gt; :post, :arguments =&gt; nil }, finalize: &lt;&lt;-END
            data.innenring_status = result["innenring_status"] # ok, beschaedigung, untermass
          END
        end
      end
    end
    loop post_test{data.taetigkeiten.include? 'Radscheibe drehen'}  do
      choose :exclusive do
        alternative test{data.tauschgruppe["bremsscheiben"]} do
          call :a39, :scheibe_drehen, parameters: { :label =&gt; "Rad und Bremsscheibe drehen 320", :method =&gt; :post, :arguments =&gt; [⭐(:name =&gt; :wellentyp, :value =&gt; nil)] }, finalize: &lt;&lt;-END
            data.geometriedaten_radsatz = result['geometriedaten']
            data.geometriedaten_radsatz_neu = result['geometriedaten_neu'] # true/false # eventuell abpressen
            data.taetigkeiten.push *result["taetigkeiten"] # eventuell Kerbschleifen
          END
        end
        otherwise  do
          call :a40, :scheibe_drehen, parameters: { :label =&gt; "Radscheibe drehen 321", :method =&gt; :post, :arguments =&gt; [⭐(:name =&gt; :wellentyp, :value =&gt; nil)] }, finalize: &lt;&lt;-END
            data.geometriedaten_radsatz = result['geometriedaten']
            data.geometriedaten_radsatz_neu = result['geometriedaten_neu'] # true/false
          END
        end
      end
      choose :exclusive do
        alternative test{data.taetigkeiten.include? 'Kerbschleifen'} do
          call :a17, :kerb, parameters: { :label =&gt; "Kerbschleifen 240", :method =&gt; :post, :arguments =&gt; nil }, finalize: &lt;&lt;-END
            data.taetigkeiten.delete("Kerbschleifen")
            data.taetigkeiten.push *result["taetigkeiten"] # eventuell abpressen
          END
        end
      end
      call :a10, :ut_scheibe, parameters: { :label =&gt; "UT Scheibe 630", :method =&gt; :post, :arguments =&gt; nil }, finalize: &lt;&lt;-END
        data.taetigkeiten.delete("UT Scheibe")
        # wenn riss in der lauffläche der scheibe
        if result['ut_scheibe_status'] == 'gut'
          data.taetigkeiten.delete("Radscheibe drehen")
        end
        data.taetigkeiten.push *result["taetigkeiten"]
      END
    end
  end
  parallel_branch  do ||
    choose :exclusive do
      alternative test{data.taetigkeiten.include?("Lageraufbereitung")} do
        call :a7, :lageraufbereitung, parameters: { :label =&gt; "Lageraufbereitung 680", :method =&gt; :post, :arguments =&gt; [⭐(:name =&gt; :timeout, :value =&gt; "2")] }
      end
    end
  end
end
call :a11, :fix, parameters: { :label =&gt; "Lagermontage 640", :method =&gt; :post, :arguments =&gt; [⭐(:name =&gt; :lagerbauart, :value =&gt; nil)] }, finalize: &lt;&lt;-END
  data.taetigkeiten.delete("Montage Deckel")
END
call :a12, :fix, parameters: { :label =&gt; "Austrittskontrolle 650", :method =&gt; :post, :arguments =&gt; nil }
call :a13, :fix, parameters: { :label =&gt; "Lackierung 675", :method =&gt; :post, :arguments =&gt; [⭐(:name =&gt; :strategie, :value =&gt; nil)] }
call :a14, :fix, parameters: { :label =&gt; "Versandfertig 690", :method =&gt; :post, :arguments =&gt; [⭐(:name =&gt; :technische_weisungen, :value =&gt; nil), ⭐(:name =&gt; :regelwerk, :value =&gt; nil)] }
call :a15, :fix, parameters: { :label =&gt; "Qualitaetsfreigabe 710", :method =&gt; :post, :arguments =&gt; [⭐(:name =&gt; :regelwerk, :value =&gt; nil), ⭐(:name =&gt; :technische_weisungen, :value =&gt; nil)] }
choose :exclusive do
  alternative test{data.taetigkeiten.include? "Anbauteile montieren"} do
    call :a35, nil, parameters: { :label =&gt; "Anbauteilmontage 670", :method =&gt; :post, :arguments =&gt; nil }
  end
end
</dsl>
  <dslx>
    <description xmlns="http://cpee.org/ns/description/1.0">
      <call id="a1" endpoint="init">
        <parameters>
          <label>Identifikation 110</label>
          <method>:post</method>
          <arguments>
            <radsatznummer/>
            <wellentyp/>
            <lagerbauart/>
            <tauschgruppe/>
            <eigentuemer/>
            <regelwerk/>
            <auftragsnummer/>
            <mindeststragie/>
            <technische_weisungen/>
            <schadcodes/>
            <lagerlaufleistung>in jahre</lagerlaufleistung>
            <lagerlaufleistung>stempel am lager in zukunft aus sam</lagerlaufleistung>
          </arguments>
        </parameters>
        <finalize output="result"># Liste der Schadcodes
data.schaedigungen = result['schaedigungen']

# Manganschweissen, Gelber Anstrich, technische_weisungen
data.taetigkeiten = result['taetigkeiten']

data.lagerlaufleistung = result["lagerlaufleistung"].to_f
data.tauschgruppe = result["tauschgruppe"]
data.lagerbauart = result["lagerbauart"]
data.restverschleissstaerke = result["restverschleissstaerke"]</finalize>
        <update output="result"/>
        <_timing>
          <_timing_min/>
          <_timing_max/>
          <_timing_avg/>
        </_timing>
        <_notes>
          <_notes_general/>
          <_notes_output/>
          <_attachments/>
        </_notes>
      </call>
      <choose mode="exclusive">
        <alternative condition="data.lagerbauart[&quot;deckel_mit_loch&quot;] == false &amp;&amp; not(data.taetigkeiten.include?(&quot;Lagerdemontage&quot;))">
          <call id="a2" endpoint="fix">
            <parameters>
              <label>Lagerdeckeldemontage 130</label>
              <method>:post</method>
              <arguments>
                <deckel>true</deckel>
                <lager>false</lager>
                <anbauteile>true</anbauteile>
              </arguments>
            </parameters>
            <finalize output="result">data.taetigkeiten &lt;&lt; "Montage Deckel"</finalize>
            <update output="result"/>
            <_timing>
              <_timing_min/>
              <_timing_max/>
              <_timing_avg/>
            </_timing>
            <_notes>
              <_notes_general/>
              <_notes_output/>
              <_attachments/>
            </_notes>
          </call>
        </alternative>
        <otherwise>
          <call id="a16" endpoint="">
            <parameters>
              <label>Lagerdemontage 130</label>
              <method>:post</method>
              <arguments>
                <deckel>true</deckel>
                <lager>true</lager>
                <anbauteile>true</anbauteile>
                <details/>
              </arguments>
            </parameters>
            <finalize output="result"># ab IS1+IL aufwaerts
# data.details ist alles unten

data.wellenhersteller
data.wellenmaterial
data.schmelze
data.charge
data.wellenherstelldatum
data.erstfueger
data.erstfuegerdatum
data.wellennummer
data.lagerherstelldatum
data.lagerlaufleistung
data.lhm_korbnummer_rechts
data.lhm_korbnummer_links

# gibt der mitarbeiter ein, wird verglichen</finalize>
            <update output="result"/>
          </call>
          <choose mode="exclusive">
            <alternative condition="data.radsatznummer != data.wellennummer">
              <call id="a4" endpoint="">
                <parameters>
                  <label>Datenkonsitenz herstellen, Radsatznummer ändern </label>
                  <method>:post</method>
                  <arguments/>
                </parameters>
                <finalize output="result"/>
                <update output="result"/>
                <_timing>
                  <_timing_min/>
                  <_timing_max/>
                  <_timing_avg/>
                </_timing>
                <_notes>
                  <_notes_general/>
                  <_notes_output/>
                  <_attachments/>
                </_notes>
              </call>
            </alternative>
            <otherwise/>
          </choose>
          <choose mode="exclusive">
            <alternative condition="data.lagertyp == &quot;kartuschenlager&quot; &amp;&amp; data.lagerlaufleistung &lt; data.lagertyp.maximallaufleistung">
              <call id="a6" endpoint="">
                <parameters>
                  <label>Externe Lageraufbereitung</label>
                  <method>:post</method>
                  <arguments/>
                </parameters>
              </call>
            </alternative>
            <alternative condition="data.lagertyp == &quot;kartuschenlager&quot; &amp;&amp; data.lagerlaufleistung &gt; data.lagertyp.maximallaufleistung">
              <call id="a5" endpoint="">
                <parameters>
                  <label>Lager Verschrotten</label>
                  <method>:post</method>
                  <arguments/>
                </parameters>
              </call>
            </alternative>
            <otherwise>
              <manipulate id="a42" label="Lager soll aufbereitet werden">data.taetigkeiten &lt;&lt; 'Lageraufbereitung'</manipulate>
            </otherwise>
          </choose>
        </otherwise>
      </choose>
      <parallel wait="-1">
        <parallel_branch pass="" local="">
          <loop mode="post_test" condition="data.tauschgruppe[&quot;bremsscheibe&quot;] == false || data.taetigkeiten.include?('Eigenspannungspruefung')">
            <call id="a3" endpoint="eigen">
              <parameters>
                <label>Eigenspannungspruefung 140</label>
                <method>:post</method>
                <arguments>
                  <werkstoff/>
                  <bauform_scheibe/>
                  <pruefprogramm/>
                </arguments>
              </parameters>
              <finalize output="result">data.eigenspannungswerte
# Radsatz regenerieren falls die Station das meldet
data.taetigkeiten.push result["taetigkeiten"]
data.taetigkeiten.delete("Eigenspannungspruefung")
# eventuell entscheiden dass radsatz abgepresst werden soll</finalize>
              <update output="result"/>
              <_timing>
                <_timing_min/>
                <_timing_max/>
                <_timing_avg/>
              </_timing>
              <_notes>
                <_notes_general/>
                <_notes_output/>
                <_attachments/>
              </_notes>
            </call>
            <choose mode="exclusive">
              <alternative condition="data.taetigkeiten.include? 'Radsatz regenerieren'">
                <call id="a20" endpoint="timeout">
                  <parameters>
                    <label>Radsatz regenerieren</label>
                    <method>:post</method>
                    <arguments>
                      <timeout>2</timeout>
                    </arguments>
                  </parameters>
                  <finalize output="result">data.taetigkeiten.delete("Radsatz regenerieren")</finalize>
                  <update output="result"/>
                  <_timing>
                    <_timing_min/>
                    <_timing_max/>
                    <_timing_avg/>
                  </_timing>
                  <_notes>
                    <_notes_general/>
                    <_notes_output/>
                    <_attachments/>
                  </_notes>
                </call>
              </alternative>
              <otherwise/>
            </choose>
          </loop>
          <choose mode="exclusive">
            <alternative condition="data.lagerbauart[&quot;innenring&quot;]">
              <call id="a32" endpoint="timeout">
                <parameters>
                  <label>Demontage Innenringe 420</label>
                  <method>:post</method>
                  <arguments>
                    <timeout>2</timeout>
                  </arguments>
                </parameters>
                <finalize output="result"/>
                <update output="result"/>
                <_timing>
                  <_timing_min/>
                  <_timing_max/>
                  <_timing_avg/>
                </_timing>
                <_notes>
                  <_notes_general/>
                  <_notes_output/>
                  <_attachments/>
                </_notes>
              </call>
            </alternative>
            <otherwise>
              <manipulate id="a43" label="Innenringstatus OK (weils keinen gibt)">data.innenring_status = "ok"</manipulate>
            </otherwise>
          </choose>
          <choose mode="exclusive">
            <alternative condition="data.tauschgruppe[&quot;bremsscheiben&quot;] == true &amp;&amp; data.restverschleissstaerke.to_f &lt; data.tauschgruppe[&quot;restverschleissstaerke&quot;].to_f">
              <manipulate id="a18" label="Abpressen dazu">data.taetigkeiten &lt;&lt; "Abpressen"</manipulate>
            </alternative>
            <otherwise/>
          </choose>
          <choose mode="exclusive">
            <alternative condition="data.taetigkeiten.include? 'Abpressen'">
              <loop mode="post_test" condition="data.wuchten_status == 'schlecht'">
                <loop mode="post_test" condition="data.presskraftdiagramm.to_i != 0">
                  <call id="a22" endpoint="abpressen">
                    <parameters>
                      <label>Radscheibe abpressen 510/511</label>
                      <method>:post</method>
                      <arguments/>
                    </parameters>
                    <finalize output="result">data.wellenstatus = result["status"] # "gut", "kaputt", "beschaedigt", "zu glatt"
data.taetigkeiten.delete("Abpressen")</finalize>
                    <update output="result"/>
                    <_timing>
                      <_timing_min/>
                      <_timing_max/>
                      <_timing_avg/>
                    </_timing>
                    <_notes>
                      <_notes_general/>
                      <_notes_output/>
                      <_attachments/>
                    </_notes>
                  </call>
                  <choose mode="exclusive">
                    <alternative condition="data.wellenstatus =~ /kaputt/">
                      <call id="a19" endpoint="terminate">
                        <parameters>
                          <label>Terminate</label>
                          <method>:post</method>
                          <arguments/>
                        </parameters>
                        <_timing>
                          <_timing_min/>
                          <_timing_max/>
                          <_timing_avg/>
                        </_timing>
                        <_notes>
                          <_notes_general/>
                          <_attachments/>
                        </_notes>
                      </call>
                    </alternative>
                    <alternative condition="data.wellenstatus == &quot;beschaedigt&quot; || data.wellenstatus == &quot;glatt&quot;">
                      <call id="a23" endpoint="timeout">
                        <parameters>
                          <label>Radsatzwelle drehen 520/521</label>
                          <method>:post</method>
                          <arguments>
                            <timeout>2</timeout>
                          </arguments>
                        </parameters>
                        <finalize output="result"/>
                        <update output="result"/>
                        <_timing>
                          <_timing_min/>
                          <_timing_max/>
                          <_timing_avg/>
                        </_timing>
                        <_notes>
                          <_notes_general/>
                          <_notes_output/>
                          <_attachments/>
                        </_notes>
                      </call>
                      <call id="a24" endpoint="timeout">
                        <parameters>
                          <label>MT Welle unbescheibt prüfen 535</label>
                          <method>:post</method>
                          <arguments>
                            <timeout>2</timeout>
                          </arguments>
                        </parameters>
                        <finalize output="result">data.wellenstatus = result["wellenstatus"] # "gut" oder "beschaedigt"</finalize>
                        <update output="result"/>
                        <_timing>
                          <_timing_min/>
                          <_timing_max/>
                          <_timing_avg/>
                        </_timing>
                        <_notes>
                          <_notes_general>Wenn status schlecht, zum welle drehen, wenn mindestdurchmesser erreicht, schrott</_notes_general>
                          <_notes_output/>
                          <_attachments/>
                        </_notes>
                      </call>
                    </alternative>
                    <otherwise/>
                  </choose>
                  <choose mode="exclusive">
                    <alternative condition="data.presskraftdiagramm &amp;&amp; (data.presskraftdiagramm.to_i &gt;= 1 || data.presskraftdiagramm.to_i &lt; 0)">
                      <call id="a25" endpoint="timeout">
                        <parameters>
                          <label>Senkrechtbohrwerk 530/531</label>
                          <method>:post</method>
                          <arguments>
                            <timeout>2</timeout>
                          </arguments>
                        </parameters>
                        <finalize output="result"/>
                        <update output="result"/>
                        <_timing>
                          <_timing_min/>
                          <_timing_max/>
                          <_timing_avg/>
                        </_timing>
                        <_notes>
                          <_notes_general>* wenn überdeckung nicht zu viel, nicht bohren, aufpressen mit schmierm.
* wenn viel überdeckung (presskraftdiagramm weit über max)
* wenn überdeckung unter min, neue scheibe bohren</_notes_general>
                          <_notes_output># ich hab radscheibe demontiert, alle

# die fuer die wellentype zulässig sind

# dürfen wieder rauf

# (verbrauchsmaterial liste)

# wellentype -&gt; zulässige materialnummer

# materialnummern können bremsscheibe, radscheibe oder

# radbremsscheibe sein. Mehrere zulässige.</_notes_output>
                          <_attachments/>
                        </_notes>
                      </call>
                    </alternative>
                    <otherwise/>
                  </choose>
                  <call id="a26" endpoint="aufpressen">
                    <parameters>
                      <label>Radscheibe aufpressen 516/510</label>
                      <method>:post</method>
                      <arguments/>
                    </parameters>
                    <finalize output="result">data.presskraftdiagramm = result["presskraftdiagramm"]
data.taetigkeiten.push *result["taetigkeiten"]</finalize>
                    <update output="result"/>
                    <_timing>
                      <_timing_min/>
                      <_timing_max/>
                      <_timing_avg/>
                    </_timing>
                    <_notes>
                      <_notes_general>data.presskraftdiagramm == 0: alles in ordnung
data.presskraftdiagramm &gt; 1: zu viel über max, 530/531
data.presskraftdiagramm &lt; 0: zu wenig, 530/531
data.presskraftdiagramm zwischen 0 und 1: neuer versuch mit mehr schmiermittel</_notes_general>
                      <_notes_output/>
                      <_attachments/>
                    </_notes>
                  </call>
                </loop>
                <choose mode="exclusive">
                  <alternative condition="data.tauschgruppe[&quot;bremsscheiben&quot;]">
                    <call id="a8" endpoint="scheibe_drehen">
                      <parameters>
                        <label>Rad und Bremsscheibe messen 320</label>
                        <method>:post</method>
                        <arguments>
                          <wellentyp/>
                        </arguments>
                      </parameters>
                      <finalize output="result">data.geometriedaten_radsatz = result['geometriedaten']
data.geometriedaten_radsatz_neu = result['geometriedaten_neu'] # true/false</finalize>
                      <update output="result"/>
                      <_timing>
                        <_timing_min/>
                        <_timing_max/>
                        <_timing_avg/>
                      </_timing>
                      <_notes>
                        <_notes_general/>
                        <_notes_output/>
                        <_attachments/>
                      </_notes>
                    </call>
                  </alternative>
                  <otherwise>
                    <call id="a9" endpoint="scheibe_drehen">
                      <parameters>
                        <label>Radscheibe messen 321</label>
                        <method>:post</method>
                        <arguments>
                          <wellentyp/>
                        </arguments>
                      </parameters>
                      <finalize output="result">data.geometriedaten_radsatz = result['geometriedaten']
data.geometriedaten_radsatz_neu = result['geometriedaten_neu'] # true/false</finalize>
                      <update output="result"/>
                      <_timing>
                        <_timing_min/>
                        <_timing_max/>
                        <_timing_avg/>
                      </_timing>
                      <_notes>
                        <_notes_general/>
                        <_notes_output/>
                        <_attachments/>
                      </_notes>
                    </call>
                  </otherwise>
                </choose>
                <choose mode="exclusive">
                  <alternative condition="data.geometriedata_radsatz_neu == false">
                    <call id="a30" endpoint="worklist_b">
                      <parameters>
                        <label>Lesen Schadcode für Eigenspannung</label>
                        <method>:post</method>
                        <arguments/>
                      </parameters>
                      <finalize output="result"># lesen anhand barcode
data.taetigkeiten.push *result["taetigkeiten"]</finalize>
                      <update output="result"/>
                      <_timing>
                        <_timing_min/>
                        <_timing_max/>
                        <_timing_avg/>
                      </_timing>
                      <_notes>
                        <_notes_general/>
                        <_notes_output/>
                        <_attachments/>
                      </_notes>
                    </call>
                  </alternative>
                  <otherwise/>
                </choose>
                <choose mode="exclusive">
                  <alternative condition="data.tauschgruppe[&quot;personenzug&quot;] || (data.tauschgruppe[&quot;gueterzug&quot;] &amp;&amp; data.tauschgruppe[&quot;bremsscheiben&quot;])">
                    <call id="a21" endpoint="wuchten">
                      <parameters>
                        <label>Wuchten 550</label>
                        <method>:post</method>
                        <arguments/>
                      </parameters>
                      <finalize output="result"># sicher gramm pro meter, nachgeschaut
data.wucht_gramm_pro_meter = result["wucht_gramm_pro_meter"]

if data.wucht_gramm_pro_meter != data.tauschgruppe["wucht_gramm_pro_meter"]
  data.wucht_status == 'schlecht'
else
  data.wucht_status == 'gut'
end</finalize>
                      <update output="result"/>
                      <_timing>
                        <_timing_min/>
                        <_timing_max/>
                        <_timing_avg/>
                      </_timing>
                      <_notes>
                        <_notes_general/>
                        <_notes_output/>
                        <_attachments/>
                      </_notes>
                    </call>
                  </alternative>
                  <otherwise/>
                </choose>
              </loop>
            </alternative>
            <otherwise>
              <call id="a31" endpoint="buersten">
                <parameters>
                  <label>Radsatzwelle Bürsten 490</label>
                  <method>:post</method>
                  <arguments>
                    <timeout>2</timeout>
                  </arguments>
                </parameters>
                <finalize output="result"># eventuell sandstrahlen
data.taetigkeiten.push *result["taetigkeiten"]</finalize>
                <update output="result"/>
                <_timing>
                  <_timing_min/>
                  <_timing_max/>
                  <_timing_avg/>
                </_timing>
                <_notes>
                  <_notes_general/>
                  <_notes_output/>
                  <_attachments/>
                </_notes>
              </call>
              <choose mode="exclusive">
                <alternative condition="data.taetigkeiten.include? 'Sandstrahlen'">
                  <call id="a33" endpoint="timeout">
                    <parameters>
                      <label>Sandstrahlen 480</label>
                      <method>:post</method>
                      <arguments>
                        <timeout>2</timeout>
                      </arguments>
                    </parameters>
                    <finalize output="result">data.taetigkeiten.delete("Sandstrahlen")</finalize>
                    <update output="result"/>
                    <_timing>
                      <_timing_min/>
                      <_timing_max/>
                      <_timing_avg/>
                    </_timing>
                    <_notes>
                      <_notes_general/>
                      <_notes_output/>
                      <_attachments/>
                    </_notes>
                  </call>
                </alternative>
                <otherwise/>
              </choose>
              <call id="a34" endpoint="ut_welle">
                <parameters>
                  <label>UT Radsatzwelle 430</label>
                  <method>:post</method>
                  <arguments/>
                </parameters>
                <finalize output="result">data.radsatzwelle_status = result["radsatzwelle_status"] # gut / schlecht</finalize>
                <update output="result"/>
                <_timing>
                  <_timing_min/>
                  <_timing_max/>
                  <_timing_avg/>
                </_timing>
                <_notes>
                  <_notes_general/>
                  <_notes_output/>
                  <_attachments/>
                </_notes>
              </call>
              <call id="a41" endpoint="timeout">
                <parameters>
                  <label>MT Allg. Prüfung 170</label>
                  <method>:post</method>
                  <arguments>
                    <timeout>2</timeout>
                  </arguments>
                </parameters>
                <finalize output="result"/>
                <update output="result"/>
                <_timing>
                  <_timing_min/>
                  <_timing_max/>
                  <_timing_avg/>
                </_timing>
                <_notes>
                  <_notes_general/>
                  <_notes_output/>
                  <_attachments/>
                </_notes>
              </call>
              <manipulate id="a27" label="Radscheibe drehen dazu">data.taetigkeiten &lt;&lt; "Radscheibe drehen"</manipulate>
            </otherwise>
          </choose>
          <loop mode="post_test" condition="data.innenring_status != 'ok'">
            <loop mode="post_test" condition="data.radsatzwelle_status == 'schlecht'">
              <call id="a38" endpoint="timeout">
                <parameters>
                  <label>Radsatzwelle drehen HS4 595</label>
                  <method>:post</method>
                  <arguments>
                    <timeout>2</timeout>
                  </arguments>
                </parameters>
                <finalize output="result"/>
                <update output="result"/>
                <_timing>
                  <_timing_min/>
                  <_timing_max/>
                  <_timing_avg/>
                </_timing>
                <_notes>
                  <_notes_general/>
                  <_notes_output/>
                  <_attachments/>
                </_notes>
              </call>
              <call id="a37" endpoint="ut_welle">
                <parameters>
                  <label>UT Radsatzwelle 430</label>
                  <method>:post</method>
                  <arguments/>
                </parameters>
                <finalize output="result">data.radsatzwelle_status = result["radsatzwelle_status"] # gut / schlecht</finalize>
                <update output="result"/>
                <_timing>
                  <_timing_min/>
                  <_timing_max/>
                  <_timing_avg/>
                </_timing>
                <_notes>
                  <_notes_general/>
                  <_notes_output/>
                  <_attachments/>
                </_notes>
              </call>
            </loop>
            <choose mode="exclusive">
              <alternative condition="data.lagerbauart[&quot;innenring&quot;]">
                <call id="a36" endpoint="innenringmontage">
                  <parameters>
                    <label>Innenringmontage 190</label>
                    <method>:post</method>
                    <arguments/>
                  </parameters>
                  <finalize output="result">data.innenring_status = result["innenring_status"] # ok, beschaedigung, untermass</finalize>
                  <update output="result"/>
                  <_timing>
                    <_timing_min/>
                    <_timing_max/>
                    <_timing_avg/>
                  </_timing>
                  <_notes>
                    <_notes_general/>
                    <_notes_output/>
                    <_attachments/>
                  </_notes>
                </call>
              </alternative>
              <otherwise/>
            </choose>
          </loop>
          <loop mode="post_test" condition="data.taetigkeiten.include? 'Radscheibe drehen'">
            <choose mode="exclusive">
              <alternative condition="data.tauschgruppe[&quot;bremsscheiben&quot;]">
                <call id="a39" endpoint="scheibe_drehen">
                  <parameters>
                    <label>Rad und Bremsscheibe drehen 320</label>
                    <method>:post</method>
                    <arguments>
                      <wellentyp/>
                    </arguments>
                  </parameters>
                  <finalize output="result">data.geometriedaten_radsatz = result['geometriedaten']
data.geometriedaten_radsatz_neu = result['geometriedaten_neu'] # true/false # eventuell abpressen
data.taetigkeiten.push *result["taetigkeiten"] # eventuell Kerbschleifen</finalize>
                  <update output="result"/>
                  <_timing>
                    <_timing_min/>
                    <_timing_max/>
                    <_timing_avg/>
                  </_timing>
                  <_notes>
                    <_notes_general/>
                    <_notes_output/>
                    <_attachments/>
                  </_notes>
                </call>
              </alternative>
              <otherwise>
                <call id="a40" endpoint="scheibe_drehen">
                  <parameters>
                    <label>Radscheibe drehen 321</label>
                    <method>:post</method>
                    <arguments>
                      <wellentyp/>
                    </arguments>
                  </parameters>
                  <finalize output="result">data.geometriedaten_radsatz = result['geometriedaten']
data.geometriedaten_radsatz_neu = result['geometriedaten_neu'] # true/false</finalize>
                  <update output="result"/>
                  <_timing>
                    <_timing_min/>
                    <_timing_max/>
                    <_timing_avg/>
                  </_timing>
                  <_notes>
                    <_notes_general/>
                    <_notes_output/>
                    <_attachments/>
                  </_notes>
                </call>
              </otherwise>
            </choose>
            <choose mode="exclusive">
              <alternative condition="data.taetigkeiten.include? 'Kerbschleifen'">
                <call id="a17" endpoint="kerb">
                  <parameters>
                    <label>Kerbschleifen 240</label>
                    <method>:post</method>
                    <arguments/>
                  </parameters>
                  <finalize output="result">data.taetigkeiten.delete("Kerbschleifen")
data.taetigkeiten.push *result["taetigkeiten"] # eventuell abpressen</finalize>
                  <update output="result"/>
                  <_timing>
                    <_timing_min/>
                    <_timing_max/>
                    <_timing_avg/>
                  </_timing>
                  <_notes>
                    <_notes_general/>
                    <_notes_output/>
                    <_attachments/>
                  </_notes>
                </call>
              </alternative>
              <otherwise/>
            </choose>
            <call id="a10" endpoint="ut_scheibe">
              <parameters>
                <label>UT Scheibe 630</label>
                <method>:post</method>
                <arguments/>
              </parameters>
              <finalize output="result">data.taetigkeiten.delete("UT Scheibe")
# wenn riss in der lauffläche der scheibe
if result['ut_scheibe_status'] == 'gut'
  data.taetigkeiten.delete("Radscheibe drehen")
end
data.taetigkeiten.push *result["taetigkeiten"]</finalize>
              <update output="result"/>
              <_timing>
                <_timing_min/>
                <_timing_max/>
                <_timing_avg/>
              </_timing>
              <_notes>
                <_notes_general/>
                <_notes_output/>
                <_attachments/>
              </_notes>
            </call>
          </loop>
        </parallel_branch>
        <parallel_branch pass="" local="">
          <choose mode="exclusive">
            <alternative condition="data.taetigkeiten.include?(&quot;Lageraufbereitung&quot;)">
              <call id="a7" endpoint="lageraufbereitung">
                <parameters>
                  <label>Lageraufbereitung 680</label>
                  <method>:post</method>
                  <arguments>
                    <timeout>2</timeout>
                  </arguments>
                </parameters>
                <finalize output="result"/>
                <update output="result"/>
                <_timing>
                  <_timing_min/>
                  <_timing_max/>
                  <_timing_avg/>
                </_timing>
                <_notes>
                  <_notes_general/>
                  <_notes_output/>
                  <_attachments/>
                </_notes>
              </call>
            </alternative>
          </choose>
        </parallel_branch>
      </parallel>
      <call id="a11" endpoint="fix">
        <parameters>
          <label>Lagermontage 640</label>
          <method>:post</method>
          <arguments>
            <lagerbauart/>
          </arguments>
        </parameters>
        <finalize output="result">data.taetigkeiten.delete("Montage Deckel")</finalize>
        <update output="result"/>
        <_notes>
          <_notes_general/>
        </_notes>
      </call>
      <call id="a12" endpoint="fix">
        <parameters>
          <label>Austrittskontrolle 650</label>
          <method>:post</method>
          <arguments/>
        </parameters>
        <finalize output="result"/>
        <update output="result"/>
        <_timing>
          <_timing_min/>
          <_timing_max/>
          <_timing_avg/>
        </_timing>
        <_notes>
          <_notes_general/>
          <_notes_output/>
          <_attachments/>
        </_notes>
      </call>
      <call id="a13" endpoint="fix">
        <parameters>
          <label>Lackierung 675</label>
          <method>:post</method>
          <arguments>
            <strategie/>
          </arguments>
        </parameters>
        <finalize output="result"/>
        <update output="result"/>
        <_timing>
          <_timing_min/>
          <_timing_max/>
          <_timing_avg/>
        </_timing>
        <_notes>
          <_notes_general/>
          <_notes_output/>
          <_attachments/>
        </_notes>
      </call>
      <call id="a14" endpoint="fix">
        <parameters>
          <label>Versandfertig 690</label>
          <method>:post</method>
          <arguments>
            <technische_weisungen/>
            <regelwerk/>
          </arguments>
        </parameters>
        <finalize output="result"/>
        <update output="result"/>
        <_timing>
          <_timing_min/>
          <_timing_max/>
          <_timing_avg/>
        </_timing>
        <_notes>
          <_notes_general/>
          <_notes_output/>
          <_attachments/>
        </_notes>
      </call>
      <call id="a15" endpoint="fix">
        <parameters>
          <label>Qualitaetsfreigabe 710</label>
          <method>:post</method>
          <arguments>
            <regelwerk/>
            <technische_weisungen/>
          </arguments>
        </parameters>
        <finalize output="result"/>
        <update output="result"/>
        <_timing>
          <_timing_min/>
          <_timing_max/>
          <_timing_avg/>
        </_timing>
        <_notes>
          <_notes_general/>
          <_notes_output/>
          <_attachments/>
        </_notes>
      </call>
      <choose mode="exclusive">
        <alternative condition="data.taetigkeiten.include? &quot;Anbauteile montieren&quot;">
          <call id="a35" endpoint="">
            <parameters>
              <label>Anbauteilmontage 670</label>
              <method>:post</method>
              <arguments/>
            </parameters>
            <finalize output="result"/>
            <update output="result"/>
            <_notes>
              <_notes_general/>
            </_notes>
          </call>
        </alternative>
        <otherwise/>
      </choose>
    </description>
  </dslx>
  <status>
    <id>0</id>
    <message>undefined</message>
  </status>
  <description>
    <description xmlns="http://cpee.org/ns/description/1.0">
      <call id="a1" endpoint="init">
        <parameters>
          <label>Identifikation 110</label>
          <method>:post</method>
          <arguments>
            <radsatznummer/>
            <wellentyp/>
            <lagerbauart/>
            <tauschgruppe/>
            <eigentuemer/>
            <regelwerk/>
            <auftragsnummer/>
            <mindeststragie/>
            <technische_weisungen/>
            <schadcodes/>
            <lagerlaufleistung>in jahre</lagerlaufleistung>
            <lagerlaufleistung>stempel am lager in zukunft aus sam</lagerlaufleistung>
          </arguments>
        </parameters>
        <finalize output="result"># Liste der Schadcodes
data.schaedigungen = result['schaedigungen']

# Manganschweissen, Gelber Anstrich, technische_weisungen
data.taetigkeiten = result['taetigkeiten']

data.lagerlaufleistung = result["lagerlaufleistung"].to_f
data.tauschgruppe = result["tauschgruppe"]
data.lagerbauart = result["lagerbauart"]
data.restverschleissstaerke = result["restverschleissstaerke"]</finalize>
        <update output="result"/>
        <_timing>
          <_timing_min/>
          <_timing_max/>
          <_timing_avg/>
        </_timing>
        <_notes>
          <_notes_general/>
          <_notes_output/>
          <_attachments/>
        </_notes>
      </call>
      <choose mode="exclusive">
        <alternative condition="data.lagerbauart[&quot;deckel_mit_loch&quot;] == false &amp;&amp; not(data.taetigkeiten.include?(&quot;Lagerdemontage&quot;))">
          <call id="a2" endpoint="fix">
            <parameters>
              <label>Lagerdeckeldemontage 130</label>
              <method>:post</method>
              <arguments>
                <deckel>true</deckel>
                <lager>false</lager>
                <anbauteile>true</anbauteile>
              </arguments>
            </parameters>
            <finalize output="result">data.taetigkeiten &lt;&lt; "Montage Deckel"</finalize>
            <update output="result"/>
            <_timing>
              <_timing_min/>
              <_timing_max/>
              <_timing_avg/>
            </_timing>
            <_notes>
              <_notes_general/>
              <_notes_output/>
              <_attachments/>
            </_notes>
          </call>
        </alternative>
        <otherwise>
          <call id="a16" endpoint="">
            <parameters>
              <label>Lagerdemontage 130</label>
              <method>:post</method>
              <arguments>
                <deckel>true</deckel>
                <lager>true</lager>
                <anbauteile>true</anbauteile>
                <details/>
              </arguments>
            </parameters>
            <finalize output="result"># ab IS1+IL aufwaerts
# data.details ist alles unten

data.wellenhersteller
data.wellenmaterial
data.schmelze
data.charge
data.wellenherstelldatum
data.erstfueger
data.erstfuegerdatum
data.wellennummer
data.lagerherstelldatum
data.lagerlaufleistung
data.lhm_korbnummer_rechts
data.lhm_korbnummer_links

# gibt der mitarbeiter ein, wird verglichen</finalize>
            <update output="result"/>
          </call>
          <choose mode="exclusive">
            <alternative condition="data.radsatznummer != data.wellennummer">
              <call id="a4" endpoint="">
                <parameters>
                  <label>Datenkonsitenz herstellen, Radsatznummer ändern </label>
                  <method>:post</method>
                  <arguments/>
                </parameters>
                <finalize output="result"/>
                <update output="result"/>
                <_timing>
                  <_timing_min/>
                  <_timing_max/>
                  <_timing_avg/>
                </_timing>
                <_notes>
                  <_notes_general/>
                  <_notes_output/>
                  <_attachments/>
                </_notes>
              </call>
            </alternative>
            <otherwise/>
          </choose>
          <choose mode="exclusive">
            <alternative condition="data.lagertyp == &quot;kartuschenlager&quot; &amp;&amp; data.lagerlaufleistung &lt; data.lagertyp.maximallaufleistung">
              <call id="a6" endpoint="">
                <parameters>
                  <label>Externe Lageraufbereitung</label>
                  <method>:post</method>
                  <arguments/>
                </parameters>
              </call>
            </alternative>
            <alternative condition="data.lagertyp == &quot;kartuschenlager&quot; &amp;&amp; data.lagerlaufleistung &gt; data.lagertyp.maximallaufleistung">
              <call id="a5" endpoint="">
                <parameters>
                  <label>Lager Verschrotten</label>
                  <method>:post</method>
                  <arguments/>
                </parameters>
              </call>
            </alternative>
            <otherwise>
              <manipulate id="a42" label="Lager soll aufbereitet werden">data.taetigkeiten &lt;&lt; 'Lageraufbereitung'</manipulate>
            </otherwise>
          </choose>
        </otherwise>
      </choose>
      <parallel wait="-1">
        <parallel_branch pass="" local="">
          <loop mode="post_test" condition="data.tauschgruppe[&quot;bremsscheibe&quot;] == false || data.taetigkeiten.include?('Eigenspannungspruefung')">
            <call id="a3" endpoint="eigen">
              <parameters>
                <label>Eigenspannungspruefung 140</label>
                <method>:post</method>
                <arguments>
                  <werkstoff/>
                  <bauform_scheibe/>
                  <pruefprogramm/>
                </arguments>
              </parameters>
              <finalize output="result">data.eigenspannungswerte
# Radsatz regenerieren falls die Station das meldet
data.taetigkeiten.push result["taetigkeiten"]
data.taetigkeiten.delete("Eigenspannungspruefung")
# eventuell entscheiden dass radsatz abgepresst werden soll</finalize>
              <update output="result"/>
              <_timing>
                <_timing_min/>
                <_timing_max/>
                <_timing_avg/>
              </_timing>
              <_notes>
                <_notes_general/>
                <_notes_output/>
                <_attachments/>
              </_notes>
            </call>
            <choose mode="exclusive">
              <alternative condition="data.taetigkeiten.include? 'Radsatz regenerieren'">
                <call id="a20" endpoint="timeout">
                  <parameters>
                    <label>Radsatz regenerieren</label>
                    <method>:post</method>
                    <arguments>
                      <timeout>2</timeout>
                    </arguments>
                  </parameters>
                  <finalize output="result">data.taetigkeiten.delete("Radsatz regenerieren")</finalize>
                  <update output="result"/>
                  <_timing>
                    <_timing_min/>
                    <_timing_max/>
                    <_timing_avg/>
                  </_timing>
                  <_notes>
                    <_notes_general/>
                    <_notes_output/>
                    <_attachments/>
                  </_notes>
                </call>
              </alternative>
              <otherwise/>
            </choose>
          </loop>
          <choose mode="exclusive">
            <alternative condition="data.lagerbauart[&quot;innenring&quot;]">
              <call id="a32" endpoint="timeout">
                <parameters>
                  <label>Demontage Innenringe 420</label>
                  <method>:post</method>
                  <arguments>
                    <timeout>2</timeout>
                  </arguments>
                </parameters>
                <finalize output="result"/>
                <update output="result"/>
                <_timing>
                  <_timing_min/>
                  <_timing_max/>
                  <_timing_avg/>
                </_timing>
                <_notes>
                  <_notes_general/>
                  <_notes_output/>
                  <_attachments/>
                </_notes>
              </call>
            </alternative>
            <otherwise>
              <manipulate id="a43" label="Innenringstatus OK (weils keinen gibt)">data.innenring_status = "ok"</manipulate>
            </otherwise>
          </choose>
          <choose mode="exclusive">
            <alternative condition="data.tauschgruppe[&quot;bremsscheiben&quot;] == true &amp;&amp; data.restverschleissstaerke.to_f &lt; data.tauschgruppe[&quot;restverschleissstaerke&quot;].to_f">
              <manipulate id="a18" label="Abpressen dazu">data.taetigkeiten &lt;&lt; "Abpressen"</manipulate>
            </alternative>
            <otherwise/>
          </choose>
          <choose mode="exclusive">
            <alternative condition="data.taetigkeiten.include? 'Abpressen'">
              <loop mode="post_test" condition="data.wuchten_status == 'schlecht'">
                <loop mode="post_test" condition="data.presskraftdiagramm.to_i != 0">
                  <call id="a22" endpoint="abpressen">
                    <parameters>
                      <label>Radscheibe abpressen 510/511</label>
                      <method>:post</method>
                      <arguments/>
                    </parameters>
                    <finalize output="result">data.wellenstatus = result["status"] # "gut", "kaputt", "beschaedigt", "zu glatt"
data.taetigkeiten.delete("Abpressen")</finalize>
                    <update output="result"/>
                    <_timing>
                      <_timing_min/>
                      <_timing_max/>
                      <_timing_avg/>
                    </_timing>
                    <_notes>
                      <_notes_general/>
                      <_notes_output/>
                      <_attachments/>
                    </_notes>
                  </call>
                  <choose mode="exclusive">
                    <alternative condition="data.wellenstatus =~ /kaputt/">
                      <call id="a19" endpoint="terminate">
                        <parameters>
                          <label>Terminate</label>
                          <method>:post</method>
                          <arguments/>
                        </parameters>
                        <_timing>
                          <_timing_min/>
                          <_timing_max/>
                          <_timing_avg/>
                        </_timing>
                        <_notes>
                          <_notes_general/>
                          <_attachments/>
                        </_notes>
                      </call>
                    </alternative>
                    <alternative condition="data.wellenstatus == &quot;beschaedigt&quot; || data.wellenstatus == &quot;glatt&quot;">
                      <call id="a23" endpoint="timeout">
                        <parameters>
                          <label>Radsatzwelle drehen 520/521</label>
                          <method>:post</method>
                          <arguments>
                            <timeout>2</timeout>
                          </arguments>
                        </parameters>
                        <finalize output="result"/>
                        <update output="result"/>
                        <_timing>
                          <_timing_min/>
                          <_timing_max/>
                          <_timing_avg/>
                        </_timing>
                        <_notes>
                          <_notes_general/>
                          <_notes_output/>
                          <_attachments/>
                        </_notes>
                      </call>
                      <call id="a24" endpoint="timeout">
                        <parameters>
                          <label>MT Welle unbescheibt prüfen 535</label>
                          <method>:post</method>
                          <arguments>
                            <timeout>2</timeout>
                          </arguments>
                        </parameters>
                        <finalize output="result">data.wellenstatus = result["wellenstatus"] # "gut" oder "beschaedigt"</finalize>
                        <update output="result"/>
                        <_timing>
                          <_timing_min/>
                          <_timing_max/>
                          <_timing_avg/>
                        </_timing>
                        <_notes>
                          <_notes_general>Wenn status schlecht, zum welle drehen, wenn mindestdurchmesser erreicht, schrott</_notes_general>
                          <_notes_output/>
                          <_attachments/>
                        </_notes>
                      </call>
                    </alternative>
                    <otherwise/>
                  </choose>
                  <choose mode="exclusive">
                    <alternative condition="data.presskraftdiagramm &amp;&amp; (data.presskraftdiagramm.to_i &gt;= 1 || data.presskraftdiagramm.to_i &lt; 0)">
                      <call id="a25" endpoint="timeout">
                        <parameters>
                          <label>Senkrechtbohrwerk 530/531</label>
                          <method>:post</method>
                          <arguments>
                            <timeout>2</timeout>
                          </arguments>
                        </parameters>
                        <finalize output="result"/>
                        <update output="result"/>
                        <_timing>
                          <_timing_min/>
                          <_timing_max/>
                          <_timing_avg/>
                        </_timing>
                        <_notes>
                          <_notes_general>* wenn überdeckung nicht zu viel, nicht bohren, aufpressen mit schmierm.
* wenn viel überdeckung (presskraftdiagramm weit über max)
* wenn überdeckung unter min, neue scheibe bohren</_notes_general>
                          <_notes_output># ich hab radscheibe demontiert, alle

# die fuer die wellentype zulässig sind

# dürfen wieder rauf

# (verbrauchsmaterial liste)

# wellentype -&gt; zulässige materialnummer

# materialnummern können bremsscheibe, radscheibe oder

# radbremsscheibe sein. Mehrere zulässige.</_notes_output>
                          <_attachments/>
                        </_notes>
                      </call>
                    </alternative>
                    <otherwise/>
                  </choose>
                  <call id="a26" endpoint="aufpressen">
                    <parameters>
                      <label>Radscheibe aufpressen 516/510</label>
                      <method>:post</method>
                      <arguments/>
                    </parameters>
                    <finalize output="result">data.presskraftdiagramm = result["presskraftdiagramm"]
data.taetigkeiten.push *result["taetigkeiten"]</finalize>
                    <update output="result"/>
                    <_timing>
                      <_timing_min/>
                      <_timing_max/>
                      <_timing_avg/>
                    </_timing>
                    <_notes>
                      <_notes_general>data.presskraftdiagramm == 0: alles in ordnung
data.presskraftdiagramm &gt; 1: zu viel über max, 530/531
data.presskraftdiagramm &lt; 0: zu wenig, 530/531
data.presskraftdiagramm zwischen 0 und 1: neuer versuch mit mehr schmiermittel</_notes_general>
                      <_notes_output/>
                      <_attachments/>
                    </_notes>
                  </call>
                </loop>
                <choose mode="exclusive">
                  <alternative condition="data.tauschgruppe[&quot;bremsscheiben&quot;]">
                    <call id="a8" endpoint="scheibe_drehen">
                      <parameters>
                        <label>Rad und Bremsscheibe messen 320</label>
                        <method>:post</method>
                        <arguments>
                          <wellentyp/>
                        </arguments>
                      </parameters>
                      <finalize output="result">data.geometriedaten_radsatz = result['geometriedaten']
data.geometriedaten_radsatz_neu = result['geometriedaten_neu'] # true/false</finalize>
                      <update output="result"/>
                      <_timing>
                        <_timing_min/>
                        <_timing_max/>
                        <_timing_avg/>
                      </_timing>
                      <_notes>
                        <_notes_general/>
                        <_notes_output/>
                        <_attachments/>
                      </_notes>
                    </call>
                  </alternative>
                  <otherwise>
                    <call id="a9" endpoint="scheibe_drehen">
                      <parameters>
                        <label>Radscheibe messen 321</label>
                        <method>:post</method>
                        <arguments>
                          <wellentyp/>
                        </arguments>
                      </parameters>
                      <finalize output="result">data.geometriedaten_radsatz = result['geometriedaten']
data.geometriedaten_radsatz_neu = result['geometriedaten_neu'] # true/false</finalize>
                      <update output="result"/>
                      <_timing>
                        <_timing_min/>
                        <_timing_max/>
                        <_timing_avg/>
                      </_timing>
                      <_notes>
                        <_notes_general/>
                        <_notes_output/>
                        <_attachments/>
                      </_notes>
                    </call>
                  </otherwise>
                </choose>
                <choose mode="exclusive">
                  <alternative condition="data.geometriedata_radsatz_neu == false">
                    <call id="a30" endpoint="worklist_b">
                      <parameters>
                        <label>Lesen Schadcode für Eigenspannung</label>
                        <method>:post</method>
                        <arguments/>
                      </parameters>
                      <finalize output="result"># lesen anhand barcode
data.taetigkeiten.push *result["taetigkeiten"]</finalize>
                      <update output="result"/>
                      <_timing>
                        <_timing_min/>
                        <_timing_max/>
                        <_timing_avg/>
                      </_timing>
                      <_notes>
                        <_notes_general/>
                        <_notes_output/>
                        <_attachments/>
                      </_notes>
                    </call>
                  </alternative>
                  <otherwise/>
                </choose>
                <choose mode="exclusive">
                  <alternative condition="data.tauschgruppe[&quot;personenzug&quot;] || (data.tauschgruppe[&quot;gueterzug&quot;] &amp;&amp; data.tauschgruppe[&quot;bremsscheiben&quot;])">
                    <call id="a21" endpoint="wuchten">
                      <parameters>
                        <label>Wuchten 550</label>
                        <method>:post</method>
                        <arguments/>
                      </parameters>
                      <finalize output="result"># sicher gramm pro meter, nachgeschaut
data.wucht_gramm_pro_meter = result["wucht_gramm_pro_meter"]

if data.wucht_gramm_pro_meter != data.tauschgruppe["wucht_gramm_pro_meter"]
  data.wucht_status == 'schlecht'
else
  data.wucht_status == 'gut'
end</finalize>
                      <update output="result"/>
                      <_timing>
                        <_timing_min/>
                        <_timing_max/>
                        <_timing_avg/>
                      </_timing>
                      <_notes>
                        <_notes_general/>
                        <_notes_output/>
                        <_attachments/>
                      </_notes>
                    </call>
                  </alternative>
                  <otherwise/>
                </choose>
              </loop>
            </alternative>
            <otherwise>
              <call id="a31" endpoint="buersten">
                <parameters>
                  <label>Radsatzwelle Bürsten 490</label>
                  <method>:post</method>
                  <arguments>
                    <timeout>2</timeout>
                  </arguments>
                </parameters>
                <finalize output="result"># eventuell sandstrahlen
data.taetigkeiten.push *result["taetigkeiten"]</finalize>
                <update output="result"/>
                <_timing>
                  <_timing_min/>
                  <_timing_max/>
                  <_timing_avg/>
                </_timing>
                <_notes>
                  <_notes_general/>
                  <_notes_output/>
                  <_attachments/>
                </_notes>
              </call>
              <choose mode="exclusive">
                <alternative condition="data.taetigkeiten.include? 'Sandstrahlen'">
                  <call id="a33" endpoint="timeout">
                    <parameters>
                      <label>Sandstrahlen 480</label>
                      <method>:post</method>
                      <arguments>
                        <timeout>2</timeout>
                      </arguments>
                    </parameters>
                    <finalize output="result">data.taetigkeiten.delete("Sandstrahlen")</finalize>
                    <update output="result"/>
                    <_timing>
                      <_timing_min/>
                      <_timing_max/>
                      <_timing_avg/>
                    </_timing>
                    <_notes>
                      <_notes_general/>
                      <_notes_output/>
                      <_attachments/>
                    </_notes>
                  </call>
                </alternative>
                <otherwise/>
              </choose>
              <call id="a34" endpoint="ut_welle">
                <parameters>
                  <label>UT Radsatzwelle 430</label>
                  <method>:post</method>
                  <arguments/>
                </parameters>
                <finalize output="result">data.radsatzwelle_status = result["radsatzwelle_status"] # gut / schlecht</finalize>
                <update output="result"/>
                <_timing>
                  <_timing_min/>
                  <_timing_max/>
                  <_timing_avg/>
                </_timing>
                <_notes>
                  <_notes_general/>
                  <_notes_output/>
                  <_attachments/>
                </_notes>
              </call>
              <call id="a41" endpoint="timeout">
                <parameters>
                  <label>MT Allg. Prüfung 170</label>
                  <method>:post</method>
                  <arguments>
                    <timeout>2</timeout>
                  </arguments>
                </parameters>
                <finalize output="result"/>
                <update output="result"/>
                <_timing>
                  <_timing_min/>
                  <_timing_max/>
                  <_timing_avg/>
                </_timing>
                <_notes>
                  <_notes_general/>
                  <_notes_output/>
                  <_attachments/>
                </_notes>
              </call>
              <manipulate id="a27" label="Radscheibe drehen dazu">data.taetigkeiten &lt;&lt; "Radscheibe drehen"</manipulate>
            </otherwise>
          </choose>
          <loop mode="post_test" condition="data.innenring_status != 'ok'">
            <loop mode="post_test" condition="data.radsatzwelle_status == 'schlecht'">
              <call id="a38" endpoint="timeout">
                <parameters>
                  <label>Radsatzwelle drehen HS4 595</label>
                  <method>:post</method>
                  <arguments>
                    <timeout>2</timeout>
                  </arguments>
                </parameters>
                <finalize output="result"/>
                <update output="result"/>
                <_timing>
                  <_timing_min/>
                  <_timing_max/>
                  <_timing_avg/>
                </_timing>
                <_notes>
                  <_notes_general/>
                  <_notes_output/>
                  <_attachments/>
                </_notes>
              </call>
              <call id="a37" endpoint="ut_welle">
                <parameters>
                  <label>UT Radsatzwelle 430</label>
                  <method>:post</method>
                  <arguments/>
                </parameters>
                <finalize output="result">data.radsatzwelle_status = result["radsatzwelle_status"] # gut / schlecht</finalize>
                <update output="result"/>
                <_timing>
                  <_timing_min/>
                  <_timing_max/>
                  <_timing_avg/>
                </_timing>
                <_notes>
                  <_notes_general/>
                  <_notes_output/>
                  <_attachments/>
                </_notes>
              </call>
            </loop>
            <choose mode="exclusive">
              <alternative condition="data.lagerbauart[&quot;innenring&quot;]">
                <call id="a36" endpoint="innenringmontage">
                  <parameters>
                    <label>Innenringmontage 190</label>
                    <method>:post</method>
                    <arguments/>
                  </parameters>
                  <finalize output="result">data.innenring_status = result["innenring_status"] # ok, beschaedigung, untermass</finalize>
                  <update output="result"/>
                  <_timing>
                    <_timing_min/>
                    <_timing_max/>
                    <_timing_avg/>
                  </_timing>
                  <_notes>
                    <_notes_general/>
                    <_notes_output/>
                    <_attachments/>
                  </_notes>
                </call>
              </alternative>
              <otherwise/>
            </choose>
          </loop>
          <loop mode="post_test" condition="data.taetigkeiten.include? 'Radscheibe drehen'">
            <choose mode="exclusive">
              <alternative condition="data.tauschgruppe[&quot;bremsscheiben&quot;]">
                <call id="a39" endpoint="scheibe_drehen">
                  <parameters>
                    <label>Rad und Bremsscheibe drehen 320</label>
                    <method>:post</method>
                    <arguments>
                      <wellentyp/>
                    </arguments>
                  </parameters>
                  <finalize output="result">data.geometriedaten_radsatz = result['geometriedaten']
data.geometriedaten_radsatz_neu = result['geometriedaten_neu'] # true/false # eventuell abpressen
data.taetigkeiten.push *result["taetigkeiten"] # eventuell Kerbschleifen</finalize>
                  <update output="result"/>
                  <_timing>
                    <_timing_min/>
                    <_timing_max/>
                    <_timing_avg/>
                  </_timing>
                  <_notes>
                    <_notes_general/>
                    <_notes_output/>
                    <_attachments/>
                  </_notes>
                </call>
              </alternative>
              <otherwise>
                <call id="a40" endpoint="scheibe_drehen">
                  <parameters>
                    <label>Radscheibe drehen 321</label>
                    <method>:post</method>
                    <arguments>
                      <wellentyp/>
                    </arguments>
                  </parameters>
                  <finalize output="result">data.geometriedaten_radsatz = result['geometriedaten']
data.geometriedaten_radsatz_neu = result['geometriedaten_neu'] # true/false</finalize>
                  <update output="result"/>
                  <_timing>
                    <_timing_min/>
                    <_timing_max/>
                    <_timing_avg/>
                  </_timing>
                  <_notes>
                    <_notes_general/>
                    <_notes_output/>
                    <_attachments/>
                  </_notes>
                </call>
              </otherwise>
            </choose>
            <choose mode="exclusive">
              <alternative condition="data.taetigkeiten.include? 'Kerbschleifen'">
                <call id="a17" endpoint="kerb">
                  <parameters>
                    <label>Kerbschleifen 240</label>
                    <method>:post</method>
                    <arguments/>
                  </parameters>
                  <finalize output="result">data.taetigkeiten.delete("Kerbschleifen")
data.taetigkeiten.push *result["taetigkeiten"] # eventuell abpressen</finalize>
                  <update output="result"/>
                  <_timing>
                    <_timing_min/>
                    <_timing_max/>
                    <_timing_avg/>
                  </_timing>
                  <_notes>
                    <_notes_general/>
                    <_notes_output/>
                    <_attachments/>
                  </_notes>
                </call>
              </alternative>
              <otherwise/>
            </choose>
            <call id="a10" endpoint="ut_scheibe">
              <parameters>
                <label>UT Scheibe 630</label>
                <method>:post</method>
                <arguments/>
              </parameters>
              <finalize output="result">data.taetigkeiten.delete("UT Scheibe")
# wenn riss in der lauffläche der scheibe
if result['ut_scheibe_status'] == 'gut'
  data.taetigkeiten.delete("Radscheibe drehen")
end
data.taetigkeiten.push *result["taetigkeiten"]</finalize>
              <update output="result"/>
              <_timing>
                <_timing_min/>
                <_timing_max/>
                <_timing_avg/>
              </_timing>
              <_notes>
                <_notes_general/>
                <_notes_output/>
                <_attachments/>
              </_notes>
            </call>
          </loop>
        </parallel_branch>
        <parallel_branch pass="" local="">
          <choose mode="exclusive">
            <alternative condition="data.taetigkeiten.include?(&quot;Lageraufbereitung&quot;)">
              <call id="a7" endpoint="lageraufbereitung">
                <parameters>
                  <label>Lageraufbereitung 680</label>
                  <method>:post</method>
                  <arguments>
                    <timeout>2</timeout>
                  </arguments>
                </parameters>
                <finalize output="result"/>
                <update output="result"/>
                <_timing>
                  <_timing_min/>
                  <_timing_max/>
                  <_timing_avg/>
                </_timing>
                <_notes>
                  <_notes_general/>
                  <_notes_output/>
                  <_attachments/>
                </_notes>
              </call>
            </alternative>
          </choose>
        </parallel_branch>
      </parallel>
      <call id="a11" endpoint="fix">
        <parameters>
          <label>Lagermontage 640</label>
          <method>:post</method>
          <arguments>
            <lagerbauart/>
          </arguments>
        </parameters>
        <finalize output="result">data.taetigkeiten.delete("Montage Deckel")</finalize>
        <update output="result"/>
        <_notes>
          <_notes_general/>
        </_notes>
      </call>
      <call id="a12" endpoint="fix">
        <parameters>
          <label>Austrittskontrolle 650</label>
          <method>:post</method>
          <arguments/>
        </parameters>
        <finalize output="result"/>
        <update output="result"/>
        <_timing>
          <_timing_min/>
          <_timing_max/>
          <_timing_avg/>
        </_timing>
        <_notes>
          <_notes_general/>
          <_notes_output/>
          <_attachments/>
        </_notes>
      </call>
      <call id="a13" endpoint="fix">
        <parameters>
          <label>Lackierung 675</label>
          <method>:post</method>
          <arguments>
            <strategie/>
          </arguments>
        </parameters>
        <finalize output="result"/>
        <update output="result"/>
        <_timing>
          <_timing_min/>
          <_timing_max/>
          <_timing_avg/>
        </_timing>
        <_notes>
          <_notes_general/>
          <_notes_output/>
          <_attachments/>
        </_notes>
      </call>
      <call id="a14" endpoint="fix">
        <parameters>
          <label>Versandfertig 690</label>
          <method>:post</method>
          <arguments>
            <technische_weisungen/>
            <regelwerk/>
          </arguments>
        </parameters>
        <finalize output="result"/>
        <update output="result"/>
        <_timing>
          <_timing_min/>
          <_timing_max/>
          <_timing_avg/>
        </_timing>
        <_notes>
          <_notes_general/>
          <_notes_output/>
          <_attachments/>
        </_notes>
      </call>
      <call id="a15" endpoint="fix">
        <parameters>
          <label>Qualitaetsfreigabe 710</label>
          <method>:post</method>
          <arguments>
            <regelwerk/>
            <technische_weisungen/>
          </arguments>
        </parameters>
        <finalize output="result"/>
        <update output="result"/>
        <_timing>
          <_timing_min/>
          <_timing_max/>
          <_timing_avg/>
        </_timing>
        <_notes>
          <_notes_general/>
          <_notes_output/>
          <_attachments/>
        </_notes>
      </call>
      <choose mode="exclusive">
        <alternative condition="data.taetigkeiten.include? &quot;Anbauteile montieren&quot;">
          <call id="a35" endpoint="">
            <parameters>
              <label>Anbauteilmontage 670</label>
              <method>:post</method>
              <arguments/>
            </parameters>
            <finalize output="result"/>
            <update output="result"/>
            <_notes>
              <_notes_general/>
            </_notes>
          </call>
        </alternative>
        <otherwise/>
      </choose>
    </description>
  </description>
  <transformation>
    <description type="copy"/>
    <dataelements type="none"/>
    <endpoints type="none"/>
  </transformation>
</properties>