- Post History
- Subscribe to RSS Feed
- Mark as New
- Mark as Read
- Bookmark
- Subscribe
- Printer Friendly Page
- Report Inappropriate Content
on 01-07-2019 02:43 PM
The article below is intended for any person customise your Workflows. Javascript knowledge is useful but not required.
Introduction
As I mentioned in other articles, regardless of your task, there aren't always enough hours in the day to get everything done. As a result, you constantly feel like you're always behind. And that's just not good for your productivity or your health. Instead of putting in those extra hours, you can become more effective at work by focusing on what really matters. And you can get started with that ASAP by applying this quick scalable solution to your scripts.
Here's a few things we will cover:
Use Case |
Example |
Automate properties (sys_properties) System properties store configuration information that rarely or never changes. Each time you change or add a system property, the system flushes the cache to keep all nodes in the cluster in synch. This cache flush has a very high performance cost for one to 10 minutes, which can potentially cause an outage if done excessively. To prevent such outages, do not use a system property to store configuration information that changes more than once or twice a month. | I usually identify what can change in the future, like "group id", "names", etc. |
Use Case Walkthrough
- In the Navigation filter, enter sys_properties.list.
The entire list of properties in the System Properties [sys_properties] table appears.
- Verify that the property does not exist by searching for the property name.
- Click New.
Usually I use "company.workflow.default.L1". - Complete the System Property form.
Type: String
Value: <sys_user_group_id> - Navigate to Workflow > Workflow Editor
- Edit your workflow and change script as appropriate.
Script
gs.getProperty('company.workflow.default.L1');
Unfortunately there is no magic formula to identify which task or script or variable should be considered as system properties but to start you should think what can change over the time.
Example #1:
Found some quite simple use case in the communities (link). A user would like to add a IF condition in the workflow to verify if the sys_property value is equal to true and then, the requester assigned will be XXX company and eventually will fire the next sc task.
answer = ifScript();
function ifScript() {
var prop = gs.getProperty('ab.provision.workflow');
var comp = current.u_requestor.company.getDisplayValue(); //I am assuming u_requestor is the field company name
if(prop == 'true' && comp == 'company name')
{
return 'yes';
}
return 'no';
}
Conclusion
System properties are not limited to just Notifications or Workflows, they're part of the NOW Platform and can include anything we have in the Platform. Try to automate your instance and try to centralize all your "customer" data in one place. Use all the tools at your disposal to make that happen.
I will try to collect a use case for each type in order to help you to identify on which cases you should apply the sys property technique.