SUBMIT的用法

news2024/11/23 11:42:52

SUBMIT的用法

一、简介
  1. 系统MB52/MB51/MB5B等类似的报表 ,虽然数据很全面,执行效率也够快,但是经常会不满足用户需求(增添字段、添加查询条件等),很多ABAP 会选择去COPY出标准程序,然后去做修改,强烈不推荐此种方式,弊端太大,容易使标准程序出现问题,且效率低(特别涉及MSEG等数据库表)。

  2. 我们可以使用SUBMIT,此语法可将获取系统标准报表数据,然后你就可以自己去加一层壳来实现自己的定制。

  3. 语法:selscreen_options:主要是标准程序选择界面Field,通过F1去查看具体Field name。

    SUBMIT {rep|(name)} [selscreen_options]
    [list_options]
    [job_options]
    [AND RETURN].
    
二、Submit的使用方法和案例
  1. 下列案例是获取MB51的数据

  2. 有两个方法来建数据赋值

    • 方法一:获取ALV报表结果数据(不局限于严格意义上的ALV Grid、LIST报表也能获取到值),关键代码:

      *&---------------------------------------------------------------------*
      *&
      *& 获取MB5B数据 
      *&---------------------------------------------------------------------*
      DATA:lr_alv_data TYPE REF TO data. 
      
      FIELD-SYMBOLS : <lt_alv_data> TYPE ANY TABLE .
      FIELD-SYMBOLS : <lt_data> TYPE ANY. "LIKE LINE OF  it_tab . 
      
      
      *&---------------------------------------------------------------------*
      *& "计算特殊库存E的期初期末
      *&---------------------------------------------------------------------*
          cl_salv_bs_runtime_info=>set( EXPORTING display  = abap_false
                                                  metadata = abap_false
                                                  data     = abap_true ).
          CLEAR lr_alv_data.
          UNASSIGN <lt_alv_data>.
      
          SUBMIT rm07mlbd                                         "MB5B特殊库存及搜索条件
                 WITH matnr IN so_matnr
                 WITH werks IN so_werks
                 WITH lgort EQ so_lgort-low "循环获取每个库存地点的期初期末
                 WITH sobkz EQ 'E'
                 WITH datum IN so_budat
                 "库存类型-特殊库存
                 WITH lgbst EQ space
                 WITH bwbst EQ space
                 WITH sbbst EQ 'X'
                 "设置
                 WITH xsum EQ space
                 WITH pa_sumfl EQ 'X'
                 WITH xchar EQ space
                 WITH xnomchb EQ space
                 WITH xnomchb EQ space
                 WITH nosto EQ space
      
                 WITH pa_dbstd EQ 'X'
                 AND RETURN.
      
          TRY."关键代码
              cl_salv_bs_runtime_info=>get_data_ref( IMPORTING r_data = lr_alv_data ).
      
              ASSIGN lr_alv_data->* TO <lt_alv_data>.
            CATCH cx_salv_bs_sc_runtime_info.
      
              MESSAGE 'Unable to retrieve ALV data! Please try other conditions.' TYPE 'E'.
          ENDTRY.
      
          cl_salv_bs_runtime_info=>clear_all( ).
      
          "
          IF <lt_alv_data> IS ASSIGNED.
            UNASSIGN <lt_data>.
            LOOP AT <lt_alv_data> ASSIGNING <lt_data>."即所需要内表数据
      
            ENDLOOP.
          ENDIF.
      
    • 将执行结果放入MEMORY(此法用于结果不是很明确的ALV结构),关键代码:

      *&---------------------------------------------------------------------*
      *& Report  ZTEST_CALL_MB51
      *&
      *&---------------------------------------------------------------------*
      *&
      *& 获取MB51数据
      *&---------------------------------------------------------------------*
      
      REPORT  ztest_call_mb51.
      
      TYPE-POOLS:abap.
      TABLES:mseg,mara,mard.
      
      DATA:
            flag(01)    TYPE  c VALUE 'X', "Name for compatibility with MB03 "MAA EhP4
            no_list(01) TYPE  c VALUE 'X'. "Do not show the list             "MAA EhP4
      
      DATA: BEGIN OF export_list OCCURS 0,
              matnr TYPE mseg-matnr,
              maktx TYPE makt-maktx,
              werks TYPE mseg-werks,
              name1 TYPE t001w-name1,
              lgort TYPE mseg-lgort,
              charg TYPE mseg-charg,                              "351455
              bwtar TYPE mseg-bwtar,                              "351455
              bwart TYPE mseg-bwart,
              sobkz TYPE mseg-sobkz,
              btext TYPE t156t-btext,
              mblnr TYPE mseg-mblnr,
              mjahr TYPE mseg-mjahr,
              zeile TYPE mseg-zeile,
              budat TYPE mkpf-budat,
              erfmg TYPE mseg-erfmg,
              erfme TYPE mseg-erfme,
              lifnr TYPE mseg-lifnr,
              vgart TYPE mkpf-vgart,
            END OF export_list.
      
      SELECTION-SCREEN: BEGIN OF BLOCK blk1 WITH FRAME TITLE text-t01.
      SELECT-OPTIONS:so_werks FOR mseg-werks OBLIGATORY,
                                so_matnr FOR mseg-matnr,
                                so_mtart FOR mara-mtart,
                                so_matkl FOR mara-matkl,
                                so_lgort FOR mard-lgort.
      SELECT-OPTIONS so_mtr_i FOR mseg-matnr NO-DISPLAY .
      SELECTION-SCREEN: END OF BLOCK blk1.
      
      START-OF-SELECTION.
      
        EXPORT flag TO MEMORY ID 'MB51_FLAG'.
        EXPORT no_list TO MEMORY ID 'MB51_NOLIST' .
        EXPORT export_list TO MEMORY ID 'MB51_EXPORT_LIST'.
      
        SUBMIT rm07docs
          WITH matnr IN so_matnr
          WITH werks IN so_werks
          WITH lgort IN so_lgort
          WITH database EQ abap_true
          WITH pa_dbstd EQ abap_true
          WITH mb51_flag EQ flag
          WITH mb51_nolist EQ no_list
        EXPORTING LIST TO MEMORY AND RETURN.
      
        IMPORT export_list FROM MEMORY ID 'MB51_EXPORT_LIST'."关键代码
        FREE MEMORY ID 'MB51_EXPORT_LIST'.
      
        LOOP AT export_list."export_list 为需要的内表数据
      
        ENDLOOP.
      
      
  3. 执行结果

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-my8VyMW4-1678545481098)(D:\学习计划笔记\问题解决办法\IMAGE\image-20220523091900701.png)]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/404062.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

