hi,
i am get a problem in my call transaction programm that it will print success and error of programm 2 times but i want it only one time as the call transaction is executed i send my code to u plz help me.
o/p as
Document 1600000833 was posted in company code 8601
Document 1600000833 was posted in company code 8601
Document 1600000834 was posted in company code 8601
Document 1600000834 was posted in company code 8601
Document 1600000835 was posted in company code 8601
Document 1600000835 was posted in company code 8601
on screen when transaction executed
START-OF-SELECTION.
PERFORM upload USING p_file.
IF p_back EQ c_x.
PERFORM bdc.
ELSEIF p_onli EQ c_x.
PERFORM bdc.
ENDIF.
&----
*& Form bdc
&----
text
----
FORM bdc.
LOOP AT lt_output.
v_index = sy-tabix.
REFRESH i_bdcdata.
CLEAR i_bdcdata.
READ TABLE lt_output INDEX 1.
PERFORM bdc_dynpro USING 'SAPMF05A' '0100' c_x.
PERFORM bdc_field USING 'BDC_CURSOR' 'RF05A-NEWKO'.
PERFORM bdc_field USING 'BDC_OKCODE' '/00'.
PERFORM bdc_field USING 'BKPF-BLDAT' lt_output-bldat.
PERFORM bdc_field USING 'BKPF-BLART' lt_output-blart.
PERFORM bdc_field USING 'BKPF-BUKRS' lt_output-bukrs.
PERFORM bdc_field USING 'BKPF-BUDAT' lt_output-budat.
PERFORM bdc_field USING 'BKPF-MONAT' lt_output-monat.
PERFORM bdc_field USING 'BKPF-WAERS' lt_output-waers.
PERFORM bdc_field USING 'BKPF-XBLNR' lt_output-xblnr.
PERFORM bdc_field USING 'FS006-DOCID' lt_output-docid.
PERFORM bdc_field USING 'RF05A-NEWBS' lt_output-newbs.
PERFORM bdc_field USING 'RF05A-NEWKO' lt_output-newko.
PERFORM bdc_dynpro USING 'SAPMF05A' '0302' c_x.
PERFORM bdc_field USING 'BDC_CURSOR' 'RF05A-NEWKO'.
PERFORM bdc_field USING 'BDC_OKCODE' '/00'.
PERFORM bdc_field USING 'BSEG-WRBTR' lt_output-wrbtr.
PERFORM bdc_field USING 'BSEG-ZFBDT' lt_output-zfbdt.
PERFORM bdc_field USING 'RF05A-NEWBS' lt_output-newbs2.
PERFORM bdc_field USING 'RF05A-NEWKO' lt_output-newko2.
PERFORM bdc_dynpro USING 'SAPMF05A' '0301' c_x.
PERFORM bdc_field USING 'BDC_CURSOR' 'BSEG-WRBTR'.
PERFORM bdc_field USING 'BDC_OKCODE' '=BU'.
PERFORM bdc_field USING 'BSEG-WRBTR' lt_output-wrbtr2.
PERFORM f_call_transaction.
ENDLOOP.
ENDFORM. "bdc
----
FORM BDC_DYNPRO *
----
........ *
----
--> PROGRAM *
--> DYNPRO *
----
FORM bdc_dynpro USING program dynpro dynbegin.
i_bdcdata-program = program.
i_bdcdata-dynpro = dynpro.
i_bdcdata-dynbegin = dynbegin.
APPEND i_bdcdata.
CLEAR i_bdcdata.
ENDFORM. "BDC_DYNPRO
----
FORM *
----
........ *
----
FORM bdc_field USING fnam fval.
i_bdcdata-fnam = fnam.
i_bdcdata-fval = fval.
APPEND i_bdcdata.
CLEAR i_bdcdata.
ENDFORM. "BDC_FIELD
&----
*& Form upload
&----
text
----
--> p1 text
<-- p2 text
----
FORM upload USING p_filename.
DATA: p_file1 TYPE string.
p_file1 = p_file.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = p_file1
filetype = 'DAT'
TABLES
data_tab = lt_output.
ENDFORM. " upload
----
FORM F_CALL_TRANSACTION *
----
This subroutine executes the F-27 BDC transaction *
----
FORM f_call_transaction.
REFRESH it_messtab.
IF p_back EQ c_x.
Execute the BDC transaction in background mode
CALL TRANSACTION c_f27 USING i_bdcdata
MODE c_n
MESSAGES INTO it_messtab.
*Get the BDC error messages
PERFORM f_error_handling USING it_messtab-msgid
it_messtab-msgnr
it_messtab-msgv1
it_messtab-msgv2
it_messtab-msgv3
it_messtab-msgv4.
ELSEIF p_onli EQ c_x.
Execute the BDC transaction in online mode
CALL TRANSACTION c_f27 USING i_bdcdata
MODE c_a
MESSAGES INTO it_messtab.
*Get the BDC error messages
PERFORM f_error_handling USING it_messtab-msgid
it_messtab-msgnr
it_messtab-msgv1
it_messtab-msgv2
it_messtab-msgv3
it_messtab-msgv4.
ENDIF.
ENDFORM. " f_call_transaction
*----
FORM f_error_handling
*
*----
This subroutine populates the BDC table
*
*----
FORM f_error_handling USING it_messtab-msgid
it_messtab-msgnr
it_messtab-msgv1
it_messtab-msgv2
it_messtab-msgv3
it_messtab-msgv4.
Get the BDC error messages
LOOP AT it_messtab.
CLEAR message.
CALL FUNCTION 'FORMAT_MESSAGE'
EXPORTING
id = sy-msgid
lang = 'EN'
no = sy-msgno
v1 = sy-msgv1
v2 = sy-msgv2
v3 = sy-msgv3
v4 = sy-msgv4
IMPORTING
msg = message.
CASE it_messtab-msgtyp.
WHEN 'S'.
WRITE:/ message.
CLEAR message.
WHEN 'E'.
FORMAT COLOR 6 ON.
WRITE:/ message.
CLEAR message.
ENDCASE.
ENDLOOP.
ENDFORM. " f_error_handling
plz send me the solution i will give points its urgent.
thanks
jayant