PBCS – Restricting Form Triggered Business Rules with User Variable Selections

The Intro

Today I will dive straight into something that I think is quite useful for PBCS implementations.

PBCS enables you to design forms to restrict row dimension members using user variables. For example, lets say a manager is responsible for a particular department and is only interested in entering data for this department, as PBCS is multi-dimensional in nature, the user variable can be set by the manager and the forms can be built to show the rows for that particular department. If this feature wasn’t available, Department would have to be a separate dimension to enable the display of the data by selection of the manager to the Department. User Variables give us that flexibility to display data by selections.

Whilst this an awesome feature, we have the following requirements we want to address in a neat and clever solution:

  • We want our business rules to do the same, only calculate data based on the user variable selection (this ensures only the data the user is interested in is calculated, always think performance).
  • We want our business rules to run on save from the form and without prompting for entry from the user (IE. Use the User Variable as the restricting value without prompting)

The How To

(Covers BR Variable & Planning Function Approach)

  1. Setup a User Variable that you would like to use to restrict forms and business rules. Tip: if using a business rule variable approach ensure there are no spaces in the User Variable Name, business rules won’t like the space on run.   2018-08-27 19_20_30-Untitled - Paint
  2. You can skip this step if using Planning Functions to get the user variable direct ([[PlanningFunctions.getUserVarValue(“xyz”)]]), more information on using this planning function can be obtained here. To use BR variables, setup a PBCS Business Rule variable that will point to the User Variable created above (this will be used to restrict calculations to only the required user selection of the variable from the PBCS front end).2018-08-27 19_25_59-Calculation Manager - Internet Explorer
  3. If using a BR Variable, you need to update your Business Rules to Restrict the Calculation on the Business Rule Variable that points to the user variable created in Step 1 for its value (Your overall Fix statement will use this variable to restrict the calculations). Otherwise you can restrict using the Planning Functions to get the user variable direct ([[PlanningFunctions.getUserVarValue(“xyz”)]]), more information on using this planning function can be obtained here.
    2018-08-30 09_38_20-Calculation Manager - Internet Explorer
    Planning Get User Var Value Function Approach (ideal solution)
    2018-08-27 19_31_59-Untitled - Paint
    BR Variable Approach

    2018-08-27 19_33_26-Calculation Manager - Internet Explorer
    BR Variable Approach
  4. Build the forms and restrict the selections on the rows to use the user variable in Step 1.2018-08-28 13_15_01-EPM Cloud - Internet Explorer
  5. If using a BR Run Time prompt, ensure to not select “Use Members on Form”, but ensure the “Hide Prompt” is selected for the forms where you want to calculate using the user variable. Selecting “User Member on Form” this will cause the rule to prompt user for entry due to confusion resulting from multiple members from that dimension on the form.

2018-08-26 18_17_47-Sent Items - ahafez4@csc.com - Outlook

A Message

If you have found what you seek here then great, if you haven’t but have found something useful then great also, if not then I hope you find what you seek and wish you luck on your search for knowledge. Like a Jedi you are in search of knowledge and I wish the Force is with you on your journey.

The Force is forever with you!!

2 thoughts on “PBCS – Restricting Form Triggered Business Rules with User Variable Selections

Add yours

  1. When using user variable driven calculations, it’s not necessary to even define a RTP. You can directly pick up the level 0 members of user variable by using [[PlanningFunctions.getUserVarValue(“xyz”)]] function. This also allows you to overcome the restriction of not having space in user variable name.

    Liked by 1 person

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

Blog at WordPress.com.

Up ↑

%d bloggers like this: