Sichern der Selektionsvariante

www.4AP.de - alles über ABAP  -  Sichern der Selektionsvariante

Beispielcoding: Sichern der Selektionsvariante während des Programmablaufes (Sichern der vorgenommenen Einstellungen) (kopieren erlaubt aber auf eigene Gefahr :-))



Selektionstabelle als Variante sichern:
Also nachdem z.B. in einem Report für Massenupdates eine umfangreiche Selektionseingrenzung vorgenommen wurde soll vor oder nach dem Verarbeiten diese Selektion als Variante abgelegt werden um sie später wieder herstellen zu können.
 
*
* Coded by Thorsten Neubüser - www.4ap.de
*

*Variante
DATA:
seltab TYPE TABLE OF rsparams WITH HEADER LINE,
g_repid LIKE sy-repid.
d_text TYPE TABLE OF varit WITH HEADER LINE,
d_varid LIKE varid,
d_variant LIKE rsvar-variant. " 14 Char


g_repid = sy-repid.

* Selektionstabelle einlesen
REFRESH seltab.
CLEAR seltab.
* Selektionen lesen und merken
CALL FUNCTION 'RS_REFRESH_FROM_SELECTOPTIONS'
EXPORTING
curr_report = g_repid
TABLES
selection_table = seltab.


PERFORM selektionstabelle_sichern.



*---------------------------------------------------------------------*
* Form selektionstabelle_sichern
*---------------------------------------------------------------------*

FORM selektionstabelle_sichern.

* Variantennamen bilden
CONCATENATE 'ZU'
sy-datum+2(6) sy-uzeit INTO d_variant. " max 14

* Variantentabelle füllen
MOVE:
g_repid TO d_varid-report,
d_variant TO d_varid-variant,
'F' TO d_varid-transport,
'A' TO d_varid-environmnt,
'X' TO d_varid-protected,
'1' TO d_varid-version,
sy-uname TO d_varid-ename,
sy-datum TO d_varid-edat,
sy-uzeit TO d_varid-etime,
sy-langu TO d_varid-mlangu.
* '20' to d_varid-xflag1,
* '00' to d_varid-xflag2.

*Beschreibungstext füllen
MOVE: sy-langu TO d_text-langu,
g_repid TO d_text-report,
d_variant TO d_text-variant.
CONCATENATE sy-uname sy-datum sy-uzeit
INTO d_text-vtext SEPARATED BY space.
APPEND d_text.

* Variante anlegen.
CALL FUNCTION 'RS_CREATE_VARIANT'
EXPORTING
curr_report = g_repid
curr_variant = d_variant
vari_desc = d_varid
TABLES
vari_contents = seltab
vari_text = d_text
* VSCREENS =
EXCEPTIONS
illegal_report_or_variant = 1
illegal_variantname = 2
not_authorized = 3
not_executed = 4
report_not_existent = 5
report_not_supplied = 6
variant_exists = 7
variant_locked = 8
OTHERS = 9.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM. " selektionstabelle_sichern