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

REG:BDC

Former Member
0 Likes
469

Hi,

i got a task for the dataconversion for BOM data.And they need this should be done with BDC recording.and also i got the flat file.Anyone please help me in doin this.I need the complete description for it from beginning to end.

Hi,

i got a task for the dataconversion for BOM data.And they need this should be done with BDC recording.and also i got the flat file.Anyone please help me in doin this.I need the complete description for it from beginning to end.

2 REPLIES 2
Read only

Former Member
0 Likes
438

Hi,

See the Sample Program for BOM Uplaod and do the changes as per your requirement;

REPORT ZPPBDCP_BOM_EXTENSION NO STANDARD PAGE HEADING LINE-SIZE 255.

INCLUDE ZBDCRECX1.

DATA : BEGIN OF IT_DATA OCCURS 0,

RC29N_bismt LIKE MAra-bismt,

RC29N_WERKS LIKE RC29N-WERKS,

RC29N_STLAN LIKE RC29N-STLAN,

RC29P_SELPO LIKE RC29P-SELPO,

RC29N_BISMT1 LIKE MAra-BISMT,

RCUKD_KNNAM01 LIKE RCUKD-KNNAM,

RCUKD_KNNAM02 LIKE RCUKD-KNNAM,

RCUKD_KNNAM03 LIKE RCUKD-KNNAM,

RCUKD_KNNAM04 LIKE RCUKD-KNNAM,

RCUKD_KNNAM05 LIKE RCUKD-KNNAM,

RCUKD_KNNAM06 LIKE RCUKD-KNNAM,

RCUKD_KNNAM07 LIKE RCUKD-KNNAM,

RCUKD_KNNAM08 LIKE RCUKD-KNNAM,

RCUKD_KNNAM09 LIKE RCUKD-KNNAM,

RCUKD_KNNAM10 LIKE RCUKD-KNNAM,

RCUKD_KNNAM11 LIKE RCUKD-KNNAM,

RCUKD_KNNAM12 LIKE RCUKD-KNNAM,

RCUKD_KNNAM13 LIKE RCUKD-KNNAM,

RCUKD_KNNAM14 LIKE RCUKD-KNNAM,

RCUKD_KNNAM15 LIKE RCUKD-KNNAM,

RCUKD_KNNAM16 LIKE RCUKD-KNNAM,

RCUKD_KNNAM17 LIKE RCUKD-KNNAM,

RCUKD_KNNAM18 LIKE RCUKD-KNNAM,

RCUKD_KNNAM19 LIKE RCUKD-KNNAM,

RCUKD_KNNAM20 LIKE RCUKD-KNNAM,

END OF IT_DATA.

DATA : IT_STPO LIKE STPO_API02 OCCURS 0 WITH HEADER LINE.

DATA : BEGIN OF IT_MATNR OCCURS 0,

SNO(5),

MATNR LIKE MAKT-MATNR,

BISMT LIKE MAra-BISMT,

WERKS LIKE RC29N-WERKS,

STLAN LIKE RC29N-STLAN,

  • SELPO LIKE RC29P-SELPO,

  • MATNR1 LIKE MARA-MATNR,

END OF IT_MATNR.

DATA : BEGIN OF IT_ITEMS OCCURS 0,

SNO(5),

  • MATNR LIKE MAKT-MATNR,

  • WERKS LIKE RC29N-WERKS,

  • STLAN LIKE RC29N-STLAN,

SELPO LIKE RC29P-SELPO,

MATNR1 LIKE MARA-MATNR,

BISMT1 LIKE MARA-BISMT,

END OF IT_ITEMS.

DATA : BEGIN OF IT_DEPENDENCIES OCCURS 0,

SNO(5),

SELPO LIKE RC29P-SELPO,

KNNAM LIKE RCUKD-KNNAM,

END OF IT_DEPENDENCIES.

DATA : BEGIN OF IT_ERROR OCCURS 0,

