Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Error Files in BDC

Former Member
0 Likes
686

Hi,

I had done an uploading using call transaction method.

I had handled the error records in Exel sheet. But the requirement is to show

only the record having the error field.

For example if we have an error record like

Rec no date Begin balance ending balance posting date

75 20070426 85000 90000 20070426

if there is any error in date it must display only the date field not the whole record..like that if there is any error in balance it must show only the balance field in excel sheet .

Iam attaching the code below..

&----


*

*& Form CALL_TRANSACTION

&----


FORM call_transaction.

DATA: l_index LIKE sy-tabix.

CALL TRANSACTION c_tcode USING bdcdata

MODE c_mode

MESSAGES INTO messtab.

*POPULATE THE ERROR RECORDS INTO INTERNAL TABLE

IF SY-SUBRC NE 0.

GU_DOWNLOAD-HBKID = GU_UPLOAD-HBKID.

  • GU_DOWNLOAD-HBKID = GU_UPLOAD-HBKID.

GU_DOWNLOAD-HKTID = GU_UPLOAD-HKTID.

GU_DOWNLOAD-AZNUM = GU_UPLOAD-AZNUM.

GU_DOWNLOAD-AZDAT = GU_UPLOAD-AZDAT.

GU_DOWNLOAD-ESALD = GU_UPLOAD-ESALD.

GU_DOWNLOAD-SSALD = GU_UPLOAD-SSALD.

GU_DOWNLOAD-BUDTM = GU_UPLOAD-BUDTM.

GU_DOWNLOAD-MNAM1 = GU_UPLOAD-MNAM1.

GU_DOWNLOAD-JNAME = GU_UPLOAD-JNAME.

GU_DOWNLOAD-VGMAN = GU_UPLOAD-VGMAN.

GU_DOWNLOAD-VALUT = GU_UPLOAD-VALUT.

GU_DOWNLOAD-KWBTR = GU_UPLOAD-KWBTR.

GU_DOWNLOAD-CHECT_KF = GU_UPLOAD-CHECT_KF.

APPEND GU_DOWNLOAD.

*DISPLAY THE PROGRESS OF PROCESS

CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'

EXPORTING

PERCENTAGE = 0

TEXT = 'Downloading is in process'.

.

*DOWNLOADING THE ERROR RECORD

LV_OUT = P_FNAME2.

CALL FUNCTION 'GUI_DOWNLOAD'

EXPORTING

FILENAME = LV_OUT

WRITE_FIELD_SEPARATOR = 'X'

TABLES

DATA_TAB = GU_DOWNLOAD.

ENDIF.

IF NOT messtab[] IS INITIAL.

PERFORM format_message.

ENDIF.

ENDFORM. " CALL_TRANSACTION

&----


*& Form DISPLAY-DATA

&----


FORM display-data.

SKIP.

WRITE: 'SY-SUBRC' , sy-subrc.

ENDFORM. " DISPLAY-DATA

5 REPLIES 5
Read only

Former Member
0 Likes
629

Hi can anyone help me regarding the error files in BDC

.

Read only

0 Likes
629

hi

i think you have program manually for fulfilling your requirement..

Have a look at the program RSBDCLOG.

Cheers,

Hakim

Read only

Former Member
0 Likes
629

u have to make use of MESSTAB , based on the entries of this table u have to upload .

MESSAGES INTO messtab.

*POPULATE THE ERROR RECORDS INTO INTERNAL TABLE

IF SY-SUBRC NE 0.

<b>loop at messtab where msgtype = 'E'.

GU_DOWNLOAD-HBKID = GU_UPLOAD-HBKID.

  • GU_DOWNLOAD-HBKID = GU_UPLOAD-HBKID.

GU_DOWNLOAD-HKTID = GU_UPLOAD-HKTID.

GU_DOWNLOAD-AZNUM = GU_UPLOAD-AZNUM.

GU_DOWNLOAD-AZDAT = GU_UPLOAD-AZDAT.

GU_DOWNLOAD-ESALD = GU_UPLOAD-ESALD.

GU_DOWNLOAD-SSALD = GU_UPLOAD-SSALD.

GU_DOWNLOAD-BUDTM = GU_UPLOAD-BUDTM.

GU_DOWNLOAD-MNAM1 = GU_UPLOAD-MNAM1.

