Portal Development Experts ,
Background :
- We are on NW 7.4 and implementing Fiori Framework page.
- I am trying to use PCD Filters concept to filter iViews within roles at runtime based on backend role , for example - iView should be shown only if backend roles of user are one of X , Y ,Z . Every iView will have different such combinations hence the filter property value on iView cannot be defined statically unless I can defined multiple values but even then its lot of maintenance and we like to avoid it.
- I want to put all this logic of role checking in backend RFC and that RFC should just return VISIBLE or HIDE value based on iView which I am passing to RFC from portal component using JCO .
Below is what I have achieved so far followed by the one last problem I am facing :
- Create a filter class that returns expression VISIBLE = TRUE and this filter class is applied to role against the filter class property .
- Created new property for Each iView underneath it, called VISIBLE . ( Plan is to set this attribute of iView dynamically from RFC before the filter will be applied so that filter expression is evaluated against this updated value )
- Created portal component to change this property of all iViews dynamically from RFC .
- Later when filter expression is evaluated iView is shown and hidden correctly based on value .
PROBLEM I am facing :
- Although property was set dynamically and later evaluated correctly it is permanently changing that property in PCD which will interfere with other user's portal behavior.
- To avoid above I included PCD_PERSONALIZATION_PRINCIPAL for the user and if I do read before and after setting the property it is fetching correct value for that user in my component and not the default value in Portal content .
- But the problem is when filter expression ( I don't know where it does ) is evaluated for that iView it is NOT fetching the personalized value for the attribute which I had set dynamically in component but it is using default value defined in portal config . This is causing filter to return incorrect result and iView is not hidden or shown correctly .
Am I doing anything incorrect here or its a known issue ? I have also mentioned what I eventually want to accomplish in background section so any help / advice in this regard will be of great help . Thank You !!
Regards
Sudarshan