(1) 调用其他程序:

   * Trigger the IDOCSUBMIT zpcppmd001_idoc AND RETURN.

(2) 调用其他程序参数传递参数:

*当被调用的程序的屏幕有输入参数时: SUBMIT zreport with p_param1 = 'value1'with p_param2 = 'value2'. *当要传递一个内表到被调用的程序时,需要用SAP MEMORY或者ABAP MEMORY: *在调用的程序中:
EXPORT it_tab TO MEMORY 'Z_MEMORY'. *在被调用的程序中:
IMPORT T_ITAB FROM MEMORY 'Z_MEMORY'.

(3) RANGE表:

*Code used to populate 'select-options' & execute reportDATA: seltab type table of rsparams,seltab_wa like line of seltab. seltab_wa-selname = 'PNPPERNR'.seltab_wa-sign    = 'I'.seltab_wa-option  = 'EQ'. * load each personnel number accessed from the structure into* parameters to be used in the reportloop at pnppernr.seltab_wa-low = pnppernr-low.append seltab_wa to seltab.endloop.SUBMIT zreport with selection-table seltabvia selection-screen.

(4)其他情况:

*Submit report and return to current program afterwards SUBMIT zreport AND RETURN. *Submit report via its own selection screen SUBMIT zreport VIA SELECTION-SCREEN. *Submit report using selection screen variant SUBMIT zreport USING SELECTION-SET 'VARIANT1'. 

REPORT ZPPR0051.TABLES:AUFM.DATA: IT_SELTAB TYPE TABLE OF RSPARAMS,IW_SELTAB LIKE LINE OF IT_SELTAB.SELECTION-SCREEN BEGIN OF BLOCK BLK WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS: S_WERKS FOR AUFM-WERKS OBLIGATORY NO INTERVALS,S_AUFNR FOR AUFM-AUFNR.
SELECTION-SCREEN END OF BLOCK BLK.*----------------------------------------------------------------------*
* START-OF-SELECTION.
*----------------------------------------------------------------------*START-OF-SELECTION.LOOP AT S_WERKS.IW_SELTAB-SELNAME = 'S_WERKS'.IW_SELTAB-SIGN    = S_WERKS-SIGN .IW_SELTAB-OPTION  = S_WERKS-OPTION.IW_SELTAB-LOW     = S_WERKS-LOW.APPEND IW_SELTAB TO IT_SELTAB.
ENDLOOP.LOOP AT S_AUFNR .IW_SELTAB-SELNAME = 'S_AUFNR'.IW_SELTAB-SIGN    = S_AUFNR-SIGN .IW_SELTAB-OPTION  = S_AUFNR-OPTION.IW_SELTAB-LOW     = S_AUFNR-LOW.IW_SELTAB-HIGH    = S_AUFNR-HIGH.APPEND IW_SELTAB TO IT_SELTAB.
ENDLOOP.SUBMIT ZPPR0015 WITH SELECTION-TABLE IT_SELTAB.

*---------------------------------------------------------------------------

1、最普通的用法*Code used to execute a report
SUBMIT Zreport.2、带select-options程序的Submit的用法*Code used to populate 'select-options' & execute report
DATA: seltab type table of rsparams,seltab_wa like line of seltab.seltab_wa-selname = 'PNPPERNR'.seltab_wa-sign    = 'I'.seltab_wa-option  = 'EQ'.* load each personnel number accessed from the structure into* parameters to be used in the reportloop at pnppernr.seltab_wa-low = pnppernr-low.append seltab_wa to seltab.endloop.SUBMIT zreport with selection-table seltabvia selection-screen.3、带parameters程序的Submit的用法*Code used to populate 'parameters' & execute reportSUBMIT zreport with p_param1 = 'value'
with p_param2 = 'value'.4、其他情况*Submit report and return to current program afterwardsSUBMIT zreport AND RETURN.*Submit report via its own selection screen
SUBMIT zreport VIA SELECTION-SCREEN.*Submit report using selection screen variant
SUBMIT zreport USING SELECTION-SET 'VARIANT1'.*Submit report but export resultant list to memory, rather than
*it being displayed on screen
SUBMIT zreport EXPORTING LIST TO MEMORY.
*  Once report has finished and control has returned to calling
*  program, use function modules LIST_FROM_MEMORY, WRITE_LIST and
*  DISPLAY_LIST to retrieve and display report.*Example Code (Retrieving list from memory)
DATA  BEGIN OF itab_list OCCURS 0.
INCLUDE STRUCTURE abaplist.
DATA  END OF itab_list.DATA: BEGIN OF vlist OCCURS 0,
filler1(01)   TYPE c,
field1(06)    TYPE c,
filler(08)    TYPE c,
field2(10)    TYPE c,
filler3(01)   TYPE c,
field3(10)    TYPE c,
filler4(01)   TYPE c,
field4(3)     TYPE c,
filler5(02)   TYPE c,
field5(15)    TYPE c,
filler6(02)   TYPE c,
field6(30)    TYPE c,
filler7(43)   TYPE c,
field7(10)    TYPE c,
END OF vlist.SUBMIT zreport EXPORTING LIST TO MEMORY.CALL FUNCTION 'LIST_FROM_MEMORY'
TABLES
listobject = itab_list
EXCEPTIONS
not_found  = 4
OTHERS     = 8.CALL FUNCTION 'LIST_TO_ASCI'
EXPORTING
list_index         = -1
TABLES
listasci           = vlist
listobject         = itab_list
EXCEPTIONS
empty_list         = 1
list_index_invalid = 2
OTHERS             = 3.IF sy-subrc NE '0'.
WRITE:/ 'LIST_TO_ASCI error !! ', sy-subrc.
ENDIF.5、Submit为后台执行*Submit report as job(i.e. in background)