GU_DOWNLOAD-JNAME = GU_UPLOAD-JNAME.

GU_DOWNLOAD-VGMAN = GU_UPLOAD-VGMAN.

GU_DOWNLOAD-VALUT = GU_UPLOAD-VALUT.

GU_DOWNLOAD-KWBTR = GU_UPLOAD-KWBTR.

GU_DOWNLOAD-CHECT_KF = GU_UPLOAD-CHECT_KF.

APPEND GU_DOWNLOAD.

clear GUI_DOWNLOAD.

endloop.</b>

Regards

Prabhu

Read only

Former Member
0 Likes
629

Hi Vijay,

Go through this program u can understand very well.

rePORT ymmbdcmm01

NO STANDARD PAGE HEADING LINE-SIZE 255.

&----


*& Table Declarations *

&----


TABLES:rmmg1,makt,mara,mvke, marc,mbew,t100.

TYPE-POOLS: truxs.

DATA: it_raw TYPE truxs_t_text_data.

&----


*& Data Declarations *

&----


DATA:

BEGIN OF t_data OCCURS 0,

data TYPE string,

END OF t_data.

DATA:BEGIN OF it_mess OCCURS 0,

msgtyp(5),

lms(200),

msgv1(50),

END OF it_mess.

DATA: BEGIN OF it_itab OCCURS 0,

matnr TYPE rmmg1-matnr,

mbrsh TYPE rmmg1-mbrsh,

mtart TYPE rmmg1-mtart,

werks TYPE rmmg1-werks,

lgort TYPE rmmg1-lgort,

vkorg TYPE rmmg1-vkorg,

vtweg TYPE rmmg1-vtweg,

maktx TYPE makt-maktx,

meins TYPE mara-meins,

matkl TYPE mara-matkl,

spart TYPE mara-spart,

  • GEWEI TYPE MARA-GEWEI,

dwerk TYPE mvke-dwerk,

versg TYPE mvke-versg,

mtpos TYPE mvke-mtpos,

mtvfp TYPE marc-mtvfp,

tragr TYPE mara-tragr,

ladgr TYPE marc-ladgr,

sernp TYPE marc-sernp,

txline(25), "added

  • kordb ,

mprof TYPE mara-mprof,

ekgrp TYPE marc-ekgrp,

dismm TYPE marc-dismm,

dispo TYPE marc-dispo,

disls TYPE marc-disls,

mabst(13) TYPE c,

beskz TYPE marc-beskz,

sobsl TYPE marc-sobsl,

lgpro TYPE marc-lgpro,

dzeit TYPE c,

plifz(3) TYPE c,

webaz TYPE c,

fhori TYPE marc-fhori,

eisbe TYPE c,

strgr(2) TYPE c,

vrmod TYPE c,

vint1(3),

vint2(3),

wzeit(3),

sbdkz TYPE marc-sbdkz,

bklas TYPE mbew-bklas,

  • vprsv TYPE mbew-vprsv,

verpr(11),

  • peinh TYPE c,

ekalr TYPE mbew-ekalr,

losgr TYPE c,

RGEKZ(1),

fevor(3),

END OF it_itab.

----


*decl of internal table of table control for BDCDATA & BDCMSGCOLL

----


DATA : BEGIN OF bdcdata OCCURS 0.

INCLUDE STRUCTURE bdcdata.

DATA: END OF bdcdata.

DATA:it_msgtab TYPE STANDARD TABLE OF bdcmsgcoll WITH HEADER LINE,

it_msgtab1 TYPE STANDARD TABLE OF bdcmsgcoll WITH HEADER LINE.

DATA : fld(50) TYPE c,

cnt(2) TYPE n,

l_mstring(150).

START-OF-SELECTION.

&----


*& File uploading from xlsheet to sap *

&----


CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'

EXPORTING

  • I_FIELD_SEPERATOR =

i_line_header = 'X'

i_tab_raw_data = it_raw

i_filename = 'C:\Documents and Settings\sapthamm\Desktop\mm02.xls'

TABLES

i_tab_converted_data = it_itab

EXCEPTIONS

conversion_failed = 1

OTHERS = 2.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

&----


*& Splitting the Internal Table *

&----


LOOP AT t_data.

SPLIT t_data-data AT cl_abap_char_utilities=>horizontal_tab INTO

it_itab-matnr

it_itab-mbrsh

it_itab-mtart

