Application Development 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: 

about bdc

Former Member
0 Kudos
160

Hi,

How to send notepad file records in to database using BDC.

1 ACCEPTED SOLUTION

varma_narayana
Active Contributor
0 Kudos
121

Hi

Check this code to upload vendor master through SHDB transaction.

report ZVEND_MST no standard page heading line-size

255.

*include bdcrecx1.

*parameters: dataset(132) lower case default

'c:\vend.mst'.

      • DO NOT CHANGE - the generated data section - DO

NOT CHANGE ***

*

  • If it is nessesary to change the data section use

the rules:

  • 1.) Each definition of a field exists of two lines

  • 2.) The first line shows exactly the comment

  • '* data element: ' followed with the data

element

  • which describes the field.

  • If you don't have a data element use the

  • comment without a data element name

  • 3.) The second line shows the fieldname of the

  • structure, the fieldname must consist of

  • a fieldname and optional the character '_' and

  • three numbers and the field length in brackets

  • 4.) Each field must be type C.

*

      • Generated data section with specific formatting -

DO NOT CHANGE ***

data: begin of record,

  • data element: LIF16

LIFNR_001(016),

  • data element: BUKRS

BUKRS_002(004),

  • data element: EKORG

EKORG_003(004),

  • data element: KTOKK

KTOKK_004(004),

  • data element: NAME1_GP

NAME1_005(035),

  • data element: SORTL

SORTL_006(010),

  • data element: LAND1_GP

LAND1_007(003),

  • data element: SPRAS

SPRAS_008(002),

  • data element: BSTWA

WAERS_009(005),

end of record.

      • End generated data section ***

DATA : ITAB TABLE OF RECORD WITH HEADER LINE.

start-of-selection.

*perform open_dataset using dataset.

*perform open_group.

*

*do.

*

*read dataset dataset into record.

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

CALL FUNCTION 'GUI_UPLOAD'

EXPORTING

FILENAME = 'C:\VENDOR.TXT'

"TEXT FILE

FILETYPE = 'ASC'

HAS_FIELD_SEPARATOR = 'X'

TABLES

DATA_TAB = ITAB

EXCEPTIONS

FILE_OPEN_ERROR = 1

FILE_READ_ERROR = 2

NO_BATCH = 3

GUI_REFUSE_FILETRANSFER = 4

INVALID_TYPE = 5

NO_AUTHORITY = 6

UNKNOWN_ERROR = 7

BAD_DATA_FORMAT = 8

HEADER_NOT_ALLOWED = 9

SEPARATOR_NOT_ALLOWED = 10

HEADER_TOO_LONG = 11

UNKNOWN_DP_ERROR = 12

ACCESS_DENIED = 13

DP_OUT_OF_MEMORY = 14

DISK_FULL = 15

DP_TIMEOUT = 16

OTHERS = 17

.

IF SY-SUBRC <> 0.

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

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

ENDIF.

LOOP AT ITAB.

*In Loop Change Record With ITAB

  • like record-lifnr_001 with itab-lifnr_001

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'

record-LIFNR_001.

perform bdc_field using 'RF02K-BUKRS'

record-BUKRS_002.

perform bdc_field using 'RF02K-EKORG'

record-EKORG_003.

perform bdc_field using 'RF02K-KTOKK'

record-KTOKK_004.

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'

record-NAME1_005.

perform bdc_field using 'LFA1-SORTL'

record-SORTL_006.

perform bdc_field using 'LFA1-LAND1'

record-LAND1_007.

perform bdc_field using 'LFA1-SPRAS'

record-SPRAS_008.

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

perform bdc_field using 'BDC_CURSOR'

'LFB1-AKONT'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_dynpro using 'SAPMF02K' '0215'.

perform bdc_field using 'BDC_CURSOR'

'LFB1-ZTERM'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_dynpro using 'SAPMF02K' '0220'.

perform bdc_field using 'BDC_CURSOR'

'LFB5-MAHNA'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_dynpro using 'SAPMF02K' '0310'.

perform bdc_field using 'BDC_CURSOR'

'LFM1-WAERS'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'LFM1-WAERS'

record-WAERS_009.

