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

BDC programing

Former Member
0 Likes
1,203

hi please help me on BDC programing .

1 ACCEPTED SOLUTION
10 REPLIES 10
Read only

0 Likes
1,166

can post some good documents

Read only

Former Member
0 Likes
1,166

Hi,

BDC programing two types:

1.Session method.

2.CallTransaction.

Call Transaction method example.

&----


*& Report Z_TEST_BDC *

*& *

&----


*& *

*& *

&----


report z_test_bdc .

tables : lfa1.

data: begin of i_lfa1 occurs 0,

lifnr like lfa1-lifnr,

ktokk like lfa1-ktokk,

anred like lfa1-anred,

land1 like lfa1-land1,

spras like lfa1-spras,

kunnr like lfa1-kunnr,

end of i_lfa1,

w_lfa1 like i_lfa1.

----


  • Structures / Internal table declarations *

----


*-- Structure to hold BDC data

types : begin of t_bdctable.

include structure bdcdata.

types end of t_bdctable.

*-- Structure to trap BDC messages

types : begin of t_msg.

include structure bdcmsgcoll.

types : end of t_msg.

*-- Structure to trap ERROR messages

types : begin of t_err_msg,

message(255),

end of t_err_msg.

  • *-- Internal table to hold BDC data

data: it_bdcdata type standard table of t_bdctable with header line,

*-- Internal Table to store ALL messages

it_msg type standard table of t_msg with header line,

*-- Internal Table to store error messages

it_err_msg type standard table of t_err_msg with header line.

----


  • Selection Screen. *

----


*SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.

*

*SELECT-OPTIONS : S_lifnr FOR LFA1-LIFNR OBLIGATORY.

*

*SELECTION-SCREEN END OF BLOCK B1.

----


  • Event:Initialization *

----


*INITIALIZATION.

----


  • AT Selection Screen. *

----


*AT SELECTION-SCREEN.

----


  • Event: Start-of-Selection *

----


*include bdcrecx1.

start-of-selection.

*V_FNAME = P_FLNAME.

perform get_data.

*PERFORM GET_BANKDATA.

*PERFORM GENERATE_DATASET.

----


  • Event: End-of-Selection *

----


end-of-selection.

*IF FG_DATA_EXIST = ' '.

*MESSAGE I010 WITH TEXT-009.

*EXIT.

*ENDIF.

perform generate_bdcdata.

*PERFORM DISPLAY_ERR_RECS.

&----


*& Form GET_DATA

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form get_data .

  • select lifnr ktokk anred land1 spras kunnr from lfa1 into

*corresponding fields of table i_lfa1 where lifnr in s_lifnr.

call function 'UPLOAD'

exporting

filename = 'C:\Documents and Settings\mrutyt\Desktop\vendor.txt'

filetype = 'DAT'

tables

data_tab = i_lfa1

.

if sy-subrc <> 0.

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

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

endif.

*IF I_LFA1[] IS INITIAL.

*FG_DATA_EXIST = ' '.

*ENDIF.

endform. " GET_DATA

&----


*& Form BDC_DYNPRO

&----


  • text

----


  • -->P_0467 text

  • -->P_0468 text

----


form bdc_dynpro using program dynpro.

clear it_bdcdata.

it_bdcdata-program = program.

it_bdcdata-dynpro = dynpro.

it_bdcdata-dynbegin = 'X'.

append it_bdcdata.

endform.

&----


*& Form BDC_FIELD

&----


  • text

----


  • -->P_0472 text

  • -->P_0473 text

----


form bdc_field using fnam fval.

*

if not fval is initial.

clear it_bdcdata.

it_bdcdata-fnam = fnam.

it_bdcdata-fval = fval.

append it_bdcdata.

endif.

*

endform.

&----


*& Form GENERATE_BDCDATA

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form generate_bdcdata .

*perform open_group.

loop at i_lfa1 into w_lfa1.

