Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to make an abap program pause?

Tags:

abap

For testing purposes I need my ABAP program to wait for few seconds. How can this be done?

like image 641
Igal Serban Avatar asked Dec 28 '08 20:12

Igal Serban


People also ask

What is stop in ABAP?

These event blocks are exited using STOP and the runtime environment raises the event END-OF-SELECTION. Note. The statement STOP cannot be used in methods and raises a non-handleable exception when processing dynpros called using CALL SCREEN, during a LOAD-OF-PROGRAM event, and in programs not called using SUBMIT.

Is Java like ABAP?

ABAP is the programming language for SAP whereas Java is a programming language of SUN Microsystems. Seeing it from SAP perspective, the SAP R/3 system has a ABAP stack and a Java Stack.

Is ABAP based on Java?

ABAP is SAP's default programming language for both on-demand and on-premise business applications. Java is mostly used to run Java-based applications or services. ABAP is used to run ABAP based applications or services.


3 Answers

2 solutions:

1) Either use WAIT UP TO ... SECONDS.

WAIT UP TO 42 SECONDS.
WAIT UP TO '0.5' SECONDS. " decimals are possible since ABAP 7.40 SP 8
  • Does a roll-out and releases the work process to the listener
  • Does an implicit Database commit

Use it when CPU processes are at a premium and when the implicit commit will not corrupt your data or cause a short dump because of an open database cursor.

2) Or use the function module ENQUE_SLEEP:

    CALL FUNCTION 'ENQUE_SLEEP'
      EXPORTING
        seconds = 42.
  • Does not release the work process
  • Does not cause an implicit Database commit

Use it when you cannot afford an implicit commit, and the system can handle the work process(es) being tied up for the duration of the SLEEP command.

like image 114
Esti Avatar answered Jan 22 '23 13:01

Esti


ABAP WAIT UP TO SAP Documentation

WAIT statement has an implicit COMMIT which is something that should be avoided.

like image 34
tomdemuyt Avatar answered Jan 22 '23 14:01

tomdemuyt


Do you really need it to pause? You could trace through it by entering /h into the transaction field before you execute the program or by setting a breakpoint in the code.

like image 22
Techboy Avatar answered Jan 22 '23 14:01

Techboy