在ABAP程序中,经常出现在Program A中调用Program B的需求,通常来讲,这种需求可以通过Submit或Call transaction的方式实现。
1. Submit
Submit也即直接提交一个程序,语法如下:
SUBMIT {rep|(name)} [selscreen_options]
… … … … … … … … [list_options]
… … … … … … … … [job_options]
… … … … … … … … [AND RETURN].
可以通过AND RETURN关键字控制,执行完被调用的程序后,是否返回主程序。使用SUBMIT时的一个难点在于参数的填充,也即如何填充被调用程序的selection screen,也即参数selscreen_options。
在编程过程中,如果遇到类似的需求,可以用 宏 DEFINE 快速实现,具体可参考下面的模板。
DATA:
lt_spar TYPE STANDARD TABLE OF rsparams,
ls_spar LIKE LINE OF lt_spar.
" fill screen parameters
DEFINE mac_set_parameter.
CLEAR ls_spar.
ls_spar-sign = 'I'.
ls_spar-option = 'EQ'.
ls_spar-selname = &1.
ls_spar-kind = 'P'.
ls_spar-low = &2.
APPEND ls_spar TO lt_spar.
END-OF-DEFINITION.
" fill selection options
DEFIN

文章介绍了在ABAP中调用其他程序或事务代码的两种主要方法:Submit和CallTransaction。Submit允许直接提交一个程序并控制返回行为,难点在于参数填充,可以使用宏DEFINE简化。CallTransaction用于调用事务代码,涉及BDC字段填充,同样可以通过宏DEFINE优化。文章还提供了一些填充BDC参数的技巧和使用ABAP4_CALL_TRANSACTION函数在新窗口打开交易的示例。
最低0.47元/天 解锁文章
1503

被折叠的 条评论
为什么被折叠?



