Enhancement SAP Pricing procedure (code maybe)

We have 2 customer discounts Z007 and ZADD, which have been assigned in pricing procedure ZVAA01. PP ZVAA01 is being used for sales order types ZVOR (manual orders) and ZVED (EDI orders) .. for all types of sold-tos. The billing type used is ZF2 for both order types. The billing types too has ZVAA01 as the pricing procedure.

Condition Z007 is determined by condition record, while ZADD is either maintained manually or comes through IDOC-850.

We have a business requirement to add additional 2% to ZADD, in case if the invoice net value is less than or equal to 90% of order value. In other words 2% is towards non fulfilment of customer order. Due to configuration constraint we do not want any additional condition type to be configured. Please suggest a solution. Thanks.

.... Anonymous


  1. Since we have a limitation in the above scenario that the Sales Order and the Billing pricing procedures are same. There is little that can be done through configuration change. This means that we have to handle the scenario through code change.

    SAP has provided USER EXITS for articulating changes in standard pricing includes. The programs where these are available are RV60AFZZ, MV61AFZA, MV61AFZB & RV61AFZA. There are various forms available in these programs.(Note these programs are also invoked in MM pricing!!)

    The form which would serve our scenario is USEREXIT_PRICING_COPY in program RV61AFZA.Within this program we have the KONV structure available to define custom checks & update. This form is the transfer interface for condition values from Source document to Target document; Sales Order to Invoice in this case.

    The amount of code required would be minimal; however care should be taken in the functional specs and in hence in ABAP code to limit the changes only to the scenario intended. That is, you have to set filters on field like BUKRS , VKORG, KALSM, KSCHL, AUART, FKART to restrict the changes desired to be applicable to the scenario wanted.

  2. List of User Exits in MM:
    Exit name Short text
    AMPL0001 User subscreen for additional data on AMPL
    LMEDR001 Enhancements to print program
    LMELA002 Adopt batch no. from shipping notification when posting a GR
    LMELA010 Inbound shipping notification: Transfer item data from IDOC
    LMEQR001 User exit for source determination
    LMEWPU06 Customer exit for object determ. (procurement via catalogs)
    LMEWPU07 Customer exit to determine allowed catalogs
    LMEXF001 Conditions in Purchasing Documents Without Invoice Receipt
    LWBON001 Extend comm. structure MCKONA (busn. vols., rebate income)
    LWBON003 Change settlement data before creation of settlement doc.
    LWBON004 Simulation of LIS update for detailed statement
    LWBON005 Index entries for settlement documents, arrangement settlem.
    LWSUS001 Customer-Specific Source Determination in Retail
    M06B0001 Role determination for purchase requisition release
    M06B0002 Changes to comm. structure for purchase requisition release
    M06B0003 Number range and document number
    M06B0004 Number range and document number
    M06B0005 Changes to comm. structure for overall release of requisn.
    M06E0004 Changes to communication structure for release purch. doc.
    M06E0005 Role determination for release of purchasing documents
    ME590001 Grouping of requsitions for PO split in ME59
    MEAG0001 Distribution of Contract/Scheduling Agreement from CRM
    MEETA001 Define schedule line type (backlog, immed. req., preview)
    MEFLD004 Determine earliest delivery date f. check w. GR (only PO)
    MELAB001 Gen. forecast delivery schedules: Transfer schedule implem.
    MEQUERY1 Enhancement to Document Overview ME21N/ME51N
    MEREQ001 Customers' Own Data in Purchase Requisition
    MEVME001 WE default quantity calc. and over/ underdelivery tolerance
    MM06E001 User exits for EDI inbound and outbound purchasing documents
    MM06E003 Number range and document number
    MM06E004 Control import data screens in purchase order
    MM06E005 Customer fields in purchasing document
    MM06E007 Change document for requisitions upon conversion into PO
    MM06E008 Monitoring of contr. target value in case of release orders
    MM06E009 Relevant texts for "Texts exist" indicator
    MM06E010 Field selection for vendor address
    MM06E011 Activate PReq Block
    MMAL0001 ALE source list distribution: Outbound processing
    MMAL0002 ALE source list distribution: Inbound processing
    MMAL0003 ALE purcasing info record distribution: Outbound processing
    MMAL0004 ALE purchasing info record distribution: Inbound processing
    MMDA0001 Default delivery addresses
    MMFAB001 User exit for generation of release order
    SAPL2012 Customer Exit for Enjoy Purchase Orders via BAPIs
    SAPLMEWB Customer exit for processing of reservations via BAPIs
    SAPLMEWP Customer exit for processing of purchase orders via BAPIs
    SAPLMEWQ Customer exit for processing of requisitions via BAPIs
    SAPMMWE1 Create requirement coverage request - materials catalog data
    WOG10001 Requirements planning for perishables
    WVLB0003 User exits for automatic PO-based load building in 99.A
    WVLB0005 User exits in TR WLB5 (manual load bulding)
    WVLB000A User exits for control program for load building

  3. This post is very nice, Because your post is giving very nice information. So we are very thankful to you.