首页 > 其他分享 >SUBMIT指定用户名错误

SUBMIT指定用户名错误

时间:2024-01-25 12:12:30浏览次数:25  
标签:-------------------- 用户名 name 账号 指定 SUBMIT lv 权限

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权限的合理性。​

 

定期更文,欢迎关注

TRANSLATE with x English
Arabic Hebrew Polish
Bulgarian Hindi Portuguese
Catalan Hmong Daw Romanian
Chinese Simplified Hungarian Russian
Chinese Traditional Indonesian Slovak
Czech Italian Slovenian
Danish Japanese Spanish
Dutch Klingon Swedish
English Korean Thai
Estonian Latvian Turkish
Finnish Lithuanian Ukrainian
French Malay Urdu
German Maltese Vietnamese
Greek Norwegian Welsh
Haitian Creole Persian  
  TRANSLATE with COPY THE URL BELOW Back EMBED THE SNIPPET BELOW IN YOUR SITE Enable collaborative features and customize widget: Bing Webmaster Portal Back

标签:--------------------,用户名,name,账号,指定,SUBMIT,lv,权限
From: https://www.cnblogs.com/BinGeneral/p/17968458

相关文章

  • Logback排除指定包/类/方法日志输出
    排除指定包/类/方法日志输出如下为logback.xml的配置<springProfilename="pro"><appendername="BUSINESS_API"class="ch.qos.logback.core.rolling.RollingFileAppender"><file>/data/log/${projectName}/api_${p......
  • QTableWidget指定某行某列只能输入数字
    主要通过给QTableWidget设置代理,即继承QItemDelegate类重写其中的方法实现,具体代码如下:1/**2*@fileNonNegativeNumberItemDelegate.h3*@brief非负整数校验代理4*@author禅元天道([email protected])5*@date2024-01-246*/7#ifndefNONNE......
  • 子函数对指定文件指的读取指定的行(ReadLine.bat)
    经常要对文件的指定行进行读取,特写了一个读取文件指定行的小程序段(ReadLine.Bat),方面以后调用。使用也比较简单:"CallReadLine<文件名><跳过的行数><读取行数>"就可以了。比如在一个批处理里加上一句"CallReadLinea.txt57",那么将跳过a.txt文件的前5行,显示下面的7行字......
  • # yyds干货盘点 # 解析json数据,指定列去解析报错如何破?
    大家好,我是皮皮。一、前言前几天在Python最强王者交流群【哎呦喂 是豆子~】问了一个Python解析的问题。问题如下:大佬们请问下这个是啥情况呀 解析json数据 指定列去解析报错JSONDecodeError:Expecting','delimiter:line1column73(char72)数据不多我就一个个去试指......
  • Python UDP协议发送指定格式报文
      importstructimporttimeimportsocketimportthreading#udp发送数据defsend_data(udp_socket,target_ip,target_port,send_msg):try:udp_socket.sendto(send_msg,(target_ip,target_port))exceptExceptionase:......
  • EMQX配置用户名和密码开启emqx_auth_mnesia认证方式连接
    1、找到MQtt的/etc/plugins/文件夹下的emqx_auth_mnesia.conf文件 vim打开编辑该文件,根据例子添加账号密码并保存 添加内容:auth.user.1.username=adminauth.user.1.password=123456 2、配置禁止匿名登录(安全认证)找到emqx.conf编辑##Allowanonymousaut......
  • 使用jar命令替换jar包中指定文件
    一、jar命令用法`1. -c创建新的归档文件3.-t列出归档目录和文件5.-x解压缩已归档的指定(或所有)文件7.-u更新现有的归档文件9.-v在标准输出中生成详细输出/提供更详细输出信息11.-f指定归档文件名/为压缩包指定名字13.-m包含......
  • bat启动多个ping 窗口持续ping同时开启指定的软件 批处理
    将代码复制存为BAT 修改IP,和软件路径即可使用。 @echooffcdclsstartcmd/c"TITLEPingServer192.168.103.7&&ping192.168.103.7-t"startcmd/c"TITLEPingServer192.168.100.156&&ping192.168.100.156-t"startcmd/c"TITLEPing......
  • 剔除任意指定参数配置
    只需要修改需要剔除的参数key(如:redirectUrl)#剔除$args中的redirectUrl参数server{listen80;server_namewww.mynginx.rewrite;location/search{#在参数前加入&,并赋值给args_tmpset$args_tmp&${args};#正则判断进行剔......
  • 微前端(矩阵项目)代码将单个文件合并到指定分支
    确保你当前位于要合并文件的源分支上。可以使用gitbranch命令查看当前分支,并使用gitcheckout命令切换到源分支。使用gitcheckout命令切换到目标分支,即你想要合并文件的分支。gitcheckoutsource_branch--path/to/filesource_branch是包含要合并文件的源分支,path/to/f......