MATNR LIKE MARA-MATNR,

BISMT LIKE MARA-BISMT,

SELPO LIKE RC29P-SELPO,

MATNR1 LIKE MARA-MATNR,

BISMT1 LIKE MARA-BISMT,

END OF IT_ERROR.

DATA : V_FIRST,

V_TABIX type i,

V_LINES TYPE I,

V_INDEX(2) TYPE N,

V_SNO(5),

V_FNAME(40),

V_DATE(10),

V_TIME(8),

V_MODE VALUE 'A',

V_ROWS TYPE I,

V_SKIP.

DATA : V_ITEM_NO(4) TYPE N,

V_COMPONENT(18).

DATA : V_MATNR LIKE MARA-MATNR,

V_MATNR1 LIKE MARA-MATNR.

FIELD-SYMBOLS <F>.

DATA : BEGIN OF IT OCCURS 0,

PROGRAM(10),

DYNPRO(10),

DYNBEGIN(10),

FNAM(20),

FVAL(20),

END OF IT.

START-OF-SELECTION.

PERFORM OPEN_GROUP.

WRITE : / 'Upload of BOM Extn. from ', P_FNAME, ' on ', SY-DATUM.

  • CALL FUNCTION 'UPLOAD'

  • EXPORTING

  • FILENAME = '\BOMExtension.txt'

  • FILETYPE = 'DAT'

  • TABLES

  • DATA_TAB = IT_DATA

  • EXCEPTIONS

  • CONVERSION_ERROR = 1

  • INVALID_TABLE_WIDTH = 2

  • INVALID_TYPE = 3

  • NO_BATCH = 4

  • UNKNOWN_ERROR = 5

  • GUI_REFUSE_FILETRANSFER = 6

  • OTHERS = 7.

OPEN DATASET P_FNAME FOR INPUT IN TEXT MODE.

IF SY-SUBRC NE 0.

WRITE : / 'Could not upload the file.. please try again.'.

ENDIF.

CLEAR : IT_DATA[], IT_DATA.

DO.

READ DATASET P_FNAME INTO V_STR.

IF SY-SUBRC NE 0.

EXIT.

ENDIF.

  • write v_str.

  • translate v_str using '#/'.

SPLIT V_STR AT ',' INTO IT_DATA-RC29N_BISMT

IT_DATA-RC29N_WERKS

IT_DATA-RC29N_STLAN

IT_DATA-RC29P_SELPO

IT_DATA-RC29N_BISMT1

IT_DATA-RCUKD_KNNAM01

IT_DATA-RCUKD_KNNAM02

IT_DATA-RCUKD_KNNAM03

IT_DATA-RCUKD_KNNAM04

IT_DATA-RCUKD_KNNAM05

IT_DATA-RCUKD_KNNAM06

IT_DATA-RCUKD_KNNAM07

IT_DATA-RCUKD_KNNAM08

IT_DATA-RCUKD_KNNAM09

IT_DATA-RCUKD_KNNAM10

IT_DATA-RCUKD_KNNAM11

IT_DATA-RCUKD_KNNAM12

IT_DATA-RCUKD_KNNAM13

IT_DATA-RCUKD_KNNAM14

IT_DATA-RCUKD_KNNAM15

IT_DATA-RCUKD_KNNAM16

IT_DATA-RCUKD_KNNAM17

IT_DATA-RCUKD_KNNAM18

IT_DATA-RCUKD_KNNAM19

IT_DATA-RCUKD_KNNAM20.

translate it_data-rc29n_bismt to upper case.

APPEND IT_DATA.

CLEAR IT_DATA.

ENDDO.

IF IT_DATA[] IS INITIAL.

WRITE : / 'No data found to upload'.

STOP.

ENDIF.

LOOP AT IT_DATA.

IF IT_DATA-RC29N_BISMT NE SPACE.

SELECT SINGLE MATNR INTO (V_MATNR) FROM MARA

