2013 Jun 28 7:52 PM
Hi Guys,
I would like to write a program that create and process a batch input session. A message should be given out if the job didnt work (errors during the process).
Can you explain me what happen during each steps.
In example:
CALL FUNCTION 'JOB_SUBMIT'
EXPORTING
...
jobname = 'JOBNAME'
report = 'RFBIBL00'
EXCEPTIONS
.....
if sy-subrc <> 0
... Error message : job JOBNAME has error during the process
CALL FUNCTION 'JOB_CLOSE'
EXPORTING
....
IMPORTING
......
A simple working example with explanation will be great.
2013 Jun 28 8:41 PM
Hello,
JOB_OPEN->For opening a job in the background
JOB_SUBMIT->For submitting the job
JOB_CLOSE->For closing the job.
Example program
****************************
REPORT ZMAILSPOOL.
INCLUDE LBTCHDEF.
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 RECIPIENT TYPE SWC_OBJECT. DATA RECIPIENT_OBJ LIKE SWOTOBJID. SWC_CONTAINER CONTAINER.
PARAMETERS ABAPNAME(20) DEFAULT 'ZTEST1'. PARAMETERS EMPFNAME LIKE SY-UNAME DEFAULT SY-UNAME. ABAPNM = ABAPNAME. LOCAL_JOB-JOBNAME = ABAPNAME.
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.
CALL FUNCTION 'JOB_OPEN' exporting
jobname = LOCAL_JOB-JOBNAME
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
authcknam = SY-UNAME
jobcount = LOCAL_JOB-JOBCOUNT jobname = LOCAL_JOB-JOBNAME
REPORT = ABAPNM
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
jobcount = LOCAL_JOB-JOBCOUNT jobname = LOCAL_JOB-JOBNAME
STRTIMMED = 'X'
RECIPIENT_OBJ = RECIPIENT_OBJ
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.
********************************
Check below links too
http://help.sap.com/saphelp_nw04/helpdata/en/fa/096d4d543b11d1898e0000e8322d00/frameset.htm
http://wwwcs.uni-paderborn.de/cs/heiss/lehre/pg/intern/docs/bc_xbp_45.pdf
best regards,
swanand
2013 Jun 28 8:41 PM
Hello,
JOB_OPEN->For opening a job in the background
JOB_SUBMIT->For submitting the job
JOB_CLOSE->For closing the job.
Example program
****************************
REPORT ZMAILSPOOL.
INCLUDE LBTCHDEF.
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 RECIPIENT TYPE SWC_OBJECT. DATA RECIPIENT_OBJ LIKE SWOTOBJID. SWC_CONTAINER CONTAINER.
PARAMETERS ABAPNAME(20) DEFAULT 'ZTEST1'. PARAMETERS EMPFNAME LIKE SY-UNAME DEFAULT SY-UNAME. ABAPNM = ABAPNAME. LOCAL_JOB-JOBNAME = ABAPNAME.
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.
CALL FUNCTION 'JOB_OPEN' exporting
jobname = LOCAL_JOB-JOBNAME
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
authcknam = SY-UNAME
jobcount = LOCAL_JOB-JOBCOUNT jobname = LOCAL_JOB-JOBNAME
REPORT = ABAPNM
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
jobcount = LOCAL_JOB-JOBCOUNT jobname = LOCAL_JOB-JOBNAME
STRTIMMED = 'X'
RECIPIENT_OBJ = RECIPIENT_OBJ
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.
********************************
Check below links too
http://help.sap.com/saphelp_nw04/helpdata/en/fa/096d4d543b11d1898e0000e8322d00/frameset.htm
http://wwwcs.uni-paderborn.de/cs/heiss/lehre/pg/intern/docs/bc_xbp_45.pdf
best regards,
swanand
2013 Jul 01 3:00 PM
2013 Jul 01 3:03 PM
Hi,
if we speak about Batch Input, you could used the old program RSBDCSUB to call batch-input.
regards
Fred