Skip to Content
Author's profile photo Typewriter TW

Header condition type with condition record?

There is some confusion – In a sales order, can header condition type value be entered manually only? Can an access sequence be assigned to a header condition type? Can condition record be maintained for a header condition type?

Business requirement: “requirement of referral bonus. A one time $100 bonus to customer irrespective of material or order type. The best way i found was to create a condition record for customer master  against a discount condition type.” This requirement is from

As in the above requirement, some business scenarios require that a header discount or surcharge populate automatically in the sales order when some criteria are met. This discount should be applicable for the entire order and it should not be duplicated in every item.

So to populate a condition type automatically we need a condition record. For header condition type can we maintain condition records?

Can access sequence be assigned to a header condition type? Yes

In Condition type V/06, there are two fields Header condition, Item condition; as explained in the note, it does not imply that for header condition type one needs to activate Header condition field and leave Item condition field blank.


OSS note 17217 No access sequences for header conditions is beneficial.

“You do not classify a condition as a header or item condition by selecting the above fields but rather by selecting the key fields for this condition which you will find either at header level (for example, customer) or at header and item level (division).

Note:  If you check both the above fields, the system does not display the error message.”

If we select Header condition and keep Item condition blank, system will not allow to assign access sequence. As the note suggests both fields should be activated, with this setting the condition records can be created.


Both fields activated: Header and Item conditions; access sequence maintained

2contyp header.JPG

VK13, condition record maintained. Note: As the note suggests choose order header level fields


Header discount condition value populating automatically because condition record is maintained and this value is not duplicated because Group condition field is activated

VA01, sales order created with 2 line items. Expected result is to get a header discount of 10 EUR


Item level: This header discount is not duplicated. It is distributed proportionate to the quantity in each line item; because of group condition functionality




