Pricing-Condition Technique

Hi,
I have a small doubt in Pricing...
I have 4 condition types (CT1,CT2,CT3,CT4)in my Pricing Procedure....and the access sequence for in one of my condition type (say CT1) has 4 Access which are not marked as exclusive access..
Can someone explain me how the condition record is determined, if there are more than 1 access in an access sequence i.e. if a valid condition record is found in first acess is this determined in the sales order? Are further access ignored?
Now if further access are ignored what is Exclusive Access? what if there is another valid record in further access? Aren't they determined?
Thanks in Advance.
Challa.

Hi there,
If the access sequnece accesses 4 condition tables & if exclusive indocator is not set in access sequence, then if all the condition tables have condition reocrds, system will take the condition record of the last table. This is because since the exclusive indocator is not set, system will check the condition records in the next table. It will continue to serach till the last table. If defaults the value which is there in the last table. This is the reason why it is always advisible to set the exclusive indicator.
Pls note that the access sequence is by default from most specific to more general records.
Regards,
Sivanand

Similar Messages

  • Pricing procedure(Condition technique)

    Hi All
    Can someone provide me all the configuration steps in pricing procedure in MM...

    Select the pricing procedure which is the standard and copy it and create our own pricing procedure.
    Highlight it and double click the Control icon in the LHS screen.
    We can see that there are 16 columns in the pricing procedure, these are going to be used by the system to control the condition types.
    The detail description of each column is given below.
    Step:
    Number that determines the sequence of the conditions with in a procedure.
    It indicates the position of the condition type in pricing procedure.
    Ex.: 10, 15 etc.
    Counter:
    System uses the counter to count the steps and also it can be used to count mini steps of same condition types. So that number of steps can be reduced in the pricing procedure and hence enhancing the system performance.
    Access number of the conditions with in a step in the pricing procedure.
    During automatic pricing, the system takes into account the sequence specified by the counter.
    Condition Type:
    It represents pricing element in pricing procedure as a base price, discount, freight and tax.
    The condition type is used for different functions. In pricing, for example, the condition type lets you differentiate between different kinds of discount; in output determination, between different output types such as order confirmation or delivery note; in batch determination, between different strategy types.
    Ex.: PR00 - Price
    K004 - Material Discount
    K005 - Customer/Material Discount
    K007 - Customer Discount.
    Description:
    System copies description of condition type from its description (V/06).
    From and To:
    1.From: This can be used as a base to the condition type for calculating further value.
    1.{+}From and To: + The range between the steps from and to can be used to specify the range between same condition types. So that depending upon the condition type, the system deducts or adds the total value of those condition types from specific common source.
    Manual:
    This indicator specifies whether the specific condition type can be determined manually during sales order processing.
    If we check the box then the entry is going to be manual, if we uncheck it, it is going to be automatic.
    For Base Price and Taxes, the entry should be automatic.
    For Discounts and Freights, The entry should be manual.
    If we check the box, in VA01 when we go to conditions at the header/item level, the condition type will not be listed. If we require we will have to manually enter it.
    If we un-check the box, in VA01 when we go to conditions at the header/item level, the condition type will be listed.
    Mandatory:
    This indicator specifies that particular condition type is mandatory in the pricing procedure.
    If we check the box, then in VA01 at the header/item level in the conditions tab, if we delete the value in the condition type and try to save the document then system will not allow us to do it and throws an error.
    If we uncheck the box, then in VA01 at the header/item level in the conditions tab, if we delete the value in the condition type and try to save the document then system will allow us to save it, without giving any error.
    Mandatory check box should be checked in condition types which are compulsorily required in pricing procedure. Ex.: PR00, MWST.
    If the condition type is checked with mandatory option, then value should be maintained for that condition type, otherwise the system will not allow the user to process the document.
    Statistical:
    This indicator if it is activated will not allow the value of the condition type to be taken into net value calculation.
    It is used only for information purposes only.
    This indicator causes a surcharge or discount to be set in the document statistically (that is, without altering the value).
    This is commonly used for condition types
    SKTO - Cash Discount
    VPRS - Cost (Moving average price/Standard Price).
    Print:
    The value of this field specifies whether line item can be printed or not in the sales document and at what level it is to be printed.
    Subtotal:
    The value of this field determines where the values of subtotals to be captured i.e. in which table and which field.
    Controls whether and in which fields condition amounts or subtotals (for example, a customer discount or the cost of a material) are stored.
    If the same fields are used to store different condition amounts, the system totals the individual amounts.
    These condition amounts or subtotals are used as a starting point for further calculations. You may, for example, want a subtotal of all the discounts included in the pricing of a sales order.
    Requirement:
    It is a routine that is written by an ABAP consultant according to the business requirement.
    By defining Requirement in condition technique we can restrict the access of condition type.
    To understand the concept, we will take the example of the Rebates. Rebates are to be included during the billing document processing and not in the sales document processing. As rebates are given on the delivered quantity and not on the ordered quantity (in case of cut-off period for rebates).
    For rebates we use the condition types BO01 to BO05, and in the Requirement column we give the value 24 which is "Only in Billing Document".
    This Requirement will ensure that these condition types will appear only during the billing document processing.
    If new Requirements are to be defined we follow the procedure given below.
    Go to T.Code: VOFM. - Maintain Requirements & Formulas
    Click on the "Requirements" in the top menu and then click on "pricing".
    We have a list of requirements, we can ask ABAP consultant to create new requirement based on the client requests.
    And we assign the application type like V - Sales/Distribution etc.
    AltCty - Condition formula for alternative calculation type:
    It is again a Routine that is written by ABAP Consultant.
    It is an alternative formula for the condition type that can be used instead of standard formulas.
    For example, let us take the Profit Margin which can be both + / - , so here this routine will help us in generating the value which can be either + or -. Profit margin is not a condition type so it cannot be classified as +ve or -ve in the V/06.
    Ex.: 950 0 Profit Margin 11.
    So we assign 11 - Profit Margin.
    If new routines are to be defined we follow the procedure given below.
    Go to T.Code: VOFM. - Maintain Requirements & Formulas
    Click on the "Formulas" and then on the "Condition Values".
    We have a list of routines, we can ask ABAP consultant to create new routines based on the client requests.
    And we assign the application type.
    AltCBV - Alternative formula for condition base value:
    Formula for determining the condition basis as an alternative to the standard.
    It is again a Routine that is written by ABAP Consultant.
    It is used as a basis to calculate value of the condition type instead of using it from the "FROM" column.
    Ex.: Freight - KF00.
    Freight is calculated based on weight, volume etc. and not on the base price. In pricing there is no entry of weight from which the value can be referred like we do for discounts using base price. We have to get the value from the Material master.
    In this column we can mention the value as 12 - Gross Weight or 13 - Net Weight.
    During pricing, the system will consider the value that is mentioned in this column and determine the freight based on this value.
    Suppose we have Net weight: 100 kgs and Gross Weight: 150 kgs. And if we mention 13 in this column then the Freight condition KF00 will be calculated using the weight as 100 kgs.
    AcyKy - Account Key/ Accrls - Accruals:
    The values of the Sales Revenues, Sales Deductions, Freight Revenues, Tax Revenues, and Rebate Accruals etc. are going to be posted in the respective G/L accounts in Fi Module.
    In order to do this we assign account keys/ accruals to the different condition types based on their classification. The classification shown below.
    ERB Rebate sales deduct.
    ERF Freight revenue
    ERL Revenue
    ERS Sales deductions
    ERU Rebate accruals
    For Ex.,
    For all Price condition types like PR00 etc. we assign ERL - Revenue.
    For all Discount condition types like K004, K005 etc. we assign ERS - Sales Deductions.
    For all Freight condition types KF00 etc. we assign ERF - Freight Revenues.
    For all Rebates condition types BO01 to BO05 we assign in Account key ERB - Rebates Sales deductions and for Accruals ERU - Rebate Accruals.
    This account keys and accruals are in turn assigned to respective G/L accounts. So the system posts respective values in respective G/L accounts in Fi-Co Module.
    This also one of the areas of SD - Fi Integration. SD consultants assign the account keys and Fi Consultants assign the respective G/L accounts in T.Code:VKOA.
    or
    Hi,
    Pricing Procedure in MM
    The steps are:
    SPRO->MM->Purchasing->Conditions->Define Price dertermination process
    1. Define Condition Table:
    2.Define Acces Sequence,
    3.Define Condition Type,
    4.Define Claculatin Schema,
    5.Assign Calulation Schema,Acces Sequence and Condition Type,
    6.Define Schema Group Of Vendor,
    7. Define Schema Group Of Purchasing Organisation,
    8.Assign Schema Group Of Vendor to Purchasing Organisation,
    9.Assignment of Schema Group Of Vendor ,Schema Group Purchasing Organisation and Calculation Schema.
    10.Assign Vendor to Schema Group Of Vendor (XK02)
    11.Maintain Condition record(MEK1)
    Edited by: MANI ROOPA SD/MM on Apr 17, 2008 8:44 AM

  • Fetching prices from price list without condition technique

    Hi,
    I have a situation where i need to create a price list of materials which will not be used in my regular sales process pricing.
    I would require these prices to send the data to an external interface.
    As per my understanding the price list is used to get the customer specific prices and will be used in sales processing for automatic pricing. Kindly let me know how to use the price list without using condition technique.
    As i need to create a condition table, Access sequence, condition type to use the price lists, kindly suggest how to avoid the regular process and directly fetch the price of the material from the price list.
    Is this possible, if so do let me know the steps.
    Regards,
    K.Byla

    hi,
    this is to inform you that,
    PRICE LIST:
    it is applicable for a list of Customer's which are under the same group and share same pricing requriments.
    With out using Condiiton Technique we are not able to do anything.
    this is one of the important field which plays a very important role in pricing determination through CONDITION RECORDS.
    you can go through PRICING REPORT, even this does not give any solution to this issue.
    you can go for ENHANCEMENT, by creating a Z table with the fields:
    KSCHL, AMOUNT & OTHER fields into condideration.
    or
    use SM30 and update into the tables - which is not suggested.
    please test and confirm.
    HOPE THIS CLEARS your issue.
    balajia

  • MM - Purchasing Information Record/Pricing Condition

    Hello MM world,
    I'm taking this opportunity to log an issue I can't find an answer for and I would appreciate to know if someone out there would share his/her knowledge with me.
    So here's the question:
    I'm trying to determine an additional pricing condition type (discount) during the creation of a purchasing info record (me11).  The default PB00 gross price condition type is automatically proposed.  Attached to that condition type, you can indicate a pricing schema/procedure that has what they refer to as ‘condition supplements’.  The condition supplements pricing schema looks like an ordinary pricing procedure, however, SAP has confirmed that condition technique or access sequence determination does not work within the info record due to conflicting validity period between the info record and the additional pricing condition types.  So, what I am wanting to do is write both a requirement and alternative condition routine for the ZPIR condition to calculate the discount amount.  This will work fine, however we can only hit the routines IF the ZPIR condition supplement is automatically proposed.  If the condition type is presented, we can hit the routines without a problem…..the challenge is, we cannot figure out how to automatically propose the condition supplements, in our case ZPIR, without clicking the icon  during create.
    So, what I am wondering is if it is possible to write something in the requirement or alt condition routine attached to PB00 to programmatically add ZPIR to the info record, which would then invoke the requirement and alt condition routine that would determine the discount value.
    Or is there anything else we can do to make this work?
    Thanks a lot, I appreciate any input.
    Mo

    Hi Mo Arabat,
                       Looks good .Once agarin check up your configuration throug this link.
    http://www.sap-img.com/materials/steps-for-mm-pricing-procedures.htm
    Cheers
    Hareesha k

  • Condition techniques/ TAX Vat

    Hello Sapients
    We have a sales company in Europe, and we are selling goods in multiple european union countries.
    Now we have just started selling goods in couple of other EU Countries. I need to configure Tax (VAT) for those transactions. I have Tax codes that I need to create. I know I can create new tax codes using FTXP. But I need to know who what other configuration I need to do. I am not SD consultant so I do not have good idea on condition technique. We also do not have any SD person in ur team, so i need to do that.
    Can somebody please send my steps on configuring this new tax codes, with some explanations.
    Thank you
    naman

    Hi,
    Steps:
    Creation of pricing procedure Steps:
    (1) V/03 = Create condition table
    (2) V/07 = Create access sequence
    (3) V/06 = Define condition type
    (4) V/08 = Define pricing procedure
    (5) OVKK = Define pricing procedure determination
    (6) VK11 = Maintain condition records
    Explanation:
    in V/06 you need to create a condition type for VAT.
    and Access sequence according to the requirement. and see that the same will be taken in the Condtion tables.
    Add this condition type in the pricing procedure.
    Maintain the condition record for the same.
    FTXP: create the tax code for the same.
    Pricing is the combination of creating correct pricing procedures that map the business needs and processes such as
    correct pricing and discounting, and keeping to the legal requirements placed on the business, such as adhering to
    the tax laws of the respective country.
    A pricing procedure consists of a list of condition types in defined orders, such as price, less (u2013) discount, plus
    tax. Some controls exist in the pricing procedure.
    Pricing is the calculation of costs (for internal purpose) and revenues (for external purpose) by following tax class
    of a particular country.
    The pricing procedure is also used in account determinations. This determines the general ledger (GL) accounts to
    which type prices, discounts, and taxes must be posted. The condition types in the pricing procedure are linked to an
    account key. This key in turn is linked to the GL Accounts. This shows the integration between the pricing in the
    invoice and the Financial Accounting (FI) Module.
    Best Regards
    SRI

  • Pricing condition without posting to accounting

    Hello,
    Currently the system config is:
    AR00  (discount)  = 50
    EWT (Tax statistical) - 10% = -5  ( needs to be statistical as per SAP)
    Total Credit   = 50 ( Pricing didnt take EWT )
    Pricing copied into Biling and posted correcty into Accounting
    We want to copy EWT value into a dummy cond called Z000
    Step 10   AR00    (discount)  == 50
    Step  50  EWT (Tax statistical - 10%)  = -5
    step 80    Z000 (copy of EWT) = 50 to 50  = 5 ( but we want this to be non statistical and at the same time no accounting key and no accrual key) - so that the value doesnt get copied into accounting
    Step 100   Total Credit = 45 (This is correct as per pricing ) and make sense for the Cust Ser Rep.
    Can any one help on how to achieve the Z000 condition technique in pricing w/o having account key and accrual key? Is it possible
    Does this make sense in FI as the EWT tax condition is already getting posted correctly in acoounting and we didnt want to touch it.
    So we are trying to achieve this if possible by having no accounting entry? is it possible
    Thanks for the help
    Points will be awarded for the help
    Regards
    SK

    Hello Anupam,
    Actually the EWT condition is posting the values correctly into accounting.
    Know for me to caculate the net value and populate it in the netvallue field I need the condition to be non statistical.
    If I make it non statistical, it give me a currency error and I check SAP OSS and they said that EWT condition in SD has to be statistical.
    SO know the option left is replicate this value into a condition which doesnt post to accoutning so that the pricing will pick it up and update the net value. But remember no posting to accoutning as my statistical condition is already doing it.
    This being said was trying to check if we can have condition without accoutning or accrual key or if we need to have somehting then how can we make sure that they dont post to accoutning.
    Thanks
    SK

  • What is a condition technique?

    Hai Guys,
       Do help me out in getting informations about the
       following.
    What is a condition technique?
    detailed answers or links for this pls...
      Thanku
      Regards
      Jino

    Hi,
    A hierarchy of components that define data combinations designed to trigger an action.
    The constellations defined by SAP and the customers are searched for according to a specific hierarchy.
    The condition technique is used, for example, in pricing, account determination and messaging.
    most of the saps functionalites use condition technique to get the value or determiantion of particular functionalities like price of a good , free goods, etc they all use condition technique.
    it is nothing but mainataining of
    1) condition records of a condition type
    2)creating of condition types like PR00,K004,k005 etc
    3)creating and assignning an access sequnce to a condition type
    4)placing the condition types in a procedure
    5)determination or assigning a procedure
    all the above 5 steps constitutes as a condition technique
    Please check this link also.
    Regards,
    Rakesh
    http://www.sapscene.com/sapscene/condition.htm

  • Functions which uses condition technique in SD

    Hai Guys,
       Do help me out in getting informations about the
       following.
    pls tell the functions which uses condition technique in SD
    detailed answers or links for this pls...
      Thanku
      Regards
      Jino

    Hi Jino,
    ntroduction to the Condition Technique Locate the document in its
    Use
    This section describes the elements within the condition technique. It is organized to reflect the likely sequence of events that you go through when you implement pricing in Customizing. The standard R/3 System includes predefined elements for routine pricing activities. For example, the standard system includes condition types for basic pricing elements, such as material prices, customer and material discounts, and surcharges such as freight and sales taxes. In the case of each element, you can use the standard version, modify the standard version, or create entirely new definitions to suit your own business needs. The sequence of activities is generally as follows:
       1. Define condition types for each of the price elements (prices, discounts, and surcharges) that occur in your daily business transactions.
       2. Define the condition tables that enable you to store and retrieve condition records for each of the different condition types.
       3. Define the access sequences that enable the system to find valid condition records.
       4. Group condition types and establish their sequence in pricing procedures.
    For more information about implementing and customizing pricing in sales order processing, see Customizing for Sales and Distribution.
    For a more technical description of how the condition technique works, see the Business Workflow documentation for Message Control.
    Elements Used in the Condition Technique
    Condition Types
    Condition Tables
    Access Sequences
    Pricing procedures
    Condition Types Locate the document in its SAP Library structure
    Use
    A condition type is a representation in the system of some aspect of your daily pricing activities. For example, you can define a different condition type for each kind of price, discount or surcharge that occurs in your business transactions.
    Example
    Example of a Condition Type
    You define the condition type for a special material discount. You specify that the system calculates the discount as an amount (for example, a discount of USD 1 per sales unit). Alternatively, you can specify that the system calculates the discount as a percentage (for example: a 2% discount for orders over 1,000 units). If you want to use both possibilities, you must define two separate condition types. The following figure illustrates how condition types can be used during pricing in a sales document.
    This graphic is explained in the accompanying text
    In the example in the preceding figure, two discounts apply to the item in the sales order. The first discount is a percentage discount based on the quantity ordered. The second discount is a fixed discount based on the total weight of the item.
    Note
    You determine the calculation type for a condition type in Customizing. This determines how the system calculates prices, discounts and surcharges for a condition. When setting up condition records, you can enter a different calculation type than the one in Customizing. At present all available calculation types are permitted. The field ‘Calculation type’ can however not be accessed if this field is left empty. After the data release has been printed, if the field has not been completed manually, the proposal is automatically taken from Customizing. After this it is no longer possible to make manual changes.
    If you use different calculation types for what are otherwise the same conditions (for example, percentage, as a fixed amount or quantity-dependent), you do not have to define different condition types in Customizing. You can set a different calculation type when maintaining the individual condition records.
    Condition Types in the Standard R/3 System
    The standard system includes, among many others, the following predefined condition types:
    Condition type
    Description
    PR00
    Price
    K004
    Material discount
    K005
    Customer-specific material discount
    K007
    Customer discount
    K020
    Price group discount
    KF00
    Freight surcharge (by item)
    UTX1
    State tax
    UTX2
    County tax
    UTX3
    City tax
    Creating and Maintaining Condition Types
    You can change and maintain condition types provided in the standard version of the SAP R/3 System or you can create new condition types to suit the needs of your own organization. You create and maintain condition types in Customizing.
    To reach the condition type screen from the initial Customizing screen for Sales and Distribution:
       1. Basic Functions
          ® Pricing ® Pricing Control ® Define condition types.
          A dialog-box appears, listing the transaction options. Select the corresponding transaction for defining the condition types.
       2. In the Conditions: Condition Types view, you can change existing condition types or create new ones.
    Leaving content frame
    Condition Tables Locate the document in its SAP Library structure
    Use
    A condition table defines the combination of fields (the key) that identifies an individual condition record. A condition record is how the system stores the specific condition data that you enter in the system as condition records. For example, when you enter the price for a product or a special discount for a good customer, you create individual condition records.
    Example
    Example of a Condition Table
    A sales department creates condition records for customer-specific material prices. The standard R/3 System includes condition table 005 for this purpose. The key of table 005 includes the following fields:
    Sales organization
    Distribution channel
    Customer
    Material
    The first two fields identify important organizational data and the last two fields express the relationship between customers and specific materials. When the sales department creates a condition record for a material price or discount that is specific to one customer, the system automatically uses condition table 005 to define the key and store the record.
    The following figure illustrates the connection between the condition table and the subsequent condition records.
    This graphic is explained in the accompanying text
    Condition Tables in the Standard Version
    The standard system includes predefined condition tables and specifies them for each access in each predefined access sequence.
    Creating or Maintaining Condition Tables
    You can change and maintain the condition tables in the standard system. You can also create new condition tables to meet the needs of your own organization. You create and maintain condition tables in Customizing.
    From the initial screen of Customizing for Sales and Distribution, you reach the condition table screens by choosing Basic functions ® Pricing ® Pricing Control ® Define condition tables. Then select the mode you want to work with (create, change, display).
    Information About Fields
    The fields that you choose to make up the key are called the selected fields. The fields from which you can make your selection are called the allowed fields.
    Selected Fields
    The preceding figure shows the fields that make up the key for condition table 005 (the table for customer/material condition records in Sales). The selected fields show organizational data, such as Sales organization.The fields Customer and Material define the relationship between a particular customer and material.
    Field Catalog (Allowed Fields)
    When you select fields for the key, you must choose the fields from the list of allowed fields.
    Making Changes to Condition Tables
    You can make limited changes to existing condition tables. For example, you can change the name of the table or the format of the fast entry screens for the condition records. (Fast entry screens are screens where you can quickly, on a single screen, create and maintain the condition records that refer to the condition table).
    Format of a Fast-Entry Screen
    The screen consists of header and item lines. Each item line represents a separate condition record. The header lines include the fields that are general to all item lines. When deciding on the format of the fast-entry screen, you can determine whether each field in the key appears as a line in the header or as an item line.
    Changing the Format of a Fast-Entry Screen
    To change the format of the Fast-Entry screen, choose F6 (Technical View) on the screen where you create or maintain a condition table.
    When you determine the format, you have the following possibilities:
    If you want the...
    Do the following...
    Field to appear as a header line
    Leave the line field blank
    Field to appear as an item
    Mark the line field
    Text for an item line to appear
    Mark the text field
    After you make changes to a condition table, choose F16 Generate) to regenerate the table.
    Creating a New Condition Table
    You can create new condition tables to meet the pricing needs of your organization. When you create a new condition table, you select a combination of fields from the list of allowed fields. The selected fields define the key for the subsequent condition records.
    Before you select the fields for the key, there are two things to consider:
    The sequence (or hierarchy) of the fields
    Which fields you want to appear in the header and item areas of the corresponding fast-entry screens
    Important Fields
    In sales, the fields you should take into consideration are Sales organization and Distribution channel. The sales organization is nearly always used as a criteria in pricing, because different sales organizations often want to use their own prices, discounts, and surcharges. If you use the sales organization as a criterion in pricing, you should also use the distribution channel. If you do not want to establish different prices, discounts, and surcharges for each distribution channel, use the field anyway. In Customizing for Sales, you can use one distribution channel as a reference for all others (thereby sharing the same pricing data).
    Deciding the Sequence of Fields
    The order of the fields in a condition table affects the performance of the system during pricing. Two general guidelines will help you create an efficient condition table:
       1. If you select fields that are connected to the structure of your organization (for example, sales organization and distribution channel), assign the fields according to the level of general applicability: Put the most general field, for example, the sales organization in the highest position and the most specific field in the lowest.
       2. After organizational fields, place fields from the document header before those that come from the item level. (For example, Customer comes before Material)
    After you have selected the fields for the key on the screen where you maintain and define condition tables, choose F16 Generate to generate the table in the system. Generation prepares the condition table for storing condition data.
    Access Sequences Locate the document in its SAP Library structure
    Use
    An access sequence is a search strategy that the system uses to find valid data for a particular condition type. It determines the sequence in which the system searches for data. The access sequence consists of one or more accesses. The sequence of the accesses establishes which condition records have priority over others. The accesses tell the system where to look first, second, and so on, until it finds a valid condition record. You specify an access sequence for each condition type for which you create condition records.
    Note
    There are some condition types for which you do not create condition records (header discounts that you can only enter manually, for example). These condition types do not require an access sequence.
    ExampleA sales department may offer customers different kinds of prices. The department may create, for example, the following condition records in the system:
    A basic price for a material
    A special customer-specific price for the same material
    A price list for major customers
    During sales order processing, a customer may, in theory, qualify for all three prices. The access sequence enables the system to access the data records in a particular sequence until it finds a valid price. In this example, the sales department may want to use the most favourable price for a certain customer. For this reason, it ensures that the system searches for a customer-specific price. The following figure shows how the system searches for the relevant record.
    This graphic is explained in the accompanying text
    Access Sequences in the Standard R/3 System
    The standard R/3 System contains access sequences that are predefined for each of the standard condition types. The names of the access sequences often correspond to the condition types for which they were designed. For example, the access sequence for a material discount (condition type K004) is also called K004.
    Creating and Maintaining Access Sequences
    You create and maintain access sequences in Customizing. For more information, see the online Implementation Guide for Sales and Distribution.
    To reach the access sequence screen, go to the initial screen for Sales and Distribution Customizing and choose:
       1. Basic Functions
          ® Pricing ® Pricing Control ® Define access sequences
    Select the transaction that you want to execute (Maintain access).
    Leaving content frame
    Pricing Procedures Locate the document in its SAP Library structure
    Use
    The primary job of a pricing procedure is to define a group of condition types in a particular sequence. The pricing procedure also determines:
    Which sub-totals appear during pricing
    To what extent pricing can be processed manually
    Which method the system uses to calculate percentage discounts and surcharges
    Which requirements for a particular condition type must be fulfilled before the system takes the condition into account
    Example
    Example of a Pricing Procedure
    If a sales department processes sales orders for a variety of foreign customers, the department can group the customers by country or region. A pricing procedure can then be defined for each group of customers. Each procedure can include condition types that determine, for example, country-specific taxes. In sales order processing, you can specify pricing procedures for specific customers and for sales document types. The system automatically determines which procedure to use.
    Pricing Procedures in the R/3 System
    The standard system contains pre-defined pricing procedures, which contain frequently used condition types along with their corresponding access sequences. You can, of course, modify these procedures or create your own from scratch.
    Creating and Maintaining Pricing Procedures
    You create or maintain pricing procedures in Customizing for Sales. For more information on creating pricing procedures, see the online Implementation Guide for Sales and Distribution.
    To reach the pricing procedure screen from SD Customizing:
       1. Choose Basic Functions
       2. ® Pricing ® Pricing control ® Define and assign pricing procedures.Select the transaction that you want to execute.
    Thanks&Regards,
    Phani,
    Points If helpful.

  • Free Goods with pricing condition (Urgent)

    Hi MM Expert,
    we have a probleme with free goods. because in PO item of free goods, there is no condition management (no Invoice entry) but we should manage some pricing condition for the item (spécifique condition relative to transport, ...).
    so are the any way of managing the expenses annex condition(transport charge, customs clearance charges,…) for the free goods in an item of Purchase Order ??
    thank's in advance.
    Said

    Hi,
    This is not possible to maintain the condition s for free goods because while creating the PO for free goods by selecting the free goods tad at item level, There is no Condition tab at Item detail .means you are not able to mainatin conditions.
    If you want to maintain the conditions ,you have to treat as a Normal scenarios .
    Regards
    Sanjay L

  • How to change pricing Conditions in Sales order in change sales order bapi

    Hi Experts,
    How to change pricing Conditions in Sales order in change sales order bapi.
    I have used the 2 function modules bapi-changesalesorder and sd salesdocument change, But it is creating the new record , instead of changing the existing one, Could please assist regarding the same
    Thanks in Advance .
    NLN

    HI NLN
      I have just tried on my system and managed to overwrite the existing price by passing the following parameters.
      <b>Import Paramters:</b>
         SALESDOCUMENT - Sales Document Number
         ORDER_HEADER_INX - UPDATEFLAG as <b>'U'</b>.
         LOGIC_SWITCH - Import Structure - Pass 'X' to LOGIC_SWITCH-COND_HANDL.
      <b>Tables:</b>
         CONDITIONS_IN - ITM_NUMBER,
                         COND_COUNT, -> Condition counter same as KONV-ZAEHK generally it is <b>'01'</b>
                         COND_TYPE,
                         COND_VALUE,
                         CURRENCY.
         CONDITIONS_INX - ITM_NUMBER,
                          COND_COUNT,
                          COND_TYPE,
                          UPDATEFLAG as <b>'U'</b>,
                          CURRENCY.
       Hope i have clarified your query.
    Kind Regards
    Eswar

  • How to hide the pricing conditions specified in pricing procedure of sd.

    dear friends,
    my situation is to hide the conditions specified in the pricing procedure. so that it is not viewed by the some users.can you please tell me how to hide the conditions. so some of the persons, who are having authorization to see the conditions , will be able to see the pricing conditions.
    can you please suggest me how to do this.
    regards,
    g.v.shivakkumar

    Authorisation  issues viz. Role Impementations
    Hide Condition Records Line Item & Header Wise from all the transactions QK / So /  P.I. / Enquiry / Invoice etc. for specific user grps. - in CRETATE / AMEND / DISPLAY / REPORTS all
    Only Display the fields
    regards,
    g.v.shivakkumar

  • Unable to display the pricing conditions for a product.

    Hi All,
        I have created a product with help of function modules.The problem is that i am able to populate the pricing conditions data into internal table,but the pricing conditions  is not being displayed in the Masterdata->Products-> Maintain Products screen. Can anyone suggest me in this regards.Is there any function module to be used? or any other procedure to be followed for the pricing conditions to be dispalyed? If any sample code also please provide me.Please respond soon it is an Urgent Requirement. Points will be awarded for useful answers.
    Thanks in Advance,
    Shwetha.

    Hi,
    The pricing in SD and MM is a separate module like thing and is maintained for different products based on the Condition records.
    The basic Pricing Procedure consists of Condition  Types, Condition Records, Accesss Sequences and condition tables.
    Generally with respect to all sales and purchase documents the pricing is maintained in KONV  and KONP tables based on the different condition types.
    reward points if useful
    regards,
    ANJI

  • Price and Pricing conditions are not copied to PO for a line item !!

    Hi
    I have created a PO w.r.t a PR which has only one line item.
    Now, I add another line item to this existing PO, i get an error message that the Price and Pricing conditions are not copied.
    How do i rectify this error !!
    Where might be the link for this Price and Pricing conditions to get copied in to this PO ??
    MaruthiRam

    What kind of PR and in the PO same material you enter for new line or new material and do you have any funcitonal authorization assigned o your user id
    please reply

  • Change Pricing Condition for an item with CRM_ORDER_MAINTAIN

    Hi community,
    I try to change an existing condition with the function module crm_order_maintain.
    Everything looks fine, no error no dump, but no success
    The condition stays the same!
    Can anybody find a solution for this?
    Heres my report so far:
    *& Report  ZTEST_PRICING2
    REPORT  ztest_pricing2.
    DATA: lt_guid      TYPE crmt_object_guid_tab,
          lt_item      TYPE crmt_object_guid_tab,
          lt_saved     TYPE crmt_return_objects,
          lt_pridoc    TYPE crmt_pric_cond_t,
          ls_pridoc    TYPE crmt_pric_cond,
          lt_pricom    TYPE crmt_pridoc_comt,
          ls_pricom    TYPE crmt_pridoc_com,
          lt_header    TYPE crmt_orderadm_h_comt,
          lt_input     TYPE crmt_input_field_tab,
          ls_input     TYPE crmt_input_field,
          ls_input_fn  TYPE CRMT_INPUT_FIELD_NAMES,
          ls_cond_chg  TYPE prct_cond_external_change,
          ls_cond      TYPE PRCT_COND_DU,
          lt_pricing_i TYPE CRMT_PRICING_I_WRKT.
    PARAMETERS: lv_head TYPE crmt_object_guid DEFAULT 'C4C61C4E35DDF306E10000000A024089'.
    PARAMETERS: lv_item TYPE crmt_object_guid DEFAULT '09C71C4E35DDF306E10000000A024089'.
    PARAMETERS: lv_kbetr TYPE prct_cond_rate DEFAULT '100'.
    INSERT lv_head INTO TABLE lt_guid.
    INSERT lv_item INTO TABLE lt_item.
    CALL FUNCTION 'CRM_ORDER_READ'
      EXPORTING
        it_header_guid                    = lt_guid
        it_item_guid                      = lt_item
    *   IV_MODE                           =
    *   IV_ONLY_SPEC_ITEMS                =
    *   IT_REQUESTED_OBJECTS              =
    *   IV_NO_AUTH_CHECK                  =
    *   IT_ITEM_USAGE_RANGE               =
    *   IV_SUBITEM_DEPTH                  = -1
    *   IT_OBJECT_FILTER                  =
    *   IV_ONLY_CHANGED_OBJ               = FALSE
    *   IV_STATUS_H_CHECK_RELEVANCE       = FALSE
      IMPORTING
        et_pridoc                         = lt_pridoc
        et_pricing_i                      = lt_pricing_i
    * CHANGING
    *   CV_LOG_HANDLE                     =
    EXCEPTIONS
       document_not_found                = 1
       error_occurred                    = 2
       document_locked                   = 3
       no_change_authority               = 4
       no_display_authority              = 5
       no_change_allowed                 = 6
       OTHERS                            = 7.
    IF sy-subrc <> 0 AND lt_pridoc IS NOT INITIAL.
      WRITE: / 'ERROR'.
      EXIT.
    ENDIF.
    READ TABLE lt_pridoc INDEX 1 INTO ls_pridoc.
    IF sy-subrc <> 0.
      WRITE: / 'ERROR'.
      EXIT.
    ENDIF.
    READ TABLE ls_pridoc-pric_cond INTO ls_cond WITH KEY kschl = 'PB00'.
    IF sy-subrc <> 0.
      WRITE: / 'ERROR'.
      EXIT.
    ENDIF.
    ls_input-ref_guid   = lv_head.
    ls_input-ref_kind   = 'A'.
    ls_input-objectname = 'PRIDOC'.
    ls_input_fn-fieldname = 'WAERS'.
    INSERT ls_input_fn INTO TABLE ls_input-field_names.
    ls_input_fn-fieldname = 'KBETR'.
    INSERT ls_input_fn INTO TABLE ls_input-field_names.
    INSERT ls_input INTO TABLE lt_input.
    ls_pricom-ref_guid   = lv_head.
    ls_pricom-ref_kind   = 'A'.
    *ls_pricom-PRICING_TYPE  = 'B'.
    *ls_pricom-pricing_procedure = 'ZZMTA'.
    ls_pricom-pric_cond[] = ls_pridoc-pric_cond[].
    MOVE-CORRESPONDING ls_cond TO ls_cond_chg.
    ls_cond_chg-waers = 'EUR'.
    ls_cond_chg-kbetr = lv_kbetr.
    INSERT ls_cond_chg INTO TABLE ls_pricom-cond_change.
    APPEND ls_pricom TO lt_pricom.
    CALL FUNCTION 'CRM_ORDER_MAINTAIN'
      EXPORTING
        it_pridoc         = lt_pricom
      CHANGING
    *    ct_orderadm_h     = lt_header
        ct_input_fields   = lt_input
      EXCEPTIONS
        error_occurred    = 1
        document_locked   = 2
        no_change_allowed = 3
        no_authority      = 4
        OTHERS            = 5.
    IF sy-subrc <> 0.
      EXIT.
    ENDIF.
    CALL FUNCTION 'CRM_ORDER_SAVE'
      EXPORTING
        it_objects_to_save         = lt_guid
      IMPORTING
        et_saved_objects           = lt_saved
    *   ET_EXCEPTION               =
    *   ET_OBJECTS_NOT_SAVED       =
    EXCEPTIONS
       document_not_saved         = 1
       OTHERS                     = 2.
    IF sy-subrc EQ 0.
      COMMIT WORK AND WAIT.
    ELSE.
      ROLLBACK WORK.
    ENDIF.
    regards
    Markus

    Hello Jordi,
    The example below is whereby i was trying to copy all the pricing condition on one document to another and deleting what's not present on the source document.
    You can used this piece of code to adapt your requirement.
    CALL FUNCTION 'ZCRC_FM_COPY_PRICE_COND_ALL'
              EXPORTING
    id_object_guid_src    = <fs_el_con_guid>
    id_object_guid_dest = <fs_el_so_guid>
    id_commit                  = abap_false
              EXCEPTIONS
    not_allowed         = 1
    error_occured     = 2
    OTHERS                 = 3.
      PERFORM f_recup_donnees USING     id_object_guid_src
                                                              id_object_guid_dest.
    PERFORM f_modif_condition_prix USING id_object_guid_src
                                                                                      id_object_guid_dest.
    PERFORM f_header_copy_pricing using id_object_guid_src
                                                                            id_object_guid_dest.
    FORM f_recup_donnees   USING      pd_object_guid_src TYPE crmt_object_guid
                                                                           pd_object_guid_dest TYPE crmt_object_guid.
      DATA:
         lt_header_guid        TYPE crmt_object_guid_tab.
      INSERT pd_object_guid_src  INTO TABLE lt_header_guid.
      INSERT pd_object_guid_dest INTO TABLE  lt_header_guid.
      CLEAR: gt_orderadm_i, gt_doc_flow.
      CALL FUNCTION 'CRM_ORDER_READ'
        EXPORTING
          it_header_guid       = lt_header_guid
        IMPORTING
          et_doc_flow          = gt_doc_flow            
          et_orderadm_i        = gt_orderadm_i
        EXCEPTIONS
          document_not_found   = 1
          error_occurred       = 2
          document_locked      = 3
          no_change_authority  = 4
          no_display_authority = 5
          no_change_allowed    = 6
          OTHERS               = 7.
      IF sy-subrc NE 0.
        RAISE error_occured.
      ENDIF.
    " F_RECUP_DONNEES
    FORM f_modif_condition_prix USING pd_guid_src TYPE crmt_object_guid
                                      pd_guid_dest TYPE crmt_object_guid.
      DATA : ld_pd_handle_src     TYPE prct_handle,
              ld_pd_handle_dest    TYPE prct_handle,
              lt_komv_print_src    TYPE prct_cond_print_t,
    lt_komv_print_dest   TYPE prct_cond_print_t,
              ls_komv_print_dest   LIKE LINE OF lt_komv_print_dest,
              ls_komv_print_src    LIKE LINE OF lt_komv_print_src,
              lt_cond_chg          TYPE prct_cond_print_t,
              lt_cond_chg_insert   TYPE prct_cond_print_t,
              ls_cond_chg          TYPE prct_cond_print,
              ls_cond_chg_tmp      TYPE prct_cond_print,
              ls_input_fields      TYPE crmt_input_field,
              lt_input_fields      TYPE crmt_input_field_tab.
      DATA : bal_log         TYPE balloghndl,
             lt_item_ret     TYPE prct_item_ret_t,
             lt_cond_ret     TYPE prct_cond_print_t,
             ld_data_changed TYPE xfeld,
             gv_decimal      TYPE usdefaults-dcpfm,
             ld_lines        TYPE i,
             ld_ajout_cond   TYPE abap_bool.
      FIELD-SYMBOLS : <fs_orderadm_i_dest>  TYPE crmt_orderadm_i_wrk,
    <fs_orderadm_i_src>   TYPE crmt_orderadm_i_wrk,
                      <fs_cond_chg>         TYPE prct_cond_print,
    <fs_cond_chg_insert>  TYPE prct_cond_print.
    * Début Ajout CD1K904313-001.
      DATA: ld_guid_src  TYPE crmt_object_guid.
      FIELD-SYMBOLS: <fs_doc_flow>  TYPE crmt_doc_flow_wrk.
    * Début Ajout CD1K904313-001.
    * Verrouillage des documents source et destinataire
      PERFORM f_lock_document USING pd_guid_src.
      PERFORM f_lock_document USING pd_guid_dest.
    *Récupérer le pricing handle des documents
    * Document source
      CALL FUNCTION 'CRM_PRIDOC_GET_HANDLE_OW'
        EXPORTING
    iv_header_guid             = pd_guid_src
        IMPORTING
    ev_pd_handle               = ld_pd_handle_src
        EXCEPTIONS
    error_occurred             = 1
    handle_determination_error = 2
          orgdata_error              = 3
          OTHERS                     = 4.
      IF sy-subrc <> 0.
        RETURN.
      ENDIF.
    * Document destinataire
      CALL FUNCTION 'CRM_PRIDOC_GET_HANDLE_OW'
        EXPORTING
          iv_header_guid             = pd_guid_dest
        IMPORTING
          ev_pd_handle               = ld_pd_handle_dest
        EXCEPTIONS
          error_occurred             = 1
          handle_determination_error = 2
          orgdata_error              = 3
          OTHERS                     = 4.
      IF sy-subrc <> 0.
        RETURN.
      ENDIF.
    * A ne pas traiter les postes de type ZPDF
      DELETE  gt_orderadm_i WHERE itm_type = 'ZPDF'.
      LOOP AT gt_orderadm_i ASSIGNING <fs_orderadm_i_dest> WHERE header = pd_guid_dest.
        REFRESH : lt_komv_print_src,
                  lt_komv_print_dest,
    lt_cond_chg,
    lt_cond_chg_insert.
    * Début Modif CD1K904313-001.
    * Récupérer le guid de l'item liée au item destinataire.
        READ TABLE gt_doc_flow ASSIGNING <fs_doc_flow> WITH KEY objkey_b = <fs_orderadm_i_dest>-guid.
        CHECK sy-subrc EQ 0.
        ld_guid_src = <fs_doc_flow>-objkey_a.
    *    READ TABLE gt_orderadm_i ASSIGNING <fs_orderadm_i_src> WITH KEY header = pd_guid_src
    * number_int = <fs_orderadm_i_dest>-number_int.
    * Fin Modif CD1K904313-001.
    * Récupérer les pricing document
        IF sy-subrc EQ 0.
    *     Document source
          CALL FUNCTION 'PRC_PD_ITEM_SHOW'
            EXPORTING
              iv_pd_handle        = ld_pd_handle_src
    *         iv_item_no          = <fs_orderadm_i_src>-guid    "Supression CD1K904313-001
              iv_item_no          = ld_guid_src                 "Addition CD1K904313-001
            IMPORTING
              et_komv_print       = lt_komv_print_src
            EXCEPTIONS
              non_existing_handle = 1
              non_existing_item   = 2
              ipc_error           = 3
              OTHERS              = 4.
        ENDIF.
    *   Document destinataire
        CALL FUNCTION 'PRC_PD_ITEM_SHOW'
          EXPORTING
            iv_pd_handle        = ld_pd_handle_dest
            iv_item_no          = <fs_orderadm_i_dest>-guid
          IMPORTING
    et_komv_print       = lt_komv_print_dest
          EXCEPTIONS
            non_existing_handle = 1
            non_existing_item   = 2
            ipc_error           = 3
            OTHERS              = 4.
    * Modification et Suppression des conditions de prix
        LOOP AT lt_komv_print_dest INTO ls_komv_print_dest .
          CLEAR: ls_cond_chg,
                 ls_komv_print_src.
          MOVE-CORRESPONDING ls_komv_print_dest TO ls_cond_chg.
    * Rechercher la condition sur le document source
          READ TABLE lt_komv_print_src INTO ls_komv_print_src WITH KEY kschl = ls_komv_print_dest-kschl
    zaehk = ls_komv_print_dest-zaehk. "CD1K904313
          IF sy-subrc EQ 0.
            ls_cond_chg-kbetr_prt = ls_komv_print_src-kbetr_prt.
            ls_cond_chg-kwert     = ls_komv_print_src-kwert.
            ls_cond_chg-kinak     = ls_komv_print_src-kinak.
          ELSEIF ls_cond_chg-kschl IS NOT INITIAL.
            CLEAR ls_cond_chg.
            CONTINUE.
          ENDIF.
    *     Format décimal
          CASE gv_decimal.
            WHEN space.       "format N.NNN,NN
              REPLACE ALL OCCURRENCES OF '.' IN ls_cond_chg-kbetr_prt WITH ','.
            WHEN 'Y'.         "format N NNN NNN,NN
              REPLACE ALL OCCURRENCES OF '.' IN ls_cond_chg-kbetr_prt WITH ','.
          ENDCASE.
          INSERT ls_cond_chg INTO TABLE lt_cond_chg.
          CLEAR ls_cond_chg.
        ENDLOOP.
    * Ajout des conditions de prix
        LOOP AT lt_komv_print_src INTO ls_komv_print_src WHERE kschl IS NOT INITIAL.
          CLEAR: ls_cond_chg, ld_lines, ls_komv_print_dest, ls_cond_chg_tmp, ld_ajout_cond.
    * Vérifier la présence de la condition sur le document destinataire
          READ TABLE lt_komv_print_dest INTO ls_komv_print_dest WITH KEY kschl = ls_komv_print_src-kschl
    zaehk = ls_komv_print_src-zaehk. "CD1K904313.
          IF sy-subrc EQ 0.
            CLEAR: ls_cond_chg, ls_komv_print_dest.
            CONTINUE.
          ELSE.
            DESCRIBE TABLE lt_cond_chg LINES ld_lines.
            READ TABLE lt_cond_chg INTO ls_cond_chg_tmp INDEX ld_lines.
            IF sy-subrc EQ 0.
              ld_ajout_cond = abap_true.
              MOVE-CORRESPONDING ls_komv_print_src TO ls_cond_chg.
              ls_cond_chg-knumv     = ls_cond_chg_tmp-knumv.
              ls_cond_chg-kposn     = ls_cond_chg_tmp-kposn.
              ls_cond_chg-stunr     = ls_cond_chg_tmp-stunr + 10.
            ELSE.
              CLEAR: ls_cond_chg, ld_lines, ls_komv_print_dest, ls_cond_chg_tmp.
              CONTINUE.
            ENDIF.
          ENDIF.
    *     Format décimal
          CASE gv_decimal.
            WHEN space.             "format N.NNN,NN
              REPLACE ALL OCCURRENCES OF '.' IN ls_cond_chg-kbetr_prt WITH ','.
            WHEN 'Y'.               "format N NNN NNN,NN
              REPLACE ALL OCCURRENCES OF '.' IN ls_cond_chg-kbetr_prt WITH ','.
          ENDCASE.
    * Récupérer les nouvelles conditions qui seront ajouté au document destinataire
          IF ld_ajout_cond EQ abap_true.
            INSERT ls_cond_chg INTO TABLE lt_cond_chg_insert.
          ENDIF.
          INSERT ls_cond_chg INTO TABLE lt_cond_chg.
          CLEAR ls_cond_chg.
        ENDLOOP.
        CALL FUNCTION 'PRC_INT_ITEM_INPUT'
          EXPORTING
            iv_pd_handle        = ld_pd_handle_dest
            iv_item_no          = <fs_orderadm_i_dest>-guid
            it_cond_prt         = lt_cond_chg
            iv_bal_log          = bal_log
            iv_req_ret          = abap_true
            iv_req_cond_prt     = abap_true
          IMPORTING
            et_item_ret         = lt_item_ret
            et_cond_prt         = lt_cond_ret
            ev_data_changed     = ld_data_changed
          EXCEPTIONS
            non_existing_handle = 1
            non_existing_item   = 2
            ipc_error           = 3.
        IF sy-subrc = 0.
    *     En cas d'ajout de nouvelles conditions de prix, appeler le MF PRC_INT_ITEM_INPUT
    *     avec les montants
          IF lt_cond_chg_insert IS NOT INITIAL.
            REFRESH lt_cond_chg[].
            lt_cond_chg[] = lt_cond_ret[].
            LOOP AT lt_cond_chg_insert ASSIGNING <fs_cond_chg_insert>.
              READ TABLE lt_cond_chg ASSIGNING <fs_cond_chg> WITH KEY kschl = <fs_cond_chg_insert>-kschl.
              IF sy-subrc EQ 0.
                <fs_cond_chg>-kwert     = <fs_cond_chg_insert>-kwert.
                <fs_cond_chg>-kbetr_prt = <fs_cond_chg_insert>-kbetr_prt.
              ENDIF.
            ENDLOOP.
            REFRESH lt_cond_ret[].
            CALL FUNCTION 'PRC_INT_ITEM_INPUT'
              EXPORTING
                iv_pd_handle        = ld_pd_handle_dest
                iv_item_no          = <fs_orderadm_i_dest>-guid
                it_cond_prt         = lt_cond_chg
                iv_bal_log          = bal_log
                iv_req_ret          = abap_true
                iv_req_cond_prt     = abap_true
              IMPORTING
                et_item_ret         = lt_item_ret
                et_cond_prt         = lt_cond_ret
                ev_data_changed     = ld_data_changed
              EXCEPTIONS
                non_existing_handle = 1
                non_existing_item   = 2
                ipc_error           = 3.
          ENDIF.
    *   Publish event afin de sauvegarder les conditions de prix
          CALL FUNCTION 'CRM_EVENT_PUBLISH_OW'
            EXPORTING
              iv_obj_name = 'PRIDOC'
              iv_guid_hi  = pd_guid_dest
              iv_kind_hi  = 'A'
              iv_event    = 'SAVE'
            EXCEPTIONS
              OTHERS      = 1.
    *   As no order_maintain will follow implicitly and therefore no
    *   exec times for the events will be set, call CRM_ORDER_MAINTAIN
    *   without any parameters
    *   Then the exec time 'end of document' will be set and with the
    *   group logic also all exec times before
    *   But at least one object is needed in input_fields
    *   --> use PRIDOC
          ls_input_fields-ref_guid   = <fs_orderadm_i_dest>-guid.
          ls_input_fields-ref_kind   = 'B'.
          ls_input_fields-objectname = 'PRIDOC'.
          INSERT ls_input_fields INTO TABLE lt_input_fields.
          CLEAR ls_input_fields.
          CALL FUNCTION 'CRM_ORDER_MAINTAIN'
            CHANGING
              ct_input_fields   = lt_input_fields
            EXCEPTIONS
              error_occurred    = 1
              document_locked   = 2
              no_change_allowed = 3
              no_authority      = 4
              OTHERS            = 5.
        ENDIF.
      ENDLOOP.
    " F_MODIF_CONDITION_PRIX
    *& Form  F_LOCK_DOCUMENT
    * Verrouillage d'un document
    FORM f_lock_document  USING pd_guid TYPE crmt_object_guid.
      CONSTANTS : lc_orderadm_h TYPE  crmt_object_name  VALUE 'ORDERADM_H',
                  lc_orderadm_i TYPE  crmt_object_name  VALUE 'ORDERADM_I'.
      DATA: lv_process_mode      TYPE crmt_mode,
            lv_order_initialized TYPE crmt_boolean,
            lv_process_type      TYPE crmt_process_type,
            lv_already_locked    TYPE abap_bool.
      DATA: ls_admin_ui_status  TYPE crmt_admin_ui_status,
            ls_item_usage_range TYPE crmt_item_usage_range.
      DATA: lt_objects_to_read   TYPE crmt_object_guid_tab,
            lt_requested_objects TYPE crmt_object_name_tab,
            lt_item_usage_range  TYPE crmt_item_usage_range_tab,
            lt_locked_contract   TYPE crmt_object_guid_tab.
      INSERT pd_guid INTO TABLE lt_objects_to_read.
      INSERT lc_orderadm_h INTO TABLE lt_requested_objects.
      INSERT lc_orderadm_i INTO TABLE lt_requested_objects.
      ls_item_usage_range-sign  = 'E'.
      ls_item_usage_range-value = '02'.
      INSERT ls_item_usage_range INTO TABLE lt_item_usage_range.
    * LAM: Financing Options should be viewed in a separate screen:
      ls_item_usage_range-sign  = 'E'.
      ls_item_usage_range-value = '05'.   "Financing options
      INSERT ls_item_usage_range INTO TABLE lt_item_usage_range.
    *-> read document in change mode
      CALL FUNCTION 'CRM_ORDER_READ'
        EXPORTING
          it_header_guid       = lt_objects_to_read
          iv_mode              = 'B'
          it_requested_objects = lt_requested_objects
          it_item_usage_range  = lt_item_usage_range
        EXCEPTIONS
          document_not_found   = 1
          error_occurred       = 2
          document_locked      = 3
          no_change_authority  = 4
          no_display_authority = 5
          OTHERS               = 6.
      PERFORM enqueue_order IN PROGRAM saplcrm_order_ow IF FOUND
        USING pd_guid
              abap_false
              abap_false
              abap_false
    CHANGING sy-subrc
              lv_already_locked
              lt_locked_contract.
    " F_LOCK_DOCUMENT
    * Fin Ajout CD1K904074-001
    FORM f_header_copy_pricing  USING   pd_guid_src
    pd_guid_dest.
      DATA : ld_pd_handle_src     TYPE prct_handle,
              ld_pd_handle_dest    TYPE prct_handle,
              lt_komv_print_src    TYPE prct_cond_print_t,
    lt_komv_print_dest   TYPE prct_cond_print_t,
              ls_komv_print_dest   LIKE LINE OF lt_komv_print_dest,
              ls_komv_print_src    LIKE LINE OF lt_komv_print_src,
              lt_cond_chg          TYPE prct_cond_print_t,
              ls_cond_chg          TYPE prct_cond_print,
              ls_input_fields      TYPE crmt_input_field,
              lt_input_fields      TYPE crmt_input_field_tab.
      DATA : bal_log         TYPE balloghndl,
             lt_cond_ret     TYPE prct_cond_print_t,
             ld_data_changed TYPE xfeld,
             gv_decimal      TYPE usdefaults-dcpfm.
    * Verrouillage des documents source et destinataire
      PERFORM f_lock_document USING pd_guid_src.
      PERFORM f_lock_document USING pd_guid_dest.
    *  Récupérer le pricing handle des documents
    * Document source
      CALL FUNCTION 'CRM_PRIDOC_GET_HANDLE_OW'
        EXPORTING
          iv_header_guid             = pd_guid_src
        IMPORTING
          ev_pd_handle               = ld_pd_handle_src
        EXCEPTIONS
          error_occurred             = 1
          handle_determination_error = 2
          orgdata_error              = 3
          OTHERS                     = 4.
      IF sy-subrc <> 0.
        RETURN.
      ENDIF.
    * Document destinataire
      CALL FUNCTION 'CRM_PRIDOC_GET_HANDLE_OW'
        EXPORTING
          iv_header_guid             = pd_guid_dest
        IMPORTING
          ev_pd_handle               = ld_pd_handle_dest
        EXCEPTIONS
          error_occurred             = 1
          handle_determination_error = 2
          orgdata_error              = 3
          OTHERS                     = 4.
      IF sy-subrc <> 0.
        RETURN.
      ENDIF.
    *  * Récupérer les pricing document
    *  Document Source
      CALL FUNCTION 'PRC_PD_HEAD_SHOW'
        EXPORTING
          iv_pd_handle        = ld_pd_handle_src
        IMPORTING
          et_komv_print       = lt_komv_print_src
        EXCEPTIONS
          non_existing_handle = 1
          ipc_error           = 2
          OTHERS              = 3.
      CHECK sy-subrc EQ 0.
    *  Document Destinataire
      CALL FUNCTION 'PRC_PD_HEAD_SHOW'
        EXPORTING
          iv_pd_handle        = ld_pd_handle_dest
        IMPORTING
    et_komv_print       = lt_komv_print_dest
        EXCEPTIONS
          non_existing_handle = 1
          ipc_error           = 2
          OTHERS              = 3.
      CHECK sy-subrc EQ 0.
    *  * Modification et Suppression des conditions de prix
      LOOP AT lt_komv_print_src INTO ls_komv_print_src .
        CLEAR: ls_cond_chg,
               ls_komv_print_dest.
        MOVE-CORRESPONDING ls_komv_print_src TO ls_cond_chg.
    * Rechercher la condition sur le document source
        READ TABLE lt_komv_print_dest INTO ls_komv_print_dest WITH KEY kschl = ls_komv_print_src-kschl
    zaehk = ls_komv_print_src-zaehk.
        IF sy-subrc EQ 0.
          IF ls_komv_print_src-kbetr NE ls_komv_print_dest-kbetr.
            ls_cond_chg-kbetr_prt = ls_komv_print_src-kbetr_prt.
            ls_cond_chg-kwert     = ls_komv_print_src-kwert.
            ls_cond_chg-kinak     = ls_komv_print_src-kinak.
            CASE gv_decimal.
              WHEN space.       "format N.NNN,NN
                REPLACE ALL OCCURRENCES OF '.' IN ls_cond_chg-kbetr_prt WITH ','.
              WHEN 'Y'.         "format N NNN NNN,NN
                REPLACE ALL OCCURRENCES OF '.' IN ls_cond_chg-kbetr_prt WITH ','.
            ENDCASE.
          ENDIF.
        ENDIF.
        CLEAR ls_cond_chg-krech.
        INSERT ls_cond_chg INTO TABLE lt_cond_chg.
        CLEAR ls_cond_chg.
      ENDLOOP.
      CALL FUNCTION 'PRC_INT_HEAD_INPUT'
        EXPORTING
          iv_pd_handle        = ld_pd_handle_dest
          iv_bal_log          = bal_log
          it_cond_prt         = lt_cond_chg
          iv_req_ret          = abap_true
          iv_req_cond_prt     = abap_true
        IMPORTING
          et_cond_prt         = lt_cond_ret
          ev_data_changed     = ld_data_changed
        EXCEPTIONS
          non_existing_handle = 1
          ipc_error           = 2
          not_allowed         = 3
          OTHERS              = 4.
      CHECK sy-subrc EQ 0.
    *    *   Publish event afin de sauvegarder les conditions de prix
      CALL FUNCTION 'CRM_EVENT_PUBLISH_OW'
        EXPORTING
          iv_obj_name = 'PRIDOC'
          iv_guid_hi  = pd_guid_dest
          iv_kind_hi  = 'A'
          iv_event    = 'SAVE'
        EXCEPTIONS
          OTHERS      = 1.
    *   As no order_maintain will follow implicitly and therefore no
    *   exec times for the events will be set, call CRM_ORDER_MAINTAIN
    *   without any parameters
    *   Then the exec time 'end of document' will be set and with the
    *   group logic also all exec times before
    *   But at least one object is needed in input_fields
    *   --> use PRIDOC
      ls_input_fields-ref_guid   = pd_guid_dest.
      ls_input_fields-ref_kind   = 'A'.
      ls_input_fields-objectname = 'PRIDOC'.
      INSERT ls_input_fields INTO TABLE lt_input_fields.
      CLEAR ls_input_fields.
      CALL FUNCTION 'CRM_ORDER_MAINTAIN'
        CHANGING
          ct_input_fields   = lt_input_fields
        EXCEPTIONS
          error_occurred    = 1
          document_locked   = 2
          no_change_allowed = 3
          no_authority      = 4
          OTHERS            = 5.
    ENDFORM.
    FORM f_header_copy_pricing  USING   pd_guid_src
    pd_guid_dest.
      DATA : ld_pd_handle_src     TYPE prct_handle,
              ld_pd_handle_dest    TYPE prct_handle,
              lt_komv_print_src    TYPE prct_cond_print_t,
    lt_komv_print_dest   TYPE prct_cond_print_t,
              ls_komv_print_dest   LIKE LINE OF lt_komv_print_dest,
              ls_komv_print_src    LIKE LINE OF lt_komv_print_src,
              lt_cond_chg          TYPE prct_cond_print_t,
              ls_cond_chg          TYPE prct_cond_print,
              ls_input_fields      TYPE crmt_input_field,
              lt_input_fields      TYPE crmt_input_field_tab.
      DATA : bal_log         TYPE balloghndl,
             lt_cond_ret     TYPE prct_cond_print_t,
             ld_data_changed TYPE xfeld,
             gv_decimal      TYPE usdefaults-dcpfm.
      PERFORM f_lock_document USING pd_guid_src.
      PERFORM f_lock_document USING pd_guid_dest.
    *  Récupérer le pricing handle des documents
    * Document source
      CALL FUNCTION 'CRM_PRIDOC_GET_HANDLE_OW'
        EXPORTING
          iv_header_guid             = pd_guid_src
        IMPORTING
          ev_pd_handle               = ld_pd_handle_src
        EXCEPTIONS
          error_occurred             = 1
          handle_determination_error = 2
          orgdata_error              = 3
          OTHERS                     = 4.
      IF sy-subrc <> 0.
        RETURN.
      ENDIF.
    * Document destinataire
      CALL FUNCTION 'CRM_PRIDOC_GET_HANDLE_OW'
        EXPORTING
          iv_header_guid             = pd_guid_dest
        IMPORTING
          ev_pd_handle               = ld_pd_handle_dest
        EXCEPTIONS
          error_occurred             = 1
          handle_determination_error = 2
          orgdata_error              = 3
          OTHERS                     = 4.
      IF sy-subrc <> 0.
        RETURN.
      ENDIF.
    *  * Récupérer les pricing document
    *  Document Source
      CALL FUNCTION 'PRC_PD_HEAD_SHOW'
        EXPORTING
          iv_pd_handle        = ld_pd_handle_src
        IMPORTING
          et_komv_print       = lt_komv_print_src
        EXCEPTIONS
          non_existing_handle = 1
          ipc_error           = 2
          OTHERS              = 3.
      CHECK sy-subrc EQ 0.
    *  Document Destinataire
      CALL FUNCTION 'PRC_PD_HEAD_SHOW'
        EXPORTING
          iv_pd_handle        = ld_pd_handle_dest
        IMPORTING
    et_komv_print       = lt_komv_print_dest
        EXCEPTIONS
          non_existing_handle = 1
          ipc_error           = 2
          OTHERS              = 3.
      CHECK sy-subrc EQ 0.
    *  * Modification et Suppression des conditions de prix
      LOOP AT lt_komv_print_src INTO ls_komv_print_src .
        CLEAR: ls_cond_chg,
               ls_komv_print_dest.
        MOVE-CORRESPONDING ls_komv_print_src TO ls_cond_chg.
    * Rechercher la condition sur le document source
        READ TABLE lt_komv_print_dest INTO ls_komv_print_dest WITH KEY kschl = ls_komv_print_src-kschl
    zaehk = ls_komv_print_src-zaehk.
        IF sy-subrc EQ 0.
          IF ls_komv_print_src-kbetr NE ls_komv_print_dest-kbetr.
            ls_cond_chg-kbetr_prt = ls_komv_print_src-kbetr_prt.
            ls_cond_chg-kwert     = ls_komv_print_src-kwert.
            ls_cond_chg-kinak     = ls_komv_print_src-kinak.
            CASE gv_decimal.
              WHEN space.       "format N.NNN,NN
                REPLACE ALL OCCURRENCES OF '.' IN ls_cond_chg-kbetr_prt WITH ','.
              WHEN 'Y'.         "format N NNN NNN,NN
                REPLACE ALL OCCURRENCES OF '.' IN ls_cond_chg-kbetr_prt WITH ','.
            ENDCASE.
          ENDIF.
        ENDIF.
        CLEAR ls_cond_chg-krech.
        INSERT ls_cond_chg INTO TABLE lt_cond_chg.
        CLEAR ls_cond_chg.
      ENDLOOP.
      CALL FUNCTION 'PRC_INT_HEAD_INPUT'
        EXPORTING
          iv_pd_handle        = ld_pd_handle_dest
          iv_bal_log          = bal_log
          it_cond_prt         = lt_cond_chg
          iv_req_ret          = abap_true
          iv_req_cond_prt     = abap_true
        IMPORTING
          et_cond_prt         = lt_cond_ret
          ev_data_changed     = ld_data_changed
        EXCEPTIONS
          non_existing_handle = 1
          ipc_error           = 2
          not_allowed         = 3
          OTHERS              = 4.
      CHECK sy-subrc EQ 0.
      CALL FUNCTION 'CRM_EVENT_PUBLISH_OW'
        EXPORTING
          iv_obj_name = 'PRIDOC'
          iv_guid_hi  = pd_guid_dest
          iv_kind_hi  = 'A'
          iv_event    = 'SAVE'
        EXCEPTIONS
          OTHERS      = 1.
      ls_input_fields-ref_guid   = pd_guid_dest.
      ls_input_fields-ref_kind   = 'A'.
      ls_input_fields-objectname = 'PRIDOC'.
      INSERT ls_input_fields INTO TABLE lt_input_fields.
      CLEAR ls_input_fields.
      CALL FUNCTION 'CRM_ORDER_MAINTAIN'
        CHANGING
          ct_input_fields   = lt_input_fields
        EXCEPTIONS
          error_occurred    = 1
          document_locked   = 2
          no_change_allowed = 3
          no_authority      = 4
          OTHERS            = 5.

  • Sales order: How to add pricing conditions at item level in BDC of VA01

    Hello Experts,
    Am writing BDC for sales order, in this process I need to add ITEM PRICING CONDITIONS, so, am selecting item and pressing the DOLLAR symbol button and am adding the conditions by pressing PLUS button in loop!! but am getting this erorr- Field KOMV-KMEIN (2) is not an input field!! when I execute it in we19-BACK GROUND only!! if I execute the same CODE IN we19-Fore ground, I dont have any issue!!  I checked this SDN (field status in config), Google, but did not helped me!
    Pls. let  me know is there any other way to add conditions at item level in VA01 in BDC code?
    THank you

    Hi,
    It is happening because the second row of the item level data screen is becoming display only. Please check whether In foreground mode you are pressing an extra enter to give data in the second row of the item level data after giving data in the first row and in BDC recording you have not recorded that 'Enter'.
    Regards,
    Gargi

Maybe you are looking for

  • How to get parent process instance id in a java control?

    Hi! I have a process which invoke a java control. In this java control I need the instance ID from the parent process. Does anybody know where i can get the instance id? Within a jpd I have the context variable (context.getInstanceId()), but I need s

  • Using iPhoto's in iMovie - Changes in iPhoto

    I add an iPhoto to an iMovie project by choosing a photo in an "album". If I make changes to the album in the future, will that bugger up the Project? What is the best way to guard against future edits / moves in iPhoto messing up iMovie Projects - c

  • HGrid line detail is returning empty rows

    Hi All, I am working with HGrid component. I have followed OAF Developer Guide information as follows. 1. Created 2 VOs like PoHeaderVO, POLineVO 2. Created VL with HEADER_ID as source attribute and dest attribute 3. Added a HGrid component 4. Added

  • Stacking issue..

    Hi ! I'm using LR 2.4 (camera raw 5.4) on a Mac. The problem I'm having is this : I want to edit a file in Nik Software so I do an "edit in"...mplah mplah mplah and select "stack with original". The file that returns to LR (although stacked with the

  • HR ESS Screen Views

    Can anyone give me or tell me where I can get SAP standard HR ESS/MSS screen prints/shots for a presentation. Thanks Flappy!