Beezr Language Framework (Beezl)
One of the pillars of Beezr is to provide a dynamic platform for developers and power users to build their ideas.
In order to provide that level of flexibility we extended JavaScript to create Beezl which is short for Beezr Language.
Basically, Beezl allows developers to write custom functionality in steps, fields, and components. A sample of this can be seen in the following image.

The above example is from an HR application we built earlier. Beezl is used here to dynamically access the Module fields and manipulate the data in order to calculate the proper vacation credit for the employee.
In Beezr this is called smart scripting.
Beezl can be used in various places in the designer space. A few examples of where you'll find yourself using Beezl are:
Beezl Syntax
Beezl syntax is similar to JavaScript, the difference is the computing engine in the background. The most important thing the developer needs to understand is how to access the variable.
Module variables can be accessed in the following fashion:
It is basically requesting to access the intended attribute from the object. In order to make it simpler for the developer; we’ve added an auto-complete (CTRL + space) feature to help in developing smart scripts.
Another thing you can do is access context parameters such as the requestor profile. In Beezr this is called Context parameters and can be accessed in the following manner:
Beezl Functions
We’ve extended the capabilities of Beezl also to include access functions to retrieve data from Modules outside the current request variable pipeline.
These functionalities offer more flexibility when writing more complex smart scripts.
To access the prebuilt function, you only have to start an expression with FunctionManager.X where X will be the name of the function that you can get a list of by using the auto-complete feature (ctrl + space).
Below is the list of supported functions as of this version:
One of the pillars of Beezr is to provide a dynamic platform for developers and power users to build their ideas.
In order to provide that level of flexibility we extended JavaScript to create Beezl which is short for Beezr Language.
Basically, Beezl allows developers to write custom functionality in steps, fields, and components. A sample of this can be seen in the following image.

The above example is from an HR application we built earlier. Beezl is used here to dynamically access the Module fields and manipulate the data in order to calculate the proper vacation credit for the employee.
In Beezr this is called smart scripting.
Beezl can be used in various places in the designer space. A few examples of where you'll find yourself using Beezl are:
- Beezr Flow
- Conditional Formating in data views
- Auto-calculated (Smart Fields) type
Beezl Syntax
Beezl syntax is similar to JavaScript, the difference is the computing engine in the background. The most important thing the developer needs to understand is how to access the variable.
Module variables can be accessed in the following fashion:
$module name$.$field name$
It is basically requesting to access the intended attribute from the object. In order to make it simpler for the developer; we’ve added an auto-complete (CTRL + space) feature to help in developing smart scripts.
Another thing you can do is access context parameters such as the requestor profile. In Beezr this is called Context parameters and can be accessed in the following manner:
$this$.$user$.$id$
$this$.$user$.$name$
$this$.$user$.$email$
Beezl Functions
We’ve extended the capabilities of Beezl also to include access functions to retrieve data from Modules outside the current request variable pipeline.
These functionalities offer more flexibility when writing more complex smart scripts.
To access the prebuilt function, you only have to start an expression with FunctionManager.X where X will be the name of the function that you can get a list of by using the auto-complete feature (ctrl + space).
Below is the list of supported functions as of this version:
| Function Name | Description |
| loadValueByClause("targetFieldName", "targetModule", "Clause"); | This allows you load a specific value from a module based on an SQL like query. Queries should start with “where”. |
| loadRecordsByClause("targetModule", "Clause"); | Allows you to load a list of records. |
| evaluateSumFunction | Get the sum of a field in a module based on a clause. |
| evaluateAverageFunction | Get the average of a field in a module based on a clause. |
| evaluateCount | Get the number of records in a module based on a clause. |
| getListFromContext | Allows you to access lists from the workflow context. |
| representNumberAsText | Represent a number in its textual representation. |
| convertToDateFormat | Convert a text date into a date object. |
| representDecimalAsTextWithCurrency | Represent a number in its textual representation including the currency values. |
| convertToMoneyFormat | Add thousands separator and default decimal checks. |
| formatDate | Format a date to match a specific pattern. |
| bulkCreateRecords | Bulk creates records. |
| bulkUpdateRecords | Bulk update records. |
| createRecords | Create a single record. |
| generateRecordTemplate | Generates an empty record object for the targeted module with all fields defined, makes it easier for the developer when manually assigning values to a record object before creation. |
| copyRecord | Take a deep copy of a record object to reuse it in different parts of the code safely. |