Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Background Processing

Former Member
0 Likes
373

Can i get the complete steps for uploading data included in Backgound processing using call transaction as well as Session Method.

Thanks,

Naveen.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
330

Hi,

There are two ways for you to handle,

one manually setting up the job through SM36 which is better and convinient,

secondly through program using FM's JOB_OPEN, SUBMIT, JOB_CLOSE.

Find below steps in doing both:

Procedure 1:

1. Goto Trans -> SM36

2. Define a job with the program and variant if any

3. Click on start condition in application tool bar

4. In the pop-up window, click on Date/Time

5. Below you can see a check box "Periodic Job"

6. Next click on Period Values

7. Select "Other Period"

8. Now give '15' for Minutes

9. Save the job

Procedure 2 via Program:

Below is a sample code for the same. Note the ZTEMP2 is the program i am scheduling with 15mins frequency.

DATA: P_JOBCNT LIKE TBTCJOB-JOBCOUNT,

L_RELEASE(1) TYPE c.

CALL FUNCTION 'JOB_OPEN'

EXPORTING

JOBNAME = 'ZTEMP2'

IMPORTING

JOBCOUNT = P_JOBCNT

EXCEPTIONS

CANT_CREATE_JOB = 1

INVALID_JOB_DATA = 2

JOBNAME_MISSING = 3

OTHERS = 4.

IF SY-SUBRC <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

SUBMIT ZTEMP2 VIA JOB 'ZTEMP2' NUMBER P_JOBCNT

TO SAP-SPOOL WITHOUT SPOOL DYNPRO

WITH DESTINATION = 'HPMISPRT'

WITH IMMEDIATELY = SPACE

WITH KEEP_IN_SPOOL = 'X' AND RETURN.

CALL FUNCTION 'JOB_CLOSE'

EXPORTING

JOBCOUNT = P_JOBCNT

JOBNAME = 'ZTEMP2'

STRTIMMED = 'X'

PRDMINS = 15

IMPORTING

JOB_WAS_RELEASED = L_RELEASE

EXCEPTIONS

CANT_START_IMMEDIATE = 1

INVALID_STARTDATE = 2

JOBNAME_MISSING = 3

JOB_CLOSE_FAILED = 4

JOB_NOSTEPS = 5

JOB_NOTEX = 6

LOCK_FAILED = 7

INVALID_TARGET = 8

OTHERS = 9.

IF SY-SUBRC <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

Hope the above helps you.

1. If you want to run something immeidately in the background, then you can use the SUBMIT REPORT option.

2. IF you want to schedule the job, you can call the functions, JOB_OPEN, JOB_SUBMIT / SUBMIT REPORT THROUGHT JOB NUMBER, JOB_CLOSE.

<b>Reward points</b>

Regards

2 REPLIES 2
Read only

Former Member
0 Likes
330

hi,,

To make background processing in call transaction just give mode as "N".

&----


*& Report Z243_KA_BD_01

*&

&----


*&

*&

&----


REPORT Z243_KA_BD_01.

TABLES : ZSALES_ORDER.

&----


DATA:OK_CODE LIKE SY-UCOMM.

DATA : BATCH(6),CALL(6) .

DATA :I TYPE I,A TYPE I.

DATA: IT_TAB LIKE TABLE OF ZSALES_ORDER WITH HEADER LINE,

WA_TAB LIKE LINE OF IT_TAB.

DATA: IT_BDCTAB LIKE TABLE OF BDCDATA WITH HEADER LINE .

DATA: IT_MESS LIKE TABLE OF BDCMSGCOLL WITH HEADER LINE,

WA_MESS LIKE LINE OF IT_MESS.

DATA: R(10) TYPE C.

&--


SELECTION-SCREEN--

SELECTION-SCREEN : BEGIN OF SCREEN 9004.

SELECT-OPTIONS MAT_NO FOR ZSALES_ORDER-MATERIAL_NO.SKIP.

SELECT-OPTIONS CUST_NO FOR ZSALES_ORDER-CUSTOMER_NO .SKIP.

PARAMETERS: UPLOADED.

SELECTION-SCREEN : END OF SCREEN 9004.

CALL SCREEN 9002.

&----


*& Module USER_COMMAND_9002 INPUT

&----


  • text

----


MODULE USER_COMMAND_9002 INPUT.

CASE OK_CODE.

WHEN 'UPLOAD'.

CALL SCREEN 9003.

WHEN 'REPORT'.

LEAVE TO LIST-PROCESSING.

WRITE :'NO OF RECORDS READ'.

DESCRIBE TABLE IT_TAB LINES A.

WRITE A.

SELECT COUNT(*) FROM ZSALES_ORDER INTO I.

SKIP.

ULINE.

WRITE: / 'NO OF RECORDS UPLOADED'. WRITE I.

ULINE.

