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
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.

This message
means that in the flow logic of dynpro
<program> <dynpro>(soZZSRO_TEST14A0003in your case), there is a CALL SUBSCREEN statement, i.e. this oneand 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 forsy–repid.sy-repidis a valid system constant containing the program name (i.e.ZZSRO_TEST14Ain 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–repidwhich 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-repidall will run fine: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).LOAD_PROGRAM_NOT_FOUND.DYNPRO_NOT_FOUND.DYNP_WRONG_SCREEN_TYPE.