perform bdc_dynpro using 'SAPMF02K' '0100'.

perform bdc_field using 'BDC_CURSOR'

'RF02K-LIFNR'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'RF02K-LIFNR'

i_lfa1-lifnr.

perform bdc_field using 'RF02K-KTOKK'

i_lfa1-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-ANRED'

i_lfa1-anred.

perform bdc_field using 'LFA1-LAND1'

i_lfa1-land1.

perform bdc_field using 'LFA1-SPRAS'

i_lfa1-spras.

perform bdc_dynpro using 'SAPMF02K' '0120'.

perform bdc_field using 'BDC_CURSOR'

'LFA1-KUNNR'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'LFA1-KUNNR'

i_lfa1-kunnr.

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'.

call transaction 'XK01' using it_bdcdata mode 'A' update 'S'.

clear w_lfa1.

endloop.

endform. " GENERATE_BDCDATA

Thanks,

SReddy.

Read only

prasanth_kasturi
Active Contributor
0 Likes
1,166

hi,

www.sap-img.com/bdc.htm

check this blog

/people/milind.upasani/blog/2007/03/07/step-by-step-approach-to-ceate-simple-bdc-session-program-using-reusable-template

regards

prasanth

Read only

Former Member
0 Likes
1,166
Read only

Former Member
0 Likes
1,166
Read only

Former Member
0 Likes
1,166

hi please help me on brain surgery.

Read only

0 Likes
1,166

go to the doctor...

Read only

0 Likes
1,166

sekhar,

There are already a thousand examples on BDC in SDN.

Just search for it.

It' so easy.

Try it.....

Regards,

Hari Kiran

Read only

Former Member
0 Likes
1,166

Hi Shekar,

Check this code for uploading salesorders:

REPORT Z_OPENSOUPLOAD

NO STANDARD PAGE HEADING

LINE-COUNT 65(2)

LINE-SIZE 150.

DATA: BEGIN OF IT_SALESORDER OCCURS 0,

AUART LIKE VBAK-AUART,

VKORG LIKE VBAK-VKORG,

VTWEG LIKE VBAK-VTWEG,

SPART LIKE VBAK-SPART,

KUNNR LIKE VBAK-KUNNR,

BSTKD LIKE VBKD-BSTKD,

BSTDK LIKE RV45A-KETDAT,

KETDAT LIKE RV45A-KETDAT,

KVGR1 LIKE VBAK-KVGR1,

KVGR4 LIKE VBAK-KVGR4,

KVGR5 LIKE VBAK-KVGR5,

KWMENG(5) TYPE C,

PSTYV LIKE VBAP-PSTYV,

WERKS LIKE VBAP-WERKS,

LGORT LIKE VBAP-LGORT ,

VSTEL LIKE VBAP-VSTEL,

ROUTE LIKE VBAP-ROUTE,

PRSOK LIKE VBAP-PRSOK,

KPRGBZ LIKE RV45A-KPRGBZ,

PRSDT LIKE RV45A-KETDAT,

MABNR LIKE RV45A-MABNR,

ZTERM LIKE VBKD-ZTERM,

INCO1 LIKE VBKD-INCO1,

INCO2 LIKE VBKD-INCO2,

LPRIO LIKE VBAP-LPRIO,

ANTLF TYPE C,

KZAZU LIKE VBKD-KZAZU,

GEWEI LIKE VBAP-GEWEI,

KSCHL LIKE KOMV-KSCHL,

KBETR LIKE KOMV-KBETR,

END OF IT_SALESORDER.

DATA: BEGIN OF IT_SALESORDER_TEMP OCCURS 0,

AUART LIKE VBAK-AUART,

VKORG LIKE VBAK-VKORG,

VTWEG LIKE VBAK-VTWEG,

SPART LIKE VBAK-SPART,

KUNNR LIKE VBAK-KUNNR,

BSTKD LIKE VBKD-BSTKD,

