SAP实战中Submit的常见用法-调用标准程序

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

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

语法:
  1. SUBMIT {rep|(name)} [selscreen_options]
  2. [list_options]
  3. [job_options]
  4. [AND RETURN].
复制代码
selscreen_options:主要是标准程序选择界面Field,通过F1去查看具体Field name

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

  2.     TRY.
  3.         cl_salv_bs_runtime_info=>get_data_ref( IMPORTING r_data = lr_alv_data ).

  4.         ASSIGN lr_alv_data->* TO <lt_alv_data>.
  5.       CATCH cx_salv_bs_sc_runtime_info.

  6.         MESSAGE 'Unable to retrieve ALV data! Please try other conditions.' TYPE 'E'.
  7.     ENDTRY.
复制代码

示例:获取MB5B执行结果,详细代码:
  1. *&---------------------------------------------------------------------*
  2. *&
  3. *& 获取MB5B数据 
  4. *&---------------------------------------------------------------------*
  5. DATA:lr_alv_data TYPE REF TO data. 

  6. FIELD-SYMBOLS : <lt_alv_data> TYPE ANY TABLE .
  7. FIELD-SYMBOLS : <lt_data> TYPE ANY. "LIKE LINE OF  it_tab . 


  8. *&---------------------------------------------------------------------*
  9. *& "计算特殊库存E的期初期末
  10. *&---------------------------------------------------------------------*
  11.     cl_salv_bs_runtime_info=>set( EXPORTING display  = abap_false
  12.                                             metadata = abap_false
  13.                                             data     = abap_true ).
  14.     CLEAR lr_alv_data.
  15.     UNASSIGN <lt_alv_data>.

  16.     SUBMIT rm07mlbd                                         "MB5B特殊库存及搜索条件
  17.            WITH matnr IN so_matnr
  18.            WITH werks IN so_werks
  19.            WITH lgort EQ so_lgort-low "循环获取每个库存地点的期初期末
  20.            WITH sobkz EQ 'E'
  21.            WITH datum IN so_budat
  22.            "库存类型-特殊库存
  23.            WITH lgbst EQ space
  24.            WITH bwbst EQ space
  25.            WITH sbbst EQ 'X'
  26.            "设置
  27.            WITH xsum EQ space
  28.            WITH pa_sumfl EQ 'X'
  29.            WITH xchar EQ space
  30.            WITH xnomchb EQ space
  31.            WITH xnomchb EQ space
  32.            WITH nosto EQ space

  33.            WITH pa_dbstd EQ 'X'
  34.            AND RETURN.

  35.     TRY.
  36.         cl_salv_bs_runtime_info=>get_data_ref( IMPORTING r_data = lr_alv_data ).

  37.         ASSIGN lr_alv_data->* TO <lt_alv_data>.
  38.       CATCH cx_salv_bs_sc_runtime_info.

  39.         MESSAGE 'Unable to retrieve ALV data! Please try other conditions.' TYPE 'E'.
  40.     ENDTRY.

  41.     cl_salv_bs_runtime_info=>clear_all( ).

  42.     "
  43.     IF <lt_alv_data> IS ASSIGNED.
  44.       UNASSIGN <lt_data>.
  45.       LOOP AT <lt_alv_data> ASSIGNING <lt_data>."即所需要内表数据

  46.       ENDLOOP.
  47.     ENDIF.
复制代码

方式二:将执行结果放入MEMORY(此法用于结果不是很明确的ALV结构),关键代码:
  1. EXPORT export_list TO MEMORY ID 'MB51_EXPORT_LIST'.

  2. SUBMIT...

  3. IMPORT export_list FROM MEMORY ID 'MB51_EXPORT_LIST'.