SELECT * FROM ZSALES_ORDER INTO ZSALES_ORDER.

WRITE: / 'MATERIAL NO ', 'CUSTOMER NO','CUSTOMER MATE NO','SLAES ORGANISATION','PROCESSING ORG',' TRAN AMT'.

WRITE: / ZSALES_ORDER-MATERIAL_NO UNDER 'MATERIAL NO '.write:12 sy-vline, ZSALES_ORDER-CUSTOMER_NO UNDER 'CUSTOMER

NO'.write:20 sy-vline,

ZSALES_ORDER-CUST_MAT_NO UNDER 'CUSTOMER MATE NO'.write:30 sy-vline, ZSALES_ORDER-SALE_ORG UNDER 'SLAES

ORGANISATION'.write:40 sy-vline,

ZSALES_ORDER-PROCESS_DATE UNDER 'PROCESSING ORG'.write:50 sy-vline, ZSALES_ORDER-TRAN_AMT UNDER 'TRAN

AMT'.write:60 sy-vline.

ENDSELECT.

SKIP.

ULINE.

WRITE: ' NO OF ERRORS RECORDS'.

DESCRIBE TABLE IT_TAB LINES A.

WRITE: A.

SET PF-STATUS SPACE.

WHEN 'EXIT'.

LEAVE PROGRAM.

ENDCASE.

ENDMODULE. " USER_COMMAND_9002 INPUT

&----


*& Module USER_COMMAND_9003 INPUT

&----


  • text

----


MODULE USER_COMMAND_9003 INPUT.

CLEAR OK_CODE.

IF CALL = 'X'.

CALL SELECTION-SCREEN 9004.

REFRESH IT_TAB.

SELECT * FROM ZSALES_ORDER.

CHECK MAT_NO.

IT_TAB-MATERIAL_NO = ZSALES_ORDER-MATERIAL_NO.

APPEND IT_TAB.

ENDSELECT.

PERFORM GUI_UPLOAD.

PERFORM TRAN USING 'Z243BDC'.

ELSEIF BATCH = 'X'.

CALL SELECTION-SCREEN 9004.

PERFORM GUI_UPLOAD.

PERFORM BATCH_TRANSACTION.

ENDIF.

ENDMODULE. " USER_COMMAND_9003 INPUT

&----


*& Form GUI_UPLOAD

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM GUI_UPLOAD .

CALL FUNCTION 'GUI_UPLOAD'

EXPORTING

FILENAME = 'C:\siva\bdcflatfile.TXT'

FILETYPE = 'ASC'

HAS_FIELD_SEPARATOR = 'X'

TABLES

DATA_TAB = IT_TAB

.

IF SY-SUBRC <> 0.

ENDIF.

LOOP AT IT_TAB INTO WA_TAB.

PERFORM PNAME USING 'Z243_KA_BDC_01' '9001'.

PERFORM FNAME USING 'ZSALES_ORDER-MATERIAL_NO' WA_TAB-MATERIAL_NO.

PERFORM FNAME USING 'ZSALES_ORDER-CUSTOMER_NO' WA_TAB-CUSTOMER_NO.

PERFORM FNAME USING 'ZSALES_ORDER-CUST_MAT_NO' WA_TAB-CUST_MAT_NO.

PERFORM FNAME USING 'ZSALES_ORDER-SALE_ORG' WA_TAB-SALE_ORG.

PERFORM FNAME USING 'ZSALES_ORDER-PROCESS_DATE' WA_TAB-PROCESS_DATE.

PERFORM FNAME USING 'ZSALES_ORDER-TRAN_AMT' WA_TAB-TRAN_AMT.

PERFORM FNAME USING 'BDC_OKCODE' '=SAVE'.

ENDLOOP.

PERFORM PNAME USING 'Z243_KA_BDC_01' '9001'.

PERFORM FNAME USING 'BDC_OKCODE' '=EXIT'.

DESCRIBE TABLE IT_TAB LINES A.

ENDFORM. " GUI_UPLOAD

&----


*& Form PNAME

&----


  • text

----


  • -->P_0105 text

  • -->P_0106 text

----


FORM PNAME USING PRGNAME

SCRNAME.

CLEAR IT_BDCTAB.

IT_BDCTAB-PROGRAM = PRGNAME.

IT_BDCTAB-DYNPRO = SCRNAME.

IT_BDCTAB-DYNBEGIN = 'X'.

APPEND IT_BDCTAB.

ENDFORM. " PNAME

&----


*& Form FNAME

&----


  • text

----


  • -->P_0110 text

  • -->P_WA_TAB_MATERIAL_NO text

----


FORM FNAME USING FIELDNAME

FIELDVAL.

CLEAR : IT_BDCTAB.

IT_BDCTAB-FNAM = FIELDNAME.

IT_BDCTAB-FVAL = FIELDVAL.