376. 摆动序列——【Leetcode每日刷题】

376. 摆动序列 如果连续数字之间的差严格地在正数和负数之间交替&#xff0c;则数字序列称为 摆动序列 。第一个差&#xff08;如果存在的话&#xff09;可能是正数或负数。仅有一个元素或者含两个不等元素的序列也视作摆动序列。 例如&#xff0c; [1, 7, 4, 9, 2, 5] 是一个…

WMS仓库管理系统解决方案,实现仓库管理一体化

仓库是企业的核心环节&#xff0c;若没有对库存的合理控制和送货&#xff0c;将会造成成本的上升&#xff0c;服务品质的难以得到保证&#xff0c;进而降低企业的竞争能力。WMS仓库管理系统包括基本信息&#xff0c;标签&#xff0c;入库&#xff0c;上架&#xff0c;领料&…

搭建Docker企业私有仓库

什么是仓库 仓库&#xff08;Repository&#xff09;是存储和分发 Docker 镜像的地方。镜像仓库类似于代码仓库&#xff0c;Docker Hub 的命名来自 GitHub&#xff0c;Github 是我们常用的代码存储和分发的地方。同样 Docker Hub 是用来提供 Docker 镜像存储和分发的地方。 谈…

flink入门-流处理

入门需要掌握&#xff1a;从入门demo理解、flink 系统架构&#xff08;看几个关键组件&#xff09;、安装、使用flink的命令跑jar包flink的webUI 界面的监控、常见错误、调优 一、入门demo&#xff1a;统计单词个数 0、单词txt 文本内容(words.txt)&#xff1a; hello world …

最详细的CentOS7安装Mysql数据库服务

1.查看是否安装mysql: rpm -qa | grep mysql如果有查出来东西&#xff0c;使用命令删除&#xff1a; rpm -e xxx2.检查是否有mysql用户组和mysql用户,没有就添加有就忽略&#xff1a; groups mysql 添加用户组和用户 groupadd mysql && useradd -r -g mysql mysql&a…

webstorm项目上传至gitee及遇到的问题

1.下载gitee及登录账户 File>>Settings Plugins>>搜索gitee 2.下载svn&#xff08;若已经下载过了可跳过此步&#xff09; 下载 SVN下载官网 将下载的文件解压在同一文件下 例如&#xff1a;我的两个解压文件文件放在Apache-Subversion-1.14.2这一文件下 找到Fi…

射频资料搜集--推荐几个网站和链接

https://picture.iczhiku.com/resource/eetop/wHKYFQlDTRRShCcc.pdfhttps://picture.iczhiku.com/resource/eetop/wHKYFQlDTRRShCcc.pdfVCO pulling的资料 模拟滤波器与电路设计手册 - 射频微波仿真 - RF技术社区 Practical RF Amplifier Design Using the Available Gain Pr…

进程系统调用

进程系统调用 文章目录进程系统调用fork()进程创建&#xff1a;fock()fork函数fork用法僵尸进程孤儿进程vfork函数vfork与fork区别exec函数族exec函数族-何时使用&#xff1f;exec函数族语法exec函数族使用区别exit和_exit_exit和exit的区别wait和waitpidfork() 进程创建&…

