SAP Jobsuche bei DV-Treff
MartinZn
  • MartinZn
  • SAP Forum - User Thema Starter
vor 7 Jahre
Hallo,

ich habe mir das SAP-Beispiel CL_DEMO_CALL_FROM_ST genommen und damit rumgespielt. Dabei ist mir aufgefallen, dass SAP an dieser Stelle ja FLIGHT_TAB ändert, aber dann über den Root-Knoten SPFLI_TAB loopt. Was meines Erachtens absolut sinnfrei ist.

Ich rufe Methoden in einer anderen, als in der Transformation-aufrufenden klasse auf.

Daher habe ich versucht, auf verschiedene Arten FLIGHT_TAB in den Loop

reinzubekommen. Einmal FLIGHT_TAB als Referenz ref="FLIGHT_TAB", aber das funktioniert scheinbar nicht für Exportparameter. Dann habe ich mir wie unten zu sehen eine Hilfsvariable angelegt und diese erfolgreich gefüllt. Allerdings bekomme ich die Informationen aus FLIGHT_TAB_TMP nicht in FLIGHT_TAB. Weiss da jemand eine Lösung entweder in Zeile 17 oder 19?

KANN ich überhaupt FLIGHT_TAB oder einen anderen ROOT manipulieren?

<?sap.transform simple?>
<tt:transform xmlns:tt="http://www.sap.com/transformation-templates">
  <tt:root name="SCARR_TAB"/>
  <tt:root name="SPFLI_TAB"/>
  <tt:root name="FLIGHT_TAB"/>
  <tt:variable name="CARRID"/>
  <tt:variable name="FLIGHT_TAB_TMP"/>
  <tt:template>
    <FlightList>
      <tt:loop ref=".SCARR_TAB">
        <Flights>
          <tt:attribute name="Carrier" value-ref="CARRNAME"/>
          <tt:assign ref="CARRID" to-var="CARRID"/>
          <tt:assign ref=".FLIGHT_TAB" to-var="FLIGHT_TAB_TMP"/>
          <tt:call-method class="Z_CL_DEMO_CALL_FROM_ST_HELP" s-name="GET_FLIGHTS">
            <tt:with-parameter name="CARRID" ref="CARRID"/>
            <tt:with-parameter name="FLIGHT_TAB" var="FLIGHT_TAB_TMP"/>
          </tt:call-method>
          <tt:assign var="FLIGHT_TAB_TMP" to-ref=".FLIGHT_TAB"/>
          <tt:loop ref=".FLIGHT_TAB">
            <Connection>
              <tt:attribute name='ID' value-ref="CONNID"/>
              <From>
                <tt:value ref="CITYFROM"/>
              </From>
              <To>
                <tt:value ref="CITYTO"/>
              </To>
            </Connection>
          </tt:loop>
        </Flights>
      </tt:loop>
    </FlightList>
  </tt:template>
</tt:transform>
Förderer

MartinZn
  • MartinZn
  • SAP Forum - User Thema Starter
vor 7 Jahre
Hallo, da mir leider keiner helfen konnte, habe ich es jetzt anders gemacht.

Die Daten werden nun in mehrdimensionalen, festen, nicht dynamischen(meine andere Frage 😉 ), internen Tabellen bereits alle vorher ermittelt und komplett an die Transformation übergeben. Dieses Vorgehen ist auch sauberer... MVC... anstatt zwischen der Transformation und Datenbeschaffung hin und her zu springen.

Viele Grüße

Martin