It is because you cannot create the field entries without a dynpro i.e.:
perform bdc_dynpro using ***** "(you must have a dynpro entry here)
perform bdc_field using 'RF05A-NEWBS'
'28'.
perform bdc_field using 'RF05A-NEWKO'
IT_FINAL-VENDOR. "'304851'.
perform bdc_dynpro using 'SAPMF05A' '0302'.
perform bdc_field using 'BDC_CURSOR'
'BSEG-ZUONR'.
perform bdc_field using 'BDC_OKCODE'
'=BU'.
perform bdc_field using 'BSEG-WRBTR'
IT_FINAL-WRBTR. "'*'.
perform bdc_field using 'BSEG-GSBER'
IT_FINAL-GSBER. "'2401'.
perform bdc_field using 'BSEG-ZFBDT'
IT_FINAL-BUDAT. "'14.06.2013'.
perform bdc_field using 'BSEG-ZUONR'
IT_FINAL-ZUONR. "'AMOUNT ADJ'.
perform bdc_field using 'BSEG-SGTXT'
IT_FINAL-SGTXT. "'AMOUNT TRF TO CUST'.