复制代码
示例:获取MB51执行结果数据,详细代码:
  1. *&---------------------------------------------------------------------*
  2. *& Report  ZTEST_CALL_MB51
  3. *&
  4. *&---------------------------------------------------------------------*
  5. *&
  6. *& 获取MB51数据
  7. *&---------------------------------------------------------------------*

  8. REPORT  ztest_call_mb51.

  9. TYPE-POOLS:abap.
  10. TABLES:mseg,mara,mard.

  11. DATA:
  12.       flag(01)    TYPE  c VALUE 'X', "Name for compatibility with MB03 "MAA EhP4
  13.       no_list(01) TYPE  c VALUE 'X'. "Do not show the list             "MAA EhP4

  14. DATA: BEGIN OF export_list OCCURS 0,
  15.         matnr TYPE mseg-matnr,
  16.         maktx TYPE makt-maktx,
  17.         werks TYPE mseg-werks,
  18.         name1 TYPE t001w-name1,
  19.         lgort TYPE mseg-lgort,
  20.         charg TYPE mseg-charg,                              "351455
  21.         bwtar TYPE mseg-bwtar,                              "351455
  22.         bwart TYPE mseg-bwart,
  23.         sobkz TYPE mseg-sobkz,
  24.         btext TYPE t156t-btext,
  25.         mblnr TYPE mseg-mblnr,
  26.         mjahr TYPE mseg-mjahr,
  27.         zeile TYPE mseg-zeile,
  28.         budat TYPE mkpf-budat,
  29.         erfmg TYPE mseg-erfmg,
  30.         erfme TYPE mseg-erfme,
  31.         lifnr TYPE mseg-lifnr,
  32.         vgart TYPE mkpf-vgart,
  33.       END OF export_list.

  34. SELECTION-SCREEN: BEGIN OF BLOCK blk1 WITH FRAME TITLE text-t01.
  35. SELECT-OPTIONS:so_werks FOR mseg-werks OBLIGATORY,
  36.                           so_matnr FOR mseg-matnr,
  37.                           so_mtart FOR mara-mtart,
  38.                           so_matkl FOR mara-matkl,
  39.                           so_lgort FOR mard-lgort.
  40. SELECT-OPTIONS so_mtr_i FOR mseg-matnr NO-DISPLAY .
  41. SELECTION-SCREEN: END OF BLOCK blk1.

  42. START-OF-SELECTION.

  43.   EXPORT flag TO MEMORY ID 'MB51_FLAG'.
  44.   EXPORT no_list TO MEMORY ID 'MB51_NOLIST' .
  45.   EXPORT export_list TO MEMORY ID 'MB51_EXPORT_LIST'.

  46.   SUBMIT rm07docs
  47.     WITH matnr IN so_matnr
  48.     WITH werks IN so_werks
  49.     WITH lgort IN so_lgort
  50.     WITH database EQ abap_true
  51.     WITH pa_dbstd EQ abap_true
  52.     WITH mb51_flag EQ flag
  53.     WITH mb51_nolist EQ no_list
  54.   EXPORTING LIST TO MEMORY AND RETURN.

  55.   IMPORT export_list FROM MEMORY ID 'MB51_EXPORT_LIST'.
  56.   FREE MEMORY ID 'MB51_EXPORT_LIST'.

  57.   LOOP AT export_list."export_list 为需要的内表数据

  58.   ENDLOOP.
复制代码
SAP文使用手册为用户提供了关于物料管理模块(MM)的详细操作指南和功能说明。物料管理模块是SAP系统的重要模块之一,主要用于管理和控制所有与物料相关的业务流程。 在SAP文使用手册,用户可以找到关于如何进行物料主数据的创建和维护的信息。物料主数据包括物料编码、物料描述、计量单位等重要信息,用户可以根据需要创建和维护物料主数据。 手册还介绍了采购管理的功能和操作步骤。用户可以了解到如何创建采购订单、采购申请以及供应商评估和选择等相关操作。通过这些功能,用户可以实现对物料采购过程的有效控制和管理。 另外,使用手册还详细解释了物料需求计划(MRP)功能和使用方法。MRP主要用于根据销售计划和库存情况,自动计算物料需求,帮助用户进行生产计划和物料采购计划的制定。用户可以学习到如何设置和运行MRP,以及如何生成并处理相关的需求和建议。 此外,使用手册还包含了库存管理、物料评估、物料分类和批次管理等功能的详细说明。用户可以了解到如何进行库存盘点、库存调整和库存移动等操作,以及如何评估物料的价值和管理物料的分类和批次信息。 总之,SAP文使用手册-mm物料管理为用户提供了全面的物料管理模块的操作指南和功能说明,帮助用户有效地使用SAP系统进行物料管理和控制。用户可以根据手册的指导,灵活应用这些功能,提高物料管理的效率和准确性。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SAP剑客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值