BSTDK LIKE RV45A-KETDAT,

KETDAT LIKE RV45A-KETDAT,

KVGR1 LIKE VBAK-KVGR1,

KVGR4 LIKE VBAK-KVGR4,

KVGR5 LIKE VBAK-KVGR5,

KWMENG(5) TYPE C,

PSTYV LIKE VBAP-PSTYV,

WERKS LIKE VBAP-WERKS,

LGORT LIKE VBAP-LGORT ,

VSTEL LIKE VBAP-VSTEL,

ROUTE LIKE VBAP-ROUTE,

PRSOK LIKE VBAP-PRSOK,

KPRGBZ LIKE RV45A-KPRGBZ,

PRSDT LIKE RV45A-KETDAT,

MABNR LIKE RV45A-MABNR,

ZTERM LIKE VBKD-ZTERM,

INCO1 LIKE VBKD-INCO1,

INCO2 LIKE VBKD-INCO2,

LPRIO LIKE VBAP-LPRIO,

ANTLF TYPE C,

KZAZU LIKE VBKD-KZAZU,

GEWEI LIKE VBAP-GEWEI,

KSCHL LIKE KOMV-KSCHL,

KBETR LIKE KOMV-KBETR,

END OF IT_SALESORDER_TEMP.

DATA: BEGIN OF IT_ERRORREC OCCURS 0,

KUNNR LIKE VBAK-KUNNR,

BSTKD LIKE VBKD-BSTKD,

MABNR LIKE RV45A-MABNR,

ERROR(100),

END OF IT_ERRORREC.

DATA: L_INDEX TYPE SY-TABIX.

DATA:IT_BDC LIKE BDCDATA OCCURS 0 WITH HEADER LINE,

IT_DATA TYPE ALSMEX_TABLINE OCCURS 0 WITH HEADER LINE.

  • ERROR MESSAGE TABLE

DATA:IT_MESSAGES LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.

DATA : C_S TYPE C VALUE 'S',

C_E TYPE C VALUE 'E'.

DATA: IT_SUCCESS LIKE IT_SALESORDER OCCURS 0,

IT_ERROR LIKE IT_SALESORDER OCCURS 0.

DATA : V_RECTOT TYPE I,

V_RECERR TYPE I,

V_RECSUC TYPE I.

************************************************************************

  • S E L E C T I O N - S C R E E N *

************************************************************************

SELECTION-SCREEN : BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.

PARAMETER : P_FILE LIKE RLGRAP-FILENAME .

SELECTION-SCREEN : END OF BLOCK B1.

************************************************************************

  • A T S E L E C T I O N - S C R E E N *

************************************************************************

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.

  • to get F4 help for p_file

PERFORM F4_FILENAME USING P_FILE.

************************************************************************

  • S T A R T O F S E L E C T I O N *

************************************************************************

START-OF-SELECTION.

  • Uploading data from flat file into it_tab

PERFORM BDC_UPLOAD USING P_FILE.

PERFORM PROCESS_DATA.

PERFORM POPULATE_BDC.

END-OF-SELECTION.

PERFORM DISPLAY_REPORT.

&----


*& Form f4_filename

&----


  • text

----


  • -->P_P_FILE text

----


FORM F4_FILENAME USING P_P_FILE.

DATA:L_FILE TYPE IBIPPARMS-PATH.

CALL FUNCTION 'F4_FILENAME'

  • EXPORTING

  • PROGRAM_NAME = SYST-CPROG

  • DYNPRO_NUMBER = SYST-DYNNR

  • FIELD_NAME = ' '

IMPORTING

FILE_NAME = L_FILE.

P_P_FILE = L_FILE.

ENDFORM. " f4_filename

&----


*& Form bdc_upload

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM BDC_UPLOAD USING P_P_FILE.

CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'

EXPORTING

FILENAME = P_P_FILE

I_BEGIN_COL = 1