perform bdc_dynpro using 'SAPMF02K' '0320'.

perform bdc_field using 'BDC_CURSOR'

'RF02K-LIFNR'.

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

endLOOP..

Check It, Activate it and process in SM35.

<b>Reward if Helpful</b>

6 REPLIES 6

Former Member
0 Kudos
121

Hi,

You first need to get the note pad file records into one internal table using FM 'WS_UPLOAD' then you can write the bdc logic to upload into the system.

Satya.

Former Member
0 Kudos
121

HI,

see this program.

REPORT ZBHVEND no standard page heading line-size 255.

DATA:BEGIN OF ITAB OCCURS 0,

LIFNR LIKE LFA1-LIFNR,

KTOKK LIKE LFA1-KTOKK,

NAME1 LIKE LFA1-NAME1,

SORTL LIKE LFA1-SORTL,

LAND1 LIKE LFA1-LAND1,

REGIO LIKE LFA1-REGIO,

END OF ITAB.

DATA BDCTAB LIKE BDCDATA OCCURS 0 WITH HEADER LINE.

CALL FUNCTION 'GUI_UPLOAD'

EXPORTING

FILENAME = 'C:/BHARAT/VEND.TXT' <b>"this is the notepad file name </b>

FILETYPE = 'ASC'

TABLES

DATA_TAB = ITAB.

CALL FUNCTION 'BDC_OPEN_GROUP'

EXPORTING

CLIENT = SY-MANDT

GROUP = 'VENDOR'

KEEP = 'X'

USER = SY-UNAME

PROG = SY-CPROG.

LOOP AT ITAB.

perform bdc_dynpro using 'SAPMF02K' '0107'.

perform bdc_field using 'BDC_CURSOR'

'RF02K-LIFNR'.

perform bdc_field using 'RF02K-LIFNR'

ITAB-LIFNR.

perform bdc_field using 'RF02K-KTOKK'

ITAB-KTOKK.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_dynpro using 'SAPMF02K' '0110'.

perform bdc_field using 'BDC_CURSOR'

'LFA1-NAME1'.

perform bdc_field using 'LFA1-NAME1'

ITAB-NAME1.

perform bdc_field using 'LFA1-SORTL'

ITAB-SORTL.

perform bdc_field using 'LFA1-LAND1'

ITAB-LAND1.

perform bdc_field using 'LFA1-REGIO'

ITAB-REGIO.

perform bdc_field using 'BDC_OKCODE'

'/00'.

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

CALL FUNCTION 'BDC_INSERT'

EXPORTING

TCODE = 'MK01'

TABLES

DYNPROTAB = BDCTAB.

REFRESH BDCTAB.

ENDLOOP.

CALL FUNCTION 'BDC_CLOSE_GROUP'.

FORM BDC_DYNPRO USING PROGRAM DYNPRO.

CLEAR BDCTAB.

BDCTAB-PROGRAM = PROGRAM.

BDCTAB-DYNPRO = DYNPRO.

BDCTAB-DYNBEGIN = 'X'.

APPEND BDCTAB.

ENDFORM.

FORM BDC_FIELD USING FNAM FVAL.

CLEAR BDCTAB.

BDCTAB-FNAM = FNAM.

BDCTAB-FVAL = FVAL.

APPEND BDCTAB.

ENDFORM.

<b>reward if helpful</b>

rgds,

bharat.

varma_narayana
Active Contributor
0 Kudos
122

Hi

Check this code to upload vendor master through SHDB transaction.

report ZVEND_MST no standard page heading line-size

255.

*include bdcrecx1.

*parameters: dataset(132) lower case default

'c:\vend.mst'.

      • DO NOT CHANGE - the generated data section - DO

NOT CHANGE ***

*

  • If it is nessesary to change the data section use

the rules:

  • 1.) Each definition of a field exists of two lines

  • 2.) The first line shows exactly the comment

  • '* data element: ' followed with the data

element

  • which describes the field.

  • If you don't have a data element use the

  • comment without a data element name

  • 3.) The second line shows the fieldname of the

  • structure, the fieldname must consist of

  • a fieldname and optional the character '_' and

  • three numbers and the field length in brackets

  • 4.) Each field must be type C.

