Comment on page
Macros
The following macros can be used in transition conditions or in the additional parameters of application type actions. They will be replaced by their associated value during process execution.
Macro | Tag | Value |
Current user.
field * | <WF_USER_field> * | User information |
Assigned user.
field * | <WF_ASSIGNEE_field> * | Assignee user information |
Requester.
field * | <WF_REQUESTER_field> * | Requester information |
Action initiator.
field * | <WF_INITIATOR_field> * | Action initiator information |
Process.
Id | <WF_PROCESS_ID> | Process identifier |
Process.
Name | <WF_PROCESS_NAME> | Process name |
Process.
Description | <WF_PROCESS_DESC> | Process description |
Process.
Status | <WF_PROCESS_STATUS> | Process status |
Process.
FormUrl | <WF_PROCESS_FORM_URL> | Process form URL |
Process.
Version | <WF_PROCESS_VERSION> | Process version |
Action.
Id | <WF_ACTIVITY_ID> | Action identifier |
Action.
Name | <WF_ACTIVITY_NAME> | Action name |
Action.
Description | <WF_ACTIVITY_DESC> | Action description |
Current action.
Id | <WF_ACTIVITY_INST_ID> | Action instance identifier |
Current action.
Name | <WF_ACTIVITY_INST_NAME> | Action instance name |
Current action.
Creation date | <WF_ACTIVITY_INST_CREATION_DATETIME> | Action creation date |
Current action.
Deadline | <WF_ACTIVITY_INST_LIMIT_DATETIME> | Action deadline |
Current action.
Pre-overdue days | <WF_ACTIVITY_INST_PREOVERDUE_DAYS> | Number of days before the action becomes overdue, rounded up to the nearest day |
Current action.
Pre-overdue hours | <WF_ACTIVITY_INST_PREOVERDUE_HOURS> | Number of hours before the action becomes overdue, rounded up to the nearest hour |
Current action.
Pre-overdue minutes | <WF_ACTIVITY_INST_PREOVERDUE_MINUTES> | Number of minutes before the action becomes overdue, rounded up to the nearest minute |
Current action.
Pre-overdue seconds | <WF_ACTIVITY_INST_PREOVERDUE_SECONDS> | Number of seconds before the action becomes overdue, rounded up to the nearest second |
Current action.
Overdue days | <WF_ACTIVITY_INST_OVERDUE_DAYS> | Number of days that the action is overdue, rounded down to the nearest day |
Current action.
Overdue hours | <WF_ACTIVITY_INST_OVERDUE_HOURS> | Number of hours that the action is overdue, rounded down to the nearest hour |
Current action.
Overdue minutes | <WF_ACTIVITY_INST_OVERDUE_MINUTES> | Number of minutes that the action is overdue, rounded down to the nearest minute |
Current action.
Overdue seconds | <WF_ACTIVITY_INST_OVERDUE_SECONDS> | Number of seconds that the action is overdue, rounded down to the nearest second |
Current action.
Count | <WF_ACTIVITY_INST_COUNT> | Number of completed instances for the current action |
Current action.
Direct loop count | <WF_ACTIVITY_INST_DIRECT_LOOP_COUNT> | Number of completed instances on direct loop for the current action |
Request.
Id | <WF_PROCESS_INST_ID> | Request identifier (process instance) |
Request.
Relative Id | <WF_PROCESS_INST_RELATIVE_ID> | Request relative identifier |
Request.
Month relative Id | <WF_PROCESS_INST_MONTH_RELATIVE_ID> | Request month relative identifier |
Request.
Year relative Id | <WF_PROCESS_INST_YEAR_RELATIVE_ID> | Request year relative identifier |
Request.
Name | <WF_PROCESS_INST_NAME> | Request name (process instance) |
Request.
Creation date | <WF_PROCESS_INST_CREATION_DATETIME> | Request creation date (process instance) |
Request.
Deadline | <WF_PROCESS_INST_LIMIT_DATETIME> | Request deadline (process instance) |
Action.
Participant name | <WF_PARTICIPANT_NAME> | Action participant name |
System.
Date | <WF_SYSTEM_DATE> | System date |
System.
Date/time | <WF_SYSTEM_DATETIME> | System date/time |
System.
Time | <WF_SYSTEM_TIME> | System time |
System.
Language | <WF_SYSTEM_LANGUAGE> | User system language |
System.
Null | <WF_SYSTEM_NULL> | Enable process designer to reinitialize a PDF form field value to Null |
System.
ApplicationBase
Url | <WF_SYSTEM_APPLICATION_BASE_URL> | Returns the application root URL (e.g. http://[servername] ) |
System.
ApplicationUrl | <WF_SYSTEM_APPLICATION_URL> | Returns the WorkflowGen application URL (e.g. http://[servername]/wfgen ) |
System.
ApplicationPortal
ScriptUrl | <WF_SYSTEM_APPLICATION_PORTAL_SCRIPT_URL> | Returns the WorkflowGen application portal page URL (e.g. http://[servername]/wfgen/show.aspx ) |
System.
ApplicationConfigPath | <WF_SYSTEM_APPLICATION_CONFIG_PATH> | Returns the physical path to the WorkflowGen web.config (e.g. C:\inetpub\wwwroot\wfgen\web.config ) |
System. ApplicationDataPath | <WF_SYSTEM_APPLICATION_DATA_PATH> | Returns the physical path of the application data folder (e.g. C:\inetpub\wwwroot\wfgen\app_data ) |
System.Guid | <WF_SYSTEM_GUID> | System-generated globally unique identifier ⚠️ Important: The generated GUID will be the same when used in standard action parameters except when the scripting option is enabled, in which case each expression will have a unique GUID. |
Parent.
Process Name | <WF_PARENT_PROCESS_NAME> | Returns the parent process name in a sub-process action |
Parent.
Process Version | <WF_PARENT_PROCESS_VERSION> | Returns the parent process version in a sub-process action |
Parent.
Request Id | <WF_PARENT_PROCESS_INST_ID> | Returns the parent request ID in a sub-process action |
Parent.
Current action Id | <WF_PARENT_ACTIVITY_INST_ID> | Returns the parent current action ID in a sub-process action |
Web configuration app settings | <WF_APP_SETTING_name> | Macros created based on custom web configuration app settings (see the Web configuration app settings macros section) |
*
field
: See the next table.Field | Description |
LASTNAME | Last name |
FIRSTNAME | First name |
USERNAME | Name of the user |
MANAGER | Manager's username |
MANAGER_LASTNAME | Manager's last name |
MANAGER_FIRSTNAME | Manager's first name |
EMAIL | Email address |
PHONE | Telephone number |
MOBILE | Mobile telephone number |
PAGER | Pager number |
FAX | Fax number |
OFFICE | Office number |
DEPARTMENT | Department number |
COMPANY | Company |
JOBTITLE | Title |
INITIALS | Initials |
TITLE | Civic status |
EMPLOYEENUMBER | Employee number |
EMPLOYEETYPE | Type of employee |
POSTALADDRESS | Postal address |
ZIPCODE | Zip code |
CITY | City |
STATE | State |
COUNTRY | Country |
OBJECTSID | SID |
EXTATT1 | Extended attribute 1 |
EXTATT2 | Extended attribute 2 |
EXTATT3 | Extended attribute 3 |
EXTATT4 | Extended attribute 4 |
EXTATT5 | Extended attribute 5 |
You can use macros in the transitions and additional notification conditions or in the action parameters to send the value of the macro to the parameter value by choosing one macro from the list or by concatenating several macro codes as a text value.
If you want to send the username of the requester in the action's
REQUESTER_USERNAME
field, you have to add an additional parameter with the following settings:- Parameter name:
REQUESTER_USERNAME
- Send the value of a macro:
Requester.Username
If you want to send the first name and the last name of the requester in the action's
REQUESTER_NAME
field with a space in between the two, you have to add an additional parameter with the following settings:- Parameter name:
REQUESTER_NAME
- Send the value of a text:
<WF_REQUESTER_FIRSTNAME>
<WF_REQUESTER_LASTNAME>
In transition or notification conditions, you can use the following macros on file type process data to access the file properties.
Field | Type | Description |
FILENAME | TEXT | File name |
SIZE | NUMERIC | File size in bytes |
CONTENTTYPE | TEXT | File content type |
DESCRIPTION | TEXT | File description |
DATELASTMODIFIED | DATETIME | Date of last modification of the file |
The following examples assume you have a file type data called
MY_FILE
.- Rule: Check if the file name contains the keyword "report":
- Method:
InStr(1,<MY_FILE.FILENAME>,"report",1) <> 0
- Rule: Check if the file size is less than 1 MB:
- Method:
<MY_FILE.SIZE> < 1024
- Rule: Check if the file is a Microsoft Word document:
- Method:
<MY_FILE.CONTENTTYPE> = "application/msword"
- Rule: Check if the file was modified today:
- Method:
<MY_FILE.DATELASTMODIFIED> > [Date]
You can also use the name of the data to check if the file exists in the process by using the
IsNull()
function.If you have a FILE type data called
MY_FILE
, you can use the syntax below in a condition to check if the file exists:IsNull(<MY_FILE>)
The following table shows examples of the macros listed above.
Macro | Example |
Current user.field | <WF_USER_FIRSTNAME> <WF_USER_DEPARTMENT> will give "John Accounting" |
Assigned user.field | <WF_ASSIGNEE_EMPLOYEENUMBER>
<WF_ASSIGNEE_EMPLOYEETYPE> will give "11225 Permanent" |
Requester.field | <WF_REQUESTER_COMPANY> <WF_REQUESTER_LASTNAME> will give "My company Smith" |
Action initiator.field | <WF_INITIATOR_FIRSTNAME> <WF_INITIATOR_LASTNAME> will give "John Smith" |
Process.Id | 12 |
Process.Name | "2_LEVELS_APPROVAL" |
Process.Description | "2 levels approval" |
Process.Status | "ACTIVE" |
Process.FormUrl | "http://mycompany.com/wfgen/wfapps/webforms/MACRO_TEST_2/V1/Default.aspx" |
Process.Version | 1 |
Action.Id | 2 |
Action.Name | "INITIATES" |
Action.Description | "The Requester initiates the request" |
Current action.Id | 2 |
Current action.Name | "2-VALIDATES" |
Current action.Creation date | 2019-04-20T20:23:07Z |
Current action.Deadline | 2019-04-30-T20:25:25:46Z |
Current action.Count | 2 |
Request.Id | 1701 |
Request.Relative Id | 12 |
Request.Month relative Id | 12 |
Request.Year relative Id | 12 |
Request.Name | "2_LEVELS_APPROVAL #1795" |
Request.Creation date | 2019-04-20T20:35:00Z |
Request.Deadline | 2019-04-30T09:00:00Z |
Action.Participant name | "John" |
System.Date | 4/20/2019 |
System.Date/time | 4/20/2019 2:44 PM |
System.Time | 1:44 PM |
System.Language | "en-US" |
System.Null | <NULL> |
Application.BaseUrl | http://myserver.com |
This feature helps to simplify the deployment of business processes in a multi-instance WorkflowGen environment by allowing you to define common data or instance-specific data as a key-value pair that can be used in your process by way of a macro in action parameters, in transition conditions to control the flow, and in action notifications instead of hard-coding these data in the process definition.
You can create your own macros by defining custom app settings in the WorkflowGen web configuration file.
You must use the
EngineMacroAppSettings
configuration parameter to define your custom macros. You can specify the exact key name, or use a prefix followed by *
(asterisk) as shown in the example below, which adds the three custom macros (<WF_APP_SETTING_MySecretKey1>
, <WF_APP_SETTING_MySecretKey2>
, and <WF_APP_SETTING_MySecretKey3>
).The
<WF_APP_SETTING_MySecretKey1>
, <WF_APP_SETTING_MySecretKey2>
, and <WF_APP_SETTING_MySecretKey3>
macros will be available at design and runtime with the app setting below in the web.config
:<configuration>
<appSettings>
<add key="MySecretKey1" value="4n(#N$HT0$Bohv!" />
<add key="MySecretKey2" value="9et9tzV{Hnn]EsDE" />
<add key="MySecretKey3" value="e#8BHvXa8N*LvFaY" />
<add key="EngineMacroAppSettings" value="MySecretKey1, MySecret*" />
</appSettings>
</configuration>
Last modified 8mo ago