When you are building reports or creating views on the Salesforce platform, you will see the word “my” in a lot of places. For example, if you make a view on the Assignments tab, you can create “My Assignments,” “My Opportunities,” etc. In Salesforce, “my” means “I own the record.” Record owners are usually either the creator of the record or someone who’s been assigned ownership by the creator. Oftentimes in FinancialForce PSA, however, the person who created the record is not the person who has responsibility or ownership of that record.
There are many situations where the person who creates the record is not the owner. Here are a few examples:
- Assignments for you created by the PM
- Estimates vs Actual records
- Utilization Calculation records
- Timecards that were created on behalf of another (or migrated from another system)
The Salesforce default “my” behavior presents a challenge when you want to see FinancialForce PSA records that pertain to you, but you are not the actual record owner. The good news: this is an easy challenge to overcome through the use of the $User “global variable.” There are a lot of global variables in Salesforce. The $User global variable is a particularly useful one because it points to the User record of the person who is currently logged in.
So you may be asking yourself “how can I use the $User variable to enable self-service Dashboards?”
You can think of the $User variable as a gateway to all fields on the User record of whoever is currently viewing a record. This can be used in several different ways; for the purpose of self-service Dashboards we’re primarily concerned with the Salesforce ID of the currently logged in user – $User.Id.
With $User.Id you can identify records assigned to the current user by using a formula to look at the Resource field on a PSA object and see if it matches $User.ID. This is a simple way to identify and deliver relevant records to someone other than the user who created them.
You can also use $User.ID in checkbox formulas which then can be used as a filter in reports and views to get records for the current user. This is the power of the global variable comes through in creating dynamic, self-service Dashboards. You can use it on Projects, Assignments, Timecards, Estimates vs Actuals, Utilization Detail records, Project Task Assignments, or anywhere in FinancialForce PSA where there’s a Resource field.
For example, the following checkbox formula on Assignment will return all assignment records for the current user:
$User.Id = pse__Resource__r.pse__Salesforce_User__r.Id,
You can also apply this same construct for managers to show all Timecards submitted by the manager’s direct reports:
$User.Id = pse__Resource__r.pse__Salesforce_User__r.ManagerId,
The above are only a couple of examples of what can be achieved with this trick – it’s limited only by your creativity and knowledge of fields that you have at your disposal. The entire approach hinges around the very simple “IF($User.Id =
Bonus: Be sure to explore other global variables in Salesforce – for example, the $Profile global variable returns information about the current user’s profile. One great way to use this is to create validation rules that do not apply to System Administrators (syntax: && $Profile.Name <> “System Administrator”).
For detailed information about implementing these tips in FinancialForce PSA, watch our webinar “Self-Service Dashboards in FinancialForce PSA.”