Skip to Content
author's profile photo Former Member
Former Member

Ragarding modulepool

What is CALL SCREEN and SET SCREEN? Difference between them?

Add a comment
10|10000 characters needed characters exceeded

Assigned Tags

Related questions

4 Answers

  • Posted on Oct 19, 2006 at 07:22 AM

    HI,

    call screen immeditialy calls the screen mentioned. while set screen sets the value in the variable 'NEXT SCREEN' and screen will not be called untill you use

    'LEAVE SCREEN'

    REgards,

    Add a comment
    10|10000 characters needed characters exceeded

  • author's profile photo Former Member
    Former Member
    Posted on Oct 19, 2006 at 07:54 AM

    Hi Balu,

    Every screen has a static next screen attribute that specifies the next screen to be called as long as it is not overwritten dynamically. In the processing logic, that is, a dialog module called by the screen, you can use the SET SCREEN statement to overwrite the statically-defined next screen dynamically:

    SET SCREEN <next screen>.

    This statement defines a new next screen for the current program run. You can also specify the number of the next screen as a field containing a screen number. The statically-defined next screen is ignored. However, this only overrides the static screen sequence temporarily. The static value for the next screen, as defined in the Screen Painter, is always retained.

    CALL SCREEN <dynnr>.

    statement to call a screen and its subsequent sequence within that program. The flow logic of each screen calls dialog modules in the program that called the screen.

    When the screen sequence ends, control returns to the statement after the original CALL SCREEN statement.

    Add a comment
    10|10000 characters needed characters exceeded

  • author's profile photo Former Member
    Former Member
    Posted on Oct 19, 2006 at 08:01 AM

    <b>CALL SCREEN:</b>

    You can start a screen sequence from an ABAP program using the

    CALL SCREEN <dynnr>.

    statement. At the end of the screen sequence (next screen 0), the program continues processing directly after the CALL SCREEN statement.

    If you use the CALL SCREEN statement within a screen sequence that is already running, the new screen sequence is inserted into the current sequence.

    This works as a kind of stack, since the CALL SCREEN statement interrupts the current screen sequence and starts a new one. When you start a screen sequence with a transaction code, you can stack up to 50 other screen sequences on top of it. However, you should not exceed 40 sequences, since help and error dialogs also use internally-implemented screen sequences.

    Since during an R/3 terminal session you are always in a screen sequence of some kind, each CALL SCREEN statement leads to one screen sequence being inserted into another. For example, if you use the statement in an executable program, the screen sequence is normally inserted into the normal screen sequence for executable programs, that is, selection screen -> list.

    <b>SET SCREEN:</b>

    Every screen has a static next screen that specifies the next screen to be called after the current one, as long as it is not overwritten dynamically. In the processing logic, that is, a dialog module called by the screen, you can use the SET SCREENstatement to overwrite the statically-defined next screen dynamically:

    SET SCREEN Folgedynpro.

    This statement defines a new next screen for the current program run. You can also specify the number of the next screen as a field containing a screen number. The statically-defined next screen is ignored. However, this only overrides the static screen sequence temporarily. The static value for the next screen, as defined in the Screen Painter, is always retained.

    If you specify the value 0 for next screen, the current screen becomes the last in the screen chain. After the screen has been processed, control returns to the point from which the screen sequence was called. If the screen sequence was embedded, the system returns to the previous screen sequence containing the relevant CALL SCREEN statement. If the screen sequence was not embedded, the application program terminates.

    The SET SCREEN does not interrupt the current screen processing.

    I hope it helps.

    Best Regards,

    Vibha

    *Please mark all the helpful answers

    Add a comment
    10|10000 characters needed characters exceeded

  • Posted on Oct 19, 2006 at 08:02 AM

    Hi balu,

    CALL SCREEN returns to the mainscreen,but setscreen doesn't.Also u have to use 'LEAVE SCREEN' with it setscreen..it won't return to main screen.

    Regards,

    nagaraj

    Message was edited by: nagaraj kumar nishtala

    Add a comment
    10|10000 characters needed characters exceeded

Before answering

You should only submit an answer when you are proposing a solution to the poster's problem. If you want the poster to clarify the question or provide more information, please leave a comment instead, requesting additional details. When answering, please include specifics, such as step-by-step instructions, context for the solution, and links to useful resources. Also, please make sure that you answer complies with our Rules of Engagement.
You must be Logged in to submit an answer.

Up to 10 attachments (including images) can be used with a maximum of 1.0 MB each and 10.5 MB total.