*

      • Generated data section with specific formatting -

DO NOT CHANGE ***

data: begin of record,

  • data element: LIF16

LIFNR_001(016),

  • data element: BUKRS

BUKRS_002(004),

  • data element: EKORG

EKORG_003(004),

  • data element: KTOKK

KTOKK_004(004),

  • data element: NAME1_GP

NAME1_005(035),

  • data element: SORTL

SORTL_006(010),

  • data element: LAND1_GP

LAND1_007(003),

  • data element: SPRAS

SPRAS_008(002),

  • data element: BSTWA

WAERS_009(005),

end of record.

      • End generated data section ***

DATA : ITAB TABLE OF RECORD WITH HEADER LINE.

start-of-selection.

*perform open_dataset using dataset.

*perform open_group.

*

*do.

*

*read dataset dataset into record.

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

CALL FUNCTION 'GUI_UPLOAD'

EXPORTING

FILENAME = 'C:\VENDOR.TXT'

"TEXT FILE

FILETYPE = 'ASC'

HAS_FIELD_SEPARATOR = 'X'

TABLES

DATA_TAB = ITAB

EXCEPTIONS

FILE_OPEN_ERROR = 1

FILE_READ_ERROR = 2

NO_BATCH = 3

GUI_REFUSE_FILETRANSFER = 4

INVALID_TYPE = 5

NO_AUTHORITY = 6

UNKNOWN_ERROR = 7

BAD_DATA_FORMAT = 8

HEADER_NOT_ALLOWED = 9

SEPARATOR_NOT_ALLOWED = 10

HEADER_TOO_LONG = 11

UNKNOWN_DP_ERROR = 12

ACCESS_DENIED = 13

DP_OUT_OF_MEMORY = 14

DISK_FULL = 15

DP_TIMEOUT = 16

OTHERS = 17

.

IF SY-SUBRC <> 0.

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

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

ENDIF.

LOOP AT ITAB.

*In Loop Change Record With ITAB

  • like record-lifnr_001 with itab-lifnr_001

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'

record-LIFNR_001.

perform bdc_field using 'RF02K-BUKRS'

record-BUKRS_002.

perform bdc_field using 'RF02K-EKORG'

record-EKORG_003.

perform bdc_field using 'RF02K-KTOKK'

record-KTOKK_004.

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'

record-NAME1_005.

perform bdc_field using 'LFA1-SORTL'

record-SORTL_006.

perform bdc_field using 'LFA1-LAND1'

record-LAND1_007.

perform bdc_field using 'LFA1-SPRAS'

record-SPRAS_008.

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

perform bdc_field using 'BDC_CURSOR'

'LFB1-AKONT'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_dynpro using 'SAPMF02K' '0215'.

perform bdc_field using 'BDC_CURSOR'

'LFB1-ZTERM'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_dynpro using 'SAPMF02K' '0220'.

perform bdc_field using 'BDC_CURSOR'

'LFB5-MAHNA'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_dynpro using 'SAPMF02K' '0310'.

perform bdc_field using 'BDC_CURSOR'

'LFM1-WAERS'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'LFM1-WAERS'

record-WAERS_009.

perform bdc_dynpro using 'SAPMF02K' '0320'.

perform bdc_field using 'BDC_CURSOR'

'RF02K-LIFNR'.

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

endLOOP..

Check It, Activate it and process in SM35.

<b>Reward if Helpful</b>

varma_narayana
Active Contributor
0 Kudos
121

Hi Rakesh..

this is an Example for Uploading Purchase info records Tcode ME11.

REPORT zmm0069 NO STANDARD PAGE HEADING

MESSAGE-ID z0

LINE-SIZE 132

LINE-COUNT 65(2).

----


  • Internal Tables *

----


*Internal table for the purchasing info records fields.

DATA: BEGIN OF i_inforecord OCCURS 0,

matnr(18),

lifnr(10),

uom(3),

ekgrp(3),

planned_time(3),

under_tol(3),

over_tol(3),

qty(10),

price_cat(5),

inco(3),

designation(28),

netpr(13),

scale_qty1(10),

scale_pr1(13),