data: jobname like tbtcjob-jobname value
' TRANSFER TRANSLATION'.
data: jobcount like tbtcjob-jobcount,
host like msxxlist-host.
data: begin of starttime.
include structure tbtcstrt.
data: end of starttime.
data: starttimeimmediate like btch0000-char1.* Job open
call function 'JOB_OPEN'
exporting
delanfrep        = ' '
jobgroup         = ' '
jobname          = jobname
sdlstrtdt        = sy-datum
sdlstrttm        = sy-uzeit
importing
jobcount         = jobcount
exceptions
cant_create_job  = 01
invalid_job_data = 02
jobname_missing  = 03.
if sy-subrc ne 0.
"error processing
endif.* Insert process into job
SUBMIT zreport and return
with p_param1 = 'value'
with p_param2 = 'value'
user sy-uname
via job jobname
number jobcount.
if sy-subrc > 0.
"error processing
endif.* Close job
starttime-sdlstrtdt = sy-datum + 1.
starttime-sdlstrttm = '220000'.
call function 'JOB_CLOSE'
exporting
event_id             = starttime-eventid
event_param          = starttime-eventparm
event_periodic       = starttime-periodic
jobcount             = jobcount
jobname              = jobname
laststrtdt           = starttime-laststrtdt
laststrttm           = starttime-laststrttm
prddays              = 1
prdhours             = 0
prdmins              = 0
prdmonths            = 0
prdweeks             = 0
sdlstrtdt            = starttime-sdlstrtdt
sdlstrttm            = starttime-sdlstrttm
strtimmed            = starttimeimmediate
targetsystem         = host
exceptions
cant_start_immediate = 01
invalid_startdate    = 02
jobname_missing      = 03
job_close_failed     = 04
job_nosteps          = 05
job_notex            = 06
lock_failed          = 07
others               = 99.
if sy-subrc eq 0.
"error processing
endif.

程序间获取ALV数据的两种方法:
方法1:通过修改SUBMIT的目标程序,把内表EXPORT到内存,SUBMIT后IMPORT ,该方法需要修改目标程序,可以任意设置目标程序的中断点;

方法2:SUBMIT前屏蔽ALV GRID的显示,SUBMIT,然后调用CL_SALV_BS_RUNTIME_INFO=>GET_DATA_REF方法获取数据,该方法不需要修改目标程序,但不能设置目标程序的中断点,需显示ALV的函数执行完毕方可获取到数据。
示例:
START-OF-SELECTION.   PERFORM GET_DATA.
*&———————————————————————* *&      Form  GET_DATA *&———————————————————————* *       text
*———————————————————————-* *  –>  p1        text *  <–  p2        text *———————————————————————-* FORM GET_DATA.   DATA:LS_DATA TYPE REF TO DATA.   FIELD-SYMBOLS: <LT_DATA> TYPE TABLE,                  <L_DATA>  TYPE DATA.CL_SALV_BS_RUNTIME_INFO=>SET(   DISPLAY  = ''     METADATA = ''    DATA     = 'X'  ).SUBMIT ZMM000000 WITH ZBUDAT IN ZBUDAT AND RETURN.TRY.       CL_SALV_BS_RUNTIME_INFO=>GET_DATA_REF(       IMPORTING R_DATA = LS_DATA ).      ASSIGN LS_DATA->* TO <LT_DATA>.CATCH CX_SALV_BS_SC_RUNTIME_INFO.       MESSAGE 'UNABLE TO RETRIEVE ALV DATA' TYPE 'E'.ENDTRY.CL_SALV_BS_RUNTIME_INFO=>CLEAR_ALL( ).LOOP AT <LT_DATA> ASSIGNING <L_DATA>.   MOVE-CORRESPONDING <L_DATA> TO GT_TAB.  APPEND GT_TAB.   ENDLOOP. ENDFORM.

