BDC Sample code
Not a sample program but only the relevant sections of the program so that copying is easy.
* Data Declaration
DATA: lt_bdcdata TYPE STANDARD TABLE OF bdcdata INITIAL SIZE 0,
ls_bdcdata TYPE bdcdata,
ls_msgbdc TYPE bdcmsgcoll,
lt_msgbdc TYPE cfb_t_bdcmsgcoll,
ls_options TYPE ctu_params.
* One screen and one variable
* It can be added in a subroutine as well
ls_bdcdata-program = 'SAPMV50A'.
ls_bdcdata-dynpro = '4104'.
ls_bdcdata-dynbegin = abap_true.
APPEND ls_bdcdata TO lt_bdcdata.
CLEAR ls_bdcdata.
ls_bdcdata-fnam = 'BDC_CURSOR'.
ls_bdcdata-fval = 'LIKP-VBELN'.
APPEND ls_bdcdata TO lt_bdcdata.
CLEAR ls_bdcdata.
ls_bdcdata-fnam = 'BDC_OKCODE'.
ls_bdcdata-fval = '/00'. "Enter
APPEND ls_bdcdata TO lt_bdcdata.
CLEAR ls_bdcdata.
ls_bdcdata-fnam = 'LIKP-VBELN'.
ls_bdcdata-fval = im_delivery.
APPEND ls_bdcdata TO lt_bdcdata.
CLEAR ls_bdcdata.
* Populate the options
ls_options-dismode = 'N'.
ls_options-updmode = 'S'.
ls_options-racommit = abap_true.
* Call Transaction
CALL TRANSACTION 'VL32N' USING lt_bdcdata
OPTIONS FROM ls_options
MESSAGES INTO lt_msgbdc.
* Error Handling
IF sy-subrc = 0.
READ TABLE lt_msgbdc INTO ls_msgbdc
WITH KEY msgtyp = 'S'.
IF sy-subrc = 0.
* Success
ELSE
*Error
ENDIF.
ELSE.
READ TABLE lt_msgbdc INTO ls_msgbdc
WITH KEY msgtyp = 'S'.
IF sy-subrc = 0.
* Success
ELSE.
* Error
ENDIF.
ENDIF.

