I need enough secure solution for transfer pernr number from one WDA application to Another.
We cant use parameter directly because experienced users can modify it and view restricted data.
Application must be completely independent without sharing interface controller variables.
Solution was found in application HRESS_A_PERSINFO thanks to Bhaskar Tripathi's question
WD component HRESS_C_PERNR_SELECTION uses Assistance Class CL_HRESS_AS_PERNR_SELECTION.
In Sender Apllication we write data to Memory and get random ID in RV_MEM_ID.
CALL METHOD CL_HRESS_EMPLOYEE_SERVICES=>SET_PERNR_TO_MEMORY
EXPORTING
iv_pernr = lv_pernr
* IV_DISP_CE_ASSIGTS_SCREEN =
* IV_NON_EIC_MODE =
RECEIVING
RV_MEM_ID = w_value
Then we construct URL and open second application.
* Get the URL of the called application
CALL METHOD cl_wd_utilities=>construct_wd_url
EXPORTING
application_name = 'ZBHRWD_INC_CRiteria_ESS'
IMPORTING
out_absolute_url = w_url.
*Attach the parameters and its value with the URL that
* have to be passed to the 2nd application
CALL METHOD cl_http_server=>append_field_url
EXPORTING
name = 'PERNR_MEM_ID'
value = w_value
CHANGING
url = w_url.
In receiver application read the pernr by Memory ID
wd_assist->get_pernr_from_memory(
exporting
iv_pernr_mem_id = wd_comp_controller->gv_memid
IMPORTING
ev_pernr = lv_pernr ).
In this case we need not to do authorization checks in receiver application.