APPEND IT_BDCTAB.

ENDFORM. " FNAME

&----


*& Form TRAN

&----


  • text

----


  • -->P_0054 text

----


FORM TRAN USING STRAN.

CALL TRANSACTION STRAN USING IT_BDCTAB

MODE 'N'

UPDATE 'S'

MESSAGES INTO IT_MESS.

ENDFORM. " TRAN

&----


*& Form BATCH_TRANSACTION

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM BATCH_TRANSACTION .

CALL FUNCTION 'BDC_OPEN_GROUP'

EXPORTING

CLIENT = SY-MANDT

GROUP = 'SIVA'

USER = sy-uname.

IF SY-SUBRC <> 0.

ENDIF.

CALL FUNCTION 'BDC_INSERT'

EXPORTING

TCODE = 'Z243BDC'

TABLES

DYNPROTAB = IT_BDCTAB

.

IF SY-SUBRC <> 0.

ENDIF.

CALL FUNCTION 'BDC_CLOSE_GROUP'

.

IF SY-SUBRC <> 0.

ENDIF.

CALL TRANSACTION 'SM35'.

ENDFORM. " BATCH_TRANSACTION

&----


*& Module STATUS_9003 OUTPUT

&----


  • text

----


MODULE STATUS_9003 OUTPUT.

SET PF-STATUS 'SCREEN'.

  • SET TITLEBAR 'xxx'.

ENDMODULE. " STATUS_9003 OUTPUT

check these links

http://www.sappoint.com/abap/bdcconcept.pdf

http://www.sap-img.com/bdc.htm

http://www.sapdevelopment.co.uk/bdc/updhome.htm

Table control in BDC

http://www.sap-img.com/abap/bdc-example-using-table-control-in-bdc.htm

http://www.sapgenie.com/abap/bdc.htm

http://www.sapdevelopment.co.uk/bdc/bdchome.htm

http://www.sap-img.com/abap/learning-bdc-programming.htm

http://www.sap-img.com/sap-download/bdcrecording.zip

http://www.sappoint.com/abap/bdcconcept.pdf

http://www.sap-img.com/abap/question-about-bdc-program.htm

<b>

REward useful points

Siva</b>

Message was edited by:

SivaKumar

Read only

Former Member
0 Likes
331

Hi,

There are two ways for you to handle,

one manually setting up the job through SM36 which is better and convinient,

secondly through program using FM's JOB_OPEN, SUBMIT, JOB_CLOSE.

Find below steps in doing both:

Procedure 1:

1. Goto Trans -> SM36

2. Define a job with the program and variant if any

3. Click on start condition in application tool bar

4. In the pop-up window, click on Date/Time

5. Below you can see a check box "Periodic Job"

6. Next click on Period Values

7. Select "Other Period"

8. Now give '15' for Minutes

9. Save the job

Procedure 2 via Program:

Below is a sample code for the same. Note the ZTEMP2 is the program i am scheduling with 15mins frequency.

DATA: P_JOBCNT LIKE TBTCJOB-JOBCOUNT,

L_RELEASE(1) TYPE c.

CALL FUNCTION 'JOB_OPEN'

EXPORTING

JOBNAME = 'ZTEMP2'

IMPORTING

JOBCOUNT = P_JOBCNT

EXCEPTIONS

CANT_CREATE_JOB = 1

INVALID_JOB_DATA = 2

JOBNAME_MISSING = 3

OTHERS = 4.

IF SY-SUBRC <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

SUBMIT ZTEMP2 VIA JOB 'ZTEMP2' NUMBER P_JOBCNT

TO SAP-SPOOL WITHOUT SPOOL DYNPRO

WITH DESTINATION = 'HPMISPRT'

WITH IMMEDIATELY = SPACE

WITH KEEP_IN_SPOOL = 'X' AND RETURN.

CALL FUNCTION 'JOB_CLOSE'

EXPORTING

JOBCOUNT = P_JOBCNT

JOBNAME = 'ZTEMP2'

STRTIMMED = 'X'

PRDMINS = 15

IMPORTING

JOB_WAS_RELEASED = L_RELEASE

EXCEPTIONS

CANT_START_IMMEDIATE = 1

INVALID_STARTDATE = 2

JOBNAME_MISSING = 3

JOB_CLOSE_FAILED = 4

JOB_NOSTEPS = 5

JOB_NOTEX = 6

LOCK_FAILED = 7

INVALID_TARGET = 8

OTHERS = 9.

IF SY-SUBRC <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

Hope the above helps you.

1. If you want to run something immeidately in the background, then you can use the SUBMIT REPORT option.

2. IF you want to schedule the job, you can call the functions, JOB_OPEN, JOB_SUBMIT / SUBMIT REPORT THROUGHT JOB NUMBER, JOB_CLOSE.

<b>Reward points</b>

Regards