Application Development 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: 

user exits

Former Member
0 Kudos

Hi all,

can any body please send me example for BDC BACK ground process

thanks in advance

Ranjith

4 REPLIES 4

Former Member
0 Kudos

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.

0 Kudos

Hi Rui Almeida

I want bdc for back ground is it that program

Ranjith

0 Kudos

This program is an example to call a transaction using bach input in background.

To save a transc record you must use transaction SHDB.

0 Kudos

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.