SAP ABAP Programming, Functional and Basis Components Books

Immediately send the spool to SAP user after a background run

* After running the background jobs, send the spool to the SAP users Office Mail Box.

REPORT ZMAILSPOOL.

INCLUDE LBTCHDEF.
*
* Include the Business Object Repository object
INCLUDE <CNTN01>.

DATA ABAPNM LIKE SY-REPID.

DATA BEGIN OF LOCAL_JOB.
INCLUDE STRUCTURE TBTCJOB.
DATA END OF LOCAL_JOB.

DATA BEGIN OF LOCAL_STEP_TBL OCCURS 10.
INCLUDE STRUCTURE TBTCSTEP.
DATA END OF LOCAL_STEP_TBL.

*
* Data declarations for the mail recipient
DATA RECIPIENT TYPE SWC_OBJECT.
DATA RECIPIENT_OBJ LIKE SWOTOBJID.
SWC_CONTAINER CONTAINER.

* Data declarations for the background job
PARAMETERS ABAPNAME(20) DEFAULT 'ZTEST1'.
PARAMETERS EMPFNAME LIKE SY-UNAME DEFAULT SY-UNAME.

ABAPNM = ABAPNAME.
LOCAL_JOB-JOBNAME = ABAPNAME.
* Generate recipient object (see report RSSOKIF1 for an example)
*** 1. Create the recipient:

IF EMPFNAME <> SPACE.
"** 1.1 Generate an object reference to a recipient object
SWC_CREATE_OBJECT RECIPIENT 'RECIPIENT' SPACE.

"** 1.2 Write the import parameters for method
"** recipient.createaddress into the container
"** and empty the container
SWC_CLEAR_CONTAINER CONTAINER.
"** Set address element (internal user 'JSMITH')
SWC_SET_ELEMENT CONTAINER 'AddressString' EMPFNAME.
"** Set address type (internal user)
SWC_SET_ELEMENT CONTAINER 'TypeId' 'B'.

"** 1.3 Call the method recipient.createaddress
SWC_CALL_METHOD RECIPIENT 'CreateAddress' CONTAINER.
"** Issue any error message generated by a method exception
IF SY-SUBRC NE 0.
MESSAGE ID SY-MSGID TYPE 'E' NUMBER SY-MSGNO.
ENDIF.
SWC_CALL_METHOD RECIPIENT 'Save' CONTAINER.
SWC_OBJECT_TO_PERSISTENT RECIPIENT RECIPIENT_OBJ.
ENDIF.
*** Recipient has been generated and is ready for use in a
*** background job

CALL FUNCTION 'JOB_OPEN'
     exporting
*      DELANFREP              = ' '
*      JOBGROUP               = ' '
       jobname                = LOCAL_JOB-JOBNAME
*      SDLSTRTDT              = NO_DATE
*      SDLSTRTTM              = NO_TIME
     IMPORTING
       JOBCOUNT               = LOCAL_JOB-JOBCOUNT
     EXCEPTIONS
       CANT_CREATE_JOB        = 1
       INVALID_JOB_DATA       = 2
       JOBNAME_MISSING        = 3
       OTHERS                 = 4
             .
   if sy-subrc <> 0.
      WRITE: / 'JOB_OPEN PROBLEM ', SY-SUBRC.
   ELSE.
      WRITE: / 'JOB OPEN SUCCESS',
                                  LOCAL_JOB-JOBNAME, LOCAL_JOB-JOBCOUNT.
   endif.

CALL FUNCTION 'JOB_SUBMIT'
     exporting
*      ARCPARAMS                         =
       authcknam                         = SY-UNAME
