Varianten von einem Programm in ein anders Programm kopiern
*&---------------------------------------------------------------------*
*& Report Z_PFAD_DIRECORY
*&
*&---------------------------------------------------------------------*
*& REGOTZ MICHEL
*& Kopieren von Varianten von einem Programm in ein anderes
*&---------------------------------------------------------------------*
*
* Man kann auch direkt den FuBa 'RS_COPY_SELECTION_SETS' verwenden
* Ist sehr praktisch beim „Reparieren“ von Varianten vom selben Report
* bei Änderungen auf dem Selektionsbildschirm:
*
*&---------------------------------------------------------------------*
REPORT z_variante_kopieren.
*======================================================================*
* SELECTION-SCREEN
*======================================================================*
SELECTION-SCREEN BEGIN OF BLOCK sel_blk WITH FRAME TITLE sel_blk.
PARAMETERS: p_source LIKE rsvar-report DEFAULT ''.
PARAMETERS: p_target LIKE rsvar-report DEFAULT ''.
SELECTION-SCREEN END OF BLOCK sel_blk.
"Daten Deklaration um die Variante automatisch zu ziehen.
DATA: gf_variante TYPE rsvar-variant VALUE 'MREGOTZ'.
DATA: gf_runtime TYPE n LENGTH 16,
gf_runtime1 TYPE p LENGTH 16 DECIMALS 6,
gf_runtime_d1 TYPE p LENGTH 16 DECIMALS 6.
INITIALIZATION.
"Zeitstoppen
GET RUN TIME FIELD gf_runtime.
PERFORM init.
*======================================================================*
* Verarbeitung *
*======================================================================*
START-OF-SELECTION.
"Zeitstoppen
GET RUN TIME FIELD gf_runtime.
PERFORM write.
"Zeitstoppen
GET RUN TIME FIELD gf_runtime.
*=======================================================================
* Ende Verarbeitung
*=======================================================================
END-OF-SELECTION.
"Zeitstoppen
GET RUN TIME FIELD gf_runtime.
gf_runtime1 = gf_runtime.
MOVE gf_runtime1 TO gf_runtime_d1.
"Ausgabe in Sekunden
gf_runtime_d1 = gf_runtime_d1 / 1000000.
"Ausgabe
WRITE: 'Mikrosekunden', 30 gf_runtime1,
/, 'Sekunden', 30 gf_runtime_d1.
*&---------------------------------------------------------------------*
*& Form INIT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM init .
* Die Variante REGOTZ wird nun automatisch gezogen
CALL FUNCTION 'RS_SUPPORT_SELECTIONS'
EXPORTING
report = sy-repid
variant = gf_variante
EXCEPTIONS
variant_not_existent = 1
variant_obsolete = 2
OTHERS = 3.
IF sy-subrc <> 0.
* Variante & ist nicht vorhanden
MESSAGE i016(pn) WITH
'Die Variante' gf_variante 'ist nicht vorhanden'.
ELSE.
MESSAGE i016(pn) WITH
'Die Variante' gf_variante 'wird automatisch gezogen'.
ENDIF.
sel_blk = 'Selection'.
ENDFORM. " INIT
*&---------------------------------------------------------------------*
*& Form WRITE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM write .
CALL FUNCTION 'RS_COPY_SELECTION_SETS'
EXPORTING
source_report = p_source
target_report = p_target
* DEVC =
* CHANGE_ENAME = 'X'
EXCEPTIONS
variant_locked = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE i016(pn) WITH
'Fehler beim übertragen der Varianten'.
ELSE.
MESSAGE i016(pn) WITH
'Varianten wurden erfolgreich übertragen'.
ENDIF.
ENDFORM. " WRITE