Macros
Last updated
Last updated
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.
* field
: See the next table.
See Examples of macros below for examples of values for the macros listed above.
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.
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.
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
:
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
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
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
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