Skip to main content

Presenter Adaptive - security

For optimal performance, avoid joining the hierarchy in every source as it adds more querying time.

Instead create a stored value that fetches the Payee selected, then use that stored value as the filtering for all other sources. This ensures sources are filtered based on the reporting hierarchy.

  • If a user changes the URL to a Payee not in their hierarchy the Stored Value will evaluate to NULL and the objects will not show up.

  • This requires adding a PayeeIDText field to the Payee table since we need a non-key version of PayeeID for the output of the stored value.

  • PayeeIDText should be the same as PayeeID and can be mapped to both columns during import.

Creating a stored value 

  1. Join the Hierarchy calculation and Payee table and output the following fields in the data store:

    • MangerPayeeID (PK)

    • PayeeID (PK)

    • Periods (PK)

    • PayeeIDText (non-key)

  2. Create a stored value called vaSelectedPayee with the following restrictions:

    • MangerPayeeID = WebUser

    • PayeeID = plPayee (this is the selected filter payee)

    • Periods = plPeriod (this is the selected filter month)

    • PayeeIDText (non-key)

  3. Use vaSelectedPayee to filter all sensitive objects in the report.