I_BEGIN_ROW = 1

I_END_COL = 25

I_END_ROW = 500

TABLES

INTERN = IT_DATA

EXCEPTIONS

INCONSISTENT_PARAMETERS = 1

UPLOAD_OLE = 2

OTHERS = 3.

IF SY-SUBRC <> 0.

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

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

ENDIF.

ENDFORM. " bdc_upload

&----


*& Form populate_bdc

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM POPULATE_BDC.

DATA:L_COUNTER TYPE N,

L_STRING TYPE STRING.

IT_SALESORDER_TEMP[] = IT_SALESORDER[].

LOOP AT IT_SALESORDER.

AT NEW BSTKD.

L_INDEX = SY-TABIX.

READ TABLE IT_SALESORDER INDEX L_INDEX.

PERFORM BDC_DYNPRO USING 'SAPMV45A' '0101'.

PERFORM BDC_FIELD USING 'VBAK-AUART'

IT_SALESORDER-AUART.

PERFORM BDC_FIELD USING 'VBAK-VKORG'

IT_SALESORDER-VKORG.

PERFORM BDC_FIELD USING 'VBAK-VTWEG'

IT_SALESORDER-VTWEG.

PERFORM BDC_FIELD USING 'VBAK-SPART'

IT_SALESORDER-SPART.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'/00'.

PERFORM BDC_DYNPRO USING 'SAPMV45A' '4001'.

PERFORM BDC_FIELD USING 'VBKD-BSTKD'

IT_SALESORDER-BSTKD.

PERFORM BDC_FIELD USING 'VBKD-BSTDK'

IT_SALESORDER-BSTDK.

PERFORM BDC_FIELD USING 'KUAGV-KUNNR'

IT_SALESORDER-KUNNR.

PERFORM BDC_FIELD USING 'RV45A-KETDAT'

IT_SALESORDER-KETDAT.

PERFORM BDC_FIELD USING 'RV45A-KPRGBZ'

IT_SALESORDER-KPRGBZ.

PERFORM BDC_FIELD USING 'VBKD-PRSDT'

IT_SALESORDER-PRSDT.

PERFORM BDC_FIELD USING 'VBKD-ZTERM'

IT_SALESORDER-ZTERM.

CLEAR: L_COUNTER.

ENDAT.

L_COUNTER = L_COUNTER + 1.

CLEAR L_STRING.

CONCATENATE 'RV45A-MABNR(' L_COUNTER ')' INTO L_STRING.

PERFORM BDC_FIELD USING L_STRING

IT_SALESORDER-MABNR.

CONCATENATE 'RV45A-kwmeng(' L_COUNTER ')' INTO L_STRING.

PERFORM BDC_FIELD USING L_STRING

IT_SALESORDER-KWMENG.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'/00'.

*-- For Page down in Call Transaction Mode

IF L_COUNTER = 9.

CLEAR L_COUNTER.

PERFORM BDC_DYNPRO USING 'SAPMV45A' '4001'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'=P+'.

ENDIF.

AT END OF BSTKD.

READ TABLE IT_SALESORDER INDEX L_INDEX.

PERFORM BDC_DYNPRO USING 'SAPMV45A' '4001'.

PERFORM BDC_FIELD USING 'VBKD-BSTKD'

IT_SALESORDER-BSTKD.

PERFORM BDC_FIELD USING 'VBKD-BSTDK'

IT_SALESORDER-BSTDK.

PERFORM BDC_FIELD USING 'KUAGV-KUNNR'

IT_SALESORDER-KUNNR.

PERFORM BDC_FIELD USING 'KUWEV-KUNNR'

IT_SALESORDER-KUNNR.

PERFORM BDC_FIELD USING 'RV45A-KETDAT'

IT_SALESORDER-KETDAT.

PERFORM BDC_FIELD USING 'RV45A-KPRGBZ'

IT_SALESORDER-KPRGBZ.