*      COMMANDNAME                       = ' '
*      OPERATINGSYSTEM                   = ' '
*      EXTPGM_NAME                       = ' '
*      EXTPGM_PARAM                      = ' '
*      EXTPGM_SET_TRACE_ON               = ' '
*      EXTPGM_STDERR_IN_JOBLOG           = 'X'
*      EXTPGM_STDOUT_IN_JOBLOG           = 'X'
*      EXTPGM_SYSTEM                     = ' '
*      EXTPGM_RFCDEST                    = ' '
*      EXTPGM_WAIT_FOR_TERMINATION       = 'X'
       jobcount                          = LOCAL_JOB-JOBCOUNT
       jobname                           = LOCAL_JOB-JOBNAME
*      LANGUAGE                          = SY-LANGU
*      PRIPARAMS                         = ' '
       REPORT                            = ABAPNM
*      REPORT                            = 'ZTEST1'
*      VARIANT                           = ' '
*    IMPORTING
*      STEP_NUMBER                       = LOCAL_JOB-STEPCOUNT
     EXCEPTIONS
       BAD_PRIPARAMS                     = 1
       BAD_XPGFLAGS                      = 2
       INVALID_JOBDATA                   = 3
       JOBNAME_MISSING                   = 4
       JOB_NOTEX                         = 5
       JOB_SUBMIT_FAILED                 = 6
       LOCK_FAILED                       = 7
       PROGRAM_MISSING                   = 8
       PROG_ABAP_AND_EXTPG_SET           = 9
       OTHERS                            = 10
             .
   if sy-subrc <> 0.
      WRITE: / 'JOB_SUBMIT PROBLEM ', LOCAL_JOB-JOBCOUNT,
               LOCAL_JOB-JOBNAME, ABAPNAME, SY-SUBRC.
   endif.

IF EMPFNAME <> SPACE.
CALL FUNCTION 'JOB_CLOSE'
  exporting
*   AT_OPMODE                         = ' '
*   AT_OPMODE_PERIODIC                = ' '
*   CALENDAR_ID                       = ' '
*   EVENT_ID                          = ' '
*   EVENT_PARAM                       = ' '
*   EVENT_PERIODIC                    = ' '
    jobcount                          = LOCAL_JOB-JOBCOUNT
    jobname                           = LOCAL_JOB-JOBNAME
*   LASTSTRTDT                        = NO_DATE
*   LASTSTRTTM                        = NO_TIME
*   PRDDAYS                           = 0
*   PRDHOURS                          = 0
*   PRDMINS                           = 0
*   PRDMONTHS                         = 0
*   PRDWEEKS                          = 0
*   PREDJOB_CHECKSTAT                 = ' '
*   PRED_JOBCOUNT                     = ' '
*   PRED_JOBNAME                      = ' '
*   SDLSTRTDT                         = NO_DATE
*   SDLSTRTTM                         = NO_TIME
*   STARTDATE_RESTRICTION             = BTC_PROCESS_ALWAYS
    STRTIMMED                         = 'X'
*   TARGETSYSTEM                      = ' '
*   START_ON_WORKDAY_NOT_BEFORE       = SY-DATUM
*   START_ON_WORKDAY_NR               = 0
*   WORKDAY_COUNT_DIRECTION           = 0
    RECIPIENT_OBJ                     = RECIPIENT_OBJ
*   TARGETSERVER                      = ' '
*   DONT_RELEASE                      = ' '
* IMPORTING
*   JOB_WAS_RELEASED                  = 'X'
  EXCEPTIONS
    CANT_START_IMMEDIATE              = 1
    INVALID_STARTDATE                 = 2
    JOBNAME_MISSING                   = 3
    JOB_CLOSE_FAILED                  = 4
    JOB_NOSTEPS                       = 5
    JOB_NOTEX                         = 6
    LOCK_FAILED                       = 7
    OTHERS                            = 8
          .

IF ( SY-SUBRC <> 0 ).
  WRITE: / 'Job_Close Problem:', ABAPNAME, SY-SUBRC.
ELSE.
  WRITE: / 'Job_Close done'.
ENDIF.

ELSE. "no empfname
...
ENDIF.


 

Back to Previous

Return to SAP Hints and Tips on Configuration and ABAP/4 Programming