What are the implications of: [GuiXT] if Q[Role=...] statement?

I am concerned that expanding this "if" statement is seriously degrading performance. Could that be? How "costly" are these role requests? Where are they cached locally? Does GuiXT parse an if statement at the very last "or" statement or proceed on the first "or" success?

If(V[G_project_selected=People Manager] and

Q[Role=ZC.R3_HR_PPLMGR_AL_D] or Q[Role=ZC.R3_HR_PPLMGR_AU_D] or

Q[Role=ZC.R3_HR_PPLMGR_EX_D] or Q[Role=ZC.R3_HR_PPLMGR_M] . . . .)

- The roles are read via RFC the first time and then buffered in memory.

- GuiXT does not perform "shortcut evaluation" of logical expressions. So if you want to avoid the if Q[Role=], please use nested ifs:

if(V[G_project_selected=People Manager]

if Q[Role=ZC.R3_HR_PPLMGR_AL_D] or Q[Role=ZC.R3_HR_PPLMGR_AU_D]

or ... ...

endif

endif

 

- You can use a generic if Q[Role=]

if(V[G_project_selected=People Manager]

if Q[Role=ZC.R3_HR_PPLMGR*] ...

endif

endif