WHERE BISMT = IT_DATA-RC29N_BISMT.

  • SPRAS = 'EN'.

V_SNO = V_SNO + 1.

IT_MATNR-SNO = V_SNO.

IT_MATNR-MATNR = V_MATNR.

IT_MATNR-BISMT = IT_DATA-RC29N_BISMT.

IT_MATNR-WERKS = IT_DATA-RC29N_WERKS.

IT_MATNR-STLAN = IT_DATA-RC29N_STLAN.

APPEND IT_MATNR.

ENDIF.

SELECT SINGLE MATNR INTO (V_MATNR1) FROM MARA

WHERE BISMT = IT_DATA-RC29N_BISMT1.

IT_DEPENDENCIES-SNO = V_SNO.

IT_DEPENDENCIES-SELPO = IT_DATA-RC29P_SELPO.

IT_ITEMS-SNO = V_SNO.

  • IT_MATNR-SELPO = IT_DATA-RC29P_SELPO.

  • IT_MATNR-MATNR1 = V_MATNR1.

  • APPEND IT_MATNR.

IT_ITEMS-SELPO = IT_DATA-RC29P_SELPO.

IT_ITEMS-MATNR1 = V_MATNR1.

IT_ITEMS-BISMT1 = IT_DATA-RC29N_BISMT1.

APPEND IT_ITEMS.

DO 20 TIMES.

CLEAR V_FNAME.

V_INDEX = SY-INDEX.

CONCATENATE 'IT_DATA-RCUKD_KNNAM' V_INDEX INTO V_FNAME.

ASSIGN (V_FNAME) TO <F>.

IF <F> EQ SPACE.

EXIT.

ENDIF.

IT_DEPENDENCIES-KNNAM = <F>.

APPEND IT_DEPENDENCIES.

ENDDO.

ENDLOOP.

LOOP AT IT_MATNR.

V_TABIX = SY-TABIX.

CALL FUNCTION 'CSAP_MAT_BOM_READ'

EXPORTING

MATERIAL = IT_MATNR-MATNR

PLANT = IT_MATNR-WERKS

BOM_USAGE = IT_MATNR-STLAN

  • ALTERNATIVE =

  • VALID_FROM =

  • VALID_TO =

  • CHANGE_NO =

  • REVISION_LEVEL =

  • IMPORTING

  • FL_WARNING =

TABLES

T_STPO = IT_STPO

  • T_STKO =

  • T_DEP_DATA =

  • T_DEP_DESCR =

  • T_DEP_ORDER =

  • T_DEP_SOURCE =

  • T_DEP_DOC =

EXCEPTIONS

ERROR = 1

OTHERS = 2.

CLEAR V_SKIP.

IF SY-SUBRC EQ 0.

LOOP AT IT_ITEMS WHERE SNO = IT_MATNR-SNO.

V_ITEM_NO = IT_ITEMS-SELPO.

WRITE : IT_ITEMS-MATNR1 TO V_COMPONENT NO-ZERO.

READ TABLE IT_STPO WITH KEY ITEM_NO = V_ITEM_NO

COMPONENT = V_COMPONENT.

IF SY-SUBRC NE 0.

V_SKIP = 'X'.

EXIT.

ENDIF.

ENDLOOP.

ENDIF.

IF V_SKIP = 'X'.

IT_ERROR-MATNR = IT_MATNR-MATNR.

IT_ERROR-BISMT = IT_MATNR-BISMT.

IT_ERROR-SELPO = IT_ITEMS-SELPO.

IT_ERROR-MATNR1 = IT_ITEMS-MATNR1.

IT_ERROR-BISMT1 = IT_ITEMS-BISMT1.

APPEND IT_ERROR.

DELETE IT_DEPENDENCIES WHERE SNO = IT_MATNR-SNO.

DELETE IT_ITEMS WHERE SNO = IT_MATNR-SNO.

DELETE IT_MATNR INDEX V_TABIX.

ENDIF.

ENDLOOP.

