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 http://scn.sap.com/message/15249282
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
iv_pernr = lv_pernr
* IV_DISP_CE_ASSIGTS_SCREEN =
* IV_NON_EIC_MODE =
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
application_name = 'ZBHRWD_INC_CRiteria_ESS'
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
name = 'PERNR_MEM_ID'
value = w_value
url = w_url.
In receiver application read the pernr by Memory ID
iv_pernr_mem_id = wd_comp_controller->gv_memid
ev_pernr = lv_pernr ).
In this case we need not to do authorization checks in receiver application.