How to customise basic price control
how to customise basic price control
Hi,
in table EKKO u will get the the field EBELN, which is for purchasing document. here if u filter this document with value "F" in field BSTYP (Purchasing document category) u will get the PO numbers.
next with this PO number u have to go to table EKPO, here u will get the material number MATNR and NETPR (Net price in purchasing document (in document currency)), NETWR (Net order value in PO currency), BRTWR (Gross order value in PO currency).
hope it will resolve ur issue.
regards
jash
Similar Messages
-
Dear Friend
How can I see basic price, price w/o taxes etc in reference to PO list? in me2l, me2n,me2m , mb51etc I get price with taxes.
Can I get unit basic price with reference to po for a list of POs?
Thanks
SangeetaHi,
in table EKKO u will get the the field EBELN, which is for purchasing document. here if u filter this document with value "F" in field BSTYP (Purchasing document category) u will get the PO numbers.
next with this PO number u have to go to table EKPO, here u will get the material number MATNR and NETPR (Net price in purchasing document (in document currency)), NETWR (Net order value in PO currency), BRTWR (Gross order value in PO currency).
hope it will resolve ur issue.
regards
jash -
Hi Experts,
How to change the price control for a Raw material from Standard to Moving Avg Price (Material Ledger Active Status).
This Raw materials having last year in Standard, now wants to change as per the requirement to MAP. Please advice.
Regards,
RaghavHi Experts,
My scenario is our company using ECC6.0, and the material ledger is activated.
Wrongly last fiscal year for one plant nearly 50+ materials created under standard price with price determination as 2.
(ROH - with Price control 'S' + Price Deterimination = 2) and all the materials having stock and values, transactions is going on.
Now we realized that the raw materials created wrongly in standard price and want to change the price control and price determination. If we change the materials determination and control in CKMM what is the next impact for calculating next prices through cost estimates (CKMLCP or CK40N) and is it suggestable to do?
We need your valuable inputs / advices....
Thanks and Regards,
Raghav. -
How to configure FIFO, LIFO price control in MM?
Hi all,
In MM, I only see price control of standard and average.
If I want to control material pricing by LIFO or FIFO method, how to do?
Thanks
GiangHi
LIFO and FIFO valaution methods are used for balance sheet valuation in some countries.
<b>Balance sheet valuation</b> : The objective of balance sheet valuation is the calculation of material prices for subsequent use in external or internal balance sheets, typically for valuation of the stocks of current assets. Generally, the conditions include meeting legal requirements, complying with corporate group guidelines, and implementing internal company objectives regarding accounting policy. In this context, the company code is regarded as an independent accounting unit
The SAP System provides the following techniques for balance sheet valuation:
1.Lowest Value Determination
2.LIFO Valuation
3.FIFO Valuation
The procedure used depends first on country-specific tax and commercial laws. Use of procedures that are legally permitted but not stipulated can be varied according to internal company experiences and preferences.
Alongside the prices from lowest value determination, LIFO procedures, and FIFO procedures, the following prices are, in principle, possible as the maximum value for the balance sheet price.
*Standard price
*Moving average price
*Period moving average price from the material ledger
*Average Receipt Price
Regards
Ramakrishna -
*How to change the Valuation Category & Price control in material master*
Hello SAP Gurus,
I have a requirement to change the valuation category from 'X' to ' ' in accounting view of material master.
-> I have cancelled all the open PO's & SO's for the material
-> I have ensured that there is no stock for the material in that valuation area.
But still I get an error message that batch already exists for the material. When I check entries in MCHB I find that there are previous entires in MCHB with zero stock.
I have gone through the SAP note 155874 which recomends the archiving the effected objects.
Please let me know is there any work around to change the valuation category from 'X' to ' ' & price control 'V' to 'S'. I also need to change from ' ' to 'X' for a few materials.
Thanks for your advise.
Best Regards,
Narayan.Note 155874 cleary describes what has to be done to be able to change.
There is no workaround, and if you change anything in the tables directly, then this will cause inconsitencies, as described in this note as well. -
How can i take Basic price value as Net value in sales order
Hello SD experts,
I have constructed a pricing procedure, and in that have taken condition type for basic price as rate (cond. type= Price) and have another 3 condition types as surcharges for some internal calculation (but i have to show them in pricing procedure).
Net value in order is showing a total of all condition types (basic price condition type+ all 3 surcharges condition type's value)
for ex;
ZRAT ---Basic Price
ZMRP-- Mrp/pcs rs.
ZDOZ--- Mrp/Doz Rs.
ZTAV--- Total Value Rs.
in this case, when order creates in pricing net value amount shows total of all condition types above and as..
Now in this case i have to show only Basic price condition value as Net value in the order....
i am just confused with the subtotal, requirement and calculation form for condition base....(do i need to go for a new routine creation?)
Could you please help me out and please guide me, what should i do for above situation....
Any help would be a great....
Thank youDear G. Mallikarjun ,
Put A in the subtotal field against the Price condition type and check.
If the other condition types (discounts) are for internal calculations, please do as advised by Lakshmipathi.
check and revert back.
Thanks & Regards,
Hegal Charles -
How can we settle price diff. in profit center valuation to COGS acc?
Dear All,
We have activated multiple valuations/transfer prices.
We do perform cross company code material sale. We have assigned each profit center at company code level.
We have set transfer price variant in t.code 8kez and have customized accounts in Controlling-Profit Center Accounting-Transfer Prices-Settings for Internal Goods Movements -Define Account Determination for Internal Goods Movements.
We had got posting logic described in http://help.sap.com/erp2005_ehp_05/helpdata/en/eb/13811243c411d1896f0000e8322d00/frameset.htm
Now after actual costing run price differences in profit center valuation were not transferred to next level as we expected.
They have stayed as not distributed at sender (company code) profit center level.
How can we distribute price differences in profit center valuation to COGS account of sender profit center defined due to
http://help.sap.com/erp2005_ehp_05/helpdata/en/eb/13811243c411d1896f0000e8322d00/frameset.htm?
With best regards,
Kamila.
Edited by: Kamilana Zhakenova on Dec 25, 2011 10:56 AMDear Gurus,
There is an addition to post above.
Transfer price was defined in SD module in Sales and Distribution-Basic Functions-Pricing-Pricing Control-Define Condition Types.
Now it is taken during cross company code sale from scheduling agreement and invoice.
(Please, do not take into account that we have customized transfer prices in 8kez)
But the issue is price differences in profit center valuation settlement.
They do settle to the next level for receiver company code like in group valuation.
We need to settle them to COGS account at company code sender side.
How we can do that?
With best regards,
Kamila.
Edited by: Kamilana Zhakenova on Dec 26, 2011 11:37 AM -
Purchase order report with basic price and Excise duty values
Hi All,
Is there any standard report in SAP to get the Purchase order basic price / qty and its Excise duty values ? Since we are including Excise duties for non - codified items (w/o material master and with cost center 'K') Purchase order and the ed values are added to the cost and the requirement is to see the split up (Basic priceEdEcs+Hcs)for these Purchase orders for the vendors. If there is no std report then please let me know how to link Purchase order table with this Condition value table in query to get the desired report.
Thanks in advance
BennyHi,
there is no standert report to fullfill this requierment
you have to create this report with the help of abaer
for that which tax code you are using its importnat thing
for po table EKPO
1. A524 (Normal supply point / Material) it will return condition record number for condition type.
2. KONP (Conditions (Item)) .
3. J_1IMTCHID (Combination of Material Number and Chapter ID).
4. J_1IEXCTAX (Tax calc. - Excise tax rates
5 get the IR no. from RBKP and RSEG, and get the relevant FI doc no. and goto BSET table
for IR number to get from table apply logic for doc type RE ,you will get fi number nad in refernce field you will get invoice number + fiscal year
Map this by refernig on po for which grn and invoice happen
Regards
Kailas Ugale -
Moving average price calculation logic of material with Price Control "S"
Dear Gurus,
As you know that there is a Moving price and standard price icon in the material master.
I want to understand the calculation logic of the moving average price of the materials having price control "S"
How the system calculates the MAP for standard price materials? The receipt from the process order I suppose is valuated at the process order cost after settlement, but if the issue has hapened for the material does the system recalculate the issue price also?
Below is the sample process order receipt and issue scenario:
Receipt from process order 161000000223
300 kg and GR at standard cost value is Rs 5892
Issue to process order 162000000294
250 kg and GI at standard cost value is Rs 4910.
Thus the balance at period end is 50 kg and balance at standard cost value is Rs 982.
Here in process order 161000000223 the actual cost is 10 Rs. Then how will the system calculate the MAP?
Thanking You,
Amit DhanurdhariHi
Try the following calculations,
One of them will work depending upon your version and support pack
Expected MAP calculation ( As with price control V)
= ((Qty before transaction*MAP + Transaction Qty * transaction
Price)) / quantity after transaction
New Method ( when price control is S)
= Old MAP + (Price Variance w.r.t Standard Price/Qty after transaction)
Also go through the following notes,
Note 1225167
1253944
518485 FAQ: Valuation of goods movements
212286 Overview note: Valuation during goods movements
209864 Moving average price is disproportionately large
202166 Collective note: Statistical moving average price
185961 Moving Average Price Calculation
I have done extensive research on this, let me know if you need to know something specific. -
PO Basic price in case of dealer
Hi,
As per the process for procurement of material from delaler as the tax amount which dealer will pass on is not exactly know at the time of PO it is depend upon the which excise invocie amount the dealer willl pass, so in presetn we are modifying the PO price after getting invocie from dealer know as in case of delaer the basic price should be the base price + all tax amount then in capture excise invoice we split the base amoun and the tax amount by first selecting the MRP indicator now for below case
Actual base price : 100
Taxes amount which delaer have pass is aroung 12 rs , now in our PO for material the base prie is added as 112 then it is plited in capture excise invoice, then only the base prices 100 is updated in GR/IR account, but whenever we check in ME2M or ME1P the material base price system shows as 112 , our user want that the base price should be 100 because othere amount is tax amount.
How we can map this.
regards,
zafarHi,
For DEALER INVOICE, For Example:
Material Price = 1000/-
Excise Duty = 103/- (BEDECessSECess)
Margin of Dealer = 300/-
Total =1403/
VAT @4% = 56/-
Grand Total =1459/-
Now cretae PO for Dealer Vendor with Base Price as 1403/- by selecting tax code which is having VAT as 4% (Total PO value will be 1459/-)
& then do MIGO, slect MRP indicator in miscellaneous tab, Enter Assessable value 1300/- as in Excise tab Item level and enter the excise values BED, ECess , SECess manually, check all values & save the document.
And finally do MIRO ,user proper tax code,checking calculate tax, edit base value as 1300/-enter the amount in header as proposed by the system (1459/-), simulate & post the document.
Regards,
Biju K -
Change of price control in material master
Hi, SAP experts,
We have business scenario where the procurement type in MRP-2 view of material master gets changed from F to E that is an externally procured item will be manufactured inhouse.
In such case in costing view the price control needs to be changed from V to S. If both MAP & std. price are not identical, system is not allowing to change. Secondly since the item will be manufactured inhouse from now onwards, I have to run the cost estimate & update the master.
How do I deal with the situation.
Valuable advice is awaited.
Regds
T.S.ShankarHi Shankar,
When the price control indicator is "V", system will allow changing the Standard price manually through Transaction code MM02.
Similarly when the price control indicator is "M", system will allow changing the Moving average price manually through Transaction code MM02.
Hope this clarifies
Regards,
Som -
Price control at the time of GR
Hi
There is a requirement to control the price based on the document date entered at the time of GR.
The document date is nothing but the delivery challan date of the supplier.
The requirement is due to frequent change in prices and retrospective price changes are to be addressed.
Is there any userexit or note which can help achieve the above requirement.
Thanks
RahulHi Merwyn
The example you have provided is the issue why i am unable to use the price control category 5 in the infor record or PO.
Here the requirement is as below:
Price valid from 01.08.2008 to 31.08.2008--- Rs 25
Price valid from 01.09.2008 to 30.09.2008--- Rs 28
The vendor delivery challan is dated 30.08.2008
The material reaches the customer on 02.09.2008
The GR is prepared in the system with
Document date - 30.08.2008
Posting Date -- 02.09.2008
The GR value taken is Rs 28...but this will create problem in IR.
Hence the requirement is to determine the basic price on the document date i.e the delivery challan date of the vendor.
Thanks
Rahul -
Excise Duty Inclusive in basic price
Dear Experts,
when the excise duty is included in the price, we enable the check box MRP Indicator in the excise tab while doing MIGO and based on this the GRN will be posted deducting the excise values from the price.
but the trouble is, while doing MIRO, the system is not taking the posted value in GRN, rather the basic price plus the excise duty. How to overcome this to that the value proposed by the system is exclusive of excise duty?
regards
Sureshhi,
say the value is 10,000 which is inclusive of 1000 excise duty.
while posting the GRN we will enable the MRP indicator and based on this the GRN value will be posted as 9000 and the 1000 will be captured as excise duty
but while doing the MIRO, either by giving the Purchase order or Delivery note as the reference, the value proposed by the system is 10,000 and not 9000. I know that we can change the values, but the client requires that the system has to propose the value as 9000 instead of 10,000
hope it is clear
suresh
Edited by: rasuresh on Feb 26, 2010 1:15 PM -
How can we use TABLE CONTROL in BDC and WORK FLOW of ABAP.
how can we use TABLE CONTROL in BDC and WORK FLOW of ABAP.?
please explain the important questions.How to deal with table control / step loop in BDC
Steploop and table contol is inevitable in certain transactions. When we run BDC for such transactions, we will face the situation: how many visible lines of steploop/tablecontrol are on the screen? Although we can always find certain method to deal with it, such as function code 'NP', 'POPO', considering some extreme situation: there is only one line visible one the screen, our BDC program should display an error message. (See transaction 'ME21', we you resize your screen to let only one row visible, you can not enter mutiple lines on this screen even you use 'NP')
Now with the help of Poonam on sapfans.com developement forum, I find a method with which we can determine the number of visible lines on Transaction Screen from our Calling BDC program. Maybe it is useless to you, but I think it will give your some idea.
Demo ABAP code has two purposes:
1. how to determine number of visible lines and how to calculte page number;
(the 'calpage' routine has been modify to meet general purpose usage)
2. using field symbol in BDC program, please pay special attention to the difference in Static ASSIGN and Dynamic ASSIGN.
Now I begin to describe the step to implement my method:
(I use transaction 'ME21', screen 121 for sample,
the method using is Call Transation Using..)
Step1: go to screen painter to display the screen 121, then we can count the fixed line on this screen, there is 7 lines above the steploop and 2 lines below the steploop, so there are total 9 fixed lines on this screen. This means except these 9 lines, all the other line is for step loop. Then have a look at steploop itselp, one entry of it will occupy two lines.
(Be careful, for table control, the head and the bottom scroll bar will possess another two fixed lines, and there is a maximum number for table line)
Now we have : FixedLine = 9
LoopLine = 2(for table control, LoopLine is always equal to 1)
Step2: go to transaction itself(ME21) to see how it roll page, in ME21, the first line of new page is always occupied by the last line of last page, so it begin with index '02', but in some other case, fisrt line is empty and ready for input.
Now we have: FirstLine = 0
or FirstLine = 1 ( in our case, FirstLine is 1 because the first line of new page is fulfilled)
Step3: write a subroutine calcalculating number of pages
(here, the name of actual parameter is the same as formal parameter)
global data: FixedLine type i, " number of fixed line on a certain screen
LoopLine type i, " the number of lines occupied by one steploop item
FirstLine type i, " possbile value 0 or 1, 0 stand for the first line of new " scrolling screen is empty, otherwise is 1
Dataline type i, " number of items you will use in BDC, using DESCRIBE to get
pageno type i, " you need to scroll screen how many times.
line type i, " number of lines appears on the screen.
index(2) type N, " the screen index for certain item
begin type i, " from parameter of loop
end type i. " to parameter of loop
*in code sample, the DataTable-linindex stands for the table index number of this line
form calpage using FixedLine type i (see step 1)
LoopLine type i (see step 1)
FirstLine type i (see step 2)
DataLine type i ( this is the item number you will enter in transaction)
changing pageno type i (return the number of page, depends on run-time visible line in table control/ Step Loop)
changing line type i.(visible lines one the screen)
data: midd type i,
vline type i, "visible lines
if DataLine eq 0.
Message eXXX.
endif.
vline = ( sy-srows - FixedLine ) div LoopLine.
*for table control, you should compare vline with maximum line of
*table control, then take the small one that is min(vline, maximum)
*here only illustrate step loop
if FirstLine eq 0.
pageno = DataLine div vline.
if pageno eq 0.
pageno = pageno + 1.
endif.
elseif FirstLine eq 1.
pageno = ( DataLine - 1 ) div ( vline - 1 ) + 1.
midd = ( DataLine - 1 ) mod ( vline - 1).
if midd = 0 and DataLine gt 1.
pageno = pageno - 1.
endif.
endif.
line = vline.
endform.
Step4 write a subroutine to calculate the line index for each item.
form calindex using Line type i (visible lines on the screen)
FirstLine type i(see step 2)
LineIndex type i(item index)
changing Index type n. (index on the screen)
if FirstLine = 0.
index = LineIndex mod Line.
if index = '00'.
index = Line.
endif.
elseif FirstLine = 1.
index = LineIndex mod ( Line - 1 ).
if ( index between 1 and 0 ) and LineIndex gt 1.
index = index + Line - 1.
endif.
if Line = 2.
index = index + Line - 1.
endif.
endif.
endform.
Step5 write a subroutine to calculate the loop range.
form calrange using Line type i ( visible lines on the screen)
DataLine type i
FirstLine type i
loopindex like sy-index
changing begin type i
end type i.
If FirstLine = 0.
if loopindex = 1.
begin = 1.
if DataLine <= Line.
end = DataLine.
else.
end = Line.
endif.
elseif loopindex gt 1.
begin = Line * ( loopindex - 1 ) + 1.
end = Line * loopindex.
if end gt DataLine.
end = DataLine.
endif.
endif.
elseif FirstLine = 1.
if loopindex = 1.
begin = 1.
if DataLine <= Line.
end = DataLine.
else.
end = Line.
endif.
elseif loop index gt 1.
begin = ( Line - 1 ) * ( loopindex - 1 ) + 2.
end = ( Line - 1 ) * ( loopindex - 1 ) + Line.
if end gt DataLine.
end = DataLine.
endif.
endif.
endif.
endform.
Step6 using field sysbol in your BDC, for example: in ME21, but you should calculate each item will correponding to which index in steploop/Table Control
form creat_bdc.
field-symbols: <material>, <quan>, <indicator>.
data: name1(14) value 'EKPO-EMATN(XX)',
name2(14) value 'EKPO-MENGE(XX)',
name3(15) value 'RM06E-SELKZ(XX)'.
assign: name1 to <material>,
name2 to <quan>,
name3 to <indicator>.
do pageno times.
if sy-index gt 1
*insert scroll page ok_code"
endif.
perform calrange using Line DataLine FirstLine sy-index
changing begin end.
loop at DataTable from begin to end.
perform calindex using Line FirstLine DataTable-LineIndex changing Index.
name1+11(2) = Index.
name2+11(2) = Index.
name3+12(2) = Index.
perform bdcfield using <material> DataTable-matnr.
perform bdcfield using <quan> DataTable-menge.
perform bdcfield using <indicator> DataTable-indicator.
endloop.
enddo.
An example abap program of handling Table Control during bdc programming.
REPORT zmm_bdcp_purchaseorderkb02
NO STANDARD PAGE HEADING LINE-SIZE 255.
Declaring internal tables *
*-----Declaring line structure
DATA : BEGIN OF it_dummy OCCURS 0,
dummy(255) TYPE c,
END OF it_dummy.
*-----Internal table for line items
DATA : BEGIN OF it_idata OCCURS 0,
ematn(18), "Material Number.
menge(13), "Qyantity.
netpr(11), "Net Price.
werks(4), "Plant.
ebelp(5), "Item Number.
END OF it_idata.
*-----Deep structure for header data and line items
DATA : BEGIN OF it_me21 OCCURS 0,
lifnr(10), "Vendor A/c No.
bsart(4), "A/c Type.
bedat(8), "Date of creation of PO.
ekorg(4), "Purchasing Organisation.
ekgrp(3), "Purchasing Group.
x_data LIKE TABLE OF it_idata,
END OF it_me21.
DATA : x_idata LIKE LINE OF it_idata.
DATA : v_delimit VALUE ','.
DATA : v_indx(3) TYPE n.
DATA : v_fnam(30) TYPE c.
DATA : v_count TYPE n.
DATA : v_ne TYPE i.
DATA : v_ns TYPE i.
*include bdcrecx1.
INCLUDE zmm_incl_purchaseorderkb01.
Search help for file *
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.
START-OF-SELECTION.
To upload the data into line structure *
CALL FUNCTION 'WS_UPLOAD'
EXPORTING
filename = p_file
filetype = 'DAT'
TABLES
data_tab = it_dummy.
Processing the data from line structure to internal tables *
REFRESH:it_me21.
CLEAR :it_me21.
LOOP AT it_dummy.
IF it_dummy-dummy+0(01) = 'H'.
v_indx = v_indx + 1.
CLEAR it_idata.
REFRESH it_idata.
CLEAR it_me21-x_data.
REFRESH it_me21-x_data.
SHIFT it_dummy.
SPLIT it_dummy AT v_delimit INTO it_me21-lifnr
it_me21-bsart
it_me21-bedat
it_me21-ekorg
it_me21-ekgrp.
APPEND it_me21.
ELSEIF it_dummy-dummy+0(01) = 'L'.
SHIFT it_dummy.
SPLIT it_dummy AT v_delimit INTO it_idata-ematn
it_idata-menge
it_idata-netpr
it_idata-werks
it_idata-ebelp.
APPEND it_idata TO it_me21-x_data.
MODIFY it_me21 INDEX v_indx.
ENDIF.
ENDLOOP.
To open the group *
PERFORM open_group.
To populate the bdcdata table for header data *
LOOP AT it_me21.
v_count = v_count + 1.
REFRESH it_bdcdata.
PERFORM subr_bdc_table USING: 'X' 'SAPMM06E' '0100',
' ' 'BDC_CURSOR' 'EKKO-LIFNR',
' ' 'BDC_OKCODE' '/00',
' ' 'EKKO-LIFNR' it_me21-lifnr,
' ' 'RM06E-BSART' it_me21-bsart,
' ' 'RM06E-BEDAT' it_me21-bedat,
' ' 'EKKO-EKORG' it_me21-ekorg,
' ' 'EKKO-EKGRP' it_me21-ekgrp,
' ' 'RM06E-LPEIN' 'T'.
PERFORM subr_bdc_table USING: 'X' 'SAPMM06E' '0120',
' ' 'BDC_CURSOR' 'RM06E-EBELP',
' ' 'BDC_OKCODE' '/00'.
MOVE 1 TO v_indx.
*-----To populate the bdcdata table for line item data
LOOP AT it_me21-x_data INTO x_idata.
CONCATENATE 'EKPO-EMATN(' v_indx ')' INTO v_fnam.
PERFORM subr_bdc_table USING ' ' v_fnam x_idata-ematn.
CONCATENATE 'EKPO-MENGE(' v_indx ')' INTO v_fnam.
PERFORM subr_bdc_table USING ' ' v_fnam x_idata-menge.
CONCATENATE 'EKPO-NETPR(' v_indx ')' INTO v_fnam.
PERFORM subr_bdc_table USING ' ' v_fnam x_idata-netpr.
CONCATENATE 'EKPO-WERKS(' v_indx ')' INTO v_fnam.
PERFORM subr_bdc_table USING ' ' v_fnam x_idata-werks.
v_indx = v_indx + 1.
PERFORM subr_bdc_table USING: 'X' 'SAPMM06E' '0120',
' ' 'BDC_CURSOR' 'RM06E-EBELP',
' ' 'BDC_OKCODE' '/00'.
ENDLOOP.
PERFORM subr_bdc_table USING: 'X' 'SAPMM06E' '0120',
' ' 'BDC_CURSOR' 'RM06E-EBELP',
' ' 'BDC_OKCODE' '=BU'.
PERFORM bdc_transaction USING 'ME21'.
ENDLOOP.
PERFORM close_group.
End of selection event *
END-OF-SELECTION.
IF session NE 'X'.
*-----To display the successful records
WRITE :/10 text-001. "Sucess records
WRITE :/10 SY-ULINE(20).
SKIP.
IF it_sucess IS INITIAL.
WRITE :/ text-002.
ELSE.
WRITE :/ text-008, "Total number of Succesful records
35 v_ns.
SKIP.
WRITE:/ text-003, "Vendor Number
17 text-004, "Record number
30 text-005. "Message
ENDIF.
LOOP AT it_sucess.
WRITE:/4 it_sucess-lifnr,
17 it_sucess-tabix CENTERED,
30 it_sucess-sucess_rec.
ENDLOOP.
SKIP.
*-----To display the erroneous records
WRITE:/10 text-006. "Error Records
WRITE:/10 SY-ULINE(17).
SKIP.
IF it_error IS INITIAL.
WRITE:/ text-007. "No error records
ELSE.
WRITE:/ text-009, "Total number of erroneous records
35 v_ne.
SKIP.
WRITE:/ text-003, "Vendor Number
17 text-004, "Record number
30 text-005. "Message
ENDIF.
LOOP AT it_error.
WRITE:/4 it_error-lifnr,
17 it_error-tabix CENTERED,
30 it_error-error_rec.
ENDLOOP.
REFRESH it_sucess.
REFRESH it_error.
ENDIF.
CODE IN INCLUDE.
Include ZMM_INCL_PURCHASEORDERKB01
DATA: it_BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE.
DATA: it_MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.
DATA: E_GROUP_OPENED.
*-----Internal table to store sucess records
DATA:BEGIN OF it_sucess OCCURS 0,
msgtyp(1) TYPE c,
lifnr LIKE ekko-lifnr,
tabix LIKE sy-tabix,
sucess_rec(125),
END OF it_sucess.
DATA: g_mess(125) type c.
*-----Internal table to store error records
DATA:BEGIN OF it_error OCCURS 0,
msgtyp(1) TYPE c,
lifnr LIKE ekko-lifnr,
tabix LIKE sy-tabix,
error_rec(125),
END OF it_error.
Selection screen
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS session RADIOBUTTON GROUP ctu. "create session
SELECTION-SCREEN COMMENT 3(20) text-s07 FOR FIELD session.
SELECTION-SCREEN POSITION 45.
PARAMETERS ctu RADIOBUTTON GROUP ctu. "call transaction
SELECTION-SCREEN COMMENT 48(20) text-s08 FOR FIELD ctu.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 3(20) text-s01 FOR FIELD group.
SELECTION-SCREEN POSITION 25.
PARAMETERS group(12). "group name of session
SELECTION-SCREEN COMMENT 48(20) text-s05 FOR FIELD ctumode.
SELECTION-SCREEN POSITION 70.
PARAMETERS ctumode LIKE ctu_params-dismode DEFAULT 'N'.
"A: show all dynpros
"E: show dynpro on error only
"N: do not display dynpro
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 48(20) text-s06 FOR FIELD cupdate.
SELECTION-SCREEN POSITION 70.
PARAMETERS cupdate LIKE ctu_params-updmode DEFAULT 'L'.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 3(20) text-s03 FOR FIELD keep.
SELECTION-SCREEN POSITION 25.
PARAMETERS: keep AS CHECKBOX. "' ' = delete session if finished
"'X' = keep session if finished
SELECTION-SCREEN COMMENT 48(20) text-s09 FOR FIELD e_group.
SELECTION-SCREEN POSITION 70.
PARAMETERS e_group(12). "group name of error-session
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 51(17) text-s03 FOR FIELD e_keep.
SELECTION-SCREEN POSITION 70.
PARAMETERS: e_keep AS CHECKBOX. "' ' = delete session if finished
"'X' = keep session if finished
SELECTION-SCREEN END OF LINE.
PARAMETERS:p_file LIKE rlgrap-filename.
at selection screen *
AT SELECTION-SCREEN.
group and user must be filled for create session
IF SESSION = 'X' AND
GROUP = SPACE. "OR USER = SPACE.
MESSAGE E613(MS).
ENDIF.
create batchinput session *
FORM OPEN_GROUP.
IF SESSION = 'X'.
SKIP.
WRITE: /(20) 'Create group'(I01), GROUP.
SKIP.
*----open batchinput group
CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING
CLIENT = SY-MANDT
GROUP = GROUP
USER = sy-uname.
WRITE:/(30) 'BDC_OPEN_GROUP'(I02),
(12) 'returncode:'(I05),
SY-SUBRC.
ENDIF.
ENDFORM. "OPEN_GROUP
end batchinput session *
FORM CLOSE_GROUP.
IF SESSION = 'X'.
*------close batchinput group
CALL FUNCTION 'BDC_CLOSE_GROUP'.
WRITE: /(30) 'BDC_CLOSE_GROUP'(I04),
(12) 'returncode:'(I05),
SY-SUBRC.
ELSE.
IF E_GROUP_OPENED = 'X'.
CALL FUNCTION 'BDC_CLOSE_GROUP'.
WRITE: /.
WRITE: /(30) 'Fehlermappe wurde erzeugt'(I06).
ENDIF.
ENDIF.
ENDFORM. "CLOSE_GROUP
Start new transaction according to parameters *
FORM BDC_TRANSACTION USING TCODE TYPE ANY.
DATA: L_SUBRC LIKE SY-SUBRC.
*------batch input session
IF SESSION = 'X'.
CALL FUNCTION 'BDC_INSERT'
EXPORTING
TCODE = TCODE
TABLES
DYNPROTAB = it_BDCDATA.
WRITE: / 'BDC_INSERT'(I03),
TCODE,
'returncode:'(I05),
SY-SUBRC,
'RECORD:',
SY-INDEX.
ELSE.
REFRESH it_MESSTAB.
CALL TRANSACTION TCODE USING it_BDCDATA
MODE CTUMODE
UPDATE CUPDATE
MESSAGES INTO it_MESSTAB.
L_SUBRC = SY-SUBRC.
WRITE: / 'CALL_TRANSACTION',
TCODE,
'returncode:'(I05),
L_SUBRC,
'RECORD:',
SY-INDEX.
ENDIF.
Message handling for Call Transaction *
perform subr_mess_hand using g_mess.
*-----Erzeugen fehlermappe
IF L_SUBRC <> 0 AND E_GROUP <> SPACE.
IF E_GROUP_OPENED = ' '.
CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING
CLIENT = SY-MANDT
GROUP = E_GROUP
USER = sy-uname
KEEP = E_KEEP.
E_GROUP_OPENED = 'X'.
ENDIF.
CALL FUNCTION 'BDC_INSERT'
EXPORTING
TCODE = TCODE
TABLES
DYNPROTAB = it_BDCDATA.
ENDIF.
REFRESH it_BDCDATA.
ENDFORM. "BDC_TRANSACTION
Form subr_bdc_table *
text
-->P_0220 text *
-->P_0221 text *
-->P_0222 text *
FORM subr_bdc_table USING VALUE(P_0220) TYPE ANY
VALUE(P_0221) TYPE ANY
VALUE(P_0222) TYPE ANY.
CLEAR it_bdcdata.
IF P_0220 = ' '.
CLEAR it_bdcdata.
it_bdcdata-fnam = P_0221.
it_bdcdata-fval = P_0222.
APPEND it_bdcdata.
ELSE.
it_bdcdata-dynbegin = P_0220.
it_bdcdata-program = P_0221.
it_bdcdata-dynpro = P_0222.
APPEND it_bdcdata.
ENDIF.
ENDFORM. " subr_bdc_table
Form subr_mess_hand *
text *
-->P_G_MESS text *
FORM subr_mess_hand USING P_G_MESS TYPE ANY.
LOOP AT IT_MESSTAB.
CALL FUNCTION 'FORMAT_MESSAGE'
EXPORTING
ID = it_messtab-msgid
LANG = it_messtab-msgspra
NO = it_messtab-msgnr
v1 = it_messtab-msgv1
v2 = it_messtab-msgv2
IMPORTING
MSG = P_G_MESS
EXCEPTIONS
OTHERS = 0.
CASE it_messtab-msgtyp.
when 'E'.
it_error-error_rec = P_G_MESS.
it_error-lifnr = it_me21-lifnr.
it_error-tabix = v_count.
APPEND IT_ERROR.
when 'S'.
it_sucess-sucess_rec = P_G_MESS.
it_sucess-lifnr = it_me21-lifnr.
it_sucess-tabix = v_count.
APPEND IT_SUCESS.
endcase.
ENDLOOP.
Describe table it_sucess lines v_ns.
Describe table it_error lines v_ne.
ENDFORM. " subr_mess_hand
Also refer
http://sap.ittoolbox.com/groups/technical-functional/sap-dev/bdc-table-control-668404
and
http://www.sap-img.com/abap/bdc-example-using-table-control-in-bdc.htm
Regards,
srinivas
<b>*reward for useful answers*</b> -
FREIGHT COST TO BE ADDED TO MATERIAL VALUE FOR PRICE CONTROL"S"
hi,
How to add the frieght cost to material cost for the materials with "S" price control While doing MIGO ?
Edited by: ARITRA MUKHERJEE on Mar 3, 2010 5:07 PMHi
By stating Price control Indicator S ,it means that you are valuating your inventory at a standard or Fixed price (As maintainred in the Material master ).Hence your Inventory will be valuated at the standard price no matter what additional expenses you incur
Regards
Sandeep
Maybe you are looking for
-
Photo Storage Issue On iPhone 6
Under manage storage in settings, I am showing that Photos is taking up 5.1GB of space on my phone, which is prohibiting me from adding music or videos to my phone. I only have 300 photos in my photo stream, so there is no reason it should be that l
-
IPhone 3GS FM tuner apps?
How can I listen to FM stations (FM stations set on TV's) on my iPhone 3GS during a workout?
-
Need Help on JSP Radio Buttons please
How do i create radio buttons on a HTML file to link to other JSPs?? do i have statements in my HTML that gets a JSP i.e option and then that runs the links to the other pages? please help very stuck and confused. Thanks
-
Load data thru WEB ADI (Accounted Transactions)
When I do transaction Import (for Accounted Transactions - Web ADI) in the Review Transactions window (Transaction Import) I am getting the following error: Rejection Reason is -- Supplier Invoices transaction source must be GL accounted Can any one
-
Incoming invoice number range per company code
Hi! I have a doubt. Is there the possibility of create incoming invoice number range per company code? I need the MM doc, not FI doc. Thank's!