Assigned Tags

      You must be Logged on to comment or reply to a post.
      Author's profile photo Former Member
      Former Member

      Is there a way to prevent the amount to be distributed to the line items ?

      Because if at the outbound delivery the picked / delivered quantity is changed - the invoice will not have the same amount !

      Author's profile photo Typewriter TW
      Typewriter TW
      Blog Post Author


      By changing the quantity in delivery, I do not think the header condition type value will change in the billing document.

      The header condition type value comes from the condition record; next step this gets proportionally distributed among the line items; and not the other way round. Even if the quantity changes, this header will remain the same.


      Author's profile photo Former Member
      Former Member

      Dear TW,

      Well I'm asking this precisely because that's how the system reacts within our system and I did some test about that situationrecently. The amount is distributed to line items at sales order creation. According to the configuration we have here, the prices are not re-determined when copying from sales order to delivery to invoice. - So what happens is that the distributed amount is updated by the new quantity when the invoice is created.

      The difference from your example is that we don't have a condition record because the request was to always manually input an amount at header level.


      Author's profile photo Jose Antonio Martinez
      Jose Antonio Martinez

      Thanks TW.

      Since I saw this document I guess will help to solve an issue, and now after tested we implement it succesful.


      Jose Antonio

      Author's profile photo Mehmet Ozgur Unal
      Mehmet Ozgur Unal

      Hi Jose ;

      Well defined and informative.. Thanks for sharing.


      M.Ozgur Unal

      Author's profile photo venu gopal
      venu gopal

      Dear TW,

      Thank you so much for sharing your innovative thoughts ­čÖé

      But I have known about header condition if we maintain condition record it will update the wrong amount some time in sales order

      Is it correct ? 

      Author's profile photo Team Account Competency Centre
      Team Account Competency Centre

      Thats right. The condition type behaves strangly when its both Header and item condition. There is no solution i found till today. It gets duplicated sometimes and distributes incorrect values, etc..,

      Author's profile photo Suman Sardar
      Suman Sardar

      Hi TW,

      Thanks for sharing this.

      I think the major important part is not to be duplicated is controlled by Group condition which we normally do for such condition types.

      Now the beauty is to make it available for header and we are getting the solution for the header condition with condition records.

      Simply great.

      Author's profile photo Ravi Sankar
      Ravi Sankar

      Similar to distribution of value based on line item quantities, please add, how to distribute proportionately based on the line item values. Because, in this process a line item that has a quantity of 99 EA with total value of 9.9 Euros gets 9 Euros discount and the line item that has a quantity of 1 EA with value of 100 Euros will get 0.1 Euro discount.

      Author's profile photo Phanikumar V L
      Phanikumar V L

      Good & Informative.

      I think this was not new-Because already standard condition type WK00 will have both Header&Item Conditions active at V/06(But without Acc.Seq).

      Really Interested to know--the Condition record received at Header should divide the Total value to line items """NOT ON QTY-BUT ON VALUE"""(Recently we want this But dropped due to some other reasons)

      Dear TW-Can you provide some SAP note numbers on this...(we can google-But your Practical experience Can add some more important things)


      Author's profile photo Pradeep Mani
      Pradeep Mani

      Informative..Well explained.

      Author's profile photo K P
      K P

      Hi TW,

      Thanks for the informative document.

      We have created a similar condition type except that the condition category is Freight.

      At times we wanted to enter this condition manually(when condition record did not exist)  in sales order, which we were able to do successfully and the amount got distributed proportionally among the items.

      However when we created a Invoice wrt order the condition had a value zero and it did not copy the manual value which we had entered in order.

      refer a serperate dicussion created with reference to this

      Manual freight Header condition - Copy Control ... | SCN

      Author's profile photo Prasad S Dev
      Prasad S Dev

      Dear TW,

      Thank you so much for the Excellent Informative share..


      Devi Prasad

      Author's profile photo p m
      p m

      Dear TW

      What would we do for a similar scenario where condition update flag is checked on the condition type defenition, we maintain the condition record with out amount (manually entered in SO) and condition record has a maxmimum condition value  set. We want to give the user to enter the discount amount manually but set a limit on how much he/she could give out with in a time frame (condition record validity) for a combination ( access sequence).

      So the amount entered will be split between the lines but this amount will be captured in a bucket like cumulative value and error when the toatl limit given away reached the limit.




      Author's profile photo Mehmet Ozgur Unal
      Mehmet Ozgur Unal

      Hi Typewriter TW ,

      I tried to benefit from this functionality but is not ok in material management purchasing side.

      That's why we used user-exit RV61AFZB .

      Example :

      FORM userexit_xkomv_fuellen_o_konp.
      */ 12.02.2020 - M.Ozgur Unal - ├ľmer Ek┼či - ZFC2 D├╝zenleme
        DATA: lv_tot   TYPE kawrt,
              lv_kwert TYPE kwert,
              lv_kawrt TYPE kawrt,
              lv_oran  TYPE zmm_oran.
        IF sy-tcode(3) EQ 'ME2' AND tkomv[] IS NOT INITIAL.
          LOOP AT tkomv WHERE kschl EQ 'ZFC2' AND kinak EQ ''.
            lv_tot = lv_tot + tkomv-kawrt.
          IF lv_tot IS NOT INITIAL.
            LOOP AT tkomv ASSIGNING FIELD-SYMBOL(<fs1>)
                          WHERE kschl EQ 'ZFC2'.
              IF tkomv-kinak IS INITIAL .
                    lv_kawrt = <fs1>-kawrt.
                    CALL FUNCTION 'ZMM_001_KBETR_DONUSUM'
                        iv_param1 = lv_kawrt
                        iv_param2 = lv_tot
                        ev_oran   = lv_oran.
                    lv_kwert = ( <fs1>-kbetr * lv_oran ) / 1000.
                    <fs1>-kwert = lv_kwert / 1000000.
                  CATCH cx_sy_zerodivide.
                  CATCH cx_sy_arithmetic_overflow.
          LOOP AT tkomv ASSIGNING FIELD-SYMBOL(<fs2>)
                        WHERE kschl EQ 'ZFC2' AND kinak <> ''.
            <fs2>-kwert = '0.00'.
      */ End of region -> 12.02.2020 - M.Ozgur Unal - ├ľmer Ek┼či - ZFC2 D├╝zenleme
      Author's profile photo Rohit Bahl
      Rohit Bahl

      Hi TW


      Useful Post




      Author's profile photo Ratnesh Musale
      Ratnesh Musale

      Thank you Typewriter TW

      for a useful post. But i am still facing problem in my calculation my data calculated on item level, I should want this data calculate by header level scale basis.