Kullanıcılar üzerindeki yetki kontrolleri ile işlemler için bir çok alternatif bulunmaktadır. Mevcut kullanıcıları belirli rollere bağlayarak bu roller üzerinden yetki kontrolleri yaptırabilirsiniz veya kullanıcıları Z’li bir tablo üzerinden belirli parametrelere bağlayarak kontrollerinizi sağlayabilirsiniz. Bunlara ek olarak SAP’in kullanıcılara atayabileceğiniz parametreleri kullanarak istediğiniz kontrolleri direkt olarak kullanıcı bazında gerçekleştirebilmeniz mümkündür. Buna örnek olarak, aşağıda detaylarını görebileceğiniz gibi, bir paket altında SET/GET PARAMETERS oluşturuyoruz ve bu parametreyi bir kullanıcı parametresi olarak tanımladıktan sonra istediğimiz bir değer ataması gerçekleştiriyoruz. Daha sonra bu kullanıcıda bu parametre mevcutsa ve değeri bizim belirlediğimiz değer koşuluna uygun kontrolünü Abap ile gerçekleştirebiliyoruz.
Parametreyi oluşturmak istediğiniz paketin üzerine sağ tık -> create -> Other(1) -> SET GET PARAMETER ID seçeneği ile parametre ID’si oluşturulur.

Parametreye isim ve açıklaması yapılır. Herhangi bir aktive etme işlemine ihtiyaç yoktur.


SU3 Transaction kodu ile kullanıcı parametreleri sekmesi altına oluşturuğunuz parametre ismini veriyoruz. Parametre değeri olarak istediğiniz bir değer yazabilirsiniz. Bu örnekte X olarak bir değer kontrolü yapılmaktadır.

Artık OYAZICI kullanıcı için ZDEMO_USER_PARAMETER parametresi tanımlanmıştır ve bu parametreyi kullanarak X değerine sahip olduğunda gerekli işlem kontrolü yapmış olabiliriz.
Bu parametrenin kontrolü için BAPI_USER_GET_DETAIL metodu kullanılabilir veya USR05 tablosundan custom bir sorgu ile de kontrolünüzü gerçekleştirebilirsiniz.
Bu BAPI’yi kullanarak dönüş tablosu içerisinde yer alan Parametrelerde aşağıdaki kod bloğunda olduğu gibi bir kontrol gerçekleştirilmektedir.
DATA : LT_PARAMETERS TYPE TABLE OF BAPIPARAM1, LT_RETURN TYPE TABLE OF BAPIRET2. CONSTANTS C_PARID TYPE PARID VALUE 'ZDEMO_USER_PARAMETER'. CALL FUNCTION 'BAPI_USER_GET_DETAIL' EXPORTING USERNAME = SY-UNAME TABLES RETURN = LT_RETURN PARAMETER1 = LT_PARAMETERS. " Check Bapi Error Result READ TABLE LT_RETURN INTO DATA(LS_RETURN) WITH KEY TYPE = 'E'. IF LT_RETURN IS INITIAL. " Read User Parameter accordin to parameter ID. READ TABLE LT_PARAMETERS INTO DATA(LS_PARAMETER) WITH KEY PARID = C_PARID. IF LS_PARAMETER-PARVA EQ 'X'. MESSAGE 'Yetkiniz Var...' TYPE 'S' DISPLAY LIKE 'S'. ELSE. MESSAGE 'Yetkiniz Yok !' TYPE 'E' DISPLAY LIKE 'E'. ENDIF. ENDIF.