PERFORM BDC_FIELD USING 'VBKD-PRSDT'

IT_SALESORDER-PRSDT.

PERFORM BDC_FIELD USING 'VBKD-ZTERM'

IT_SALESORDER-ZTERM.

PERFORM BDC_FIELD USING 'VBKD-INCO1'

IT_SALESORDER-INCO1.

PERFORM BDC_FIELD USING 'VBKD-INCO2'

IT_SALESORDER-INCO2.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

  • '=KGRU'.

'=KDE2'.

PERFORM BDC_DYNPRO USING 'SAPMV45A' '4002'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'=KGRU'.

  • '=FEAZ'.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'VBAK-LIFSK'.

PERFORM BDC_FIELD USING 'VBAK-LIFSK'

'Z1'.

*perform bdc_field using 'VBAK-VSBED'

  • '30'.

PERFORM BDC_FIELD USING 'VBKD-KZAZU'

'X'.

PERFORM BDC_DYNPRO USING 'SAPMV45A' '4002'.

PERFORM BDC_FIELD USING 'VBAK-KVGR1'

IT_SALESORDER-KVGR1.

PERFORM BDC_FIELD USING 'VBAK-KVGR4'

IT_SALESORDER-KVGR4.

PERFORM BDC_FIELD USING 'VBAK-KVGR5'

IT_SALESORDER-KVGR5.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'/EBACK'.

PERFORM BDC_DYNPRO USING 'SAPMV45A' '4001'.

PERFORM BDC_FIELD USING 'VBKD-BSTKD'

IT_SALESORDER-BSTKD.

PERFORM BDC_FIELD USING 'VBKD-BSTDK'

IT_SALESORDER-BSTDK.

PERFORM BDC_FIELD USING 'KUAGV-KUNNR'

IT_SALESORDER-KUNNR.

PERFORM BDC_FIELD USING 'KUWEV-KUNNR'

IT_SALESORDER-KUNNR.

PERFORM BDC_FIELD USING 'RV45A-KETDAT'

IT_SALESORDER-KETDAT.

PERFORM BDC_FIELD USING 'RV45A-KPRGBZ'

IT_SALESORDER-KPRGBZ.

PERFORM BDC_FIELD USING 'VBKD-PRSDT'

IT_SALESORDER-PRSDT.

PERFORM BDC_FIELD USING 'VBKD-ZTERM'

IT_SALESORDER-ZTERM.

PERFORM BDC_FIELD USING 'VBKD-INCO1'

IT_SALESORDER-INCO1.

PERFORM BDC_FIELD USING 'VBKD-INCO2'

IT_SALESORDER-INCO2.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'=MKAL'.

PERFORM BDC_DYNPRO USING 'SAPMV45A' '4001'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'=PDE2'.

PERFORM BDC_DYNPRO USING 'SAPMV45A' '4003'.

PERFORM BDC_FIELD USING 'VBAP-LPRIO'

IT_SALESORDER-LPRIO.

PERFORM BDC_FIELD USING 'VBAP-WERKS'

IT_SALESORDER-WERKS.

PERFORM BDC_FIELD USING 'VBAP-LGORT'

IT_SALESORDER-LGORT.

PERFORM BDC_FIELD USING 'VBAP-VSTEL'

IT_SALESORDER-VSTEL.

PERFORM BDC_FIELD USING 'VBAP-ANTLF'

IT_SALESORDER-ANTLF.

PERFORM BDC_FIELD USING 'VBKD-KZAZU'

IT_SALESORDER-KZAZU.

PERFORM BDC_FIELD USING 'VBAP-GEWEI'

IT_SALESORDER-GEWEI.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'=T\05'.