WRITE : / 'Item Numbers and Components does not match for following :'.

LOOP AT IT_ERROR.

WRITE : /5 IT_ERROR-BISMT, IT_ERROR-SELPO, IT_ERROR-BISMT1.

ENDLOOP.

DATA : BEGIN OF IT_KNNAM OCCURS 0,

KNNAM LIKE CUKB-KNNAM,

END OF IT_KNNAM.

SELECT KNNAM INTO TABLE IT_KNNAM FROM CUKB

FOR ALL ENTRIES IN IT_DEPENDENCIES

WHERE KNNAM = IT_DEPENDENCIES-KNNAM.

SKIP.

WRITE : / 'Dependencies does not exist :'.

LOOP AT IT_DEPENDENCIES.

READ TABLE IT_KNNAM WITH KEY KNNAM = IT_DEPENDENCIES-KNNAM.

IF SY-SUBRC NE 0.

READ TABLE IT_MATNR WITH KEY SNO = IT_DEPENDENCIES-SNO.

WRITE : /5 IT_MATNR-BISMT, IT_DEPENDENCIES-SELPO,

IT_DEPENDENCIES-KNNAM.

DELETE IT_DEPENDENCIES WHERE SNO = IT_MATNR-SNO.

DELETE IT_ITEMS WHERE SNO = IT_MATNR-SNO.

DELETE IT_MATNR WHERE SNO = IT_MATNR-SNO.

ENDIF.

ENDLOOP.

V_ROWS = SY-SROWS - 7.

DESCRIBE TABLE IT_MATNR LINES V_LINES.

IF V_LINES EQ 0.

WRITE : / 'No materials found to process'.

STOP.

ENDIF.

SKIP.

DATA : V_TOTAL(4) TYPE C.

DATA : V_CURRE(4) TYPE C.

DATA : V_TEXT(25).

DATA : V_PERC TYPE I.

DESCRIBE TABLE IT_MATNR LINES V_TOTAL.

LOOP AT IT_MATNR.

V_CURRE = SY-TABIX.

CONDENSE : V_TOTAL, V_CURRE.

CONCATENATE V_CURRE '/' V_TOTAL INTO V_TEXT.

V_PERC = V_TOTAL * ( V_CURRE / 100 ).

CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'

EXPORTING

PERCENTAGE = V_PERC

TEXT = V_TEXT.

PERFORM BDC_DYNPRO USING 'SAPLCSDI' '0100'.

PERFORM BDC_FIELD1 USING 'BDC_CURSOR'

'RC29N-STLAN'.

PERFORM BDC_FIELD1 USING 'BDC_OKCODE'

'/00'.

PERFORM BDC_FIELD1 USING 'RC29N-MATNR'

IT_MATNR-MATNR. " '933'.

PERFORM BDC_FIELD1 USING 'RC29N-WERKS'

IT_MATNR-WERKS. " '2000'.

PERFORM BDC_FIELD1 USING 'RC29N-STLAN'

IT_MATNR-STLAN. " '3'.

PERFORM BDC_FIELD1 USING 'RC29N-STLAL'

'1'.

  • PERFORM BDC_FIELD1 USING 'RC29N-DATUV'

  • '17.07.2001'.

LOOP AT IT_ITEMS WHERE SNO = IT_MATNR-SNO.

PERFORM BDC_DYNPRO USING 'SAPLCSDI' '0150'.

PERFORM BDC_FIELD1 USING 'BDC_CURSOR'

'RC29P-POSNR(01)'.

PERFORM BDC_FIELD1 USING 'BDC_OKCODE'

'=SETP'.

PERFORM BDC_DYNPRO USING 'SAPLCSDI' '0708'.

PERFORM BDC_FIELD1 USING 'BDC_OKCODE'

'=CLWI'.

PERFORM BDC_FIELD1 USING 'BDC_CURSOR'

'RC29P-SELPO'.

