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

Former Member
0 Likes
850

HI,

IN BDC PROGRAM I AM USING ONE FIELD OF TYPE <b>QUAN</b>

PLEASE EXPLAIN WITH CODING HOW CAN I HANDLE QUAN IN BDC.

THANK YOU

ASHOK KUMAR

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
822

Hi Ashok,

For quantity and currency fields we can't pass the value directly. we must take one referane field and by using that referance field we can pass the value into internal table or to any variable.

For example i will give the currency field;

DATA : V_AMOUNT LIKE BSID-WRBTR. "DECIMALS 2.

DATA: NUMBER TYPE P DECIMALS 2.

MOVE '999999.99' TO NUMBER.

V_AMOUNT = NUMBER .

lv_curr_month = lv_curr_date+4(2)

Hope this helps you. Reply for queries, shall post the updates.

Regards.

Kumar.

7 REPLIES 7
Read only

Simha_
Product and Topic Expert
Product and Topic Expert
0 Likes
822

Hi,

Just define the qunatity field as type char.

This will solve the problem..

Cheers,

Simha.

Reward all the helpful answers..

Read only

mohammed_moqeeth
Active Participant
0 Likes
822

Hello Ashok,

You have to define the QUAN field with character format in the internal table, and pass the value to this QUAN field.

<b>Reward Points for helpful answers.

Cheers !

moqeeth.</b>

Read only

Former Member
0 Likes
822

hi

good

While Doing the BDC, we create only CHAR type fields. so you take the Itab with all the CHAR type field, after getting the data from the Flatfile/Tables, move the data to this Char type fields and do the BDC

or

data: v1(16) type c.

move <quantity> to V1.

data: v2(13) type c.

move <amount> to V2.

u can use V1 & V2 in ur BDC to upload data.

thanks

mrutyun^

Read only

Former Member
0 Likes
822

Hi,

For quantity fields and currency fields plz define as char in the internal table where u r getting the values from the flat file...

Try to see the field in the database table...Click the above push button entry/help check and see for these two fields

REWARD IF USEFUL!!!!!!!!!!!!!!!

Read only

Former Member
0 Likes
822

HI,

I AM UPLOADING TCODE <b>0VTC</b> . SO I CAN NOT CHANGE TYPE <b>QUAN</b> TO CHAR

THANK YOU

Read only

Former Member
0 Likes
823

Hi Ashok,

For quantity and currency fields we can't pass the value directly. we must take one referane field and by using that referance field we can pass the value into internal table or to any variable.

For example i will give the currency field;

DATA : V_AMOUNT LIKE BSID-WRBTR. "DECIMALS 2.

DATA: NUMBER TYPE P DECIMALS 2.

MOVE '999999.99' TO NUMBER.

V_AMOUNT = NUMBER .

lv_curr_month = lv_curr_date+4(2)

Hope this helps you. Reply for queries, shall post the updates.

Regards.

Kumar.

Read only

Former Member
0 Likes
822

Hi Ashok,

Declare Quantity as 'CHAR' Data type in Coding and you shold give follwoing formate cell in FLAT FILE:'GENERAL'.

This code will help you, this is BDC for ME41. see that i mention the quantity.

REPORT ZUDAY_BDC_ME41 NO STANDARD PAGE HEADING LINE-SIZE 255.

INCLUDE BDCRECX1.

TABLES:EKPO.

DATA: BEGIN OF ITAB OCCURS 0,

NUMBER(3) TYPE C,

EMATN LIKE EKPO-EMATN,

TXZ01 LIKE EKPO-TXZ01,

ANMNG(13) TYPE C, ******** THIS IS THE QUANTITY *****************

MEINS LIKE EKPO-MEINS,

EEIND LIKE RM06E-EEIND,

MATKL LIKE EKPO-MATKL,

END OF ITAB.

DATA: TEMP(30),

COUNT TYPE C VALUE 0,

ZERO TYPE C VALUE 0,

LVALUE TYPE I,

CTRL(10) TYPE C,

PAGE(5) TYPE C .

START-OF-SELECTION.

PERFORM START.

PERFORM OPEN_GROUP.

LOOP AT ITAB.

IF ITAB-NUMBER <> LVALUE.

ctrl = 0.

PAGE = 10.

PERFORM BDC_DYNPRO USING 'SAPMM06E' '0300'.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'EKKO-EKGRP'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'/00'.

PERFORM BDC_FIELD USING 'RM06E-ASART'

'AN'.

PERFORM BDC_FIELD USING 'EKKO-SPRAS'

'EN'.

PERFORM BDC_FIELD USING 'RM06E-ANFDT'

'20.07.2007'.

PERFORM BDC_FIELD USING 'EKKO-ANGDT'

'21.07.2007'.

PERFORM BDC_FIELD USING 'EKKO-EKORG'

'4500'.

PERFORM BDC_FIELD USING 'EKKO-EKGRP'

'017'.

PERFORM BDC_FIELD USING 'RM06E-LPEIN'

'T'.

PERFORM BDC_DYNPRO USING 'SAPMM06E' '0301'.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'EKKO-SUBMI'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'/00'.

PERFORM BDC_FIELD USING 'EKKO-EKGRP'

'017'.

