This guide is covering the following:✅ Retrieving security details dynamically
✅ Extracting specific user attributes
✅ Fetching configuration parameters
Security details (securityDetails) store user-related data, including email, username, roles, and permissions. These values are stored in additionalData.securityDetails and can be accessed dynamically within a process.
Retrieve security details
Use the following business rule to fetch and store security details:
// Retrieve security details from additionalData
securityDetails = additionalData.get("securityDetails");
// Store the extracted security details
output.put("securityDetails", securityDetails);
Example output:
{
"securityDetails": {
"Default": {
"owner": {
"username": "user@email.com",
"identifier": "f08b1452-7c4c-415c-ad6d-8bb2d2d14600",
"details": {
"firstName": "John",
"lastName": "Snow",
"email": "user@email.com",
"jwt": "your_jwt",
"roles": [],
"groups": [
"/Users/Flowx_demo",
"/superAdmin"
],
"attributes": {}
}
}
}
}
}
To retrieve specific attributes, such as email, username, first name, and last name, use one of the following scripts (JS or Python):
// Retrieve security details
securityDetails = additionalData.get("securityDetails");
// Extract owner details from the Default swimlane
email = securityDetails.Default.owner.details.email;
username = securityDetails.Default.owner.username;
firstName = securityDetails.Default.owner.details.firstName;
lastName = securityDetails.Default.owner.details.lastName;
// Store extracted details in the output
output.put("email", email);
output.put("username", username);
output.put("firstName", firstName);
output.put("lastName", lastName);
Extracted values:
- Owner Email (
securityDetails.Default.owner.details.email)
- Username (
securityDetails.Default.owner.username)
- First Name (
securityDetails.Default.owner.details.firstName)
- Last Name (
securityDetails.Default.owner.details.lastName)
If your application uses multiple swimlanes, retrieve the owner details dynamically:
// Get security details
securityDetails = additionalData.get("securityDetails");
// Extract owner details based on the swimlane
ownerDetails = securityDetails.Default.owner.details;
<Info>
Default is the swimlane name in this example. Replace it with your swimlane name.
</Info>
// Store extracted values in the process instance
output.put("email", ownerDetails.email);
output.put("username", securityDetails.Default.owner.username);
output.put("firstName", ownerDetails.firstName);
output.put("lastName", ownerDetails.lastName);
Example output:
{
"email": "user@email.com",
"username": "user@email.com",
"firstName": "John",
"lastName": "Snow"
}
To make business rules flexible, store configuration values in project configuration parameters instead of hardcoding them.
Retrieve configuration parameters
Use a business rule to fetch and store configuration parameter values dynamically:
// Retrieve a configuration parameter (e.g., commission percentage)
commissionPercentage = additionalData.applicationConfiguration.get("commissionPercentage");
// Store the retrieved value in output in the process instance
output.put("commissionPercentage", commissionPercentage);
Example use case: commission calculation
This example shows how to calculate a commission value dynamically using a configuration parameter.
Configuration parameters
| Parameter Name | Description | Example Value |
|---|
commissionPercentage | The percentage used to calculate the commission | 0.05 (5%) |
Configuration parameters can be modified in:➡ FlowX.AI Designer → Your Project → Configuration Parameters
Process flow
User Inputs an Amount
In a User task we have an input UI element where the user provides an amount (userInputAmount). Retrieve Commission Percentage from Configuration
In the next node, a Service Task fetches the commissionPercentage from the configuration parameters.Business rule used:// Retrieve user input
amount = input.get("userInputAmount");
// Retrieve a value from configuration
commissionPercentage = additionalData.applicationConfiguration.get("commissionPercentage");
// Apply the configuration value
commissionValue = amount * commissionPercentage;
// Store the calculated result in the process instance
output.put("commissionValue", commissionValue);
Calculate Commission
Formula used to calculate the commission:commissionValue=userInputAmount×commissionPercentage Store and Output the Result
The computed commissionValue is stored for further processing.Final result:
Why Use Configuration Parameters?✅ Keep business rules flexible by avoiding hardcoded values.
✅ Adapt calculations dynamically based on environment settings.
✅ Simplify updates by modifying values in the project configuration rather than editing business rules.