12-09-2007 6:39 AM
hi friends,
i want some help in the bdc call transaction method ,
my requirment is Display the errors at the end of the report and the client will address the errors in the next day in call transaction method.
plz send me the coding of the error log........
plz help me...........
regards
bindu
12-09-2007 6:51 AM
Hi,
Welcome to SDN..
Try with the following fm .
DATA :it_messtab TYPE TABLE OF bdcmsgcoll.
DATA: wa_messtab TYPE bdcmsgcoll.
wa_textout TYPE t100-text.
LOOP AT it_messtab INTO wa_messtab .
CALL FUNCTION 'MESSAGE_TEXT_BUILD'
EXPORTING
msgid = wa_messtab-msgid
msgnr = wa_messtab-msgnr
msgv1 = wa_messtab-msgv1
msgv2 = wa_messtab-msgv2
msgv3 = wa_messtab-msgv3
msgv4 = wa_messtab-msgv4
IMPORTING
message_text_output = wa_textout.
MESSAGE wa_textout TYPE wa_messtab-msgtyp.
ENDLOOP.
Regards
12-09-2007 7:17 AM
thanku kiran garu,
it working but is display final out put like particular record is updated
i want prticular document number is updated and particular is not updated.
display in the out put.
previously i written code is
CALL TRANSACTION 'FB02' USING i_bdcdata MODE 'N'
UPDATE 'A'
MESSAGES INTO i_bdcmsgcoll.
IF sy-subrc EQ 0.
WRITE:/ 'reference key field is updated'.
ENDIF.
REFRESH i_bdcdata.
ENDLOOP.
plz help me........
bindu
12-09-2007 11:32 AM
Hi Bindu,
Check the below PG for ur requirement.
report ZST_BDC_XK01PG
no standard page heading line-size 255.
TABLES : RF02K,LFA1,LFBK,LFB1,LFM1.
DATA: BEGIN OF W_VEN ,
LIFNR TYPE RF02K-LIFNR,
KTOKK TYPE RF02K-KTOKK,
NAME1 TYPE LFA1-NAME1,
SORTL TYPE LFA1-SORTL,
LAND1 TYPE LFA1-LAND1,
SPRAS TYPE LFA1-SPRAS,
END OF W_VEN,
T_VEN LIKE STANDARD TABLE OF W_VEN INITIAL SIZE 0,
T_BDCDATA TYPE STANDARD TABLE OF BDCDATA INITIAL SIZE 0,
W_BDCDATA TYPE BDCDATA,
T_BDCMSGCOLL TYPE STANDARD TABLE OF BDCMSGCOLL,
W_BDCMSGCOLL TYPE BDCMSGCOLL,
G_FLAG.
include bdcrecx1.
start-of-selection.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = 'C:\TEMP1.TXT'
FILETYPE = 'ASC'
TABLES
DATA_TAB = T_VEN.
*perform open_group.
LOOP AT T_VEN INTO W_VEN.
REFRESH BDCDATA.
perform bdc_dynpro using 'SAPMF02K' '0100'.
perform bdc_field using 'BDC_CURSOR'
'RF02K-KTOKK'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'RF02K-LIFNR'
W_VEN-LIFNR.
perform bdc_field using 'RF02K-KTOKK'
W_VEN-KTOKK.
perform bdc_dynpro using 'SAPMF02K' '0110'.
perform bdc_field using 'BDC_CURSOR'
'LFA1-SPRAS'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'LFA1-NAME1'
W_VEN-NAME1.
perform bdc_field using 'LFA1-SORTL'
W_VEN-SORTL.
perform bdc_field using 'LFA1-LAND1'
W_VEN-LAND1.
perform bdc_field using 'LFA1-SPRAS'
W_VEN-SPRAS.
perform bdc_dynpro using 'SAPMF02K' '0120'.
perform bdc_field using 'BDC_CURSOR'
'LFA1-KUNNR'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_dynpro using 'SAPMF02K' '0130'.
perform bdc_field using 'BDC_CURSOR'
'LFBK-BANKS(01)'.
perform bdc_field using 'BDC_OKCODE'
'=ENTR'.
perform bdc_dynpro using 'SAPLSPO1' '0300'.
perform bdc_field using 'BDC_OKCODE'
'=YES'.
*perform bdc_transaction using 'XK01'.
CALL TRANSACTION 'XK01' USING BDCDATA
MODE 'A'
UPDATE 'A'
MESSAGES INTO T_BDCMSGCOLL.
IF SY-SUBRC <> 0.
IF G_FLAG IS INITIAL.
CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING
CLIENT = SY-MANDT
DEST = FILLER8
GROUP = 'ZSS'
HOLDDATE = FILLER8
KEEP = 'X'
USER = SY-UNAME
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
G_FLAG = 'X'.
ENDIF.
CALL FUNCTION 'BDC_INSERT'
EXPORTING
TCODE = 'XK01'
TABLES
DYNPROTAB = BDCDATA
EXCEPTIONS
INTERNAL_ERROR = 1
NOT_OPEN = 2
QUEUE_ERROR = 3
TCODE_INVALID = 4
PRINTING_INVALID = 5
POSTING_INVALID = 6
OTHERS = 7
.IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDIF.
ENDLOOP.
IF G_FLAG = 'X'.
CALL FUNCTION 'BDC_CLOSE_GROUP'.
ENDIF.
LOOP AT T_BDCMSGCOLL INTO W_BDCMSGCOLL.
WRITE: W_BDCMSGCOLL-DYNAME,
W_BDCMSGCOLL-DYNUMB,
W_BDCMSGCOLL-MSGTYP,
W_BDCMSGCOLL-MSGSPRA,
W_BDCMSGCOLL-MSGID,
W_BDCMSGCOLL-MSGNR,
W_BDCMSGCOLL-MSGV1,
W_BDCMSGCOLL-MSGV2,
W_BDCMSGCOLL-MSGV3,
W_BDCMSGCOLL-MSGV4.
ENDLOOP.