PERFORM BDC_FIELD USING 'EKKO-PINCR'

'10'.

PERFORM BDC_FIELD USING 'EKKO-SUBMI'

'3'.

PERFORM BDC_FIELD USING 'EKKO-SPRAS'

'EN'.

PERFORM BDC_FIELD USING 'EKKO-UPINC'

'1'.

PERFORM BDC_FIELD USING 'EKKO-ANGDT'

'21.07.2007'.

PERFORM BDC_DYNPRO USING 'SAPMM06E' '0320'.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'RM06E-EEIND(01)'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'/00'.

LOOP AT ITAB WHERE NUMBER = ITAB-NUMBER.

CTRL = CTRL + 1.

IF CTRL > 19.

PAGE = PAGE + 10.

ctrl = '19'.

ENDIF.

IF CTRL > 9.

ZERO = ''.

ENDIF.

PERFORM BDC_FIELD USING 'RM06E-EBELP'

PAGE.

CONCATENATE 'EKPO-EMATN(' ZERO CTRL ')' INTO TEMP.

CONDENSE TEMP NO-GAPS.

PERFORM BDC_FIELD USING TEMP ITAB-EMATN.

CONCATENATE 'EKPO-TXZ01(' ZERO CTRL ')' INTO TEMP.

CONDENSE TEMP NO-GAPS.

PERFORM BDC_FIELD USING TEMP ITAB-TXZ01.

CONCATENATE 'RM06E-ANMNG(' ZERO CTRL ')' INTO TEMP.

CONDENSE TEMP NO-GAPS.

PERFORM BDC_FIELD USING TEMP ITAB-ANMNG.

CONCATENATE 'EKPO-MEINS(' ZERO CTRL ')' INTO TEMP.

CONDENSE TEMP NO-GAPS.

PERFORM BDC_FIELD USING TEMP ITAB-MEINS.

CONCATENATE 'RM06E-EEIND(' ZERO CTRL ')' INTO TEMP.

CONDENSE TEMP NO-GAPS.

PERFORM BDC_FIELD USING TEMP ITAB-EEIND.

CONCATENATE 'EKPO-MATKL(' ZERO CTRL ')' INTO TEMP.

CONDENSE TEMP NO-GAPS.

PERFORM BDC_FIELD USING TEMP ITAB-MATKL.

PERFORM BDC_DYNPRO USING 'SAPMM06E' '0320'.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'EKKO-ANGDT'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'=LS'.

PERFORM BDC_FIELD USING 'EKKO-ANGDT'

'21.07.2007'.

CONCATENATE 'EKPO-EMATN(' ZERO CTRL ')' INTO TEMP.

CONDENSE TEMP NO-GAPS.

PERFORM BDC_FIELD USING 'BDC_CURSOR' TEMP.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'/00'.

ENDLOOP.

lvalue = itab-number.

PERFORM BDC_DYNPRO USING 'SAPMM06E' '0140'.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'EKKO-LIFNR'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'/00'.

PERFORM BDC_FIELD USING 'EKKO-LIFNR'

'70000'.

PERFORM BDC_DYNPRO USING 'SAPMM06E' '0140'.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'EKKO-LIFNR'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'=BU'.

PERFORM BDC_FIELD USING 'EKKO-LIFNR'

'70000'.

PERFORM BDC_FIELD USING 'SZA1_D0100-TITLE_MEDI'

'Company'.

PERFORM BDC_FIELD USING 'ADDR1_DATA-NAME1'

'IBM Store'.

PERFORM BDC_FIELD USING 'ADDR1_DATA-SORT1'

'IBM'.

PERFORM BDC_FIELD USING 'ADDR1_DATA-STREET'

'2526 Yonge Street'.

PERFORM BDC_FIELD USING 'ADDR1_DATA-POST_CODE1'

'M4P 2H7'.

PERFORM BDC_FIELD USING 'ADDR1_DATA-CITY1'

'Toronto'.

PERFORM BDC_FIELD USING 'ADDR1_DATA-COUNTRY'

'CA'.

PERFORM BDC_FIELD USING 'ADDR1_DATA-REGION'

'ON'.

PERFORM BDC_FIELD USING 'ADDR1_DATA-TIME_ZONE'

'CST'.

PERFORM BDC_FIELD USING 'ADDR1_DATA-LANGU'

'EN'.

PERFORM BDC_FIELD USING 'SZA1_D0100-TEL_NUMBER'

'416-486-3006'.

PERFORM BDC_DYNPRO USING 'SAPLSPO1' '0300'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'=YES'.

PERFORM BDC_TRANSACTION USING 'ME41'.

REFRESH BDCDATA.

ENDIF.

ENDLOOP.

PERFORM CLOSE_GROUP.

&----


*& Form START

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM START.

CALL FUNCTION 'UPLOAD'

EXPORTING

FILENAME = ' '

FILETYPE = ' '

TABLES

DATA_TAB = ITAB

EXCEPTIONS

CONVERSION_ERROR = 1

INVALID_TABLE_WIDTH = 2

INVALID_TYPE = 3

NO_BATCH = 4

UNKNOWN_ERROR = 5

GUI_REFUSE_FILETRANSFER = 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.

ENDFORM. " START

IF USEFULL REWARD