Tabelleneinträge autom. in Transport aufnehmen
Mit diesem kleinen Demo-Programm zeigen wir Ihnen, wie Sie einfach Tabelleneinträge in einen Transportauftrag aufnehmen können. In dem Programm werden Länder selektiert und mit Auswahlkästchen angezeigt. Nach Markierung einzelner Einträge können diese mit “Sichern” in einen zu wählenden Auftrag aufgenommen werden.
REPORT zz_r3tr_tabu LINE-SIZE 255.
*** Variablen
DATA:
lt_e071 LIKE e071 OCCURS 0 WITH HEADER LINE,
lt_e071k LIKE e071k OCCURS 0 WITH HEADER LINE,
lt_data LIKE t005 OCCURS 0 WITH HEADER LINE,
lv_checkbox TYPE c,
tr_order LIKE e071-trkorr,
tr_task LIKE e071-trkorr.
*** Selektionsbild
SELECT-OPTIONS:
s_land1 FOR lt_data-land1.
START-OF-SELECTION.
*** Liststatus mit Funktionscode "SICH"
SET PF-STATUS '1'.
*** Selektion der Länder
SELECT * FROM t005 INTO TABLE lt_data
WHERE land1 IN s_land1.
*** Ausgabe
LOOP AT lt_data.
WRITE /1 lv_checkbox AS CHECKBOX INPUT ON.
WRITE lt_data-land1.
ENDLOOP.
END-OF-SELECTION.
AT USER-COMMAND.
CASE sy-ucomm.
WHEN 'SICH'.
*** Sichern: Aufnahme der markierten Einträge
REFRESH: lt_e071, lt_e071k.
*** Auswahl eines Auftrags
CALL FUNCTION 'TRINT_ORDER_CHOICE'
EXPORTING
wi_order_type = 'W'
wi_task_type = 'Q'
wi_category = 'CUST'
IMPORTING
we_order = tr_order
we_task = tr_task
TABLES
wt_e071 = lt_e071
wt_e071k = lt_e071k
EXCEPTIONS
OTHERS = 6.
CHECK sy-subrc = 0.
DO.
*** Markierte Länder ermitteln
READ LINE sy-index FIELD VALUE
lv_checkbox lt_data-land1.
IF sy-subrc > 0.
*** Ende der Liste
EXIT.
ELSEIF lv_checkbox <> space.
*** E071 füllen
lt_e071-trkorr = space.
lt_e071-as4pos = 0.
lt_e071-pgmid = 'R3TR'.
lt_e071-object = 'TABU'.
lt_e071-obj_name = 'T005'.
lt_e071-objfunc = 'K'.
COLLECT lt_e071.
*** E071K - Schlüsseleinträge füllen
lt_e071k-trkorr = space.
lt_e071k-pgmid = 'R3TR'.
lt_e071k-object = 'TABU'.
lt_e071k-objname = 'T005'.
lt_e071k-as4pos = 0.
lt_e071k-mastertype = 'TABU'.
lt_e071k-mastername = 'T005'.
lt_e071k-viewname = space.
lt_e071k-objfunc = space.
*** Schlüssel basteln
CONCATENATE sy-mandt lt_data-land1
INTO lt_e071k-tabkey.
COLLECT lt_e071k.
ENDIF.
ENDDO.
IF NOT lt_e071k[] IS INITIAL.
*** Aufnahme der Einträge in Transportauftrag
CALL FUNCTION 'TR_APPEND_TO_COMM_OBJS_KEYS'
EXPORTING
wi_trkorr = tr_task
TABLES
wt_e071 = lt_e071
wt_e071k = lt_e071k
EXCEPTIONS
OTHERS = 68.
IF sy-subrc = 0.
MESSAGE s000(vz)
with 'Einträge aufgenommen in Transport' tr_order.
ENDIF.
ENDIF.
ENDCASE.
Letzte Artikel von Enno Wulff (Alle anzeigen)
- Interview mit Björn Schulz (Software-Heroes.com) - 3. September 2024
- Daten aus ALV ermitteln - 3. September 2024
- So lange es den SAPGUI noch gibt… - 27. Juni 2024