cancel
Showing results for 
Search instead for 
Did you mean: 

Portal Workprotect in Talent Profile - WebDynpro ABAP FPM application

Former Member
0 Kudos

We are trying to implement Workprotect in ESS - Talent Profile application (HRTMC_EMPLOYEE_PROFILE). The requirement is that when user had entered data in either Internal work experience, External Work experience or other tabs; before he has saved the data, if the user clicks on some other link in portal or try to close the window, Portal work protect that is enabled should prompt the user to save the data or risk losing data.

What has been done so far:

1. Enabled Workprotect on Portal:

Step 1: In the portal, go to System Administration -> System

Configuration -> Service Configuration.

Step 2: In the portal catalog, Select

application "com.sap.portal.epcf.loader" and open the properties for

service "epcfloader" for editing

Step 3: Set property workprotect.mode.default = 3

Step 4: Save -> Restart service

Now, Portal Work protect is enabled.

2. On the Talent application end, I have seen many posts in forum & FPM related workprotect documentation. But, it is not clear as to how this actually works when it comes to FPM application.

The documents says FPM allows application to make use of work protect

mode offered by Portal. To achieve this, the application must u2018tellu2019 the

FPM whether it contains unsaved

(u201Cdirtyu201D) data. For this, the FPM provides the Web Dynpro Interface

IF_FPM_WORK_PROTECTION. In the is dirty method, you have to put

METHOD is_dirty.
if * component contains unsaved data
ev_dirty = abap_true.
else.
ev_dirty = abap_false.
endif.
ENDMETHOD.

Questions:

1. If you see the shared application component HRTMC_TP_SHARED_DATA, it implements interface IF_FPM_WORK_PROTECTION. But, the isdirty method in the component controller has already existing code

METHOD is_dirty.

ev_dirty = wd_this->mv_is_dirty.

ENDMETHOD.

Where should we put the code given below as described in FPM documentation. In shared component or in individual components like HRTMC_TP_WORKEXP_INTERNAL, HRTMC_WORKEXP_INTERNAL, HRTMC_TP_EDUCATION

etc.

METHOD is_dirty.
if * component contains unsaved data
ev_dirty = abap_true.
else.
ev_dirty = abap_false.
endif.
ENDMETHOD.

And, the line "* component contains unsaved data" as described in document- how do we code this for talent profile considering that there are multiple components, shared component etc? My requirement is that if user has entered some data in any of the tabs like internal work experience, external work experience, then work protect should work if

user tries to navigate away or close browser.

2. If you see general documentation for Work protect and webdynpro (not for FPM), it says that the application must define a special status (dirty flag), which tells the portal when there is unsaved data. You can set and cancel this status (TRUE, FALSE) using method

SET_APPLICATION_DIRTY_FLAG in interface IF_WD_PORTAL_INTEGRATION.

And it goes on to say that one must set application flag dirty

SET_APPLICATION_DIRTY_FLAG
exporting
DIRTY_FLAG = TRUE | FALSE

and also set work protect mode

call method L_PORTAL_MANAGER->SET_WORK_PROTECT_MODE

exporting

MODE = NONE | APPLICATION_ONLY | BOTH

3. Which is the correct way to enable Work protect in case of Talent profile applications? Which method of which component should should we add code to? Which of the above ways should we follow ( Interface IF_FPM_WORK_PROTECTION or IF_WD_PORTAL_INTEGRATION) ? Which component and which method should we Set Work protect and Set isdirty

Please advise.

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

Hi Experts,

Can you please provide some useful info in implementing work protect in Standard FPM WebDynpro ABAP applications? In this case, as mentioned above, the application is ESS Talent Profile application (HRTMC_EMPLOYEE_PROFILE).

Thanks,

Sandeep