it_itab-werks

it_itab-lgort

it_itab-vkorg

it_itab-vtweg

it_itab-maktx

it_itab-meins

it_itab-matkl

it_itab-spart

  • it_itab-GEWEI

it_itab-dwerk

it_itab-versg

it_itab-mtpos

it_itab-mtvfp

it_itab-tragr

it_itab-ladgr

it_itab-sernp

it_itab-mprof

it_itab-ekgrp

it_itab-dismm

it_itab-dispo

it_itab-disls

it_itab-mabst

it_itab-beskz

it_itab-sobsl

it_itab-lgpro

it_itab-dzeit

it_itab-plifz

it_itab-webaz

it_itab-fhori

it_itab-eisbe

it_itab-strgr

it_itab-vrmod

it_itab-vint1

it_itab-vint2

it_itab-wzeit

it_itab-sbdkz

it_itab-bklas

  • it_itab-vprsv

  • it_itab-peinh

it_itab-ekalr

it_itab-losgr

.

APPEND it_itab.

CLEAR: it_itab,

t_data-data.

ENDLOOP.

*perform open_dataset using dataset.

*perform open_group.

*

*do.

*

*read dataset dataset into it_itab.

*if sy-subrc <> 0. exit. endif.

&----


*& it_itabing of Material Type-HALB *

&----


LOOP AT it_itab.

PERFORM bdc_dynpro USING 'SAPLMGMM' '0060'.

PERFORM bdc_field USING 'BDC_CURSOR'

'RMMG1-MATNR'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'RMMG1-MATNR'

it_itab-matnr.

PERFORM bdc_field USING 'RMMG1-MBRSH'

it_itab-mbrsh.

PERFORM bdc_field USING 'RMMG1-MTART'

it_itab-mtart.

PERFORM bdc_dynpro USING 'SAPLMGMM' '0070'.

PERFORM bdc_field USING 'BDC_CURSOR'

'MSICHTAUSW-DYTXT(17)'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=P+'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(01)'

'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(02)'

'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(04)'

'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(05)'

'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(06)'

'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(08)'

'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(09)'

'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(12)'

'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(13)'

'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(14)'

'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(15)'

'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(17)'

'X'.

PERFORM bdc_dynpro USING 'SAPLMGMM' '0070'.

PERFORM bdc_field USING 'BDC_CURSOR'

'MSICHTAUSW-DYTXT(09)'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=ENTR'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(01)'

'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(02)'

'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(06)'

'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(07)'

'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(08)'

'X'.

PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(09)'

'X'.

PERFORM bdc_dynpro USING 'SAPLMGMM' '0080'.

PERFORM bdc_field USING 'BDC_CURSOR'

'RMMG1-VTWEG'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=ENTR'.

PERFORM bdc_field USING 'RMMG1-WERKS'

it_itab-werks.

PERFORM bdc_field USING 'RMMG1-LGORT'

it_itab-lgort.

PERFORM bdc_field USING 'RMMG1-VKORG'

it_itab-vkorg.

PERFORM bdc_field USING 'RMMG1-VTWEG'

it_itab-vtweg.

PERFORM bdc_dynpro USING 'SAPLMGMM' '4004'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'MAKT-MAKTX'

it_itab-maktx.

PERFORM bdc_field USING 'BDC_CURSOR'

'MARA-SPART'.

PERFORM bdc_field USING 'MARA-MEINS'

it_itab-meins.

PERFORM bdc_field USING 'MARA-MATKL'

it_itab-matkl.

PERFORM bdc_field USING 'MARA-SPART'

it_itab-spart.

PERFORM bdc_field USING 'MARA-GEWEI'

'kg'.

PERFORM bdc_dynpro USING 'SAPLMGMM' '4004'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'BDC_CURSOR'

'MAKT-MAKTX'.

PERFORM bdc_field USING 'MAKT-MAKTX'

it_itab-maktx.

PERFORM bdc_dynpro USING 'SAPLMGMM' '4000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'MAKT-MAKTX'

it_itab-maktx.

PERFORM bdc_field USING 'MARA-MEINS'

it_itab-meins.

PERFORM bdc_field USING 'MARA-SPART'

it_itab-spart.

PERFORM bdc_field USING 'MVKE-DWERK'

it_itab-dwerk.

PERFORM bdc_field USING 'MARA-MATKL'

