check authorization

Upload: zafarwkhan

Post on 04-Apr-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/30/2019 Check Authorization

    1/4

  • 7/30/2019 Check Authorization

    2/4

    Defining Authorization Objects

    Defining Authorization Fields

    Authorization Checks

    For authorization checks, there are many ways of linking authorization objects with user actions in an R/3 system.

    The following discusses three possibilities in the context of ABAP programming.

    Authorization Check for Transactions

    You can directly link authorization objects with transaction codes. You can enter values for the fields of an

    authorization object in the transaction maintenance. Before the transaction is executed, the system compares

    these values with the values in the user master record and only starts the transaction if the appropriate

    authorization exists.

    Authorization Check for ABAP Programs

    For ABAP programs, the two objects S_DEVELOP (program development and program execution) and

    S_PROGRAM (program maintenance) exist. They contains a field P_GROUP that is connected with the program

    attribute authorization group. Thus, you can assign users program-specific authorizations for individual ABAP

    programs.

    Authorization Check in ABAP Programs

    A more sophisticated, user-programmed authorization check is possible using the AUTHORITY-CHECK statement.

    It allows you to check the entries in the user master record for specific authorization objects against any other

    values. Therefore, if a transaction or program is not sufficiently protected or not every user that is authorized to

    use the program can also execute all the actions, this statement must be used.

    AUTHORITY-CHECK OBJECT

    ID FIELD

    ID FIELD

    ...

    ID FIELD .

    is the name of an authorization object. With , , and so on, you must listall

    fields of theauthorization object . With , , and so on, you must specify the values that the system is to check

    against the entries in the relevant authorization of the user master record. The AUTHORITY-CHECK statement

    searches for the specified object in the user profile and checks the users authorizations for all values of . You

    can avoid checking a field by replacing FIELD with DUMMY.

    After the FIELD addition, you can only specify an elementary field, not a selection table. However, there are

    function modules available that execute the AUTHORITY-CHECK statement for all values of selection tables. The

    AUTHORITY-CHECK statement is supported by a statement pattern.

  • 7/30/2019 Check Authorization

    3/4

    Only if the user has all authorizations, is the return value SY-SUBRC of the AUTHORITY-CHECK statement set to 0.

    The most important return values are:

    0: The user has an authorization for all specified values.

    4: The user does not have the authorization.

    8: The number of specified fields is incorrect.

    12: The specified authorization object does not exist.

    A list of all possible return values is available in the ABAP keyword documentation. The content of SY-SUBRC has

    to be closely examined to ascertain the result of the authorization check and react accordingly.

    REPORT demo_authorithy_check.

    PARAMETERS pa_carr LIKE sflight-carrid.DATA wa_flights LIKE demo_focc.

    AT SELECTION-SCREEN.

    AUTHORITY-CHECK OBJECT 'S_CARRID'ID 'CARRID' FIELD pa_carrID 'ACTVT' FIELD '03'.

    IF sy-subrc = 4.MESSAGE e045(sabapdocu) WITH pa_carr.ELSEIF sy-subrc 0.MESSAGE e184(sabapdocu) WITH text-010.ENDIF.

    START-OF-SELECTION.

    SELECT carrid connid fldate seatsmax seatsoccFROM sflightINTO CORRESPONDING FIELDS OF wa_flightsWHERE carrid = pa_carr.

    WRITE: / wa_flights-carrid,wa_flights-connid,wa_flights-fldate,wa_flights-seatsmax,wa_flights-seatsocc.

    ENDSELECT.

  • 7/30/2019 Check Authorization

    4/4

    In this example, the system checks with the authorization object S_CARRID whether or not the user has a

    display authorization (03) for the airline entered on a selection screen. If this is not the case, or a different

    error occurs, the Selection Screen Processing goes back to the display of the selection screen.