SUBMIT指定用户名错误
1、SUBMIT说明
在ABAP中,SUBMIT关键字用于运行另一个ABAP程序。通过SUBMIT关键字,可以在当前程序内部调用其他程序,而无需关闭当前程序。
SUBMIT语句的一般语法如下:
"--------------------@斌将军-------------------- SUBMIT <program> [VIA SELECTION-SCREEN|USING SELECTION-SET <selection_set>]
[VIA JOB LV_JOBNAMENUMBERLV_JOBCOUNT]
[AND RETURN] [EXPORTING LIST TO MEMORY]
[WITH p1 = <value1> ... pn = <value_n>]
[WITH p1 = <value1> ... WITH pn = <value_n>]."--------------------@斌将军--------------------
2、指定账号
需求说明:在后台JOB中使用SUBMIT调用程序时,程序中需要指定某个账号来执行某些逻辑,所以使用USE LV_UNAME,用于指定运行目标程序的用户名。不管登录账号是哪个,都是使用账号BINGENERAL来执行目标程序YTESTJOB。
源程序代码如下:
"--------------------@斌将军-------------------- DATA: lv_number TYPE tbtcjob-jobcount,
lv_nameTYPE tbtcjob-jobname,
lv_unameTYPEsyst_uname,
lv_print_parametersTYPEpri_params.CLEAR:lv_name ,lv_number.
lv_name=|后台作业测试|.CALL FUNCTION 'JOB_OPEN' EXPORTINGjobname=lv_nameIMPORTINGjobcount=lv_numberEXCEPTIONScant_create_job= 1invalid_job_data= 2jobname_missing= 3OTHERS= 4.IF sy-subrc = 0.
lv_uname= 'BINGENERAL'."调用ytestjob时,用账号:BINGENERAL执行程序 SUBMIT ytestjob TO SAP-SPOOL
SPOOLPARAMETERSlv_print_parameters
WITHOUT SPOOL DYNPRO
VIA JOB lv_nameNUMBERlv_number
USER lv_unameANDRETURN.IF sy-subrc = 0.CALL FUNCTION 'JOB_CLOSE' EXPORTINGjobcount=lv_number
jobname=lv_name
strtimmed= 'X' EXCEPTIONScant_start_immediate= 1invalid_startdate= 2jobname_missing= 3job_close_failed= 4job_nosteps= 5job_notex= 6lock_failed= 7OTHERS= 8.IF sy-subrc <> 0.ENDIF.ENDIF.ENDIF."--------------------@斌将军--------------------
在YTESTJOB中校验用户是否有权限,目标程序代码如下:
"--------------------@斌将军-------------------- REPORTytestjob.DATA(lv_message) = '执行本程序的账号:' && sy-uname.WRITE: lv_message.AUTHORITY-CHECK OBJECT 'M_MRES_WWA' ID 'ACTVT'DUMMYID 'WERKS' FIELD 'P010'.IF sy-subrc <> 0.WRITE: / '权限校验失败'.ELSE.WRITE: / '权限校验成功'.ENDIF."--------------------@斌将军--------------------
3、存在问题
测试时,使用SAP_ALL权限的账号,没有问题,后台作业创建并执行成功
运行结果
但是此方法对于非SAP_ALL权限的账号TEST1103,执行时就出现了问题
作业没有正常执行
检查后发现原来是权限问题,使用SU53发现缺少权限
官方解释
而且指定用户名时,要用大写,否则仍然检查失败
所以大家在使用此关键字指定用户时,需要注意以上问题。
而对于想通过指定大权限账号来跳过权限校验这个方案,也要考虑给登录用户分配S_BTCH_NAM权限的合理性。
定期更文,
欢迎关注