BDC FOR f-02 plz correct it
hi experts,
i am uploading xl data to F-02 using BDC.
see my code and correct me
THIS IS FLAT FILE.
DDAT DTY CC PDAT REFF CK PK ACC G/LTY AMOUNT REFF DUEDATE
01.04.2008 DR KAP 01.04.2008 MW/S6-06 INR 09 6000 A 10 MW/S6-06 01.04.2008
01.04.2008 DR KAP 01.04.2008 3489 INR 09 6000 A 20 1234 01.04.2008
01.04.2008 DR KAP 01.04.2008 3456 INR 09 6000 A 30 3456 01.04.2008
01.04.2008 DR KAP 01.04.2008 Upload INR 11 6000 60 upload 01.04.2008
*& Report ZBDC_FI_GL_F42
REPORT ZBDC_FI_GL_F42.
include bdcrecx1.
data : BEGIN OF wa_it,
BLDAT TYPE STRING ,"document date
BLART TYPE BKPF-BLART,"document type
BUKRS TYPE BKPF-BUKRS ,"com code
BUDAT TYPE STRING,"posting date
XBLNR TYPE BKPF-XBLNR ,"reference
WAERS TYPE BKPF-WAERS ,"currency key
NEWBS TYPE RF05A-NEWBS ,"posting key for next line item
NEWKO TYPE RF05A-NEWKO,"account
NEWUM TYPE RF05A-NEWUM," g/l
WRBTR TYPE STRING ," amount
BARCOPY TYPE RF05A-BARCOPY, " referene docu
ZFBDT TYPE STRING, "due-date
END OF wa_it.
DATA : wa_item LIKE WA_IT.
DATA : it_item like STANDARD TABLE OF wa_item .
data : it_return like STANDARD TABLE OF ALSMEX_TABLINE,
wa_return like ALSMEX_TABLINE,
wa_returns like ALSMEX_TABLINE.
SELECTION-SCREEN BEGIN OF BLOCK b1.
PARAMETERS: p_file like RLGRAP-FILENAME OBLIGATORY.
SELECTION-SCREEN END OF BLOCK B1.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
EXPORTING
PROGRAM_NAME = SYST-CPROG
DYNPRO_NUMBER = SYST-DYNNR
FIELD_NAME = ' '
STATIC = ' '
MASK = ' '
CHANGING
FILE_NAME = P_FILE.
EXCEPTIONS
MASK_TOO_LONG = 1
OTHERS = 2
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
START-OF-SELECTION.
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
FILENAME = p_file
I_BEGIN_COL = 1
I_BEGIN_ROW = 1
I_END_COL = 12
I_END_ROW = 488
TABLES
INTERN = it_return
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.
if sy-SUBRC = 0 .
sort it_return by row col.
loop at it_return into wa_returns.
wa_return = wa_returns.
case wa_return-col.
WHEN 1.
wa_item-BLDAT = wa_return-value.
when 2.
wa_item-BLART = wa_return-value.
when 3.
wa_item-BUKRS = wa_return-value.
when 4.
wa_item-BUDAT = wa_return-value.
WHEN 5.
wa_item-xblnr = wa_return-value.
when 6.
wa_item-WAERS = wa_return-value.
when 7.
wa_item-NEWBS = wa_return-value.
when 8 .
wa_item-newko = wa_return-value.
WHEN 9.
wa_item-newum = wa_return-value.
when 10.
wa_item-WRBTR = wa_return-value.
WHEN 11.
wa_item-barcopy = wa_return-value.
when 12.
wa_item-zfbdt = wa_return-value.
endcase.
at END OF row.
APPEND wa_item to it_item.
clear : wa_item , wa_return.
endat.
ENDLOOP.
endif.
perform open_group.
LOOP AT it_item INTO wa_item .
if SY-TABIX = 1 .
perform 1 .
ELSEIF SY-TABIX > 1 and SY-TABIX < 4.
PERFORM 2 .
ELSEIF SY-TABIX = 4 .
PERFORM 3 .
endif.
perform bdc_transaction using 'F-02'.
ENDLOOP.
perform close_group.
form 1.
perform bdc_dynpro using 'SAPMF05A' '0100'.
perform bdc_field using 'BDC_CURSOR'
'BKPF-XBLNR'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'BKPF-BLDAT'
wa_item-bldat.
perform bdc_field using 'BKPF-BLART'
wa_item-blart.
perform bdc_field using 'BKPF-BUKRS'
wa_item-bukrs.
perform bdc_field using 'BKPF-BUDAT'
wa_item-budat.
perform bdc_field using 'BKPF-WAERS'
wa_item-WAERS.
perform bdc_field using 'BKPF-XBLNR'
wa_item-XBLNR.
perform bdc_field using 'FS006-DOCID'
perform bdc_field using 'RF05A-BARCOPY'
wa_item-barcopy.
perform bdc_field using 'RF05A-NEWBS'
wa_item-newbs.
perform bdc_field using 'RF05A-NEWKO'
wa_item-NEWko.
perform bdc_field using 'RF05A-NEWUM'
wa_item-newum.
perform bdc_dynpro using 'SAPMF05A' '0304'.
perform bdc_field using 'BDC_CURSOR'
'BSEG-ZFBDT'.
perform bdc_field using 'BDC_OKCODE'
'=BU'.
perform bdc_field using 'BSEG-WRBTR'
wa_item-WRBTR.
perform bdc_field using 'BSEG-ZFBDT'
wa_item-zfbdt.
ENDFORM.
form 2.
perform bdc_dynpro using 'SAPMF05A' '0700'.
perform bdc_field using 'BDC_CURSOR'
'BKPF-XBLNR'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'BKPF-XBLNR'
wa_item-xblnr.
perform bdc_field using 'RF05A-NEWBS'
wa_item-NEWBS.
perform bdc_field using 'RF05A-NEWKO'
wa_item-newko.
perform bdc_field using 'RF05A-NEWUM'
wa_item-newum.
perform bdc_dynpro using 'SAPMF05A' '0304'.
perform bdc_field using 'BDC_CURSOR'
'BSEG-ZFBDT'.
perform bdc_field using 'BDC_OKCODE'
'BU'.
perform bdc_field using 'BSEG-WRBTR'
wa_item-WRBTR.
perform bdc_field using 'BSEG-ZFBDT'
wa_item-ZFBDT.
ENDFORM.
form 3.
perform bdc_dynpro using 'SAPMF05A' '0700'.
perform bdc_field using 'BDC_CURSOR'
'BKPF-XBLNR'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'BKPF-XBLNR'
wa_item-xblnr.
perform bdc_field using 'RF05A-NEWBS'
wa_item-NEWBS.
perform bdc_field using 'RF05A-NEWKO'
wa_item-newko.
perform bdc_dynpro using 'SAPMF05A' '0301'.
perform bdc_field using 'BDC_CURSOR'
'BSEG-WRBTR'.
perform bdc_field using 'BDC_OKCODE'
'=BU'.
perform bdc_field using 'BSEG-WRBTR'
wa_item-wrbtr.
perform bdc_field using 'BSEG-ZFBDT'
wa_item-ZFBDT.
ENDFORM.
Hi Kumar
Check this link for :
https://www.sdn.sap.com/irj/scn/wiki?path=/display/snippets/bdc%252bon%252bf-02
Regards
Neha
Similar Messages
-
BDC for MM01(Material creation)
Hello Please anybody send me code for creating materials with reference to reference material and plant in sselection screen in version ECC 6.0?
My selection screen will be::
Reference material: Plant:Plz User <b>BAPI_MATERIAL_SAVEDATA</b>
Why So :
you will never get it to work correctly in all cases every time for all material types, it is just much easier to work with an API that is not screen dependent. Then you don't have to worry about all of the exceptions when dealing with certain material types, and such. For example, say you have a material which you want to update the po text, and you did your recording for another material, which didn't have a specific view, so now when doing BDC for this material, the screen where you select the view you want to process, may be in a different place in the table control, see what I'm getting at? Its just very much easier to work with BAPIs and is suggest to use BAPI over BDC whenever possible.
Also still u want to go for it, check this code :
REPORT Y730_BDC5 .
*HANDLING TABLE CONTROL IN BDC
DATA : BEGIN OF IT_DUMMY OCCURS 0,
DUMMY(100) TYPE C,
END OF IT_DUMMY.
DATA : BEGIN OF IT_XK01 OCCURS 0,
LIFNR(10) TYPE C,
BUKRS(4) TYPE C,
EKORG(4) TYPE C,
KTOKK(4) TYPE C,
NAME1(30) TYPE C,
SORTL(10) TYPE C,
LAND1(3) TYPE C,
SPRAS(2) TYPE C,
AKONT(6) TYPE C,
FDGRV(2) TYPE C,
WAERS(3) TYPE C,
END OF IT_XK01,
BEGIN OF IT_BANK OCCURS 0,
BANKS(3) TYPE C,
BANKL(10) TYPE C,
BANKN(10) TYPE C,
KOINH(30) TYPE C,
LIFNR(10) TYPE C,
END OF IT_BANK.
DATA : IT_BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE,
IT_BDCMSGCOLL LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.
CALL FUNCTION 'WS_UPLOAD'
EXPORTING
FILENAME = 'C:\VENDOR.TXT'
FILETYPE = 'ASC'
TABLES
DATA_TAB = IT_DUMMY.
LOOP AT IT_DUMMY.
IF IT_DUMMY-DUMMY+0(2) = '11'.
IT_XK01-LIFNR = IT_DUMMY-DUMMY+2(10).
IT_XK01-BUKRS = IT_DUMMY-DUMMY+12(4).
IT_XK01-EKORG = IT_DUMMY-DUMMY+16(4).
IT_XK01-KTOKK = IT_DUMMY-DUMMY+20(4).
IT_XK01-NAME1 = IT_DUMMY-DUMMY+24(30).
IT_XK01-SORTL = IT_DUMMY-DUMMY+54(10).
IT_XK01-LAND1 = IT_DUMMY-DUMMY+64(3).
IT_XK01-SPRAS = IT_DUMMY-DUMMY+67(2).
IT_XK01-AKONT = IT_DUMMY-DUMMY+69(6).
IT_XK01-FDGRV = IT_DUMMY-DUMMY+75(2).
IT_XK01-WAERS = IT_DUMMY-DUMMY+77(3).
APPEND IT_XK01.
ELSE.
IT_BANK-BANKS = IT_DUMMY-DUMMY+2(3).
IT_BANK-BANKL = IT_DUMMY-DUMMY+5(10).
IT_BANK-BANKN = IT_DUMMY-DUMMY+15(10).
IT_BANK-KOINH = IT_DUMMY-DUMMY+25(30).
IT_BANK-LIFNR = IT_DUMMY-DUMMY+55(10).
APPEND IT_BANK.
ENDIF.
ENDLOOP.
LOOP AT IT_XK01.
REFRESH IT_BDCDATA.
perform bdc_dynpro using 'SAPMF02K' '0100'.
perform bdc_field using 'BDC_CURSOR'
'RF02K-REF_LIFNR'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'RF02K-LIFNR'
IT_XK01-LIFNR.
perform bdc_field using 'RF02K-BUKRS'
IT_XK01-BUKRS.
perform bdc_field using 'RF02K-EKORG'
IT_XK01-EKORG.
perform bdc_field using 'RF02K-KTOKK'
IT_XK01-KTOKK.
perform bdc_dynpro using 'SAPMF02K' '0110'.
perform bdc_field using 'BDC_CURSOR'
'LFA1-TELX1'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'LFA1-NAME1'
IT_XK01-NAME1.
perform bdc_field using 'LFA1-SORTL'
IT_XK01-SORTL.
perform bdc_field using 'LFA1-LAND1'
IT_XK01-LAND1.
perform bdc_field using 'LFA1-SPRAS'
IT_XK01-SPRAS.
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-KOINH(02)'.
perform bdc_field using 'BDC_OKCODE'
'=ENTR'.
DATA : FNAM(20) TYPE C,
IDX TYPE C.
MOVE 1 TO IDX.
LOOP AT IT_BANK WHERE LIFNR = IT_XK01-LIFNR.
CONCATENATE 'LFBK-BANKS(' IDX ')' INTO FNAM.
perform bdc_field using FNAM
IT_BANK-BANKS.
CONCATENATE 'LFBK-BANKL(' IDX ')' INTO FNAM.
perform bdc_field using FNAM
IT_BANK-BANKL.
CONCATENATE 'LFBK-BANKN(' IDX ')' INTO FNAM.
perform bdc_field using FNAM
IT_BANK-BANKN.
CONCATENATE 'LFBK-KOINH(' IDX ')' INTO FNAM.
perform bdc_field using FNAM
IT_BANK-KOINH.
IDX = IDX + 1.
ENDLOOP.
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-FDGRV'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'LFB1-AKONT'
IT_XK01-AKONT.
perform bdc_field using 'LFB1-FDGRV'
IT_XK01-FDGRV.
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'
IT_XK01-WAERS.
perform bdc_dynpro using 'SAPMF02K' '0320'.
perform bdc_field using 'BDC_CURSOR'
'WYT3-PARVW(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'
MESSAGES INTO IT_BDCMSGCOLL.
ENDLOOP.
FORM BDC_DYNPRO USING PROG SCR.
CLEAR IT_BDCDATA.
IT_BDCDATA-PROGRAM = PROG.
IT_BDCDATA-DYNPRO = SCR.
IT_BDCDATA-DYNBEGIN = 'X'.
APPEND IT_BDCDATA.
ENDFORM.
FORM BDC_FIELD USING FNAM FVAL.
CLEAR IT_BDCDATA.
IT_BDCDATA-FNAM = FNAM.
IT_BDCDATA-FVAL = FVAL.
APPEND IT_BDCDATA.
ENDFORM.
All things r available in SDN, please search.
Reward points if useful.
Thanks
vinsee -
We are having a procedure in our company where we balance the production order qty (target qty =delivered qty)
currently we are having a LSMW for that purpose,but this is done centrally by SAP Team and here lies the problem.
You can Imagine orders from 13 plants come to one station for this purpose.
1) We are having a BDC for bom uploading zcs01 created from bdc ,where user calls the transaction zcs01,and the required file is uploaded for creation by giving the path for it...
Similar to the above example is it possible to create a similar bdc and tcode,where user at plant level can easily operate the production order to balance the qty....
2) Is this possible from ourside without much help from ABAPer,since we are able to create lsmw,recordings through shdb...
I once tried to do so thru shdb,recording was created,I also generate a program .but while executing it I am confused how to show the destination file where I've the data to be uploaded...
Plz help...
Correct me if I am getting wrong...
RahulTHANKS FOR YOUR INPUT,
WE ARE QUITE AWARE OF LSMW WORKING,BUT CANT GIVE AUTHORITY TO PLANT USERS TO LSMW,HENCE WE AT CENTRAL ARE MAINTAING ALL MASTER DATA AND ALSO THE PROCEDURE OF BALANCING ORDER....
CAN YOU PLEASE TELL ME HOW THIS BOM UPLOADING BDC IS CREATED?
WORKING:- WE JUST MAINTAIN ALL THE FIELDS RELATED TO BOM IN AN EXCEL FILE AND THEN UPLOAD IT TO DESIRED DESTINATION,THEN WE CALL TRANSACTION ZCS01 AND GIVE THE REQUIRED DESTINATION OF FILE WE WANT TO UPLOAD
AFTER EXECUTING THE REQUIRED BOM ARE BEING CREATED.
I BEING A FUNCTIONAL GUY ,NOT HAVING THE REQ KNOWLEDGE...
PLEASE THROW SOME LIGHT ON IT..... -
Hello All,
A code has been written in the User exit for Tcode ME22N, Which sets the indicator on PO line item. This has been done by modifying the standard itab POT by using field symbols, because the fields to be modified are shown in display mode in the tcode ME22N and cannot be done in BDC. See the below code in user exit ZXM06U43.
DATA char(50) VALUE '(SAPLMEPO)POT[]'.
CLEAR wa_ind.
FIELD-SYMBOLS <f1> TYPE ANY.
Move memory of internal table POT to field symbol f1.
ASSIGN (char) TO <f1>.
Move content of f1 to internal table i_ind
i_ind[] = <f1> .
LOOP AT i_ind INTO wa_ind.
IF wa_ind-pstyp = '9'. " Service PO - item category
IF PO Line item has History per Purchasing Document as 'D'
Set indicators on, for the line item.
CLEAR v_cnt.
SELECT COUNT( * ) INTO v_cnt FROM ent5100
WHERE ebeln = wa_ind-ebeln
AND ebelp = wa_ind-ebelp
AND bewtp = 'D'.
IF sy-subrc = 0.
wa_ind-wepos = 'X'. " Set Goods Receipt Indicator
wa_ind-webre = 'X'. " Set GR-based IV Indicator
wa_ind-lebre = 'X'. " Set Srv-based IV Indicator
ELSE.
*End of addition SAP-20070910104025 - SL36 - D01K963369
wa_ind-wepos = ' '. " Clear Goods Receipt Indicator
wa_ind-webre = ' '. " Clear GR-based IV Indicator
wa_ind-lebre = ' '. " Clear Srv-based IV Indicator
wa_ind-xersy = ' '. " Clear ERS Indicator
ENDIF.
MODIFY i_ind FROM wa_ind INDEX sy-tabix.
ENDIF.
ENDLOOP.
<f1> = i_ind[].
ENDIF.
ENDIF.
This code is in production and has been working fine.
The requirnment is now to make this indicator work for all the Purchase order before this code has been written in the Exit. For this my functional suggests that to write a separate program using BDC for PO change and jus add a period/dot in the short text and save it. The code has been written, the user exit and the above code is getting triggrred values are updated in internal table correctly.
However the flags was not set or cleared when seen in the tcode ME22N . This works fine if the tcode me22n is run directly and not working in BDC.
I have tried with ME22 without enjoy transaction in BDC changing the POT Program to SAPMM06E. It does not work.
Please help me as why it is not uodating in the table when using BDC.
Thanks in Advance.
Senthil KumarHi All,
Any luck on this??
Thanks -
Dear Friends,
Do anybody has the code for BDC for Transaction Code F-02.
If anybody has plz send me.
Thanks & Reg,
Nishanttry this:
REPORT zfir_f02
NO STANDARD PAGE HEADING LINE-SIZE 255.
INCLUDE bdcrecx1.
TYPES : BEGIN OF tp_flatfile,
bldat(10),
doctyp(2),
comp(4),
postdate(10),
period(2),
currency(5),
reference(16),
htext(25),
postkey(2),
account(17),
amount(16),
profit(10),
assign(18),
text(50),
busarea(4),
cost(10),
bline(10),
base(16),
postkey2(2),
account2(17),
amount2(16),
profit2(10),
assign2(18),
text2(50),
busarea2(4),
END OF tp_flatfile.
DATA : t_flatfile TYPE TABLE OF tp_flatfile WITH HEADER LINE.
DATA : g_file TYPE string.
CLASS cl_abap_char_utilities DEFINITION LOAD.
CONSTANTS:con_tab TYPE c VALUE cl_abap_char_utilities=>horizontal_tab.
SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME.
PARAMETERS : p_file LIKE rlgrap-filename OBLIGATORY.
SELECTION-SCREEN END OF BLOCK blk1.
*C-- Selection Screen VALUE-REQUEST FOR File path
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
program_name = syst-cprog
dynpro_number = syst-dynnr
IMPORTING
file_name = p_file.
g_file = p_file.
*START-OF-SELECTION.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = g_file
filetype = 'ASC'
has_field_separator = 'X'
TABLES
data_tab = t_flatfile
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.
loop at t_flatfile.
write:/ t_flatfile-doctyp,t_flatfile-amount.
endloop.
START-OF-SELECTION.
PERFORM open_group.
LOOP AT t_flatfile.
PERFORM bdc_dynpro USING 'SAPMF05A' '0100'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RF05A-NEWKO'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'BKPF-BLDAT'
t_flatfile-bldat.
PERFORM bdc_field USING 'BKPF-BLART'
t_flatfile-doctyp.
PERFORM bdc_field USING 'BKPF-BUKRS'
t_flatfile-comp.
PERFORM bdc_field USING 'BKPF-BUDAT'
t_flatfile-postdate.
PERFORM bdc_field USING 'BKPF-MONAT'
t_flatfile-period.
PERFORM bdc_field USING 'BKPF-WAERS'
t_flatfile-currency.
PERFORM bdc_field USING 'BKPF-XBLNR'
t_flatfile-reference.
PERFORM bdc_field USING 'BKPF-BKTXT'
t_flatfile-htext.
PERFORM bdc_field USING 'FS006-DOCID'
PERFORM bdc_field USING 'RF05A-NEWBS'
t_flatfile-postkey.
PERFORM bdc_field USING 'RF05A-NEWKO'
t_flatfile-account.
CASE t_flatfile-postkey.
WHEN '40' OR '50'.
PERFORM bdc_dynpro USING 'SAPMF05A' '0300'.
PERFORM bdc_field USING 'BDC_CURSOR'
'BSEG-SGTXT'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'BSEG-WRBTR'
t_flatfile-amount.
PERFORM bdc_field USING 'BSEG-ZUONR'
t_flatfile-assign.
PERFORM bdc_field USING 'BSEG-SGTXT'
t_flatfile-text.
IF t_flatfile-postkey = '40' and t_flatfile-account > '300000'.
PERFORM bdc_field USING 'DKACB-FMORE'
'X'.
ENDIF.
PERFORM bdc_dynpro USING 'SAPLKACB' '0002'.
PERFORM bdc_field USING 'BDC_CURSOR'
'COBL-KOSTL'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ENTE'.
PERFORM bdc_field USING 'COBL-GSBER'
t_flatfile-busarea.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ENTE'.
PERFORM bdc_field USING 'COBL-KOSTL'
t_flatfile-cost.
PERFORM bdc_field USING 'COBL-PRCTR'
t_flatfile-profit.
PERFORM bdc_dynpro USING 'SAPMF05A' '0300'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RF05A-NEWKO'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'RF05A-NEWBS'
t_flatfile-postkey2.
PERFORM bdc_field USING 'RF05A-NEWKO'
t_flatfile-account2.
PERFORM debit_credit.
WHEN '21' OR '31' OR '24' OR '34'.
**perform bdc_field using 'RF05A-NEWBS'
'31'.
**perform bdc_field using 'RF05A-NEWKO'
'25000'.
PERFORM bdc_field USING 'DKACB-FMORE'
'X'.
PERFORM bdc_dynpro USING 'SAPMF05A' '0302'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RF05A-NEWKO'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_dynpro USING 'SAPLKACB' '0002'.
PERFORM bdc_field USING 'BDC_CURSOR'
'COBL-GSBER'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ENTE'.
PERFORM bdc_field USING 'COBL-GSBER'
t_flatfile-busarea.
PERFORM bdc_field USING 'COBL-KOSTL'
t_flatfile-cost.
PERFORM bdc_dynpro USING 'SAPMF05A' '0302'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RF05A-NEWKO'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'BSEG-WRBTR'
t_flatfile-amount.
PERFORM bdc_field USING 'BSEG-GSBER'
t_flatfile-busarea.
PERFORM bdc_field USING 'BSEG-ZFBDT'
t_flatfile-bline.
PERFORM bdc_field USING 'BSEG-SKFBT'
t_flatfile-base.
PERFORM bdc_field USING 'BSEG-ZUONR'
t_flatfile-assign.
PERFORM bdc_field USING 'BSEG-SGTXT'
t_flatfile-text.
PERFORM bdc_field USING 'RF05A-NEWBS'
t_flatfile-postkey2.
PERFORM bdc_field USING 'RF05A-NEWKO'
t_flatfile-account2.
PERFORM bdc_dynpro USING 'SAPLFWTD' '0100'.
PERFORM bdc_field USING 'BDC_CURSOR'
'WITH_ITEM-WT_WITHCD(01)'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=GO'.
PERFORM debit_credit.
PERFORM bdc_dynpro USING 'SAPMF05A' '0300'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RF05A-NEWKO'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'BSEG-WRBTR'
t_flatfile-amount2.
PERFORM bdc_field USING 'BSEG-ZUONR'
t_flatfile-assign2.
PERFORM bdc_field USING 'BSEG-SGTXT'
t_flatfile-text2.
PERFORM bdc_dynpro USING 'SAPLKACB' '0002'.
PERFORM bdc_field USING 'BDC_CURSOR'
'COBL-GSBER'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ENTE'.
PERFORM bdc_field USING 'COBL-GSBER'
t_flatfile-busarea2.
PERFORM bdc_field USING 'COBL-KOSTL'
t_flatfile-cost.
PERFORM bdc_field USING 'COBL-PRCTR'
t_flatfile-profit2.
PERFORM bdc_dynpro USING 'SAPMF05A' '0300'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RF05A-NEWKO'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=BU'.
PERFORM bdc_dynpro USING 'SAPLKACB' '0002'.
PERFORM bdc_field USING 'BDC_CURSOR'
'COBL-GSBER'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ENTE'.
WHEN '01' OR '11' OR '04' OR '14' OR '07' OR '17'.
*perform bdc_field using 'RF05A-NEWBS'
'11'.
*perform bdc_field using 'RF05A-NEWKO'
'1'.
PERFORM bdc_dynpro USING 'SAPMF05A' '0301'.
PERFORM bdc_field USING 'BDC_CURSOR'
'BSEG-SGTXT'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'BSEG-WRBTR'
t_flatfile-amount.
PERFORM bdc_field USING 'BSEG-MWSKZ'
PERFORM bdc_field USING 'BSEG-GSBER'
t_flatfile-busarea.
IF NOT t_flatfile-bline IS INITIAL.
PERFORM bdc_field USING 'BSEG-ZFBDT'
t_flatfile-bline.
ENDIF.
IF NOT t_flatfile-base IS INITIAL.
PERFORM bdc_field USING 'BSEG-SKFBT'
t_flatfile-base.
ENDIF.
PERFORM bdc_field USING 'BSEG-ZUONR'
t_flatfile-assign.
PERFORM bdc_field USING 'BSEG-SGTXT'
t_flatfile-text.
PERFORM bdc_field USING 'RF05A-NEWBS'
t_flatfile-postkey2.
PERFORM bdc_field USING 'RF05A-NEWKO'
t_flatfile-account2.
PERFORM debit_credit.
ENDCASE.
*perform bdc_dynpro using 'SAPMF05A' '0301'.
*perform bdc_field using 'BDC_CURSOR'
'BSEG-WRBTR'.
*perform bdc_field using 'BDC_OKCODE'
'=AB'.
*perform bdc_field using 'BSEG-WRBTR'
'3,000.00'.
*perform bdc_field using 'BSEG-MWSKZ'
*perform bdc_field using 'BSEG-GSBER'
'VUSO'.
*perform bdc_field using 'BSEG-ZFBDT'
'19.07.2005'.
*perform bdc_field using 'BSEG-SKFBT'
'3,000.00'.
*perform bdc_field using 'BSEG-ZUONR'
'ASSIGN'.
*perform bdc_field using 'BSEG-SGTXT'
'TEXT'.
PERFORM bdc_dynpro USING 'SAPMF05A' '0700'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RF05A-NEWBS'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=BU'.
*perform bdc_field using 'BKPF-XBLNR'
'REF'.
*perform bdc_field using 'BKPF-BKTXT'
'text'.
PERFORM bdc_transaction USING 'F-02'.
ENDLOOP.
PERFORM close_group.
*& Form debit_credit
text
FORM debit_credit.
**SRINI
IF t_flatfile-postkey = '40' OR t_flatfile-postkey = '50'.
PERFORM bdc_dynpro USING 'SAPLKACB' '0002'.
PERFORM bdc_field USING 'BDC_CURSOR'
'COBL-GSBER'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ENTE'.
ENDIF.
***SRINI
PERFORM bdc_dynpro USING 'SAPMF05A' '0300'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RF05A-NEWKO'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'BSEG-WRBTR'
t_flatfile-amount2.
PERFORM bdc_field USING 'BSEG-ZUONR'
t_flatfile-assign2.
PERFORM bdc_field USING 'BSEG-SGTXT'
t_flatfile-text2.
PERFORM bdc_dynpro USING 'SAPLKACB' '0002'.
PERFORM bdc_field USING 'BDC_CURSOR'
'COBL-KOSTL'.
'COBL-GSBER'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ENTE'.
PERFORM bdc_field USING 'COBL-GSBER'
t_flatfile-busarea2.
PERFORM bdc_field USING 'COBL-KOSTL'
t_flatfile-cost.
PERFORM bdc_field USING 'COBL-PRCTR'
t_flatfile-profit2.
PERFORM bdc_dynpro USING 'SAPMF05A' '0300'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RF05A-NEWKO'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=BU'.
PERFORM bdc_dynpro USING 'SAPLKACB' '0002'.
PERFORM bdc_field USING 'BDC_CURSOR'
'COBL-GSBER'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ENTE'.
ENDFORM. "debit_credit
regards,
Bikash -
Problem in bdc for table control for line items
Hi experts,
I am runnig a bdc for ME52.
i am just entering PR number, in the second screen i have got all the line items. I need to select these line item 10 and double click or hit enter, it takes me to screen 3, there im just checking a checkbox and saving.
Again i need to select the line item 20 and double click or hit enter. again the same process.
Again repeat for all the line items.
But my problem is it is updating everytime for only line item 10. for line item 20 and others it say "no chnge in the data".
I am pasting my code here. please check and revert me back .plz.
DATA: w_output LIKE LINE OF i_output.
REFRESH I_ITAB[].
SELECT * FROM EBAN
INTO TABLE i_itab
WHERE banfn in s_banfn AND
bsart in s_bsart AND
bstyp in s_bstyp AND
matnr in s_matnr AND
werks in s_werks AND
lfdat in s_lfdat AND
pstyp in s_pstyp AND
knttp in s_knttp AND
estkz in s_estkz AND
loekz eq ' '.
IF sy-subrc = 0.
CLEAR: w_itab,
i_poitab[].
SORT i_itab by banfn.
LOOP AT i_itab INTO w_itab where menge GT eban-bsmng.
IF p_close = 'X' AND p_rep = 'X'.
IF w_itab-ebakz = 'X'.
w_itab-ebakz = ' '.
APPEND w_itab to i_poitab.
ENDIF.
ELSEIF p_open = 'X' AND p_rep = 'X'.
IF w_itab-ebakz = ' '.
w_itab-ebakz = 'X'.
APPEND w_itab to i_poitab.
ENDIF.
ELSEIF p_close = 'X' AND p_repw = 'X'.
IF w_itab-ebakz = ' '.
APPEND w_itab to i_poitab.
ENDIF.
ELSEIF p_open = 'X' AND p_repw = 'X'.
IF w_itab-ebakz = 'X'.
APPEND w_itab to i_poitab.
ENDIF.
ENDIF.
ENDLOOP.
ENDIF.
LOOP AT i_poitab into w_output.
APPEND w_output to i_output.
PERFORM CALL_BDC.
endloop.
IF p_rep = 'X'.
PERFORM CALL_BDC.
ENDIF.
ENDFORM. " GET_DATA
*& Form CALL_BDC
text
--> p1 text
<-- p2 text
FORM CALL_BDC.
DATA: seltab(5) TYPE N,
seltab1(2) TYPE N,
tempvar(30) TYPE N,
cnt TYPE N.
LOOP AT i_output.
clear: seltab,
seltab1.
seltab = i_output-bnfpo.
seltab1 = seltab+2(2).
perform bdc_dynpro using 'SAPMM06B' '0105'.
perform bdc_field using 'BDC_CURSOR'
'EBAN-BANFN'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'EBAN-BANFN'
i_output-banfn.
perform bdc_dynpro using 'SAPMM06B' '0106'.
clear tempvar.
*cnt = 1.
concatenate 'EBAN-BNFPO(' seltab1 ')' into tempvar.
perform bdc_field using 'BDC_CURSOR'
'EBAN-BNFPO(seltab1)'.
tempvar.
perform bdc_field using 'BDC_OKCODE'
'=DETA'.
perform bdc_field using 'RM06B-BNFPO'
i_output-bnfpo.
perform bdc_field using 'RM06B-TCSELFLAG(seltab1)'
'X'.
perform bdc_dynpro using 'SAPMM06B' '0102'.
perform bdc_field using 'BDC_CURSOR'
'EBAN-EBAKZ'.
perform bdc_field using 'BDC_OKCODE'
'=BU'.
perform bdc_field using 'EBAN-EBAKZ'
i_output-ebakz.
CALL TRANSACTION 'ME52' USING bdc_data MODE 'A'
MESSAGES INTO i_bdcmsg.
COMMIT WORK AND WAIT.
ENDLOOP.
ENDFORM. " CALL_BDC
*& Form bdc_dynpro
text
-->P_0686 text
-->P_0687 text
FORM bdc_dynpro USING program dynpro.
CLEAR bdc_data.
bdc_data-program = program.
bdc_data-dynpro = dynpro.
bdc_data-dynbegin = 'X'.
APPEND bdc_data.
CLEAR bdc_data.
ENDFORM.
thanks,
NLooks like table control logic is wrong -- do compare with below program...
only table contril area
REPORT ZPadmam
NO STANDARD PAGE HEADING LINE-SIZE 255.
DATA : BEGIN OF itab OCCURS 0,
i1 TYPE i,
lifnr LIKE rf02k-lifnr,
bukrs LIKE rf02k-bukrs,
ekorg LIKE rf02k-ekorg,
ktokk LIKE rf02k-ktokk,
anred LIKE lfa1-anred,
name1 LIKE lfa1-name1,
sortl LIKE lfa1-sortl,
land1 LIKE lfa1-land1,
akont LIKE lfb1-akont,
fdgrv LIKE lfb1-fdgrv,
waers LIKE lfm1-waers,
END OF itab.
DATA : BEGIN OF jtab OCCURS 0,
j1 TYPE i,
banks LIKE lfbk-banks,
bankl LIKE lfbk-bankl,
bankn LIKE lfbk-bankn,
END OF jtab.
DATA : cnt(4) TYPE n.
DATA : fdt(20) TYPE c.
DATA : c TYPE i.
INCLUDE bdcrecx1.
START-OF-SELECTION.
CALL FUNCTION 'WS_UPLOAD'
EXPORTING
filename = 'C:\first1.txt'
filetype = 'DAT'
TABLES
data_tab = itab.
CALL FUNCTION 'WS_UPLOAD'
EXPORTING
filename = 'C:\second.txt'
filetype = 'DAT'
TABLES
data_tab = jtab.
LOOP AT itab.
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'
itab-lifnr.
PERFORM bdc_field USING 'RF02K-BUKRS'
itab-bukrs.
PERFORM bdc_field USING 'RF02K-EKORG'
itab-ekorg.
PERFORM bdc_field USING 'RF02K-KTOKK'
itab-ktokk.
PERFORM bdc_dynpro USING 'SAPMF02K' '0110'.
PERFORM bdc_field USING 'BDC_CURSOR'
'LFA1-LAND1'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'LFA1-ANRED'
itab-anred.
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_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-BANKN(01)'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ENTR'.
cnt = 0.
LOOP AT jtab WHERE j1 = itab-i1.
cnt = cnt + 1.
CONCATENATE 'LFBK-BANKS(' cnt ')' INTO fdt.
PERFORM bdc_field USING fdt jtab-banks.
CONCATENATE 'LFBK-BANKL(' cnt ')' INTO fdt.
PERFORM bdc_field USING fdt jtab-bankl.
CONCATENATE 'LFBK-BANKN(' cnt ')' INTO fdt.
PERFORM bdc_field USING fdt jtab-bankn.
IF cnt = 5.
cnt = 0.
PERFORM bdc_dynpro USING 'SAPMF02K' '0130'.
PERFORM bdc_field USING 'BDC_CURSOR'
'LFBK-BANKS(01)'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=P+'.
PERFORM bdc_dynpro USING 'SAPMF02K' '0130'.
PERFORM bdc_field USING 'BDC_CURSOR'
'LFBK-BANKN(02)'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ENTR'.
ENDIF.
ENDLOOP.
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-FDGRV'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'LFB1-AKONT'
itab-akont.
PERFORM bdc_field USING 'LFB1-FDGRV'
itab-fdgrv.
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'
itab-waers.
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.
PERFORM close_group.
Thanks
Seshu -
Hi all ,
i have developed a bdc progoram for inforecords..
while uploading the data if there are two conditions or more for same vendor and material i am getting the correct one but netprice for first condition comes correctly . if the second condition comes netprice doesnot occurs..in the purchase org window which as to be generated according to the condition chosen.
ex: netprice is 250 for cond POOO and second condition is given ROOO(discount) 10 through upload when i go back to purc org window netprice is 0 .
here my program please suggest me ...
REPORT ymm_info_bdcrec NO STANDARD PAGE HEADING LINE-SIZE 255.
INCLUDE bdcrecx1."INCLUDE BDCRECX1.
DATA : IDX(2) TYPE C VALUE '01'.
data: var type string.
DATA: BEGIN OF lt_infrec OCCURS 0,
lifnr(20) TYPE c,
matnr(20) TYPE c,
ekorg(5) TYPE c,
werks(5) TYPE c,
esokz(2) TYPE c,
mahn1(5) TYPE c,
urztp(10) TYPE c,
mahn2(5) TYPE c,
urznr(10) TYPE c,
mahn3(5) TYPE c,
urzdt(10) TYPE c,
idnlf(10) TYPE c,
urzla(10) TYPE c,
ltsnr(10) TYPE c,
regio(10) TYPE c,
ltssf(10) TYPE c,
urzzt(10) TYPE c,
wglif(10) TYPE c,
mfrnr(10) TYPE c,
anzpu(10) TYPE c,
punei(10) TYPE c,
verkf(10) TYPE c,
telf1(10) TYPE c,
lifab(10) TYPE c,
rueck(10) TYPE c,
lifbi(10) TYPE c,
kolif(10) TYPE c,
relif(10) TYPE c,
meins(10) TYPE c,
umrez(10) TYPE c,
umren(10) TYPE c,
vabme(10) TYPE c,
aplfz(10) TYPE c,
untto(10) TYPE c,
mtxno(10) TYPE c,
ekgrp(10) TYPE c,
uebto(10) TYPE c,
kzabs(10) TYPE c,
norbm(10) TYPE c,
uebtk(10) TYPE c,
bstae(10) TYPE c,
minbm(10) TYPE c,
webre(10) TYPE c,
mwskz(10) TYPE c,
mhdrz(10) TYPE c,
iprkz(10) TYPE c,
xersn(10) TYPE c,
evers(10) TYPE c,
exprf(10) TYPE c,
bstma(10) TYPE c,
rdprf(10) TYPE c,
megru(10) TYPE c,
netpr(10) TYPE c,
waers(10) TYPE c,
peinh(10) TYPE c,
bprme(10) TYPE c,
sktof(10) TYPE c,
bpumz(10) TYPE c,
bpumn(10) TYPE c,
ekkol(10) TYPE c,
meprf(10) TYPE c,
inco1(10) TYPE c,
inco2(10) TYPE c,
datab(10) TYPE c,
datbi(10) TYPE c,
kschl(10) TYPE c,
kbetr(10) TYPE c,
konwa(10) TYPE c,
kpein(10) TYPE c,
kmein(10) TYPE c,
end of lt_infrec.
data: begin of lt_infrec1 occurs 0,
lifnr(20) TYPE c,
matnr(20) TYPE c,
ekorg(5) TYPE c,
werks(5) TYPE c,
esokz(2) TYPE c,
mahn1(5) TYPE c,
urztp(10) TYPE c,
mahn2(5) TYPE c,
urznr(10) TYPE c,
mahn3(5) TYPE c,
urzdt(10) TYPE c,
idnlf(10) TYPE c,
urzla(10) TYPE c,
ltsnr(10) TYPE c,
regio(10) TYPE c,
ltssf(10) TYPE c,
urzzt(10) TYPE c,
wglif(10) TYPE c,
mfrnr(10) TYPE c,
anzpu(10) TYPE c,
punei(10) TYPE c,
verkf(10) TYPE c,
telf1(10) TYPE c,
lifab(10) TYPE c,
rueck(10) TYPE c,
lifbi(10) TYPE c,
kolif(10) TYPE c,
relif(10) TYPE c,
meins(10) TYPE c,
umrez(10) TYPE c,
umren(10) TYPE c,
vabme(10) TYPE c,
aplfz(10) TYPE c,
untto(10) TYPE c,
mtxno(10) TYPE c,
ekgrp(10) TYPE c,
uebto(10) TYPE c,
kzabs(10) TYPE c,
norbm(10) TYPE c,
uebtk(10) TYPE c,
bstae(10) TYPE c,
minbm(10) TYPE c,
webre(10) TYPE c,
mwskz(10) TYPE c,
mhdrz(10) TYPE c,
iprkz(10) TYPE c,
xersn(10) TYPE c,
evers(10) TYPE c,
exprf(10) TYPE c,
bstma(10) TYPE c,
rdprf(10) TYPE c,
megru(10) TYPE c,
netpr(10) TYPE c,
waers(10) TYPE c,
peinh(10) TYPE c,
bprme(10) TYPE c,
sktof(10) TYPE c,
bpumz(10) TYPE c,
bpumn(10) TYPE c,
ekkol(10) TYPE c,
meprf(10) TYPE c,
inco1(10) TYPE c,
inco2(10) TYPE c,
datab(10) TYPE c,
datbi(10) TYPE c,
kschl(10) TYPE c,
kbetr(10) TYPE c,
konwa(10) TYPE c,
kpein(10) TYPE c,
kmein(10) TYPE c,
END OF lt_infrec1.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
PARAMETERS: p_file LIKE rlgrap-filename.
SELECTION-SCREEN END OF BLOCK b1.
DATA: lv_file TYPE string.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
EXPORTING
field_name = p_file
CHANGING
file_name = p_file.
START OF SELECTION
START-OF-SELECTION.
UPLOADING THE FILE
IF p_file IS NOT INITIAL.
lv_file = p_file.
CALL FUNCTION 'UPLOAD'
EXPORTING
CODEPAGE = ' '
filename = ' '
filetype = 'DAT'
ITEM = ' '
FILEMASK_MASK = ' '
FILEMASK_TEXT = ' '
FILETYPE_NO_CHANGE = ' '
FILEMASK_ALL = ' '
FILETYPE_NO_SHOW = ' '
LINE_EXIT = ' '
USER_FORM = ' '
USER_PROG = ' '
SILENT = 'S'
IMPORTING
FILESIZE =
CANCEL =
ACT_FILENAME =
ACT_FILETYPE =
TABLES
data_tab = lt_infrec
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.
*CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename =
FILETYPE = 'DAT'
HAS_FIELD_SEPARATOR = ' '
HEADER_LENGTH = 0
READ_BY_LINE = 'X'
DAT_MODE = ' '
CODEPAGE = ' '
IGNORE_CERR = ABAP_TRUE
REPLACEMENT = '#'
CHECK_BOM = ' '
VIRUS_SCAN_PROFILE =
NO_AUTH_CHECK = ' '
IMPORTING
FILELENGTH =
HEADER =
tables
data_tab = lt_infrec
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.
ENDIF.
loop at lt_infrec.
ON CHANGE OF lt_infrec-lifnr or lt_infrec-matnr or lt_infrec-ekorg.
MOVE-CORRESPONDING lt_infrec TO lt_infrec1.
append lt_infrec1.
endloop.
DELETE ADJACENT DUPLICATES FROM lt_infrec1 COMPARING lifnr matnr ekorg.
REFRESH t_bdcdata.
CLEAR lv_lifnr.
CLEAR lv_matnr.
PERFORM open_group.
LOOP AT lt_infrec1.
SCREEN 1
PERFORM bdc_dynpro USING 'SAPMM06I' '0100'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RM06I-NORMB'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'EINA-LIFNR' lt_infrec1-lifnr.
PERFORM bdc_field USING 'EINA-MATNR' lt_infrec1-matnr.
PERFORM bdc_field USING 'EINE-EKORG' lt_infrec1-ekorg.
PERFORM bdc_field USING 'EINE-WERKS' lt_infrec1-werks.
IF lt_infrec1-esokz = '0'.
PERFORM bdc_field USING 'RM06I-NORMB'
'x'.
ELSEIF lt_infrec1-esokz = '1'.
PERFORM bdc_field USING 'RM06I-LOHNB'
'x'.
ELSEIF lt_infrec1-esokz = '2'.
PERFORM bdc_field USING 'RM06I-PIPEL'
'x'.
ELSEIF lt_infrec1-esokz = '3' .
PERFORM bdc_field USING 'RM06I-KONSI'
'x'.
ENDIF.
SCREEN 2
PERFORM bdc_dynpro USING 'SAPMM06I' '0101'.
PERFORM bdc_field USING 'BDC_CURSOR'
'EINA-VABME'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=EINE'.
PERFORM bdc_field USING 'EINA-MAHN1' lt_infrec1-mahn1.
PERFORM bdc_field USING 'EINA-URZTP' lt_infrec1-urztp.
PERFORM bdc_field USING 'EINA-MAHN2' lt_infrec1-mahn2.
PERFORM bdc_field USING 'EINA-URZNR' lt_infrec1-urznr.
PERFORM bdc_field USING 'EINA-MAHN3' lt_infrec1-mahn3.
PERFORM bdc_field USING 'EINA-URZDT' lt_infrec1-urzdt.
PERFORM bdc_field USING 'EINA-IDNLF' lt_infrec1-idnlf.
PERFORM bdc_field USING 'EINA-URZLA' lt_infrec1-urzla.
PERFORM bdc_field USING 'EINA-LTSNR' lt_infrec1-ltsnr.
PERFORM bdc_field USING 'EINA-REGIO' lt_infrec1-regio.
PERFORM bdc_field USING 'EINA-LTSSF' lt_infrec1-ltssf.
PERFORM bdc_field USING 'EINA-URZZT' lt_infrec1-urzzt.
PERFORM bdc_field USING 'EINA-WGLIF' lt_infrec1-wglif.
PERFORM bdc_field USING 'EINA-MFRNR' lt_infrec1-mfrnr.
PERFORM bdc_field USING 'EINA-ANZPU' lt_infrec1-anzpu.
PERFORM bdc_field USING 'EINA-PUNEI' lt_infrec1-punei.
PERFORM bdc_field USING 'EINA-VERKF' lt_infrec1-verkf.
PERFORM bdc_field USING 'EINA-TELF1' lt_infrec1-telf1.
PERFORM bdc_field USING 'EINA-LIFAB' lt_infrec1-lifab.
PERFORM bdc_field USING 'EINA-RUECK' lt_infrec1-rueck.
PERFORM bdc_field USING 'EINA-LIFBI' lt_infrec1-lifbi.
PERFORM bdc_field USING 'EINA-KOLIF' lt_infrec1-kolif.
PERFORM bdc_field USING 'EINA-RELIF' lt_infrec1-relif.
PERFORM bdc_field USING 'EINA-MEINS' lt_infrec1-meins.
PERFORM bdc_field USING 'EINA-UMREZ' lt_infrec1-umrez.
PERFORM bdc_field USING 'EINA-UMREN' lt_infrec1-umren.
PERFORM bdc_field USING 'EINA-VABME' lt_infrec1-vabme.
SCREEN 2(B)
PERFORM bdc_dynpro USING 'SAPMM06I' '0102'.
PERFORM bdc_field USING 'BDC_CURSOR'
'EINE-INCO2'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=KO'.
PERFORM bdc_field USING 'EINE-APLFZ' lt_infrec1-aplfz.
PERFORM bdc_field USING 'EINE-UNTTO' lt_infrec1-untto.
PERFORM bdc_field USING 'EINE-MTXNO' lt_infrec1-mtxno.
PERFORM bdc_field USING 'EINE-EKGRP' lt_infrec1-ekgrp.
PERFORM bdc_field USING 'EINE-UEBTO' lt_infrec1-uebto.
PERFORM bdc_field USING 'EINE-KZABS' lt_infrec1-kzabs.
PERFORM bdc_field USING 'EINE-NORBM' lt_infrec1-norbm.
PERFORM bdc_field USING 'EINE-UEBTK' lt_infrec1-uebtk.
PERFORM bdc_field USING 'EINE-BSTAE' lt_infrec1-bstae.
PERFORM bdc_field USING 'EINE-MINBM' lt_infrec1-minbm.
PERFORM bdc_field USING 'EINE-WEBRE' lt_infrec1-webre.
PERFORM bdc_field USING 'EINE-MWSKZ' lt_infrec1-mwskz.
PERFORM bdc_field USING 'EINE-MHDRZ' lt_infrec1-mhdrz.
PERFORM bdc_field USING 'EINE-IPRKZ' lt_infrec1-iprkz.
PERFORM bdc_field USING 'EINE-XERSN' lt_infrec1-xersn.
PERFORM bdc_field USING 'EINE-EVERS' lt_infrec1-evers.
PERFORM bdc_field USING 'EINE-EXPRF' lt_infrec1-exprf.
PERFORM bdc_field USING 'EINE-BSTMA' lt_infrec1-bstma.
PERFORM bdc_field USING 'EINE-RDPRF' lt_infrec1-rdprf.
PERFORM bdc_field USING 'EINE-MEGRU' lt_infrec1-megru.
PERFORM bdc_field USING 'EINE-NETPR' lt_infrec1-netpr.
PERFORM bdc_field USING 'EINE-WAERS' lt_infrec1-waers.
PERFORM bdc_field USING 'EINE-PEINH' lt_infrec1-peinh.
PERFORM bdc_field USING 'EINE-BPRME' lt_infrec1-bprme.
PERFORM bdc_field USING 'EINE-SKTOF' lt_infrec1-sktof.
PERFORM bdc_field USING 'EINE-BPUMZ' lt_infrec1-bpumz.
PERFORM bdc_field USING 'EINE-BPUMN' lt_infrec1-bpumn.
PERFORM bdc_field USING 'EINE-EKKOL' lt_infrec1-ekkol.
PERFORM bdc_field USING 'EINE-MEPRF' lt_infrec1-meprf.
PERFORM bdc_field USING 'EINE-INCO1' lt_infrec1-inco1.
PERFORM bdc_field USING 'EINE-INCO2' lt_infrec1-inco2.
SCREEN 2(C)
PERFORM bdc_dynpro USING 'SAPMV13A' '0201'.
PERFORM bdc_field USING 'BDC_CURSOR'
'KONP-KMEIN'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'RV13A-DATAB' lt_infrec1-datab.
PERFORM bdc_field USING 'RV13A-DATBI' lt_infrec1-datbi.
loop at lt_infrec where lifnr = lt_infrec-lifnr and
matnr = lt_infrec-matnr and
ekorg = lt_infrec-ekorg.
CONCATENATE 'KONP-KSCHL(' IDX ')' INTO var.
PERFORM bdc_field USING 'KONP-KSCHL' lt_infrec1-kschl.
PERFORM bdc_field USING VAR lt_infrec-kschl.
CONCATENATE 'KONP-KBETR(' IDX ')' INTO VAR.
PERFORM bdc_field USING 'KONP-KBETR' lt_infrec1-kbetr.
PERFORM bdc_field USING VAR lt_INFREC-KBETR.
CONCATENATE 'KONP-KONWA(' IDX ')' INTO VAR.
PERFORM bdc_field USING 'KONP-KONWA' lt_infrec1-konwa.
PERFORM bdc_field USING VAR lt_infrec-KONWA.
CONCATENATE 'KONP-KPEIN(' IDX ')' INTO VAR.
PERFORM bdc_field USING 'KONP-KPEIN' lt_infrec1-kpein.
PERFORM bdc_field USING VAR lt_infrec-kPEIN.
CONCATENATE 'KONP-KMEIN(' IDX ')' INTO VAR.
PERFORM bdc_field USING 'KONP-KMEIN' lt_infrec1-kmein.
PERFORM bdc_field USING VAR lt_infrec-kMEIN.
idx = idx + 1.
ENDLOOP.
CLEAR idx.
SCREEN 2(D)
PERFORM bdc_dynpro USING 'SAPMV13A' '0201'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RV13A-DATAB'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'RV13A-DATAB' lt_infrec-datab.
PERFORM bdc_field USING 'RV13A-DATBI' lt_infrec-datbi.
PERFORM bdc_dynpro USING 'SAPMM06I' '0102'.
PERFORM bdc_field USING 'BDC_CURSOR'
'EINE-APLFZ'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=TEXT'.
PERFORM bdc_field USING 'EINE-APLFZ' lt_infrec-aplfz.
PERFORM bdc_field USING 'EINE-UNTTO' lt_infrec-untto.
PERFORM bdc_field USING 'EINE-EKGRP' lt_infrec-ekgrp.
PERFORM bdc_field USING 'EINE-UEBTO' lt_infrec-uebto.
PERFORM bdc_field USING 'EINE-KZABS' lt_infrec-kzabs.
PERFORM bdc_field USING 'EINE-NORBM' lt_infrec-norbm.
PERFORM bdc_field USING 'EINE-MINBM' lt_infrec-minbm.
PERFORM bdc_field USING 'EINE-WEBRE' lt_infrec-webre.
PERFORM bdc_field USING 'EINE-MWSKZ' lt_infrec-mwskz.
PERFORM bdc_field USING 'EINE-IPRKZ' lt_infrec-iprkz.
PERFORM bdc_field USING 'EINE-NETPR' lt_infrec-netpr.
PERFORM bdc_field USING 'EINE-WAERS' lt_infrec-waers.
PERFORM bdc_field USING 'EINE-PEINH' lt_infrec-peinh.
PERFORM bdc_field USING 'EINE-BPRME' lt_infrec-bprme.
PERFORM bdc_field USING 'EINE-BPUMZ' lt_infrec-bpumz.
PERFORM bdc_field USING 'EINE-BPUMN' lt_infrec-bpumn.
PERFORM bdc_field USING 'EINE-MEPRF' lt_infrec-meprf.
PERFORM bdc_field USING 'EINE-INCO1' lt_infrec-inco1.
PERFORM bdc_field USING 'EINE-INCO2' lt_infrec-inco2.
SCREEN 4
PERFORM bdc_dynpro USING 'SAPMM06I' '0103'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RM06I-LTEX5(02)'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'RM06I-SELKZ(02)'
PERFORM bdc_field USING 'RM06I-LTEX1(01)'
PERFORM bdc_field USING 'RM06I-LTEX1(02)'
PERFORM bdc_field USING 'RM06I-LTEX2(01)'
PERFORM bdc_field USING 'RM06I-LTEX2(02)'
PERFORM bdc_field USING 'RM06I-LTEX3(01)'
PERFORM bdc_field USING 'RM06I-LTEX3(02)'
PERFORM bdc_field USING 'RM06I-LTEX4(01)'
PERFORM bdc_field USING 'RM06I-LTEX4(02)'
PERFORM bdc_field USING 'RM06I-LTEX5(01)'
PERFORM bdc_field USING 'RM06I-LTEX5(02)'
SCREEN 5
PERFORM bdc_dynpro USING 'SAPMM06I' '0103'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RM06I-LTEX1(01)'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=BU'.
PERFORM bdc_transaction USING 'ME11'.
CLEAR lt_infrec.
clear lt_infrec1.
CALL TRANSACTION 'ME11' USING t_bdcdata MODE 'A'.
ENDLOOP.
PERFORM close_group.
*ENDFORM. "BDC_FIELD
thanks in advance ...
bye
pradeepHi,
for loading the Inforecords I suggest you to use LSMW with following methods:
PurchasingInfoRecord:
Object 0060 Purchasing info rec.
Method 0000
Program name RM06IBI0
Program type B Batch input
Conditions:
with IDoc:
Message type COND_A
Basic type COND_A02
or with BI program:
Object 0070 Condition record
Method 0000
Program name RV14BTCI
Program type B Batch input
The above methods would provide you an efficient & effective way of loading mass data with all possible complexicity w.r.t conditions.
Hope this helps.
Best Regards, Murugesh AS -
HR ABAP How to Write BDC For Infotype 0586
Hi Experts
Can Any One tell me how to write BDC for Infotype 0586 and also 585.
If we enter into the maintaining Screen, the lines in the Screen will dynamically changing depending on the values.
When I am doing recording , If I press page down after entering values in top lines, the lines are changing and the records are not updating Correctly.
I need to write BDC to Create Change.
Can any one please help me in this regard?
Thanks in Advance.
Regards
Avinash.http://www.sap-img.com/abap/bdc-example-using-table-control-in-bdc.htm
http://www.sap-img.com/abap/bdc-example-using-table-control-in-bdc.htm
http://www.google.co.in/search?hl=en&q=SAPBDCtable+control&meta=
http://www.sap-basis-abap.com/abap/handling-table-control-in-bdc.htm
http://www.sap-img.com/abap/bdc-example-using-table-control-in-bdc.htm
http://www.sap-img.com/abap/question-about-bdc-program.htm -
HI all ,
i am new to bapi . i have created so many bdcs to upload data in sap but havent done any bapi .
i want to upload data through bapi for mm01 .
how can i achieve this and which bapi is responsible for this job . plz send any sample code for this .
Thanks ,
Amit Ranjan .Hi Amit,
Refer to the code in the following link:
Re: Reg Transfer of MM01 data using BAPI method
Hope this will solve your query... -
Hi all.
I need BDC code for MM01,i need to populate values depending upon "Material type",Because view changing depending upon material type.
please give me code for that.
To be reward all helpfull answers.
Regards.
jayHi,
This is a BDC for MM for T-code MM01.I hope this will help u.
Below is the coding.
Reward if helpful.
Regards,
Seevangi
REPORT ZMMBDC_MATERIAL_MASTER_UPD
LINE-SIZE 255 NO STANDARD PAGE HEADING LINE-COUNT 65.
Tables
Structure declaration
Work Variables and internal tables
Constants
Parameters
Events: Start-Of-Selection
data : begin of i_mara occurs 0,
matnr like mara-matnr,
end of i_mara.
data : begin of ty_matdata,
matnr like mara-matnr, "material number
mbrsh like rmmg1-mbrsh, "Industry sector
mtart like rmmg1-mtart, "Material Type
werks like rmmg1-werks, "Plant
lgort like rmmg1-lgort, "Storage Location
vkorg like rmmg1-vkorg, "Sales Organization
vtweg like rmmg1-vtweg, "Distribution Channel
maktx like makt-maktx, "Material Description (Short Text)
meins like mara-meins, "Base Unit of Measure
matkl like mara-matkl, "Material Group
bismt like mara-bismt, "Old material number
spart like mara-spart, "Division
brgew(15) ," like mara-brgew, "Gross Weight
ntgew(15), " like mara-ntgew, "Net Weight
ekgrp like marc-ekgrp, "Purchasing Group
gewei like mara-gewei, "Weight Unit
klart like rmclf-klart, "Class Type
taxkm like MG03STEUER-TAXKM, "Tax classification material
ladgr like marc-ladgr, "Loading Group
tragr like mara-tragr, "Transportation Group
dismm like marc-dismm, "MRP Type
dispo like marc-dispo, "MRP Controller (Materials Planner)
fhori like marc-fhori, "Scheduling margin key
disls like marc-disls, " lot size
prmod like mpop-prmod, "Forecast model
peran(3)," like mpop-peran, "Number of historical periods
anzpr(3)," like mpop-anzpr, "Number of forecast periods
kzini like mpop-kzini, "Initialization indicator
siggr(9)," like mpop-siggr, "Tracking limit
autru like marc-autru, "Reset Forecast Model Automatically
modav like mpop-modav, "Model selection procedure
perkz like marc-perkz, "Period Indicator
verpr(13), " like mbew-verpr, "Moving Average Price/Periodic Unit Price
prctr like marc-prctr, "Profit Center
mtvfp like marc-mtvfp, "Checking Group for Availability Check
bklas like mbew-bklas, "Valuation Class
vprsv like mbew-vprsv, "Price control indicator
stprs(13) ," like mbew-stprs, "Standard price
peinh(5) ,"like mbew-peinh, "Price Unit
end of ty_matdata,
begin of ty_matdata1,
matnr like mara-matnr, "material number
mbrsh like rmmg1-mbrsh, "Industry sector
mtart like rmmg1-mtart, "Material Type
werks like rmmg1-werks, "Plant
lgort like rmmg1-lgort, "Storage Location
vkorg like rmmg1-vkorg, "Sales Organization
vtweg like rmmg1-vtweg, "Distribution Channel
maktx like makt-maktx, "Material Description (Short Text)
meins like mara-meins, "Base Unit of Measure
matkl like mara-matkl, "Material Group
bismt like mara-bismt, "Old material number
spart like mara-spart, "Division
brgew(15) ," like mara-brgew, "Gross Weight
ntgew(15), " like mara-ntgew, "Net Weight
ekgrp like marc-ekgrp, "Purchasing Group
gewei like mara-gewei, "Weight Unit
klart like rmclf-klart, "Class Type
taxkm like MG03STEUER-TAXKM, "Tax classification material
ladgr like marc-ladgr, "Loading Group
tragr like mara-tragr, "Transportation Group
dismm like marc-dismm, "MRP Type
dispo like marc-dispo, "MRP Controller (Materials Planner)
fhori like marc-fhori, "Scheduling margin key
prmod like mpop-prmod, "Forecast model
peran(3)," like mpop-peran, "Number of historical periods
anzpr(3)," like mpop-anzpr, "Number of forecast periods
kzini like mpop-kzini, "Initialization indicator
siggr(9)," like mpop-siggr, "Tracking limit
autru like marc-autru, "Reset Forecast Model Automatically
modav like mpop-modav, "Model selection procedure
perkz like marc-perkz, "Period Indicator
verpr(13), " like mbew-verpr, "Moving Average Price/Periodic Unit Price
prctr like marc-prctr, "Profit Center
mtvfp like marc-mtvfp, "Checking Group for Availability Check
bklas like mbew-bklas, "Valuation Class
vprsv like mbew-vprsv, "Price control indicator
stprs(13) ," like mbew-stprs, "Standard price
peinh(5) ,"like mbew-peinh, "Price Unit
message like bapiret2-message, "Error Message.
end of ty_matdata1,
begin of ty_error,
matnr like mara-matnr,
mbrsh like rmmg1-mbrsh, "Industry sector
mtart like rmmg1-mtart, "Material Type
werks like rmmg1-werks, "Plant
message like bapiret2-message,
end of ty_error.
Data Begin with W_ *
data : i_matdata like standard table of ty_matdata with header line.
BAPIMATHEAD - Header Segment with Control Information
data : i_headdata like bapimathead occurs 0 with header line.
bapi_makt - Material Descriptions.
data : i_bapi_makt like bapi_makt occurs 0 with header line.
*bapi_mlan - Tax data
data : i_bapi_mlan like bapi_mlan occurs 0 with header line.
bapi_mara - Material Data at Client Level.
data : i_clientdata like bapi_mara occurs 0 with header line.
bapi_marax - Checkbox Structure for BAPI_MARA.
data : i_clientdatax like bapi_marax occurs 0 with header line.
bapi_marc - Material Data at Plant Level.
data : i_plantdata like bapi_marc occurs 0 with header line.
bapi_marcx - Checkbox Structure for BAPI_MARA.
data : i_plantdatax like bapi_marcx occurs 0 with header line.
BAPI_MARD - Material Data at Storage Location Level.
data : i_storagelocationdata like bapi_mard occurs 0 with header line.
bapi_mardx - Checkbox Structure for BAPI_MARD
data : i_storagelocationdatax like bapi_mardx occurs 0 with header line.
*bapi_mpop - Forecast Parameters
data : i_forcastingparameter like BAPI_MPOP occurs 0 with header line.
*bapi_mpopx - Checkbox Structure for BAPI_MPOP
data : i_forcastingparameterx like BAPI_MPOPX occurs 0 with header line.
*bapi_mbew - Valuation Data
data : i_valuationdata like BAPI_MBEW occurs 0 with header line.
*bapi_mbewx - Checkbox Structure for BAPI_MBEW
data : i_valuationdatax like BAPI_MBEWX occurs 0 with header line.
*bapi_mvke - Sales Data
data : i_salesdata like BAPI_MVKE occurs 0 with header line.
*bapi_mvkex - Checkbox Structure for BAPI_MVKE
data : i_salesdatax like BAPI_MVKEX occurs 0 with header line.
bapiret2 - Return parameter
data : i_return like bapiret2 occurs 0 with header line.
Errors displayed on screen.
data : i_error like standard table of ty_error with header line.
*Error data to be loaded after correction.
data : i_matdata1 like standard table of ty_matdata1 with header line.
*bapi_marm - Unit of measure
data : i_bapi_marm like bapi_marm occurs 0 with header line.
*bapi_marmx - unit of measurex
data : i_bapi_marmx like bapi_marmx occurs 0 with header line.
To determine error.
data : w_flg(1).
S E L E C T I O N S C R E E N / P A R A M E T E R S
selection-screen: begin of block b1 with frame.
parameters: p_file like rlgrap-filename obligatory.
selection-screen: end of block b1.
selection-screen skip 1.
selection-screen: begin of block b2 with frame.
parameters: p_file1 like rlgrap-filename .
selection-screen: end of block b2.
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.
WS_FILENAME_GET - Determination of a file name on the presentation
server using a file selection dialog.
call function 'WS_FILENAME_GET'
exporting
def_filename = '*.TXT'
def_path = 'C:\'
mask = ',.TXT,.*.'
mode = 'O'
TITLE = ' '
importing
filename = p_file
RC =
exceptions
inv_winsys = 1
no_batch = 2
selection_cancel = 3
selection_error = 4
others = 5
if sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.
T O P O F P A G E *
top-of-page.
skip.
write : /01 'Material Number', 30 'Error Message'.
S T A R T O F S E L E C T I O N
start-of-selection.
perform read_data.
perform create_material.
perform display_error.
*& Form read_data
text
--> p1 text
<-- p2 text
form read_data.
Uploads a file from the presentation server into an internal table.
call function 'WS_UPLOAD'
exporting
codepage = 'IBM'
filename = p_file
filetype = 'DAT'
tables
data_tab = i_matdata
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.
write:/ 'File Not Uploaded'.
endif.
endform. " read_data
*& Form create_material
text
--> p1 text
<-- p2 text
form create_material.
loop at i_matdata.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = i_matdata-matnr
IMPORTING
OUTPUT = i_matdata-matnr.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = i_matdata-prctr
IMPORTING
OUTPUT = i_matdata-prctr
*select matnr from mara into table i_mara .
*sort i_mara by matnr descending.
*read table i_mara index 1.
*i_mara-matnr = i_mara-matnr + 1.
CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'
EXPORTING
INPUT = i_mara-matnr
IMPORTING
OUTPUT = i_mara-matnr
EXCEPTIONS
LENGTH_ERROR = 1
OTHERS = 2
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
*CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'
EXPORTING
INPUT = i_matdata-matnr
IMPORTING
OUTPUT = i_matdata-matnr
EXCEPTIONS
LENGTH_ERROR = 1
OTHERS = 2
*IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
*ENDIF.
i_headdata-material = i_matdata-matnr.
i_headdata-material = i_mara-matnr.
i_headdata-ind_sector = i_matdata-mbrsh.
i_headdata-matl_type = i_matdata-mtart.
i_headdata-basic_view = 'X'.
i_headdata-mrp_view = 'X'.
i_headdata-storage_view = 'X'.
i_headdata-SALES_VIEW = 'X'.
i_headdata-PURCHASE_VIEW = 'X'.
i_headdata-FORECAST_VIEW = 'X'.
i_headdata-ACCOUNT_VIEW = 'X'.
i_headdata-COST_VIEW = 'X'.
i_headdata-prt_view = 'X'.
i_headdata-work_sched_view = 'X'.
i_headdata-quality_view = 'X'.
append i_headdata.
clear i_headdata.
i_bapi_makt-langu = sy-langu.
i_bapi_makt-matl_desc = i_matdata-maktx.
append i_bapi_makt.
clear i_bapi_makt.
i_clientdata-matl_group = i_matdata-matkl.
i_clientdata-old_mat_no = i_matdata-bismt.
i_clientdata-base_uom = i_matdata-meins.
i_clientdata-division = i_matdata-spart.
i_clientdata-UNIT_OF_WT = i_matdata-gewei.
i_clientdata-TRANS_GRP = i_matdata-tragr.
i_clientdata-NET_WEIGHT = i_matdata-ntgew.
append i_clientdata.
clear i_clientdata.
i_clientdatax-matl_group = 'X'.
i_clientdatax-old_mat_no = 'X'.
i_clientdatax-base_uom = 'X'.
i_clientdatax-division = 'X'.
i_clientdatax-UNIT_OF_WT = 'X'.
i_clientdatax-TRANS_GRP = 'X'.
i_clientdatax-NET_WEIGHT = 'X'.
append i_clientdatax.
clear i_clientdatax.
i_plantdata-plant = i_matdata-werks.
i_plantdata-mrp_type = i_matdata-dismm.
i_plantdata-mrp_ctrler = i_matdata-dispo.
i_plantdata-availcheck = i_matdata-mtvfp.
i_plantdata-profit_ctr = i_matdata-prctr.
i_plantdata-LOADINGGRP = i_matdata-ladgr.
i_plantdata-PUR_GROUP = i_matdata-ekgrp.
i_plantdata-AUTO_RESET = i_matdata-autru.
i_plantdata-PERIOD_IND = i_matdata-perkz.
i_plantdata-MRP_CTRLER = i_matdata-dispo.
i_plantdata-SM_KEY = i_matdata-fhori.
i_plantdata-LOTSIZEKEY = i_matdata-disls.
append i_plantdata.
clear i_plantdata.
i_plantdatax-plant = i_plantdata-plant.
i_plantdatax-mrp_type = 'X'.
i_plantdatax-mrp_ctrler = 'X'.
i_plantdatax-availcheck = 'X' .
i_plantdatax-profit_ctr = 'X' .
i_plantdatax-LOADINGGRP = 'X' .
i_plantdatax-PUR_GROUP = 'X' .
i_plantdatax-AUTO_RESET = 'X'.
i_plantdatax-PERIOD_IND = 'X'.
i_plantdatax-MRP_CTRLER = 'X'.
i_plantdatax-SM_KEY = 'X'.
i_plantdatax-LOTSIZEKEY = 'X'.
append i_plantdatax.
clear i_plantdatax.
clear i_forcastingparameter.
i_forcastingparameter-PLANT = i_matdata-werks.
i_forcastingparameter-HIST_VALS = i_matdata-peran.
i_forcastingparameter-FORE_PDS = i_matdata-anzpr.
i_forcastingparameter-INITIALIZE = i_matdata-kzini.
i_forcastingparameter-TRACKLIMIT = i_matdata-siggr.
i_forcastingparameter-MODEL_SP = i_matdata-modav.
i_forcastingparameter-FORE_MODEL = i_matdata-prmod.
append i_forcastingparameter.
clear i_forcastingparameterx.
i_forcastingparameterx-PLANT = i_matdata-werks.
i_forcastingparameterx-HIST_VALS = 'X'.
i_forcastingparameterx-FORE_PDS = 'X'.
i_forcastingparameterx-INITIALIZE = 'X'.
i_forcastingparameterx-TRACKLIMIT = 'X'.
i_forcastingparameterx-MODEL_SP = 'X'.
i_forcastingparameterx-FORE_MODEL = 'X'.
append i_forcastingparameterx.
i_valuationdata-MOVING_PR = i_matdata-verpr.
i_valuationdata-STD_PRICE = i_matdata-stprs.
i_valuationdata-PRICE_CTRL = i_matdata-VPRSV.
i_valuationdata-VAL_CLASS = i_matdata-bklas.
i_valuationdata-PRICE_UNIT = i_matdata-peinh.
i_valuationdata-VAL_AREA = i_matdata-werks.
append i_valuationdata.
i_valuationdatax-VAL_AREA = i_matdata-werks.
i_valuationdatax-MOVING_PR = 'X'.
i_valuationdatax-STD_PRICE = 'X'.
i_valuationdatax-PRICE_CTRL = 'X'.
i_valuationdatax-VAL_CLASS = 'X'.
i_valuationdatax-PRICE_UNIT = 'X'.
append i_valuationdatax.
i_salesdata-SALES_ORG = i_matdata-vkorg.
i_salesdata-DISTR_CHAN = i_matdata-vtweg.
i_salesdata-DELY_UOM = i_matdata-meins.
append i_salesdata.
i_salesdatax-SALES_ORG = i_matdata-vkorg.
i_salesdatax-DISTR_CHAN = i_matdata-vtweg.
i_salesdata-DELY_UOM = 'X'.
append i_salesdatax.
i_bapi_marm-ALT_UNIT = i_matdata-meins.
i_bapi_marm-GROSS_WT = i_matdata-brgew.
append i_bapi_marm.
i_storagelocationdata-plant = i_plantdatax-plant.
i_storagelocationdata-stge_loc = i_matdata-lgort.
append i_storagelocationdata.
clear i_storagelocationdata.
i_storagelocationdatax-plant = i_plantdatax-plant.
i_storagelocationdatax-stge_loc = i_storagelocationdata-stge_loc.
append i_storagelocationdatax.
clear i_storagelocationdatax.
i_bapi_mlan-TAXCLASS_1 = i_matdata-TAXKM.
append i_bapi_mlan.
BAPI - BAPI_MATERIAL_SAVEDATA is used to Create and Change Material
Master Data.
call function 'BAPI_MATERIAL_SAVEDATA'
exporting
headdata = i_headdata
clientdata = i_clientdata
clientdatax = i_clientdatax
plantdata = i_plantdata
plantdatax = i_plantdatax
FORECASTPARAMETERS = i_forcastingparameter
FORECASTPARAMETERSX = i_forcastingparameterx
PLANNINGDATA =
PLANNINGDATAX =
storagelocationdata = i_storagelocationdata
storagelocationdatax = i_storagelocationdatax
VALUATIONDATA = i_valuationdata
VALUATIONDATAX = i_valuationdatax
WAREHOUSENUMBERDATA =
WAREHOUSENUMBERDATAX =
SALESDATA = i_salesdata
SALESDATAX = i_salesdatax
STORAGETYPEDATA =
STORAGETYPEDATAX =
FLAG_ONLINE = ' '
FLAG_CAD_CALL = ' '
importing
return = i_return
tables
materialdescription = i_bapi_makt
UNITSOFMEASURE = i_bapi_marm
UNITSOFMEASUREX = i_bapi_marmx
INTERNATIONALARTNOS =
MATERIALLONGTEXT =
TAXCLASSIFICATIONS = i_bapi_mlan
RETURNMESSAGES =
PRTDATA =
PRTDATAX =
EXTENSIONIN =
EXTENSIONINX =
if i_return-type = 'E'.
i_error-matnr = i_mara-matnr.
i_error-mbrsh = i_matdata-mbrsh.
i_error-mtart = i_matdata-mtart.
i_error-werks = i_matdata-werks.
i_error-message = i_return-message.
append i_error.
clear i_error.
w_flg = 'X'.
*else.
Execute external Commit when using BAPIs
When you call BAPIs in your program that change data in the R/3
System afterwards you must call this method to write the changes to *
the database.
call function 'BAPI_TRANSACTION_COMMIT'
exporting
wait = 'X'
importing
return = i_return
endif.
refresh : i_headdata , i_bapi_makt, i_clientdata, i_clientdatax ,
i_plantdata, i_plantdatax,
i_storagelocationdata,i_storagelocationdatax,
i_salesdata , i_salesdatax ,
i_valuationdata , i_valuationdatax,
i_bapi_marm,i_bapi_marmx,
i_bapi_mlan.
clear : i_headdata , i_bapi_makt, i_clientdata, i_clientdatax ,
i_plantdata, i_plantdatax, i_storagelocationdata,
i_storagelocationdatax,
i_valuationdata , i_valuationdatax,
i_bapi_marm,i_bapi_marmx,
i_bapi_mlan.
endloop.
endform. " create_material
*& Form display_error
text
--> p1 text
<-- p2 text
form display_error.
loop at i_error.
read table i_matdata with key matnr = i_error-matnr.
if sy-subrc = 0.
i_matdata1-matnr = i_mara-matnr.
i_matdata1-mbrsh = i_matdata-mbrsh.
i_matdata1-mtart = i_matdata-mtart.
i_matdata1-maktx = i_matdata-maktx.
i_matdata1-meins = i_matdata-meins.
i_matdata1-matkl = i_matdata-matkl.
i_matdata1-bismt = i_matdata-bismt.
i_matdata1-zeinr = i_matdata-zeinr.
i_matdata1-spart = i_matdata-spart.
i_matdata1-werks = i_matdata-werks.
i_matdata1-dismm = i_matdata-dismm.
i_matdata1-dispo = i_matdata-dispo.
i_matdata1-beskz = i_matdata-beskz.
i_matdata1-sobsl = i_matdata-sobsl.
i_matdata1-lgpro = i_matdata-lgpro.
i_matdata1-lgfsb = i_matdata-lgfsb.
i_matdata1-eprio = i_matdata-eprio.
i_matdata1-mtvfp = i_matdata-mtvfp.
i_matdata1-lgort = i_matdata-lgort.
i_matdata1-lgpbe = i_matdata-lgpbe.
i_matdata1-prctr = i_matdata-prctr.
i_matdata1-message = i_error-message.
append i_matdata1.
clear i_matdata1.
endif.
endloop.
loop at i_error.
write :/01 i_error-matnr , 30 i_error-message.
endloop.
if i_error is initial.
write :/01 text-001.
endif.
if w_flg = 'X'.
call function 'WS_DOWNLOAD'
exporting
BIN_FILESIZE = ' '
codepage = 'IBM'
filename = p_file1
filetype = 'DAT'
MODE = ' '
WK1_N_FORMAT = ' '
WK1_N_SIZE = ' '
WK1_T_FORMAT = ' '
WK1_T_SIZE = ' '
COL_SELECT = ' '
COL_SELECTMASK = ' '
NO_AUTH_CHECK = ' '
IMPORTING
FILELENGTH =
tables
data_tab = i_error
FIELDNAMES =
exceptions
file_open_error = 1
file_write_error = 2
invalid_filesize = 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.
endif.
endif.
endform. " display_error7 -
hello all,
i am doing BDC for change routing (ca02) transaction.
in that my need is to assign PRT allocation for operations.
i have written a program for it but if suppose for a particlular operation i want to assign PRT and if there are no PRT assigned for that particular operation before that recording fails.and if already there is atleast one PRT assigned to that operation it runs fine. so i want to remove this error.for that may be i shd first record tha no of PRTS on screen and save that in particular counter and if suppose its greater than 0 then it will run the code and if not it will escape.
I know some of u will not understand the problem..in that case i have all screen shots and program ready for it ....plz send u r mail address to me and i will send u my problem with all details on u r mail id.waiting for quick reply.
Edited by: abhijeet shastri on Feb 5, 2008 9:01 AMhi,
Here you have to take 2 perform statements, one is for PRT and another one is for without PRT
After populating the input internal table, need check whether the particuler operation is having PRT values or not.
if PRT values are available then go for PRT screen (Perform statement for PRT values).
if not PRT values are available then go for not PRT screen.
If the PRT screen is depedable on process operation values.
then you have to make prevalidation . in prevalidation the appropriate operation containing any values for the same then call perform statement for the same. else skip that session through coding.
Ask to your functional consultant regarding tables (In which table you will PRT screen values based on process operation fields) for PRT pre validation.
I hope this message will clear your doubt
Regards,
Sreenivasa Babu -
FM or BAPI or BDC for clearing open items...
Hello Gurus,
I have to write a code to clear/ close 12 million open G/L items in SAP. Is there a standard SAP FM or BAPI to do this ? Or do I have to write a BDC for this. If I have to write BDC, do I write BDC on T-Code F.13, FB05 or other T-Code.
Regards,
Jainam.
Edited by: Jainam Shah on Sep 23, 2010 5:13 PMIf you have configured the correct clearing criteria in the IMG, then you can just run program SAPF124. Why did you need a shell program with a BDC - are you trying to clear by document within your clearing criteria?
-
Hi,
I need to make a BDC to upload transaction data for Vendor invoice thru fb60. Can someone help me with making this BDC. I have multiple invoice line items where G/L Accounts can be same for multiple line items.
plz any help soon will be appreciated ...hi Raj,
Here a Example:
report ZTEST
no standard page heading line-size 255.
include bdcrecx1.
start-of-selection.
perform open_group.
perform bdc_dynpro using 'SAPMF05A' '1100'.
perform bdc_field using 'BDC_OKCODE'
'=DUMMY'.
perform bdc_field using 'RF05A-BUSCS'
'R'.
perform bdc_field using 'BDC_CURSOR'
'INVFO-XMWST'.
perform bdc_field using 'INVFO-ACCNT'
'4711'. "LIFNR
perform bdc_field using 'INVFO-BUDAT'
'07.07.2006'.
perform bdc_field using 'INVFO-WRBTR'
'1000'.
perform bdc_field using 'INVFO-WAERS'
'EUR'.
perform bdc_field using 'INVFO-XMWST'
'X'.
perform bdc_field using 'INVFO-MWSKZ'
'V4'.
perform bdc_dynpro using 'SAPMF05A' '1100'.
perform bdc_field using 'BDC_OKCODE'
'=BU'.
perform bdc_field using 'RF05A-BUSCS'
'R'.
perform bdc_field using 'BDC_CURSOR'
'INVFO-XBLNR'.
perform bdc_field using 'INVFO-ACCNT'
'4711'. "LIFNR
perform bdc_field using 'INVFO-XBLNR'
'test'.
perform bdc_field using 'INVFO-WRBTR'
'1.000,00'.
perform bdc_field using 'INVFO-XMWST'
'X'.
perform bdc_field using 'INVFO-MWSKZ'
'V4'.
perform bdc_dynpro using 'SAPMF05A' '1100'.
perform bdc_field using 'INVFO-BLDAT'
'07062006'.
perform bdc_field using 'INVFO-XBLNR'
'TEST'.
perform bdc_field using 'ACGL_ITEM-HKONT(01)'
'467000'.
perform bdc_field using 'ACGL_ITEM-WRBTR(01)'
' 1000'.
perform bdc_field using 'ACGL_ITEM-KOSTL(01)'
'1000'.
perform bdc_transaction using 'FB60'.
perform close_group.
OR Also u can use the
U can use the std batchinput RFBIBL00 (or a BAPI, like BAPI_ACC_DOCUMENT_POST ) instead of to write an own BDC program for FB60.
FB60 is enjoy trx and it couldn't support the BDC for all its functionalities.
For more infor abt the BDC
http://www.sap-img.com/abap/learning-bdc-programming.htm
Assing the points if helpfulll
ranjit
null
null -
HI,
I am trying to make BDC for updating Table - MARD, Feild - LGPBE using MM02.
The problem I facing is the selection of view (General Plant Data/ Storage 1).
For VERP Materials, it comes to 12th Position, while for HALB Materials is on 15th Position.
The reason for the same is that for VERP Materials, the Sales Views are not maintained.
I am facing the similar kind of problem while creating the BDC for MASS (Using Mass Maintenance - BUS1001).
I need to update the Storage Bin of all Materials.
What is the correct way to upload the same?
Thanks & Regards,
P K Karnhi PK you have to program your BDC according to material type..
eg if material type = HALB
BDC1
else if material type = VERP
BDC2..
end if
regards.. -
Hello,
I'm creating a bdc for create customer transaction (FD01). The problem I'm currently having is on maintaining the "other communication" details for the customer. The requirement I have is to maintain only the communication type "URI". But I can't find the correct program and screen number for this modal dialog. anyone have an idea?
Thanks?
MPHi, thanks for all the reply. However, everything has been tried. The modal screen dialog I was refering at does not contain any program or screen details when I use F1. This screen does not appear in SHDB when doing the recording. SAPLSLVC_FULLSCREEN/0700 is not the screen I'm refering at.
When you click on the "Other Communication", there will appear the screen I'm refering at having the list of all other communication type you need to maintain (Fax, Telephone, E-mail, URI). This screen is somehow similar the way serach help functions. I'm basically concern on URI. So what I need to do is place the cursor on URI and click on the check button or double cliking URI is ok. This is the part missing on my bdc, choosing the URI in the modal dialog screen. Upon debugging, it seems that a Function is responsible in displaying the screen.Any idea?
Message was edited by: Marlon Pita
Maybe you are looking for
-
How to build the time dimension in Essbase with Fiscal Year (July thru Jun)
Hi, In a recent project i have a situation where i need the time dimension to have some thing like this Fiscal Year (July - June) using BSO need to achieve DTS (YTD and QTD) functionality also. And also my reports should also be able to drill through
-
SQL query alias names errors with dynamic lists
Hullo, Problem: - Made a query form book database. Have authors in separate table with unique ID's referring to them on book table. - Query fetches author name in "Surname, Firstname initial.Secondfirstname initial" format, --> like "Bukowski, H.C" a
-
CM: Open Reconciliation Interface CE_999_INTERFACE_V
what are these columns for: Cleared_charges_amount Cleared_error_amount are they for tolerance? how does it work?
-
TIFF and JPG Files Are Black?
I have posted this question twice before but didn't get it resolved. I really need to get some help on this. I have some old projects that I use in the classroom while I am teaching. They are TIFF images and often have sound clips with them. I create
-
So there are two things that drive me crazy when using Muse, both of which are a huge inconvenience to the site builder and the customer: 1 - All text is automatically turned into image when lived. 2 - You can't link text directly in a paragraph. You