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>
Bearbeitet vom Benutzer
vor 6 Jahre
|
Grund: Nicht angegeben