PERFORM BDC_DYNPRO USING 'SAPMV45A' '5003'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'/00'.

  • PERFORM BDC_FIELD USING 'KOMV-KSCHL(02)'

  • IT_SALESORDER-KSCHL.

  • PERFORM BDC_FIELD USING 'KOMV-KBETR(02)'

  • IT_SALESORDER-KBETR.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'=V69A_KOAN'.

  • PERFORM BDC_DYNPRO USING 'SAPMV45A' '5003'.

  • PERFORM BDC_FIELD USING 'BDC_OKCODE'

  • '=FEAZ'.

PERFORM BDC_DYNPRO USING 'SAPMV45A' '5003'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'=SICH'.

  • PERFORM BDC_DYNPRO USING 'SAPLSPO2' '0101'.

  • PERFORM BDC_FIELD USING 'BDC_OKCODE'

  • '=OPT1'.

CALL TRANSACTION 'VA01' USING IT_BDC MODE 'N' UPDATE 'S'

MESSAGES INTO IT_MESSAGES.

IF SY-SUBRC <> 0.

PERFORM FORMAT_MESSAGE.

ELSE.

V_RECSUC = V_RECSUC + 1.

ENDIF.

CLEAR IT_BDC.

REFRESH IT_BDC.

ENDAT.

ENDLOOP.

ENDFORM. " populate_bdc

&----


*& Form bdc_dynpro

&----


  • text

----


  • -->P_0295 text

  • -->P_0296 text

----


FORM BDC_DYNPRO USING VALUE(P_0295)

VALUE(P_0296).

IT_BDC-PROGRAM = P_0295.

IT_BDC-DYNPRO = P_0296.

IT_BDC-DYNBEGIN = 'X'.

APPEND IT_BDC.

CLEAR IT_BDC.

ENDFORM. " bdc_dynpro

&----


*& Form bdc_field

&----


  • text

----


  • -->P_0325 text

  • -->P_0326 text

----


FORM BDC_FIELD USING VALUE(P_0325)

VALUE(P_0326).

IT_BDC-FNAM = P_0325.

IT_BDC-FVAL = P_0326.

APPEND IT_BDC.

CLEAR IT_BDC.

ENDFORM. " bdc_field

&----


*& Form process_data

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM PROCESS_DATA.

SORT IT_DATA BY ROW COL.

LOOP AT IT_DATA.

CASE IT_DATA-COL.

WHEN 1.

IT_SALESORDER-AUART = IT_DATA-VALUE.

WHEN 2.

IT_SALESORDER-VKORG = IT_DATA-VALUE.

WHEN 3.

IT_SALESORDER-VTWEG = IT_DATA-VALUE.

WHEN 4.

IT_SALESORDER-SPART = IT_DATA-VALUE.

WHEN 5.

IT_SALESORDER-KUNNR = IT_DATA-VALUE.

WHEN 6.

IT_SALESORDER-BSTKD = IT_DATA-VALUE.

WHEN 7.

IT_SALESORDER-BSTDK = IT_DATA-VALUE.

WHEN 8.

IT_SALESORDER-KETDAT = IT_DATA-VALUE.

WHEN 9.

IT_SALESORDER-KPRGBZ = IT_DATA-VALUE.

WHEN 10.

IT_SALESORDER-PRSDT = IT_DATA-VALUE.

WHEN 11.

IT_SALESORDER-ZTERM = IT_DATA-VALUE.

WHEN 12.

IT_SALESORDER-MABNR = IT_DATA-VALUE.

WHEN 13.

IT_SALESORDER-KWMENG = IT_DATA-VALUE.

WHEN 14.

IT_SALESORDER-INCO1 = IT_DATA-VALUE.

WHEN 15.

IT_SALESORDER-INCO2 = IT_DATA-VALUE.

WHEN 16.

IT_SALESORDER-KVGR1 = IT_DATA-VALUE.

WHEN 17.

IT_SALESORDER-KVGR4 = IT_DATA-VALUE.

WHEN 18.

IT_SALESORDER-KVGR5 = IT_DATA-VALUE.

WHEN 19.

