调用子屏幕报错咨询:ZZSRO_TEST14A程序运行异常问题
解决ABAP子屏幕调用报错「CALL SUBSCREEN : ZZSRO_TEST14A 0003 NO DYNPRO NAME」
错误原因
- 核心问题出在屏幕3的PBO流逻辑代码中:
sy–repid使用了全角破折号,而非ABAP语法规定的半角减号。ABAP系统无法识别这个错误的系统变量名,导致调用子屏幕时无法正确定位当前程序,进而找不到指定的子屏幕0004。 - 次要验证点:若子屏幕0004未归属当前程序ZZSRO_TEST14A,或子屏幕属性未设置为「Subscreen」,也会触发同类报错,但结合你的示例代码,核心原因是符号错误。
解决方法
- 修正系统变量的符号:将屏幕3的PBO流逻辑中错误的
sy–repid替换为标准ABAP系统变量sy-repid(半角减号),修改后的完整流逻辑如下:
PROCESS BEFORE OUTPUT. CALL SUBSCREEN mysubscreen INCLUDING sy-repid '0004'. PROCESS AFTER INPUT. CALL SUBSCREEN mysubscreen.
- 验证子屏幕配置:确认子屏幕0004的归属程序为ZZSRO_TEST14A,且在屏幕属性中勾选了「Subscreen」选项(而非普通屏幕)。
内容的提问来源于stack exchange,提问作者Sandra Rossi
相关产品推荐
相关产品推荐

