Tips and Tricks for the ABAP® Programming Language

Y9030017: Testing/Debugging – See which subroutine was processed

A random generator decides what subroutine will be processed next in this example. For test purposes one can now see which subroutine is actually processed.

ABAP-Source-Code

You can copy and paste the source code directly into the ABAP-Workbench.

REPORT Y9030017 LINE-SIZE 250.   "Release 3.1G, 4.5A
************************************************************************
* Copyright (c) 1999 by CT-Team, 33415 Verl
*
* you can use or modify this report for your own work as long
* as you don't try to sell or republish it.
* in no event will the author be liable for indirect, special,
* Incidental, or consequental damages (if any) arising out of
* the use of this report.
*
************************************************************************
*//////////////////////////////////////////////////////////////////////*
 MOVE: 'Additional infos during server-runtime at the SAPGUI'
        TO SY-TITLE.
*//////////////////////////////////////////////////////////////////////*
***************         Variablendeklaration      **********************
 DATA: ROCKS TYPE I.
 DATA: R_TIME1 TYPE I.
 DATA: N_TIME1(10) TYPE N.
 DATA: WORK1(150) TYPE C.
 DATA: LOTTO1(1) TYPE N.
*//////////////////////////////////////////////////////////////////////*
*************            Programmsteuerung           *******************
*//////////////////////////////////////////////////////////////////////*
*
 GET RUN TIME FIELD R_TIME1.
 DEFINE FILL1.
   WRITE &1 TO WORK1+100.
   IF WORK1 CP '*# '. ENDIF.
   MOVE '/' TO WORK1+SY-FDPOS(1).
   CONDENSE WORK1.
 END-OF-DEFINITION.
*
 DEFINE DISPLAY1.
     ROCKS = ROCKS + 5.
     CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
          EXPORTING
          PERCENTAGE = ROCKS
          TEXT       = WORK1.
    WRITE: /1 WORK1.
    ULINE. SKIP.
    CLEAR WORK1.
 END-OF-DEFINITION.
*.......................................................................
*#######################################################################
 GET RUN TIME FIELD R_TIME1.
 WRITE: /1 'Information for programming ...' COLOR 6.
 ULINE.
*...............................................................
  DO 9 TIMES.
     MOVE R_TIME1 TO N_TIME1.
     MOVE N_TIME1+8(1) TO LOTTO1.
     IF LOTTO1 GT 0.
        PERFORM LOTTO1 OF UPRO-1 UPRO-2 UPRO-3 UPRO-4 UPRO-5 UPRO-1
                          UPRO-2 UPRO-3 UPRO-4.
     ELSE.
        PERFORM UPRO-5.
     ENDIF.
  ENDDO.
*
*//////////////////////////////////////////////////////////////////////*
*************              Unterprogramme            *******************
*//////////////////////////////////////////////////////////////////////*
************************************************************************
*                          upro-1
************************************************************************
 FORM UPRO-1.
*
 WRITE: /5 'upro-1 is here' COLOR 5.
*.......................................................................
*
*.......................................................................
  WAIT UP TO 1 SECONDS.                                 "time of delay
  GET RUN TIME FIELD R_TIME1.
*
  FILL1: 'upro-1', SY-UZEIT, R_TIME1.
  DISPLAY1.
*
 ENDFORM.
************************************************************************
*                          upro-2
************************************************************************
 FORM UPRO-2.
*
 WRITE: /5 'upro-2 is here' COLOR 5.
*.......................................................................
*
  WAIT UP TO 2 SECONDS.                                 "time of delay
  GET RUN TIME FIELD R_TIME1.
*
  FILL1: 'upro-2', SY-UZEIT, R_TIME1, SY-REPID.
  DISPLAY1.
*
 ENDFORM.
************************************************************************
*                          upro-3
************************************************************************
 FORM UPRO-3.
*
 WRITE: /5 'upro-3 is here' COLOR 5.
*.......................................................................
*
  WAIT UP TO 3 SECONDS.                                 "time of delay
  GET RUN TIME FIELD R_TIME1.
*
  FILL1: 'upro-3', SY-UZEIT, R_TIME1, SY-UNAME.
  DISPLAY1.
*
 ENDFORM.
************************************************************************
*                          upro-4
************************************************************************
 FORM UPRO-4.
*
 WRITE: /5 'upro-4 is here' COLOR 5.
*.......................................................................
*
  WAIT UP TO 4 SECONDS.                                 "time of delay
  GET RUN TIME FIELD R_TIME1.
*
  FILL1: 'upro-4', SY-UZEIT, R_TIME1.
  DISPLAY1.
*
 ENDFORM.
************************************************************************
*                          upro-5
************************************************************************
 FORM UPRO-5.
*
 WRITE: /5 'upro-5 is here' COLOR 5.
*.......................................................................
*
  WAIT UP TO 5 SECONDS.                                 "time of delay
  GET RUN TIME FIELD R_TIME1.
*
  FILL1: 'upro-5', SY-UZEIT, R_TIME1.
  DISPLAY1.
*
 ENDFORM.
************************************************************************
************************************************************************
******************* Programmende ***************************************