‎2007 Jul 05 11:52 AM
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
‎2007 Jul 05 12:02 PM
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.
‎2007 Jul 05 11:54 AM
Hi,
Just define the qunatity field as type char.
This will solve the problem..
Cheers,
Simha.
Reward all the helpful answers..
‎2007 Jul 05 11:55 AM
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>
‎2007 Jul 05 12:00 PM
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^
‎2007 Jul 05 12:00 PM
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!!!!!!!!!!!!!!!
‎2007 Jul 05 12:00 PM
HI,
I AM UPLOADING TCODE <b>0VTC</b> . SO I CAN NOT CHANGE TYPE <b>QUAN</b> TO CHAR
THANK YOU
‎2007 Jul 05 12:02 PM
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.
‎2007 Jul 05 1:59 PM
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