Code: Alles auswählen.
DATA:
Tabelle1 TYPE STANDARD TABLE OF ... WITH DEFAULT KEY, "Ursprungstabelle mit entsprchenden Zeilentyp (z.B. aus Dictionary)
Tabelle2 TYPE STANDARD TABLE OF ... WITH DEFAULT KEY, "Zieltabelle mit entsprchenden Zeilentyp (z.B. aus Dictionary)
Tabelle3 TYPE STANDARD TABLE OF ... WITH DEFAULT KEY, "Hilfstabelle mit entsprchenden Zeilentyp (z.B. aus Dictionary)
FIELD-SYMBOLS:
<Fieldsymbol1> TYPE ... , "Feldsymbol (Zeiger), Zeilentyp muss zur jeweiligen Tabelle passen
<Fieldsymbol2> TYPE ... , "Feldsymbol (Zeiger), Zeilentyp muss zur jeweiligen Tabelle passen
<Fieldsymbol3> TYPE ... . "Feldsymbol (Zeiger), Zeilentyp muss zur jeweiligen Tabelle passen
SELECT *
FROM ...
INTO TABLE Tabelle1. "Daten aus der Datenbanktabelle lesen.
* Interne Hilfstabelle befüllen
APPEND INITIAL LINE TO Tabelle3 ASSIGNING <Fieldsymbol3>.
<Fieldsymbol3>-Spalte1 = 'DE'.
<Fieldsymbol3>-Spalte2 = 'Deutschland'.
APPEND INITIAL LINE TO Tabelle3 ASSIGNING <Fieldsymbol3>.
<Fieldsymbol3>-Spalte1 = 'AT'.
<Fieldsymbol3>-Spalte2 = 'Österreich'.
* usw.
LOOP AT Tabelle1 assigning <Fieldsymbol1>. "Ursprungstabelle Zeilenweise durchgehen
APPEND INITIAL LINE TO Tabelle2 assigning <Fieldsymbol2>. "Zieltabelle erweitern
MOVE-CORRESPONDING <Fieldsymbol1> TO <Fieldsymbol2>. "Feldwerte kopieren (via Name)
READ TABLE Tabelle3 ASSIGNING <Fieldsymbol3> WITH KEY Spalte1 = <Fieldsymbol1>-Spalte2. "Hilfstabelle abfragen
IF sy-subrc EQ 0. "Prüfen ob alles geklappt hat
<Fieldsymbol2>-Spalte2 = <Fieldsymbol3>-Spalte2. "Alternativwert ändern
ENDIF.
ENDLOOP.
INSERT ... FROM TABLE Tabelle2. "Daten wieder auf die Datenbank zurückspeichern
Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
s_belisio
a-dead-trousers hat geschrieben:hi!
Für die genaue Funktionsweise der Befehle und wie man Datenbanktabelle, Zeilentypen (Strukturen) usw. anlegt Bitte die ABAP-Hilfe zu befragen.Code: Alles auswählen.
DATA: Tabelle1 TYPE STANDARD TABLE OF ... WITH DEFAULT KEY, "Ursprungstabelle mit entsprchenden Zeilentyp (z.B. aus Dictionary) Tabelle2 TYPE STANDARD TABLE OF ... WITH DEFAULT KEY, "Zieltabelle mit entsprchenden Zeilentyp (z.B. aus Dictionary) Tabelle3 TYPE STANDARD TABLE OF ... WITH DEFAULT KEY, "Hilfstabelle mit entsprchenden Zeilentyp (z.B. aus Dictionary) FIELD-SYMBOLS: <Fieldsymbol1> TYPE ... , "Feldsymbol (Zeiger), Zeilentyp muss zur jeweiligen Tabelle passen <Fieldsymbol2> TYPE ... , "Feldsymbol (Zeiger), Zeilentyp muss zur jeweiligen Tabelle passen <Fieldsymbol3> TYPE ... . "Feldsymbol (Zeiger), Zeilentyp muss zur jeweiligen Tabelle passen SELECT * FROM ... INTO TABLE Tabelle1. "Daten aus der Datenbanktabelle lesen. * Interne Hilfstabelle befüllen APPEND INITIAL LINE TO Tabelle3 ASSIGNING <Fieldsymbol3>. <Fieldsymbol3>-Spalte1 = 'DE'. <Fieldsymbol3>-Spalte2 = 'Deutschland'. APPEND INITIAL LINE TO Tabelle3 ASSIGNING <Fieldsymbol3>. <Fieldsymbol3>-Spalte1 = 'AT'. <Fieldsymbol3>-Spalte2 = 'Österreich'. * usw. LOOP AT Tabelle1 assigning <Fieldsymbol1>. "Ursprungstabelle Zeilenweise durchgehen APPEND INITIAL LINE TO Tabelle2 assigning <Fieldsymbol2>. "Zieltabelle erweitern MOVE-CORRESPONDING <Fieldsymbol1> TO <Fieldsymbol2>. "Feldwerte kopieren (via Name) READ TABLE Tabelle3 ASSIGNING <Fieldsymbol3> WITH KEY Spalte1 = <Fieldsymbol1>-Spalte2. "Hilfstabelle abfragen IF sy-subrc EQ 0. "Prüfen ob alles geklappt hat <Fieldsymbol2>-Spalte2 = <Fieldsymbol3>-Spalte2. "Alternativwert ändern ENDIF. ENDLOOP. INSERT ... FROM TABLE Tabelle2. "Daten wieder auf die Datenbank zurückspeichern
lg ADT
Eigentlich steckt alles was du dafür brauchst schon in meinem Ursprungscoding drinnen.s_belisio hat geschrieben:Wie würde dann der Befehl aussehen, wenn ich in meiner Tabelle nun nichts ersetze, sondern diejenigen Datensätze, bei denen z.B. "DE" anstatt von "Deutschland" steht,komplett dupliziere und in diesem neuen Datzensatz aber anstatt von DE nun Deutschland schreibe.