Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

MM02 - Class allocation: delete any class, but allow only specific classes for new alloc. (C_KLAH_BKL)

0 Kudos

Hi,

we have the requirement that in MM02 users should be able to remove/delete any material class allocations from a material master. (Necessary for cleaning up "old" class allocations after having introduced a new classification concept in material management.)

Afterwards, the user should be able to allocate only specific material classes to the material master again. The classes which are allowed to be used for a new allocation have been specified in transaction CL02 with a specific class authorization; value e.g. 'ABC' (Table KLAH, Field BGRKL).

Therefore, I created a single role that contains authorization object C_KLAH_BKL twice:

C_KLAH_BKL

- ACTVT: 01

- BGRKL: ABC

C_KLAH_BKL

- ACTVT: 02, 03

- BGRKL: *

I thought this would enable the user to remove (Activity 02) and display (Activity 03) any class allocation, while at the same time allowing him to allocate only classes with class authorization 'ABC'.

The documentation of authority object C_KLAH_BKL shows that Activity 02 means "Change, Delete".

However, it does not work that way. An authorization trace showed, that during the removal of an "old" class (e.g. with KLAH-BGRKL = 'XYZ') SAP checks the authorization object C_KLAH_BKL with BGRKL = 'XYZ' (ok!) but with activity 01 (???), instead of 02!

Can someone provide a solution for my problem?

Best regards,

Karl

1 REPLY 1

Former Member
0 Kudos

Hi,

Raise to SAP, it seems it is wrong coded, if they meant to do removal with 02 it should not be with 01.

They will correct if it is mistake in coding.

BR,

Mangesh