PERFORM BDC_FIELD1 USING 'RC29P-SELPO'

IT_ITEMS-SELPO. " '0040'.

PERFORM BDC_DYNPRO USING 'SAPLCSDI' '0150'.

PERFORM BDC_FIELD1 USING 'BDC_CURSOR'

'RC29P-AUSKZ(01)'.

PERFORM BDC_FIELD1 USING 'BDC_OKCODE'

'=WIZU'.

PERFORM BDC_FIELD1 USING 'RC29P-AUSKZ(01)'

'X'.

PERFORM BDC_DYNPRO USING 'SAPLCUKD' '0130'.

PERFORM BDC_FIELD1 USING 'BDC_CURSOR'

'RCUKD-KNNAM(02)'.

PERFORM BDC_FIELD1 USING 'BDC_OKCODE'

'/00'.

V_SNO = 0.

LOOP AT IT_DEPENDENCIES WHERE SNO = IT_ITEMS-SNO AND

SELPO = IT_ITEMS-SELPO.

  • PERFORM BDC_DYNPRO USING 'SAPLCUKD' '0130'.

  • PERFORM BDC_FIELD1 USING 'BDC_CURSOR'

  • 'RCUKD-KNNAM(02)'.

  • PERFORM BDC_FIELD1 USING 'BDC_OKCODE'

  • '=SICH'.

  • PERFORM BDC_FIELD1 USING 'RCUKD-KNNAM(01)'

  • IT_DEPENDENCIES-KNNAM." 'test6'.

V_SNO = V_SNO + 1.

CONDENSE V_SNO.

CONCATENATE 'RCUKD-KNNAM(' V_SNO ')' INTO V_FNAME.

PERFORM BDC_FIELD USING V_FNAME

IT_DEPENDENCIES-KNNAM." 'test6'.

IF V_SNO = 13.

PERFORM BDC_DYNPRO USING 'SAPLCUKD' '0130'.

PERFORM BDC_FIELD1 USING 'BDC_CURSOR'

'RCUKD-KNNAM(01)'.

PERFORM BDC_FIELD1 USING 'BDC_OKCODE'

'=NEWZ'.

PERFORM BDC_DYNPRO USING 'SAPLCUKD' '0130'.

PERFORM BDC_FIELD1 USING 'BDC_CURSOR'

'RCUKD-KNNAM(02)'.

PERFORM BDC_FIELD1 USING 'BDC_OKCODE'

'/00'.

V_SNO = 1.

ENDIF.

ENDLOOP.

PERFORM BDC_DYNPRO USING 'SAPLCUKD' '0130'.

PERFORM BDC_FIELD1 USING 'BDC_CURSOR'

'RCUKD-KNNAM(01)'.

PERFORM BDC_FIELD1 USING 'BDC_OKCODE'

'=SICH'.

ENDLOOP.

PERFORM BDC_DYNPRO USING 'SAPLCSDI' '0150'.

PERFORM BDC_FIELD1 USING 'BDC_CURSOR'

'RC29P-POSNR(01)'.

PERFORM BDC_FIELD1 USING 'BDC_OKCODE'

'=FCBU'.

WRITE : / 'Messages returned for ', IT_MATNR-BISMT,

IT_MATNR-WERKS, IT_MATNR-STLAN.

SKIP.

PERFORM BDC_TRANSACTION USING 'CS02'.

ENDLOOP.

PERFORM CLOSE_GROUP.

----


  • Insert field *

----


FORM BDC_FIELD1 USING FNAM FVAL.

CLEAR BDCDATA.

BDCDATA-FNAM = FNAM.

BDCDATA-FVAL = FVAL.

APPEND BDCDATA.

ENDFORM.

Regards,

Anji

Read only

Former Member
0 Likes
438

Reema,

Your question does not say much. Meanwhile please have a look at the following SE38 objects:

RCSBI010 Create BOM

RCSBI020 Change BOM

These are standard BDC for BOM

-

SANDEEP