您的位置:首页 > 其它

abap submit 的使用方法

2016-03-18 15:40 441 查看
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 report
LOOP AT PNPPERNR.
  SELTAB_WA-LOW = PNPPERNR-LOW.
  APPEND SELTAB_WA TO SELTAB.
ENDLOOP.
SUBMIT ZREPORT WITH SELECTION-TABLE SELTAB
VIA SELECTION-SCREEN.

3、带PARAMETERS程序的SUBMIT的用法

*Code used to populate 'parameters' & execute report

SUBMIT ZREPORT WITH P_PARAM1 = 'value'WITH P_PARAM2 = 'value'.
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'.

*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           = VLISTLIST
    OBJECT             = 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.

* JOBOPEN
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.

* CloseJOB
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.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: