Code: Alles auswählen.
"Wir schauen ob der Kunde in einer Hierachie vorhanden ist
SELECT *
FROM KNVH
INTO CORRESPONDING FIELDS OF TABLE lt_hierachie_1
WHERE HKUNNR in KUNDEN
AND DATBI >= sy-datum.
APPEND LINES OF lt_hierachie_1 to lt_kunden.
IF sy-subrc = 0.
"Wenn ja überpürfen wir ob der Kunde eine noch weiter "tieferen" Hierachie hat
"2. Stufe.
LOOP AT lt_hierachie_1 into ls_hierachie.
SELECT *
FROM KNVH
INTO CORRESPONDING FIELDS OF TABLE lt_hierachie_2
WHERE HKUNNR = ls_hierachie-KUNNR
AND DATBI >= sy-datum.
IF sy-subrc = 0.
APPEND LINES OF lt_hierachie_2 to lt_kunden.
ENDIF.
ENDLOOP.
"3. Stufe.
LOOP AT lt_hierachie_2 into ls_hierachie.
SELECT *
FROM KNVH
INTO CORRESPONDING FIELDS OF TABLE lt_hierachie_3
WHERE HKUNNR = ls_hierachie-KUNNR
AND DATBI >= sy-datum.
IF sy-subrc = 0.
APPEND LINES OF lt_hierachie_3 to lt_kunden.
ENDIF.
ENDLOOP.
"4. Stufe.
LOOP AT lt_hierachie_3 into ls_hierachie.
SELECT *
FROM KNVH
INTO CORRESPONDING FIELDS OF TABLE lt_hierachie_4
WHERE HKUNNR = ls_hierachie-KUNNR
AND DATBI >= sy-datum.
IF sy-subrc = 0.
APPEND LINES OF lt_hierachie_4 to lt_kunden.
ENDIF.
ENDLOOP.
"5. Stufe.
LOOP AT lt_hierachie_4 into ls_hierachie.
SELECT *
FROM KNVH
INTO CORRESPONDING FIELDS OF TABLE lt_hierachie_5
WHERE HKUNNR = ls_hierachie-KUNNR
AND DATBI >= sy-datum.
IF sy-subrc = 0.
APPEND LINES OF lt_hierachie_5 to lt_kunden.
ENDIF.
ENDLOOP.
Else.
SELECT *
FROM KNA1
into CORRESPONDING FIELDS OF TABLE lt_kunden
WHERE KUNNR in kunden.
IF sy-subrc <> 0.
MESSAGE 'Kein Kunde gefunden' TYPE 'E'.
ENDIF.
ENDIF.