Determination in RAP

                                                Refer - Virtual elements in RAP

 What is a Determination in RAP?

    * A determination is a kind of hook method used to determine or calculate values during a RAP operation (e.g., setting default values, calculating totals, etc.).

Where is Determination Used?

* You define it in the Behavior Definition (behavior definition) and implement it in the Behavior Implementation Class (ABAP class).

Step 1: Change the behavior definition.

managed implementation in class zbp_iv_ab_empl unique;

strict ( 2 );


define behavior for ZIV_AB_EMPL //alias <alias_name>

persistent table ztl_ab_empl

lock master

authorization master ( instance )

//etag master <field_name>

{

create ( authorization : global );

update;

delete;

field ( readonly ) EmplRoledec;

determination updateroledesc on save { field EmplRole; }

mapping for ztl_ab_empl

{

EmplId = empl_id;

EmplName = empl_name;

EmplAge = empl_age;

EmplRole = empl_role;

EmplRoledec = empl_roledec;

EmplSal = empl_sal;

}

}

Step 2: Implement the method -updateroledesc.

CLASS lhc_ZIV_AB_EMPL DEFINITION INHERITING FROM cl_abap_behavior_handler.

PRIVATE SECTION.


METHODS get_instance_authorizations FOR INSTANCE AUTHORIZATION

IMPORTING keys REQUEST requested_authorizations FOR ziv_ab_empl RESULT result.


METHODS get_global_authorizations FOR GLOBAL AUTHORIZATION

IMPORTING REQUEST requested_authorizations FOR ziv_ab_empl RESULT result.

METHODS updateroledesc FOR DETERMINE ON SAVE

IMPORTING keys FOR ziv_ab_empl~updateroledesc.


ENDCLASS.


CLASS lhc_ZIV_AB_EMPL IMPLEMENTATION.


METHOD get_instance_authorizations.

ENDMETHOD.


METHOD get_global_authorizations.

ENDMETHOD.


METHOD updateroledesc.

READ ENTITIES OF ziv_ab_empl in local mode

ENTITY ziv_ab_empl

FIELDS ( EmplRole ) WITH CORRESPONDING #( keys )

RESULT data(lt_emproles).

LOOP AT lt_emproles INTO data(lr_emproles).

CASE lr_emproles-EmplRole.

when 'L1'.

MODIFY ENTITIES OF ziv_ab_empl in LOCAL MODE

ENTITY ziv_ab_empl

UPDATE

FIELDS ( EmplRoledec ) with VALUE #( ( %tky = lr_emproles-%tky EmplRoledec = 'Manager' ) ).

when 'L2'.

MODIFY ENTITIES OF ziv_ab_empl in LOCAL MODE

ENTITY ziv_ab_empl

UPDATE

FIELDS ( EmplRoledec ) with VALUE #( ( %tky = lr_emproles-%tky EmplRoledec = 'Asst Manager' ) ).

when 'L3'.

MODIFY ENTITIES OF ziv_ab_empl in LOCAL MODE

ENTITY ziv_ab_empl

UPDATE

FIELDS ( EmplRoledec ) with VALUE #( ( %tky = lr_emproles-%tky EmplRoledec = 'Team Lead' ) ).

when OTHERS.

MODIFY ENTITIES OF ziv_ab_empl in LOCAL MODE

ENTITY ziv_ab_empl

UPDATE

FIELDS ( EmplRoledec ) with VALUE #( ( %tky = lr_emproles-%tky EmplRoledec = 'Normal Employee' ) ).

ENDCASE.

ENDLOOP.

ENDMETHOD.


ENDCLASS.

Step 3: Check and activate both BD & class.

Testing

Step 1: preview the application.

Step 2: Change the existed record (Changing L2 to L1 where id = 123).


Step 3: Save and refresh.




    
                                    

********************************Thank you*****************************


Comments

Popular posts from this blog

New syntax for append- VALUE (new syntax 7.4+) in ABAP

Read statement new syntax in ABAP. (7.4+).

Concatenation new syntax( 7.4+ ).