1、SUBMIT说明

在ABAP中,SUBMIT关键字用于运行另一个ABAP程序。通过SUBMIT关键字,可以在当前程序内部调用其他程序,而无需关闭当前程序。

SUBMIT语句的一般语法如下:

"--------------------@斌将军--------------------
SUBMIT <program> [VIA SELECTION-SCREEN|USING SELECTION-SET <selection_set>]
 [VIA JOB LV_JOBNAME NUMBER LV_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_name TYPE tbtcjob-jobname,
lv_uname TYPE syst_uname,
lv_print_parameters TYPE pri_params. CLEAR:lv_name ,lv_number.
lv_name = |后台作业测试|. CALL FUNCTION 'JOB_OPEN'
EXPORTING
jobname = lv_name
IMPORTING
jobcount = lv_number
EXCEPTIONS
cant_create_job = 1
invalid_job_data = 2
jobname_missing = 3
OTHERS = 4.
IF sy-subrc = 0. lv_uname = 'BINGENERAL'."调用ytestjob时,用账号:BINGENERAL执行程序 SUBMIT ytestjob TO SAP-SPOOL
SPOOL PARAMETERS lv_print_parameters
WITHOUT SPOOL DYNPRO
VIA JOB lv_name NUMBER lv_number
USER lv_uname
AND RETURN.
IF sy-subrc = 0.
CALL FUNCTION 'JOB_CLOSE'
EXPORTING
jobcount = lv_number
jobname = lv_name
strtimmed = 'X'
EXCEPTIONS
cant_start_immediate = 1
invalid_startdate = 2
jobname_missing = 3
job_close_failed = 4
job_nosteps = 5
job_notex = 6
lock_failed = 7
OTHERS = 8.
IF sy-subrc <> 0. ENDIF.
ENDIF.
ENDIF.
"--------------------@斌将军--------------------

在YTESTJOB中校验用户是否有权限,目标程序代码如下:

"--------------------@斌将军--------------------
REPORT ytestjob. DATA(lv_message) = '执行本程序的账号:' && sy-uname. WRITE: lv_message. AUTHORITY-CHECK OBJECT 'M_MRES_WWA'
ID 'ACTVT' DUMMY
ID 'WERKS' FIELD 'P010'.
IF sy-subrc <> 0.
WRITE: / '权限校验失败'.
ELSE.
WRITE: / '权限校验成功'.
ENDIF.
"--------------------@斌将军--------------------

3、存在问题

测试时,使用SAP_ALL权限的账号,没有问题,后台作业创建并执行成功

运行结果

但是此方法对于非SAP_ALL权限的账号TEST1103,执行时就出现了问题

作业没有正常执行

检查后发现原来是权限问题,使用SU53发现缺少权限

官方解释

而且指定用户名时,要用大写,否则仍然检查失败

所以大家在使用此关键字指定用户时,需要注意以上问题。

而对于想通过指定大权限账号来跳过权限校验这个方案,也要考虑给登录用户分配S_BTCH_NAM权限的合理性。​

定期更文,欢迎关注

SUBMIT指定用户名错误的更多相关文章

  1. mongodb 使用mongodump备份 指定用户名密码 出现错误 Failed: error connecting to db server: server returned error on SASL authentication step: Authentication failed

    mongodb 使用mongodump备份 指定用户名密码 出现错误 [root@MongoDB ~]# mongodump --host -u admin -p -d db1 -o /root/ F ...

  2. asp.net中当服务器出错时显示指定的错误页面

    http://blog.csdn.net/helloxiaoyu/article/details/2943537 此篇文章描述了当异常再ASP.NET中发生时怎样使用C#.NET代码去拦截和相应异常. ...

  3. 在主函数中提示用户输入用户名和密码。另写一方法来判断用户输入是否正确。该方法分别返回一个bool类型的登录结果和和一个string类型的登录信息。如登录成功,返回true及“登录成功”,若登录失败则返回false及“用户名错误”或“密码错误”(使用out参数)

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  4. struts2回显指定的错误信息

     <s:fielderror />  显示全部的 错误消息(用addFieldError方法添加的 )   <s:fielderror>            <s:pa ...

  5. <s:submit> 指定的method方法不执行

    很多文章在讲一个表单多个提交方法的时候都是在<s:submit>中通过method来指定,但是我在试验中怎么也不对,jsp页面代码如下 <%@page import="or ...

  6. git 指定用户名密码更新代码

    使用git 更新代码 如何修改git 的密码一直令人费解,百度一堆也没给出答案.下面给一种替代方案. 例如:我们正常的代码地址 http://172.16.210.112/project/test.g ...

  7. delphi xe7 多线程调用CMD,使用管道,临界区技术,实现指定用户名,多线程,异步返回CMD命令结果到memo

    第一次发这个,发现格式很乱,不好看,可以用XE7的project--format project sources命令格式化一下代码. 后面我会上传此次修改函数用的源代码到云盘 链接: http://p ...

  8. [svn]指定用户名

    svn [option] --username=faith --passward=521 或者 svn [option] --username "faith" --passward ...

  9. [Python] from scipy import sparse 报 DLL load failed:找不到指定模块错误

    依赖vc运行环境.需要安装 vc_redist Py3.5要安装2015版 传送门: https://www.microsoft.com/zh-CN/download/details.aspx?id= ...

  10. windows环境:idea或者eclipse指定用户名操作hadoop集群

    方法 在系统的环境变量或java JVM变量添加HADOOP_USER_NAME(具体值视情况而定). 比如:idea里面可以如下添加HADOOP_USER_NAME=hdfs 原理:直接看源码 /h ...

随机推荐

  1. 13个QA带你了解线上压测的知识点

    摘要:设计一个线上压测系统能让我们学习到多少东西?这13个问题看你能否搞定. 本文分享自华为云社区<设计一个线上压测系统能让我们学习到多少东西?13个问题看你能否搞定>,作者:breakD ...

  2. 13个VSCode使用技巧,开启高效的开发模式

    摘要:VsCode是一款开源的编辑器,拥有强大的功能,.由于拥有各种各样的插件,这就使得VsCode可以做到的事情更多了.在使用的过程中,也是有很多技巧的,掌握一些技巧对于后期写代码也会轻松很多. 本 ...

  3. SyntaxError: Non-ASCII character #-*- coding:utf-8 -*-

    执行python报错 /usr/bin/python2.7 /root/demo.py File "/root/demo.py", line 2 SyntaxError: Non- ...

  4. Scala Http请求工具类

    import java.io.IOException import java.util import org.apache.http.client.ClientProtocolException im ...

  5. 一文读懂火山引擎数智平台 VeDI 新品——管理驾驶舱 Plus

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 4 月 18 日,2023 春季火山引擎 FORCE 原动力大会在上海举行,火山引擎发布数智平台(VeDI)新品- ...

  6. ThreadLocal 本地线程变量详解

    概述 ThreadLocal 意为本地线程变量,即该变量只属于当前线程,对其他线程隔离 我们知道,一个普通变量如果被多线程访问会存在存在线程安全问题,这时我们可以使用 Synchronize 来保证该 ...

  7. Nginx--用户认证&&访问控制&&限速&&状态访问

    一 用户认证 某些网页只希望给特定的用户访问,可以设置用户认证,使用户访问时需要进行身份认证,只有认证通过才可访问网页 location / { root html; index index.html ...

  8. Leaflet 使用图片作为地图

    Leaflet 使用图片作为地图 关键代码: L.CRS.Simple.transformation = new L.Transformation(1, 0, 1, 0); // 坐标原点切换为左上角 ...

  9. 机器学习 | 分类性能度量指标 : ROC曲线、AUC值、正确率、召回率

    本篇博客的图源来自 zhwhong,转载仅作学习使用! 在分类任务中,人们总是喜欢基于错误率来衡量分类器任务的成功程度.错误率指的是在所有测试样例中错分的样例比例.实际上,这样的度量错误掩盖了样例如何 ...

  10. <vue 基础知识 3、v-bind使用>

    代码结构 一.     v-bind基本使用 1.效果 2.代码 01-v-bind基本使用.html <!DOCTYPE html> <html lang="en&quo ...