Code: Alles auswählen.
DATA: wa TYPE DD02L,
v_subrc TYPE sysubrc.
TABLES dd02l.
*PARAMETERS: p_tab type dd02l-tabname.
*test select options
select-options: s_tab for dd02l-tabname no intervals.
AT SELECTION-SCREEN ON s_tab.
IF s_tab IS INITIAL.
MESSAGE 'Geben Sie den Namen der Datenbanktabelle ein!' type 'E'.
ENDIF.
START-OF-SELECTION.
select single * from dd02l into wa where tabname = s_tab.
IF SY-SUBRC <> 0.
WRITE:/ 'Bitte geben sie einen gültigen Datenbanktabellennamen ein '.
else.
* Abfrage mit popup " sind sie sicher?
* Löschvorgang ?
** Tabelle löschen
CALL FUNCTION 'DD_DB_OPERATION'
EXPORTING
fct = 'DEL'
forced = ' '
id_name = ' '
obj_name = 'S_TAB'
obj_type = 'TABL'
prid = space
IMPORTING
subrc = v_subrc
EXCEPTIONS
unexpected_error = 1
unsupported_function = 2
unsupported_obj_type = 3
unsupported_status = 4
object_locked = 5
op_failure = 6
OTHERS = 7.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
* Tabelle neu anlegen
CALL FUNCTION 'DD_DB_OPERATION'
EXPORTING
fct = 'CRE'
forced = ' '
id_name = ' '
obj_name = 'S_TAB'
obj_type = 'TABL'
prid = space
IMPORTING
subrc = v_subrc
EXCEPTIONS
unexpected_error = 1
unsupported_function = 2
unsupported_obj_type = 3
unsupported_status = 4
object_locked = 5
op_failure = 6
OTHERS = 7.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDIF.
A6272 hat geschrieben: ↑20.11.2020 09:28Hallo,
Mehrfachselection und "select single" passt doch nicht zusammen. Wenn es an sowas schon scheitert, lass bitte davon die Finger!
Der Report ist verdammt heikel, nimm doch dafür die SAP Standardtransaktionen.
Oder Codiere die Tabellen zumindest hart im Coding, damit nicht aus versehen was schief geht.
Ich sehe woran es überall hakt, aber der Report ist so kritisch, dass ich dir garantiert nicht helfe das zum laufen zu bringen.
Code: Alles auswählen.
select single * from dd02l into wa where tabname = s_tab.
Da hast du natürlich recht