码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • SUBMIT指定用户名错误


    1、SUBMIT说明

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

    SUBMIT语句的一般语法如下:

    复制代码
    "--------------------@斌将军--------------------
    SUBMIT  [VIA SELECTION-SCREEN|USING SELECTION-SET ]
     [VIA JOB LV_JOBNAME NUMBER LV_JOBCOUNT]
      [AND RETURN] [EXPORTING LIST TO MEMORY]
      [WITH p1 =  ... pn = ]
      [WITH p1 =  ... WITH pn = ].
    "--------------------@斌将军--------------------
    复制代码

    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
  • 相关阅读:
    MES管理系统中,物料BOM为何如此重要
    玩转 SpringBoot 监控统计(SQL监控、慢SQL记录、Spring监控、去广告)
    代码大佬的【Linux内核开发笔记】分享,前人栽树后人乘凉!
    常见三维建模软件有哪些?各自的特点是什么?
    [面试直通版]网络协议面试核心之HTTP,HTTPS,DNS-TLS技术
    基于javaweb的在线服装销售商城系统(java+springboot+vue+mysql)
    python基于PHP+MySQL的在线音乐点歌系统
    ubuntu 23.04从源码编译安装rocm运行tensorflow-rocm
    改善机器视觉系统的方法
    论文阅读 (100):Simple Black-box Adversarial Attacks (2019ICML)
  • 原文地址:https://www.cnblogs.com/BinGeneral/p/17968458
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号