CALL SUBSCREEN : <program> <dynpro> NO DYNPRO NAME​

1.1k Views Asked by At

I have a minimal example below (executable program + 2 dynpro screens), and I get the error while running it (nothing displayed); pressing Enter then leaves the program completely:

CALL SUBSCREEN : ZZSRO_TEST14A 0003 NO DYNPRO NAME​

CALL SUBSCREEN :   NO DYNPRO NAME​

Program ZZSRO_TEST14A:

  • Title: "Display Flight Data"
  • Code:
    REPORT zzsro_test14a.
    CALL SCREEN 3.
    

Dynpro 3:

  • Type: general screen
  • Layout: only a sub-screen element MYSUBSCREEN
  • Flow logic:
    PROCESS BEFORE OUTPUT.
      CALL SUBSCREEN mysubscreen INCLUDING sy–repid '0004'.
    PROCESS AFTER INPUT.
      CALL SUBSCREEN mysubscreen.
    

Dynpro 4:

  • Type: sub-screen
  • Layout: only one text element to display test
  • Flow logic:
    PROCESS BEFORE OUTPUT.
    PROCESS AFTER INPUT.
    
1

There are 1 best solutions below

0
Sandra Rossi On

This message

CALL SUBSCREEN : <program> <dynpro> NO DYNPRO NAME​

means that in the flow logic of dynpro <program> <dynpro> (so ZZSRO_TEST14A 0003 in your case), there is a CALL SUBSCREEN statement, i.e. this one

CALL SUBSCREEN mysubscreen INCLUDING sy–repid '0004'.

and the program name indicated after INCLUDING (dynpro being always referred by program name and dynpro number) is empty. NB: the program and dynpro can be indicated either statically via quotes, as done for '0004', or as constant/variable, without quotes, as done for sy–repid.

sy-repid is a valid system constant containing the program name (i.e. ZZSRO_TEST14A in your case)

Surprisingly, all seems good in your code.

In fact, the error is a simple typo error because of the hyphen/dash character in sy–repid which is the EN DASH U+2013 character. It makes it an invalid constant/variable whose replacement value is an empty string.

Solution: use a normal hyphen/minus character U+002D i.e. sy-repid all will run fine:

enter image description here

NB: in case of other situations with invalid program/dynpro, instead of message "NO DYNPRO NAME", there will be these runtime errors (short dumps in transaction code ST22).

  • If the program name doesn't exist, there will be the runtime error LOAD_PROGRAM_NOT_FOUND.
  • If the program name exists but the dynpro number doesn't exist in that program, there will be the runtime error DYNPRO_NOT_FOUND.
  • If the dynpro exists but is not of type sub-screen, there will be the runtime error DYNP_WRONG_SCREEN_TYPE.