Werte einer Tabelle durch die aus anderen ersetzen

Getting started ... Alles für einen gelungenen Start.
5 Beiträge • Seite 1 von 1
5 Beiträge Seite 1 von 1

Werte einer Tabelle durch die aus anderen ersetzen

Beitrag von s_belisio (ForumUser / 2 / 2 / 0 ) »
Hallo ABAP-Gemeinde,

arbeite seit kurzem im Umfeld von SAP Business Information Warehouse und muss jetzt etwas mit ABAP programmieren, komme jedoch schon seit Tagen nicht weiter. Null Erfahrungen mit ABAP. Ich habe z.B. folgende Ausgangstabelle:

Spalte 1: Kontinent (Europa, etc.)
Spalte 2: Land (DE etc.)
Spalte 3: Präsident (Merkel etc)


Die Zieltabelle soll aber wie folgt aussehen:

Spalte 1: Kontinent - wie bisher
Spalte 2: Land - anstatt der Abkürzung DE soll diese aufgelöst werden, also Deutschland als Insert
Spalte 3: Präsident - wie bisher

Die Transformation läuft dann wie folgt ab: die 1. und 3. Spalte wird in die Zieltabelle 1:1 übertragen. Für jeden Eintrag der 2. Spalte (z.B. DE, F, I etc.) wird in einer dritten Tabelle (manuell gepflegte"Hilfstabelle") geschaut, für was diese Abkürzung steht und in die Zieltabelle wird dann nicht die Abkürzung, sondern der vollständige name geschrieben, der in dieser "Hilfstabelle" steht. Möglich ist, dass diese "Hilfstabelle" später um weitere Abkürzungen erweitert wird, z.B. CND - Canada.

Diese "Hilfstabelle" besteht nur aus Abkürzungen und vollständigen Namen, z.B. DE - Deutschland // F - Frankreich // etc.


Könnte mir bitte jemand sagen, wie man so etwas mit ABAP realisieren könnte.

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: Werte einer Tabelle durch die aus anderen ersetzen

Beitrag von Unit605 (Expert / 975 / 37 / 93 ) »
Ich würde das mit einem Kollegen vor Ort angehen.....

Das wird hier eine endlose Geschichte, weil Du scheinst ja Null Ahnung zu haben.

Ausserdem würde ich die Firma mal wegen einem ABAP-Kurs oder besser mehrere anfragen.

Folgende Benutzer bedankten sich beim Autor Unit605 für den Beitrag:
s_belisio


Re: Werte einer Tabelle durch die aus anderen ersetzen

Beitrag von a-dead-trousers (Top Expert / 4451 / 227 / 1197 ) »
hi!

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
Für die genaue Funktionsweise der Befehle und wie man Datenbanktabelle, Zeilentypen (Strukturen) usw. anlegt Bitte die ABAP-Hilfe zu befragen.

lg ADT

Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
s_belisio

Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: Werte einer Tabelle durch die aus anderen ersetzen

Beitrag von s_belisio (ForumUser / 2 / 2 / 0 ) »
a-dead-trousers hat geschrieben:hi!

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
Für die genaue Funktionsweise der Befehle und wie man Datenbanktabelle, Zeilentypen (Strukturen) usw. anlegt Bitte die ABAP-Hilfe zu befragen.

lg ADT

Vielen Dank, das hat jetzt geklappt.

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.

Aus Performance-Gründen will ich hier wieder die interne Tabelle benutzen.

--

Eine ABAP-Schulung wäre schön aber wenn ich diese Aufgabe jetzt irgendwie hinbekomme, werde ich mit ABAP erst einmal eine lange Zeit nichts mehr zu tun haben.

Re: Werte einer Tabelle durch die aus anderen ersetzen

Beitrag von a-dead-trousers (Top Expert / 4451 / 227 / 1197 ) »
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.
Eigentlich steckt alles was du dafür brauchst schon in meinem Ursprungscoding drinnen.
Du musst es nur etwas umformulieren. Habs ja auch dokumentiert, was die einzelnen Befehle bewirken.

lg ADT
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Seite 1 von 1

Vergleichbare Themen

3
Antw.
5459
Views
Tabelle ohne Kopfzeile ersetzen - Read table
von joester » 19.04.2016 09:25 • Verfasst in ABAP® Core
1
Antw.
2056
Views
8
Antw.
8211
Views
Werte in Tabelle einfügen
von thomasxy » 15.01.2008 11:09 • Verfasst in ABAP® für Anfänger
3
Antw.
1381
Views
Werte aus tabelle auswählen
von ISTMIREGAL » 10.08.2015 10:08 • Verfasst in ABAP® für Anfänger
1
Antw.
1265
Views
Werte einer Tabelle erweitern
von kaim77 » 22.05.2014 09:35 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

FOR mit CORRESPONDING
vor 9 Stunden von DeathAndPain 12 / 2882
Netzplan drucken
vor 3 Tagen von sap_enthusiast 2 / 884
SALV: Titel zu lang
vor 6 Tagen von ralf.wenzel 3 / 1458
Web Feature Services (WFS) im SAP
vor einer Woche von msfox 1 / 1991

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Aktuelle Forenbeiträge

FOR mit CORRESPONDING
vor 9 Stunden von DeathAndPain 12 / 2882
Netzplan drucken
vor 3 Tagen von sap_enthusiast 2 / 884
SALV: Titel zu lang
vor 6 Tagen von ralf.wenzel 3 / 1458
Web Feature Services (WFS) im SAP
vor einer Woche von msfox 1 / 1991

Unbeantwortete Forenbeiträge

Web Feature Services (WFS) im SAP
vor einer Woche von msfox 1 / 1991
Erweiterung in ME51N/ME52N:
vor 4 Wochen von ABAPlerv 1 / 4301
Erweiterung in ME51N/ME52N:
vor 4 Wochen von ABAPlerv 1 / 4192