Skip to Content
0
Former Member
May 15, 2007 at 03:37 AM

regarding bdc call transaction

34 Views

Hi all,

Iam uploading data from excel sheet to transaction 'cj40' using Call transaction method. In all screen display mode it is showing propery. but when I open the transcation in display mode data was not updated propery. pls suggest me a soluton. here is the code

FORM BDC_POPULATE.

CLEAR BDC_DATA.

LOOP AT W_ITAB.

REFRESH BDC_DATA.

*CLEAR BDC_DATA.

perform bdc_dynpro using 'SAPMKBUD' '0200'.

perform bdc_field using 'BDC_CURSOR'

'PRPS-POSID'.

perform bdc_field using 'BDC_OKCODE'

'=EINK'.

perform bdc_field using 'PRPS-POSID'

W_ITAB-P_PSPNR.

.

perform bdc_field using 'BPDY-VERSN'

'0'.

perform bdc_dynpro using 'SAPLKBPP' '0320'.

*perform bdc_field using 'BDC_CURSOR'

  • 'BPDY-WERT1(01)'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'BPDY-WERT1(01)'

W_ITAB-P_WERT1.

.

*perform bdc_dynpro using 'SAPLKBPP' '0320'.

*perform bdc_field using 'BDC_CURSOR'

  • 'BPDY-WERT1(01)'.

perform bdc_field using 'BDC_OKCODE'

'=SAVE'.

*if sy-subrc = 0.

*write:/ 'record inserted' .

*else.

*write:/ 'record not inserted'.

*endif.

CALL TRANSACTION 'CJ40' USING BDC_DATA MODE 'A'.

IF SY-SUBRC = 0 .

*LOOP AT BDC_MSGCOLL WHERE MSGTYP = 'S' AND MSGNR = '003' AND MSGID =

*'BK'.

WRITE:/ 'RECORD INSERTED'.

ELSE.

WRITE:/ 'RECORD NOT INSERTED'.

*ENDLOOP.

ENDIF.

endloop.

endform. "FORM BDC_DATA

*&----


*

*& FORM BDC_DYNPRO

*

*&----


*

FORM BDC_DYNPRO USING PROGRAM DYNPRO.

CLEAR BDC_DATA.

BDC_DATA-PROGRAM = PROGRAM.

BDC_DATA-DYNPRO = DYNPRO.

BDC_DATA-DYNBEGIN = 'X'.

APPEND BDC_DATA.

ENDFORM. "FORM BDC_DYNPRO

*&----


*

*& FORM BDC_FIELD

*&----


*

FORM BDC_FIELD USING FNAM FVAL.

IF FVAL <> SPACE.

CLEAR BDC_DATA.

BDC_DATA-FNAM = FNAM.

BDC_DATA-FVAL = FVAL.

APPEND BDC_DATA.

ENDIF.

ENDFORM. "FORM BDC_FIELD.