scale_qty2(10),

scale_pr2(13),

scale_qty3(13),

scale_pr3(10),

scale_qty4(13),

scale_pr4(10),

scale_qty5(13),

scale_pr5(10),

scale_qty6(13),

scale_pr6(10),

scale_qty7(13),

scale_pr7(10),

scale_qty8(13),

scale_pr8(10),

scale_qty9(13),

scale_pr9(10),

scale_qty10(13),

scale_pr10(10),

END OF i_inforecord.

    • Internal table for Old and New Vendor number

DATA : BEGIN OF i_lfb1 OCCURS 1,

lifnr(10),

altkn(10),

END OF i_lfb1.

    • Declare internal table for Call Transaction and BDC Session

DATA: i_bdc_table LIKE bdcdata OCCURS 0 WITH HEADER LINE.

----


  • Global Variables *

----


DATA: g_counter(2) TYPE n,

g_field_name(18) TYPE c,

zc_yes TYPE syftype VALUE 'X'.

----


  • Selection Screen *

----


SELECTION-SCREEN BEGIN OF BLOCK a WITH FRAME TITLE text-001.

PARAMETERS: p_fname1 TYPE localfile .

SELECTION-SCREEN SKIP 1.

SELECTION-SCREEN BEGIN OF BLOCK b WITH FRAME TITLE text-002.

PARAMETERS: p_rloc1 AS CHECKBOX DEFAULT 'X'.

SELECTION-SCREEN BEGIN OF BLOCK c WITH FRAME TITLE text-003.

PARAMETERS p_group(12) OBLIGATORY DEFAULT 'ZPURCHINFO'.

SELECTION-SCREEN END OF BLOCK c.

SELECTION-SCREEN END OF BLOCK b.

SELECTION-SCREEN END OF BLOCK a.

**WRITE the report header

TOP-OF-PAGE.

INCLUDE zheading.

----


  • Start of selection *

----


START-OF-SELECTION.

  • Load Input file

PERFORM f_load_input_file.

  • Create BDC records.

PERFORM create_bdc_records .

&----


*& Form Create_BDC_records

&----


  • Perform the BDC for the records in the internal table

----


FORM create_bdc_records .

IF NOT i_inforecord[] IS INITIAL.

    • Open BDC session

PERFORM open_bdc_session.

SELECT lifnr altkn FROM lfb1 INTO TABLE i_lfb1

FOR ALL ENTRIES IN i_inforecord

WHERE altkn = i_inforecord-lifnr.

  • Sorting the Internal table for better performance

SORT i_lfb1 BY altkn.

LOOP AT i_inforecord.

***Mapping Old Vendor number to the new Vendor number

READ TABLE i_lfb1 WITH KEY altkn = i_inforecord-lifnr BINARY

SEARCH.

IF sy-subrc EQ 0.

i_inforecord-lifnr = i_lfb1-lifnr.

ENDIF.

CLEAR i_bdc_table[].

PERFORM insert_screen_header.

  • call transaction 'ME11' using i_bdc_table

  • mode 'A'.

  • CLEAR i_bdc_table.

ENDLOOP.

CLEAR i_inforecord[].

PERFORM close_bdc_session.

    • Release the BDC sessions created

PERFORM release_bdc.

ENDIF.

ENDFORM. " open_group

&----


*& Form bdc_dynpro_start

&----


  • Start the screen for the transfer of fields

----


FORM bdc_dynpro_start USING p_g_program_1

p_g_screen.

CLEAR i_bdc_table.

i_bdc_table-program = p_g_program_1.

i_bdc_table-dynpro = p_g_screen.

i_bdc_table-dynbegin = 'X'.

APPEND i_bdc_table.

ENDFORM. " bdc_dynpro_start_start

&----


*& Form bdc_insert_field

&----


  • Insert field *

----


FORM bdc_insert_field USING f_name f_value.

IF f_value <> space.

CLEAR i_bdc_table.

i_bdc_table-fnam = f_name.

i_bdc_table-fval = f_value.

APPEND i_bdc_table.

ENDIF.

ENDFORM. "bdc_insert_field

&----


*& Form open_bdc_session

