10-20-2006 4:36 PM
Hi all,
can any body please send me example for BDC BACK ground process
thanks in advance
Ranjith
10-20-2006 4:41 PM
This is a especific function that show how BDC works:
FUNCTION z_change_packaging_data.
*"----
""Local interface:
*" IMPORTING
*" VALUE(IDOC_NUMBER) LIKE EDIDC-DOCNUM
*" VALUE(SALES_ORDER) LIKE VBAP-VBELN OPTIONAL
*" EXPORTING
*" REFERENCE(STATUS) TYPE C
*" TABLES
*" IT_MESS STRUCTURE BDCMSGCOLL
*" IT_EDIDD STRUCTURE EDIDD OPTIONAL
*"----
DATA: w_z1edk00 TYPE z1edk00,
w_zavbap TYPE zavbap,
w_numint TYPE i,
w_check TYPE c.
clean
REFRESH bdcdata.
read idoc data
IF it_edidd[] IS INITIAL.
CALL FUNCTION 'IDOC_READ_COMPLETELY'
EXPORTING
document_number = idoc_number
TABLES
int_edidd = it_edidd.
ENDIF.
get idoc data
READ TABLE it_edidd WITH KEY segnam = 'Z1EDK00'.
MOVE it_edidd-sdata TO w_z1edk00.
MOVE w_z1edk00-zzpck TO w_zavbap-zzcodepack.
MOVE w_z1edk00-spq TO w_numint.
MOVE w_numint TO w_zavbap-zzstpackqty.
MOVE w_z1edk00-cat1 TO w_zavbap-zzcat1cont.
MOVE w_z1edk00-shelflife TO w_zavbap-zzshelflife.
MOVE w_z1edk00-haz TO w_zavbap-zzcodemd.
MOVE w_z1edk00-tariffno TO w_zavbap-zzcustarif.
insert idoc packing data in sales order data
PERFORM bdc_dynpro USING 'SAPMV45A' '0102'.
PERFORM bdc_field USING 'BDC_CURSOR' 'VBAK-VBELN'.
PERFORM bdc_field USING 'BDC_OKCODE' '/00'.
PERFORM bdc_field USING 'VBAK-VBELN' sales_order.
PERFORM bdc_dynpro USING 'SAPMV45A' '4001'.
PERFORM bdc_field USING 'BDC_OKCODE' '=PZKU'.
PERFORM bdc_field USING 'BDC_CURSOR' 'VBAP-POSNR(01)'.
PERFORM bdc_field USING 'RV45A-VBAP_SELKZ(01)' 'X'.
PERFORM bdc_dynpro USING 'SAPMV45A' '4003'.
PERFORM bdc_field USING 'BDC_OKCODE' '=SICH'.
PERFORM bdc_field USING 'VBAP-ZZCODEPACK' w_zavbap-zzcodepack.
PERFORM bdc_field USING 'VBAP-ZZSTPACKQTY' w_zavbap-zzstpackqty.
PERFORM bdc_field USING 'VBAP-ZZCAT1CONT' w_zavbap-zzcat1cont.
PERFORM bdc_field USING 'VBAP-ZZSHELFLIFE' w_zavbap-zzshelflife.
PERFORM bdc_field USING 'VBAP-ZZCODEMD' w_zavbap-zzcodemd.
PERFORM bdc_field USING 'VBAP-ZZCUSTARIF' w_zavbap-zzcustarif.
w_check = 'X'.
SET PARAMETER ID 'ZPACK' FIELD w_check.
CALL TRANSACTION 'VA02' USING bdcdata
MODE 'N'
UPDATE 'S'
MESSAGES INTO it_mess.
CLEAR w_check.
SET PARAMETER ID 'ZPACK' FIELD w_check.
LOOP AT it_mess WHERE msgid = 'V1'.
IF it_mess-msgnr = '260'
OR it_mess-msgnr = '261'
OR it_mess-msgnr = '311'.
sales order well changed
status = 'X'.
EXIT.
ENDIF.
ENDLOOP.
ENDFUNCTION.
----
Form BDC_DYNPRO Calls the program and the screen in CT *
----
FORM bdc_dynpro USING program dynpro.
CLEAR bdcdata.
bdcdata-program = program.
bdcdata-dynpro = dynpro.
bdcdata-dynbegin = 'X'.
APPEND bdcdata.
ENDFORM.
----
Form BDC_FIELD Insert Data into Field in the CT Screens *
----
FORM bdc_field USING fnam fval.
IF NOT ( fval IS INITIAL ).
CLEAR bdcdata.
bdcdata-fnam = fnam.
bdcdata-fval = fval.
APPEND bdcdata.
ENDIF.
ENDFORM.
10-20-2006 4:50 PM
Hi Rui Almeida
I want bdc for back ground is it that program
Ranjith
10-20-2006 4:55 PM
This program is an example to call a transaction using bach input in background.
To save a transc record you must use transaction SHDB.
10-20-2006 4:58 PM
Hi Ranjith,
Here is a BDC program used for creating SAP users with profiles, address, defaults, and parameters
REPORT ZSAPUSER.
TABLES: USR02.
DATA: BEGIN OF BDC_TAB1 OCCURS 5.
INCLUDE STRUCTURE BDCDATA.
DATA: END OF BDC_TAB1.
DATA: USER(12) VALUE 'DDDDDDDD',
INI_PWD(8) VALUE 'INIT',
DIALOG VALUE 'X',
PROFILE1(12) VALUE 'SAP_ALL',
PROFILE2(12) VALUE 'SAP_NEW',
FULL_NAME(30) VALUE 'Full name',
PRINT_IMMED VALUE 'X',
PRINTER_NAME(4) VALUE 'SISK',
PARAMETER(3) VALUE 'RID',
PAR_VAL(18) VALUE 'YUSERADD'.
START-OF-SELECTION.
PERFORM CREATE_USER.
CALL TRANSACTION 'SU01' USING BDC_TAB1 MODE 'N' UPDATE 'S'.
PERFORM ADD_ADDRESS_DATA.
CALL TRANSACTION 'SU01' USING BDC_TAB1 MODE 'N' UPDATE 'S'.
PERFORM ADD_DEFAULTS.
CALL TRANSACTION 'SU01' USING BDC_TAB1 MODE 'N' UPDATE 'S'.
PERFORM ADD_PARAMS.
CALL TRANSACTION 'SU01' USING BDC_TAB1 MODE 'N' UPDATE 'S'.
----
FORM CREATE_USER *
----
........ *
----
FORM CREATE_USER.
REFRESH BDC_TAB1.
CLEAR BDC_TAB1.
**************************************************1
MOVE: 'SAPMS01J' TO BDC_TAB1-PROGRAM,
'200' TO BDC_TAB1-DYNPRO,
'X' TO BDC_TAB1-DYNBEGIN.
APPEND BDC_TAB1.CLEAR BDC_TAB1.
MOVE: 'XU200-XUSER' TO BDC_TAB1-FNAM,
USER TO BDC_TAB1-FVAL.
APPEND BDC_TAB1.CLEAR BDC_TAB1.
MOVE: 'BDC_OKCODE' TO BDC_TAB1-FNAM,
'/6' TO BDC_TAB1-FVAL.
APPEND BDC_TAB1.CLEAR BDC_TAB1.
**************************************************2
MOVE: 'SAPLSUSB' TO BDC_TAB1-PROGRAM,
'0705' TO BDC_TAB1-DYNPRO,
'X' TO BDC_TAB1-DYNBEGIN.
APPEND BDC_TAB1.CLEAR BDC_TAB1.
MOVE: 'XU213-BCODE' TO BDC_TAB1-FNAM,
INI_PWD TO BDC_TAB1-FVAL.
APPEND BDC_TAB1.CLEAR BDC_TAB1.
MOVE: 'XU213-BCODE2' TO BDC_TAB1-FNAM,
INI_PWD TO BDC_TAB1-FVAL.
APPEND BDC_TAB1.CLEAR BDC_TAB1.
MOVE: 'XU213-DIA' TO BDC_TAB1-FNAM,
DIALOG TO BDC_TAB1-FVAL.
APPEND BDC_TAB1.CLEAR BDC_TAB1.
MOVE: 'XU213-PROFILE(1)' TO BDC_TAB1-FNAM,
PROFILE1 TO BDC_TAB1-FVAL.
APPEND BDC_TAB1.CLEAR BDC_TAB1.
MOVE: 'XU213-PROFILE(2)' TO BDC_TAB1-FNAM,
PROFILE2 TO BDC_TAB1-FVAL.
APPEND BDC_TAB1.CLEAR BDC_TAB1.
MOVE: 'BDC_OKCODE' TO BDC_TAB1-FNAM,
'/5' TO BDC_TAB1-FVAL.
APPEND BDC_TAB1.CLEAR BDC_TAB1.
**************************************************3
MOVE: 'SAPLSUSB' TO BDC_TAB1-PROGRAM,
'701' TO BDC_TAB1-DYNPRO,
'X' TO BDC_TAB1-DYNBEGIN.
APPEND BDC_TAB1.CLEAR BDC_TAB1.
MOVE: 'BDC_OKCODE' TO BDC_TAB1-FNAM,
'CONT' TO BDC_TAB1-FVAL.
APPEND BDC_TAB1.CLEAR BDC_TAB1.
**************************************************4
MOVE: 'SAPLSUSB' TO BDC_TAB1-PROGRAM,
'702' TO BDC_TAB1-DYNPRO,
'X' TO BDC_TAB1-DYNBEGIN.
APPEND BDC_TAB1.CLEAR BDC_TAB1.
MOVE: 'BDC_OKCODE' TO BDC_TAB1-FNAM,
'CONT' TO BDC_TAB1-FVAL.
APPEND BDC_TAB1.CLEAR BDC_TAB1.
**************************************************5
MOVE: 'SAPLSUSB' TO BDC_TAB1-PROGRAM,
'703' TO BDC_TAB1-DYNPRO,
'X' TO BDC_TAB1-DYNBEGIN.
APPEND BDC_TAB1.CLEAR BDC_TAB1.
MOVE: 'BDC_OKCODE' TO BDC_TAB1-FNAM,
'/12' TO BDC_TAB1-FVAL.
APPEND BDC_TAB1.CLEAR BDC_TAB1.
**************************************************6
MOVE: 'SAPMS01J' TO BDC_TAB1-PROGRAM,
'200' TO BDC_TAB1-DYNPRO,
'X' TO BDC_TAB1-DYNBEGIN.
APPEND BDC_TAB1.CLEAR BDC_TAB1.
MOVE: 'BDC_OKCODE' TO BDC_TAB1-FNAM,
'/3' TO BDC_TAB1-FVAL.
APPEND BDC_TAB1.CLEAR BDC_TAB1.
ENDFORM.
----
FORM GENERATE_BDC_DATA_CR *
----
........ *
----
FORM ADD_ADDRESS_DATA.
REFRESH BDC_TAB1.
CLEAR BDC_TAB1.
**************************************************1
MOVE: 'SAPMS01J' TO BDC_TAB1-PROGRAM,
'200' TO BDC_TAB1-DYNPRO,
'X' TO BDC_TAB1-DYNBEGIN.
APPEND BDC_TAB1.CLEAR BDC_TAB1.
MOVE: 'XU200-XUSER' TO BDC_TAB1-FNAM,
USER TO BDC_TAB1-FVAL.
APPEND BDC_TAB1.CLEAR BDC_TAB1.
MOVE: 'BDC_OKCODE' TO BDC_TAB1-FNAM,
'/18' TO BDC_TAB1-FVAL.
APPEND BDC_TAB1.CLEAR BDC_TAB1.
**************************************************2
MOVE: 'SAPMS01J' TO BDC_TAB1-PROGRAM,
'320' TO BDC_TAB1-DYNPRO,
'X' TO BDC_TAB1-DYNBEGIN.
APPEND BDC_TAB1.CLEAR BDC_TAB1.
MOVE: 'USR03-NAME1' TO BDC_TAB1-FNAM,
FULL_NAME TO BDC_TAB1-FVAL.
APPEND BDC_TAB1.CLEAR BDC_TAB1.
MOVE: 'BDC_OKCODE' TO BDC_TAB1-FNAM,
'/11' TO BDC_TAB1-FVAL.
APPEND BDC_TAB1.CLEAR BDC_TAB1.
MOVE: 'SAPMS01J' TO BDC_TAB1-PROGRAM,
'320' TO BDC_TAB1-DYNPRO,
'X' TO BDC_TAB1-DYNBEGIN.
APPEND BDC_TAB1.CLEAR BDC_TAB1.
MOVE: 'BDC_OKCODE' TO BDC_TAB1-FNAM,
'/3' TO BDC_TAB1-FVAL.
APPEND BDC_TAB1.CLEAR BDC_TAB1.
**************************************************3
MOVE: 'SAPMS01J' TO BDC_TAB1-PROGRAM,
'200' TO BDC_TAB1-DYNPRO,
'X' TO BDC_TAB1-DYNBEGIN.
APPEND BDC_TAB1.CLEAR BDC_TAB1.
MOVE: 'BDC_OKCODE' TO BDC_TAB1-FNAM,
'/3' TO BDC_TAB1-FVAL.
APPEND BDC_TAB1.CLEAR BDC_TAB1.
ENDFORM.
----
FORM ADD_ADDRESS_DATA *
----
........ *
----
FORM ADD_DEFAULTS.
REFRESH BDC_TAB1.
CLEAR BDC_TAB1.
**************************************************1
MOVE: 'SAPMS01J' TO BDC_TAB1-PROGRAM,
'200' TO BDC_TAB1-DYNPRO,
'X' TO BDC_TAB1-DYNBEGIN.
APPEND BDC_TAB1.CLEAR BDC_TAB1.
MOVE: 'XU200-XUSER' TO BDC_TAB1-FNAM,
USER TO BDC_TAB1-FVAL.
APPEND BDC_TAB1.CLEAR BDC_TAB1.
MOVE: 'BDC_OKCODE' TO BDC_TAB1-FNAM,
'/17' TO BDC_TAB1-FVAL.
APPEND BDC_TAB1.CLEAR BDC_TAB1.
**************************************************2
MOVE: 'SAPMS01J' TO BDC_TAB1-PROGRAM,
'310' TO BDC_TAB1-DYNPRO,
'X' TO BDC_TAB1-DYNBEGIN.
APPEND BDC_TAB1.CLEAR BDC_TAB1.
MOVE: 'USR01-SPLD' TO BDC_TAB1-FNAM,
PRINTER_NAME TO BDC_TAB1-FVAL.
APPEND BDC_TAB1.CLEAR BDC_TAB1.
MOVE: 'XU310-SPDB1' TO BDC_TAB1-FNAM,
PRINT_IMMED TO BDC_TAB1-FVAL.
APPEND BDC_TAB1.CLEAR BDC_TAB1.
MOVE: 'BDC_OKCODE' TO BDC_TAB1-FNAM,
'/11' TO BDC_TAB1-FVAL.
APPEND BDC_TAB1.CLEAR BDC_TAB1.
MOVE: 'SAPMS01J' TO BDC_TAB1-PROGRAM,
'320' TO BDC_TAB1-DYNPRO,
'X' TO BDC_TAB1-DYNBEGIN.
APPEND BDC_TAB1.CLEAR BDC_TAB1.
MOVE: 'BDC_OKCODE' TO BDC_TAB1-FNAM,
'/3' TO BDC_TAB1-FVAL.
APPEND BDC_TAB1.CLEAR BDC_TAB1.
**************************************************3
MOVE: 'SAPMS01J' TO BDC_TAB1-PROGRAM,
'200' TO BDC_TAB1-DYNPRO,
'X' TO BDC_TAB1-DYNBEGIN.
APPEND BDC_TAB1.CLEAR BDC_TAB1.
MOVE: 'BDC_OKCODE' TO BDC_TAB1-FNAM,
'/3' TO BDC_TAB1-FVAL.
APPEND BDC_TAB1.CLEAR BDC_TAB1.
ENDFORM.
----
FORM ADD_DEFAULTS *
----
........ *
----
FORM ADD_PARAMS.
REFRESH BDC_TAB1.
CLEAR BDC_TAB1.
**************************************************1
MOVE: 'SAPMS01J' TO BDC_TAB1-PROGRAM,
'200' TO BDC_TAB1-DYNPRO,
'X' TO BDC_TAB1-DYNBEGIN.
APPEND BDC_TAB1.CLEAR BDC_TAB1.
MOVE: 'XU200-XUSER' TO BDC_TAB1-FNAM,
USER TO BDC_TAB1-FVAL.
APPEND BDC_TAB1.CLEAR BDC_TAB1.
MOVE: 'BDC_OKCODE' TO BDC_TAB1-FNAM,
'/19' TO BDC_TAB1-FVAL.
APPEND BDC_TAB1.CLEAR BDC_TAB1.
**************************************************2
MOVE: 'SAPMS01J' TO BDC_TAB1-PROGRAM,
'350' TO BDC_TAB1-DYNPRO,
'X' TO BDC_TAB1-DYNBEGIN.
APPEND BDC_TAB1.CLEAR BDC_TAB1.
MOVE: 'XU350-PARID(1)' TO BDC_TAB1-FNAM,
PARAMETER TO BDC_TAB1-FVAL.
APPEND BDC_TAB1.CLEAR BDC_TAB1.
MOVE: 'XU350-PARVA(1)' TO BDC_TAB1-FNAM,
PAR_VAL TO BDC_TAB1-FVAL.
APPEND BDC_TAB1.CLEAR BDC_TAB1.
MOVE: 'BDC_OKCODE' TO BDC_TAB1-FNAM,
'/11' TO BDC_TAB1-FVAL.
APPEND BDC_TAB1.CLEAR BDC_TAB1.
MOVE: 'SAPMS01J' TO BDC_TAB1-PROGRAM,
'320' TO BDC_TAB1-DYNPRO,
'X' TO BDC_TAB1-DYNBEGIN.
APPEND BDC_TAB1.CLEAR BDC_TAB1.
MOVE: 'BDC_OKCODE' TO BDC_TAB1-FNAM,
'/3' TO BDC_TAB1-FVAL.
APPEND BDC_TAB1.CLEAR BDC_TAB1.
**************************************************3
MOVE: 'SAPMS01J' TO BDC_TAB1-PROGRAM,
'200' TO BDC_TAB1-DYNPRO,
'X' TO BDC_TAB1-DYNBEGIN.
APPEND BDC_TAB1.CLEAR BDC_TAB1.
MOVE: 'BDC_OKCODE' TO BDC_TAB1-FNAM,
'/3' TO BDC_TAB1-FVAL.
APPEND BDC_TAB1.CLEAR BDC_TAB1.
ENDFORM.