BeispieldokumentationProgrammbeispiel: Sofortiger Start mit Mail-Empfänger von Spoolaufträgen

 

Sie können automatisch von einem Hintergrund-Job erstellte Spoolaufträge an einen SAPoffice-Benutzer senden.

Das folgende Programmbeispiel zeigt, wie Sie die SWOTOBJID-Struktur erzeugen, die JOB_CLOSE benötigt, um den SAPoffice-Benutzer zu identifizieren. Weitere Informationen finden Sie in der ABAP-Dokumentation zur Programmierung mit Business-Object-Repository-Objekten.

Syntax Syntax

  1. INCLUDE LBTCHDEF.
    *
    * Include the Business Object Repository object
    INCLUDE <CNTN01>.
    
    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
    EXECHOST LIKE SY-HOST DEFAULT 'host1',
    EXESERVR LIKE BTCTGTSRVR-SRVNAME DEFAULT 'host1_SID_00',
    ABAPNAME LIKE SY-REPID DEFAULT 'Program2run',
    EMPFNAME LIKE SY-UNAME DEFAULT 'JSmith'.
    
    * 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'
    ...
    
    CALL FUNCTION 'JOB_SUBMIT'
    ...
    
    IF EMPFNAME <> SPACE.
    CALL FUNCTION 'JOB_CLOSE'
    EXPORTING
    JOBCOUNT = LOCAL_JCOUNT
    JOBNAME = LOCAL_JOBNAME
    STRTIMMED = 'X'
    TARGETSYSTEM = EXECHOST
    TARGETSERVER = EXESERVR
    RECIPIENT_OBJ = RECIPIENT_OBJ
    IMPORTING
    JOB_WAS_RELEASED = JOBLOS
    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(empfname) Problem:', SY-SUBRC.
    ELSE.
    WRITE: / 'Job_Close(empfname) done'.
    ENDIF.
    
    ELSE. "no empfname
    ....
    ENDIF.
Ende des Codes