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.
PARAMETERSp_source LIKE rsvar-report DEFAULT ''.
PARAMETERSp_target LIKE rsvar-report DEFAULT ''.
SELECTION-SCREEN END OF BLOCK sel_blk.

"Daten Deklaration um die Variante automatisch zu ziehen.
DATAgf_variante TYPE  rsvar-variant VALUE 'MREGOTZ'.

DATAgf_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(pnWITH
     
'Die Variante' gf_variante 'ist nicht vorhanden'.
  
ELSE.
    
MESSAGE i016(pnWITH
     
'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(pnWITH
     
'Fehler beim übertragen der Varianten'.
  
ELSE.
    
MESSAGE i016(pnWITH
     
'Varianten wurden erfolgreich übertragen'.
  
ENDIF.
ENDFORM.                    " WRITE


        search this website

Regotz Michel