You are on page 1of 6

R/3 Note Nr. 105621 30.07.

2007 Page 1
________________________________________________________________________

Number 105621
Version 0015

Processor
Processing Status New
Implement. Status Can be implemented

Language EN
Short Text Authorization check for the condition screen

Component SD-BF-PR Pricing and Conditions


________________________________________________________________________

Long Text

Symptom
Up to now you cannot exclude certain condition types and subtotal lines from being
processed or displayed in the condition screen by restricting the authorizations.

Other terms
VH609

Reason and Prerequisites


This was not programmed.

Solution
A solution is only possible by means of a modification. Concerning the maintenance
responsibility, refer to Note 170183 and 381348. The following text describes a
solution option based on a modification. Inquiries and problem messages concerning
this subject are not covered by support but only by Remote Consulting subject to
costs.

By creating two additional authorization fields and a new authorization object and by
using user exits

o USEREXIT_FIELD_MODIFICATION,

o USEREXIT_FIELD_MODIFIC_LEER,

o USEREXIT_FIELD_MODIFIC_KZWI, and

o USEREXIT_FIELD_MODIFIC_KOPF

to display and manually change conditions and user exit

o USEREXIT_PRICING_CHECK

to create new conditions, a solution is available which only allows creation, manual
change and display of those condition lines of a pricing procedure for which the user
has an authorization. For conditions and subtotal lines for which the user has no
authorization, only the condition key and the description are dsplayed, all other
fields are hidden.

Restrictions

1. This consulting note contains an example of how the SAP authorization concept can
be used in pricing and which important points you have to take into account.
R/3 Note Nr. 105621 30.07.2007 Page 2
________________________________________________________________________
Everything that differs from this example belongs to the consulting area.

2. You then have to assign access authorizations for every user for all pricing
procedures used and the level numbers used in these pricing procedures. If you do
not do this, the system no longer displays the condition lines or no longer
displays them in the same scope as you need them for your work.

3. In the change mode (for example VA02), the deletion of conditions or the starting
of a new pricing within this solution cannot be prevented (the user exits required
for this are missing).

4. If the creation of a condition is not allowed due to a missing authorization, the


system displays an error message which prevents further processing. This line can
only be eliminated by deletion.

5. On the empty condition lines, only the field for the condition key is ready for
input. The condition rate can be entered only after you pressed ENTER and after a
successful authorization check.

Procedure in detail

1. Maintenance of authorization fields

a) If table ZAUTHCUST does not yet exist in your system, start transaction SE11 as
of Release 4.6A to create it.

In releases up to and including 4.5B, you can call Transaction SU20 as a direct
access (then you must choose 'Customer' on the initial screen), and the system
generates the table becomes automatically if it does not yet exist.

Then proceed as follows:

o Choose 'Create'

o Enter the following values:

- Short text: 'Authorization fields'

- Delivery class 'C' (Customizing table, maintenance only by customer, no SAP


import)

- Development class: Use a user-defined development class (in the following


referred to as ZAUT).

o Enter the following variables:

- ZKALSM with data element KALSM (or KALSM_D as of Release 4.0A)

- ZSTUNR with data element STUNR

- Select ZKALSM as a key field.

o Make the following entries under 'Technical settings':

- Data class USER (customer data class)


R/3 Note Nr. 105621 30.07.2007 Page 3
________________________________________________________________________

- Size category '0' (expected data records: 0 to 68,000)

Finally check, save and activate table ZAUTHCUST.

b) If table ZAUTHCUST has been created in the system via Transaction SE11 in
releases as of 4.6A, you must create the two new authorization fields ZKALSM
and ZSTUNR in Transaction SU20. To do this, use data elements KALSM (or
KALSM_D) and STUNR as for table ZAUTHCUST. Enter table name ZAUTHCUST.

In releases up to and including 4.5B, you directly reach the 'Add authorization
field' input mask in Transaction SU20 in this case, you only have to enter the
corresponding field names and data elements here.

2. Create authorization object Z_KONH_KLS (Transaction SU21):

a) Choose 'SD' (Sales & Distribution)

b) Choose 'Create'

c) Enter the following values:

o Object: Z_KONH_KLS

o Text: 'Condition: Authorization pricing procedure and level no.'

o Class: SD (Sales and distribution)

o Include the following authorization fields in the authorization object:

- ZKALSM

- ZSTUNR

- ACTVT.

3. In Transaction SE91, create message 609 in message class VH with the following
text: "No authorization to create the condition".

4. In Transaction SE38, create the new Includes ZZAUTH01 and ZZAUTH02 in the customer
name range as described below. Select the following attributes:

o Type = 'I' (Include program)

o Status = 'K' (Customer production program)

o Application = 'V' (Sales)

o Development class: Choose a suitable development class in the customer


namespace.

Choose the following titles

o for ZZAUTH01: 'Authorization check for the condition screen',

o for ZZAUTH02: 'Authorization check for the creation of conditions'


R/3 Note Nr. 105621 30.07.2007 Page 4
________________________________________________________________________

5. Change user exits

o USEREXIT_FIELD_MODIFICATION,

o USEREXIT_PRICING_CHECK

o USEREXIT_FIELD_MODIFIC_LEER,

o USEREXIT_FIELD_MODIFIC_KZWI

o USEREXIT_FIELD_MODIFIC_KOPF

as described below (Transaction SE38); check, save and generate.

6. Create (according to the previous standard) at least one authorization which


allows the access to all pricing procedures and condition lines (Transaction
SU03):

o Double-click 'Sales & Distribution': Among other things, the system displays
the authorization object 'Condition: Authorization pricing procedure and level
number' which was created in the above steps.

o Double-click this authorization object: the system displays a list of the


authorizations that have already been created for this authorization object.

o 'Create' button: authorization COND_ALL, text 'Authorization for all


conditions'

o One after the other, position the cursor on 'Action', 'Procedure' and 'Level
number' and, by choosing 'Maintain values', enter the value '*' (that is,
authorization for all actions, pricing procedures andlevel numbers).

o Finally choose 'Activate'.

7. Use Transaction SU02 to create at least one single profile:

o Choose 'Generate work area': the system displays a list of all existing
profiles

o Choose 'Create' and enter in the dialog box:

- Profile: ZCOND_ALL

- Text: 'Authorization for all conditions'

- Profile type: 'Single profiles'

- Select authorization object Z_KONH_KLS created in the above steps


(Condition: Authorization pricing procedure and level no.). by
double-click.

- Behind this, enter the previously created authorization COND_ALL.

- Save and activate.

8. Assign profile ZCOND_ALL to those users who should have the unrestricted
authorization for the work in the condition screen. This ensures that these users
R/3 Note Nr. 105621 30.07.2007 Page 5
________________________________________________________________________
can continue working as before despite the implementation of an authorization
check (however, the changed authorizations do not become effective until the next
logon of the user).

Application example
User 0815 should only be allowed to work with standard pricing procedure RVAA01. The
user should only be allowed to see and edit all price and discount conditions, but not
the costs and profit margin information.
In pricing procedure RVAA01,

o the actual costs are on level number 8 (na),

o prices with surcharges and discounts are on level number 11 (PR00) to 908 (net
value 3) (a),

o prices for intercompany billing are on level number 909 and 910 (na),

o cash discount, tax and other various information are on level number 914 to 935
(a),

o costs and profit margin are on level number 940 to 950 (na),

o expected customer prices (EDI1 and EDI2) are entered on level number 970 and
971 (a).

(a) means 'User is authorized' and (na) means 'User is not authorized' to display and
change the respective information.

1. Use Transaction SU03 to create an authorization with the following values:


Double-click 'Sales & Distribution'. Select authorization object 'Condition:
Authorization pricing procedure and level no.' by double-click. Create the new
authorization COND_STD with the text 'Standard authorization for conditions'.
Maintain the following values:

a) Action = '*'

b) Procedure = 'RVAA01'

c) Level numbers:

- '011' to '908'

- '914' to '935'

- '970' to '971'.

You must enter three-digit level numbers because three-digit strings are
transferred during the parameter transfer to the authorization object (if
you do not enter a three-digit level number, the authorization check always
fails).

d) Save and activate this new authorization.

2. Use Transaction SU02 to create at least one single profile:

a) 'Generate work area'

b) Create profile: ZCOND_STD; Text: 'Standard authorization for conditions';


R/3 Note Nr. 105621 30.07.2007 Page 6
________________________________________________________________________
Single profile

c) As described above, select authorization object Z_KONH_KLS and assign


authorization COND_STD to it; save and activate.

3. In Transaction SU01, assign the single profile ZCOND_STD to your user 0815 and
save; the new authorization becomes effective with the next logon of user 0815.

Repairs in the Code

________________________________________________________________________

Valid Releases

SAP Application
30A
30B
30C
30D
30E
30F
310
31G
31H
31I
40A
40B
45A
45B
46A
46B
46C
470
500
600
________________________________________________________________________

Links to Support Packages

Software Component Release Package Name


________________________________________________________________________
________________________________________________________________________

You might also like