it_itab-matkl.

PERFORM bdc_field USING 'MVKE-SKTOF'

'X'.

PERFORM bdc_field USING 'BDC_CURSOR'

'MG03STEUER-TAXKM(02)'.

PERFORM bdc_field USING 'MG03STEUER-TAXKM(01)'

'0'.

PERFORM bdc_field USING 'MG03STEUER-TAXKM(02)'

'1'.

PERFORM bdc_dynpro USING 'SAPLMGMM' '4200'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

*perform bdc_field using 'MAKT-MAKTX'

  • it_itab-MAKTX_040.

*perform bdc_field using 'BDC_CURSOR'

  • 'MG03STEUER-TAXKM(05)'.

PERFORM bdc_field USING 'MG03STEUER-TAXKM(03)'

'1'.

PERFORM bdc_field USING 'MG03STEUER-TAXKM(04)'

'1'.

PERFORM bdc_field USING 'MG03STEUER-TAXKM(05)'

'0'.

PERFORM bdc_dynpro USING 'SAPLMGMM' '4000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'BDC_CURSOR'

'MAKT-MAKTX'.

PERFORM bdc_field USING 'MAKT-MAKTX'

it_itab-maktx.

PERFORM bdc_field USING 'MARA-MEINS'

it_itab-meins.

PERFORM bdc_field USING 'MARA-SPART'

it_itab-spart.

PERFORM bdc_field USING 'MVKE-DWERK'

it_itab-dwerk.

PERFORM bdc_field USING 'MARA-MATKL'

it_itab-matkl.

PERFORM bdc_field USING 'MVKE-SKTOF'

'X'.

PERFORM bdc_dynpro USING 'SAPLMGMM' '4000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'MAKT-MAKTX'

it_itab-maktx.

PERFORM bdc_field USING 'BDC_CURSOR'

'MVKE-MTPOS'.

PERFORM bdc_field USING 'MVKE-VERSG'

it_itab-versg.

PERFORM bdc_field USING 'MVKE-MTPOS'

it_itab-mtpos.

PERFORM bdc_dynpro USING 'SAPLMGMM' '4000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'MAKT-MAKTX'

it_itab-maktx.

PERFORM bdc_field USING 'MARA-MEINS'

it_itab-meins.

PERFORM bdc_field USING 'MARA-GEWEI'

'KG'.

PERFORM bdc_field USING 'MARC-MTVFP'

it_itab-mtvfp.

PERFORM bdc_field USING 'MARA-TRAGR'

it_itab-tragr.

PERFORM bdc_field USING 'MARC-LADGR'

it_itab-ladgr.

PERFORM bdc_field USING 'BDC_CURSOR'

'MARC-SERNP'.

PERFORM bdc_field USING 'MARC-SERNP'

it_itab-sernp.

PERFORM bdc_dynpro USING 'SAPLMGMM' '4040'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=LTEX'.

PERFORM bdc_field USING 'MAKT-MAKTX'

it_itab-maktx.

PERFORM bdc_dynpro USING 'SAPLSTXX' '1100'.

PERFORM bdc_field USING 'BDC_CURSOR'

'RSTXT-TXLINE(02)'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=TXVB'.

PERFORM bdc_field USING 'RSTXT-TXLINE(02)'

'pcb assembly'.

PERFORM bdc_dynpro USING 'SAPLSTXX' '1100'.

PERFORM bdc_field USING 'BDC_CURSOR'

'RSTXT-TXLINE(02)'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=TXBA'.

PERFORM bdc_dynpro USING 'SAPLMGMM' '4040'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=SP09'.

PERFORM bdc_field USING 'MAKT-MAKTX'

it_itab-maktx.

PERFORM bdc_dynpro USING 'SAPLMGMM' '4000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'MAKT-MAKTX'

it_itab-maktx.

PERFORM bdc_field USING 'MARA-MEINS'

it_itab-meins.

PERFORM bdc_field USING 'MARC-EKGRP'

it_itab-ekgrp.

PERFORM bdc_field USING 'MARA-MATKL'

it_itab-matkl.

PERFORM bdc_field USING 'MARC-KORDB'

'X'.

PERFORM bdc_field USING 'BDC_CURSOR'

'MARA-MPROF'.

PERFORM bdc_field USING 'MARA-MPROF'

it_itab-mprof.