转载于:https://www.cnblogs.com/mingdashu/p/5609503.html

ABAP程序相互调用--SUBMIT相关推荐

  1. ABAP之程序相互调用--SUBMIT

    功能代码的重用是个老生常谈的话题,ABAP代码中实现程序的调用以及调用时数据参数的传递又是怎样的呢 (1) 调用其他程序:    * Trigger the IDOC   SUBMIT zpcppmd ...

  2. 【ABAP】SUBMIT程序相互调用

    SUBMIT程序相互调用 方式1: 调用其他程序并传递选择条件参数 submit z_pro_007 with s_vbeln in s_vbelnwith s_kunnr in s_kunnrwit ...

  3. ABAP程序中调用不同类型的函数弹出不同的消息对话框

    一组有用的用户交互窗口函数 显示多条消息 SAP系统用的是这个函数:C14Z_MESSAGES_SHOW_AS_POPUP POPUP_TO_CONFIRM_LOSS_OF_DATA 显示有YES/N ...

  4. ABAP使用AMDP调用HANA存储过程

    更多内容关注公众号:SAP Technical 欢迎关注微信公众号:SAP Technical 数据建模在SAP HANA视图中完成,需要读取视图的输出并将其保留在HANA表中.编写存储过程以从HAN ...

  5. SAP中程序间的相互调用,SUBMIT关键字的用法

    在ABAP中可以用SUBMIT 关键字来实现程序之间的调用,是很好用的一个关键字 (1)调用另一个程序 比如: SUBMIT ZHR_UPDATE_IT0008. "调用更新信息类型0008 ...

  6. linux c程序调用脚本,C程序与Lua脚本相互调用

    Lua脚本是一种可用于C程序开发/测试的工具,本篇介绍一下C程序与Lua脚本如何进行相互调用,更加详细的操作参见<Programing in Lua>.本文分为3个部分:1.Windows ...

  7. ABAP RFC远程调用

    RFC 可以在SAP系统之间.SAP系统与非SAP系统之间进行远程调用,且调用可以是双向的(SAP系统可以调用非SAP系统.非SAP系统也可以调用SAP系统--如Java通过Jco连接器来访问SAP) ...

  8. Java(JCo3)与SAP系统相互调用

    Java(JCo3)与SAP系统相互调用 外部系统(Java)调用BAPI函数 安装JCo3 创建JCo3连接 直连 连接池 DestinationDataProvider接口(不需连接属性配置文件) ...

  9. python模块--如何相互调用自己写的模块

    一.模块相互调用同级目录调用时的两种方法 1 import module 2 print(module.add(3,8)) 3 4 from module import add 5 print(add ...

最新文章

  1. 如何采集Nginx的日志?
  2. servlet之控制分发
  3. python切片语法-python切片语法
  4. Python按键精灵自动化_安装Python
  5. CG CTF RE Hello,RE!
  6. Luogu P2341 [HAOI2006]受欢迎的牛
  7. postgre 生成数据库html文档_postgresql数据库导入和导出CSV格式
  8. mybatis resultMap映射学习笔记
  9. 循迹小车c语言程序51单片机,51单片机循迹小车Proteus仿真程序
  10. 汇川H5U PLC通过EtherCAT总线控制SV660N和X3E伺服
  11. 各种 USB 数据线引脚图【总结】
  12. Ceph集群配置系列《四》Ceph块设备/RBD的使用
  13. 用c语言编写一个日期计算器
  14. 怎么选择自己合适的LED驱动IC?
  15. vbox android wifi,virtualbox桥接无线网卡实现上网
  16. JS--JavaScript数组Array(join、split、reverse、concat、slice)详解
  17. maya扇子动画_MAYA制作动画的十大原理!
  18. 机械键盘插入linux系统中,机械键盘背光灯不亮,并且键盘快捷键无作用
  19. 计算机艺术和动画之父肯·诺尔顿去世,享年91岁
  20. Python 爬微信男女人数和各地区人数

热门文章

  1. Android 百度地图开发(一)--- 申请API Key和在项目中显示百度地图
  2. IOS 总结:NSArray,NSSet,NSDictionary
  3. SDM管理路由器要进行的相应配置
  4. 体验.net2.0的优雅(4):Provider、策略、控制反转和依赖注入
  5. Vue2.0 + ElementUI 手写权限管理系统后台模板(一)——简述
  6. Eclipse中CVS版本管理
  7. [20170606]11G _optimizer_null_aware_antijoin.txt
  8. 依赖注入(DI)和Ninject,Ninject
  9. MySQL datetime类型字段的毫秒四舍五入
  10. scrollToItemAtIndexPath使用