SAP SD Pricing

we have custom made pricing procedure. In first step ZPRS(copy of VPRS) and in the next step ZR00( copy of PR00).
ZPRS comes from the material master data. ZR00 is manually entered.
If both of them has some condition value , then ZPRS become inactive while ZR00 remain active.
Both the condition type are of condition class B.
Why ZPRS become inactive while ZR00 remain active.

Hi Pratik
VPRS is not normally not the selling Price.
Actually, it is COST condition type. That means, whatever we have spend to have that material.
Suppose, we have spend Rs.100/- for having the material, then it is the cost of the material (Rs.100/- per piece).
Let's say, we sale the same material at Rs.150/- per piece, then it is the selling price of the material (Rs.150/- per piece).
Profit Margin (Rs.50/-) is calculated by substracting the Net value (Selling price x no of units) - Cost.
Once the cost is found this Profit margin can be calculated from the above formula, which is formula 11 assigned in the Pricing Procedure for Profit Margin.
VPRS stands for Cost of the material (not selling price), it is a statistical condition, has no access sequence, we do not maintain any condition record for it.
The job of VPRS Condition type is to find out the cost of the material from the material master data > Accounting 1 view.
VPRS does not have any Access sequence, it takes the help of its Condition category "G" and searches the material master to retrieve the cost of the material.
If the price control is "V" there, then system takes the "Moving Avarage Price" and if the price control is "S", then system takes the "Standard Price" as cost.
Condition class should be "B" ,should have been marked as "statistical" in the pricing procedure and subtotal should be "B".
VPRS should not be placed in the first place, normally it should be in the last place.
Put the Price condition type in the first place in the Procedure.