PERFORM bdc_dynpro USING 'SAPLMGMM' '4000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'MAKT-MAKTX'

it_itab-maktx.

PERFORM bdc_field USING 'MARA-MEINS'

it_itab-meins.

PERFORM bdc_field USING 'MARC-EKGRP'

it_itab-ekgrp.

PERFORM bdc_field USING 'MARC-DISMM'

it_itab-dismm.

PERFORM bdc_field USING 'MARC-DISPO'

it_itab-dispo.

PERFORM bdc_field USING 'BDC_CURSOR'

'MARC-MABST'.

PERFORM bdc_field USING 'MARC-DISLS'

it_itab-disls.

PERFORM bdc_field USING 'MARC-MABST'

it_itab-mabst.

PERFORM bdc_dynpro USING 'SAPLMGMM' '4000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'MAKT-MAKTX'

it_itab-maktx.

PERFORM bdc_field USING 'MARC-BESKZ'

it_itab-beskz.

PERFORM bdc_field USING 'MARC-SOBSL'

it_itab-sobsl.

PERFORM bdc_field USING 'MARC-LGPRO'

it_itab-lgpro.

if it_itab-sernp = 'TJSL'.

PERFORM bdc_field USING 'MARC-RGEKZ'

''.

ELSE.

PERFORM bdc_field USING 'MARC-RGEKZ'

'1'.

ENDIF.

PERFORM bdc_field USING 'MARC-DZEIT'

it_itab-dzeit.

PERFORM bdc_field USING 'MARC-PLIFZ'

it_itab-plifz.

PERFORM bdc_field USING 'MARC-WEBAZ'

it_itab-webaz.

PERFORM bdc_field USING 'MARC-FHORI'

it_itab-fhori.

PERFORM bdc_field USING 'MARC-EISBE'

it_itab-eisbe.

PERFORM bdc_dynpro USING 'SAPLMGMM' '4000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'MAKT-MAKTX'

it_itab-maktx.

PERFORM bdc_field USING 'MARC-PERKZ'

'M'.

PERFORM bdc_field USING 'MARC-STRGR'

it_itab-strgr.

PERFORM bdc_field USING 'MARC-VRMOD'

it_itab-vrmod.

PERFORM bdc_field USING 'MARC-VINT1'

it_itab-vint1.

PERFORM bdc_field USING 'MARC-VINT2'

it_itab-vint2.

PERFORM bdc_field USING 'BDC_CURSOR'

'MARC-WZEIT'.

PERFORM bdc_field USING 'MARC-MTVFP'

it_itab-mtvfp.

PERFORM bdc_field USING 'MARC-WZEIT'

it_itab-wzeit.

PERFORM bdc_dynpro USING 'SAPLMGMM' '4000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'MAKT-MAKTX'

it_itab-maktx.

PERFORM bdc_field USING 'BDC_CURSOR'

'MARC-SBDKZ'.

PERFORM bdc_field USING 'MARC-SBDKZ'

it_itab-sbdkz.

PERFORM bdc_dynpro USING 'SAPLMGMM' '4000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'BDC_CURSOR'

'MAKT-MAKTX'.

PERFORM bdc_field USING 'MAKT-MAKTX'

it_itab-maktx.

PERFORM bdc_field USING 'MARA-MEINS'

it_itab-meins.

PERFORM bdc_field USING 'MARC-FEVOR'

'001'.

PERFORM bdc_field USING 'MARC-LGPRO'

it_itab-lgpro.

PERFORM bdc_field USING 'MARC-SERNP'

it_itab-sernp.

PERFORM bdc_field USING 'MARC-DZEIT'

it_itab-dzeit.

PERFORM bdc_dynpro USING 'SAPLMGMM' '4000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'BDC_CURSOR'

'MAKT-MAKTX'.

PERFORM bdc_field USING 'MAKT-MAKTX'

it_itab-maktx.

PERFORM bdc_field USING 'MARA-MEINS'

it_itab-meins.

*perform bdc_field using 'MARA-IPRKZ'

  • it_itab-IPRKZ.

PERFORM bdc_dynpro USING 'SAPLMGMM' '4000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'BDC_CURSOR'

'MAKT-MAKTX'.

PERFORM bdc_field USING 'MAKT-MAKTX'

it_itab-maktx.

PERFORM bdc_field USING 'MARA-GEWEI'