&----


  • Open a BDC session

----


FORM open_bdc_session .

    • Open BDC session and create and update records

CALL FUNCTION 'BDC_OPEN_GROUP'

EXPORTING

client = sy-mandt

  • DEST = FILLER8

group = p_group

  • HOLDDATE = FILLER8

keep = 'X'

user = sy-uname

  • RECORD = FILLER1

  • PROG = SY-CPROG

  • IMPORTING

  • QID =

EXCEPTIONS

client_invalid = 1

destination_invalid = 2

group_invalid = 3

group_is_locked = 4

holddate_invalid = 5

internal_error = 6

queue_error = 7

running = 8

system_lock_error = 9

user_invalid = 10

OTHERS = 11

.

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. " create_bdc_session

&----


*& Form insert_screen_header

&----


  • Screen flow for the transfer of fields

----


FORM insert_screen_header .

  • First Screen 100

PERFORM bdc_dynpro_start USING 'SAPMM06I' '0100'.

PERFORM bdc_insert_field USING:'BDC_CURSOR' 'EINA-LIFNR',

'BDC_OKCODE' '/00',

'EINA-LIFNR' i_inforecord-lifnr,

'EINA-MATNR' i_inforecord-matnr,

'EINE-EKORG' '1000',

'RM06I-NORMB' zc_yes.

****----


*******

  • Next Screen 101

PERFORM bdc_dynpro_start USING 'SAPMM06I' '0101'.

PERFORM bdc_insert_field USING : 'BDC_CURSOR' 'EINA-MAHN1',

'BDC_OKCODE' '/00',

'EINA-MEINS' i_inforecord-uom.

****----


*******

*Next Screen 102

PERFORM bdc_dynpro_start USING 'SAPMM06I' '0102'.

PERFORM bdc_insert_field USING : 'BDC_CURSOR' 'EINE-INCO2',

'EINE-APLFZ' i_inforecord-planned_time,

'EINE-EKGRP' i_inforecord-ekgrp,

'EINE-NORBM' i_inforecord-qty.

PERFORM bdc_insert USING 'EINE-UEBTK' ' '.

PERFORM bdc_insert_field USING:'EINE-PEINH' i_inforecord-scale_qty1,

'EINE-BPRME' i_inforecord-uom,

'EINE-UNTTO' '5',

'EINE-UEBTO' '25',

'EINE-MEPRF' i_inforecord-price_cat,

'EINE-NETPR' i_inforecord-netpr,

'EINE-INCO1' i_inforecord-inco,

'EINE-INCO2' i_inforecord-designation.

  • Checking for Scale quantities

IF i_inforecord-scale_qty2 = space.

PERFORM bdc_insert_field USING 'BDC_OKCODE' '=BU'.

PERFORM insert_bdc_new.

ELSE.

PERFORM bdc_insert_field USING 'BDC_OKCODE' '=KO'.

****----


*******

  • Next Screen 201

PERFORM bdc_dynpro_start USING 'SAPMV13A' '0201'.

PERFORM bdc_insert_field USING : 'BDC_CURSOR' 'RV13A-DATAB',

'BDC_OKCODE' '=PSTF'.

****----


*******

  • Next Screen 201

PERFORM bdc_dynpro_start USING 'SAPMV13A' '0201'.

PERFORM bdc_insert_field USING : 'BDC_CURSOR' 'KONP-KSCHL(01)',

'BDC_OKCODE' '=PSTF',

'RV130-SELKZ(01)' zc_yes.

****----


*******

  • LAST SCREEN 303

PERFORM bdc_dynpro_start USING 'SAPMV13A' '0303'.

PERFORM bdc_insert_field USING : 'BDC_CURSOR' 'KONM-KBETR(03)',

'BDC_OKCODE' '=SICH'.

  • Counter to Loop the Item level entry

g_counter = 0.

PERFORM scale_entry USING i_inforecord-scale_qty2

i_inforecord-scale_pr2.

PERFORM scale_entry USING i_inforecord-scale_qty3

i_inforecord-scale_pr3.

PERFORM scale_entry USING i_inforecord-scale_qty4

i_inforecord-scale_pr4.