记录一次WIN11开机在登录页面循环的问题

记录一次由于未进行win密码设置&#xff0c;导致开机后卡在登录界面无法登录进去的问题。最后完美解决了。 1. 背景 开机后&#xff0c;显示用户登录界面&#xff0c;但是和以往不同&#xff0c;没有了密码输入框&#xff0c;只有一个“登录”按钮孤零零地显示在屏幕中间&…

Flink从入门到精通系列(四)

5、DataStream API&#xff08;基础篇&#xff09; Flink 有非常灵活的分层 API 设计&#xff0c;其中的核心层就是 DataStream/DataSet API。由于新版本已经实现了流批一体&#xff0c;DataSet API 将被弃用&#xff0c;官方推荐统一使用 DataStream API 处理流数据和批数据。…

每天5分钟快速玩转机器学习:贝叶斯算法的局限性

本文重点 贝叶斯算法的应用很广泛,其中最经典的应用就是垃圾邮件的分类,本节课程通过垃圾邮件的例子来看一下贝叶斯算法存在的一些问题,我们应该如何解决它? 垃圾邮件分类 给定一封电子邮件,我们如何判断这封电子邮件是垃圾邮件还是正常邮件,这是机器学习中的二分类问…

corn表达式

简单理解corn表达式&#xff1a;在使用定时调度任务的时候&#xff0c;我们最常用的&#xff0c;就是cron表达式了。通过cron表达式来指定任务在某个时间点或者周期性的执行。cron表达式配置起来简洁方便&#xff0c;无论是Spring的Scheduled还是用Quartz框架&#xff0c;都支持…

JavaWeb14-线程池

目录 1.传统线程的缺点 2.线程池的定义 3.线程池的优点 4.线程池的创建/使用&#xff08;2类7种&#xff09; 4.1.通过Executors&#xff08;执行器&#xff09;自动创建&#xff08;6种&#xff09; ①Executors.newFixedThreadPool&#xff1a;创建⼀个固定⼤⼩的线程池…

哈希冲突

为什么会有哈希冲突&#xff1f;哈希表通过哈希函数来计算存放数据&#xff0c;在curd数据时不用多次比较&#xff0c;时间复杂度O&#xff08;1&#xff09;。但是凡事都有利弊&#xff0c;不同关键字通过相同哈希函数可能计算出来相同的存放地址&#xff0c;这种现象被称为哈…

JVM的内存回收及常见算法

什么样的对象应该被回收&#xff1f;某个对象不再被栈直接或间接地引用&#xff0c;此时就应该被回收了。o被指向null的时候&#xff0c;new Object()创建的对象就不在被栈引用了&#xff0c;可以被回收。p1和personList均不再指向第一个Person对象的时候&#xff0c;第一个Per…

【小墩墩学Android】开发常见问题FAQ之Gradle更新

文章目录1、简介1.1 Android简介1.2 Gradle简介1.3 Gradle的配置文件1.3.1 应用模块的 build.gradle1.3.2 项目的 settings.gradle1.3.3 gradle-wrapper.properties2、Gradle文件下载失败2.1 手动下载gradle2.2 配置本地gradle2.3 配置国内镜像3、repositories配置国内源3.1 单…

蓝桥杯三月刷题 第八天

文章目录&#x1f4a5;前言&#x1f609;解题报告&#x1f4a5;分数&#x1f914;一、思路:&#x1f60e;二、代码&#xff1a;&#x1f4a5;回文日期&#x1f914;一、思路:&#x1f60e;二、代码&#xff1a;&#x1f4a5;迷宫&#x1f914;一、思路:&#x1f60e;二、代码&a…

LVGL学习笔记18 - 表Table

目录 1. Parts 1.1 LV_PART_MAIN 1.2 LV_PART_ITEMS 2. 样式 2.1 设置行列数 2.2 设置单元格字符串 2.3 设置单元格宽度 2.4 设置表格高度和宽度 2.5 设置字符串颜色 2.6 设置边框颜色 2.7 设置背景颜色 3. 事件 4. CELL CTRL 表格是由包含文本的行、列和单元格构…

【Git】Git仓库初始化

Git本地仓库初始化 1.将本地代码上传至远程新建仓库 1.1.建立远程仓库 1.2.初始化本地代码仓库 第一步&#xff1a;进入本地代码目录 cd /代码路径 第二步&#xff1a;初始化仓库(执行如下命令) git init 第三步&#xff1a;将本地全部文件添加到本地缓冲区(执行如下命令)…

循环神经网络原理及实现(二):循环神经网络复现

专栏&#xff1a;神经网络复现目录 循环神经网络 循环神经网络&#xff08;Recurrent Neural Network&#xff0c;RNN&#xff09;是一种神经网络结构&#xff0c;其主要特点是网络中存在循环连接&#xff0c;使得网络具有记忆功能&#xff0c;可以处理序列数据。在传统神经网…