'KG'.

PERFORM bdc_field USING 'MARC-SERNP'

it_itab-sernp.

PERFORM bdc_dynpro USING 'SAPLMGMM' '4000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'MAKT-MAKTX'

it_itab-maktx.

PERFORM bdc_field USING 'MARA-MEINS'

it_itab-meins.

PERFORM bdc_field USING 'MARA-SPART'

it_itab-spart.

PERFORM bdc_field USING 'BDC_CURSOR'

'MBEW-VPRSV'.

PERFORM bdc_field USING 'MBEW-BKLAS'

it_itab-bklas.

*perform bdc_field using 'MBEW-EKLAS'

  • it_itab-EKLAS.

PERFORM bdc_field USING 'MBEW-VPRSV'

'v'.

PERFORM bdc_field USING 'MBEW-PEINH'

'1'.

perform bdc_field using 'MBEW-VERPR'

it_itab-VERPR.

PERFORM bdc_dynpro USING 'SAPLMGMM' '4000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'BDC_CURSOR'

'MAKT-MAKTX'.

PERFORM bdc_field USING 'MAKT-MAKTX'

it_itab-maktx.

PERFORM bdc_dynpro USING 'SAPLMGMM' '4000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'BDC_CURSOR'

'MAKT-MAKTX'.

PERFORM bdc_field USING 'MAKT-MAKTX'

it_itab-maktx.

PERFORM bdc_field USING 'MARA-MEINS'

it_itab-meins.

PERFORM bdc_field USING 'MBEW-EKALR'

'X'.

PERFORM bdc_field USING 'MARC-AWSLS'

'000001'.

PERFORM bdc_field USING 'MARC-LOSGR'

'1'.

PERFORM bdc_dynpro USING 'SAPLMGMM' '4000'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'MAKT-MAKTX'

it_itab-maktx.

PERFORM bdc_field USING 'BDC_CURSOR'

'MBEW-ZPLPR'.

*perform bdc_field using 'MBEW-ZPLPR'

  • '6000'.

PERFORM bdc_field USING 'MBEW-BKLAS'

it_itab-bklas.

PERFORM bdc_field USING 'MBEW-VPRSV'

'V'.

PERFORM bdc_field USING 'MBEW-PEINH'

'1'.

PERFORM bdc_dynpro USING 'SAPLSPO1' '0300'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=YES'.

CALL TRANSACTION 'MM01' USING bdcdata MODE 'A'

UPDATE 'S'

MESSAGES INTO it_msgtab.

CLEAR bdcdata[].

CLEAR it_itab.

PERFORM error.

ENDLOOP.

&----


*& Declaration of Error Handling *

&----


  • i

  • it_msgtab1-msgv1 = it_msgtab-msgv1.

  • it_msgtab1-msgv2 = it_msgtab-msgv2.

  • it_msgtab1-msgv3 = it_msgtab-msgv3.

  • APPEND it_msgtab1.

  • ENDLOOP.

----


download error message to a file by using function module

----


CALL FUNCTION 'GUI_DOWNLOAD'

EXPORTING

  • BIN_FILESIZE =

filename = 'C:\Documents and Settings\sapthamm\Desktop\error.xls'

filetype = 'ASC'

  • APPEND = ' '

write_field_separator = 'X'

  • HEADER = '00'

  • TRUNC_TRAILING_BLANKS = ' '

  • WRITE_LF = 'X'

  • COL_SELECT = ' '

  • COL_SELECT_MASK = ' '

  • DAT_MODE = ' '

  • CONFIRM_OVERWRITE = ' '

  • NO_AUTH_CHECK = ' '

  • CODEPAGE = ' '

  • IGNORE_CERR = ABAP_TRUE

  • REPLACEMENT = '#'

  • WRITE_BOM = ' '

  • TRUNC_TRAILING_BLANKS_EOL = 'X'

  • WK1_N_FORMAT = ' '

  • WK1_N_SIZE = ' '

  • WK1_T_FORMAT = ' '

  • WK1_T_SIZE = ' '

  • WRITE_EOL = ABAP_TRUE

  • IMPORTING

  • FILELENGTH =

TABLES

