Hiding Price Condition Types on a Sales Document

Problem Overview

Symptom

Previously, SAP did not allow condition types and subtotal lines to be excluded based on authorization settings.

Reason & Prerequisites

This functionality was not originally built into SAP pricing and requires modification.

Solution Overview

A solution is available, but it involves a modification approach. Users must implement additional authorization fields, a new authorization object, and user exits to enable restrictions.

Implementation Overview

User Exits Used

- For condition display and manual changes: USEREXIT_FIELD_MODIFICATION, USEREXIT_FIELD_MODIFIC_LEER, USEREXIT_FIELD_MODIFIC_KZWI, USEREXIT_FIELD_MODIFIC_KOPF
- For condition creation: USEREXIT_PRICING_CHECK 

Effects of Implementation

✅ Users can create, modify, and display only authorized condition lines.
Unauthorized conditions will display only the condition key and description—all other fields will be hidden. 

Restrictions

- This is an example of SAP's authorization concept in pricing. Custom changes require consulting.
- Access must be assigned per pricing procedure and level number. Incorrect assignments may cause missing conditions.
- In change mode (e.g., VA02), unauthorized users may still create conditions or trigger pricing calculations.
- Users without condition creation authorization receive an error message preventing further actions.
- Empty condition lines allow editing only in the condition key field until pressing ENTER for authorization verification. 

Step-by-Step Implementation Guide

Maintain Authorization Fields

1. Open Transaction SU20.
2. Create two new authorization fields:
- ZKALSM (Based on data element KALSM or KALSM_D)
- ZSTUNR (Based on data element STUNR)
3. Save and activate. 

Create the Authorization Object

1. Open Transaction SU21.
2. Create a new authorization object:
- Object: Z_KONH_KLS
- Text: "Condition: Authorization for pricing procedure and level number"
- Class: SD (Sales and Distribution)
3. Assign the following fields: ZKALSM, ZSTUNR, ACTVT (Activity).
4. Save and activate. 

Application Example: Restricting Access to Specific Conditions

Scenario
User 0815 should have access to standard pricing procedure RVAA01 with the following restrictions:
Authorized to view and edit: Prices and discounts (Levels 011 - 908), Tax and related information (Levels 914 - 935), Expected customer prices (Levels 970 - 971).
Not authorized to view/edit: Actual costs (Level 8), Intercompany pricing (Levels 909 - 910), Costs and profit margin (Levels 940 - 950). 

Steps to Implement
1. Create a restricted authorization in Transaction SU03.
2. Create a restricted profile in Transaction SU02.
3. Assign the profile to user 0815 in Transaction SU01.
Changes take effect on the next login. 

Conclusion

By implementing these steps, SAP users can control condition processing with precise authorization settings. This modification enhances security, ensures compliance, and prevents unauthorized pricing changes.

Related Topics:
Create/Modify Billing Document Type
Steps for creating new or changing existing Billing Doc Type

SAP SD Books
SAP Sales and Distribution, Certification, Interview Questions Reference Books

SAP Sales and Distribution Tips
SAP SD - Sales/Distribution Tips

Best regards,
SAP Basis, ABAP Programming and Other IMG Stuff
http://www.erpgreat.com

All the site contents are Copyright © www.erpgreat.com and the content authors. All rights reserved.
All product names are trademarks of their respective companies.  The site www.erpgreat.com is in no way affiliated with SAP AG. 
Every effort is made to ensure the content integrity.  Information used on this site is at your own risk. 
 The content on this site may not be reproduced or redistributed without the express written permission of 
www.erpgreat.com or the content authors.