Code: Alles auswählen.
INsert INTO ZTE_TABLE_TEST3 values <ZTE_TABELLE> .
<ZTE_TABELLE>-nummer = '0000000012'.
<ZTE_TABELLE>-vorname ='HAns'.
<ZTE_TABELLE>-nachname = 'Meier'.
<ZTE_TABELLE>-postleitzahl = '79188'.
<ZTE_TABELLE>-nummer = '0000000013'.
<ZTE_TABELLE>-vorname ='Amore'.
<ZTE_TABELLE>-nachname = 'Mio'.
<ZTE_TABELLE>-postleitzahl = '79393'.
<ZTE_TABELLE>-nummer = '0000000014'.
<ZTE_TABELLE>-vorname ='Peterchens'.
<ZTE_TABELLE>-nachname = 'Mondfahrt'.
<ZTE_TABELLE>-postleitzahl = '79379'.
INSERT ZTE_TABLE_TEST3 From <ZTE_TABELLE>.
INSERT INTO ZTE_TABLE_TEST4 values <ZTE_TABELLE> .
<ZTE_TABELLE>-plz = <ZTE_TABELLE>-postleitzahl.
<ZTE_TABELLE>-ort = 'Schaffhausen'.
<ZTE_TABELLE>-plz = <ZTE_TABELLE>-postleitzahl.
<ZTE_TABELLE>-ort = 'Müllheim'.
Code: Alles auswählen.
BEGIN OF ty_ZTE,
nummer TYPE ZTE_TABLE_TEST3-nummer,
vorname TYPE ZTE_TABLE_TEST3-vorname,
nachname TYPE ZTE_TABLE_TEST3-nachname,
postleitzahl TYPE ZTE_TABLE_TEST3-postleitzahl,
ort TYPE ZTE_TABLE_TEST4-ort,
plz TYPE ZTE_TABLE_TEST4-plz,
End of ty_ZTE.
Hallo patlau,patlau hat geschrieben:Kannst mir dann bitte sagen wie es richtig geht
Dazu solltest du die Aufgabe verständlich darstellen. Mir erschließt sich die Problemstellung nicht (oder sie ist so trivial und ich denke zu kompliziert).patlau hat geschrieben:Wäre schonmal super , wenn ein BEispiel-Coding aufgezeigt werden könnte.
Code: Alles auswählen.
* Typdefinition
TYPES: BEGIN OF ts_adr,
n_name TYPE c LENTH 40,
v_name TYPE c LENTH 40,
strasse TYPE c LENTH 40,
plz TYPE c LENTH 5,
END OF ts_adr.
TYPES: BEGIN OF ts_plz,
plz TYPE c LENTH 5,
ort TYPE c LENTH 5.
END OF ts_plz.
* Datendeklaration
DATA: gs_adr TYPE ts_adr,
gs_plz TYPE ts_adr.
* 1. Satz aufbauen
gs_adr-n_name = 'Mustermann'.
gs_adr-v_name = 'Max'.
gs_adr-strasse = 'Hierschweg 7'.
gs_adr-plz = '12345'.
* 1. abhängingen Satz aufbauen
gs_plz-plz = gs_adr-plz. "Schlüssel übernehmen.
gs_plz-ort = "Hierschhausen".
* Daten in DB übernehmen
* was ist gefordert: INSERT, UPDATE, MODIFY mehr dazu in der F1-Hilfe
IF sy-subrc <> 0.
* Fehlerhandling nicht vergessen.
ENDIF.
Code: Alles auswählen.
TYPES: BEGIN OF ty_ZTE3,
nummer TYPE ZTE_TABLE_TEST3-nummer,
vorname TYPE ZTE_TABLE_TEST3-vorname,
nachname TYPE ZTE_TABLE_TEST3-nachname,
postleitzahl TYPE ZTE_TABLE_TEST3-postleitzahl,
ort TYPE ZTE_TABLE_TEST4-ort,
plz TYPE ZTE_TABLE_TEST4-plz,
End of ty_ZTE3,
Begin of ty_ZTE4,
ort TYPE ZTE_TABLE_TEST4-ort,
plz TYPE ZTE_TABLE_TEST4-plz,
END OF ty_ZTE4.
DATA:
l_t_tab3 TYPE STANDARD TABLE OF ty_ZTE3,
l_t_tab4 TYPE STANDARD TABLE OF ty_ZTE4.
FIELD-SYMBOLS:
<ZTE_TABELLE3> TYPE ty_ZTE3,
<ZTE_TABELLE4> TYPE ty_ZTE4.
SELECT nummer vorname nachname postleitzahl FROM ZTE_TABLE_TEST3 INTO CORRESPONDING FIELDS OF TABLE l_t_tab3.
SELECT plz ort FROM ZTE_TABLE_TEST4 INTO CORRESPONDING FIELDS OF TABLE l_t_tab4.
LOOP AT l_t_tab3 ASSIGNING <ZTE_TABELLE3> .
ENDLOOP.
LOOP AT l_t_tab4 ASSIGNING <ZTE_TABELLE4> .
ENDLOOP.
<ZTE_TABELLE3>-nummer = '0000000015'.
<ZTE_TABELLE3>-vorname ='Thomas'.
<ZTE_TABELLE3>-nachname = 'Baier'.
<ZTE_TABELLE3>-postleitzahl = '79441'.
<ZTE_TABELLE4>-plz = <ZTE_TABELLE3>-postleitzahl.
<ZTE_TABELLE4>-ort = 'Karlsdorf'.
INSERT ZTE_TABLE_TEST3 FROM TABLE l_t_tab3 ACCEPTING DUPLICATE KEYS.
INSERT ZTE_TABLE_TEST4 FROM TABLE l_t_tab4 ACCEPTING DUPLICATE KEYS.
Sort l_t_tab3 by nummer .
Loop at l_t_tab3 ASSIGNING <ZTE_TABELLE3>.
SELECT SINGLE ort FROM ZTE_TABLE_TEST4
INTO <ZTE_TABELLE3>-ort
WHERE plz = <ZTE_TABELLE3>-postleitzahl.
WRITE: / <ZTE_TABELLE3>-nummer, <ZTE_TABELLE3>-vorname,<ZTE_TABELLE3>-nachname,<ZTE_TABELLE3>-postleitzahl,
<ZTE_TABELLE3>-ort, <ZTE_TABELLE3>-plz .
ENDLOOP.
Da hatte black_adept wohl recht. Du brauchst jemanden vor Ort der dir das beibringt.patlau hat geschrieben:Habe nun probiert dies direkt auf meinen COde anzuwenden.
Und wie funktioniert die Fehlerbehandlung nach dem insert?kein Fehlerhandling nach dem INSERT. Was wenn einer der beiden Inserts auf einen Fehler laufen.
Dies verstehe ich leider nicht:(5. Wieso arbeitest du mit ACCEPTING DUPPLICATE KEYS? Macht es nicht mehr Sinn zu prüfen was genau in die DB-Tabelle zu schreiben ist, anstatt unnötige Schreibvorgänge zu verursachen?
Dies habe ich doch anhand meiner TYPES anweisung so zugeordnet oder nicht?. Vertauschung der Felder kann an der Typisierung der ITAB liegen. Wenn du in eine DB-Tabelle schreibst, sollten die ITAB und die DB-Tabelle gleich aufgebaut sein, am besten gleichen Typs sein.
Code: Alles auswählen.
BEGIN OF ty_ZTE3,
nummer TYPE ZTE_TABLE_TEST3-nummer,
vorname TYPE ZTE_TABLE_TEST3-vorname,
nachname TYPE ZTE_TABLE_TEST3-nachname,
postleitzahl TYPE ZTE_TABLE_TEST3-postleitzahl,
ort TYPE ZTE_TABLE_TEST4-ort,
plz TYPE ZTE_TABLE_TEST4-plz,
End of ty_ZTE3,
Begin of ty_ZTE4,
ort TYPE ZTE_TABLE_TEST4-ort,
plz TYPE ZTE_TABLE_TEST4-plz,
END OF ty_ZTE4.
DATA:
l_t_tab3 TYPE STANDARD TABLE OF ty_ZTE3,
l_t_tab4 TYPE STANDARD TABLE OF ty_ZTE4,
Hallo patlau,patlau hat geschrieben:Ich studiere dual und bin momentan in der praxisphase. Mache dies als "Aufwärmübungen" für die AUfgabe die ich tatsächlich erst noch bekommen werde.