data_tab = it_mess

  • FIELDNAMES =

  • EXCEPTIONS

  • FILE_WRITE_ERROR = 1

  • NO_BATCH = 2

  • GUI_REFUSE_FILETRANSFER = 3

  • INVALID_TYPE = 4

  • NO_AUTHORITY = 5

  • UNKNOWN_ERROR = 6

  • HEADER_NOT_ALLOWED = 7

  • SEPARATOR_NOT_ALLOWED = 8

  • FILESIZE_NOT_ALLOWED = 9

  • HEADER_TOO_LONG = 10

  • DP_ERROR_CREATE = 11

  • DP_ERROR_SEND = 12

  • DP_ERROR_WRITE = 13

  • UNKNOWN_DP_ERROR = 14

  • ACCESS_DENIED = 15

  • DP_OUT_OF_MEMORY = 16

  • DISK_FULL = 17

  • DP_TIMEOUT = 18

  • FILE_NOT_FOUND = 19

  • DATAPROVIDER_EXCEPTION = 20

  • CONTROL_FLUSH_ERROR = 21

  • OTHERS = 22

.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

&----


*& Form BDC_DYNPRO

&----


  • text

----


  • -->PROGRAM text

  • -->DYNPRO text

----


FORM bdc_dynpro USING program dynpro.

CLEAR bdcdata.

bdcdata-program = program.

bdcdata-dynpro = dynpro.

bdcdata-dynbegin = 'X'.

APPEND bdcdata.

ENDFORM. "BDC_DYNPRO

----


  • Insert field *

----


FORM bdc_field USING fnam fval.

  • IF FVAL <> .

CLEAR bdcdata.

bdcdata-fnam = fnam.

bdcdata-fval = fval.

APPEND bdcdata.

  • ENDIF.

ENDFORM. "BDC_FIELD

form error.

LOOP AT it_msgtab.

IF it_msgtab-msgtyp = 'E'.

SELECT SINGLE * FROM t100 WHERE sprsl = it_msgtab-msgspra

AND arbgb = it_msgtab-msgid

AND msgnr = it_msgtab-msgnr.

IF sy-subrc = 0.

l_mstring = t100-text.

IF l_mstring CS '&1'.

REPLACE '&1' WITH it_msgtab-msgv1 INTO l_mstring.

REPLACE '&2' WITH it_msgtab-msgv2 INTO l_mstring.

REPLACE '&3' WITH it_msgtab-msgv3 INTO l_mstring.

REPLACE '&4' WITH it_msgtab-msgv4 INTO l_mstring.

ELSE.

REPLACE '&' WITH it_msgtab-msgv1 INTO l_mstring.

REPLACE '&' WITH it_msgtab-msgv2 INTO l_mstring.

REPLACE '&' WITH it_msgtab-msgv3 INTO l_mstring.

REPLACE '&' WITH it_msgtab-msgv4 INTO l_mstring.

ENDIF.

CONDENSE l_mstring.

it_mess-msgtyp = it_msgtab-msgtyp.

it_mess-lms = l_mstring.

it_mess-msgv1 = it_msgtab-msgv1.

APPEND it_mess.

  • WRITE: / it_msgtab-msgtyp, l_mstring(150).

ELSE.

  • WRITE: / it_msgtab.

it_mess-msgtyp = it_msgtab-msgtyp.

it_mess-lms = l_mstring.

it_mess-msgv1 = it_msgtab-msgv1.

APPEND it_mess.

ENDIF.

ENDIF.

ENDLOOP.

ENDFORM.

  • LOOP AT it_msgtab.

Rgds,

P.Nag

Read only

Former Member
0 Likes
629

hi,

use the following snippet is useful.

You can use the follwing code as a starter..

data: begin of messages occurs 0,

vbeln type vbeln,

text like t100-text.

include structure bdcmsgcoll.

data: end of messages.

loop at messtab.

move-corresponding messtab to messages.

messages-vbeln t_hdr-vbeln.

call function 'FORMAT_MESSAGE'

exporting

id = messtab-msgid

lang = messtab-msgspra

no = messtab-msgnr

v1 = messtab-msgv1

v2 = messtab-msgv2

v3 = messtab-msgv3

v4 = messtab-msgv4

importing

msg = messages-text

exceptions

not_found = 01

others = 02.

if sy-subrc <> 0.

clear messages-text.

endif.

append messages.

endloop.

open dataset w_physical_file for output in text mode.

loop at messages..

transfer messages to w_physical_file.

endloop.

close dataset w_physical_file.

Regards