sap submit and return

转自: [url=http://blogold.chinaunix.net/u1/40527/showart.php?id=1119919]Barry 白[/url]
[color=brown][size=x-large][align=center]SUBMIT的几种情况[/align][/size][/color]



[size=large][color=red]1、最普通的用法[/color][/size]

[color=blue]*Code used to execute a report[/color]
SUBMIT Zreport.


[color=red][size=large]2、带select-options程序的Submit的用法[/size][/color]

[color=blue]*Code used to populate 'select-options' & execute report[/color]
DATA: seltab type table of rsparams,
seltab_wa like line of seltab.

seltab_wa-selname = 'PNPPERNR'.
seltab_wa-sign = 'I'.
seltab_wa-option = 'EQ'.

[color=blue]* load each personnel number accessed from the structure into
* parameters to be used in the report[/color]
loop at pnppernr.
seltab_wa-low = pnppernr-low.
append seltab_wa to seltab.
endloop.
SUBMIT zreport with selection-table seltab
via selection-screen.

[size=large][color=red]3、带parameters程序的Submit的用法[/color][/size]

[color=blue]*Code used to populate 'parameters' & execute report[/color]

SUBMIT zreport with p_param1 = 'value'
with p_param2 = 'value'.

[size=large][color=red]4、其他情况[/color][/size]

[color=blue]*Submit report and return to current program afterwards[/color]


SUBMIT zreport AND RETURN.

[color=blue]*Submit report via its own selection screen[/color]
SUBMIT zreport VIA SELECTION-SCREEN.

[color=blue]*Submit report using selection screen variant[/color]
SUBMIT zreport USING SELECTION-SET 'VARIANT1'.

[color=blue]*Submit report but export resultant list to memory, rather than
[color=blue]*it being displayed on screen[/color][/color]
SUBMIT zreport EXPORTING LIST TO MEMORY.
[color=blue]* 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.[/color]

[color=blue]*Example Code (Retrieving list from memory)[/color]
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.

[color=red][size=large]5、Submit为后台执行[/size][/color]

[color=blue]*Submit report as job(i.e. in background)[/color]

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.

[color=blue]* Job open[/color]
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.

[color=blue]* Insert process into job[/color]
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.

[color=blue]* Close job[/color]
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.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值