PERFORM scale_entry USING i_inforecord-scale_qty5

i_inforecord-scale_pr5.

PERFORM scale_entry USING i_inforecord-scale_qty6

i_inforecord-scale_pr6.

PERFORM scale_entry USING i_inforecord-scale_qty7

i_inforecord-scale_pr7.

PERFORM scale_entry USING i_inforecord-scale_qty8

i_inforecord-scale_pr8.

PERFORM scale_entry USING i_inforecord-scale_qty9

i_inforecord-scale_pr9.

PERFORM scale_entry USING i_inforecord-scale_qty10

i_inforecord-scale_pr10.

PERFORM insert_bdc_new.

ENDIF.

ENDFORM. " insert_screen_header

&----


*& Form insert_bdc

&----


  • Insert BDC

----


FORM insert_bdc_new .

CALL FUNCTION 'BDC_INSERT'

EXPORTING

tcode = 'ME11'

  • POST_LOCAL = NOVBLOCAL

  • PRINTING = NOPRINT

  • SIMUBATCH = ' '

  • CTUPARAMS = ' '

TABLES

dynprotab = i_bdc_table

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.

CLEAR i_bdc_table[].

ENDFORM. " insert_bdc

&----


*& Form close_bdc_session

&----


  • Close the BDC session

----


FORM close_bdc_session .

CALL FUNCTION 'BDC_CLOSE_GROUP'

EXCEPTIONS

not_open = 1

queue_error = 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. " close_bdc_session

&----


*& Form f_load_input_file

&----


  • Upload the file

----


FORM f_load_input_file.

  • Check always Local file for upload

IF p_rloc1 = zc_yes.

CALL FUNCTION 'WS_UPLOAD'

EXPORTING

filename = p_fname1

filetype = 'DAT'

TABLES

data_tab = i_inforecord

EXCEPTIONS

conversion_error = 1

file_open_error = 2

file_read_error = 3

invalid_type = 4

no_batch = 5

unknown_error = 6

invalid_table_width = 7

gui_refuse_filetransfer = 8

customer_error = 9

OTHERS = 10.

IF sy-subrc <> 0.

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

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

STOP.

ENDIF.

ENDIF.

*

ENDFORM. " f_load_input_file

&----


*& Form release_bdc

&----


  • Release the session

----


FORM release_bdc.

SUBMIT rsbdcsub WITH mappe EQ p_group

WITH von EQ sy-datum

WITH bis EQ sy-datum

WITH fehler EQ '.'

EXPORTING LIST TO MEMORY

AND RETURN.

ENDFORM. " release_bdc

&----


*& Form scale_entry

&----


  • Populate the Scale quantities

----


  • -->P_SCALE_QTY

  • -->P_SCALE_PRICE

----


FORM scale_entry USING p_scale_qty

p_scale_price.

  • Increment the Counter

g_counter = g_counter + 1.

IF p_scale_qty <> space.

CONCATENATE 'KONM-KSTBM(' g_counter ')' INTO g_field_name.

PERFORM bdc_insert_field USING g_field_name p_scale_qty.

CONCATENATE 'KONM-KBETR(' g_counter ')' INTO g_field_name.

PERFORM bdc_insert_field USING g_field_name p_scale_price.

ENDIF.

ENDFORM.

&----


*& Form bdc_insert

&----


  • To uncheck the Unlimited (UEBTK)

----


FORM bdc_insert USING f_name f_value.

CLEAR i_bdc_table.

i_bdc_table-fnam = f_name.

i_bdc_table-fval = f_value.

APPEND i_bdc_table.

ENDFORM. " bdc_insert

<b>REWARD IF HELPFUL</b>

Former Member
0 Kudos
121

upload the records into internal table using open data set

and then to DB

Former Member
0 Kudos
121

Hi,

Follow the steps given below:

1) Upload the notepad into an internal table using FM <b>GUI_UPLOAD</b>.

2) Use FM <b>BDC_OPEN_GROUP</b> to start a BDC session.

3) Use FM <b>BDC_INSERT</b> to get data into DB, and finally

4)Use FM <b>BDC_CLOSE_GROUP</b> to close BDC session.

Regards,

Amit