Reputation: 13656
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
:
REPORT zzsro_test14a.
CALL SCREEN 3.
Dynpro 3
:
MYSUBSCREEN
PROCESS BEFORE OUTPUT.
CALL SUBSCREEN mysubscreen INCLUDING sy–repid '0004'.
PROCESS AFTER INPUT.
CALL SUBSCREEN mysubscreen.
Dynpro 4
:
test
PROCESS BEFORE OUTPUT.
PROCESS AFTER INPUT.
Upvotes: 0
Views: 2490
Reputation: 13656
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:
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
.Upvotes: 0