Similar Messages

  • Com.sap.leasing.pricing.tools.jar

    Hi Experts,
    We need a help please...
    We are trying to build the project in Eclipse. There are few compilation error due to missing libraries. Ex: below are the package not found in the sap standard API. We have downloaded the libraries via tcode /SAPCND/UE_DEV from the CRM system, but these does not contain the below libraries (no option to choose any library from this tcode /SAPCND/UE_DEV though).
    Also downloaded PRC_UE_CUSTOMER_V103 from OSS, this also does not contain the below ones...
    import com.sap.leasing.pricing.tools.LeasingPricingTools;
    import com.sap.spe.pricing.transactiondata.impl.PricingItem;
    Can you please advise where we can download the below libraries?
    Thanks for your help.
    Best Regards,
    Ravi

    Hai,
          check the https://www.sdn.sap.com/irj/sdn/contentportfolio -> for downloading the business packages and other libraries for CRM and all others.
    If not there, check in the Service Marketplace also once again.Or else raise an OSS message to get the same.
    Thanks and Regards,

  • SAP Add Pricing Tier Logic to the MRP Purchase Req Calculation

    Hi experts,
    ISSUE: SAP Add Pricing Tier Logic to the MRP Purchase Req Calculation .
    > MRP currently generates purchase requisitions based strictly on a calculation of inventory, open orders, forecast, and purchase orders.  The purchase req quantities do not take advantage of the pricing tiers and their associated quantity discounts.  MRP may recommend a PO for 913 units.  At no time would a planner ever order such a specific quantity.  In addition, the planner would increase the order to 1020 to get the price discount for 1000 units (rounded to 1020 for carton quantity).  SAP should include a preset order table which would evaluate the MRP calculation and recommend an appropriate quantity based on the contract pricing tiers.
    pls let me know it is posible or need any enhancement and how ?
    thanks
    humera

    Hi,
    Rounding profile works for u r query, there u can maintain quantity rounding for purchase process, also the rounding off method will set the limit of rounding for given unit of measure. The rounding off method can be maintained in SPRO > Material Managment>purchasing >order optimizing> Quantity optimizing and allowed logistic unit of measure-->Unit of measure rounding rules.
    Hope this will help u.
    Rgd
    Shekhar

  • How to calcullate this scenerio in sap sd pricing

    Hi all sap gurus
    Please help I am in a crunch condition. My client is in warehouse business so he charges as per the pallet(sqft wise) with the days of renting.suppose a customer comes and asks for 500 pallet position for 5 days then system has to calcullate like below
    (500 palet position5 daysamount per pallet position) how can I trigger all this in my pricing procudure. please please help  me out.
    your suggestion is highly appericiable
    thanking you in advance

    Dear skmohankuda ,
    As per my understanding , it will be a order based billing and you will be entering the pallet qty in the qty field am i right?
    if so identify a field in the item level which can be used to enter the NO OF DAYS.
    In the pricing procedure, against your condition type for pallet charge , assign a alt.cond type routine.
    In the routine , write the code to multiply the value in the field you have identified for entering the NO OF DAYS with the condition record rate.
    Check and revert back.
    Thanks & Regards,
    Hegal K Charles

  • Va01:whay sap say pricing and condition missing data?

    I want use the T-CODE VA01 to create a sale order.When I input one material 001 and it's quantity 250 and save the sale order,the sap show some error message like below.I thought it mean that the item of material 001 in the sale order miss some data about the pricing and condition.I check the item->Conditions and can not found any matter.I use the standard pricing procedure and the CnTy like PR00,K007,KP02,SKTO was exist.So my question was how could I found what the missing data was?Is there any one who have meet such problem can give me some reference or advice?Thank you.
    error message:
    Missing data: Pricing
    Message no. VU019
    Diagnosis
    The system checked the document for completion and found some missing data.
    System Response
    You cannot continue processing.
    Procedure
    Enter the missing data.

    hi mello
    u can check it  in document level item details.... conditions....u can see a icon called <b>Analysis</b> click on that u can find  all the details of  the condition types in the procedure
    kiran

  • SAP - CPCC pricing application interface

    Hello, does anyone know if a user is able to update SAP data by executing transactions within the CPCC pricing and chargebacks application? Thank you.

    If CPCC has been configured to automatically post into SAP then transactional data can be created.

  • SAP - FI - Pricing Change Sheets =

    Hello,
    Does anyone know of a Core report that will satisfy this "Price Change Sheet" Reporting request? 
    General specifications for the report:
    Report showing...
         Part number (ours & customer)
         Description
         Expiring Price
         Expiring Date
         CN# reference
         Comments
                    Cost
         etc.
    Thank you in advance.
    [email protected]

    Dear Salvatore,
    You can control like this
    Create the new Condition Records in VK11 for that Quanity then
    Create the Delivery for Remaning quanity and finalyy do Billing(Vf01) .. in Billing select the Line item and Click on the "Item Pricing Condition" below and you will go to Item data screen belwo you will find "Update " Push Button click on that you will get List of Price types .. in that select "B"  carry out new pricing ... Once you do this the quanity in the Billing will refelect with new pricing
    Regards,
    Seegal

  • SAP CRM Pricing - Tax is not determined sometimes

    Hi Experts,
    we are using BADI: CRM_COND_COM_BADI to maintain to determine the taxes for every kind of possible business case. With the search values added to strucure CRMT_ACS_I_COM we search in condition table CNCCRMPRCUS00002 for the correct tax that has to be applied.
    There is a weird case I have to comment. In old service orders it can happen that no tax is determined. But if I use the same data and create a new service ticket the tax is determined. I have looked into the trace for pricing and get for the old service order the error:
    'No search carried out (the key field contents remain unchanged)'
    So my problem is what is that key field? We want that everytime the taxes are determined again but I dont know where to start for searching.
    Anybody knows this problem?
    Best Regards
    Oliver

    Hi,
    within the determination of a condition record from a condition table the fields assigned in the access sequence are considere as key fields. If there is no change to the key fields of an access sequence throughout subsequent executions of pricing the pricing engine will not trigger a search for a condition record again (due to performance reasons).
    It is hard to guess why the condition record is not determined. Typical reasons are reguirement formulas, which prevent the condition from being determined or missing key field values, e.g. there might be use cases in the creation of the pricing item, where a certain attribute value is not (yet) known and hence it is not passed to the pricing engine for the determination of a condition.
    What happens if you trigger an update of the conditions / pricing for this item in the already existing document?
    Best Regards,
    Michael

  • SAP Shipment Pricing Error

    Dear All,
    I have created a condition type ZF20 which has been copied from FB20.This has been defined as a Header condition .
    When I am creating Shipment Cost the condition type ZF20 is displayed twice at the item level.
    There is a red light in front of ZF20 in the first line , on doubleclikcing it is displaying Incorrect ...formulae.
    How to ensure that ZF20 is entered at the Header level and the price entered eg 20000 is split into 10000 and 10000 across two shipment items and that also once for each shipment item.
    Regards

    Hi
    Try to change the value of calculat.type in the defition of the condition (for instance, with A instead of B).
    I hope this helps you
    Regards
    Eduardo

  • Pricing in SAP Retail: Basic Purchase Price in UOM for the VKP5

    Dear Community,
    We need that in the SAP Retail pricing (VKP5 transaction), the Basic Purchase Price can be transferred to condition record for PB00 in the Purchase Order Unit of Measure instead of Sales Unit of Measure.
    Thanks in advance for your help,
    Gabriela Ramirez.

    Dear Community,
    We need that in the SAP Retail pricing (VKP5 transaction), the Basic Purchase Price can be transferred to condition record for PB00 in the Purchase Order Unit of Measure instead of Sales Unit of Measure.
    Thanks in advance for your help,
    Gabriela Ramirez.

  • "SAP confuses customers with pricing" ?

    Hello, I've been reading this article:
    SAP confuses customers with pricing. A lot of SAP customers ask Gartner for help figuring out SAP's pricing and licensing, as SAP has unusual terms for billing data going into and out of systems. Gaughan also said that a big technology transition that was driving SAP revenue for the last few years -- moving existing customers from the old R/3 system to the newer Business Suite -- is almost done, which means SAP will have to be more aggressive with maintenance fees. He recommended locking in maintenance prices now.
    Source: What Microsoft, Oracle, IBM, And SAP Don't Tell Customers
    What do you think about this statement?

    Transparent pricing has always been problem in enterprise software. Its not just the big players who do this, even some one selling screen capture software for the enterprise does this !.
    Ofcourse, it does not make it right. The motto seems to be "get as much out of the customer as you can".

  • New pricing routine

    Hi guys,
       I am new with all this IPC stuff and I was wondering if you could help me with some questions.
    I need to implement the following code:
       if XKOMV-KSCHL != ZPCO
         get the value from condition VPRS
       else
         value from condition XKOMV-KWERT
    my questions are:
      1. What method-object can I use to point condition ZPCO for my item to get its value??
      2. Is there any standard to ge the value from VPRS?
    Your help is highly appreciated as I do not see the exit of this problem!!
    Thanks
    Alicia

    Hi Alicia
    If you have access to the IPC directory on the files system, there is great API documentation available.
    For the XKOMV structure, you can use the following java interface to access the various fields.
    \ipc\doc\spe\apidocs\com\sap\spe\pricing\transactiondata\application\IPricingConditionUserExit.html
    I think you use the method getConditionTypeName() to pull the XKOMV-KSCHL.
    And you can use getConditionValue() to pull the XKOMV-KWERT as well as VPRS
    Finally, to set the value when you are finished, you will simply do a "return <your value/variable>;"
    Hope this helps!
    Regards,
    Ajay S Gupta

  • IPC Pricing with AP 7.00 Database Access/Call function module user-exit

    Hi experts,
    we are running SAP ECO on SAP ECC 6.0 with IPC Pricing AP 7.00 running in the VMC.
    I'm facing a new requirement. In an user-exit for requirements the access to the ABAP database is needed.
    (I know that the SAP recommendation is, don't have access to database. But we need this functionality)
    In ABAP it looks like:
    select single * from  a590
          into     LH_674_a590
          where    kappl  = 'V'
          and      kschl  = 'ZSPR'
          and      kunnr  = komk-kunnr
          and      matnr  = komp-matnr
          and      datbi  >= komk-prsdt
          and      datab  =< komk-prsdt.
    Is there a possibility to implement the same SELECT in the Java-User-Exit?
    Is there maybe the alternative to call a function module instead?
    The database exits on the same application server on which the VMC runs.
    If there is a possiblity can anyone provide me with sample coding or give an advice where to find samle coding?
    I would prefer to call a functions module.
    Thanks in adcance
    Karl-Wilhelm

    Hi Shanto & Sumit,
    Thanks for the inputs.
    as per my understanding of the log
    java.lang.IncompatibleClassChangeError: com.sap.leasing.pricing.tools.LeasingPricingTools: method getPricingConditionByConditionTypeName(Lcom/sap/spe/pricing/transactiondata/userexit/IPricingItemUserExit;Ljava/lang/String;)Lcom/sap/spe/pricing/transa ctiondata/IPricingCondition; used to be stati
    error is thrown by the SAP standard user exit and because of which execution is failing in customer user exits and surprisingly we have not made any changes in both of them.
    this was working earlier before upload.could this be because of the jar packaging.
    how i can download the standard user exit com.sap.leasing.pricing.tools.LeasingPricingTools from crm
    for further investigation.
    Thanks,
    Siddharth

  • IPC Pricing routine for Product Family Margin in Quotation is not working

    Hi,
    I am working on the IPC Pricing Routine to calculate Item's Product Family Margin in the Quotation. 
    Process followed:
    Step 1:  Created a Group condition ZPFM for Product Family Margin and assigned to the pricing procedure. 
    Step 2:  Created a Value Routine to determine ZPFM's Condition Rate and Condition Value.
    Logic: 
              1.  Collect (Sum Of)  the Cost (ZSVC) and the Subtotal 3 of the items which are in same Material Group.
               2.  Assign the ZPFM Condition Value = Sum of Subtotal 3 - Cost.
    Issue:  The condition value for ZPFM is calculating correct for all line items except the last item.  I am getting some junk value always to the last item. If I delete the last time, again next last item is giving wrong value.  The calculation value in the routine debugging log (SM53) is showing correct value.  However, assigning the wrong value.  No other routines have been assigned to this condition type in the pricing procedure. 
    Routine Code:
    package stanley.pricing.userexits.val;
    import java.math.BigDecimal;
    import com.sap.spe.pricing.customizing.PricingCustomizingConstants;
    import com.sap.spe.pricing.transactiondata.PricingTransactiondataConstants;
    import com.sap.spe.pricing.transactiondata.userexit.IPricingConditionUserExit;
    import com.sap.spe.pricing.transactiondata.userexit.IPricingItemUserExit;
    import com.sap.spe.base.logging.UserexitLogger;
    import com.sap.spe.pricing.transactiondata.userexit.ValueFormulaAdapter;
    //import com.sap.spe.pricing.transactiondata.userexit.IPricingCondition;
    public class Z_CondValueRoutine730 extends  ValueFormulaAdapter{
       private static UserexitLogger uelogger =
              new UserexitLogger(Z_CondValueRoutine730.class);
      public BigDecimal overwriteConditionValue(IPricingItemUserExit pricingItem,
             IPricingConditionUserExit pricingCondition) {
      // Variable Declarations.
      BigDecimal conditionValueZCVC=PricingTransactiondataConstants.ZERO;
      BigDecimal conditionValueZCVCAccrual=PricingTransactiondataConstants.ZERO;
      BigDecimal subTotal3=PricingTransactiondataConstants.ZERO;
      BigDecimal subTotal3Accrual=PricingTransactiondataConstants.ZERO;
      if(pricingCondition.getConditionTypeName().equalsIgnoreCase("ZPFM")){
                IPricingItemUserExit[] prItems;
                prItems = pricingItem.getUserExitDocument().getUserExitItems();
                String materialGroup = pricingItem.getAttributeValue("MATL_GRP");
                uelogger.writeLogDebug("  Material Group  :"+materialGroup);
                for (int i=0;i<prItems.length;i++){
                     String materialGroup1 = prItems[i].getAttributeValue("MATL_GRP");
                     if (materialGroup1.equalsIgnoreCase(materialGroup)){
                          subTotal3 = prItems[i].getSubtotal(PricingCustomizingConstants.ConditionSubtotal.SUBTOTAL_3).getValue();
                          subTotal3Accrual = subTotal3Accrual.add(subTotal3);
                          IPricingConditionUserExit[] conditionsForCumulation = prItems[i].getUserExitConditions();
                          for (int j = 0; j < conditionsForCumulation.length; j++) {
                               if(conditionsForCumulation[j].getConditionTypeName()==null) {
                                   continue;
                               else if ( conditionsForCumulation[j].getConditionTypeName().equalsIgnoreCase("ZCVC")){
                                    conditionValueZCVC = conditionsForCumulation[j].getConditionValue().getValue();
                                    conditionValueZCVCAccrual = conditionValueZCVCAccrual.add(conditionValueZCVC);
                BigDecimal conditionValueZPFM=PricingTransactiondataConstants.ZERO;
                conditionValueZPFM = subTotal3Accrual.subtract(conditionValueZCVCAccrual);
               BigDecimal conditionRateZPFM=PricingTransactiondataConstants.ZERO;
               conditionRateZPFM = conditionValueZPFM.multiply(new BigDecimal ("100"));
              conditionRateZPFM = conditionRateZPFM.divide(subTotal3Accrual,7,BigDecimal.ROUND_FLOOR);
             uelogger.writeLogDebug(subTotal3Accrual+"-"+conditionValueZCVCAccrual+" = "+conditionValueZPFM);
             uelogger.writeLogDebug("Condition Rate  :"+conditionRateZPFM);
           pricingCondition.setConditionRateValue(conditionRateZPFM.setScale(2,BigDecimal.ROUND_HALF_UP));
           pricingCondition.setConditionValue(conditionValueZPFM.setScale(2,BigDecimal.ROUND_HALF_UP));
              return null;
           return null;

    Hi,
    I think you should change xkwert variable instead of komv-kwert.
    Standard routines does the same.
    Aslo check in SPRO settings that routine is attached and
    getting triggered by putting break-point.
    Regards,
    Vishal

  • Pricing : ABAP to Java conversion help needed

    Hi all.
    I am basically an ABAP developer. My recent assignment needs some java coding.
    It will be very helpful if we anybody helps me in finding the corresponding pricing fields in java.
    The abap code is as follows
    check : xkomv - kgrpe  = '  '.
    check: xkomv - xkbetr ne 0.
    check : komp - kpein ne 0.
    if komp - netwr < 0.
      komp - netpr = 0 - komp - netpr.
    endif.
    xkwert  = (        (  ( komp - netpr * ( 100000 + xkomv - xkbetr))     / 100000)
    komp-mglme / komp-kumza * komp - kumne / 1000 / komp - kpein )
      - komp-netwr.
    Please help in converting this abap code to its corresponding java code.
    Thanks and Regards
    Deepika

    Here is the code I have developed: Please check and let me know if there are any changes
    import java.math.BigDecimal;
    import com.sap.spe.pricing.customizing.PricingCustomizingConstants;
    import com.sap.spe.pricing.transactiondata.PricingTransactiondataConstants;
    import com.sap.spe.pricing.transactiondata.userexit.IPricingConditionUserExit;
    import com.sap.spe.pricing.transactiondata.userexit.IPricingItemUserExit;
    import com.sap.spe.pricing.transactiondata.userexit.ValueFormulaAdapter;
    public class ZS2S_IPC_ZDCP extends ValueFormulaAdapter {
          public BigDecimal overwriteConditionValue(
                IPricingItemUserExit item,
                IPricingConditionUserExit condition) {
                BigDecimal kompKumza = new BigDecimal(String.valueOf(condition.getFraction().getNumerator()));
                BigDecimal kompKumne = new BigDecimal(String.valueOf(condition.getFraction().getDenominator()));
                boolean xkomvKgrpe = condition.isGroupCondition();
                BigDecimal kompKpein = condition.getPricingUnit().getValue();    
                BigDecimal kompNetwr  = item.getNetValue().getValue();
                BigDecimal kompNetpr  = item.getNetPrice().getValue();
                BigDecimal xkomvKbetr = condition.getConditionRate().getValue();
                BigDecimal kompMglme = item.getBaseQuantity().getValue();
                  if ( xkomvKgrpe = true )
                      return PricingTransactiondataConstants.ZERO;
                  if ( kompKumza != PricingTransactiondataConstants.ZERO )
                    return PricingTransactiondataConstants.ZERO;
                if ( kompKumne != PricingTransactiondataConstants.ZERO )
                      return PricingTransactiondataConstants.ZERO;   
                if ( kompKpein != PricingTransactiondataConstants.ZERO )
                        return PricingTransactiondataConstants.ZERO;
                if (kompNetwr.compareTo(PricingTransactiondataConstants.ZERO) < 0 )
                      kompNetpr = (PricingTransactiondataConstants.ZERO).subtract(kompNetwr);
                 BigDecimal y = new BigDecimal("100000");
                BigDecimal a = y.add(xkomvKbetr);
                BigDecimal temp = kompNetpr.multiply(a);
                BigDecimal result1 = temp.divide(y, 2, BigDecimal.ROUND_HALF_UP);
                BigDecimal result2 = result1.multiply(kompMglme)
                                         .divide(kompKumza, 2 BigDecimal.ROUND_HALF_UP).multiply(kompKumne).divide(kompKpein, 2,  BigDecimal.ROUND_HALF_UP);
                BigDecimal Result = result2.subtract(kompNetwr);
              return Result;
    Edited by: Deepika Mallya on Aug 6, 2009 9:08 AM

Maybe you are looking for