IT_SALESORDER-LPRIO = IT_DATA-VALUE.

WHEN 20.

IT_SALESORDER-WERKS = IT_DATA-VALUE.

WHEN 21.

IT_SALESORDER-LGORT = IT_DATA-VALUE.

WHEN 22.

IT_SALESORDER-VSTEL = IT_DATA-VALUE.

WHEN 23.

IT_SALESORDER-ANTLF = IT_DATA-VALUE.

WHEN 24.

IT_SALESORDER-KZAZU = IT_DATA-VALUE.

WHEN 25.

IT_SALESORDER-GEWEI = IT_DATA-VALUE.

APPEND IT_SALESORDER.

ENDCASE.

ENDLOOP.

ENDFORM. " process_data

&----


*& Form format_message

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM FORMAT_MESSAGE.

DATA: L_MSG(100).

DATA : W_MSG_TXT(100) TYPE C, " For message text

W_LINES TYPE I.

DESCRIBE TABLE IT_MESSAGES LINES W_LINES.

READ TABLE IT_MESSAGES INDEX W_LINES.

IF IT_MESSAGES-MSGTYP = 'S'.

W_LINES = W_LINES.

IF W_LINES = 0.

W_LINES = W_LINES + 1.

ENDIF.

READ TABLE IT_MESSAGES INDEX W_LINES.

ENDIF.

*---Formatting the Message

CLEAR W_MSG_TXT.

CALL FUNCTION 'FORMAT_MESSAGE'

EXPORTING

ID = IT_MESSAGES-MSGID

LANG = SY-LANGU

NO = IT_MESSAGES-MSGNR

V1 = IT_MESSAGES-MSGV1

V2 = IT_MESSAGES-MSGV2

V3 = IT_MESSAGES-MSGV3

V4 = IT_MESSAGES-MSGV4

IMPORTING

MSG = W_MSG_TXT

EXCEPTIONS

NOT_FOUND = 1

OTHERS = 2.

*---Append records into error table.

IF SY-SUBRC = 0.

IT_ERRORREC-BSTKD = IT_SALESORDER-BSTKD.

IT_ERRORREC-KUNNR = IT_SALESORDER-KUNNR.

IT_ERRORREC-MABNR = IT_SALESORDER-MABNR.

IT_ERRORREC-ERROR = W_MSG_TXT.

APPEND IT_ERRORREC.

CLEAR IT_ERRORREC.

ENDIF.

ENDFORM. " format_message

&----


*& Form DISPLAY

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM DISPLAY_REPORT.

CALL FUNCTION 'Z_REPORT_HEADER'

EXPORTING

DL_TITLE = 'Open Sales Order Upload'

DL_REPID = sy-cprog

  • DL_SUBTITLE =

.

DESCRIBE TABLE IT_ERRORREC LINES V_RECERR.

V_RECTOT = V_RECSUC + V_RECERR.

FORMAT COLOR COL_TOTAL.

WRITE: /20 'Total Records :',

V_RECTOT.

FORMAT COLOR COL_POSITIVE.

WRITE: /20 'Total Success Records :',

V_RECSUC.

FORMAT COLOR COL_NEGATIVE.

WRITE: /20 'Total Error Recrods :',

V_RECERR.

WRITE: /1 SY-ULINE.

FORMAT COLOR off.

WRITE:/50 'List of Error Records'.

skip.

IF IT_ERRORREC[] IS INITIAL.

FORMAT COLOR COL_TOTAL.

WRITE:/50 'No Error Records'.

ELSE.

FORMAT COLOR COL_TOTAL.

LOOP AT IT_ERRORREC.

WRITE:/1 IT_ERRORREC-BSTKD,

20 IT_ERRORREC-KUNNR,

32 IT_ERRORREC-MABNR,

50 IT_ERRORREC-ERROR.

ENDLOOP.

ENDIF.

ENDFORM. " DISPLAY

Thanks,

Keerthi.