Only this pageAll pages
Powered by GitBook
1 of 61

8.3

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

WorkflowGen Administration Guide

This guide describes all the screens of the WorkflowGen Administration Module and provides a complete list of related operating rules. It also describes the built-in workflow applications and how to use them. It is an important resource that will assist you in understanding how the software behaves under various situations.

The guide also includes a list of possible errors along with their explanations.

Administration Module Overview

Overview

The WorkflowGen Administration Module is a web application whose main functions are:

  • Managing directories, groups, and users

  • Defining processes and global information

  • Defining security relating to users and processes

Since these operations are highly sensitive, access to and management of the Administration Module should be considered carefully.

Administration Module access

The Administration Module can be accessed through the following URL: http://yourwebsite/wfgen/admin/default.aspx.

  • default.aspx is optional if preconfigured as the default document of the WorkflowGen website.

  • yourwebsite can be a DNS or an IP address; however, a DNS address is recommended to ensure a smooth transition in the event that the site is moved to different servers, or if using a web farm configuration.

Authentication

Depending on the authentication method chosen by the WorkflowGen Administrator, you may have to enter a username and a password when you want to log in to WorkflowGen. These login credentials can also correspond to the ones used when you open a Windows session.

Language selection

You can choose a language from the home page of the Administration Module. If the list is not displayed, the application has been configured to use a specific language. The country beside the language allows the system to use the correct regional settings in the application (mainly in displaying dates or numeric values).

For example, English (United Kingdom) corresponds to an English GUI with the regional settings of the United Kingdom (date format: dd/mm/yyyy), while English (United States) corresponds to an English GUI with the regional settings of the United States (date format: m/d/yyyy).

Currently, you can choose from the following languages:

  • English (Australia)

  • English (Canada)

  • English (United Kingdom)

  • English (United States)

Administration Module structure

Banner menu

Click Directories in the banner menu to access the Directories screen.

Click Directories to open the Directories list.

Click Processes in the banner menu to open the Process folders list.

Click Participants in the banner menu to open the Participants list.

Click Applications in the banner menu to open the Applications list.

Click Categories in the banner menu to open the Categories list.

Click Global Lists in the banner menu to open the Global Lists list.

Click Portal in the banner menu to access the User Portal.

Process workflow

On the Administration Module home page, click an entry in the process list to access the Process workflow, which includes the following tabs:

  • Information

  • Participants

  • Data

  • Form

Double-click an action in Graphical view or click an entry in List view to open the Edit action form, which includes the following tabs:

  • Information

  • Parameters

  • Next actions

  • Notifications

The Process workflow screen also includes the following links:

  • Full screen

  • Report

  • Test

Process management

In the process management section on the Administration Module home page, click:

  • Processes to access the Process folder list and subsequently the Process list and Process form.

  • Participants to access the Participants list and subsequently the Participants form.

  • Applications to access the Applications list and subsequently the Application form.

User management

In the user management section on the Administration Module home page, click:

  • Directories to access the Directories list and subsequently the Directory form (see ).

  • Users to access the Users list and subsequently the User form (see ).

  • Groups to access the Groups list and subsequently the Group form (see ).

See for information on how to use these features.

Configuration Panel

The Configuration Panel includes the following tabs:

  • General

  • Portal

  • Administration

  • Directory synchronization

See for information on these settings.

Resource center

Click Resource center to access the WorkflowGen Resource center website.

Nomenclature

Most of the information that is kept in the WorkflowGen database is identified through a combination internal ID name.

For technical reasons and legibility, these names must contain only characters: alphanumeric combinations, hyphen (-), and underscore (_) characters (no spaces).

Administrators can limit the characters to the ANSI table or allow the use of the entire range of alphanumeric characters, including double-byte characters (Unicode).

On the Administration tab in the Configuration Panel, select the Name encoding restriction checkbox. In most cases, the name must not be longer than 30 characters.

Security

Access to the Administration Module is limited to users with an administrator profile and users that are participants designated as process managers. However, during the software installation, access control may be deactivated temporarily.

Once authentication is activated, the following restrictions apply:

  • Administrators have no access restrictions except for the Configuration Panel, which requires specific access rights (see the for more information).

  • Process managers have access to the process definition and the statistics of their folders; however, they have no control over directories, groups, user management, delegations, global participants, or application management.

  • Process supervisors can access the statistics of their processes from the User Portal, but cannot log in to the Administration Module.

Deleting and archiving

To maintain the integrity of completed requests, information cannot be deleted if it relates to the process definition or to global data. Similarly, information used in real (active) requests made by users cannot be deleted.

Global Information

Overview

Global information relates to information that can be used by all processes:

  • represent the company’s organization in the management and execution of processes.

UPDATEPROCESSDATA Workflow Application

Overview

The UPDATEPROCESSDATA workflow application allows you to update process data associated with a request. It provides a simple solution for inter-process communications.

GETPROCESSDATA Workflow Application

Overview

The GETPROCESSDATA workflow application lets you retrieve process data values for a specified request. It is very useful for inter-process communications.

As an initial sub-process action, GETPROCESSDATA provides a flexible alternative to the sub-process parameters, since it involves no versioning management constraints with the parent process.

GETFORMDATA Workflow Application

Overview

The GETFORMDATA workflow application lets you retrieve form field values for a specified request. It is useful when you need to retrieve form data which is not mapped to process data.

GETFORMDATA can only be used with TEXT, NUMERIC, and DATETIME type fields and data.

Using default and other parameters

Request

The required parameter is REQUEST_ID: IN parameter, numeric value. This parameter must contain a valid request ID.

Activity

The optional parameters are the process data to update (the parameter name in the processing data name). You must define those parameters on the corresponding action parameters.

To create a workflow action using UPDATEPROCESSDATA, use the following parameters:

  • REQUEST_ID send value of:

    • Data: REQUEST_ID _UPDATE

  • AMOUNT send value of:

    • Data: AMOUNT_UPDATE

You may have to add an exception management to handle possible errors (e.g. invalid request ID).

📌 Example

If you want to update AMOUNT with the value of the AMOUNT_UPDATE process data, the request ID to update is stored in a REQUEST_ID_UPDATE process data.

Using default and other parameters

Request

The required parameter request is REQUEST_ID (IN, numeric): the request ID that contains the process data to retrieve.

Activity

The other parameters are defined in the workflow action according to your needs.

  • Parameter name: The name of the remote process data to retrieve

  • Receive value into: The process data to update

📌 Example

To retrieve the value of the COMPANY process data into the CUSTOMER_COMPANY process data:

  • Parameter name: COMPANY

  • Receive value into: CUSTOMER_COMPANY

The process data types must be the same. You can add an exception management to handle possible errors (e.g. invalid request ID).

Using default and other parameters

The required parameter is REQUEST_ID (IN, numeric), which is the request ID that contains the process data to retrieve.

The optional parameter is FORM_DATA_NAME (IN, text), which is the process data name that contains the form data to query. By default, GETFORMDATA uses the FORM_DATA process data name.

The other parameters are defined in the workflow action according to your needs:

  • Parameter name: The form field full ID (e.g. REQUEST_AMOUNT)

  • Receive value into: The process data to update

📌 Example

To retrieve the value of the REQUEST_COMPANY form field into the CUSTOMER_COMPANY process data , the process data and the field data types must be the same. You may have to add an exception management to handle possible errors (e.g. invalid request ID).

Applications are the definitions of workflow applications called by WorkflowGen to execute human or system actions.

  • Categories are keywords associated with processes for search and sort purposes in the User Portal only.

  • Global Lists allows authorized users to manage data lists to be used with web forms.

  • Global information can only be managed by users with a WorkflowGen administrator profile.

    Participants

    User Management

    Overview

    To participate in a process or manage processes, the user must be identified as a user in WorkflowGen and have an account (username and password) in the company directory that WorkflowGen will use for authentication.

    Users can be members of one or more directory groups; however, a directory group cannot belong to another directory group.

    A user may have an active or inactive status. If a user’s status is set to inactive, they cannot access the application.

    A user can only be truly deleted from the WorkflowGen database if they are not referenced anywhere in WorkflowGen. If they are referenced, then the user will be archived. Archiving means that the username will be renamed and will be set to archived status, and the user will no longer be able to access the application.

    Several directories can be managed in WorkflowGen. This is particularly useful when the synchronization module is used. For example, one directory can be managed manually in WorkflowGen while another can be synchronized based on an existing directory (e.g. Active Directory). Even if many directories are being used, each username must be unique across the entire system. If multiple directories are being used to synchronize several Active Directory domains, domain names can be prefixed to the user name to eliminate the unique user issue (in the event that user names are identical across domains).

    User management can only be performed by users with an administrator profile.

    By default, WorkflowGen is installed with the WORKFLOWGEN directory and one administrative user, neither of which can be deleted.

    Français (Canada)

  • Français (France)

  • Français (Suisse)

  • Deutsch (Deutschland)

  • Deutsch (Schweiz)

  • Italiano (Italia)

  • Português (Portugal)

  • Español (España)

  • Workflow (in Graphical or List view)

    Categories to access the Categories list and subsequently the Category form.
  • Global Lists to access Global Lists (see Global Lists).

  • Delegations to access the Delegations list and subsequently the Delegation form (see Delegations).

  • Synchronization logs to access the Synchronizations logs list and subsequently the View log (see Directory Synchronization).

  • Remote Approval

  • Diagnostic

  • Product information

  • Directories
    Users
    Groups
    User Management
    Configuration Panel
    WorkflowGen Technical Guide

    Management

    Lifecycle

    The Form Designer creates a web form (ASPX and code-behind) that's based mainly on both ASP.NET Framework and WorkflowGen.My libraries.

    This gives you the advantage of many possibilities for customizing and integrating the web form to your specific needs, especially in an advanced and integrated development environment such as Visual Studio.

    Example of the process lifecycle

    • A first version is created, which is done quickly and easily using the built-in form designer. The end-users will then test the first version as proof of concept.

    • Later, the process can be deployed for production if it meets the business's and end-users' expectations.

    • If there are custom or advanced functionalities required in a new version that aren't available in the built-in form designer, then the process can be migrated to the web form development.

    Migrating a process

    In order to migrate a process with a built-in form to a process web form, follow these steps:

    1. Create a new version of or duplicate the process.

    2. Uncheck the Built-in form designer option in the New process information tab.

    3. In Visual Studio, open the web form website with the folder path (\wfgen\wfapps\webforms[process name]\V[version number]) and start your development.

    Security

    All connection strings in \wwwroot\wfgen\web.config are available for use in the Form Designer and Global Lists except for the master database connection string. While the application tries to verify that user-supplied SQL queries used in these contexts are secure and contain only SELECT statements, you should also make sure that exposed connection strings are secured at the database level. This means that if you don’t want a process manager or a Global List manager to be able to update or modify a certain database, the connection string should have read-only access to your database.

    Keep in mind that process designers can also use any connection string that they have access to from the Form designer’s code-behind editor. If you want to restrict a Global List manager’s access to a connection string, while still allowing the process designer to use it, you should add the connection string to the web form application’s web.config (\wwwroot\wfgen\WfApps\WebForms\web.config).

    Connection strings in web forms'web.config files are not exposed in the WorkflowGen UI, so for process designers to be able to use them, they must know the name of the connection string. This is also a convenient way to give different process managers access to specific connection strings.

    XMLTRANS Workflow Application

    Overview

    The XMLTRANS workflow application transforms any XML document to any kind of other format using an XSLT sheet.

    How it works

    Error Messages

    License

    You can choose to leave your web form folder ([process name]\V[version number]) as a sub-folder within the web forms web application (\wfgen\wfapps\webforms) or transform this folder into a web application in IIS.

    • The former case will make your web form dependent and uses the web form's web application resources (e.g. \bin, \App_Data, \App_Resource, \App_Themes, etc.) as it did prior to migration.

    • The latter case will make your web form as an independent web application. In this case, you'll need to copy the web form's \bin sub-folder to your web form’s folder and refresh the opened project in Visual Studio, if needed.

    License error

    This operation is not allowed with your license.

    Security

    Error

    Cause

    You are not authorized to view this page

    The user must be a WorkflowGen user or administrator to access the application.

    You are not authorized to access this file

    If downloading is secured, only an administrator, a process manager, or a participant with sufficient read rights may access the request files.

    Error

    Cause

    Your license has expired

    Your trial period has expired. You must enter a valid serial number to activate your version.

    A valid license cannot be found

    The license file doesn’t match your serial number.

    The WorkflowGen engine calls the XMLTRANS application with the context and the parameters. XMLTRANS uses the context and the parameters to get the following:
    • An XML file to convert

    • An XSLT file to convert the XML file to any kind of output

    • A RESULT parameter to receive the output

    • A RESULT_FILEEXT parameter to know the extension of the output

    • A RESULT_MIMETYPE parameter to know the MIME type of the output

    After XMLTRANS gathers this information, it’s ready to make the transformation, and then returns the context to WorkflowGen so that the workflow can continue.

    Possible execution errors

    The following errors can occur during the execution of the transactions:

    Code

    Description

    1

    The XML required field is missing

    2

    The RESULT required field is missing

    3

    The XSLT required field is missing

    4

    The XML file is not a valid XML document

    5

    The XSLT file was not found

    COMPLETEACTION Workflow Application

    Overview

    The COMPLETEACTION workflow application lets you complete an ongoing action with the corresponding parameters. It provides a simple solution for inter-process communications and synchronization.

    COPYDATA Workflow Application

    Overview

    The COPYDATA workflow application is used to copy data from a parameter to a different data.

    How it works

    6

    The XML file was not found

    7

    Cannot write the output to the RESULT parameter. Verify that the folder security settings are correct.

    8

    Cannot read the XML file. Verify that the folder security settings are correct.

    9

    The XSLT file is not a valid XSLT transformation style sheet

    10

    The received context was not valid

    11

    If RESULT_FILEEXT or RESULT_MIMETYPE is given, the other one must be given too

    Parameters

    Request

    Parameter

    Type

    Direction

    Description

    REQUEST_ID

    Numeric

    IN

    Request ID of the action to be completed

    Action

    Parameter

    Type

    Direction

    Description

    ACTION_NAME

    Text

    IN

    Name of the action to be completed (the first instance found will be completed)

    ACTION_ID

    Numeric

    IN

    Action instance ID of the action to be completed

    IMPERSONATE_USERNAME

    Optional parameters

    The optional parameters are the parameters of the action to be completed. You will have to define these parameters in the corresponding action parameters.

    📌 Example

    If you want to complete an asynchronous web procedure action called MYASYNCACTION, which has the following parameter:

    • AMOUNT: receive data into TOTAL (you have to create this process data)

    Then, in your process, you have to add an action using the COMPLETEACTION application with the following parameters:

    Parameter

    Type

    Direction

    Description

    REQUEST_ID

    Numeric

    IN

    Send value of MY_REQUEST_ID (a numeric process data containing the request ID of the action to complete, e.g. 1320)

    ACTION_NAME

    Text

    IN

    Send value of the name of the action to complete (e.g. MYSYNCACTION)

    AMOUNT

    You should add exception handling on COMPLETEACTION type actions in case of error (for example, an invalid request number or an invalid action number, etc.).

    All parameters are optional, and parameter names can be set by the process designer. To copy a data from one to another, the only action required is to set the default value as the data to copy and set the data into which you want to retrieve it (as long as the data type is compatible). The parameters’ directions must be INOUT. There is no limit to the number of parameters.

    Parameters

    Optional parameters

    Parameter

    Type

    Direction

    Description

    DATA_DATETIME1

    Date/Time

    INOUT

    DATETIME type data to copy

    DATA_FILE1

    File

    INOUT

    FILE type data to copy

    DATA_NUMERIC1

    Examples of parameters

    Parameter

    Type

    Direction

    Description

    DATA_FILE1

    File

    INOUT

    Send value of FORM_DATA Retrieve value into FORM_ACTION_ACTION1

    MY_PARAMETER_NAME

    Text

    INOUT

    Send value of TEXT_DATA Retrieve value into OTHER_TEXT_DATA

    Delegations

    Delegation list screen

    Menu banner

    Filters

    Delegation list

    Adding a delegation

    When adding a new delegation, you can decide whether or not to send a notification email to the delegated user via the displayed message box.

    A delegation is unique based on the process, the participant, the delegator, the delegatee, the begin date, and the end date. This means that you cannot define multiple time periods for a given delegation.

    As of WorkflowGen 8.0.3:

    • You can define cross-delegations on overlapping periods between the same users on the same participant.

    • You can define multi-level delegations, so if user A has delegated actions to user B, user B can then delegate these actions to user C.

    Deleting a delegation

    Deleting a delegation does not delete the associated user.

    Process versioning

    Delegations are process version-specific:

    • New versions of a process copy all existing delegations where possible, based on matching participant names.

    • Since delegations can only be created for active processes, delegations are only carried forward when a versioned process is activated.

    • A delegatee can only see the delegator’s actions and requests from the version at which they were delegated the role, and going forward if copied by creating a new version and not changed subsequently.

    YOUSIGNCHECK Workflow Application

    Overview

    The YOUSIGNCHECK workflow application lets you verify the status of an agreement and download its associated file, which is a concatenation of attached files.

    How it works

    • You can verify the status of an agreement and download the file from Yousign based on your status criteria.

    • Application logs are available. These can be specified by setting the value of the YousignCheckLogLevel parameter in the web.config file to 0 to deactivate logs, 1 for error logs, 2 for information logs, or 3 for debug logs; the default value is 0.

    Configuring the Yousign API

    For instructions on how to configure the the Yousign API, see the section in the chapter.

    Required parameter

    Optional parameters

    Yousign configuration

    General

    Example with YOUSIGNSEND

    In the following example, the YOUSIGNSEND action is directly followed by the YOUSIGNCHECK action. This action will loop back onto itself until the status changes to done, canceled, expired, deleted, or rejected.

    If the status returned meets the condition, the document will be downloaded from Yousign.

    With the system loop action function, the YOUSIGNCHECK action will be executed every x seconds until the OUT condition is met.

    DOCAPOSTECHECK Workflow Application

    Overview

    The DOCAPOSTECHECK workflow application lets you check the status of a transaction and download the associated files.

    How it works

    • You can check the status of a transaction and download the file from Docaposte.

    • Application logs are available. These can be specified by setting the value of the DocaposteCheckLogLevel parameter in the web.config file to 0 to disable logging, 1 for error logs, 2 for information logs, or 3 for debug logs; The default value is 0.

    Required parameter

    Optional parameters

    Docaposte configuration

    General

    Example with DOCAPOSTESEND

    In the following example, the DOCAPOSTESEND action is directly followed by the DOCAPOSTCHECK action. This action will loop back onto itself until the status is other than OPEN.

    If the returned status meets the condition, the document will be downloaded from Docaposte.

    With the system loop action function, the DOCAPOSTECHECK action will be executed every x seconds until the OUT condition is met.

    Directories

    Directory screen

    On the Administration Module home page, click Directories to display the Directories list.

    Links

    Remarks

    Directory list

    Editing a directory

    To edit a directory, click its name in the Directory list.

    Deleting a directory

    • The WORKFLOWGEN directory cannot be deleted.

    • A directory containing users or groups cannot be deleted.

    • A directory can only be deleted if it is empty.

    SENDMESSAGE Workflow Application

    Overview

    The SENDMESSAGE workflow application lets users send SMS notifications using the Twilio SMS platform; to use this application, you’ll need to set up an account on the Twilio website at https://www.twilio.com/sms.

    How it works

    The SENDMESSAGE application requires two parameters (BODY and TO) and associating these with their corresponding IDs.

    The values that correspond to the ACCOUNT_SID, AUTH_TOKEN, and FROM parameters are required to connect to Twilio, but these are generally configured in the Instant messaging section on the General tab in the Configuration Panel. However, if they have been configured in the SENDMESSAGE action in the process, these values will override any corresponding values set in the Configuration Panel.

    Parameters

    Required parameters

    Optional parameters

    * These parameters must be associated to a Twilio account.

    Categories

    Category list

    Category screen

    Menu banner

    Filters

    * A filter can be applied to a part of a field.

    Category list

    Category form

    Deleting a category

    A category cannot be deleted if used by a process.

    Participants

    Participants list

    Participants screen

    Text

    IN

    Username of the user who will be associated with completing the action

    Numeric

    IN

    Send value of MY_AMOUNT (a numeric process data containing a value for the amount, e.g. 1234.56)

    Numeric

    INOUT

    NUMERIC type data to copy

    DATA_TEXT1

    Text

    INOUT

    TEXT type data to copy

    Delegation end date (included); if not defined, the delegation is unlimited.

    When a user changes a delegation in the current version, it does not affect prior delegations performed for previous versions.
  • If prior version actions and requests also need to be delegated, an administrator must use the administrator delegation screen to add the prior versions' delegations.

  • Links

    Remarks

    New delegation

    Displays a blank delegation form to add a new delegation

    Refresh

    Refreshes the delegations list

    External filters

    Remarks

    Process

    Displays the delegations of the selected process (only active or archived processes are listed)

    Filter on

    Remarks

    Participant

    Filter by participant

    User

    Filter by user (delegator)

    Delegated user

    Filter by delegated user

    Column

    Remarks

    Process

    Process name

    Participant

    Participant name

    User

    User name (delegator)

    Delegated user

    Delegated user name

    From ...

    Delegation start date (included); if not defined, the delegation is unlimited.

    To ...

    Agreement status

    Parameter

    Type

    Direction

    Description

    YOUSIGN_SIGNATURE_ID

    TEXT

    IN

    ID of the Yousign signature to verify

    Parameters

    Type

    Direction

    Description

    YOUSIGN_API_KEY

    TEXT

    IN

    Yousign API key By default, this value comes from the YousignApiKey parameter in the web.config file.

    YOUSIGN_HOST_SERVER

    TEXT

    IN

    Yousign host server (e.g.: https://api.yousign.app/v3)

    By default, this value comes from the YousignHostServer parameter in the web.config file.

    Parameter

    Type

    Direction

    Description

    VALID_STATUS_LIST

    TEXT

    IN

    Valid status to download the document

    Possible values:

    • draft

    • ongoing

    • done

    • deleted

    • expired

    • canceled

    • approval

    • rejected

    • declined

    Default: done,canceled,expired,deleted,rejected

    YOUSIGN_DOCUMENT

    FILE

    OUT

    Yousign document

    YOUSIGN_STATUS

    TEXT

    Configuring the Yousign API
    YOUSIGNSEND Workflow Application
    Configuring a YOUSIGNCHECK action

    OUT

    IN

    Docaposte host server

    By default, this value comes from the DocaposteHostServer parameter in the web.config file.

    OUT

    Transaction status

    Parameter

    Type

    Direction

    Description

    DOCAPOSTE_TRANSACTION_ID

    TEXT

    IN

    ID of the transaction to check

    Parameters

    Type

    Direction

    Description

    DOCAPOSTE_USERNAME

    TEXT

    IN

    Docaposte username By default, this value comes from the DocaposteUsername parameter in the web.config file.

    DOCAPOSTE_PASSWORD

    TEXT

    IN

    Docaposte password By default, this value comes from the DocapostePassword parameter in the web.config file.

    DOCAPOSTE_HOST_SERVER

    Parameters

    Type

    Direction

    Description

    DOCAPOSTE_DOCUMENT_NAMES

    TEXT

    IN

    Name(s) of the document(s) sent for signature(s)

    DOCAPOSTE_DOCUMENTx

    FILE

    OUT

    Signed document(s), where x is the document number

    DOCAPOSTE_STATUS

    TEXT

    TEXT

    IN

    Sender’s phone number, which must contain the country code (using a + before the country code is optional, e.g. +15551234567) *

    MESSAGE_SID

    Text

    OUT

    Alphanumeric code returned to identify successfully sent messages; for more information, see

    ERROR_MESSAGE

    Text

    OUT

    Message returned in case of error; for a list of Twilio error messages and codes, see

    ERROR_CODE

    Text

    OUT

    Error code returned in case of error; for a list of Twilio error messages and codes, see

    Parameter

    Type

    Direction

    Description

    BODY

    Text

    IN

    Message text

    TO

    Text

    IN

    Recipient’s phone number, which must contain the country code (using a + before the country code is optional, e.g. +15551234567)

    Parameter

    Type

    Direction

    Description

    ACCOUNT_SID

    Text

    IN

    Account security identifier *

    AUTH_TOKEN

    Text

    IN

    Account authentication token *

    FROM

    Text

    Menu banner

    Links

    Remarks

    New participant

    Displays a blank participants form to add a new delegation

    Refresh

    Refreshes the participant list displayed

    Filters

    Filter on *

    Remarks

    Name

    Filters by participant name

    Description

    Filters by participant description

    * A filter can be applied to a part of a field.

    Participants list

    Columns

    Remarks

    Name

    Participant’s name (a link displays the participants form in edit mode)

    Description

    Participant description

    Utilization

    Number of processes the participant belongs to, added to the number of files the participant is a manager of

    Users

    Number of potential users of the participant

    Participant form

    Fields

    Remarks

    Name

    Unique identifier for the participant; must respect nomenclature and be limited to 30 characters (required field)

    Description

    Participant description limited to 255 characters (required field)

    Participant type

    Type of participant defining possible associations to the directory (required field): Person, List of persons, or List of persons with coordinator(s) (a link allows associated users to be added or deleted)

    User(s)

    List of users associated to a participant (a link allows associated users to be added or deleted)

    Group(s) [1]

    List of groups associated to a participant (a link allows associated groups to be added or deleted)

    1. Accessible only to participants of the List of persons and List of persons with coordinator type.

    2. Accessible only to participants of the List of persons with coordinator type.

    Directory associations

    Fields

    Remarks

    Name *

    Filters by person’s name

    Available

    List of possible associations to the directory

    Selected

    List of existing associations to the directory

    * Visible only if associated with a user or a coordinator and if the number of users in the database is higher than the limit set by the software administrator.

    • A Person type participant is associated with a single user.

    • A List of persons type participant is associated to one or more users and/or groups and/or directories.

    • A List of persons with coordinator type participant is associated with one or more coordinators, and to one or more users and/or groups and/or directories.

    When adding users, groups, and directories to a participant, note that the list is cumulative in that adding 3 users, 2 groups, and 4 directories will result in a list of users that contain the sum of those users, groups, and directories.

    A group or directory does not need to be specific to add users that belong to those groups or directories; adding those groups or directories will result in adding all the users that are part of those groups and directories to the participant list.

    Changing the participant type

    The following conditions apply when changing the participant type:

    • Person to List of persons or List of persons with coordinator(s): The participant must not be used in a process action.

    • List of persons to Person: A single user must be associated to the participant, and the participant must not be used in a process action.

    • List of persons to List of persons with coordinator(s): Add at least one coordinator.

    • List of persons with coordinator(s) to List of persons: The participant must not be used in a process action where the assignment is made by the coordinator.

    Deleting a participant

    A participant cannot be deleted if the person (or persons) is part of a process or is a process/folder manager.

    New directory

    Displays a blank directory form to add a new directory

    Refresh

    Refreshes the directory listing

    Delete

    Delete a directory

    Columns

    Remarks

    Order

    Use the up and down arrows to change the order of the list

    Name

    Directory name (a link displays the directory form in edit mode)

    Description

    Directory description

    Group(s)

    Number of groups associated to the directory (a link displays the corresponding groups)

    User(s)

    Number of users associated to the directory (a link displays corresponding users)

    Fields

    Remarks

    Name

    Unique identifier for the directory; must respect nomenclature and be limited to 50 characters (required field)

    Description

    Directory description limited to 255 characters (required field)

    Default directory

    If checked, the directory is displayed first among the directory selection lists in the Administration Module

    User password

    Check to allow WorkflowGen to manage passwords

    Directory connector

    Various sources that can be used for authentication management

    Links

    Remarks

    New category

    Displays a blank categories form to add a new category

    Refresh

    Refreshes the displayed category list

    Filter on *

    Remarks

    Name

    Filters by category name

    Description

    Filters by category description

    Columns

    Remarks

    Name

    Category name (a link displays the category form in edit mode)

    Description

    Category description

    Utilization

    Number of processes listed in the category

    Fields

    Remarks

    Name

    Unique identifier for the category; must respect nomenclature and be limited to 30 characters (required field)

    Description

    Category description limited to 255 characters (required field)

    STARTPROCESS Workflow Application

    Overview

    The STARTPROCESS workflow application lets you launch a new request with the corresponding parameters. It provides a simple solution for inter-process communications.

    There are three ways to use STARTPROCESS to launch a new request:

    • Process ID

    • Process name with process version

    • Process name with test

    Parameters

    Process

    Optional parameters

    You can define other parameters as needed in the workflow process to launch; for example COMPANY (text type IN parameter), e.g. ACME_COMPANY.

    Examples

    Process ID

    Process name with process version

    Process name with test

    Parameters

    Parameters tab

    Required parameters list

    Additional parameters list

    Invalid parameters list

    If there are parameters that are no longer required by the selected sub-process, they become invalid and will appear in this list and can be deleted manually.

    Parameter editing screen

    Editing parameter expressions

    WorkflowGen supports VBScript and JavaScript expressions in action parameters, which can be created either directly as action parameter values, or in TEXT type process data mapped to action parameters as IN values.

    Creating an expression as an action parameter value

    1. Under Send the value of in the Edit parameter panel, choose a text and place the expression in the text area.

    2. Next to Scripting, check Enable, then choose either JavaScript or VBScript.

    Creating an expression as a TEXT process data

    1. In the Edit data panel, place the expression in the Default value text area.

      Tip: Click the pencil icon next to the Default value text area to open a larger text editor that includes JavaScript and VBScript syntax highlighting.

    2. Specify the language either on the Mapping tab in the Form Designer, or in the Edit parameter panel:

    All WorkflowGen macros (except notification macros) are fully supported in both languages and are enclosed by < >(e.g. <WF_PROCESS_INST_ID> for the request number).

    In both languages, the expected result must be either a number, a string, or a date.

    Examples

    This example would return the request number plus 5 in both JavaScript and VBScript:

    No return keyword is needed for expressions, with the exception of JavaScript inside a function. However, you cannot directly return the function; instead, it must be invoked and must return something like the following example, which would get tomorrow's date:

    OR

    Custom Menus

    Administration Module

    Overview

    To create custom menus in the Administration Module, you must create and modify an XML file called admin.xml in the CustomMenu folder located in the \wwwroot\wfgen\App_Data\customMenus folder.

    These custom menus will then be available as extra menu options in the Administration Module. WorkflowGen supports two levels of custom menu items.

    Menu items can be secured by user profile.

    XML content

    Menu item/node properties

    Images

    You can also use images in a custom theme. To do this, create a new Theme package for WorkflowGen and direct the icon path to its location in the \wfgen\App_Themes\MYTHEME\admin\images folder.

    The default path is \wfgen\App_Themes\Default\admin\images. You can also add your custom images to this folder and use them from the Default theme folder (see the example below).

    Sample admin.xml file

    User Portal

    Overview

    To create custom menus in the User Portal, you must create and modify an XML file called portal.xml in the CustomMenu folder located in the \wwwroot\wfgen\App_Data\customMenus folder.

    These custom menus will then be available as extra Menu options on the User Portal home page.

    Menu items can be secured by user profile.

    XML content

    Menu item/node properties

    Images

    You can also use images in a custom theme. To do this, create a new Theme package for WorkflowGen and direct the icon path to its location in the \wfgen\App_Themes\MYTHEME\portal\images folder .

    The default path is \wfgen\App_Themes\Default\portal\images. You can also add your custom images to this folder and use them from the Default theme folder (see the example below).

    Sample portal.xml file

    Groups

    Group list screen

      represents a group of users from a single directory (created by a synchronization or defined within WorkflowGen).

      represents a virtual group of users from a single directory filtered by an SQL-like query (directory filter).

    MERGEFORM Workflow Application

    Overview

    The MERGEFORM workflow application takes multiple form data files and merges them into one file. It can also merge form archives into a target form archive by merging the HTML sections from both files.

    EFORMASPX Workflow Application

    Overview

    The EFORMASPX workflow application lets you display and fill out the different fields of your electronic forms through a web form. A web form is the ASP.NET equivalent of an MS Windows form and has similar programming characteristics.

    https://support.twilio.com/hc/en-us/articles/223134387-What-is-a-Message-SID-
    https://www.twilio.com/docs/api/errors/reference
    https://www.twilio.com/docs/api/errors/reference

    IN

    Version of the process to launch

    TEST

    Text

    IN

    Test mode

    • Y: Launch a test version

    • N: Launch the active version

    Parameter

    Type

    Direction

    Description

    PROCESS_ID

    Numeric

    IN

    Process ID of the request to launch (to be used independently, without the other parameters)

    PROCESS_NAME

    Text

    IN

    Process name of the request to launch

    PROCESS_VERSION

    Parameter

    Type

    Direction

    Description

    REQUEST_ID

    Numeric

    OUT

    Returns the ID of the new request

    IMPERSONATE_USERNAME

    Text

    IN

    Username of the impersonating user

    Parameter

    Type

    Direction

    Description

    PROCESS_ID

    Numeric

    IN

    Send value of MY_PROCESS_ID (a numeric process data containing the ID of the process to start, e.g. 1320)

    Parameter

    Type

    Direction

    Description

    PROCESS_NAME

    Text

    IN

    Send value of MY_PROCESS_NAME (a text process data containing the name of the process to start, e.g. LEAVE_APPLICATION)

    PROCESS_VERSION

    Numeric

    IN

    Send value of MY_PROCESS_VERSION (a numeric process data containing the version number of the process to start, e.g. 2)

    Parameter

    Type

    Direction

    Description

    PROCESS_NAME

    Text

    IN

    Send value of MY_PROCESS_NAME (a text process data containing the name of the process to start, e.g. LEAVE_APPLICATION)

    TEST

    Text

    IN

    Send value of MY_TEST (e.g. Y)

    Numeric

    Specifies if the custom link will be displayed in the new menu item only or also on the Administration Module home page (default)

    Possible values: true (default) or false

    Icon

    Specifies the path to a custom icon to be displayed instead of the default circular arrow icon

    Specifies the path to a custom icon to be displayed instead of the default "Earth" icon

    Parameter

    Description

    Title

    Specifies the title of the node The title of the menuItem node will be the name used for the menu item on the Administration Module home page.

    Profile

    Specifies if the link will be visible to users with an Administrator or User profile

    Possible values: user or admin

    ✏️ Note: If user is specified, it does not grant access to all users but only to those that have access to the Administration Module (for example, folder managers).

    URL

    Specifies the URL to add as a custom link

    📌 Example: http://www.workflowgen.com/

    Description

    Specifies a description for the custom link.

    📌 Example: Visit the WorkflowGen website!

    Target

    Specifies if the custom link will be opened within the WorkflowGen page (default) or in a new browser

    Possible values: "" (default) or _new

    Parameter

    Description

    Title

    Specifies the title of the node The title of the menuItem node will be the name used for the menu item on the User Portal home page.

    Profile

    Specifies if the link will be visible to users with a User, Supervisor, Manager, or Administrator profile

    Possible values:

    • user

    • supervisor

    • manager

    • admin

    URL

    Specifies the URL to add as a custom link

    📌 Example: http://www.workflowgen.com/

    Description

    Specifies a description for the custom link.

    📌 Example: Visit the WorkflowGen website!

    Target

    Specifies if the custom link will be opened within the WorkflowGen page (default) or in a new browser

    Possible values: "" (default) or _new

    showInHomepage

    Icon

    <?xml version="1.0" encoding="utf-8" ?>
    <menu>
        <menuItem title="My links..." profile="user">
            <menuItem title="Advantys" url="http://www.advantys.com/" target="_new" description="Advantys Web Site" profile="user" showInHomepage="true"  />
            <menuItem title="WorkflowGen" url="http://www.workflowgen.com/" target="" description="WorkflowGen Web Site" profile="admin" icon="myicon.gif" showInHomepage="false"  />
        </menuItem>
    </menu>
    <?xml version="1.0" encoding="utf-8" ?>
    <menu>
        <menuItem title="WorkflowGen Resource Center" profile="user" url="http://www.workflowgen.com/resources" description="Open the WorkflowGen Resource Center web site" target="_new" icon="" />  
        <menuItem title="WorkflowGen" profile="supervisor" url="http://www.workflowgen.com/" description="Open the WorkflowGen website" target="_blank" icon="" />  
        <menuItem title="Advantys" profile="manager" url="http://www.advantys.com/" description="Open the Advantys web site" target="_self" icon="" />  
        <menuItem title="Google Search" profile="admin" url="http://www.google.com/" description="Open Google Search" target="_parent" icon="search_l.gif" />  
        <menuItem title="Yahoo!" profile="user" url="http://www.yahoo.com/" description="Open the Yahoo! website" target="_top" icon="" />  
        <menuItem title="New Leave Application" profile="user" url="/wfgen/show.aspx?QUERY=START&amp;P=LEAVE_APPLICATION" description="Launch a new leave application" target="_new" icon="http://dev4/wfgen/App_Themes/Default/portal/images/request_followup_form_l.gif" />
    </menu>

    Save changes

    Save and close button

    Save changes and close the screen

    Add button

    Save the current parameter and display a blank form to add a new parameter

    Delete button

    Allow the deletion of the current parameter

    Close button

    Close the screen without saving

    In the Edit parameter panel, check Enable next to Scripting, then choose either JavaScript or VBScript.

    OR

  • On the Mapping tab in the Form Designer, choose the data's Value IN button, select the expression from the Data drop-down list, check Enable next to Scripting, then choose either JavaScript or VBScript.

  • Columns

    Remarks

    Parameter

    Name of the application or sub-process parameter required by the action; a link displays the parameter form in edit mode

    Direction

    Parameter direction

    Value

    Process data associated to the parameter; a link displays the parameter form in edit mode

    Columns

    Remarks

    Parameter

    Parameter name; a link displays the parameter form in edit mode

    The Add link displays a blank parameter form to add new data.

    Direction

    Parameter direction

    Value

    Data associated to the parameter

    Deletion

    Clicking x deletes the parameter

    Fields

    Remarks

    Parameter

    Unique identifier for the parameter; must respect nomenclature and be limited to 30 characters (required field)

    Application parameters such as FORM_FIELDS_READONLY are available through the Other parameters button. This is commonly associated with the name/ID of the form field.

    ✏️ Note: Parameter names should respect the following XML naming rules:

    • They should begin with a letter or an underscore

    • They should contain only letters, digits, hyphens, underscores, and periods

    • They should not contain spaces

    • They should not begin with the letters XML in any case (e.g. xml or Xml)

    For more information, see .

    Browse

    This button is only visible for actions that have at least one default application parameter defined

    Direction

    Parameter direction:

    • IN: When the action is instantiated, the value of the parameter is initialized with a text, or the value of a macro or process data.

    • OUT: When the action is being closed, the value of the parameter is stored in a process data value.

    • INOUT: When the action is instantiated, the value of the parameter is initialized with a text, or the value of a macro or process data, and then, when the action is being closed, the value of the parameter is stored in a process data value.

    Send the value of

    The IN value to send to the parameter Depending on the type of data to be associated, this value can be process data, a macro or a freeform text value.

    Receive the value into

    The process data where the OUT value of the parameter is stored

    Save button

    Associated users

    Users are associated with a group only when the group is saved (at creation or when manually re-saved). If synchronized, the user list is refreshed at the time of the synchronization. If no synchronization has been defined for that directory, users in the virtual groups of that directory will not be updated automatically.

    Menu banner

    Links

    Remarks

    New group

    Displays a blank group form to add a new group

    Refresh

    Refreshes the group list displayed

    Filters

    External filters

    Remarks

    Directory

    Displays the specified group directory

    Type

    • All

    • Directory

    • Query

    Filter on *

    Remarks

    Name

    Filters by group's name

    Description

    Filters by group's description

    Query

    Filters by group’s query

    Email

    Filters by group's email address

    Group code

    Filters by group's code

    * A filter can be applied to part of a field.

    Group list

    Columns

    Remarks

    Multi-select checkboxes

    Actions:

    • Activate the selected group’s members

    • Deactivate the selected group’s members

    • Delete the selected groups

    Name

    Name of the group (a link displays the group form in edit mode)

    Description

    Description of the group

    Users

    Number of users associated to the group (a link displays the corresponding users)

    Directory

    Group directory

    ✏️ Note: This column is only visible when you select All from the Directory drop-down list.

    Group screen

    Group form

    Fields

    Remarks

    Directory

    Group directory

    Name

    Unique identifier for the group in the directory (required field)

    Description

    Group description (required field)

    Query

    Statement allowing a group definition based on query parameters (directory filter); see below for

    (Help)

    Help on query syntax (field name list)

    Query examples

    • User of a group: {ISMEMBER(FINANCE)}

    • Users from a defined city: CITY = 'LOS ANGELES'

    • Combinations, such as: Country='USA' and {ISMEMBER(FINANCE)}

    Deleting a group

    Deleting a group does not delete the associated users.

    How it works

    All parameters are optional, and parameter names can be set by the process designer. To copy a data from one to another, the only action required is to set the default value as the data to copy and set the data into which you want to retrieve it. The parameters’ directions must be INOUT. There is no limit to the number of parameters.

    Parameters

    Required parameters

    Parameter

    Type

    Direction

    Description

    FORM_DATA

    File

    INOUT

    The merge target FORM_DATA. All FORM_DATA_SOURCE parameters will merge into this parameter’s default value (IN) and will update the specified data (OUT) with the result.

    FORM_DATA_SOURCE1

    File

    IN

    Specific form data to merge into the target form data.

    FORM_FIELDS_MERGE1

    Optional parameters

    Parameter

    Type

    Direction

    Description

    FORM_DATA_SOURCE[2..N]

    File

    IN

    Specific form data to merge into the target form data.

    FORM_FIELDS_MERGE[2..N]

    Text

    IN

    The fields to merge from FORM_DATA_SOURCE[2..N] to FORM_DATA. It also supports the wildcard character.

    FORM_ARCHIVE

    Examples of parameters

    Parameter

    Type

    Direction

    Description

    FORM_DATA

    File

    INOUT

    Send value of FORM_DATA Receive value of FORM_DATA

    FORM_DATA_SOURCE1

    File

    IN

    Send value of FORM_DATA_VALIDATES_ACCOUNTING

    FORM_FIELDS_MERGE1

    Required parameters

    Parameter

    Type

    Direction

    Description

    FORM_DATA

    FILE

    INOUT

    Contains the form data: the dataset in .NET to store the data to/from the WorkflowGen XML file (see below for an example of this file) WorkflowGen generates this file at every form submit and no default value needs to be defined. WorkflowGen will create and update this file automatically.

    FORM_URL

    TEXT

    IN

    Used to display the ASP.NET form that users complete during process execution or whose fields are populated with default values defined during process design

    It should contain the path/location of the blank form that can be stored in the process data or associated directly to this parameter, and can be an absolute or relative path.

    📌 Example of an empty FORM_DATA file

    An XML file formData.xml containing:

    📌 Example of a FORM_URL

    /wfgen/WfApps/WebForms/MyFirstWebForm/v1/Form.aspx

    Using additional parameters

    Field initialization

    You can pre-populate web form fields by specifying which values are to populate which form fields. This is done by providing the field name to an action parameter as an IN or INOUT parameter and then sending the value of a freeform text, a WorkflowGen macro, or a process data.

    📌 Example

    • Rule: Display the requester’s name in the web form field called REQ_NAME when the form loads.

      • Method: Associate the form field name with the Requester.Name macro.

    Retrieving field values

    You can store the various web form field values in the process data by specifying which field values are to be stored to which process data. This is done by providing a field name to an action parameter as an OUT (or INOUT) parameter and by retrieving that field value to a specified process data.

    • Process data can only be used to store one and only one field value per action.

    • As of WorkflowGen version 7.15.0, TEXT process data no longer have a 4000-character limit for MS SQL Server database.

    📌 Example

    • Rule: Retrieve the Manager's answer/decision in process data called MGR_DECISION

      • Method: Associate the form field name with pre-defined process data

    Additional parameters to change form field properties

    Overview

    You can control the required, read-only, and hidden ASPX form field properties through the action parameters without developing any .NET code. The value of the parameter has to be set to a list of fields to set (or not) separated by a comma or a semicolon. This list supports the generic wildcard character * (asterisk) and the exclusion character ^ (caret). A standardized field naming convention makes it easy to set the various field properties per action.

    List of available parameters

    Parameter

    Type

    Direction

    Description

    FORM_FIELDS_READONLY

    TEXT

    IN

    List of read-only fields

    FORM_FIELDS_REQUIRED

    TEXT

    IN

    List of required fields

    FORM_FIELDS_HIDDEN

    Examples of use

    • Rule: The fields EMP_NAME and EMP_DATE are required

      • Method: FORM_FIELDS_REQUIRED = EMP_NAME, EMP_DATE

    • Rule: All the fields are set to read-only except the fields with a name that begins with EMP_

      • Method: FORM_FIELDS_READONLY = *, ^EMP_*

    • Rule: All the fields are set to visible except the DATE field and the fields with a name that begins with SUP_ and ends with _APP

      • Method: FORM_FIELDS_HIDDEN = ^*, DATE, SUP_*_APP

    The FORM_ARCHIVE additional parameter

    Overview

    This is a way to have a static copy of the form, so that the copy can be viewed, printed, or sent by email without having to create any additional web form code.

    Parameter

    FORM_ARCHIVE: HTML static copy of the ASP.NET form (OUT)

    The value of the filename has to be set in the initial XML file:

    <FORM_ARCHIVE>form_archive.htm</FORM_ARCHIVE>

    As well, the dataset must have a field named FORM_ARCHIVE.

    WorkflowGen handles this, so no extra work by the process or form designers is needed.

    How it works

    When the web form is submitted by the end-user, the EFORMASPX application will create a static copy of the form and store it within the WorkflowGen directory. WorkflowGen will then be able to link this static copy to the FORM_ARCHIVE parameter.

    The only things that the process designer needs to do are:

    1. Create a process data to store the static form (generated by WorkflowGen).

    2. Associate it to the FORM_ARCHIVE action parameter.

    Directory(ies) [1]

    List of directories associated to a participant (a link allows associated directories to be added or deleted)

    Coordinator(s) [2]

    List of coordinators associated to a participant (a link allows associated coordinators to be added or deleted)

    Global Lists

    Overview

    The Global Lists module allows authorized users to manage data lists from the Administration Module to be used with web forms.

    Global Lists management provides a solution to manage and centralize data to fill drop-down lists in your web forms.

    There is no limit to the number of items in a Global List, which can have up to 20 columns. Good user interface performance depends on the number of cells (items × columns), and is optimized for at least 5000 cells (for example, 1000 items with 5 columns or 250 items with 20 columns).

    The supported data types for columns are text, numeric, or date.

    The data that populate a Static Global List come from within the user interface.

    The data that populate a Dynamic Global List come from a database. The content of the list is updated each time the web form is executed.

    Global Lists screen

    Menu banner

    Filters

    Global Lists list

    Global Lists form

    Click the Define link to define or edit a global list.

    Import data

    You can import data into a global list from a file or a copy of your clipboard. The supported formats are WorkflowGen Global List XML or CSV.

    The CSV format must be as follows:

    Examples

    Importing text-only columns

    By default, columns are considered as text data types; therefore, if all columns are text data types, it is not necessary to specify the data types.

    Importing with numeric and/or date data types

    In this case, the second line is used to set the columns’ data types.

    Importing with enclosed strings

    To protect some data like double quotes, commas, etc., you can enclose the string with double quotes.

    Export data

    You can export data from a global list to a file. The supported formats are WorkflowGen Global List XML or CSV.

    Security

    All connection strings in \wwwroot\wfgen\web.config are available for use in Global Lists and the Form Designer except for the master database connection string. While the application tries to verify that user-supplied SQL queries used in these contexts are secure and contain only SELECT statements, you should also make sure that exposed connection strings are secured at the database level. This means that if you don’t want a process manager or a Global List manager to be able to update or modify a certain database, the connection string should have read-only access to your database.

    Keep in mind that process designers can also use any connection string that they have access to from the Form Designer’s code-behind editor. If you want to restrict a Global List manager’s access to a connection string, while still allowing the process designer to use it, you should add the connection string to the WebForm application’s web.config (\wwwroot\wfgen\WfApps\WebForms\web.config).

    Connection strings in the WebForms web.config are not exposed in the WorkflowGen UI, so for process designers to be able to use them, they must know the name of the connection string. This is also a convenient way to give different process managers access to specific connection strings.

    DOCUSIGNCHECK Workflow Application

    Overview

    The DOCUSIGNCHECK workflow application lets you check the status of an envelope and download its associated file, which is a concatenation of attached files.

    How it works

    • You can check the status of an envelope and download the file from DocuSign according to your status criteria.

    • Application logs are available. These can be specified by setting the value of the DocuSignCheckLogLevel parameter in the web.config file to 0 to deactivate logs, 1 for error logs, 2 for information logs, or 3 for debug logs; the default value is 0.

    Required parameter

    Optional parameters

    DocuSign configuration

    There are two ways to configure DocuSign account information: you can define the configuration in the web.config file or in the Configuration Panel, or you can manage the configuration on each DOCUSIGNCHECK action.

    These parameters must be associated to a DocuSign account.

    It's necessary to have authorized your DocuSign application for use. To do this, go to the following address: <SERVER>/oauth/auth?response_type=code&scope=signature%20impersonation&client_id=<CLIENT_ID>&redirect_uri=<REDIRECT_URI>

    • <SERVER>: https://account.docusign.com (production) orhttps://account-d.docusign.com

    General

    Example with DOCUSIGNSEND

    In the following example, the action is directly followed by the DOCUSIGNCHECK action. This action will loop back on itself until the status changes to signed, completed, voided, or declined.

    If the status returned meets the condition, the document will be downloaded from DocuSign.

    With the system loop action feature, the DOCUSIGNCHECK action will be executed every x seconds until the OUT condition is met.

    Custom Notification Templates

    Overview

    Custom notification templates can be used instead of the default WorkflowGen notification templates. These templates can be created in HTML or as plain text and can also use many regular WorkflowGen macros to display process-specific information.

    Process

    Process data

    For WorkflowGen to use the custom notifications, they must be added to the process data as FILE type.

    To do this, first create new process data for each template to be used, then browse to and attach the custom template to be used.

    Action notifications

    WorkflowGen can use an unlimited number of custom notifications per action. To add a custom notification, follow the steps below.

    On the Notifications tab, in the Additional section:

    1. Select the event that will cause the notification.

    2. Select the recipient of the notification.

    3. Select the process data that contains the attached notification template. You can choose the custom template created or use the default WorkflowGen template.

    Templates

    To create a template, use a text editor to create a file as follows:

    Subject

    To create a custom subject line for the templates, the first line in the HTML template must be SUBJECT: followed by the subject line to display. Macros may also be used here.

    HTML

    Create an HTML page that will act as a template for the email. In order to support Unicode, we recommend saving the file using UTF-8 encoding and adding a UTF-8 character set in the header of the HTML page, as shown below. CSS styles can also be applied within the HTML page.

    Embedded images

    Add images to standard notification templates (custom or built-in, e.g. \wfgen\App_Data\Templates\Emails). Image tags whose source (src="") begin with http are not included in the email and simply related. Image tags whose source begins with a drive letter (e.g. C:\) will be included in the email and result in a larger size email. However a connection to the server is not required.

    📌 Examples

    The image is included in the message:

    The image is not included in the message:

    📌 Sample HTML template

    Text

    A non-Unicode text notification template can be created using a text editor such as Notepad and must be saved as a .txt file.

    📌 Sample text template

    Macros

    In addition to some regular macros that are available, the following macros may also be used in the custom notification templates.

    ADOBESIGNCHECK Workflow Application

    Overview

    The ADOBESIGNCHECK workflow application lets you verify the status of an agreement and download its associated file, which is a concatenation of attached files.

    How it works

    • You can verify the status of an agreement and download the file from Adobe Sign based on your status criteria.

    • Application logs are available. These can be specified by setting the value of the AdobeSignCheckLogLevel parameter in the web.config file to 0 to deactivate logs, 1 for error logs, 2 for information logs, or 3 for debug logs; the default value is 0

    Configuring the Adobe Sign API

    For instructions on how to configure the Adobe Sign API, see the section in the chapter.

    Required parameter

    Optional parameters

    Adobe Sign configuration

    General

    Example with ADOBESIGNSEND

    In the following example, the ADOBESIGNSEND action is directly followed by the ADOBESIGNCHECK action. This action will loop back onto itself until the status changes to SIGNED, APPROVED, CANCELLED, EXPIRED, or ARCHIVED.

    If the status returned meets the condition, the document will be downloaded from Adobe Sign.

    With the system loop action function, the ADOBESIGNCHECK action will be executed every x seconds until the OUT condition is met.

    WorkflowGen URLs

    Overview

    The main WorkflowGen modules can be accessed directly from the address bar of your browser by entering the URLs for each.

    User Portal

    http://YOURSITE/wfgen/default.aspx

    If the website is configured to use a default document, specifying the name of the document is not required.

    Administration Module

    http://YOURSITE/wfgen/admin/default.aspx

    If the website is configured to use a default document, specifying the name of the document is not required.

    Configuration Panel

    To access the Configuration Panel directly, use the following URL:

    http://YOURSITE/wfgen/admin/Config.aspx

    Integration using WorkflowGen URLs

    For information on how to use WorkflowGen URLs for integration, see the section in the .

    Process Definition

    Overview

    Processes are organized in folders administered by managers. Only one folder level is possible in WorkflowGen.

    A folder is assigned to a global participant. The persons who are part of that participant are known as folder managers or process managers. A manager may be one or more persons. However, the participant type List of persons with a coordinator cannot be used for the purpose of assigning folder managers.

    Managers have full access to the process definition of their processes, but not to other folders or other administration features.

    Users with a WorkflowGen administrator profile have complete access to all folders and their associated processes.

    Conditions & Exceptions

    Editing transition conditions

    The Edit condition panel allows a condition (evaluated during the transition to the next action) to be modified. The banner located above the input area allows the condition’s expression syntax to be edited quickly. Any JavaScript or VBScript expression with a correct syntax can be used as a condition (choose either JavaScript or VBScript next to Language). The syntax is validated upon saving the condition or by clicking the Check the syntax button.

    SENDHTTPPOST Workflow Application

    Overview

    The SENDHTTPPOST workflow application lets you create outgoing webhooks to external systems. Webhooks allow an API to exchange information with other applications through HTTP POST requests, and can be used to build integrations with extendable applications such as Slack, GitHub, and Dropbox. For example, they can be used for notifications when an expected event (as previously configured by the user) has occurred. Since they allow real-time communication, webhooks are efficient and performant.

    The SENDHTTPPOST workflow application sends outgoing webhooks to external applications using JSON or URLENCODED payloads. SENDHTTPPOST will then receive and process the response from the external API. For more information, see the topic on the .

    For an example of how you can use SENDHTTPPOST to send messages to Slack channels from WorkflowGen, see

    CANCELREQUEST Workflow Application

    Overview

    The CANCELREQUEST workflow application lets you cancel an ongoing request.

    Parameters

    <WF_PROCESS_INST_ID> + 5
    (function(){
        var today = <WF_SYSTEM_DATE>;
        var tomorrow = new Date();
        tomorrow.setDate(today.getDate()+1);
        return tomorrow;
    })();
    function test(){
        var today = <WF_SYSTEM_DATE>;
        var tomorrow = new Date();
        tomorrow.setDate(today.getDate()+1);
        return tomorrow;
    }
    test();
    <?xml version="1.0" encoding="UTF-8" ?>  
    <NewDataSet>  
        <Table1 />  
    </NewDataSet>
    Required

    Parameter

    Type

    Direction

    Description

    REQUEST_ID

    Numeric

    IN

    The request ID to cancel

    Optional

    Parameter

    Type

    Direction

    Description

    NOTIFY_PARTICIPANT

    Text

    IN

    Notify request participants of the cancellation:Y or N (default)

    Text

    IN

    The fields to merge from FORM_DATA_SOURCE1 to FORM_DATA, separated by commas. It supports the asterisk (*) wildcard character to select all fields starting with the prefix.

    ✏️ Note: If you don’t specify a FORM_FIELDS_MERGE[N] parameter, all of the fields in FORM_DATA_SOURCE[N] will be merged.

    File

    INOUT

    The merge target FORM_ARCHIVE. All FORM_ARCHIVE_SOURCE parameters will merge into this parameter’s default value (IN) and will update the specified data (OUT) with the result.

    FORM_ARCHIVE_SOURCE[1..N]

    File

    IN

    Specific form archive to merge into the target form archive.

    FORM_FIELDS_ARCHIVE[1..N]

    Text

    IN

    Section IDs to merge from FORM_ARCHIVE_SOURCE[1..N] to FORM_ARCHIVE, separated by commas. It does not support the asterisk wildcard parameter; instead, you must specify the exact IDs of each section to merge.

    Text

    IN

    Send value of ACCOUNT_*

    FORM_DATA_SOURCE2

    File

    IN

    Send value of FORM_DATA_VALIDATES_SALES

    FORM_FIELDS_MERGE2

    Text

    IN

    Send value of SALES_DECISION,SALES_COMMENT

    FORM_ARCHIVE

    File

    INOUT

    Send value of FORM_ARCHIVE Receive value into FORM_ARCHIVE

    FORM_ARCHIVE_SOURCE1

    File

    IN

    Send value of FORM_DATA_VALIDATES_ACCOUNTING

    FORM_FIELDS_ARCHIVE1

    Text

    IN

    Send value of ACCOUNT

    FORM_ARCHIVE_SOURCE2

    File

    IN

    Send value of FORM_ARCHIVE_VALIDATES_SALES

    FORM_FIELDS_ARCHIVE2

    File

    IN

    Send value of SALES

    TEXT

    IN

    List of hidden fields

    https://www.w3schools.com/xml/xml_elements.asp
    Integration using WorkflowGen URLs
    WorkflowGen Integration Guide

    Macro

    Remarks

    <WF_PROCESS_INST_RELDATA_VALUE.DATANAME>

    A process data value where DATANAME is the name of the data whose value you want to display

    <WF_PROCESS_INST_RELDATA_DESCRIPTION.DATANAME>

    Retrieves the description of a process data

    <WF_PROCESS_INST_RELDATA_FILE.DATANAME>

    A process data value where DATANAME is the name of the data whose value you want to add as an attachment to the email

    <WF_LINK_ACTIVITY_INST_LAUNCH>

    A link will be displayed to launch the action directly from the notification

    <WF_LINK_ACTIVITY_INST_FORM>

    A link will be displayed to view the action follow-up form directly from the notification

    <img src="C:\inetpub\wwwroot\wfgen\App_Themes\Default\portal\images\activity_s.gif">
    <img src="http://localhost/wfgen/App_Themes/Default/portal/images/activity_s.gif">
    <html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>My Title</title>
        <style type="text/css">
            body
            {
                font-family:Arial;
            }
        </style>
    </head>
    <body>
        <table width="90%">
        <tr>
            <td>
                <img src="C:\inetpub\wwwroot\wfgen\App_Themes\Default\portal\images\activity_s.gif"> <WF_PROCESS_INST_NAME>
            </td>
        </tr>
        <tr>
            <td>
                Manager Decision
            </td>
            <td>
                <WF_PROCESS_INST_RELDATA_VALUE.MGR_DEC>
            </td>
        </tr>
        <tr>
            <td>
                Date
            </td>
            <td>
                <WF_SYSTEM_DATE>
            </td>
        </tr>
        <tr>
            <td>
                Launch the Action
            </td>
            <td>
                <a href="<WF_LINK_ACTIVITY_INST_LAUNCH>">link 1</a>
            </td>
        </tr>
        <tr>
            <td>
                Go To Action Follow-Up Form
            </td>
            <td>
                <a href="<WF_LINK_ACTIVITY_INST_FORM>">link 2</a>
            </td>
        </tr>
        <tr>
            <td>
                Go To Request Follow-Up Form
            </td>
            <td>
                <a href="<WF_LINK_PROCESS_INST_FORM>">link 3</a>
            </td>
        </tr>
        <tr>
            <td>
                Go To Request Follow-Up Form
            </td>
            <td>
                <a href="http://YOURSITE/wfgen/show.aspx?QUERY=PROCESS_INSTANCE_FORM&ID_PROCESS_INST=<WF_PROCESS_INST_ID>">Request Link</a>
            </td>
        </tr>
        </table>
    </body>
    </html>
    SUBJECT: My Custom Subject line
    
    Manager Decision: <WF_PROCESS_INST_RELDATA_VALUE.MGR_DEC>
    
    Date: <WF_SYSTEM_DATE>
    
    Launch the Action: <WF_LINK_ACTIVITY_INST_LAUNCH>
    
    Go To Action Follow-Up Form: <WF_LINK_ACTIVITY_INST_FORM>
    
    Go To Request Follow-Up Form: http://YOURSITE/wfgen/Show.aspx?QUERY=PROCESS_INSTANCE_FORM&ID_PROCESS_INST=<WF_PROCESS_INST_ID>

    Deletes a global list

    Links

    Remarks

    New list

    Displays a blank categories form to add a new category

    Refresh

    Refreshes the global list

    Import

    Imports data from CSV or XML format into an existing list or as a new list; this is useful to quickly fill data from file or copy/paste from clipboard.

    Export

    Exports data to a CSV or XML file; this is useful to export data for multiple environments (development, production, test, etc.)

    Duplicate

    Duplicates a global list

    Search

    Remarks

    Name

    Filters on the list’s name

    Manager

    Filters on the name of the manager of the list

    Update date

    Filters on the update date (period from/to)

    Updated by

    Filters on the last user who has updated the list (last name or first name)

    Columns

    Remarks

    Name

    Name of the list

    Manager

    None (no restriction) or the global participant authorized to update the list; you can restrict the access to the global list to user(s) of a global participant.

    Content

    Number of items or a link to define the global list form

    Last update

    Date and time of the last update

    By

    Last user who has updated the list

    Tabs

    Remarks

    Items

    Add static items into the list; items can be sorted by value or descriptive text, and translation languages can be chosen from a drop-down list.

    Columns

    Add columns (limited to 10 columns)

    Supported datatypes:

    • Text

    • Numeric

    • Date

    By default, columns are Text (text data type) and Value (text data type).

    Databind

    Connection name or string to the bound database

    • Name of the connection string defined by the Administrator in the WorkflowGen web.config file

    • Connection string to a database

    • SQL query (SELECT command) to retrieve data

    ✏️ Note: It is strongly recommended to use a connection name rather than a connection string to simplify multi-environment management. Connection names are centrally managed in the WorkflowGen web.config file.

    Delete

    (demo)
  • <CLIENT_ID>: Corresponds to your DocuSign application's Integration Key value

  • <REDIRECT_URI>: Redirect address (e.g. https://docusign.com)

  • IN

    DocuSign Auth server

    DocuSign values:

    • account.docusign.com (production)

    • account-d.docusign.com (demo)

    By default, this value comes from the DocuSignAuthServer

    DOCUSIGN_RSA_KEY

    TEXT

    IN

    DocuSign RSA key By default, this value come from the /Files/DocuSign/rsaKey.pem file.

    DOCUSIGN_HOST_SERVER

    TEXT

    IN

    DocuSign host server

    DocuSign values:

    • https://docusign.net (production)

    • https://demo.docusign.net (demo)

    By default, this value comes from the DocuSignHostServer

    OUT

    Envelope status

    Parameter

    Type

    Direction

    Description

    DOCUSIGN_ENVELOPE_ID

    TEXT

    IN

    DocuSign envelope ID to check

    Parameters

    Type

    Direction

    Description

    DOCUSIGN_CLIENT_ID

    TEXT

    IN

    DocuSign client ID Corresponds to your DocuSign application's Integration Key value

    By default, this value comes from the DocuSignClientId parameter in the web.config.

    DOCUSIGN_USER_GUID

    TEXT

    IN

    DocuSign user GUID Corresponds to the value of User ID in the DocuSign configuration panel

    By default, this value comes from the DocuSignUserGuid parameter in the web.config.

    DOCUSIGN_AUTH_SERVER

    Parameters

    Type

    Direction

    Description

    VALID_STATUS_LIST

    TEXT

    IN

    Valid status to download the document Default: signed,completed,voided,declined

    DOCUSIGN_DOCUMENT

    FILE

    OUT

    DocuSign document

    DOCUSIGN_STATUS

    DOCUSIGNSEND
    Configuration of a DOCUSIGNCHECK action

    TEXT

    TEXT

    .

    IN

    Authentication refresh token

    By default, this value comes from the AdobeSignAuthServer parameter in the web.config file.

    To obtain it, see the section.

    ADOBESIGN_HOST_SERVER

    TEXT

    IN

    Adobe Sign host server (e.g. https://api.naX.adobesign.com, where x is the server ID)

    By default, this value comes from the AdobeSignHostServer parameter in the web.config file.

    OUT

    Agreement status

    Parameter

    Type

    Direction

    Description

    ADOBESIGN_AGREEMENT_ID

    TEXT

    IN

    ID of the Adobe Sign agreement to verify

    Parameters

    Type

    Direction

    Description

    ADOBESIGN_CLIENT_ID

    TEXT

    IN

    Adobe Sign client ID

    By default, this value comes from the AdobeSignClientId parameter in the web.config file.

    ADOBESIGN_CLIENT_SECRET

    TEXT

    IN

    Adobe Sign client secret

    By default, this value comes from the AdobeSignClientSecret parameter in the web.config file.

    ADOBESIGN_REFRESH_TOKEN

    Parameters

    Type

    Direction

    Description

    VALID_STATUS_LIST

    TEXT

    IN

    Valid status to download the document

    Possible values:

    • OUT_FOR_SIGNATURE

    • OUT_FOR_DELIVERY

    • OUT_FOR_ACCEPTANCE

    • OUT_FOR_FORM_FILLING

    • OUT_FOR_APPROVAL

    • AUTHORING

    • CANCELLED

    • SIGNED

    • APPROVED

    • DELIVERED

    • ACCEPTED

    • FORM_FILLED

    • EXPIRED

    • ARCHIVED

    • PREFILL

    • WIDGET_WAITING_FOR_VERIFICATION

    • DRAFT

    • DOCUMENTS_NOT_YET_PROCESSED

    • WAITING_FOR_FAXIN

    • WAITING_FOR_VERIFICATION

    Default: SIGNED,APPROVED,CANCELLED,EXPIRED,ARCHIVED

    ADOBESIGN_DOCUMENT

    FILE

    OUT

    Adobe Sign document

    ADOBESIGN_STATUS

    Configuring the Adobe Sign API
    ADOBESIGNSEND Workflow Application
    Configuring an ADOBESIGNCHECK action

    TEXT

    TEXT

    A process can have several versions, but only one can be active at any one time for the purpose of launching new requests. Existing requests launched in prior versions continue to function with the older process definition until the requests are closed but the processes for those prior versions cannot, for the most part, be edited.

    A process can be declared as a sub-process and then used in another process action as an independent or embedded sub-process.

    A process is made up of the following components:

    • Participants (e.g. requester, actor)

    • Relevant data (e.g. form, agreement, amount, etc.)

    • Actions (e.g. find information, validate, process, wait)

    • Transitions (e.g. next actions, conditions)

    • Assignment method (e.g. automatic, manual, etc.)

    • Notifications (e.g. assignment, closing, etc.)

    The definition of a process involves building a number of rules. To simplify implementation, WorkflowGen groups process definition into several sections:

    Process information

    Information related to process creation (status, version, etc.) and general parameters (archiving, notification upon closing, process lead time).

    Participant

    Global participants selected or process-specific participants that will take on the roles of either a requester, an actor, or a process supervisor.

    Data

    Data that are used by the process per request and that are relevant and necessary to carry out the process workflow.

    Form

    WYSIWYG built-in form designer to create the forms used by the workflow.

    Workflow

    Workflow definition that is made up of actions and their associated transitions, conditions, and exceptions.

    Full screen / Exit full screen

    Display or quit the process definition full screen mode.

    Report

    Provides both an overview and details of all parameters used in the process, and also provides a description of any workflow design errors. As well, the report shows summary usage statistics on the process.

    Test

    Allow testing the process if the status is set to In test. To be able to select the Test link, the process/folder manager must be one of the requesters of the process.

    Process folder

    Process folder list screen

    Menu banner

    Links

    Remarks

    New folder

    Displays a blank folder form to add a new folder

    Refresh

    Refreshes the folder list displayed

    Filters

    Filter on *

    Remarks

    Name

    Filters by folder name

    Description

    Filters by folder description

    * A filter can be applied to a part of a field.

    Folder list

    Columns

    Remarks

    Folder

    Folder name (a link displays the process list contained in the folder)

    Description

    Folder description

    Process

    Number of processes contained in the folder

    Edit

    Link to edit the folder information

    Folder screen

    Folder form

    Fields

    Remarks

    Folder name

    Unique identifier for the folder; must respect nomenclature and be limited to 30 characters (required field)

    Description

    Folder description limited to 255 characters (required field)

    Process manager

    Name of the global participant managing the folder (required field)

    Process manager

    A process manager must be a Person or List of persons type global participant.

    Deleting a folder

    A folder cannot be deleted if it contains processes.

    Process list

    Process list screen

    Menu banner

    Links

    Remarks

    New

    Displays a blank process form to where you can add a new process

    Refresh

    Updates the process list

    Delete

    Delete a process

    Filters

    Filter on *

    Remarks

    Name

    Filters by process name

    Description

    Filters by process description

    * A filter can be applied to a part of a field.

    External filters

    Remarks

    Status

    Filters by process status

    Process list

    Columns

    Remarks

    Name

    Process name and version (a link displays the process form in edit mode)

    Description

    Process description

    Status

    Process status

    • This JavaScript implementation is based on ECMAScript 3.5.

    • In JavaScript, time units are expressed in milliseconds:

      • 1 minute = 60,000 milliseconds (1 * 60 * 1000 = 60000)

      • 1 hour = 3,600,000 milliseconds (1 * 60 * 60 * 1000 = 3600000)

      • 1 day = 86,400,000 milliseconds (1 * 24 * 60 * 60 * 1000 = 86400000)

      In conditions, you can divide by the time unit's equivalent in milliseconds to use in comparisons. For example, a notification sent when a request is 12 or more hours late might look like this:

    Functions

    Fields

    Remarks

    Data

    List of process data that can be used in the condition

    Macros

    List of WorkflowGen macros that can be used in the condition

    Otherwise

    Inserts the keyword OTHERWISE

    JavaScript

    Fnc()

    Encapsulate the condition in an IIFE (see below)

    Press Ctrl+Space or Alt+Space directly within the editor to display a drop-down list from which you can insert process data and WorkflowGen macros, instead of choosing them from the Data and Macros drop-down lists above the editor.

    IIFE

    In JavaScript mode, use the Fnc() button to encapsulate the condition in an IIFE (Immediately-Invoked Function Expression). For example:

    Examples

    • Process data equal to Lorem ipsum:

      • JavaScript: <DATA> == "Lorem ipsum"

      • VBScript: <DATA> = "Lorem ipsum"

    • Process data greater than 5:

      • JavaScript: <DATA> > 5

      • VBScript: <DATA> > 5

    • Compare process data dates:

      • JavaScript: <DATE1> > <DATE2>

      • VBScript: DateDiff("s",<DATE1>,<DATE2>) > 0

    • More than 5 hours have elapsed since:

      • JavaScript: (<WF_SYSTEM_DATETIME> - <DATE1>) * 3600000 > 5

      • VBScript: DateDiff("h",<WF_SYSTEM_DATETIME>, <DATE1>) > 5

    • Combination of different comparisons:

      • JavaScript: <DATA1> == "Lorem ipsum" || (<DATA2> > 10000 && <DATA3> == "Director")

      • VBScript: <DATA1> = "Lorem ipsum" Or (<DATA2> > 10000 And <DATA3> = "Director")

    • Process data file has not been defined:

      • JavaScript: <FILE_DATA> == null

      • VBScript: IsNull(<FILE_DATA>)

    • Process data file has a specific size (less than 1 MB) and a specific file name:

      • JavaScript: <FILE_DATA.SIZE> < 1024000 && <FILE_DATA.NAME>.indexOf("report") > -1

      • VBScript: <FILE_DATA.SIZE> < 1024000 And InStr(1,<FILE_DATA.NAME>,"report") > 0

    Condition rules

    • You can only add one condition to a transition. To add more conditions between the same actions, create additional transitions between the actions and place the additional conditions on them.

    • You can only place one condition or one exception on a given transition.

    • Each condition is evaluated individually. For example, if there are two conditions on separate transitions between actions, and both are TRUE, then the next action will be created twice.

    Editing exceptions

    Exception type

    Remarks

    Action overdue

    Exception triggered by the system when an action is overdue

    Action cancellation triggered by

    Exception triggered when a user or supervisor cancels an ongoing action or sub-process

    To prevent users and/or supervisors from cancelling the action, uncheck Users and/or Supervisors. Otherwise, Users, Supervisors, Administrators, and System are checked by default, and can all cancel actions.

    ✏️ Note: Administrators and System cannot be unchecked, and can always cancel actions.

    Assignment error

    Exception triggered when an action is assigned to a user that is not associated with the participant

    Execution error

    Exception triggered by the system when an error occurs during an automatic application execution (a system action)

    Default

    Exception triggered by default

    Exception rules

    • You can only add one exception to a transition. To add more exceptions between the same actions, create additional transitions between the actions and place the additional exceptions on them.

    • You can only place one exception or one condition on a given transition.

    • Each exception is evaluated individually. For example, if there are two exceptions on separate transitions between actions, and both exceptions occur, then the next action will be created twice.

    • When an exception occurs at runtime, the default exception is assumed if no specific exception path corresponding to the exception type was defined in the process definition.

    • If an exception path is linked to the end of the process and the exception occurs at runtime, all the ongoing actions are cancelled and the request is closed with the status Closed – Cancelled.

    . As well, samples of APIs that use SENDHTTPPOST are available in the
    repository on GitHub.

    How it works

    • The default payload content type (APP_CONTENT_TYPE) is JSON; URLENCODED is also supported.

    • Since the application parameters are case-sensitive, parameters must use the API’s accepted notation.

    • The SENDHTTPPOST application requires the APP_URL parameter, which corresponds to the external API URL.

    • The TOKEN parameter is available for authentication for external APIs where the token is not included in the URL. In these cases, the token will be sent in the payload using the TOKEN parameter.

    • The response can contain an optional payload mapped to user-defined OUT parameters.

    • In case of error when then APP_RESPONSE_STATUS OUT parameter is not defined, an exception will be triggered; 2xx HTTP response status codes are successful responses.

    • Besides the optional parameters listed below, you can also add additional custom IN and OUT parameters (specific to the external API) to send and receive custom user-defined data to and from the external API. For example, in a Slack integration, you can add a parameter to include an emoji in a Slack message, and map this to Slack’s "icon_emoji" parameter (this is the Slack API’s accepted notation for this particular parameter).

    • The default timeout (APP_TIMEOUT) is 3000 milliseconds; the maximum timeout is 60,000 milliseconds.

    • The HTTP request headers can be defined with the APP_HEADER_xxx parameters, where xxx is the header field name.

    • The default maximum response length is 4194304 characters (4 MB); this default value can be modified by setting the SendHttpPostMaxResponseLength parameter value in the web.config file.

    • Application logs are available; these can be specified by setting the SendHttpPostLogLevel parameter value in the web.config file to 0 to disable logging, 2 for simple logs, or 3 for debug logs.

    Examples of JSON payloads

    A payload created by SENDHTTPPOST to send a message to a Slack channel would look something like this:

    A payload created by SENDHTTPPOST to send nested JSON to be converted into objects by an external API would look something like this:

    Parameters

    Required parameter

    Parameter

    Type

    Direction

    Description

    APP_URL

    Text

    IN

    External API URL

    Optional parameters

    Parameter

    Type

    Direction

    Description

    TOKEN

    Text

    IN

    API authorization token (use this parameter to specify a token for external APIs that don’t include the token in the URL)

    APP_TIMEOUT

    Numeric

    IN

    Maximum time interval between the request sending and the response reception (default: 3000 milliseconds; maximum 60,000 milliseconds)

    APP_CONTENT_TYPE

    Examples

    Header parameters

    Parameter

    Type

    Direction

    Value

    APP_HEADER_Authorization

    Text

    IN

    Bearer AbCdEf123456

    APP_HEADER_location

    Text

    IN

    canadaeast

    The parameters defined above will generate two headers in the request payload:

    Convert JSON request payload into an array

    When setting the parameter APP_REQUEST_CONTENT_IS_ARRAY to Y, it will convert the JSON into an array:

    Using webhooks with WorkflowGen
    WorkflowGen Forum & Knowledge Base
    Workflow Application: Using SENDHTTPPOST to send messages to Slack
    SENDHTTPPOST Workflow Application

    Display name

    Filters by group's displayed name

    Distinctive name

    Filters by group's distinctive name

    System identifier

    Filters by group's system identifier (SID)

    Test

    Query syntax test and query result

    Email

    Group email address

    Group code

    Group code

    Display name

    Group displayed name

    Distinctive name

    Group distinct name

    System identifier

    Group SID

    User(s)

    Number of users associated to the group (a link displays the corresponding users)

    Synchronized

    If checked, the group is synchronized

    query examples

    Notifications

    Notifications tab

    Automatic notifications

    Additional notifications

    * The pre-overdue notification feature is available in WorkflowGen 5.1.7 and later. A process XPDL using this feature will not be compatible with previous versions of WorkflowGen including release 5.1.6. An error will be raised when trying to import the new XPDL into those versions.

    Adding and editing additional notifications

    To add an additional notification, click the plus sign (+) in the rightmost column header, choose an event and a template if desired (otherwise these will use the defaults of To do and Default, respectively), then choose the recipient(s). Click again to save the notification. You can then add a condition if desired.

    Click on the event, the recipient(s), the template, or the condition to edit them. To remove a notification, click the x to the right of the notification.

    While additional notifications are automatically saved, you must click Save or Save and close to save changes to automatic notifications.

    Overdue and pre-overdue notifications

    You can define a hierarchy to handle overdue and pre-overdue action notifications by specifying additional notification conditions based on JavaScript or VBScript date/time calculation functions. You can do this in JavaScript by manipulating the date object directly, in VBScript using the DateDiff function, or by using the Current Action.Overdue and Current Action.Pre-overdue macros (see the section for more information).

    • With overdue notification macros, the actual time overdue is rounded down to the nearest time unit, while with pre-overdue notification macros, the actual time pre-overdue is rounded up to the nearest time unit.

    • For better precision in calculating the duration, it is suggested to use minutes as the time unit in your condition. For example, if you’re using the VBScript DateDiff function in a condition, use n

    Examples

    In a process action, if you want to notify the requester that the action is late within one day, and also notify the process supervisor should the action continue to be late after two days, you have to add the two additional notifications on the action with the following settings:

    Notify the requester if the action is late within 1 day

    Type: Overdue Recipient: Requester

    • JavaScript:

    • VBScript:

    • Using a macro:

    Notify the process supervisor if the action is late by 2 days

    Type: Overdue Recipient: The supervisor participant

    • JavaScript:

    • VBScript:

    • Using a macro:

    Pre-overdue notifications

    In a process action, if you want to notify a user that an action will become late in advance of a due date, you have to add an additional notification on the action using the Prior overdue (pre-overdue) event.

    To add a new pre-overdue notification to an action:

    1. In a process action notification tab, under the Additional section, select the Prior overdue event.

    2. Select the recipient(s).

    3. Select the Default template or a custom template previously created.

    📌 Examples

    Notification sent within 3 days prior to being overdue

    • JavaScript:

    • VBScript:

    • Using a macro:

    Notification sent within 15 minutes prior to being overdue

    • JavaScript:

    • VBScript:

    • Using a macro:

    There is no limit to the number of additional pre-overdue notifications that can be added to an action (e.g. 2 days, 1 day, 1 hour, 30 minutes, etc.).

    • If you don't specify a condition, the pre-overdue notification will be sent whenever an action is created with a lead time and the Windows Engine service is run. It is best practice to add a condition as per the above examples to control when the prior overdue notification is sent.

    • As of version 5.1.7, any process that includes a pre-overdue notification in an action cannot be imported into WorkflowGen versions 5.1.6 and earlier due to incompatibilities.

    RAISEEXCEPTION Workflow Application

    Overview

    The RAISEEXCEPTION workflow application raises the cancel exceptions on specified actions, as controlled by the action cancellation workflow exception in the conditions definition panel. This workflow application can thus be called by an action to cancel one or several other actions in a running request. The application is converted as an assembly workflow to simplify configuration and improve performance.

    Data

    Process data list screen

    COL_NAME[,...n]
    ["TEXT|NUMERIC|DATE"[,...n]]
    VALUE[ ,...n]
    iso,country
    AD,Andorra
    AE,United Arab Emirates
    AF,Afghanistan
    AG,Antigua and Barbuda
    AI,Anguilla
    Id,iso,Country
    NUMERIC,TEXT,TEXT
    1,AD,Andorra
    2,AE,United Arab Emirates
    3,AF,Afghanistan
    4,AG,Antigua and Barbuda
    5,AI,Anguilla
    Id,Lastname,Firstname,Address,Birthday
    NUMERIC,TEXT,TEXT,TEXT,DATE
    1,DOE,John,"1111 N. Sample, Mt. Prospect, IL 60000","01/01/1980"
    (function(){
      var myVar = <DATA>
      return myVar == "Lorem ipsum"
    })()
    {
        "channel": "#marketing-channel",
        "text": "This is a test",
        "username": "eric_knox"
    }
    {
        "Person": {
            "Address": {
                "Street": "Test",
                "Zipcode": "XXX XXX"
            },
            "Age": 30,
            "Name": "John"
        }
    }
    Authorization: Bearer AbCdEf123456
    location: canadaeast
    [{
        "person": {
            "address": {
                "street": "160 Guy Street",
                "zipcode": "J4G 1U4"
            },
            "age": 30,
            "name": "John"
        }
    }]

    Text

    IN

    Request content type supported by the external API (SENDHTTPPOST supports JSON and URLENCODED; the default is JSON)

    APP_RESPONSE_CONTENT

    Text

    OUT

    Returned optional payload or error message

    APP_RESPONSE_STATUS

    Text/Numeric

    OUT

    Returned HTTP request status code

    APP_HEADER_xxx

    Text

    IN

    External API header parameters where xxx is the header field name

    APP_REQUEST_CONTENT_IS_ARRAY

    Text

    IN

    When set to Y, the application will convert the JSON request payload into an array; the default is N

    Only supported when building JSON request payload with IN parameters.

    &&

    Inserts the logical operator AND

    ||

    Inserts the logical operator OR

    ==

    Inserts the logical operator EQUAL TO

    !=

    Inserts the logical operator NOT

    null

    Test function to find out if the data contains no value

    getTime()

    Returns the numerical value of a date in milliseconds

    VBScript

    ( )

    Enclose the selected text between parentheses

    And

    Inserts the logical operator AND

    Or

    Inserts the logical operator OR

    Not

    Inserts the logical operator NOT

    IsNull()

    Test function to find out if the data contains no value

    DateDiff

    Inserts blank DateDiff condition syntax to set values (see Overdue and pre-overdue notifications)

    IIFE
    <WF_SYSTEM_DATETIME> - <WF_ACTIVITY_INST_LIMIT_DATETIME>) / 3600000 >= 12
    as the unit parameter; if you’re using a macro, use
    <WF_ACTIVITY_INST_OVERDUE_MINUTES>
    or
    <WF_ACTIVITY_INST_PREOVERDUE_MINUTES>
    .
    Click Add.
  • Enter the condition (see below for examples).

  • Fields

    Remarks

    To assign

    Specifies if an email is automatically sent to the user who has to assign the action

    To do

    Specifies if an email is automatically sent to the user who has to handle the action

    Overdue

    Specifies if an email is automatically sent to the user who has to handle an overdue action

    Assignment cancelled

    Specifies if an email is automatically sent when an action assignment has been automatically or manually cancelled

    Fields

    Remarks

    Event

    Type of event notifications:

    • To do

    • Cancelled

    • Assignment cancelled

    • Assignment error

    • Overdue

    • Prior overdue (pre-overdue) *

    • Closed

    • Execution error

    Recipient

    Recipient(s) of the notification:

    • The requester

    • The action initiator (if the assignment method is manual)

    • The action assignee

    • Free-form email addresses (comma or semicolon separated)

    • The users associated to a participant

    • The user who has handled the action ... (action name)

    • Email addresses contained in the data ... (selected from the list below). Use , (comma) or ; (semicolon) as email separator.

    Template

    Email message templates:

    • Default (uses the standard email template located in \App_Data\Templates\Emails)

    • Use the content of the data (select one in the list below); the list is filled in with text and file process data.

    When defining your own template in data or a file you can use:

    • The reserved keyword SUBJECT to define an email custom subject line

    • Macros

    • Custom email templates; see for instructions on how to create custom email templates

    Columns

    Remarks

    Event

    The type of event notification

    Recipient

    Recipient(s) of the email

    Template

    The selected template of the message to be sent

    Condition

    A link displays the notifications condition form in edit mode

    Deletion

    Click the x to delete the notification

    Macros
    parameter in the
    web.config
    .
    parameter in the
    web.config
    .
    The RAISEEXCEPTION web app in IIS and the file system folder (\wfgen\WfApps\WebServices\RaiseException) can be disabled and removed. Authentication settings at the application level are not required.

    This feature is useful when one or more actions need to be cancelled after a certain point in the workflow has been reached, even though those actions have already been activated. For example, if three parallel actions are ongoing, but one of the parallel actions is concluded ahead of the others and your workflow rules have determined that the two other actions are no longer required, you can activate RAISEEXCEPTION to cancel the other two actions and allow the workflow to continue.

    Additionally, you can:

    • Use default parameters to cancel all open actions in a specific request.

    • Use optional parameters to cancel a list of action instantiations in a list of requests or to cancel on behalf of a specific user.

    • Use additional parameters to define multiple pairs of action references.

    Default parameters

    The REQUEST_ID and ACTIVITY_NAME parameters must always be used together.

    Parameter

    Type

    Direction

    Description

    REQUEST_ID

    Numeric

    IN

    ID of the request where the action will be cancelled

    ACTIVITY_NAME

    Text

    IN

    Name of the action that will be cancelled

    📌 Example

    In this example, the application will cancel all instances of the PENDING_ACTION action in request 455:

    Optional parameters

    The REQUEST_ID_LIST and ACTIVITY_NAME_LIST parameters must always be used together.

    Parameter

    Type

    Direction

    Description

    REQUEST_ID_LIST

    TEXT

    IN

    List of request IDs where the action will be cancelled

    ACTIVITY_NAME_LIST

    TEXT

    IN

    List of action names that will be cancelled

    USERNAME

    Examples

    In this example, the application will cancel all the instances of the actions PENDING_ACTION1 and PENDING_ACTION2 in each of requests 445, 446, and 447:

    In this example, the application will cancel all the instances of the action named PENDING_ACTION in request 445 on behalf of John Doe (jdoe):

    Additional parameters

    Parameter

    Type

    Direction

    Description

    EX?_REQUEST_ID

    Numeric

    IN

    Indicates the ID of the request where the action will be cancelled for the pair specified by the ? (question mark)

    EX?_ACTIVITY_NAME

    Text

    IN

    Indicates the name of the action that will be cancelled for the pair specified by the ? (question mark)

    IGNORE_NOTHINGTODO_ERROR

    📌 Example

    In this example, the application will cancel all instances of the PENDING_ACTION1 action in request 455 and all instantiations of the PENDING_ACTION2 action in request 456. If actions 455 and 456 have no instance then no error is raised.

    Possible execution errors

    The following errors can occur during the execution of the transactions:

    Error

    Cause

    Solution

    WorkflowGen Context is empty

    All the RAISE_EXCEPTION parameters are empty

    Check the RAISE_EXCEPTION parameters.

    Application parameters are not correctly entered

    The RAISE_EXCEPTION parameters are not correctly filled

    Check the RAISE_EXCEPTION parameters.

    (WorkflowGen Web Exception) HTTP Status: ...Response error: ... or The FUNCTION_NAME parameter was not found

    An error occurred while trying to send the HTTP request to WorkflowGen

    Check the HTTP status: 401: Security error

    Check your authenticating parameters:

    404: Unable to connect to the URL

    500: Internal server error

    Check for indications in the returned error message.

    Error while trying to connect to WorkflowGen database Error message: ...

    Data name (a link displays the data form in edit mode. To add new data, click New data to open a blank data form.

    Description

    Data description

    Data type

    Type of data

    Direction *

    Direction of the sub-process parameter

    * Only displayed if the process was defined as a sub-process.

    Editing data

    The options available in the Edit data panel vary depending on the data file type (File, Text, Numeric, or Date/Time).

    Fields

    Remarks

    Name

    Unique identifier for the data; must respect nomenclature and be limited to 30 characters (required field)

    ✏️ Note: Data names should respect the following XML naming rules:

    • They should begin with a letter or an underscore

    • They should contain only letters, digits, hyphens, underscores, and periods

    Browse

    Lists the IDs of all the form fields created with the built-in form designer and enables it to manually select the fields with their IDs to declare as process data

    ✏️ Note: This button appears on the Add data form.

    Description

    Data description limited to 255 characters (required field)

    Data type

    Type of data (required field):

    • Text

      • Includes automatic detection of URLs (http://) and email addresses and displays them as links rather than plain text

    • Numeric

    Default value

    Default value of the data

    • For text type data: Click the pencil icon to open the Edit text inline editor.

    • For file type data: Click the pencil icon to open the Create file or Edit file inline editor. You can specify a file name (otherwise the file will be saved with the data name by default) and the file will be saved with the extension that matches its type. If you enter an extension that doesn’t match the file type, it will be appended with the correct extension. Alternately, click Browse or Choose file (depending on your browser) to choose a file. (If you choose a file in a format not supported by the editor, you will not be able to edit it and so the pencil icon will not appear.) To delete the file, click the

    1. Only displayed if the process data is a file.

    2. Only displayed if the process was defined as a sub-process.

    Changing the data type

    The type of data can only be changed if the data are not used:

    • By the parameters of the actions of the process

    • In the dynamic assignment of an action of the process

    • In the transition or notification conditions

    • If the data is not a parameter of a sub-process that is in use

    Deleting data

    Data cannot be deleted if they are involved in the workflow of the process (as a parameter or in the transition conditions). Data cannot be deleted if they are set as a sub-process parameter and used by a parent process.

    Columns

    Remarks

    Display order

    The arrows allow the data display order to be modified. This can also be done by drag-and-drop. This affects the position of the data on the user module as well.

    Name

    Configuring the Adobe Sign API

    Reports

    Process report screen

    Errors and warnings

    Errors (prevent the workflow from running)

    General validations performed by the report generator:

    • A process must have at least a beginning and an end.

    • A process must have one single participant in the role of requester.

    • There can only be one OTHERWISE condition in the transitions of an action.

    Action validations performed by the report generator:

    • All actions must have at least one next action or END.

    • If an action has a transition to an end of a process, the transition of the next actions must have a condition.

    • An action that loops must have a condition.

    • For an application or a sub-process, all the required parameters of an action must be defined.

    Warnings (do not prevent the workflow from running)

    Action validations performed by the report generator:

    • It is advised to use an exception transition if actions use the following assignment methods and if the username is retrieved from process data:

      • Automatic to the person who handled...

      • Manual by the person who handled...

    Usage

    General information

    Participants

    Data

    Actions

    Action sections have sub-sections that provide information about the following:

    • General

    • Required parameters

    • Additional parameters

    • Previous action

    Workflow

    Process workflow screen (list view)

    Actions list view

    Portlet

    Overview

    The Portlet allows you to retrieve information from the WorkflowGen User Portal homepage.

    The results received from HTTP are stored in XML RSS format and classified by category. This format allows the processing and presentation of the data with any language able to read and parse XML content.

    (<WF_SYSTEM_DATETIME> - <WF_ACTIVITY_INST_LIMIT_DATETIME>) / 3600000 < 24
    DateDiff("h",<WF_ACTIVITY_INST_LIMIT_DATETIME>,<WF_SYSTEM_DATETIME>) < 24
    <WF_ACTIVITY_INST_OVERDUE_HOURS> < 24
    (<WF_SYSTEM_DATETIME> - <WF_ACTIVITY_INST_LIMIT_DATETIME>) / 3600000 >= 48
    DateDiff("h",<WF_ACTIVITY_INST_LIMIT_DATETIME>,<WF_SYSTEM_DATETIME>) >= 48
    <WF_ACTIVITY_INST_OVERDUE_HOURS> >= 48
    (<WF_ACTIVITY_INST_LIMIT_DATETIME> - <WF_SYSTEM_DATETIME>) / 86400000 <= 3
    DateDiff("d", <WF_SYSTEM_DATETIME> , <WF_ACTIVITY_INST_LIMIT_DATETIME>) <= 3
    <WF_ACTIVITY_INST_PREOVERDUE_DAYS> <= 3
    (<WF_ACTIVITY_INST_LIMIT_DATETIME> - <WF_SYSTEM_DATETIME>) / 60000 <= 15
    DateDiff("n", <WF_SYSTEM_DATETIME> , <WF_ACTIVITY_INST_LIMIT_DATETIME>) <= 15
    <WF_ACTIVITY_INST_PREOVERDUE_MINUTES> <= 15
    REQUEST_ID = 455  
    ACTIVITY_NAME = "PENDING_ACTION"
    REQUEST_ID_LIST = "455, 456, 457"  
    ACTIVITY_NAME_LIST = "PENDING_ACTION1, PENDING_ACTION2"
    REQUEST_ID = "455"  
    ACTIVITY_NAME = "PENDING_ACTION"  
    USERNAME = "jdoe"  
    PASSWORD = "1234"
    EX1_REQUEST_ID = 455  
    EX1_ACTIVITY_NAME = "PENDING_ACTION1"  
    EX2_REQUEST_ID = 456  
    EX2_ACTIVITY_NAME = "PENDING_ACTION2"  
    IGNORE_NOTHINGTODO_ERROR = "Y"

    TEXT

    IN

    Used to set the username used to cancel the action ✏️ Notes:

    • This username must be part of a participant of the process.

    • If this parameter is not specified then the account used is the one specified as the Workflow engine service default identity in the Security section on the General tab in the Configuration Panel.

    PASSWORD

    TEXT

    IN

    Used to set the password corresponding to the username used to cancel the action

    EXCEPTION_NAME

    Exception that will be triggered on the action

    Possible values:

    • CANCEL

    • ERROR

    • TIMEOUT

    • ASSIGNMENT_ERROR

    EXCEPTION_MESSAGE

    Used with the ERROR exception name to provide more details about the error in the follow-up action

    Text

    IN

    Ignore Nothing to do error

    By default, RAISE_EXCEPTION returns an error if you try to cancel an action that doesn’t have any open instantiation. If you set this parameter value to Y, the application will ignore this type of error.

    An error occurred while trying to connect to the WorkflowGen database

    Check your connection string in the configuration file.

    Check for indications in the returned error message

    Parameters: <Request Id parameter name>/<Activity Name parameter name>, Error: WorkflowGen has raised a security exception.

    The user defined by the IDENTITY parameters is not a participant of the process

    Check IDENTITY_USERNAME and IDENTITY_PASSWORD parameters.

    Identify the request with parameters names returned in the error message.

    Parameters <Request Id parameter name>/<Activity Name parameter name>, Error: The activity name <Activity Name> doesn’t exist in the request <Request Identifier>.

    One of the activity names defined in the RAISE_EXCEPTION parameters doesn’t exist.

    Check the RAISE_EXCEPTION parameters.

    Check for indications in the returned message.

    Parameters <Request Id parameter name>/<Activity Name parameter name>, Error: The action <Activity Name> doesn’t have any open instantiation in the request <Request Identifier>".

    One of the actions to cancel is not open

    Check the RAISE_EXCEPTION parameters.

    Check for indications in the returned message.

    To ignore this error, set IGNORE_NOTHINGTODO_ERROR parameter to Y.

    If more than one transition exists between two actions, all of the transitions must be conditions.
  • All process data must be used in the action parameters or in the transition conditions.

  • Data used in a condition must be associated to an OUT or INOUT direction action parameter if no default value is set.

  • Actions that include a transition with an OTHERWISE condition must have another transition with a condition that is not an OTHERWISE condition.

  • If the action comes from a synchronization, the By the action initiator assignment method is not possible.

  • If the action can be launched after an exception transition, the By the action initiator assignment method is not possible.

  • The Automatic to the action initiator assignment method is not allowed if the participant is not a requester and if the participant of the previous action is different.

  • The By the action initiator assignment method is not allowed if the action is called after an exception.

  • Ensure that all required application parameters for an action are defined.

  • Ensure that all the required action parameters for a sub-process are defined

  • Automatic to the person
  • It is advised to use an exception transition if actions use an automatic application (web proc, web service or asynchronous web proc).

  • It is advised to use an exception transition if actions use a sub-process.

  • All process data must be used.

  • Ensure that default and additional parameters used as OUT types are linked with data.

  • Automatic applications must use an exception.

  • Public or private access level

    Categories

    List of categories with which the process is associated

    Lead time

    Process lead time

    Use working days/hours in duration calculation

    Uses only office hours to calculate time schedule

    Notify the requester when closed

    Notification is sent to the requester when the request is closed

    Archive the results of the actions

    Saves the result of each process action at each step of the process

    List of groups associated with this participant

    Directories

    List of directories associated with this participant

    Coordinators

    List of coordinator users for this participant

    Graphical follow-up

    Visible in the graphical follow-up

    Permission for requests

    Access to all requests

    Permission for supervisors

    Special permissions for supervisors

    Permission for comments

    None, read, or read/write permissions

    Query

    Supervisor limited scope query

    Used in actions

    Actions in which this participant is used

    The selected data will appear in every search screen as selected criteria without search parameters

    Display in columns in the lists

    The selected data will appear in a column in all lists of requests and actions (single-process mode)

    Display in column in homepage

    The selected data will appear in a column on the home page (single-process mode)

    Read-only

    Define data as read-only This saves disk space when used on file process data by associating a single copy of the file per process for all closed actions and closed requests. ✏️ Note: An action’s OUT and INOUT parameters using data declared as read-only will not be updated. ⚠️ Caution: In general, do not define EFORM applications'FORM_DATA elements (which contain the data of a form) as read-only.

    Used in actions

    List of actions in which the data is used

    Used in conditions

    List of process transitions in which the data is used

    Next actions

  • Notifications

  • Additional notifications

  • Fields

    Remarks

    Requests

    Request environment

    In progress

    Number of requests in progress

    Closed

    Number of requests closed

    Total

    Total requests launched

    Fields

    Remarks

    Name

    Process name

    Version

    Process version

    Description

    Process description

    Status

    Process status

    Sub-process

    Is this a sub-process?

    Fields

    Remarks

    Description

    Participant description

    Scope

    The participant is defined in the global information

    Role

    Participant role in the process

    Participant type

    Type of association to the directory

    Users

    List of users associated with this participant

    Fields

    Remarks

    Description

    Data description

    Data type

    Type of data

    Default value

    Default value of the data

    Security

    List of participants with access to the data

    Show the data in the follow-up forms

    The selected data will be visible in the following places:

    • Request and action follow-up forms

    • Default notification messages (emails)

    • Action data popup window

    • Search criteria list

    ✏️ Note: Unchecking this option disables and unchecks the Search criteria by default, Display in columns in the lists, and Display in column options.

    Access level

    Groups

    Search criteria by default

    They should not contain spaces
  • They should not begin with the letters XML in any case (e.g. xml or Xml)

  • For more information, see https://www.w3schools.com/xml/xml_elements.asp.

    Date/Time

  • File

  • x
    icon.

    In both editors, press Ctrl+Space to display a drop-down list from which you can choose and insert process data and WorkflowGen macros.

    Format

    Only applicable to Numeric and Date/Time type data. Upon saving the data, the Format drop-down will be populated with the following formats:

    Numeric formats:

    • Custom (user-defined)

    • Currency ({0:C})

    • Decimal ({0:D})

    • Scientific ({0:E})

    • Fixed-point ({0:F})

    • General ({0:G})

    • Number ({0:N})

    • Percent ({0:P})

    • Round-trip (float) ({0:R})

    • Hexadecimal ({0:X})

    Date/Time formats:

    • Custom (user-defined)

    • Short date

    • Long date

    • Full date/time (short time)

    Custom

    Displays associated format; allows custom formats to be specified if Custom formatting is specified above.

    Precision

    Number of decimal places displayed (for applicable formats)

    Culture

    Force data to display using the selected culture (language format); the default value is the current user’s culture.

    Time zone

    Applicable only to Date/Time type data. Specifying a specific time zone will force data to display using the selected time zone. The default value is the current user’s time zone.

    New file [1]

    File to update/add

    Choose file

    Displays a file browser in a pop-up window

    Sub-process parameter [2]

    Direction of the data when used as parameter by a parent process

    Security

    Defines participants who have access to the data; a link allows data access to be restricted to certain participants or processes.

    ✏️ Note: You can only select from Participants with Requester or Actor roles.

    Visibility

    Allow the definition of visibility options

    ✏️ Note: Data visibility is still updatable on active or archived processes.

    Option 1: Show the data into the follow-up forms (checked by default)

    The selected data will be visible in the following places:

    • Request and Action follow-up forms

    • Default notification messages (e-mails)

    • Action data pop-up window

    • Search criteria list

    ✏️ Note: Unchecking this option disables and unchecks the three other options.

    Option 2: Search criteria by default (unchecked by default)

    The selected data will appear in every search screen as selected criteria without search parameters.

    ✏️ Note: You can only filter by the data defined in the active process version or the latest process version if none are active.

    Option 3: Display in column in the lists (unchecked by default)

    The selected data will appear in every action or request list in a column when a single process is selected (single-process mode).

    Option 4: Display in column in home page (unchecked by default)

    The selected data will appear in the home page in a column when a single process is selected (single-process mode).

    Column size (in pixels)

    Define the data column size in the lists and home page; enabled when visibility option 3 or visibility option 4 is checked

    Read-only

    Define data as read-only This saves disk space when used on file process data by associating a single copy of the file per process for all closed actions and closed requests. ✏️ Note: An action’s OUT and INOUT parameters using data declared as read-only will not be updated. ⚠️ Caution: In general, do not define EFORM appplications'FORM_DATA elements (which contain the data of a form) as read-only.

    Click the List link to see this view.

    Button / Column

    Remarks

    New action

    Opens the Select an action type window and then the Add action form

    Refresh

    Updates the action list

    Delete

    Deletes the selected action

    Order

    The arrows allow the action display order to be modified within the process workflow

    Name

    Action name

    A link displays the action form in edit mode. The Add link on the Edit action screen displays a blank action form to add new Help data)

    HTML5 graphical process workflow designer

    WorkflowGen features an HTML5 graphical process workflow designer, built on the latest HTML5 and SVG standards, with a simpler user interface and improved behavior for a more fluid design experience. It also provides greater compatibility with different design environments (such as mobile devices) that might not support Flash, which was the mode used in previous versions of WorkflowGen.

    Process workflow screen (graphical view)

    Actions graphical view

    Click the Graphical link to see this view.

    Icon

    Tools

    Remarks

    Save the layout

    Save the current layout of the workflow diagram

    Print the diagram

    Print the current diagram

    Add participant

    Add a new participant to the process

    Graphical workflow designer functions

    Function

    Method

    Add an element (action, synchronization, endpoint, comment, text)

    Drag and drop the element from the toolbar onto the canvas.

    Delete an element (action, synchronization, endpoint, comment, text)

    Click the element, then click the x that appears in the top right corner.

    Add a transition

    Click the action and click the down arrow, then drag and drop it onto the desired action.

    Add a transition loop

    Click the action and click the down arrow, then drag and drop the transition onto the same action.

    Delete a transition

    Click the transition, then click the x that appears in the top right corner.

    URL and HTTP parameters

    URL

    You can reach the content generated by the Portlet module with the following URL: http://yoursite/wfgen/show.aspx?QUERY=SHOW_RSS.

    Parameters

    Parameter

    Description

    USERNAME

    Retrieve data for this user. The current login is assumed if this parameter is missing.

    📌 Example: wfgen_admin

    CATEGORY

    List of categories to retrieve separated by ; (semicolon). If this parameter is missing, all the available categories are returned.

    📌 Example: REQUEST_RUNNING_NB;ACTION_TODO_NB

    PROCESS

    Allows content to be filtered by some specific processes. Specify the names of the processes separated by ; (semicolon).

    📌 Example: LEAVE_APPLICATION

    PROCESS_CATEGORY

    Allows content to be filtered by some specific process categories. Specify the names of the categories separated by ; (semicolon).

    📌 Example: HR

    SHOW_NEW_REQUEST

    Retrieve the list of processes that the current user can launch.

    📌 Example: Y

    Examples

    Retrieve all categories for the user whose username is johnd:

    Retrieve the actions to do (normal and overdue) for the user whose username is johnd:

    Retrieve information relative to the HR category for the current user:

    Security

    Authentication

    To connect to the Portlet module, you must use an account that has access to the WorkflowGen User Portal (e.g. wfgen_admin).

    Username with or without a domain name

    You must remove the domain name from the username when calling the Portlet module if the usernames are prefixed by the domain name (see User Management for more information).

    RSS format specification

    Official specification

    Official information about the RSS 2.0 standard is available at http://blogs.law.harvard.edu/tech/rss.

    Content example

    XML RSS nodes description

    Name

    Path

    Description

    channel

    rss

    Root node

    title

    rss/channel

    Channel title

    📌 Example: WorkflowGen

    description

    rss/channel

    Channel description

    📌 Example: WorkflowGen

    pubdate

    List of available categories

    The available categories are as follows:

    Name

    Description

    REQUEST_RUNNING_NB

    Number of ongoing requests

    REQUEST_RUNNING_OVERDUE_NB

    Number of overdue ongoing requests

    ACTION_TODO_NB

    Number of actions to do

    ACTION_TODO_OVERDUE_NB

    Number of overdue actions to do

    ACTION_TEAM_NB

    Number of team actions to do

    If a category is empty at runtime, it is not added to the RSS content.

    Possible errors

    When an error occurs, the HTTP status of the page is modified and a runtime error will be displayed with a custom number.

    The following errors can occur during the execution of the script:

    Error

    Description

    Number

    HTTP status

    Unable to connect to the database

    The database is unavailable.

    100

    500

    Unknown user

    The username passed through the USERNAME parameter does not correspond to an existing WorkflowGen user.

    101

    500

    Error during the execution of the request <CATEGORY>

    Custom notification templates
    http://yoursite/wfgen/show.aspx?QUERY=SHOW_RSS&USERNAME=johnd
    http://yoursite/wfgen/show.aspx?QUERY=SHOW_RSS&USERNAME=johnd&CATEGORY=ACTION_TODO_NB;ACTION_TODO_OVERDUE_NB
    http://yoursite/wfgen/show.aspx?QUERY=SHOW_RSS&PROCESS_CATEGORY=HR
    <?xml version="1.0" encoding="UTF-8" ?>
    <rss version="2.0">
        <channel>
            <title>WorkflowGen</title>
            <description>WorkflowGen</description>
            <pubdate>Fri, 24 Oct 2011 15:19:42 GMT</pubdate>
            <language>en-US</language>
            <item>
                <title>Ongoing requests</title>
                <link>http://yoursite/wfgen/...</link>
                <description>15</description>
                <category>REQUEST_RUNNING_NB</category>
            </item>
            <item>
                <title>Actions to do</title>
                <link>http://yoursite/wfgen/...</link>
                <description>10</description>
                <category>ACTION_TODO_NB</category>
            </item>
        </channel>
    </rss>

    XSL

    Path of the XSL sheet used to transform the RSS content.

    📌 Example: http://yoursite/portlet.xsl

    rss/channel

    Channel content publication date

    language

    rss/channel

    Channel language

    item

    rss/channel

    Categories container node

    title

    rss/channel/item

    Category title

    link

    rss/channel/item

    Contextual link of the category in WorkflowGen

    description

    rss/channel/item

    Category value

    category

    rss/channel/item

    Category name

    ACTION_TEAM_OVERDUE_NB

    Number of overdue team actions to do

    ACTION_TOASSIGN_NB

    Number of actions to assign

    ACTION_TOASSIGN_OVERDUE_NB

    Number of overdue actions to assign

    REQUEST_CLOSED_NB

    Number of requests closed since my last visit

    REQUEST_CLOSED_OVERDUE_NB

    Number of overdue requests closed since my last visit

    REQUEST_TOFOLLOW_NB

    Number of requests to follow

    REQUEST_TOFOLLOW_OVERDUE_NB

    Number of overdue requests to follow

    ACTION_TOFOLLOW_NB

    Number of actions to follow

    ACTION_TOFOLLOW_OVERDUE_NB

    Number of overdue actions to follow

    NEW_REQUEST

    List of available processes that the user can launch

    An error occurred during the execution of the SQL request corresponding to the <CATEGORY> category.

    102

    500

    Full date/time (long time)

  • General date/time (short time)

  • General date/time (long time)

  • Month day

  • Round-trip date/time

  • RFC 1123 date/time

  • Sortable date/time (ISO 8601)

  • Short time

  • Long time

  • Universal sortable date/time

  • Universal full date/time

  • Year month

  • Description

    Action description

    Previous actions

    Lists actions preceding the current action within the workflow

    Next actions

    Lists actions following the current action within the workflow

    A link displays the Edit action form, which lists actions that following the current one. The Add link on the Edit action form displays the action form in edit mode for each following action.

    Add action

    Add a new action to the process

    Add synchronization

    Add a synchronization action to the process

    Add end point

    Add an end point to the process

    Add comment

    Add a comment to the process

    Add text

    Add text to the process

    Add break points

    Add break points to transitions

    Choose auto positioning mode

    Switch between auto and manual positioning mode for the transition anchors

    Show assignment methods

    Show assignment methods on actions

    Display vertical swimlanes

    Add a vertical swim lane overlay on the graphical view with actions displayed in the participant columns

    Display horizontal swimlanes

    Add a horizontal swim lane overlay on the graphical view with actions displayed in the participant rows

    Display vertical panels

    Add a vertical panel overlay on the graphical view with actions displayed in the participant columns

    Display horizontal panels

    Add a horizontal panel overlay on the graphical view with actions displayed in the participant columns

    Display color picker

    Display a color picker from which you can choose the swimlane/panel and the background color

    Decrease zoom

    Decrease the zoom scale by 15%

    Increase zoom

    Increase the zoom scale by 15%

    Maximize canvas

    Maximizes the canvas size

    Return to default canvas size

    Returns to the default canvas size

    Add a condition

    Double-click the transition.

    Add more than one condition to a transition

    You cannot add more than one condition to a single transition. Instead, create a new transition between the actions and add the condition here.

    Update a condition

    Double-click the transition or condition.

    Delete a condition

    Click the condition, then click the x that appears in the top right corner.

    Delete a participant

    Click the participant, then click the x that appears in the top right corner.

    Auto positioning mode

    Click the auto positioning mode tool then choose one of the options.

    Add a breakpoint

    Click the add breakpoint tool then click the transition (breakpoints will be created individually). As well, clicking the breakpoint tool will show all of the existing breakpoints.

    Delete a breakpoint

    Click the breakpoint, then click the x that appears in the top right corner or press the DELETE key (only the selected breakpoint will be deleted). In the case of loop transitions, a minimum of two breakpoints are required.

    Change the position of a loop transition

    Change the position of each of the breakpoints so that the transition points to the new position.

    Change the target/source of a transition

    Click the transition, hover over the target/source of a transition until the hand pointer appears, then drag and drop the target/source onto another action.

    Change the loop of an action toward another action

    Click the loop, then change the target and the source toward the other action.

    Resize swimlanes

    Click the participant, place the pointer over the border between participants, click the border, then drop it on the new position.

    Change the order of participants

    Click the participant, then drag and drop it onto the new position (the orange header indicates the new position of the participant).

    Associate actions with participants in swimlanes

    Can be enabled and disabled in the Workflow section on the Administration tab in the Configuration Panel.

    Zoom

    The zoom percentage is displayed in the top right corner of the workflow.

    Participants

    Process participant list screen

    Participant list

    Participant form

    1. In read-only mode if the participant is of the global type.

    2. Only one requester is allowed per process.

    3. Accessible only to List of persons and List of persons with coordinator type participants.

    4. Accessible only to

    Association with the directory

    * Visible only if associated with a user or a coordinator and when the number of users in the base is greater than the limit set by the software administrator.

    • A Person type participant can only be associated with a single user.

    • A List of persons type participant is associated to one or several users or groups or directories.

    • A List of persons with coordinator type participant is associated with one or several coordinators and to one or several users, groups or directories.

    Deleting a participant

    A participant cannot be deleted if the participant is being used in a process action.

    Adding a global participant

    A global participant can only be associated once to a process.

    Process requester

    There can only be one participant in the Requester role in a process.

    Process supervisor

    There can be multiple participants with the Supervisor role in a process, each with different security settings and different follow-up access specified via the limited scope query.

    Changing the participant type

    The following conditions apply when changing the participant type:

    • Person to List of persons or List of persons with coordinator(s): The participant must not be used in a process action.

    • List of persons to Person: A single user must be associated to the participant, and the participant must not be used in a process action.

    • List of persons to List of persons with coordinator(s): Add at least one coordinator.

    Supervisor limited scope

    The supervisor limited scope feature allows dynamic filtering of requests and action follow-up access for process supervisors. When a user is associated with a process supervisor participant with limited scope access enabled, the User Portal homepage follow-up results, portlet RSS feeds, follow-up search results, and statistics reports will be shown only with accessible requests and actions. The supervisor limited scope is defined using criteria conditions in which the syntax is similar to SQL query criteria conditions and allows the usage of a user’s profile and requests data information as filter criteria in the query definition.

    Definitions

    A limited scope query can be defined for process participant with the process supervisor role only. You need to add a new process or edit a process supervisor participant and define the query in order to enable the limited scope feature. The query length is limited to a maximum of 255 characters.

    If a query is empty, then the process supervisor has follow-up access to all requests and actions of the specific process.

    Query help

    To access online supervisor limited scope query definition help, click the Query (Help) link.

    Query syntax validation

    Click the Test link to validate the syntax of a supervisor limited scope query. Saving an invalid syntax query is not allowed.

    Available fields and macros for queries

    The fields and macros available for supervisor limited scope queries are listed below. The fields refer to the user’s profile information. You can also use request data as a comparison value in criteria conditions for a query to filter the results.

    * Macros only support hard-coded static text as a parameter. Indicating a process data name is not supported. For example:

    • Valid: {ISMEMBER(my_group_name)}

    • Not valid: {ISMEMBER(@GROUP_NAME)}

    Query examples

    This example matches requests/actions for users is in the province of Quebec:

    This example matches requests/actions for users who have an email ending with advantys.com:

    This example matches users in my group:

    This example matches requests/actions for users whose department is equal to the value of the DEPT_DATA request data:

    Comparing a text to a request data

    To compare a text to a request data, you must inverse the comparison order, with the text first, followed by the operator and the data.

    This example matches requests/actions for users whose city is equal to the value of the MY_CITY request data and the value of the MY_COUNTRY request data is CANADA:

    Comparison operators

    You can use standard SQL comparison operators such as =, !=, <>, IS NULL, NOT IS NULL, LIKE, NOT LIKE, etc.

    For better compatibility, it is recommended to use standard operators that are supported on the database hosting WorkflowGen.

    📌 Example

    This example matches requests/actions for users who are not located in Montreal:

    Logical operators and parentheses

    You can use standard SQL logical operators such as AND and OR to combine multiple criteria conditions to a maximum of 255 characters length in the query. When there are many criteria conditions, it is strongly recommended to use parentheses to logically enclose them.

    📌 Example

    This example matches requests/actions for users who are located in either Toronto or CITY_DATA of CANADA:

    Text values

    Text values in criteria conditions must be enclosed between single quotes. Double quotes are not supported for enclosure but are valid as a value. Wildcard characters such as % (percent sign) and _ (underscore) can be used with the LIKE operator.

    📌 Example

    This example matches requests/actions for users whose last name starts with AN:

    Request data

    You can use request data in criteria conditions to filter requests dynamically, since the request data value can be different from one request to another. To do this, call these request data in the criteria condition by prefixing them with the @ character.

    📌 Example

    This example matches requests/actions for users whose company is equal to the value of request data DATA1:

    (DATA1 is an arbitrary convention; any request data name may be used.)

    Ensure that the requested data name used in the criteria condition has the exact name as the one defined in the WorkflowGen process data list.

    Macros

    You can also use macros in criteria conditions contained in the query. You just have to add an available macro in the criteria condition.

    📌 Example

    This example matches requests/actions for a user who is member of the Dev group, member of the WORKFLOWGEN directory and comes from Montreal:

    It is very important to respect the syntax in the Available macros list.

    Performance impacts

    In some cases, the WorkflowGen User Portal is reduced in performance or has a slower response time when the limited scope is applied for a process supervisor with filtering queries that use LIKE operators and wildcard characters (%,_) in criteria conditions. The is due to a possible large amount of information that needs to be filtered by the limited scope engine for user accessible requests and actions.

    We suggest testing the supervisor-limited scope query in a development environment before releasing for production.

    Applications

    Application screen

    Menu banner

    Filters

    * A filter can be applied to a part of a field.

    Application form

    * Only needed by the web procedures and the web services.

    Application list screen

    Application list

    Edit parameters list screen

    * The delete link is identified by an x visible only if the application is not used by a process action.

    To add a parameter, click the Parameters link on the Edit application screen, then click Add on the Edit parameters list screen.

    Add application parameters

    Application parameter names should respect the following XML naming rules:

    • They should begin with a letter or an underscore

    • They should contain only letters, digits, hyphens, underscores, and periods

    Deleting an application

    An application cannot be deleted if it is used in a process.

    Deleting a parameter

    A parameter cannot be deleted if its application is used in a process.

    Assembly application

    This application allows you to declare a .NET class method as a workflow application. It is the fastest solution to develop a custom workflow application (compared to web services). The execution performance is exceptional because WorkflowGen instantiates the assembly directly without network communication or web service authentication.

    Example

    1. Copy a sample .dll assembly into a WorkflowGen bin folder.

    2. In the Administration Module, click Applications and then New application.

    3. Enter the following information in the appropriate fields:

    • Class full name: Select WorkflowApp.Test

      • Method: Select GetString

    These parameters are automatically generated:

    • IN: message (Text)

    • OUT: RETURN_VALUE (Text)

    You can now use this workflow application in your process.

    WCF service application

    This application allows you to declare a WCF service client proxy .NET class method as a workflow application.

    Example

    1. In the WorkflowGen Administration Module, click Applications and then New application.

    2. Enter the following information in the appropriate fields:

      • Name: WCFSERVICE_SAMPLE_GET_STRING

    • Class full name: Select workflowAppWCFSampleTest.ServiceClient

      • Method: Select GetString

    These parameters are automatically generated:

    • IN: message (Text)

    • OUT: RETURN_VALUE (Text)

    You can now use this workflow application in your process.

    • Name: WCFSERVICE_SAMPLE_GET_STRING

    WSDL web services

    Overview

    WorkflowGen supports web services based on the SOAP standard. This means that web services can now be integrated into WorkflowGen to be used by process actions, without the need to program them. WorkflowGen can now use predefined web services and reference them by using their WSDL (Web Services Description Language) file.

    A URL to the WSDL file defining the web service is required to display the available web methods that can be called by WorkflowGen. Once the WSDL is referenced and saved (in the WorkflowGen application definition), and one of its defined web methods are selected, the WorkflowGen application parameters are automatically generated.

    The data types of the parameters are mapped to the corresponding WorkflowGen data types (numeric, text, datetime). All complex XML types are mapped to a WorkflowGen file data.

    Public web services

    Public web services are web services that are available for public re-use. To reference one as a WorkflowGen Application, follow the example below.

    Creating a WSDL web service

    1. In the Administration Module, create a new WorkflowGen application and define the following:

      • Name

      • Description

    Private web service example

    Overview

    Private web services are web services that are not available for public re-use. They generally use a secure URL that requires the proper authentication. To reference one as a WorkflowGen application, follow the example below.

    Creating a WSDL web service

    1. In the Administration Module, create a new WorkflowGen application and define the following:

      • Name

      • Description

    WSDL web service action: other parameters

    Overview

    WorkflowGen will create some extra parameters when referencing a WSDL. Other parameters can also be used in addition to those already defined in the WSDL file.

    Other parameters

    The other parameters that are defined by WorkflowGen are:

    • RETURN_VALUE: If the web service returns a value, WorkflowGen will automatically add an OUT parameter.

    • WFG_WS_URL: Specify a web service URL to override the predefined URL.

    • WFG_WS_USERNAME: Specify a username to override the predefined username.

    GETUSERSFROMDIR Workflow Application

    Overview

    The GETUSERSFROMDIR workflow application lets you retrieve a username list, a user email list, or a user ID list. These lists are obtained from a WorkflowGen automatic system action that executes SQL queries on the WorkflowGen database. They can either be used for automatic notifications or to define the users of an action in a WorkflowGen process (by storing the output of GETUSERSFROMDIR as a data element and using the resulting data element to specify the users in the notification or action assignment).

    Definitions

    • The x character: The x character in some parameter names means that there can be more than one instance of the parameter. For example, QUERYx_CMD means there can be QUERY1_CMD, QUERY2_CMD, QUERY3_CMD, etc.

    • Action: You must create a GETUSERSFROMDIR type WorkflowGen action to use this application.

    List of available fields and macros for queries

    Listed below are the fields and macros available for the queries created in the QUERYx_CMD parameters. They can be used in the conditions for these queries to filter their results.

    📌 Examples

    This example returns a username list of users in the province of Quebec:

    This example returns a username list of users that have email addresses ending with advantys.com:

    This example returns a username list of users in my group:

    Using additional parameters

    QUERY1_CMD: Executing an SQL query

    Description

    To execute an SQL query, you must add the QUERY1_CMD IN parameter to the action. If the parameter is empty or non-existent, no operation will be performed.

    📌 Example

    This example returns the Montreal username list in the RESULT_LIST parameter:

    RESULT_LIST / QUERYx_RESULT_LIST: Retrieving queries results

    Description

    To get the result of all the queries (username list in string format), you must add the RESULT_LIST OUT parameter to the action. To retrieve the result by query, you have to add the QUERYx_RESULT_LIST OUT parameter for each query (associated to their process data).

    📌 Example

    This example returns the username list of Montreal, Toronto, and New York in the RESULT_LIST parameter. QUERY1_RESULT_LIST contains the username list of Montreal, QUERY2_RESULT_LIST contains the username list of Toronto, and QUERY3_RESULT_LIST contains the username list of New York. RESULT_LIST contains the usernames of all three QUERYx_CMD parameters.

    As of WorkflowGen version 7.15.0, the result of a query returned into a TEXT process data no longer has a 4000-character limit for MS SQL Server database.

    QUERY1_DIR: Directory specification

    Description

    You can specify the user directory on which the query will be executed. You have to add the QUERY1_DIR IN parameter in the action. If this parameter has a NULL value or does not exist, the default directory is WORKFLOWGEN (or the directory specified as the default by an Administrator).

    📌 Example

    This example returns the username list of users in Montreal from the YourCompany directory into the RESULT_LIST parameter:

    If you manage users in WorkflowGen with multiple directories, you must use this parameter to specify the directory to search, and may need to use more than one query of a similar nature to specify all possible directory users (one query per directory).

    QUERYx_CMD: Using more than one query

    Description

    You can add queries in the same WorkflowGen action and retrieve all of the results in one complete list or in one list per query. You must add the QUERYx_CMD IN parameters, where x is the number of the query. To get the result of each query, you have to add the QUERYx_RESULT_LIST OUT parameters.

    📌 Example

    This example returns the username list of users from Montreal in the WORKFLOWGEN directory into the QUERY1_RESULT_LIST parameter, the username list of users from Montreal in the INTRANET directory into the QUERY2_RESULT_LIST parameter, and the complete username list from the two queries into the RESULT_LIST parameter:

    QUERYx_TOP: Specify results maximum

    Description

    You can specify the maximum number of records returned by your queries by adding QUERYx_TOP as an IN parameter of the action. The query will not be able to return more results than the number specified in this parameter.

    📌 Examples

    This example returns only the first two usernames of the query:

    This example returns all usernames from this query:

    QUERYx_DEFAULT_VALUE: Specify a default value

    Description

    You can specify a default value to be returned for queries that return no values. You must add the QUERYx_DEFAULT_VALUE IN parameter in the action.

    📌 Example

    In this example, the query returns no value because the company entered does not exist, so the RESULT_LIST parameter will contain default1:

    RESULT_SEPARATOR: Separator specification

    Description

    You can specify the character that will separate the result in the returned list by adding the RESULT_SEPARATOR IN parameter. The default separator is , (comma).

    📌 Example

    In this example, the RESULT_LIST parameter value is: name1***name2***name3:

    RESULT_COUNT / QUERYx_RESULT_COUNT: Number of records returned

    Description

    You can retrieve the number of records returned for each query or for all queries. For the total number of records returned for all queries, you must add the RESULT_COUNT OUT parameter to the action. For the number of records per query, you must add the QUERYx_RESULT_COUNT OUT parameters to the action.

    📌 Example

    The following example returns the total number of records in the RESULT_COUNT parameter and the number of records of each query (QUERY1 and QUERY2) in the QUERY1_RESULT_COUNT and QUERY2_RESULT_COUNT parameters:

    Using parameter conditions in SQL queries

    Description

    You can also use parameters in the SQL conditions contained in the QUERYx_CMD parameter. You must add IN parameters with different names for the following reserved parameters:

    • QUERYx_CMD

    • QUERYx_DIR

    • QUERYx_TOP

    You can then call these parameters in the condition by prefixing them with the @ character.

    📌 Example

    This example returns the username list from Montreal in the WORKFLOWGEN directory:

    Remember that the parameter name used in the condition must have the same name as the one defined in the WorkflowGen action.

    PARAM1 is an arbitrary convention; any parameter name may be used.

    QUERYx_CMD: Using macros in SQL query conditions

    Description

    You are also able to use macros in the SQL conditions contained in QUERYx_CMD by adding an available macro in the condition.

    📌 Example

    The following example returns the username list of users who are members of the Dev group, members of the WORKFLOWGEN directory, and are in Montreal:

    You must respect the syntax in the Available macros list.

    RESULT_LIST_EMAIL / QUERYx_RESULT_LIST_EMAIL: Retrieving the queries result in an email list format

    Description

    If you want to retrieve the emails of the usernames returned by the queries, you must add the RESULT_LIST_EMAIL OUT parameter to the action. If you want to retrieve the emails by query, you must add the QUERYx_RESULT_LIST_EMAIL OUT parameter to each query.

    📌 Example

    This example returns the Montreal and Toronto email list of Montreal and Toronto in the RESULT_LIST_EMAIL parameter. QUERY1_RESULT_LIST_EMAIL contains the Montreal email list and QUERY2_RESULT_LIST_EMAIL contains the Toronto email list:

    Error management in WorkflowGen

    To manage execution errors, you must add a corrective (debug) action linked to the GETUSERSFROMDIR action. This corrective action is a manual action and is executed upon an execution error. You must add this exception on the transition between the two actions. The following table lists the most frequent errors returned by the application.

    Maximum returned records number

    The GetUsersFromDirMaxResultNb parameter in the WorkflowGen web.config file specifies the maximum number of records that can be returned by a query.

    This limit reduces the risk of a time limit expiration error that may occur when query results are too large. If the number of returned records is higher than this constant value, an error message stating that the queries returned too many records will be displayed.

    YOUSIGNSEND Workflow Application

    Overview

    The YOUSIGNSEND workflow application lets you send one or more documents to Yousign for electronic signature.

    How it works

    • The YOUSIGNSEND application will create a unique envelope and send it to one or multiple signers.

    • You can specify one or multiple files per YOUSIGNSEND action. To do this, use the FILEx parameter, where x corresponds to the file number (e.g FILE1). At least one file is required.

    • You can specify one or multiple signers. To do this, use the combination of SIGNER_FIRSTNAME_LIST, SIGNER_LASTNAME_LIST, and SIGNER_EMAIL_LIST. You can also use SIGNER_FIRSTNAMEx , SIGNER_LASTNAMEx, and SIGNER_EMAILx, where x corresponds to the signer number.

    • Application logs are available. These can be specified by setting the value of the YousignSendLogLevel parameter in the web.config file to 0 to deactivate logs, 1 for error logs, 2 for information logs, or 3 for debug logs; the default value is 0.

    Configuring the Yousign API

    Create a Yousign API application

    1. In the Yousign administration interface, click the Integrations tab, then select the API menu.

    2. Click the New API key button.

    3. Enter a description in the Description field. Select an environment (depending on your usage), then select Full-Access permissions.

    Required parameters

    You can use either of the following configurations: with a signers list or with signer numbers.

    With a list of signers

    With signer numbers

    Optional parameters

    Yousign configuration

    General

    Return parameter

    Examples

    With a list of signers

    With signer numbers

    ADOBESIGNSEND Workflow Application

    Overview

    The ADOBESIGNSEND workflow application lets you send one or multiple documents to Adobe Sign for electronic signature.

    How it works

    Mobile

    PAGER

    Pager

    FAX

    Fax

    OFFICE

    Office

    DEPARTMENT

    Department

    COMPANY

    Company

    JOBTITLE

    Job Title

    PERSONALTITLE

    Title

    EMPLOYEENUMBER

    Employee number

    EMPLOYEETYPE

    Employee type

    POSTALADDRESS

    Postal address

    POSTALCODE

    Zip code

    CITY

    City

    STATE

    State/Area

    COUNTRY

    Country

    EXTATT_1

    Extended attribute 1

    EXTATT_2

    Extended attribute 2

    EXTATT_3

    Extended attribute 3

    EXTATT_4

    Extended attribute 4

    EXTATT_5

    Extended attribute 5

    QUERYx_RESULT_COUNT
  • QUERYx_RESULT_LIST

  • RESULT_LIST

  • RESULT_COUNT

  • RESULT_SEPARATOR

  • Change the name of this parameter for a name other than the reserved parameters’ names.

    The queries return too many records

    Add conditions in the QUERYx_CMD parameters to filter the results.

    The parameter [parameter name] must have a value

    Check in the WorkflowGen action if the parameter is empty.

    [Parameter name] parameter is required

    Add this parameter to the WorkflowGen action.

    Available fields

    Definition

    LASTNAME

    Last name

    FIRSTNAME

    First name

    USERNAME

    Username

    EMAIL

    Email

    PHONE

    Telephone

    Available macros

    Definition

    {ISMEMBER(groupname)}

    Get the group’s members

    Error message

    Solution

    This directory does not exist

    Check if the directory entered in the query is valid.

    XML context is empty or incorrect

    Verify if the application has been launched by WorkflowGen.

    Database connection error

    Check if the database connection string in the config.inc file is valid.

    Query error

    Check if the fields or macros used in the QUERYx_CMD parameter are valid.

    The queries return too many values

    Add conditions in the QUERYx_CMD parameter to filter the results.

    MOBILE

    The parameter [parameter name] has the same name as a WorkflowGen-reserved parameter. You must change the name.

    QUERY1_CMD: STATE = 'QC'  
    RESULT_LIST
    QUERY1_CMD: EMAIL LIKE '%ADVANTYS.COM'  
    RESULT_LIST
    QUERY1_CMD: {ISMEMBER(MYGROUPNAME)}  
    RESULT_LIST
    QUERY1_CMD: CITY = 'MONTREAL'  
    RESULT_LIST
    QUERY1_CMD: CITY = 'MONTREAL'  
    
    QUERY2_CMD: CITY = 'TORONTO'  
    
    QUERY3_CMD: CITY = 'NEW YORK'  
    
    QUERY1_RESULT_LIST  
    
    QUERY2_RESULT_LIST  
    
    QUERY3_RESULT_LIST  
    
    RESULT_LIST
    QUERY1_CMD: CITY = 'MONTREAL'  
    
    QUERY1_DIR: YourCompany  
    
    RESULT_LIST
    QUERY1_CMD: CITY = 'MONTREAL'  
    
    QUERY1_DIR: WORKFLOWGEN  
    
    QUERY2_CMD: CITY = 'MONTREAL'  
    
    QUERY2_DIR: INTRANET  
    
    QUERY1_RESULT_LIST  
    
    QUERY2_RESULT_LIST  
    
    RESULT_LIST
    QUERY1_CMD: CITY = 'MONTREAL'  
    
    QUERY1_TOP: 2  
    
    RESULT_LIST
    QUERY1_CMD: CITY = 'MONTREAL'  
    
    RESULT_LIST
    QUERY1_CMD: COMPANY = 'COMPANY_DOES_NOT_EXIST'  
    
    QUERY1_DEFAULT_VALUE = default1  
    
    RESULT_LIST
    QUERY1_CMD: CITY = 'MONTREAL'  
    
    RESULT_SEPARATOR: ***  
    
    RESULT_LIST 
    
    This example returns the value: name1, name2, name3:
    
    QUERY1_CMD: CITY = 'MONTREAL'  
    
    RESULT_LIST
    QUERY1_CMD: CITY = 'NY'  
    
    QUERY1_DIR: WORKFLOWGEN  
    
    QUERY2_CMD: CITY = 'NY'  
    
    QUERY2_DIR: INTRANET  
    
    RESULT_LIST  
    
    RESULT_COUNT  
    
    QUERY1_RESULT_COUNT  
    
    QUERY2_RESULT_COUNT
    QUERY1_CMD: CITY = @PARAM1  
    
    PARAM1: MONTREAL  
    
    RESULT_LIST
    QUERY1_CMD: CITY = 'MONTREAL' and {ISMEMBER(Dev)}  
    
    RESULT_LIST
    QUERY1_CMD: CITY = 'MONTREAL'  
    
    QUERY2_CMD: CITY = 'TORONTO'  
    
    QUERY1_RESULT_LIST_EMAIL  
    
    QUERY2_RESULT_LIST_EMAIL  
    
    RESULT_LIST_EMAIL

    List of users associated with a participant; a link allows associated users to be added or deleted.

    Group(s) [3]

    List of groups associated with a participant; a link allows associated groups to be added or deleted.

    Directory(ies) [3]

    List of directories associated with a participant; a link allows associated directories to be added or deleted.

    Coordinator(s) [4]

    List of coordinators associated with a participant; a link allows associated coordinators to be added or deleted.

    Graphical follow-up

    Allow the associated users of the participant to view the graphical follow-up of the requests and the graphical help of the process from the user module.

    Permission for requests [6]

    Allow the associated users of the participant to access all requests, actions and data of the process in read-only user mode.

    Permission for supervisors

    • Reassign current actions

    • Cancel current requests

    • View statistics

    Permission for comments

    • None: The comments list will be hidden to the participant’s associated users

    • Read: The participant’s associated users can only view the comments list

    • Read + Write: The participant’s associated users can view and post new comments

    Query (Help)

    The supervisor limited scope feature allows for dynamic filtering of requests and actions for process supervisor participants only. A test link is available to validate the syntax of the supervisor limited scope query.

    List of persons with coordinato
    r type participants.
  • Supervisor’s participant does not have to be associated to an action.

  • This request access permission is specific per process version.

  • List of persons with coordinator(s) to List of persons: The participant must not be used in a process action where the assignment is made by the coordinator.

    Mobile

    PAGER

    Pager

    FAX

    Fax

    OFFICE

    Office

    DEPARTMENT

    Department

    COMPANY

    Company

    JOBTITLE

    Job title

    PERSONALTITLE

    Title

    EMPLOYEENUMBER

    Employee number

    EMPLOYEETYPE

    Employee type

    POSTALADDRESS

    Postal address

    POSTALCODE

    Zip/postal code

    CITY

    City

    STATE

    State/Area

    COUNTRY

    Country

    EXTATT_1

    Extended attribute 1

    EXTATT_2

    Extended attribute 2

    EXTATT_3

    Extended attribute 3

    EXTATT_4

    Extended attribute 4

    EXTATT_5

    Extended attribute 5

    Columns

    Remarks

    Order

    Use the arrows to change the display order of the participant

    Name

    Participant name

    A link displays the participant form in edit mode. Click New participant to associate a global participant or to create a new process specific participant.

    Description

    Participant description

    Role

    Role of the participant in the process

    Users

    Number of users associated to the participant

    Fields

    Remarks

    Scope

    Scope information: process or global

    Name [1]

    Unique identifier for the participant (including global ones); must respect nomenclature and be limited to 30 characters (required field)

    Description

    Participant description limited to 255 characters (required field)

    Role [2]

    Role of the participant in the process:

    • Requester

    • Actor

    • Process supervisor [5]

    Participant type [1]

    Participant type, define possible associations to the directory (required field):

    • Person

    • List of persons

    • List of persons with coordinator(s)

    Fields

    Remarks

    Name *

    Filters by person’s name

    Available

    Lists possible associations to the directory

    Selected

    Lists current associations to the directory

    Available fields

    Definition

    LASTNAME

    Last name

    FIRSTNAME

    First name

    USERNAME

    Username

    EMAIL

    Email

    PHONE

    Telephone

    Available macros

    Definition

    {ISMEMBER(groupname)} *

    Member of the group groupname

    {ISMANAGER(username)} *

    Manager of the user username

    {ISSTAFFMEMBER(username)} *

    Staff member of the user username

    User(s)

    MOBILE

    Username to be used if an authentication is required to access the application’s URL

    Password *

    Password to be used if an authentication is required to access the application’s URL

    Content type

    Type of data encoding to be used when the application returns to WorkflowGen:

    • application/x-www-form-urlencoded

    • application/xml; charset=UTF-8

    • application/json

    Context format

    Defines the format type of the context parameters exchanged between the application and WorkflowGen:

    • JSON

    • XML ADO.NET DataSet (default WorkflowGen schema)

    • XML ADO Recordset

    Schema definition

    If checked the schema will be embedded inline in the XML (for XML context formats only)

    Parameters

    Application parameters (a link displays the parameters form in edit mode)

    Default application

    If checked the application is the default one

    Active

    If checked the application is active

    Impersonate username

    A WorkflowGen username to impersonate by the application (for Incoming Webhook and Non Interactive Client)

    Client ID

    A client ID from the registered application of your authentication service provider e.g. Azure Active Directory (for Non Interactive Client)

    Link to delete the application parameter

    If checked, the parameter is displayed in the parameter list of the action based on the current application

    They should not contain spaces

  • They should not begin with the letters XML in any case (e.g. xml or Xml)

  • For more information, see https://www.w3schools.com/xml/xml_elements.asp.

    Name: SAMPLE_GET_STRING

  • Description: Returns a string with a ! (exclamation point)

  • Type: Assembly

  • Assembly full name or path: WorkflowAppSample

  • Click Save.

  • Description: Returns a string with a ! (exclamation point)

  • Type: WCF service

  • Assembly full name or path: WorkflowAppWCFSampleTest

  • Click Save.

  • Type: Web service
  • Username: A valid WorkflowGen Administrator

  • Password: The valid password for the username

  • Reference a web service and WSDL by defining a URL to a valid web service and to its related WSDL file and save the application.

    📌 URL example:

    📌 WSDL example:

  • Select the web method to use. The WSDL defines which web methods are available to be used. Once you select a web method and save the application, the associated parameters are automatically mapped and the application may now be used by process actions.

  • Type: Web service
  • Username: A valid WorkflowGen Administrator

  • Password: The valid password for the username

  • Reference a web service and WSDL by defining a URL to a valid web service and to its related WSDL file and save the application.

    The examples below demonstrate the use of a web service located on a SharePoint 2007 website. In this example, the web service is called lists.asmx. For more information, see http://msdn2.microsoft.com/en-us/library/ms445760.aspx.

    📌 URL example:

    📌 WSDL example:

  • Select the web method to use. The WSDL defines which web methods are available to be used. Once you select a web method and save the application, the associated parameters are automatically mapped and the application can now be used by process actions.

  • WFG_WS_PASSWORD: Specify a password to override the predefined password.

    Links

    Remarks

    New application

    Displays a blank application form to add a new application

    Refresh

    Refreshes the displayed application list

    Filter on *

    Remarks

    Name

    Filters by application name

    Description

    Filters by application description

    External filters

    Remarks

    Actives only

    Displays active applications only

    Fields

    Remarks

    Name

    Unique identifier for the application; must respect nomenclature and be limited to 30 characters (required field)

    Description

    Application description limited to 255 characters (required field)

    Type

    Application type:

    • Assembly

    • Asynchronous Web Procedure

    • WCF Service

    • Web Application

    • Web Procedure

    • SOAP Web Service

    • Incoming Webhook

    • Non Interactive Client

    URL

    The relative or the absolute URL of the application; both will work (required field)

    WSDL

    The WSDL URL to define a WSDL-based web service (if applicable); see WSDL web services for details on WSDL-based web services.

    Columns

    Remarks

    Order

    Display the application in order list

    Name

    Application name (a link displays the application form in edit mode)

    Description

    Application description

    Active

    Application is active

    Utilization

    Number of actions in which the application is used

    Columns

    Remarks

    Name

    Application parameter name

    Data type

    Application parameter data type

    Direction

    Application parameter direction

    Required

    Required parameter

    Default

    Optional parameter; displays the parameter in the parameter list of the actions based on the current application by default

    Fields

    Remarks

    Name

    Application parameter name (required field)

    Description

    Application parameter description (required field)

    Data type

    Application parameter data type:

    • Text

    • Numeric

    • Date/Time

    • File

    Direction

    Application parameter directions:

    • IN (input)

    • OUT (output)

    • INOUT (input/output)

    Required

    Is this parameter required?

    • Yes (disables the default property)

    • No (enables the default property)

    Username *

    Deletion *

    Default

    Emails of signers, separated by the value defined in the DATA_SEPARATOR parameter

    FILEx

    FILE

    IN

    File(s) to send, where x corresponds to the file number; you can add one or multiple files

    Email(s) of signer(s), where x corresponds to the signer number; you can add one or multiple signers

    FILEx

    FILE

    IN

    File(s) to send, where x corresponds to the file number; you can add one or multiple files

    Page to be signed by the signer, where x corresponds to the signer number; you can add one or more signers

    SIGNER_X_POSITION_LIST

    TEXT

    IN

    X position of the signature area for the signer, separated by the value defined in the DATA_SEPARATOR parameter

    The value must be a positive numeric integer.

    SIGNER_X_POSITIONX

    TEXT

    IN

    X position of the signature area for the signer, where x corresponds to the signer number

    The value must be a positive numeric integer.

    SIGNER_Y_POSITION_LIST

    TEXT

    IN

    Y position of the signature area for the signer, separated by the value defined in the DATA_SEPARATOR parameter

    The value must be a positive numeric integer.

    SIGNER_Y_POSITIONX

    TEXT

    IN

    Y position of the signature area for the signer, where x corresponds to the signer number

    The value must be a positive numeric integer.

    SIGNATURE_NAME

    TEXT

    IN

    Name of the signature request

    SIGNER_PHONE_LIST

    TEXT

    IN

    Phone number of the signer(s), separated by the value defined in the DATA_SEPARATOR parameter

    SIGNER_PHONEX

    TEXT

    IN

    Signer's phone number, where x is the signer number.

    SIGNER_LOCALE_LIST

    TEXT

    IN

    Location of the signer(s), separated by the value defined in the DATA_SEPARATOR parameter

    SIGNER_LOCALEX

    TEXT

    IN

    Location of the signer, where x is the signer number

    SIGNER_AUTH_MODE_LIST

    TEXT

    IN

    Authentication mode of the signer(s), separated by the value defined in the DATA_SEPARATOR parameter

    SIGNER_AUTH_MODEX

    TEXT

    IN

    Signer authentication mode, where x is the signer number

    Default: no_otp

    FILE_NATUREX

    TEXT

    IN

    Nature of the document of the file to send, where x corresponds to the signer number

    Default: signable_document

    SIGNATURE_WIDTH

    TEXT

    IN

    Signature field width in pixels Default: 25

    SIGNATURE_HEIGHT

    TEXT

    IN

    Signature field height in pixels Default: 37

    [email protected],[email protected]

    SIGNATURE_NAME

    TEXT

    IN

    Signature on a contract

    SIGNER_PAGE_LIST

    TEXT

    IN

    1,2

    SIGNER_X_POSITION_LIST

    TEXT

    IN

    100,100

    SIGNER_Y_POSITION_LIST

    TEXT

    IN

    100,100

    FILE1

    FILE

    IN

    contract.pdf

    YOUSIGN_SIGNATURE_ID

    TEXT

    OUT

    xxxxx-xxxxx-xxxxx-xxxxx

    Bernard

    SIGNER_LASTNAME2

    TEXT

    IN

    Martin

    SIGNER_EMAIL1

    TEXT

    IN

    [email protected]

    SIGNER_EMAIL2

    TEXT

    IN

    [email protected]

    SIGNATURE_NAME

    TEXT

    IN

    Signature on a contract

    SIGNER_PAGE1

    TEXT

    IN

    1

    SIGNER_PAGE2

    TEXT

    IN

    2

    SIGNER_X_POSITION1

    TEXT

    IN

    100

    SIGNER_X_POSITION2

    TEXT

    IN

    100

    SIGNER_Y_POSITION1

    TEXT

    IN

    100

    SIGNER_Y_POSITION2

    TEXT

    IN

    100

    FILE1

    FILE

    IN

    contract.pdf

    YOUSIGN_SIGNATURE_ID

    TEXT

    OUT

    xxxxx-xxxxx-xxxxx-xxxxx

    Parameter

    Type

    Direction

    Description

    SIGNER_FIRSTNAME_LIST

    TEXT

    IN

    First names of signers, separated by the value defined in the DATA_SEPARATOR parameter

    SIGNER_FIRSTNAME_LIST

    TEXT

    IN

    Last names of signers, separated by the value defined in the DATA_SEPARATOR parameter

    SIGNER_EMAIL_LIST

    TEXT

    Parameter

    Type

    Direction

    Description

    SIGNER_FIRSTNAMEx

    TEXT

    IN

    First name(s) of signer(s), where x corresponds to the signer number; you can add one or multiple signers

    SIGNER_LASTNAMEx

    TEXT

    IN

    Last name(s) of signer(s), where x corresponds to the signer number; you can add one or multiple signers

    SIGNER_EMAILx

    TEXT

    Parameter

    Type

    Direction

    Description

    YOUSIGN_API_KEY

    TEXT

    IN

    Yousign API key By default, this value comes from the YousignApiKey parameter in the web.config file.

    YOUSIGN_HOST_SERVER

    TEXT

    IN

    Yousign host server (e.g. https://api.yousign.app/v3)

    By default, this value comes from the YousignHostServer parameter in the web.config file.

    Parameter

    Type

    Direction

    Description

    DATA_SEPARATOR

    TEXT

    IN

    Separator used to separate the content of SIGNER_FIRSTNAME_LIST, SIGNER_LASTNAME_LIST, SIGNER_EMAIL_LIST , SIGNER_PAGE_LIST, SIGNER_X_POSITION_LIST, SIGNER_Y_POSTION_LIST , SIGNER_PHONE_LIST , SIGNER_LOCAL_LIST, and SIGNER_AUTH_MODE_LIST Default : , (comma)

    SIGNER_PAGE_LIST

    TEXT

    IN

    Page to be signed by the signer(s), separated by the value defined in the DATA_SEPARATOR parameter

    SIGNER_PAGEX

    TEXT

    Parameter

    Type

    Direction

    Description

    YOUSIGN_SIGNATURE_ID

    TEXT

    OUT

    Contains the Yousign signature ID; you can use this ID in the YOUSIGNCHECK workflow application

    Parameter

    Type

    Direction

    Value

    SIGNER_FIRSTNAME_LIST

    TEXT

    IN

    John,Bernard

    SIGNER_FIRSTNAME_LIST

    TEXT

    IN

    Bridges,Martin

    SIGNER_EMAIL_LIST

    TEXT

    Parameter

    Type

    Direction

    Value

    SIGNER_FIRSTNAME1

    TEXT

    IN

    John

    SIGNER_LASTNAME1

    TEXT

    IN

    Bridges

    SIGNER_FIRSTNAME2

    TEXT

    IN

    IN

    IN

    IN

    IN

  • The ADOBESIGNSEND creates a single envelope and sends it to one or multiple signers.

  • You can specify one or multiple files per ADOBESIGNSEND action. To do this, use the FILEx parameter, where x corresponds to the file number (e.g. FILE1). At least one file is required.

  • You can specify one or multiple signers. To do this, use the combination of SIGNER_NAME_LIST and SIGNER_EMAIL_LIST. You can also use SIGNER_NAMEx and SIGNER_EMAILx, where x corresponds to the signer number.

  • You can specify one role per recipient. To do this, based on the method that you use to specify signers (with or without _LIST), you can use SIGNER_ROLE_LIST or SIGNER_ROLEx, where x corresponds to the signer number. Possible values: SIGNER (default), APPROVER, ACCEPTOR, CERTIFIED_RECIPIENT, FORM_FILLER or DELEGATE_TO_SIGNER, DELEGATE_TO_APPROVER

  • Application logs are available. These can be specified by setting the value of the AdobeSignSendLogLevel parameter in the web.config file to 0 to deactivate logs, 1 for error logs, 2 for information logs, or 3 for debug logs; the default value is 0.

  • Configuring the Adobe Sign API

    Creating an Adobe Sign API application

    1. In the Adobe Sign administration interface, add a new API Application, then click Configure OAuth for application.

    2. Activate the following scopes and select account under Modifier:

      • agreement_write

      • agreement_read

    3. You can retrieve the Client ID and Client Secret directly from the configuration tab.

    4. Insert a valid address in the Redirect URI field; it will be useful in the next step.

    Application OAuth configuration

    Obtaining the refresh token

    Since Adobe Sign doesn't support client_credentials authentication, it's necessary to use a refresh token in order to retrieve a valid access_token. The refresh token is valid for 60 days. These 60 days are renewed upon each API call, which means that when you run ADOBESIGNSEND or ADOBESIGNCHECK, the token's validity is extended by 60 days.

    Consent and obtaining a one-time code

    In order to be able to use your new Adobe Sign application, you need to authorize it to access the defined scopes. Execute the following URL in your browser:

    Replace the following information with your own values:

    • <HOST_SERVER> : Your Adobe Sign account's host server. Usually, the URL is composed like this: https://api.naX.adobesign.com, whereX is the server ID.

    • <REDIRECT_URI> : The URL that you defined in your Adobe Sign application.

    • <CLIENT_ID> : Your Adobe Sign application's client ID.

    After granting consent to your application, you'll be redirected to your REDIRECT_URI with a CODE parameter in the URL.

    The code returned by Adobe Sign is for one-time use and will be used to obtain the refresh token.

    Retrieving the refresh token

    In order to obtain the refresh token, execute the following request, specifying your values:

    • HOST_SERVER : Your Adobe Sign account's host server. Usually, the URL is composed like this: https://api.naX.adobesign.com , where X is the server ID.

    • <CONSENT_CODE> : One-time use code obtained in the previous step (Consent and obtaining a one-time code).

    • <CLIENT_ID> : Client ID of your Adobe Sign application.

    • <CLIENT_SECRET> : Your Adobe Sign application's client secret.

    • <REDIRECT_URI> : The URL that you defined in your Adobe Sign application.

    After executing the request, you'll obtain a value for the refresh token, contained in the refresh_token data.

    If your refresh token has expired, you'll need to perform the preceding operations again.

    Required parameters

    You can use one of the following two configurations: with a list of signers or with signer numbers.

    With a list of signers

    Parameter

    Type

    Direction

    Description

    SIGNER_NAME_LIST

    TEXT

    IN

    Names of signers, separated by the value defined in the DATA_SEPARATOR parameter

    SIGNER_EMAIL_LIST

    TEXT

    IN

    Email addresses of signers, separated by the value defined in the DATA_SEPARATOR parameter.

    FILEx

    With signer numbers

    Parameter

    Type

    Direction

    Description

    SIGNER_NAMEx

    TEXT

    IN

    Name(s) of the signer(s), where x corresponds to the signer number; you can add one or multiple signers

    SIGNER_EMAILx

    TEXT

    IN

    Email address(es) of the signer(s), where x corresponds to the signer number; you can add one or multiple signers

    FILEx

    Optional parameters

    Adobe Sign configuration

    Parameters

    Type

    Direction

    Description

    ADOBESIGN_CLIENT_ID

    TEXT

    IN

    Adobe Sign client ID client Adobe Sign By default, this value comes from the AdobeSignClientId parameter in the web.config file.

    ADOBESIGN_CLIENT_SECRET

    TEXT

    IN

    Adobe Sign client secret

    By default, this value comes from the AdobeSignClientSecret parameter in the web.config file.

    ADOBESIGN_REFRESH_TOKEN

    General

    Parameters

    Type

    Direction

    Description

    DATA_SEPARATOR

    TEXT

    IN

    Separator used to the separate the contents of SIGNERS_NAME_LIST, SIGNERS_EMAIL_LIST, and SIGNER_ROLE_LIST Default: , (comma)

    SIGNER_ROLE_LIST

    TEXT

    IN

    Roles of the signers, separated by the value defined in the DATA_SEPARATOR parameter

    SIGNER_ROLEX

    Return parameter

    Parameter

    Type

    Direction

    Description

    ADOBESIGN_AGREEMENT_ID

    TEXT

    OUT

    Contains the Adobe Sign agreement ID; you can use this ID in the workflow application

    Examples

    With a list of signers

    Parameter

    Type

    Direction

    Value

    SIGNER_NAME_LIST

    TEXT

    IN

    John Smith,Bernard Martin

    SIGNER_EMAIL_LIST

    TEXT

    IN

    [email protected],[email protected]

    SIGNER_ROLE_LIST

    With signer numbers

    Parameter

    Type

    Direction

    Value

    SIGNER_NAME1

    TEXT

    IN

    John Smith

    SIGNER_NAME2

    TEXT

    IN

    Bernard Martin

    SIGNER_EMAIL1

    Users

    User list

    Menu banner

    Filters

    * A filter can be applied to a part of a field.

    User lists

    User form

    * These fields can be synchronized with Active Directory. These fields are not required by the application; however, it is possible to use them through workflow macros.

    Deleting and archiving users

    A user will be archived and not deleted if:

    • The user is associated to a participant as a user.

    • The user is the creator or modifier of a process.

    • The user is associated to a request or an action.

    A user cannot receive an inactive, deleted, or archived status if:

    • The user is the only person assigned as a coordinator to a List of persons.

    • The user is the only person in a group assigned to a List of persons type participant.

    • The user is the only person in a List of persons type participant.

    Replacing users

    You can replace a user with another one (the user that replaces another user must belong to the same directory and to the same groups). All roles in process definitions will be reassigned to the new user.

    Ongoing (open) requests will be reassigned to the new user; closed (historical) actions will maintain the correct participant who performed the action.

    This function is useful when a someone leaves their position in the organization and their ongoing tasks and roles must be reassigned.

    Unlocking a user account

    If a user exceeds the maximum number of connection attempts set in the Configuration Panel, their account will be locked and must be unlocked by an administrator. To do this, open the user’s profile and click the Unlock user button.

    Activity report

    The user activity report can be generated by selecting the Activity report link in the user’s profile page.

    The generated report summarizes all the activities for the selected user, such as:

    Request use

    • Request type

    • In progress

    • Closed

    • Total

    Action activity

    • Action type

    • In progress

    • Closed

    • Total

    Delegations from someone

    • Process

    • Participant

    • Global

    • Delegated user

    Delegations to someone

    • Process

    • Participant

    • Global

    • User

    Participants that the user belongs to

    • Process

    • Participant

    • Global

    • Role

    Folder manager

    • Folder

    • Participant

    • Directory

    • Groups

    Global list managers

    • Participant

    • Directory

    • Groups

    • User

    DOCUSIGNSEND Workflow Application

    Overview

    The DOCUSIGNSEND workflow application lets you send one or more documents to DocuSign for electronic signature.

    How it works

    DOCAPOSTESEND Workflow Application

    Overview

    The DOCAPOSTESEND workflow application lets you send one or more documents to Docaposte for electronic signature.

    How it works

    JSONTODATA Workflow Application

    Overview

    The JSONTODATA workflow application lets you parse JSON content into process data.

    How it works

    STATE = 'QC'
    EMAIL LIKE '%ADVANTYS.COM'
    {ISMEMBER(MYGROUPNAME)}
    DEPARTMENT = @DEPT_DATA
    CITY = @MY_CITY AND 'CANADA' = @MY_COUNTRY
    CITY <> 'MONTREAL'
    COUNTRY = 'CANADA' AND (CITY = 'TORONTO' OR CITY = @CITY_DATA)
    LASTNAME LIKE 'AN%'
    COMPANY = @DATA1
    CITY = 'MONTREAL' and {ISMEMBER(Dev)}
    http://quickstarts.asp.net/QuickStartv20/webservices/Samples/MathService/vb/Server/MathService.asmx
    http://quickstarts.asp.net/QuickStartv20/webservices/Samples/MathService/vb/Server/MathService.asmx?WSDL
    http://myspsserver/_vti_bin/lists.asmx
    http://myspsserver/_vti_bin/lists.asmx?WSDL
    <HOST_SERVER>/public/oauth?redirect_uri=<REDIRECT_URI>&client_id=<CLIENT_ID>&response_type=code&scope=agreement_read:account+agreement_write:account
    curl --location --request POST '<HOST_SERVER>/oauth/token' \
    --header 'Content-Type: application/x-www-form-urlencoded' \
    --data-urlencode 'code=<CONSENT_CODE>' \
    --data-urlencode 'client_id=<CLIENT_ID>' \
    --data-urlencode 'client_secret=<CLIENT_SECRET>' \
    --data-urlencode 'redirect_uri=<REDIRECT_URI>' \
    --data-urlencode 'grant_type=authorization_code'
    ,
    DELEGATE_TO_ACCEPTOR
    ,
    DELEGATE_TO_CERTIFIED_RECIPIENT
    ,
    DELEGATE_TO_FORM_FILLER
    , or
    SHARE
    .

    FILE

    IN

    File(s) to send, where x corresponds to the file number; you can add one or multiple files

    FILE

    IN

    File(s) to send, where x corresponds to the file number; you can add one or multiple files

    TEXT

    IN

    Authentication refresh token

    By default, this value comes from the AdobeSignAuthServer parameter in the web.config file.

    To obtain it, see the Configuring the Adobe Sign API section.

    ADOBESIGN_HOST_SERVER

    TEXT

    IN

    Adobe Sign host server (e.g. https://api.naX.adobesign.com, where X is the server ID)

    By default, this value comes from the AdobeSignHostServer parameter in the web.config file.

    TEXT

    IN

    Role(s) of the signer(s), where x corresponds to the signer number; you can add one or multiple signers

    AGREEMENT_NAME

    TEXT

    IN

    Name of the agreement, which will be displayed in the email sent to the user Default: WorkflowGen

    TEXT

    IN

    APPROVER,SIGNER

    FILE1

    FILE

    IN

    contract.pdf

    ADOBESIGN_AGREEMENT_ID

    TEXT

    OUT

    xxxxx-xxxxx-xxxxx-xxxxx

    TEXT

    IN

    [email protected]

    SIGNER_EMAIL2

    TEXT

    IN

    [email protected]

    SIGNER_ROLE1

    TEXT

    IN

    APPROVER

    SIGNER_ROLE2

    TEXT

    IN

    SIGNER

    FILE1

    FILE

    IN

    contract.pdf

    ADOBESIGN_AGREEMENT_ID

    TEXT

    OUT

    xxxxx-xxxxx-xxxxx-xxxxx

    ADOBESIGNCHECK

    Filters by user’s employee number

    Telephone

    Filters by user’s telephone number

    Mobile

    Filters by user’s mobile phone number

    Fax

    Filters by user’s fax number

    Pager

    Filters by user’s pager number

    Office

    Filters by user’s office

    Job Title

    Filters by user’s job title

    Employee type

    Filters by user’s employee title

    Initials

    Filters by user’s initials

    Personal Title

    Filters by user’s title

    Postal address

    Filters by user’s postal address

    Zip code

    Filters by user’s zip code

    City

    Filters by user’s city

    State/Area

    Filters by user’s state or area

    Country

    Filters by user’s country

    LDAP Path

    Filters by user’s LDAP path

    Extended attribute 1

    Filters by user’s extended attribute #1

    Extended attribute 2

    Filters by user’s extended attribute #2

    Extended attribute 3

    Filters by user’s extended attribute #3

    Extended attribute 4

    Filters by user’s extended attribute #4

    Extended attribute 5

    Filters by user’s extended attribute #5

    Common name

    Filters by user’s displayed name

    Distinctive name

    Filters by user’s distinctive name

    System identifier

    Filters by user’s system identifier (SID)

    User directory

    ✏️ Note: This column is only visible when you select All from the Directory drop-down list.

    User’s email address

    Profile

    User’s profile (defines application access rights: administrator or user)

    Group(s)

    Name of the directory group the user is associated; a link displays the corresponding groups

    Status *

    User’s account status:

    • Active

    • Inactive

    Synchronized

    If checked, the user is synchronized

    Default language

    Language applied when the user's account was created

    Selected language

    Language selected by the user

    Default time zone

    Time zone applied when the user’s account was activated

    Selected time zone

    Time zone selected by the user

    Manager

    The user selected as manager

    Staff members

    Count of users who have been assigned this user as manager; clicking this allows access to the staff member list

    Telephone *

    User’s telephone number

    Mobile *

    User’s mobile telephone number

    Fax *

    User’s fax number

    Pager *

    User’s pager number

    Office *

    User’s office number

    Department *

    User’s department number

    Company

    User’s company name

    Job title *

    User’s job title

    Employee type *

    Employee type the user belongs to

    Initials *

    User’s initials

    Title *

    User’s title

    Employee number

    User’s employee number

    Postal address *

    User’s postal address

    Zip code *

    User’s zip code

    City *

    User’s city

    State/Area *

    User’s state or area

    Country *

    User’s country

    LDAP path *

    User’s LDAP path

    Common name *

    User’s displayed name

    Distinctive name *

    User’s distinctive name

    Extended attribute 1 to 5 *

    User's extended attribute

    System identifier *

    User's SID

    Begin

  • End

  • Begin

  • End

  • Directory

  • Groups

  • User

  • Coordinator

  • User

    Links

    Remarks

    New user

    Displays a blank user form to add a new user

    Refresh

    Refreshes the user list displayed

    External filters

    Remarks

    Directory

    Displays the specified user directory

    Profile

    Displays users with the selected profile

    Status

    Displays users with the specified status(es):

    • All

    • Active or inactive

    • Active

    • Inactive

    • Archived

    Filter on

    Filters by specified criteria (e.g. name, username, email, etc.)

    Search

    Search for users by name, username, email, etc.

    Filter on *

    Remarks

    Name

    Filters by user’s name

    Username

    Filters by user’s username

    Email

    Filters by user’s email address

    Department

    Filters by user’s department

    Company

    Filters by user’s company name

    Columns

    Remarks

    Multi-select checkboxes

    Actions:

    • Activate the selected user(s)

    • Deactivate the selected user(s)

    • Delete the selected user(s)

    Lastname Firstname

    User’s last name and first name; a link displays the user form in edit mode.

    Username

    Username of the user

    Profile

    Profile of the user

    Status

    Status of the user’s account: active or inactive

    Fields

    Remarks

    Directory

    User directory

    Username

    Unique user identifier in all directories; limited to 255 characters (required field)

    ✏️ Note: The username cannot contain the : (colon) character.

    Password

    User’s password (click Change password to change the user’s password)

    Last name

    User’s last name (required field)

    First name

    User’s first name

    Employee number

    Directory

    Email

  • multipart/form-data

  • The DOCUSIGNSEND application will create a unique envelope and send it to one or multiple signers.

  • You can specify one or multiple files per DOCUSIGNSEND action. To do this, use the FILEx parameter, where x corresponds to the file number (e.g FILE1). At least one file is required.

  • You can specify one or multiple signers. To do this, use the combination of SIGNER_NAME_LIST and SIGNER_EMAIL_LIST. You can also use SIGNER_NAMEx and SIGNER_EMAILx, where x corresponds to the signer number.

  • You can specify an access code by signer. To do this, depending on the method you use to specify signers (i.e., with or without _LIST), you can use either SIGNER_ACCESS_CODE_LIST or SIGNER_ACCESS_CODEx, where x corresponds to the signer number.

  • You can specify the positions of the DocuSign tags for the signer name, the signature location, and the signature date. DocuSign will automatically recognize the tags.

  • Application logs are available. These can be specified by setting the value of the DocuSignSendLogLevel parameter in the web.config file to 0 to deactivate logs, 1 for error logs, 2 for information logs, or 3 for debug logs; the default value is 0.

  • Required parameters

    You can use either of the following configurations: with a signers list or with signer numbers.

    Signers are handled sequentially, whether configured using a list or using numbers.

    With a list of signers

    Parameter

    Type

    Direction

    Description

    SIGNER_NAME_LIST

    TEXT

    IN

    Names of signers, separated by the value defined in the DATA_SEPARATOR parameter

    SIGNER_EMAIL_LIST

    TEXT

    IN

    Emails of signers, separated by the value defined in the DATA_SEPARATOR parameter

    FILEx

    With signer numbers

    Parameter

    Type

    Direction

    Description

    SIGNER_NAMEx

    TEXT

    IN

    Name(s) of signer(s), where x corresponds to the signer number; you can add one or multiple signers

    SIGNER_EMAILx

    TEXT

    IN

    Email(s) of signer(s), where x corresponds to the signer number; you can add one or multiple signers

    FILEx

    Optional parameters

    DocuSign configuration

    There are two ways to configure DocuSign account information: you can define the configuration in the web.config file or in the Configuration Panel, or you can manage the configuration on each DOCUSIGNSEND action.

    These parameters must be associated to a DocuSign account.

    Parameters

    Type

    Direction

    Description

    DOCUSIGN_CLIENT_ID

    TEXT

    IN

    DocuSign client ID

    Corresponds to your DocuSign application's Integration Key value By default, this value comes from the DocuSignClientId parameter in the web.config.

    DOCUSIGN_USER_GUID

    TEXT

    IN

    DocuSign user GUID Corresponds to the value of User ID in the DocuSign Control Panel

    By default, this value comes from the DocuSignUserGuid parameter in the web.config.

    DOCUSIGN_AUTH_SERVER

    General

    Parameters

    Type

    Direction

    Description

    DATA_SEPARATOR

    TEXT

    IN

    Separator used to separate SIGNERS_NAME_LIST, SIGNERS_EMAIL_LIST, and SIGNER_ACCESS_CODE_LIST content Default: ,

    EMAIL_SUBJECT

    TEXT

    IN

    Email subject used for the DocuSign envelope Default:Please sign this document sent from WorkflowGen

    PREFIX_SIGNHERE

    Return parameter

    Parameter

    Type

    Direction

    Description

    DOCUSIGN_ENVELOPE_ID

    TEXT

    OUT

    Contains the DocuSign envelope ID; you can use this ID in the workflow application

    Examples

    With signer list

    Parameter

    Type

    Direction

    Value

    SIGNER_NAME_LIST

    TEXT

    IN

    John Doe,Jack Adi

    SIGNER_EMAIL_LIST

    TEXT

    IN

    [email protected],[email protected]

    SIGNER_ACCESS_CODE_LIST

    With signer number

    Parameter

    Type

    Direction

    Value

    SIGNER_NAME1

    TEXT

    IN

    John Doe

    SIGNER_NAME2

    TEXT

    IN

    Jack Adi

    SIGNER_EMAIL1

    Sending a document with tags

    DocuSign lets you specify the location where you want your signer to sign. By default, the tags are /fx/ for the signer's full name, /dx/ for the date, and /sx/ for the Sign Here button; x corresponds to the signer number.

    Add tags to your document, as shown below:

    Adding tags

    Since DocuSign doesn't remove characters from the document and just adds an overload on the tags, you can set the tags' colors to the same color as your background (white, in the following example):

    Tags hidden

    Result in DocuSign:

    Before signing
    After signing

  • The DOCAPOSTESEND application creates a single envelope and sends it to one or more signers.

  • You can specify one or more files per DOCAPOSTESEND action. To do this, use the FILEx parameter, where x is the file number (e.g.: FILE1). At least one file is required.

  • You can specify one or more signers. To do this, use the combination of SIGNER_FIRSTNAME_LIST, SIGNER_LASTNAME_LIST, and SIGNER_EMAIL_LIST. You can also use SIGNER_FIRSTNAMEx, SIGNER_LASTNAMEx, and SIGNER_EMAILx, where x is the number of the signer.

  • You can specify one type of signature per recipient. To do this, depending on the method you use to specify signers (with or without _LIST), you can use SIGNATURE_TYPE_LIST or SIGNATURE_TYPEx, where x is the signer number. Possible values: OTP (default), PAD, TOKEN, CONSENT_PROOF or IDENTITY.

  • Application logs are available. These can be specified by setting the value of the DocaposteSendLogLevel parameter in the web.config file to 0 to disable logging, 1 for error logs, 2 for information logs, or 3 for debug logs; The default value is 0.

  • Required parameters

    You can use one of the following two configurations: with a list of signers or with signer numbers.

    With a list of signers

    Parameter

    Type

    Direction

    Description

    SIGNER_FIRSTNAME_LIST

    TEXT

    IN

    First names of signers, separated by the value defined in the DATA_SEPARATOR parameter

    SIGNER_LASTNAME_LIST

    TEXT

    IN

    Last names of signers, separated by the value defined in the DATA_SEPARATOR parameter

    SIGNER_EMAIL_LIST

    With signer numbers

    Parameter

    Type

    Direction

    Description

    SIGNER_FIRSTNAMEx

    TEXT

    IN

    First name(s) of the signer(s), where x corresponds to the signer number; you can add one or more signers

    SIGNER_LASTNAMEx

    TEXT

    IN

    Last name(s) of the signer(s), where x corresponds to the signer number; you can add one or more signers

    SIGNER_EMAILx

    Optional parameters

    Docaposte configuration

    Parameters

    Type

    Direction

    Description

    DOCAPOSTE_USERNAME

    TEXT

    IN

    Docaposte username By default, this value comes from the DocaposteUsername parameter in the web.config file.

    DOCAPOSTE_PASSWORD

    TEXT

    IN

    Docaposte password By default, this value comes from the DocapostePassword parameter in the web.config file.

    DOCAPOSTE_HOST_SERVER

    General

    Parameters

    Type

    Direction

    Description

    DATA_SEPARATOR

    TEXT

    IN

    Separator used to separate the contents of SIGNERS_FIRSTNAME_LIST,SIGNERS_LASTNAME_LIST, SIGNERS_EMAIL_LIST, and SIGNER_TYPE_LIST Default : , (comma)

    SIGNER_TYPE_LIST

    TEXT

    IN

    Signature type of signers, separated by the value defined in the DATA_SEPARATOR parameter Possible values:

    • OTP(default)

    • PAD

    SIGNER_TYPEX

    Return parameters

    Parameter

    Type

    Direction

    Description

    DOCAPOSTE_TRANSACTION_ID`

    TEXT

    OUT

    Contains the Docaposte transaction ID; you can use this ID in the workflow application

    DOCAPOSTE_DOCUMENT_NAMES

    TEXT

    OUT

    Contains the names of the documents sent to Docaposte; you can use these values in the workflow application

    Customizing the body of the email

    You can customize the content of the body of the email to be sent to the signer. The template must contain the <DOCAPOSTE_SIGN_URL> tag, which will be replaced by the link allowing the signer to add their signature.

    Default value:

    Examples

    With a list of signers

    Parameter

    Type

    Direction

    Value

    SIGNER_FIRSTNAME_LIST

    TEXT

    IN

    John,Bernard

    SIGNER_LASTNAME_LIST

    TEXT

    IN

    Smith,Martin

    SIGNER_EMAIL_LIST

    With signer numbers

    Parameter

    Type

    Direction

    Value

    SIGNER_LASTNAME1

    TEXT

    IN

    Smith

    SIGNER_LASTNAME2

    TEXT

    IN

    Martin

    SIGNER_FIRSTNAME1

  • The JSONTODATA application requires either the JSON_CONTENT or the JSON_CONTENT_FILE parameter; these correspond to the JSON to parse.

  • The application supports the JSONPath query language (see https://github.com/json-path/JsonPath), which allows extraction of specific data from JSON content, similar to XPath expressions in XML.

  • Application logs are available. These can be specified by setting the value of the JsonToDataLogLevel parameter in the web.config file to 0 to deactivate logs, 1 for error logs, 2 for information logs, or 3 for debug logs; the default value is 0.

  • Parameters

    Parameter

    Type

    Direction

    Description

    JSON_CONTENT

    TEXT

    IN

    Query to execute

    JSON_CONTENT_FILE

    FILE

    IN

    Query to execute, stored in a file

    Parameter mapping

    Using simple parameter names

    The application supports custom OUT parameters to map simple JSON content.

    📌 Example

    The following parameters allow you to map the JSON content to different process data:

    Parameter

    Type

    Direction

    Retrieve the value into a data

    Result

    person.address.street

    Text

    OUT

    DATA_STREET

    160 Guy Street

    person.address.zipcode

    Text

    OUT

    DATA_ZIPCODE

    Using JSONPath query language

    The application supports the JSONPath query language, similar to XPath expressions in XML. This language allows you to retrieve specific data from a JSON. For more details regarding the JSONPath syntax, see https://github.com/json-path/JsonPath.

    📌 Example

    In the above example, we want to get the names of Charles's grandchildren who are older than seven years old, and we also want these names to be separated by a | (using the APP_JSONPATH_DELIMITER IN parameter). At the same time, we are also getting Elizabeth's age and date of birth. To get the information, the following parameters must be defined:

    Parameter

    Type

    Direction

    IN Value

    OUT Value

    APP_JSONPATH_DELIMITER

    Text

    IN

    |

    PARAM1__JSONPATH

    Text

    INOUT

    person.children[?(@.name == 'Charles')].children[*].children[?(@.age > 7)].name

    • In the PARAM1__JSONPATH parameter name, the PARAM1 name is not relevant, but it must be followed by the __JSONPATH suffix (two underscores are used in the suffix).

    • To retrieve a value into a Text process data, you can use a single INOUT Text parameter (e.g. PARAM1__JSONPATH parameter as in the example above).

    • To retrieve a value into a Numeric or DateTime process data, you must use separate parameters: an IN Text parameter for the JSONPath query and an OUT parameter that maps to the Numeric or DateTime process data. Both parameters must share the same name prefix (e.g. AGE__JSONPATH and AGE parameters as in the example above).

    • The default value of APP_JSONPATH_DELIMITER is a comma (,) when this parameter is not defined.

    Editing

    Process information screen

    Menu banner

    <!DOCTYPE html>
    <html lang=""en"" xmlns=""http://www.w3.org/1999/xhtml"">
    <head>
        <meta charset=""utf-8"" />
    </head>
    <body>
        <p>Hello {firstname} {lastname},</p>
        <p>
            Please sign the document sent from WorkflowGen.
            <br />
            <a href=""<DOCAPOSTE_SIGN_URL>"">Click here to sign on Docaposte</a>
        </p>
        <p>Regards,</p>
        <p>WorkflowGen</p>
    </body>
    </html>
    {
        "person": {
            "address": {
                "street": "160 Guy Street",
                "zipcode": "J4G 1U4"
            },
            "age": 30,
            "name": "John"
        }
    }
    {
        "person": {
          "name": "Elizabeth",
          "age": 85,
          "dob": "1937-09-23T00:00:00Z",
          "children": [
            {
              "name": "Charles",
              "age": 60,
              "children": [
                {
                  "name": "Nathalie",
                  "children": [
                    {
                      "name": "George",
                      "age": 8
                    },
                    {
                      "name": "Charlotte",
                      "age": 10
                    },
                    {
                      "name": "Jefferson",
                      "age": 7
                    }
                  ]
                },
                {
                  "name": "Harry"
                }
              ]
            },
            {
              "name": "Bob",
              "age": 57,
              "children": [
                {
                  "name": "John"
                },
                {
                  "name": "Mark"
                }
              ]
            }
          ]
        }
    }

    J4G 1U4

    person.age

    Text

    OUT

    DATA_AGE

    30

    person.name

    Text

    OUT

    DATA_NAME

    John

    data DATA1_VALUE (value will be: George|Charlotte)

    AGE__JSONPATH

    Text

    IN

    $.person.age

    AGE

    Numeric

    OUT

    data AGE_VALUE (value will be: 85)

    DOB__JSONPATH

    Text

    IN

    $.person.dob

    DOB

    DateTime

    OUT

    data DOB_VALUE (value will be: 1937-09-23T00:00:00Z)

    TOKEN
  • CONSENT_PROOF

  • IDENTITY

  • TEXT

    IN

    Email addresses of the signers, separated by the value defined in the DATA_SEPARATOR parameter

    FILEx

    FILE

    IN

    File(s) to send, where x is the file number; you can add one or more files

    TEXT

    IN

    Email address(es) of the signer(s), where x is the signer's number; you can add one or more signers

    FILEx

    FILE

    IN

    File(s) to send, where x is the file number; you can add one or more files

    TEXT

    IN

    Docaposte host server

    By default, this value comes from the DocaposteHostServer parameter in the web.config file.

    DOCAPOSTE_OFFER_CODE

    TEXT

    IN

    Docaposte offer code

    By default, this value comes from the DocaposteOfferCode parameter in the web.config file.

    DOCAPOSTE_ORGANIZATIONAL_UNIT_CODE

    TEXT

    IN

    Docaposte organizational unit code

    By default, this value comes from the DocaposteOrganizationalUnitCode parameter in the web.config file.

    TEXT

    IN

    Signature type of signer(s), where x corresponds to the signer number; you can add one or more signers

    Possible values:

    • OTP(default)

    • PAD

    • TOKEN

    • CONSENT_PROOF

    • IDENTITY

    CUSTOM_REFERENCE

    TEXT

    IN

    Provider reference

    The content of this parameter can allow the provider to identify the transaction on its end with; for example, a value specific to its business domain (e.g. customer file number). Default:WorkflowGen

    TEST_MODE

    TEXT

    IN

    Indicates whether the transaction is a TEST transaction (Y or N)

    Default: N

    EMAIL_SUBJECT

    TEXT

    IN

    Subject of the email that will be sent to signers

    Default: Please sign the document sent from WorkflowGen

    EMAIL_FROM

    TEXT

    IN

    Domain name of the email address that will be used to send the email to signers

    Default : do-not-reply

    EMAIL_BODY

    FILE

    IN

    Content of the email to send to signers (see the Customizing the body of the email section)

    TEXT

    IN

    [email protected],[email protected]

    SIGNER_TYPE_LIST

    TEXT

    IN

    PAD,OTP

    FILE1

    FILE

    IN

    contract.pdf

    DOCAPOSTE_TRANSACTION_ID

    TEXT

    OUT

    xxxxx-xxxxx-xxxxx-xxxxx

    DOCAPOSTE_DOCUMENT_NAMES

    TEXT

    OUT

    contract.pdf

    TEXT

    IN

    John

    SIGNER_FIRSTNAME1

    TEXT

    IN

    Bernard

    SIGNER_EMAIL1

    TEXT

    IN

    [email protected]

    SIGNER_EMAIL2

    TEXT

    IN

    [email protected]

    SIGNER_TYPE1

    TEXT

    IN

    PAD

    SIGNER_TYPE2

    TEXT

    IN

    TOKEN

    FILE1

    FILE

    IN

    contract.pdf

    DOCAPOSTE_TRANSACTION_ID

    TEXT

    OUT

    xxxxx-xxxxx-xxxxx-xxxxx

    DOCAPOSTE_DOCUMENT_NAMES

    TEXT

    OUT

    contract.pdf

    DOCAPOSTCHECK
    DOCAPOSTECHECK

    Links

    Remarks

    Information

    Displays the process form in edit mode

    Participants

    Displays process participant list

    Data

    Displays process data list

    Form

    Displays the form designer

    Workflow

    Displays process action list

    Additional links

    Links

    Remarks

    Full screen

    Displays the contents of the different tabs in the menu bar in full screen

    Report

    Displays the process documentation and checks for the validity of the process definition

    Test

    Launches a new test request for this process

    Process form

    Fields

    Remarks

    Template

    Selection of workflow templates to be tested directly, customizable and usable in the Default list or in the Library

    Default:

    • 2 levels approval

    • Parallel tasks

    • Simple approval

    Name

    Unique identifier for the process; must respect nomenclature and be limited to 30 characters (required field)

    Version

    Process version number is read-only and automatically increments when creating new version

    Description

    Process description limited to 255 characters (required field)

    Status

    Process status:

    • Active

    • In test

    • Under construction (default)

    Process actions

    Functions

    Remarks

    New version

    Creates a new version during process development

    This also allows the capability to create a new version from an XPDL definition file. The version number found in the XPDL will be kept if the version number was not already used for the current process; otherwise, it automatically increments.

    Duplicate

    Duplicates the current process definition as a new process

    Move

    Allows the process to be moved into a new folder

    Export

    Allows the process to be exported as an XPDL file

    Import

    Allows the process to be created from an XPDL file

    Deleting requests

    Fields

    Remarks

    Request type

    Type of requests to delete:

    • All

    • In test

    • Real (active)

    Request status

    Status of requests to delete:

    • All

    • Open

    • Closed

    Launching period

    Defines the launching period for requests to be deleted from Icons display a calendar allowing the date to be chosen.

    Request number

    Request numbers to delete (separated by commas)

    Deleting a process

    Only a process manager or an administrator can delete a process. Deleting a process causes all of the associated requests to be deleted.

    If the process has "real" (active) requests, only the administrator can delete the process. This is allowed only if the process is not used as a sub-process by actions of another process.

    Deleting process requests

    Only the process/folder manager or administrator can delete requests that are associated with a process in test mode.

    Only the administrator can delete requests that are associated with an active process.

    Operational restrictions on active and archived status processes

    If the process is active, modifications on it are restricted to the following:

    • Modify process status

    • Modify process categories

    • Modify text, link, or support email of the process and actions

    • Delete the process

    • Create a new version of the process

    • Duplicate the process

    • Delete associated requests

    • Modify which users are associated with the process participants from the directories

    • Modify data visibility (but not security)

    If the process is archived, modifications on it are restricted to the following:

    • Delete the process

    • Create a new version of the process

    • Duplicate the process

    • Delete associated requests

    • Modify which users are associated with the process participants from the directories

    • Modify data visibility (but not security)

    Activating a process causes a previous active version to be archived. Current/ongoing requests will continue to use the process version that was used when they were launched.

    Folder changes

    Only a WorkflowGen administrator can move a process from one folder to another. This does not affect the end users, but will affect which process/folder managers may then access the process.

    Process categories

    Area / Actions

    Remarks

    Available

    Available categories

    Selected

    Selected categories

    Add ...

    Link to a simple add category screen

    Click >> or double-click an item in the Available list

    Add selected categories from the Available list to the Selected list

    Click << or double-click an item in the Selected list

    Remove selected categories from the Selected list

    Exporting and importing XPDL process definitions

    Only a WorkflowGen Administrator or process/folder manager can export and import a process as an XPDL file.

    Exported process elements

    Elements

    Description

    Process Information

    All process general information

    Participants

    All participant information

    Data

    All data information

    Form

    All form data

    Workflow

    All workflow action information

    Imported process elements

    Elements

    Description

    Process Information

    All process general information

    Participants

    All participant information

    Data

    All data information

    Form

    All form data

    Workflow

    All workflow action information

    As of version 5.1.7, any process that includes a Prior Overdue notification in an action cannot be imported into a version of WorkflowGen 5.1.6 or earlier due to incompatibilities.

    Import rules for specific process elements

    Fields

    Remarks

    Process version

    • When creating a new process by importing an XPDL, the version number of the process in the XPDL will be used.

    • When creating a new version of a process from the WorkflowGen database, the version number of the new process will have the latest version number.

    • When creating a new version of a process from an XPDL file, the version number of the new process will have the version number in the XPDL file if the version number of the process hasn’t been already used; otherwise the latest version number will be automatically incremented for the new process.

    Process category

    No category will be added to the process if the category information is missing in the XPDL file. If the category doesn’t exist in WorkflowGen, it will not be added to the process.

    Process notification to requester on closed

    The notification will be checked if the notification value is missing in the XPDL file or the value is set to Y. If N is set as value in the XPDL file then the notification is unchecked.

    Participant scope

    See the next section, .

    Participant associated user(s)

    No user will be added to the participant if the user information is missing in the XPDL file.If the user doesn’t exist in WorkflowGen, it will not be added to the participant.

    Import rules for participants

    The import rules for participants vary depending on whether they are global or process participants, whether or not a participant with the same name already exists, and whether the import is being performed by an administrator or by a process manager.

    Import rules for participants with global scope

    If a global participant with the same name as the global participant being imported exists:

    • The existing global participant will be associated to the process being imported.

    • The associations in the XPDL file will be added to the existing global participant if the Import associations into existing global participants option is checked; otherwise, the associations in the XPDL file will be ignored.

      ✏️ Note: The Import associations into existing global participants option is always available to administrators, but is only available to process managers when Restrict process managers from editing global participants is set to false. For information on this, see Security in the Configuration Panel section.

    If a process participant with the same name as the global participant being imported exists:

    • The participant will be created in the process scope.

    • The associations in the XPDL file will be added to the new process participant.

    If the participant does not exist:

    • Only administrators can create new global participants. (Process managers can only create process participants.)

    • The participant will be created in the global scope.

    • The associations in the XPDL will be added to the new global participant.

    Import rules for participants with process scope

    If a global participant (in WorkflowGen) with the same name as the process participant being imported exists:

    • The existing global participant will be associated to the process being imported.

    • The associations in the XPDL file will be added to the existing global participant if the Import associations into existing global participants option is checked; otherwise, the associations in the XPDL file will be ignored.

      ✏️ Note: The Import associations into existing global participants option is always available to administrators, but is only available to process managers when Restrict process managers from editing global participants option is unchecked in the Security section on the Administration tab in the Configuration Panel.

    If a process participant (in WorkflowGen) with the same name as the process participant being imported exists:

    • The participant will be created in the process scope.

    If the participant does not exist:

    • The participant will be created in the process scope.

    Import procedure

    1. Click the Import button.

    2. Browse for the XPDL file.

    3. Select Import new participants as global participants to import the new participants as global participants (see the previous section, Import rules for participants).

    4. Select Import directory associations to import users associated to existing participants.

    5. Select Import process version number to import the version number.

    6. Select Add your user account to new participants to add your user account as a user (and coordinator, if applicable) to participants representing more than one person (such as A list of persons or A list of persons with coordinators). This option is checked by default. Unchecking this option allows you to not add yourself as long as the participant has the minimum number of users and coordinators to be valid.

    7. Click Import to start the import.

    FILE

    IN

    File(s) to send, where x corresponds to the file number; you can add one or multiple files

    FILE

    IN

    File(s) to send, where x corresponds to the file number; you can add one or multiple files

    TEXT

    IN

    DocuSign Auth server

    DocuSign values:

    • account.docusign.com (production)

    • account-d.docusign.com (demo)

    By default, this value comes from the DocuSignAuthServer parameter in the web.config.

    DOCUSIGN_RSA_KEY

    TEXT

    IN

    DocuSign RSA key By default, this value come from the /Files/DocuSign/rsaKey.pem file.

    DOCUSIGN_HOST_SERVER

    TEXT

    IN

    DocuSign host server

    DocuSign values:

    • https://docusign.net (production)

    • https://demo.docusign.net (demo)

    By default, this value comes from the DocuSignHostServer parameter in the web.config.

    TEXT

    IN

    Prefix of the SignHere tag Default: /s

    SUFFIX_SIGNHERE

    TEXT

    IN

    Suffix of the SignHere tag Default: /

    X_OFFSET_SIGNHERE

    TEXT

    IN

    Vertical alignment of the SignHere tag in pixels Default: 0

    Y_OFFSET_SIGNHERE

    TEXT

    IN

    Horizontal alignment of the SignHere tag in pixels Default: 0

    PREFIX_FULLNAME

    TEXT

    IN

    Prefix of the Full name tag Default: /f

    SUFFIX_FULLNAME

    TEXT

    IN

    Suffix of the Full name tag Default: /

    X_OFFSET_FULLNAME

    NUMERIC

    IN

    Vertical alignment of the Full name tag in pixels Default: 0

    Y_OFFSET_FULLNAME

    NUMERIC

    IN

    Horizontal alignment of the Full name tag in pixels Default: 0

    PREFIX_DATE

    TEXT

    IN

    Prefix of the Date tag Default: /d

    SUFFIX_DATE

    TEXT

    IN

    Suffix of the Date tag Default: /

    X_OFFSET_DATE

    NUMERIC

    IN

    Vertical alignment of the Date tag in pixels Default: 0

    Y_OFFSET_DATE

    NUMERIC

    IN

    Horizontal alignment of the Date tag in pixels Default: 0

    TEXT

    IN

    abc123,def456

    FILE1

    FILE

    IN

    contract.pdf

    DOCUSIGN_ENVELOPE_ID

    TEXT

    OUT

    xxxxx-xxxxx-xxxxx-xxxxx

    TEXT

    IN

    [email protected]

    SIGNER_EMAIL2

    TEXT

    IN

    [email protected]

    SIGNER_ACCESS_CODE1

    TEXT

    IN

    abc123

    SIGNER_ACCESS_CODE2

    TEXT

    IN

    def456

    FILE1

    FILE

    IN

    contract.pdf

    DOCUSIGN_ENVELOPE_ID

    TEXT

    OUT

    xxxxx-xxxxx-xxxxx-xxxxx

    DOCUSIGNCHECK

    Remote Approval

    About Remote Approval

    The Remote Approval feature lets users perform request approvals via email, as an alternative to launching the actual form within the WorkflowGen User Portal.

    Remote Approval is an optional route for a regular form approval action in a WorkflowGen process. It is embedded inside the form approval action that asynchronously triggers a notification to the user using the WorkflowGen notification engine.

    Users can still reply via the normal form approval procedure. The system will take the approval result from either approach based on a first-come-first-served basis and complete the action accordingly. No separate action is required in the workflow design process.

    Simple request

    Library:

    • Expense report

    • Software helpdesk

    • Investment application

    • IT Changes

    • IT Clearance application

    • Leave application

    • New Product Creation

    • Work Order

    A customized workflow template can be created and deployed on the server with the following folder and file structure: \wfgen\App_Data\Templates\Processes\[language]\[folder name]\[process name]v[x].xml

    📌 Example: \wfgen\App_Data\Templates\Processes \En\MyCompany\MY_PROCESSv1.xml

    ✏️ Note: Only processes with forms created with the built-in form designer can be used as workflow templates.

    Archived
    Closed – completed
  • Closed – cancelled

  • Built-in form: Enable form designer

    Activate the built-in form designer

    Sub-process: Enable sub-process mode

    Determines if the process can be used as a sub-process by another process, from an API call, or as a stand-alone process

    Access level

    Required field if the sub-process option is checked

    If the process was declared as a sub-process, you can choose between two access levels:

    • Private: The process can only be instantiated by a parent process

    • API: The process can only be instantiated from one of the API endpoints (GraphQL, Webhooks, SOAP Web Services, and Remote Launch URL)

    • Public: The process can be manually launched from the User Portal or instantiated by a parent process or external application

    Categories

    Process categories list

    The Add link allows categories to be added to or removed from the process.

    Lead time

    The amount of time before the process is considered late

    Units:

    • Years

    • Months

    • Days (takes only working days into account)

    • Hours (takes working days and hours into account)

    • Minutes (takes working days and hours into account)

    • Seconds (takes working days and hours into account)

    You can choose the way lead time will be calculated enabling or disabling the Use working days/hours to calculate the duration option.

    Use working days/hours to calculate the duration

    Calculate duration based on office hours

    Request closure notification: Notify the requester

    Send an email to the requester of the process upon closing the process (unchecked by default)

    Archiving: Archive action associated with the data

    Save the result of each request action at each step of the process (unchecked by default)

    If this option is not activated, all of the action history data and files are deleted once the request is closed and only the final data and files will be stored.

    Process data storage

    Allow process file data (including attachments) to be stored in the database

    This allows you to perform online WorkflowGen data backup without interrupting service (WorkflowGen users can continue to work during the backup).

    ✏️ Note: The maximum supported process data file size is 2147 MB (2.147 GB)

    Help text

    Process help text in the user module; the Add link allows this text to be edited

    Help link

    URL of an external help document on the process, visible in the user module

    Test

    Test the Help link in a new browser window

    Support email

    Email for process support which will be displayed in the user module

    Delete requests

    Displays the dialog box for deleting requests

    Save Button

    Saves updates

    Close Button

    Closes the window

    Participant associated group(s)

    No group will be added to the participant if the group information is missing in the XPDL file.If the group of a directory doesn’t exist in WorkflowGen, it will not be added to the participant.

    Participant associated directory(ies)

    No directory will be added to the participant if the directory information is missing in the XPDL file. If the directory doesn’t exist in WorkflowGen, it will not be added to the participant.

    Participant associated coordinator(s)

    No coordinator will be added to the participant if the coordinator information is missing in the XPDL file. If the coordinator doesn’t exist in WorkflowGen, it will not be added to the participant.

    Data security

    In the "allow access for specific participants" case, if the user doesn’t exist in WorkflowGen, it will not be added to the access list.

    Import rules for participants

    As of WorkflowGen 7.21.0, Remote Approval supports delegations, where delegatees can perform approvals by email.

    Remote Approval settings are set on the Remote Approval tab in the Configuration Panel (see Remote Approval).

    Remote Approval action configuration

    Remote Approval requires parameters to control which information to provide to the remote approver, and how. These parameters also control how to return the approval results as well as other approver information back to the WorkflowGen system.

    Using parameters in a Remote Approval action

    Remote Approval requires additional parameters to be added to an EFORMASPX action. These parameters are to define the questions for remote approver and map the approver’s response to the action.

    To successfully complete a web form action with Remote Approval, the action must have a valid FORM_DATA IN parameter. In the case of a first action (when the form data is not available), FORM_DATA should have a template XML file with the following format:

    Only approval answers and the approver’s information need to be returned via Remote Approval parameters. Other regular action parameters that pass values in or out of the web form remain unchanged.

    In order to send out a notification email to approver, a custom notification must be defined. Under the notification tab of an approval action, add an additional notification with To do as the event, an action assignee as recipient, and a custom email template with the information about the remote approval. This custom notification is the same as a regular custom notification for any WorkflowGen action.

    Default parameters

    Parameter

    Type

    Direction

    Description

    FORM_DATA (required)

    FILE

    INOUT

    INOUT parameter that holds the WorkflowGen request form data file. This is a default parameter for EFORMASPX actions.

    FORM_ARCHIVE

    FILE

    OUT

    Remote Approval requires passing the FORM_ARCHIVE process data as a WorkflowGen parameter in order to capture all the field updates that occur during Remote Approval. The parameter direction must be OUT in order to return the updated archive content back to WorkflowGen.

    ✏️ Notes:

    • No update will be made to the archived web form if FORM_ARCHIVE is not defined in the Remote Approval action.

    • FORM_ARCHIVE is needed for EFORMASPX actions only.

    Qx_KEYWORDS_n

    Optional parameters

    Parameter

    Type

    Direction

    Description

    KEYWORDS_BRACKETS

    TEXT

    IN

    To answer a Remote Approval question in regular approval mode, you must follow a pre-defined syntax:

    Q1: [answer]

    The square brackets ([ and ]) are the default value if this parameter is not used. You can customize it by assigning different characters to enclose the answer. For example, you can set KEYWORDS_BRACKETS to ## for an answer format:

    Q1: #answer#

    ✏️ Note: This consists of two characters only, for the opening and closing characters.

    USER_NAME_FORMAT

    TEXT

    IN

    The full name of the approver who replies will be retrieved from the WorkflowGen database. The approver’s full name will be returned to the field control in the web form if USER_NAME_FIELDNAME is defined. By default, the user’s full name will be in Firstname Lastname format. You can customize the format by using the control characters L and F, for last name and first name, respectively. For example:

    • John Doe → F L

    USER_NAME_FIELDNAME

    Remote Approval questions

    Remote Approval supports three different types of approval questions: multiple choice, questions with numeric answers, and questions with free-form text answers.

    Usually, Remote Approval is used to provide approval questions with two possible answers (for example, Yes or No). To do this, three main parameters are used:

    • Qx_KEYWORDS_n holds a list of possible keywords (comma-separated) for choice n

    • Qx_RESULT_n holds the normalized answer for choice n

    • Qx_RETURN_FIELDNAME specifies the web form field name that holds the final normalized answer for question x.

    Since there can be more than one question in an action, x in these parameters represents the question number, and n at the end represents the choice of answer. You can define as many keywords and results as you need.

    Defining a question with two choices

    In this example, there are two Y/N questions in a Remote Approval action:

    Question 1

    Question 2

    If the approver replies ok to question 1 and bad to question 2, the final normalized answers for questions 1 and 2 will be yes and reject, respectively.

    Defining a question with more than two choices

    If you need to define more than two choices, you must add a new keywords/result combination. For example:

    You can define as many keyword/result combinations as you need.

    Defining other types of questions

    Remote Approval also supports numeric and free-form type questions.

    A numeric type question requires the following keywords/result combinations:

    • Qx_KEYWORDS_1=[0-9]: [0-9] is a keyword reserved for numeric type questions; you only need to use Qx_KEYWORDS_1

    • Qx_RETURN_FIELDNAME: The web form field name that holds the retrieved answer)

    A free-form text type question does not require a keyword, only Qx_RETURN_FIELDNAME (the web form field name that holds the retrieved answer).

    Replying to a Remote Approval request

    There are two Remote Approval answer modes: normal and quick.

    In normal approval mode, a Remote Approval email can ask more than one question, and will expect replies in a structured format.

    In quick approval mode, the email recipient can respond to the first question without any formatting needed. As well, they can include a comment by adding it to the second line under the response to the first question. This mode accepts only one question; as such, questions other than Q1_RETURN that have been specified as action parameters will be ignored. Quick approval mode is enabled on the Remote Approval tab in the Configuration Panel (see Remote Approval).

    📌 Example in normal approval mode

    An approval email contains the following:

    To answer these questions, you would need to reply to the email using the following syntax:

    Each answer is prefixed with Qx: where x is the question number. As well, answers are enclosed in brackets to indicate the beginning and end of the answer. Similarly, COMMENT has the same structure, except it is prefixed with the reserved word COMMENT:.

    📌 Example in Quick approval mode

    Only a keyword for question 1 is needed, with an optional comment. The first line below is the answer to question 1, and the second line is the comment:

    Validating approval emails

    A custom to-do email notification must be defined to be sent to action assignees for a Remote Approval action. This is similar to the default to-do notification of a regular EFORMASPX action. This custom email relies on the WorkflowGen notification system to distribute the approval email to one or multiple approvers.

    To prevent spam or other unrelated incoming emails from arriving in the Remote Approval collector email account, and to assure the approver’s identity, a valid reply to a Remote Approval request must follow the following four conditions:

    1. The email subject line cannot be empty.

    2. The reply email should have the same email header key (Thread-Index) as registered for the associated request action in the WorkflowGen database.

    3. The remote approver's email address must match the one used by WorkflowGen in order to ensure the reply address belongs to a valid WorkflowGen user.

    4. The remote approver must be one of the action assignees for the particular request action.

    Invalid emails will automatically be deleted from the collector email account.

    In some unusual cases, certain email server types or configurations might automatically remove the default header key (Thread-Index) from incoming emails. To prevent this:

    1. Enable Subject line validation on the Remote Approval tab in the Configuration Panel.

    2. Add the WorkflowGen request and action IDs in the email subject in the following format: WorkflowGen request ID prefixed by # (number sign) WorkflowGen action ID prefixed by - (hyphen)

    The following is an example of an email subject line containing the WorkflowGen request and action IDs:

    Authorization for expenditure required #1374-4

    Here, Authorization for expenditure required is the email subject, 1374 is the request ID (prefixed by a number sign), and 4 is the action ID (prefixed by a hyphen).

    The email subject is defined on the first line of the custom email template with the prefix SUBJECT:. The WorkflowGen request and action IDs can be appended to the subject line using the <WF_PROCESS_INST_ID> and <WF_ACTIVITY_INST_ID> WorkflowGen macros, respectively.

    Remote Approval will validate the email reply by verifying the request and action IDs obtained from the email subject. Validation conditions 2 and 3 (see above) are still applicable during the validation process.

    It is highly recommended to keep the Subject line validation option disabled for greater security.

    Approval email with incorrect answer or missing comment

    In case of an email approval reply with an incorrect answer or missing a required comment, Remote Approval will send the email back to the approval sender and ask for a revision.

    📌 Example 1: Notification email for approval reply with incorrect keyword

    📌 Example 2: Notification email for approval reply with keyword that requires a mandatory comment

    This email will provide the possible keywords to remind the approval of which can be used for the answer. As well, the approver must reply to all of the questions again following the syntax (in normal approval mode), even if there was only one incorrect or missing answer.

    Depending on the approver’s WorkflowGen user profile default language preference, either an English or a French message will appear on the revision notification email. If the user has a preferred language other than English or French, English will be used by default.

    📌 Example of a French notification email

    Email customization

    A custom email notification must be defined in order to distribute Remote Approval emails to approvers.

    How to build the email template

    The creation of custom notifications follows the same rules as any other WorkflowGen custom notification; all WorkflowGen macros are supported (see the Custom notification templates section for more information).

    Attachments

    File process data can be attached to a Remote Approval email so that the approver can have direct access to any file type data. A special macro can be used to add a file process data to the email:

    <WF_PROCESS_INST_RELDATA_FILE.XXXXX>

    Add this tag to the email body, and the file from the XXXXX process data will be appended to the email as an attachment. It will not be rendered as text in the body of the email. If multiple attachments are required, add this tag multiple times with the relevant process data name.

    How to set up the overdue notification

    In case an overdue notification must be sent, add an additional notification by specifying the event as "Overdue" and use the same Remote Approval email template.

    For additional notifications, only "To-do" and "Overdue" events will incorporate the email thread-index for email validation (see Validating approval emails for more information).

    Remote Approval web form design

    Considerations

    Remote Approval attempts to process an approval reply as if an approver has actually launched an approval action and submitted the web form. The form data and action parameter values are updated accordingly. This means that when the next action is launched, WorkflowGen already obtains the form data from Remote Approval and is able to display the result on the web form.

    However, in order to reflect the approval result in the form archive, the approval field control must be visible by the time the action before the Remote Approval action is submitted. Remote Approval updates the form archive generated by the previous action by searching for the matching field control and assigning the value via JavaScript. It does not perform any re-rendering of the web form. For example, if a process has two actions, and the approval field in the first action is hidden by default in the web form, the form archive generated by the first action will not contain the approval field control.

    Remote Approval will not be able to populate the approval result on the archive form even though WorkflowGen is still able to retrieve the latest form data and action parameter values.

    Remote Approval fields only support the CheckBoxList, RadioButtonList, ListBox, and DropdownListBox controls. Remote Approval comment fields only support the TextBox and TextArea controls.

    When considering the incorporation of Remote Approval in an action, we suggest the following:

    • Set the relevant approval field as always visible but read-only in the previous action.

    • Set the approval field as visible only after SubmitToWorkflow() is called in the previous action, in order to add the approval field to the archive page only.

    • Use CSS to hide the approval field in the previous action.

    Error logging

    Log file

    Remote Approval will automatically generate basic event log information in the Windows Event Viewer as well as detailed log files within the WorkflowGen \App_Data folder. By default, the log is located in the WorkflowGen web folder DRIVE:\wwwroot\wfgen\App_Data\LogFiles\RemoteApproval\.

    If WorkflowGen has been configured to use a different ApplicationDataPath (defined in the web.config file), the log files will be within the path specified in the config file. For example, if ApplicationDataPath is set to \SERVER_B\App_Data\, then the Remote Approval log files will be created in \SERVER_B\App_Data\LogFiles\RemoteApproval\.

    The log file name will be the date, in the format YYYY-MM-DD.log.

    The log file will contain a summary of activity, including details of technical issues, and information on the WorkflowGen actions closed via the Remote Approval application. There are five levels of details:

    • Level 0: None (no log file will be created)

    • Level 1: Execution summary message only

    • Level 2: Exception error message only

    • Level 3: Execution summary messages and exception error messages

    • Level 4: Execution summary messages and full detail exception messages (including event viewer information logs)

    Level 3 is recommended, because its file size and details are well balanced.

    The log file level is set on the Remote Approval tab in the Configuration Panel (see Remote Approval).

    The number and size of these log files may grow according to the selected log level and the number of WorkflowGen actions handled by the application. It is recommended that you back up and clean up archived log files periodically.

    Error messages

    The following table provides brief explanations of some possible error messages found in the Remote Approval log.

    Error message

    Description

    Socket Error: No such host is known.

    The application was not able to connect to the incoming email server. Check the collector email address settings.

    Server Respond: ERR access denied.

    There is an error in the username used for the incoming email server. Check the spellings of the incoming email address and password.

    Socket Error: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond [server address]:[port number].

    The email server is not responding and timed out. Possible reasons:

    • Email server is not online

    • Incorrect port number: Check the incoming mail server port

    • Incorrect email server type: Check the incoming mail server type

    System Error: The token supplied to the function is invalid.

    Possible incorrect email server security. Check the incoming mail server security.

    Server Respond: ERR maildrop already locked.

    The response email is being locked by the email server.

    Form

    Form Designer

    Design mode

    <?xml version="1.0" standalone="yes"?>
    <NewDataSet>
        <Table1>
            <CURRENT_REQUEST></CURRENT_REQUEST>
        </Table1>
    </NewDataSet>
    Q1_KEYWORDS_1=yes,y,ok
    Q1_RESULT_1=yes
    
    Q1_KEYWORDS_2=no,n,refused  
    Q1_RESULT_2=no
    Q2_KEYWORDS_1=approved,approve,ok  
    Q2_RESULT_1=approve
    
    Q2_KEYWORDS_2=refuse,refused,reject,rejected  
    Q2_RESULT_2=reject
    Q1_KEYWORDS_1=yes,y,ok  
    Q1_RESULT_1=yes
    
    Q1_KEYWORDS_2=no,n,refused  
    Q1_RESULT_2=no
    
    Q1_KEYWORDS_3=modify,moreinfo  
    Q1_RESULT_3=moreinfo
    What is your choice?  
    Question 1: Y or N  
    Question 2: Y or N
    Q1: [Y]  
    Q2: [N]  
    COMMENT: [Request approved.]
    Y  
    Request approved.
    Your decision is in an incorrect format. Please reply to this email with one of the valid keywords or a numeric type value.
    
    Q1: [n,NO or y,YES]
    
    ----Your reply was----
    
    Q1: [maybe]
    Your decision requires a mandatory COMMENT. Please reply to this email again with the valid keywords and a comment.
    
    Q1: [n,NO or y,YES]  
    COMMENT: [your comment]
    
    ----Your message----
    
    Q1: [n]
    Votre réponse est incorrecte, veuillez répondre avec un des mots-clés suivants :
    
    Q1: [n,NON ou o,OUI]
    
    ----Votre réponse était----
    
    Q1: [possible]
    Doe, John → L, F
  • John (Doe) → F (L)

  • TEXT

    IN

    See the Email customization section for details on this parameter.

    Qx_RESULT_n

    TEXT

    IN

    See the Email customization section for details on this parameter.

    Qx_RETURN_FIELDNAME

    TEXT

    IN

    The normalized result from Qx_RESULT_n will be passed to the field name specified in this parameter.

    ✏️ Note: No other parameter should be defined in a Remote Approval that has the suffix _RETURN_FIELDNAME.

    TEXT

    IN

    Regular web forms can use WorkflowGen macros to obtain the assignee’s full name. In Remote Approval, the approver is defined based on the receipt of the approval reply, a specific parameter is required to return the actual approver’s name back to WorkflowGen.

    Create this parameter to specify the field control ID that receives the returned approver name. Only TextBox type field control IDs are supported.

    USER_FIRSTNAME_FIELDNAME

    TEXT

    IN

    Create this parameter by assigning the field control ID in your form to display the approver’s first name in the WorkflowGen user profile on the form archive page.

    USER_LASTNAME_FIELDNAME

    TEXT

    IN

    Create this parameter by assigning the field control ID in your form to display the approver’s last name in the WorkflowGen user profile on the form archive page.

    USER_TITLE_FIELDNAME

    TEXT

    IN

    Create this parameter by assigning the field control ID in your form to display the approver’s job title in the WorkflowGen user profile on the form archive page. Only TextBox, RadioButtonList, and DropDownList type field control IDs are supported.

    COMMENT_FIELDNAME

    TEXT

    IN

    Create this parameter by assigning the field control ID in your form to display the approver’s comment on the form archive page. Only TextBox type field control IDs are supported.

    ✏️ Note: You can specify the control ID by entering the text string or by passing a process data only if the process data contains the ID of the control. If no control ID is found, or the control ID is invalid, no name will be displayed and this parameter will be ignored.

    COMMENT_REQUIRED_RESULTS

    TEXT

    IN

    Create this parameter by specifying which approver results will require a mandatory comment. Approver results refer to Qx_RESULT_n parameters. You can enter a comma-separated text string for this parameter to specify more than one result requiring a comment. 📌 Example:

    Q1_RESULT_2,Q2_RESULT_2,Q3_RESULT_1

    Here, the second answers of questions 1 and 2 (Q1 and Q2) and the first answer of question 3 (Q3) will require comments.

    ✏️ Notes:

    • Mandatory comments require the COMMENT parameter in the action.

    • All required results share the same COMMENT parameter.

    • The approver will receive an email for re-approval if a mandatory comment is missing.

    QUICKAPPROVALMODE

    TEXT

    IN

    Quick mode can be enabled or disabled globally for all Remote Approval actions in the Configuration Panel as a default setting. Defining the QUICKAPPROVALMODE parameter for an individual Remote Approval action in a process will override the global default setting.

    ✏️ Note: The only text string allowed for this parameter is Y or N.

    wfgResponse Error: Remote reply for action (Req #xxxx) cannot be accepted. Action may have already been expired/opened/completed by webform.

    The application cannot complete the action, possibly due to an error connecting to WorkflowGen, or the action may have already expired or been closed or completed within the WorkflowGen User Portal.

    Cannot clean up temp file ([FILENAME]) yet. It may be still in use.

    The application has tried to clean up temporary files in the tmp folder, but the files might still be in use; in this case, the application will skip the removal of this file.

    The response for Request #xxxx is in an incorrect format ([YOUR ANSWER]). An email has been sent.

    The response is improperly formatted, no keyword has been detected in the email contents, or the keyword is invalid. Check also if Quick mode is enabled.

    Email subject does not indicate it is a Remote Approval reply; email has been removed from mailbox.

    An email received by the email server does not contain the required prefix RE: that indicates it is a reply to a remote approval request. This email will be automatically removed from the server.

    Error parsing request information or reading email header/content before processing reply.

    An email received by the email server does not contain all the necessary information such as thread index or the request/action IDs in the subject line that are needed to identify the associated WorkflowGen request action. Check the email server settings if the thread index was discarded, or you can add the request to action IDs in the email notification subject.

    The response for Request #XXXX is missing a mandatory comment for answer ([YOUR ANSWER]). An email has been sent.

    The response provided requires a mandatory comment. The approver must add COMMENT: [YYYYYY] (or YYYYY if Quick mode is enabled) in the email reply. The email will be automatically removed from the server.

    Client found response content type of ‘text/html; charset=utf-8’, but expected ‘text/xml’

    The WorkflowGen API web service is not returning a proper XML data. Make sure the \ws folder is enabled as an IIS application.

    Applicative error + detail (level 4)

    This refers to the exception detail to determine the source of the error. Check the following settings that can cause the application to throw an applicative error:

    • Connection string toward the WorkflowGen database: Ensure that the connection string is well defined, that the server and the database name are correct and available from the web server, and that the given user has sufficient rights to connect, read and write data into the database.

    • SMTP server information: Check that the SMTP server address is correct and can be resolved by the web server. Ensure that the sender email address is allowed to send messages from your SMTP server. As well, make sure that the given server can relay the message correctly.

    ASP.NET editor

    Click .NET in the toolbar to open the ASP.NET code editor, which can be used to define server-side procedures, events, and global variables to handle any specific custom tasks. This feature is mainly intended for ASP.NET server-side development.

    As of WorkflowGen version 7.19.0, all default.aspx files are saved with the Page Async property set to true (e.g. <%@ Page Async="true" ... %>). This allows asynchronous ASP.NET web form development (see the Using Asynchronous Methods in ASP.NET 4.5 Microsoft article for more information).

    JavaScript editor

    Click JS in the toolbar to open the JavaScript code editor, which can be used to define server-side procedures, events, and global variables to handle any specific custom tasks. This feature is mainly intended for JavaScript client-side development.

    Advanced features

    Server-side editing mode

    Check Enable server-side editing mode on the General tab in the Form configuration panel to activate this mode, which allows form designers to modify the content of the form's C# runat server tag (e.g. <script runat="server") and JavaScript script tag (e.g. <script jseditor="true">) directly in the generated default.aspx file on the server (usually located in the \wfapps\webforms[PROCESSNAME]\V[VERSION] folder) using Visual Studio Professional or Visual Studio Code.

    The .NET and JavaScript editors are disabled when server-side editing mode is enabled.

    You must save the form on the WorkflowGen Form screen every time you make changes to a script's code in the default.aspx file in order to keep the form's HTML script tags (FORM_HTML) up to date. This is mandatory before you can export the XPDL process definition for deployment on another server.

    AJAX mode

    If you're using the Form Designer, you can enable AJAX mode by checking Enable AJAX mode on the General tab of the Form configuration panel.

    When adding a custom control (e.g. a button to handle form submission), you must register the control ID as a postback control in the Page_Load event's ScriptManager object. For example:

    Toolbar

    Design mode

    Icon

    Name

    Description

    New form

    Creates a new form or replaces the current form

    Save the form

    Saves the current form (you can also press Ctrl+S to save)

    Print the form

    Prints the current form

    ASP.NET editor

    Icon

    Name

    Description

    New

    Clears the ASP.NET code

    Save

    Saves the ASP.NET code

    Comment/Uncomment

    Adds or removes // before the selected line(s)

    Design

    JavaScript editor

    Icon

    Name

    Description

    New

    Clears the JavaScript code

    Save

    Saves the JavaScript code

    Comment/Uncomment

    Adds or removes // before the selected line(s)

    Design

    Form configuration

    A form created with the built-in Form Designer has one header, one or several sections, one or several fields per section, a Submit button, an optional Save as a draft button, and one footer.

    General tab

    Name

    Description

    Web forms

    Enable server-side editing mode

    See

    Enable AJAX mode

    See

    Header

    Title

    The title of the form

    Web references tab

    Name

    Description

    Include jQuery API and jQuery UI libraries

    Check this option to include the jQuery and jQuery UI libraries in runtime mode (form execution); by default, these libraries are available in design mode

    Available versions:

    • v1.7.2 & v1.8.20

    • v1.10.2 & v1.10.3

    Free text

    Custom web references to be included in the HTML head that will be available in both design and run-time modes. Only <script>, <meta>, <link>, and <style> tags are supported. When you enter a tag, the free text editor automatically inserts its closing tag.

    📌 Example:

    <link rel="stylesheet" type="text/css" href="mystyle.css" />

    <style type="text/css">

    body {background-color:yellow}

    Translations tab

    Name

    Description

    Select a language

    The Form Designer allows you to translate form labels and error messages to the languages available in WorkflowGen. Select a language for translation from the languages available in the drop-down list.

    ✏️ Note: Generic language selections such as English, French, Spanish, etc., correspond to the version of the language that the administrator initially used to create a form. For example, if the administrator used English (United States) to create a form, then in this instance the selections English (United States) and English would be one and the same.

    Free text

    Write translated text that corresponds to the selected language. If a field is left empty, then the language will defer in the following order: Country-specific language > Generic language > Default language.

    Appearance, Behavior & Mapping

    Appearance

    Styles

    The built-in style templates (available in the Style drop-down menu) contain additional CSS that will automatically format and optimize a web form to display on smartphone and tablet devices, based on their screen resolution.

    protected void Page_Load(object sender, EventArgs e)
    {
        base.Page_Load(sender, e);    
        
        // Register the custom button to the script manager for postback management in AJAX mode
        if (ScriptManager.GetCurrent(this) != null) {
            ScriptManager.GetCurrent(this).RegisterPostBackControl(ACTION1_BUTTON1);
        }
    }
    v3.5.1 & v1.12.1 (default)

    p {color:blue}

    </style>

    <meta name="description" content="my content" />

    <script type="text/javascript">

    alert("Hello World!");

    </script>

    <script type="text/javascript" src="myscript.js">

    </script>

    To fold a code block, click the down arrow next to the line number, which will insert a double-arrow icon in place of the code. To unfold the code block, click the right arrow. Press Ctrl+Spaceto display a drop-down menu that lists the available variables and keywords.

    Save a section or field as tool

    Saves the selected section or field as a custom tool

    Duplicate a section or field

    Makes a copy of the selected section or field and inserts it in the form. The duplicate section or field will appear below the selected section or field.

    Delete a section or field

    Deletes the selected section or field from the form

    Form configuration

    Opens the Form configuration window

    Workflow view

    Displays the interactive workflow view

    Undo/redo

    Undoes or redoes the most recent changes made to the form

    Styles

    Select a style

    List of default and custom styles; select an item to change the style of the current form.

    Tools

    Select a tool

    List of default and custom tools; select an item in order to add the tool to the form using the Insert button.

    Insert the selected tool

    Inserts the selected tool in the form

    Id

    Edit ID

    Edit section and field identifiers

    Tooltip

    Edit tooltip

    Edit section and field tooltips

    Format

    Edit format

    Edit section and field format

    Appearance

    Edit appearance

    Edit the appearance of headers, footers, labels, sections, and fields (see Appearance)

    Behavior

    Edit field and section behavior

    Displays the interactive view of the workflow, activates the Required, Read-only, and Hidden clickable options for each form field, and sets the behavior of sections and form fields for each action (see Field & section behavior)

    Mapping

    Edit field’s action data mapping

    Displays the interactive view of the workflow, activates clickable options Retrieve the value and Send the value for each form field and defines the data input and output for each action (see Field data mapping)

    .NET

    ASP.NET

    Switch to the ASP.NET code editor

    JS

    JavaScript

    Switch to the JavaScript code editor

    Form Designer

    Switch to the Form Designer

    JS

    JavaScript

    Switch to the JavaScript code editor

    Form Designer

    Switch to the Form Designer

    .NET

    ASP.NET

    Switch to the ASP.NET code editor

    Width

    The width of the form header

    Numeric value with or without the unit of measure (px, pt, in, cm, mm, pc, em, ex, %), e.g. 720px

    Height

    The height of the form header

    Numeric value with or without the unit of measure (px, pt, in, cm, mm, pc, em, ex, %), e.g. 38px

    Image alignment

    The alignment for the header image:

    • Right: The image will be aligned to the right.

    • Left: The image will be aligned to the left.

    • None: No alignment.

    Image URL

    The URL of the image to be shown

    Image width

    The width of the image

    Image height

    The height of the image

    Image repeat

    Sets if and how the image will be repeated:

    • No-repeat: the image will not be repeated

    • Repeat: the image will be repeated both vertically and horizontally (this is the default setting)

    • Repeat x: the image will be repeated only horizontally

    • Repeat y: the image will be repeated only vertically

    Sections

    Width

    The width for all sections

    Numeric value with or without the unit of measure (px, pt, in, cm, mm, pc, em, ex, %), e.g. 720px

    Adjust width automatically

    Check to apply adjusted width to all sections

    Labels

    Alignment

    The alignment for all field labels:

    • Right: the label will be aligned to the right of the field

    • Left: the label will be aligned to the left of the field

    • Top: the label will be aligned on top of the field

    Width

    The width for all field labels

    Numeric value with or without the unit of measure (px, pt, in, cm, mm, pc, em, ex, %), e.g. 150px

    Apply the width

    Check to apply the width to all field labels

    Buttons

    Submit label

    The label for the submit button

    Save-as-draft label

    The label for the save as draft button

    Enable save-as-draft

    Check to enable and display the save as draft button

    Footer

    Width

    The width of the form footer

    Numeric value with or without the unit of measure (px, pt, in, cm, mm, pc, em, ex, %), e.g. 720px

    Height

    The height of the form header

    Numeric value with or without the unit of measure (px, pt, in, cm, mm, pc, em, ex, %), e.g. 22px

    Image alignment

    The alignment for the footer image:

    • Right: the image will be aligned to the right side

    • Left: the image will be aligned to the left side

    • None: no alignment

    Image URL

    The URL of the image to be shown

    Image width

    The width of the image

    Image height

    The height of the image

    Image repeat

    Sets if and how the image will be repeated:

    • No repeat: the image will not be repeated

    • Repeat: the image will be repeated both vertically and horizontally (this is the default setting)

    • Repeat-x: the image will be repeated only horizontally

    • Repeat-y: the image will be repeated only vertically

    Security

    Enable XML Signature

    Check to enable the use of XML signature in the form data

    Digital signatures are used to certify that a document has not been modified by the system or by someone who gained unauthorized access to the system. The XML signature is a W3C standard that defines the syntax and processing rules for creating and representing digital signatures. This is a method of associating a key with referenced data to insure the integrity of this data.

    Misc.

    Display a confirmation message for quick deletion

    Check to prompt a confirmation message prior to deletion

    Server-side editing mode
    AJAX mode

    Custom styles can be created and deployed on the server using the following folder and file structure: \wfgen\App_Data\Templates\Forms[language][folder name]\css[style name].css

    📌 Example

    \wfgen\App_Data\Templates\Forms\En\MyCompany\css\MyStyle.css

    The themes in the Styles drop-down menu will be applied to the entire form. The Appearance Editor lets you fully customize individual form elements, such as font and size, text and background colors, border styles and colors, etc.

    Appearance Editor

    The Appearance Editor lets you customize the appearance of individual form items and provides further options. You can change the appearance of headers and footers, fields and their labels, radio buttons, checkboxes, the Submit button, and the optional Save-as-draft button. Click the Appearance tab to open the Appearance Editor.

    You can use the Appearance Editor in Express or Advanced modes.

    Express mode

    To use Express mode, hover over the item you want to customize and a toolbar will appear that lets you change the appearance of text and the size of the top margin. (If the item contains several fields, toolbars will appear in the corresponding positions.) You can also change the width of labels and fields.

    To display the Express mode toolbars for all of the items on the form, press Ctrl+Shift+A.

    Advanced mode

    Advanced mode provides extended customization options. To show the Advanced mode panel, hover over the item to display the Express mode toolbar, then click the pencil icon to the right.

    Text lets you set the text appearance, alignment, and word spacing. Layout sets the width and padding of the item. Borders adds and customizes the appearance of borders. Field sets the top, left, and right margins of the field.

    You can also add images to section headers and bodies:

    • The Image URL field contains the URL of the image to display.

    • Image repeat sets if and how the image will be repeated:

      • No repeat: the image will not be repeated

      • Repeat: the image will be repeated both vertically and horizontally (this is the default setting)

      • Repeat x: the image will be repeated horizontally only

      • Repeat y: the image will be repeated vertically only

    • Image position "x" aligns the image to the left, horizontal center, or right.

    • Image position "y" aligns the image to the top, vertical center, or bottom.

    On the Apply to... tab, you can choose the items to which you want to apply the customized appearance settings using the checkboxes.

    To apply your customized appearance and exit the Advanced mode menu, click the checkbox icon at the top right of the panel. To cancel changes and exit, click the x icon.

    Field & section behavior

    The Behavior section is used to visually define the behavior of form sections nd fields for each action of the workflow.

    To activate the interactive workflow view and define the behavior of the form, click Behavior on the toolbar.

    To define the behavior of sections and fields of the form at the action level, click the desired action in the interactive view of the workflow. Once the action is selected, the Required, Read-only, and Hidden settings are activated as clickable buttons for each section and the form field.

    To activate the Required, Read-only, and Hidden settings of each section and form field, click the button related to the section or field for which you want to manage the behavior.

    To define the behavior of the form for the other actions of the workflow, click another action via the interactive view and repeat the above operation according to the desired behavior.

    Table of supported behaviors for sections

    Sections

    Required

    Read-only

    Hidden

    All sections

    ✔️

    ✔️

    ✔️

    Table of supported behaviors per field type

    Default – Fields

    Required

    Read-only

    Hidden

    File attachment (Standard .NET FileUpload control)

    ✔️

    ✔️

    ✔️

    File attachment (WorkflowFileUpload control)

    ❌

    ✔️

    ✔️

    CheckBox

    * Not supported in field conditions.

    Field data mapping

    The Mapping screen enables you to visually define the default values ​​(data in) and/or data to be stored by the workflow (data out) of the form fields for each action of the workflow.

    To activate the interactive workflow view and manage the mapping of the form, click Mapping on the toolbar.

    To set the default values ​​of form fields at the action level, click the desired action in the interactive view of the workflow.

    Once the action is selected, the Value IN and Value OUT buttons are activated in each form field.

    Default value (data in)

    A default value will automatically populate a field when displaying the form following the launch of an action. These default values can be of several types:

    • Manually-entered text

    • A macro selected from the list of available macros

    • Workflow data selected in the data list

    To set the default value of a field at the action level, click the Value IN button to the right of the field concerned.

    In the dialog box that appears, set the default value of the field by entering text in the Text section, by selecting a macro from the drop-down Macro list, or by selecting process data in the Data combo box. Click the check mark at the top right to save.

    To set the default values ​​of other form fields for each of the actions of the workflow, click another action via the interactive view and repeat the previous operation.

    Data stored by the workflow (data out)

    To set the form data to be stored for an action, click the desired action in the interactive view of the workflow.

    Data stored by the workflow corresponds to the value of form fields that will be retrieved by the workflow as a result of an action, and that can be used for the following purposes:

    • As workflow conditions

    • In the assignment of an action, setting the time for action and content of notifications

    • Through the tracking features and/or statistics (reporting)

    To send the value of a form field and therefore store it as process data, click Value OUT to the right of each field in question.

    Fields whose values have been sent are automatically declared in the Data tab of the process definition and will be usable as workflow transitions, as tracking features and statistics (reporting), etc.

    Data names should respect the following XML naming rules:

    • They should begin with a letter or an underscore

    • They should contain only letters, digits, hyphens, underscores, and periods

    • They should not contain spaces

    • They should not begin with the letters XML in any case (e.g. xml or Xml)

    Otherwise, the action parameter will be successfully saved, but a warning message will be displayed upon saving. For more information, see .

    To define the data stored for each of the actions of the workflow, click another action via the interactive view and repeat the previous operation.

    Quick approval

    To enable the Quick approval feature on validation actions, click the Quick approval tab and check Enable Quick approval. Click Edit email approval keywords to specify email approval keywords (comma-separated) for the configured Quick approval parameters. Once enabled, you can also Enable Quick approval comments for comments actions.

    To enable Quick approval by default, check Enable Quick approval by default on the Portal tab in the Configuration Panel.

    If you have modified the default Quick approval parameters or added additional ones, the parameter values must be static and not bound to dynamic process data.

    Actions

    Adding an action

    Drag and drop the Add action icon onto the view to open the Select an action type screen.

    XMLTODATABASE Workflow Application

    Overview

    The XMLTODATABASE workflow application lets you export data from any XML document to one or several databases. It is a synchronous system application that does not require the user to take action. The configuration of the SQL transaction is done via an XML document that enables SQL queries to be performed on ODBC, OLEDB, or other custom data sources.

    Synchronization

    Allows a synchronization type action to be created (synchronization bar)

    Manual

    Allows a manual type action to be created (an action that is not associated with a form)

    Sub-process independent

    Allows an independent sub-process type action to be created

    Sub-process embedded

    Allows an embedded sub-process type action to be created

    Action editing screen

    Tab

    Remarks

    Information

    Displays the action form in edit mode

    Parameters

    Displays the list of required and additional parameters of an application type action

    Next actions

    Displays the list of actions following the current action in the workflow process

    Notifications

    Displays the automatic and additional notification lists for the action

    Information tab

    The fields displayed in the Edit action panel vary depending on the action type (for example, a human-based web form action or a sub-process action).

    Fields

    Remarks

    Application or action type

    Type of action or application used by the action

    Name

    Unique identifier for the action; must respect nomenclature and be limited to 30 characters (required field)

    Description

    Action description (limited to 255 characters)

    Participant [1]

    Participant involved in the action (required field)

    Sub-process [1]

    Sub-process associated to the action (required field)

    The list of available sub-processes is built according to the process status:

    • If the process is active, you can choose only active or archived sub-processes

    • If the process is in test or under construction, you can choose in test, active, or archived sub-processes

    ⚠️ Warning: If you change the sub-process to another one, all of the current parameters of the previous sub-process will be deleted.

    1. If the action is a sub-process.

    2. If the action is an application.

    3. Available for Automatic to the person and Manual assignment methods.

    4. Enabled if the assignment method is manual.

    5. Enabled if a lead time is specified.

    6. The default help text limit of 10,000 characters can be customized by editing the value of the AdministrationMaxHelpTextSize parameter in the web.config file.

    Deleting an action

    Only a process/folder manager or an administrator can delete an action. If the process is active or archived, the action cannot be deleted.

    Adding a loop on the first action

    It is not possible to create a transition leading back to the first action of a process (this is not the same as a loop transition, which is permitted). You must add a new action that will be automatically assigned to the requester and create a loop with it.

    📌 Example

    Here, the action UPDATES is added:

    - INITIATES > VALIDATES > UPDATES > VALIDATES > UPDATES > VALIDATES > ...

    Assignment methods

    Automatic

    Method

    Remarks

    Automatic to the requester

    The action is assigned to the user who initiates the request (e.g. first action of the process is assigned to the requester).

    Automatic to the action initiator [1]

    The action is assigned to the user who handled the previous action (e.g. launch of several actions one after the other by the same person).

    Automatic to the person [2]

    If the type of participant is Person, the action is assigned to the user associated with the participant.

    If the type of participant is List of persons, the action can be assigned to the user whose username is found in the chosen process data. If the process data contains a list of usernames (separated by commas) then one instance of the activity is created and assigned to each user of the list. In this case, an assignment error might occur if the assigned user is not associated with the participant.

    Automatic to the person who handled... (an action)

    The action is assigned to the user who handled the selected action (e.g. the final approval must be done by the same user who approved first). The list of available actions to select (in the second drop-down) will be the ones to which the selected participant has previously been associated.

    Automatic to the manager of the requester

    The action is assigned to the manager of the user who initiates the request. An assignment error might occur if no manager is associated with the requester.

    1. The Automatic to the action initiator method is available if the participant of the previous action is the same as the participant of the current action.

    2. If the Automatic to the person method is selected, the Retrieve the user from the data field must be filled in.

    Manual

    Method

    Remarks

    Manual by the action initiator

    The user who handled the previous action selects the user to receive the next action assignment in the participant user list.

    Manual by the person who handled... (an action)

    The user who handled the selected action chooses the user who will receive the next action assignment in the participant user list. The list of available actions to select (in the second drop-down) menu will be the ones to which the selected participant has previously been associated.

    For processes that contain sub-processes or automatic applications, this method can replace By the action initiator when the previous action has been handled by the system.

    Manual by the coordinator

    (Dispatching) One of the coordinators (of the selected participant) assigns the action to a user associated with the action participant.

    Self-service

    The first user associated with the participant who decides to handle the action receives the action assignment, at which time others are not able to handle the action anymore.

    Available assignment methods by action type

    The following table shows the available assignment methods depending on the action type (synchronization, application, or sub-process) and the action application type (web procedure, web service, asynchronous web procedure, or web application).

    Available assignment methods

    Sync

    Web procedure, web service, async web procedure

    Web application

    Sub-process

    Automatic

    Automatic to the requester

    ❌

    ❌

    See next table

    1. The Automatic to the action initiator method is available if the participant of the previous action is the same as the participant of the current action.

    2. If the Automatic to the person method is selected, the Retrieve the user from the data field must be filled in.

    Available assignment methods for Web application actions by participant type and role

    The following table shows the available assignment methods when selecting an Application action type and a Web application action application type depending on the associated participant type and participant role.

    Available assignment methods

    Person

    List of persons: Participant

    List of persons: Requester

    List of persons with coordinator: Participant

    List of persons with coordinator: Requester

    Automatic

    Automatic to the requester

    ❌

    1. The Automatic to the action initiator method is available if the participant of the previous action is the same as the participants of the current action.

    2. If the Automatic to the person method is selected, the Retrieve the user from the data field must be filled in.

    Next action tab

    Field

    Remarks

    Action to be added *

    Process action to add as the action following the current action

    * An action can only be used once as the "next action" in the transition from the current action.

    Columns

    Remarks

    Next action

    Name of the next action

    Transitions to

    List of possible actions to follow

    Condition/Exception

    A link displays the transition’s condition form in edit mode

    Deletion

    Clicking x deletes the transition to the next action

    Fields

    Remarks

    Application

    Allows an action to be created based on the selected application

    How it works

    The WorkflowGen engine calls the XMLTODATABASE application with the context and the parameters. XMLTODATABASE uses the context and the parameters to get the following:

    • The XML data document to export

    • The transactions document, which contains:

      • Information on how to connect to the database

      • Information on where the data should be taken in the XML data document (using XPaths)

    After XMLTODATABASE has gathered all of the above information, it is ready to perform the export. Once the export is complete, it returns the context to WorkflowGen so that the workflow may continue.

    Description of the XML transactions document

    Overview

    The XML transactions document specifies the SQL commands that will be executed on the databases. It is used for two main functions: connecting to the database, and mapping the fields of the query to the fields of the XML data document. Remember that the XML data document (generally named FORM_DATA) can be constructed in many ways. For this reason, XPaths are used to map the database fields to the XML fields.

    Structure

    Any one XMLTODATABASE activity can have an unlimited number of databases and an unlimited number of commands per database. This means that the export can be done to several databases, and each database can have more than one command.

    📌 Example of an XML transactions document

    Attributes

    transaction node

    Attribute

    Description

    name

    Used to map the transaction to the XMLTODATABASE activity/action

    In WorkflowGen, a TRANSACTION parameter (TEXT type data) must be defined for every XMLTODATABASE activity/action. The text entered in the parameter must match the transaction name attribute in order to use the right transaction for the right activity.

    database node

    Attribute

    Description

    name

    Name of the database used for the transaction

    connectionstringname

    Contains the name of a connection string that is centrally managed in the WorkflowGen web.config file (see the below)

    connectionstring

    Contains the ConnectionString to connect to the database

    provider

    Used to inform XMLTODATABASE which namespace should be used to create the access to the database (System.Data.OleDb or System.Data.Odbc) ✏️ Note: This attribute can only be used with the connectionstring attribute.

    transaction

    Used to inform XMLTODATABASE whether to use a DB transaction for the export (values: yes or no)

    • You can use either the connectionstringname or connectionstring attributes, but not both.

    • It is strongly recommended to use a connection name rather than a connection string to simplify multi-environment management.

    command node

    Attribute

    Description

    type

    Used to inform XMLTODATABASE what kind of command is being performed Possible values can be any valid SQL command, except if it is calling a stored procedure. In this case, the type must be PROCEDURE.

    loop

    Used to perform a batch of commands using all of the values returned by the XPath in the xpath attribute of the command node (possible values: yes or no)

    For example, if the loop attribute is set to yes, and the XPath returns 10 results, the XPath contained in the command query will be executed 10 times (once for each result). If the loop attribute is set to no, the command will be executed only once with the first node returned by the XPath contained in the query.

    xpath

    Used to specify a part of the XPaths used in the query

    Connection string name example

    XMLTODATABASE transaction file

    WorkflowGen web.config file

    Location of the XML transactions document

    There are four ways to define an XML transaction for an XMLTODATABASE action. In all of the following cases, the transaction document is defined as follows:

    1. XMLTODATABASE first looks for a TRANSACTIONS_TEXT parameter.

    2. If this parameter is not found, it then looks for a TRANSACTIONS_FILE parameter.

    3. If this parameter is not found either, it then looks for a file with your transaction’s name.

    4. If this file is not not found either, it then parses the Transactions.xml file to find a node with your transaction’s name.

    The priority order, then, is as follows:

    1. TRANSACTIONS_TEXT parameter.

    2. TRANSACTIONS_FILE parameter.

    3. MyTransaction.xml file.

    4. Transactions.xml file.

    In the common file

    In this case, the transaction file is located in the \wfgen\App_Data\Files\XmlToDatabase folder, and named Transactions.xml. The XMLTODATABASE application parses this file to find your transaction.

    The XMLTODATABASE action contains the following parameters:

    • TRANSACTION: IN direction text type data

    • XML: IN direction file type data

    In a specific file

    If your transaction is not found inside the Transactions.xml file, the XMLTODATABASE application looks for an .xml file with the same name as your transaction. The transaction document should be created in the MY_TRANSACTION.xml file.

    The XMLTODATABASE action contains the TRANSACTION and XML parameters.

    You can change from the common transaction file to a specific transaction file without updating your process definition by removing the transaction from the Transactions.xml file and adding it in a file named with your transaction’s name.

    In a process file data type

    If you can’t access the web server's \App_Data folder, or if you want to include your transaction in your process definition (to be exported and shared by an XPDL file), you can upload your transaction file in a process file data type. To do this:

    1. Create a process file data type and upload your MY_TRANSACTION.xml file.

    2. Edit your XMLTODATABASE action, add a new parameter named TRANSACTIONS_FILE, and send the value of your process data.

    In a process text data type

    If you can’t access the \App_Data folder of the web server, or if you want to include your transaction in your process definition (to be exported and shared by an XPDL file), you can write your transaction within a process text data type.

    As of WorkflowGen version 7.15.0, the XML transaction contained in a TEXT process data no longer has a 4000-character limit for MS SQL Server database.

    To do this:

    1. Create a process text data type and write your transaction as a default value.

    2. Edit your XMLTODATABASE action, add a new parameter named TRANSACTIONS_TEXT, and send the value of your process data:

    It is not necessary to create process data. You can send the value of your XML transaction within the TRANSACTION_TEXT parameter.

    Date and numeric field formatting

    You can specify which fields must be formatted as date or numeric values using the following parameters:

    Parameter

    Description

    XML_FIELDS_DATE

    List of date type fields; must contain a list of XPath expressions separated by , (comma) characters

    XML_FIELDS_NUMERIC

    List of numeric type fields; must contain a list of XPath expressions separated by , (comma) characters

    XML_LOCALE

    Culture code to use to format the date and numeric values (e.g. en-GB or en-US)

    Date format generated into the SQL queries

    DATE type fields are formatted as follows: yyyy-mm-dd hh:MM:ss

    Numerical format generated into the SQL queries

    Numeric fields are formatted as follows: XXXX.XX

    📌 Example

    • Rule: All the nodes found in the XML document with the name REQUEST_DATE and the specific node situated at /MyData/MyExample/Date_Field will be formatted as date

      • Method: XML_FIELDS_DATE = //*/REQUEST_DATE, /MyData/MyExample/Date_Field

    Details of the transaction execution

    The SQL commands can be launched as transactions. If errors occur, a rollback is launched and the initial state of the database is restored. The value of the transaction attribute of the database node must be set to yes.

    If the transaction handles many databases, the execution of the commands will be multi-transactional, meaning if an error occurs in a command in one of the databases, a rollback on all database transactions performed will be launched.

    Test mode

    The transactions can be tested before being executed on the database. The value of the constant XmlToDatabaseTestMode in the configuration file must be set to Y.

    If this constant is set to Y and you have specified using transactions on the database nodes, the transactions will not be committed at the end of the execution.

    Description of the log file

    If the XmlToDatabaseEnableTrace parameter in the configuration file of the web service is set to Y, a log file will be created in the \wfgen\App_Data\LogFiles\XmlToDatabase directory.

    The log entries are in the following format:

    Date; [Database name;] Transaction name; SQL query; Execution result

    Execution result values are:

    • OK if the query was run successfully, or

    • ERROR: Error code - Error description if an error occurred.

    📌 Examples

    Possible execution errors

    The following errors can occur during the execution of the transactions:

    Error

    Cause

    The XML file parameter is missing

    The required XML parameter has a null value or is not completed.

    The XML context cannot be empty

    The XMLTODATABASE application must receive a context from WorkflowGen; it cannot be used without being part of a WorkflowGen process.

    XML parsing error (1)

    The XML parameter is pointing to an invalid XML file.

    XML parsing error (2)

    The XML transaction file is an invalid XML file.

    XML parsing error. The provider attribute is required

    The provider attribute of the database node is not present in the transaction.

    Export examples

    📌 Example 1

    XML file structure:

    The command node could look like this:

    The XPATH: tags in the query will be replaced with /data/, which is the XPath attribute value.

    The PARAM: tag is used to identify a WorkflowGen parameter instead of using an XML field.

    • XPaths that return no nodes will use null values.

    • It is not possible to use the qualified XPath by using XPATH:: instead of XPATH:.

    📌 Example 2

    The following is a more complex example using the loop property.

    XML file structure:

    The command nodes could look like this:

    You must use two : (colon) characters when you don't want to use the qualified XPath in the command node, as shown in {XPATH::/Library/publishers/publisher} above.

    ❌

    ✔️

    ✔️

    CheckBoxList

    ❌

    ✔️

    ✔️

    CheckBoxListVertical

    ❌

    ✔️

    ✔️

    Currency

    ✔️

    ✔️

    ✔️

    Date

    ✔️

    ✔️

    ✔️

    DateTime

    ✔️

    ✔️

    ✔️

    DropdownListBox

    ✔️

    ✔️

    ✔️

    Gridview

    ✔️*

    ✔️

    ✔️

    Gridview - Column

    ✔️*

    ❌

    ❌

    Label

    ❌

    ❌

    ✔️

    ListBox

    ✔️

    ✔️

    ✔️

    Numeric

    ✔️

    ✔️

    ✔️

    Password

    ✔️

    ✔️

    ✔️

    RadioButton

    ❌

    ✔️

    ✔️

    RadioButtonList

    ✔️

    ✔️

    ✔️

    RadioButtonList Vertical

    ✔️

    ✔️

    ✔️

    ReadOnlyCurrency

    ❌

    ❌

    ✔️

    ReadOnlyDate

    ❌

    ❌

    ✔️

    ReadOnlyDateTime

    ❌

    ❌

    ✔️

    ReadOnlyNumeric

    ❌

    ❌

    ✔️

    ReadOnlyText

    ❌

    ❌

    ✔️

    TextArea

    ✔️

    ✔️

    ✔️

    Text

    ✔️

    ✔️

    ✔️

    https://www.w3schools.com/xml/xml_elements.asp

    Macros

    Overview

    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.

    List of available macros

    * field: See the next table.

    See below for examples of values for the macros listed above.

    User macro suffixes

    Using macros

    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.

    📌 Example 1

    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

    📌 Example 2

    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>

    File data macros

    Access to the file properties

    In transition or notification conditions, you can use the following macros on file type process data to access the file properties.

    Syntax examples

    The following examples assume you have a file type data called MY_FILE.

    📌 Example 1

    • Rule: Check if the file name contains the keyword "report":

      • Method: InStr(1,<MY_FILE.FILENAME>,"report",1) <> 0

    📌 Example 2

    • Rule: Check if the file size is less than 1 MB:

      • Method: <MY_FILE.SIZE> < 1024

    📌 Example 3

    • Rule: Check if the file is a Microsoft Word document:

      • Method: <MY_FILE.CONTENTTYPE> = "application/msword"

    📌 Example 4

    • Rule: Check if the file was modified today:

      • Method: <MY_FILE.DATELASTMODIFIED> > [Date]

    Check if a file exists

    You can also use the name of the data to check if the file exists in the process by using the IsNull() function.

    📌 Example

    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>)

    Examples of macros

    The following table shows examples of the macros listed above.

    Web configuration app settings macros

    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>).

    📌 Example

    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:

    <transactions>
        <transaction name="">
            <databases>
                <database name="" connectionstringname="" connectionstring="" provider="" transaction="">
                    <command type="" loop="" xpath="">
                    [QUERY HERE]
                     </command>
                </database>
            </databases>
        </transaction>
    </transactions>
    ...
    <database name="MYDB" connectionstringname="MYDBSOURCE">
    ..
    ..
    <connectionStrings>
        <add name="MYDBSOURCE" connectionString="Data Source=MYSQLSERVER;Initial Catalog=MYDB;User ID=user;password=pwd;" providerName="System.Data.SqlClient"/>
    <connectionString>
    ...
    <transactions>
        <transaction name="MY_TRANSACTION">
            ...
        </transaction>
    </transactions>
    02/12/2020 4:41:23 PM; ACCESS; TEST_TRANS; INSERT INTO DATA ...; OK
    02/12/2020 4:41:24 PM; ACCESS; TEST_TRANS; DELETE FROM DATA2; ERROR: 1234-Table was not found
    <data>
        <request_number>1</request_number>
        <request_first_name>John</request_first_name>
        <request_last_name>Smith</request_last_name>
    </data>
    <command type="INSERT" loop="no" xpath="/data/">
        INSERT INTO EXAMPLE (request_number, request_first_name, request_last_name, request_date)
        VALUES (
            {XPATH:request_number},
            '{XPATH:request_first_name}',   
            '{XPATH:request_last_name}',
            '{PARAM:REQUEST_DATE}')
    </command>
    <Library>
        <publishers>
            <publisher>Grasset</publisher>
        </publishers>
        <AUTHORS>
            <author id="100">
                <name>Stephen King</name>
                <description>Horror novel author</description>
                <birth_date>1947-09-21</birth_date>
            </author>
            <author id="200">
                <name>John Smith</name>
                <description>Description of the author</description>
                <birth_date>1972-06-06</birth_date>
            </author>
        </AUTHORS>
        <BOOKS>
            <book id="38">
                <title>Title of book #38</title>
                <description>Description of the book #38</description>
                <author id="100"/>
            </book>
            <book id="39">
                <title>Title of book #39</title>
                <description>Description of the book #39</description>
                <author id="200"/>
            </book>
            <book id="40">
                <title>Title of book #40</title>
                <description />    // Will insert a NULL value automatically
                <author id=""/>    // Will insert a NULL value automatically
            </book>
        </BOOKS>
    </Library>
    <command loop="yes" type="INSERT" xpath="/Library/AUTHORS/">
        INSERT INTO AUTHORS
            ([AUTHOR_ID],[AUTHOR_NAME],[AUTHOR_DESC],[AUTHOR_PUBLISHER])
        VALUES ({XPATH:author/@id},
            '{XPATH:author/name}',
            '{XPATH:author/description}',
            '{XPATH::/Library/publishers/publisher}' )
    </command>
    <command loop="yes" type="INSERT" xpath="/Library/BOOKS/">
        INSERT INTO BOOKS 
            ([BOOK_ID],[BOOK_TITLE],[BOOK_DESCRIPTION],[BOOK_AUTHOR_ID])
        VALUES ({XPATH:book/@id},
            '{XPATH:book/title}',
            '{XPATH:book/description}',
            '{XPATH:book/author/@id}')
    </command>

    Sub-process version

    The sub-process version (optional)

    Auto finds the most recent active, in test, or archived version (in that order) and chooses it, but if you specify a specific version in the Number field, that version will be chosen regardless of its status.

    Sub-process requester [1]

    Process users automatically defined as the requester of the sub-process (required field)

    Assignment method [2]

    Method of assigning the action to a participant (required field)

    Retrieve users from [3]

    Process data containing a list of usernames (separated by commas) of the persons to whom the action will be assigned (required field)

    Split mode

    Sets the action's behavior between a traditional synchronization bar and a split bar. Disabling incoming transition synchronization:

    • Checked (split bar): Do not synchronize incoming transitions (e.g. parallel actions)

    • Unchecked (synchronization bar): Synchronize incoming transitions (e.g. parallel actions)

    ✏️ Note: Applicable to synchronization and split bars only.

    Begin block activity

    Defines a new block of activities specifying the begin action of the block (e.g. split action). The split action can be any type; the current synchronization bar will be automatically considered as the end action of the block (e.g. joint action).

    ✏️ Note: Applicable to synchronization bars only.

    Lead time [4]

    Amount and unit of time before the action is considered late; the value can be specified by a fixed value or retrieved at runtime from a data value.

    Units:

    • Years

    • Months

    • Days (takes working days into account)

    • Hours (takes working days and hours into account)

    • Minutes (takes working days and hours into account)

    • Seconds (takes working days and hours into account)

    You can choose the way the lead time will be calculated by checking (or not checking) the Use working days/hours to calculate the duration option.

    Pause during

    Amount and unit of time a synchronization or split bar will be paused before launch; the value can be specified by a fixed value or retrieved at runtime from a data value

    You can choose the way the pause time will be calculated by checking (or not checking) the Use working days/hours to calculate the duration option.

    ✏️ Note: Applicable to synchronization and split bars only.

    Delay / Start time

    Amount and unit of time a system action will be delayed before launch; the value can be specified by a fixed value or retrieved at runtime from a data value You can choose the way the delay/start time will be calculated by checking (or not checking) the Use working days/hours to calculate the duration option.

    You can also choose to start the first action execution without the specified delay by checking the Skip delay for the first execution when action is in direct loop option (enabled by default).

    ✏️ Note: Applicable to system actions only (e.g. assembly, web service, web procedure, etc.).

    Cancel the assignment if the delay is greater than [5]

    The action assignment can be automatically cancelled if the delay is greater than this specified value. You must specify a duration unit for this field.

    Completion mode

    Indicates if the action must be completed by the workflow engine in background

    This option is useful when the completion takes a long time (a lot of notifications, the action is followed by a web service or a web process, etc.).

    In this case, the user doesn't have to wait for the action completion to be redirected to the request follow-up form or the portal home page (according to the redirection setting defined in the Configuration Panel by the administrator).

    Direct loop history

    Keep direct loop actions history:

    • Checked (default): Creates a separate action for every execution when the action loops to itself only (original behavior)

    • Unchecked: Creates a single action for all executions when the action loops to itself only

    ✏️ Note: Applicable to system actions only (e.g. assembly, web service, web procedure, etc.).

    Visible

    Indicates if the action is displayed in the request follow-up form's actions history in the User Portal

    Help text [6]

    Help text for the action, visible in the User Portal; a link allows this text to be edited

    Help link

    URL of an external help document relating to the action, visible in the User Portal

    Support email

    Email address for support on the action, visible in user mode

    Icon size

    The action icon size for the process workflow graphical view; check Apply size to all actions to change the size of all action icons at once

    Internal ID

    Action’s ID

    Automatic to the manager of the action initiator

    The action is assigned to the manager of the user who handled the previous action. An assignment error might occur if no manager is associated with the action initiator.

    Automatic to the manager of the person who handled … (an action)

    The action is assigned to the manager of the user who handled the selected action. An assignment error might occur if no manager is associated with the user who handled the selected action. The list of available actions to select (in the second drop-down) will be the ones that the selected participant has previously been associated to.

    Automatic to the system

    Used for a synchronization related application or an automatic application (web procedure, asynchronous web procedure, or web service).

    ✔️

    Automatic to the action initiator [1]

    ❌

    ❌

    ✔️

    ✔️

    Automatic to the person [2]

    ❌

    ❌

    ✔️

    ✔️

    Automatic to the person who handled...

    ❌

    ❌

    See next table

    ✔️

    Automatic to the manager of the requester

    ❌

    ❌

    See next table

    ✔️

    Automatic to the manager of the action initiator

    ❌

    ❌

    See next table

    ✔️

    Automatic to the manager of the person who handled...

    ❌

    ❌

    See next table

    ✔️

    Automatic to the system

    ✔️

    ✔️

    See next table

    ✔️

    Manual

    Manual by the action initiator

    ❌

    ❌

    See next table

    ❌

    Manual by the person who handled...

    ❌

    ❌

    See next table

    ❌

    Manual by the coordinator

    ❌

    ❌

    See next table

    ❌

    Self-service

    ❌

    ❌

    See next table

    ❌

    ❌

    ✔️

    ❌

    ✔️

    Automatic to the action initiator [1]

    ✔️

    ❌

    ❌

    ❌

    ❌

    Automatic to the person [2]

    ✔️

    ✔️

    ✔️

    ✔️

    ✔️

    Automatic to the person who handled...

    ❌

    ✔️

    ✔️

    ✔️

    ✔️

    Automatic to the manager of the requester

    ❌

    ✔️

    ✔️

    ✔️

    ✔️

    Automatic to the manager of the action initiator

    ❌

    ✔️

    ✔️

    ✔️

    ✔️

    Automatic to the manager of the person who handled...

    ❌

    ✔️

    ✔️

    ✔️

    ✔️

    Automatic to the system

    ❌

    ❌

    ❌

    ❌

    ❌

    Manual

    Manual by the action initiator

    ❌

    ✔️

    ✔️

    ✔️

    ✔️

    Manual by the person who handled...

    ❌

    ✔️

    ✔️

    ✔️

    ✔️

    Manual by the coordinator

    ❌

    ❌

    ❌

    ✔️

    ✔️

    Self-service

    ❌

    ✔️

    ✔️

    ✔️

    ✔️

    Unable to commit transactions

    The commit operation has not succeeded.

    Error while opening log file

    The log file cannot be opened.

    The TRANSACTION parameter is missing

    The required TRANSACTION parameter has a null value or is not completed.

    The definition of the transaction has not been found

    The transactions.xml file has no transaction with the name attribute corresponding to the value of the TRANSACTION parameter.

    SQL Instruction not valid: the parameter has not been found

    The PARAM {parameter name} has not been found.

    XML parsing error. The connectionstring attribute is required

    The connectionstring attribute has not been specified in the database node.

    The XML field was expected to be date, but its value is not valid

    One of the XPaths in the XML_FIELDS_DATE that was passed refers to a field that is not a date field.

    The XML field was expected to be numeric, but its value is not valid

    One of the XPaths in the XML_FIELDS_NUMERIC that was passed refers to a field that is not a numeric field.

    The XPath is not a valid XPath expression

    One of the XPaths in your transaction file is not a valid XPath expression.

    The XPath passed as a parameter is not a valid XPath expression

    One of the XPaths in your XML_FIELDS_DATE or XML_FIELDS_NUMERIC parameters is not a valid XPath expression.

    Error while loading the XML file: File was not found

    The XML parameter is not pointing to an XML file.

    Database connection error

    The connection to the database cannot be established. Check the validity of the connection string contained in the database node's connectionstring attribute.

    ✏️ Note: It is strongly recommended to use a connection name rather than a connection string to simplify multi-environment management.

    Error during the execution of the SQL command

    The execution of the SQL command failed. Check the syntax of the related SQL command.

    Error during the execution of the SQL loop command

    The execution of the SQL command failed. Check the syntax of the related SQL command.

    SQL instruction not valid: the XML field has not been found.

    One of the XPath expressions you have used in your parameters of the command returned no fields. Check the syntax of your XPath expressions.

    The culture code for the XML file in the param XML_LOCALE is not valid.

    Check that the XML_LOCALE parameter is in the right format (e.g. en-US or fr-CA).

    example

    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 section)

    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

    File description

    DATELASTMODIFIED

    DATETIME

    Date of last modification of the file

    "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

    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> *

    Field

    Description

    LASTNAME

    Last name

    FIRSTNAME

    First name

    USERNAME

    Name of the user

    MANAGER

    Manager's username

    MANAGER_LASTNAME

    Manager's last name

    Field

    Type

    Description

    FILENAME

    TEXT

    File name

    SIZE

    NUMERIC

    File size in bytes

    CONTENTTYPE

    TEXT

    File content type

    DESCRIPTION

    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

    Examples of macros

    Action initiator information

    MANAGER_FIRSTNAME

    TEXT

    Process.Name

    <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>
    Web configuration app settings macros

    Directory Synchronization

    Overview

    The Directory Synchronization module provides an efficient way to synchronize WorkflowGen users and groups with one or more existing enterprise directories.

    The following are some key points about synchronization:

    • The synchronization process can be manual or automatic.

    • The built-in WORKFLOWGEN directory cannot be synchronized.

    • A user’s username must be unique across all WorkflowGen directories.

    • You can synchronize multiple directories or multiple portions of a directory with different connectors.

    • In the case of an account deletion, the user will either be archived or deactivated, depending on parameters specified. If archived, the username will then be renamed and the account disabled.

    Recommendation for per-user license mode

    It is recommended that you synchronize a new user account with the New user default status option set to Inactive. These new accounts can later be activated manually by the Administrator in the user/group lists, or automatically by using the self-activation feature.

    General usage

    Accessing the synchronization module

    Only users with an Administrator profile can access the synchronization module.

    Description of synchronization parameters

    From the WorkflowGen Administration Module, you can list the directory synchronizations, consult synchronization parameters, or add new synchronizations.

    When creating a new synchronization that is based on Active Directory, LDAP, or TEXT, the following fields will appear to define the method of synchronization.

    Once saved, it's no longer possible to change the directory connector.

    Separator

    For the text connector, the column separation character in the text file can be a semicolon (;), a comma (,), or a Tab character.

    File path

    This field makes it possible to specify a path to access the files for the text connector. It takes as a value the path where the files are located, followed by the synchronization name.

    The synchronization name is used to name the files.

    LDAP path

    For Active Directory, an LDAP path is required. Only a single LDAP path is supported per connector.

    User synchronization query

    For an LDAP query, an LDAP query must be specified to query user accounts.

    Group synchronization query

    For an LDAP query, an LDAP query must be specified to query groups.

    Directory login and password

    For Active Directory or LDAP connectors, a login and password may be required to provide access to the directory server.

    Deep search mode

    For the Active Directory connector, define if the synchronization should include only the container of the targeted OU or include all the children of the targeted OU.

    Data to synchronize

    With WorkflowGen, groups and users can be synchronized. User synchronization is required, but group synchronization can be activated or deactivated.

    With LDAP synchronization, a group query must be defined even if the group is not set to synchronize.

    Users synchronization field

    In order to perform synchronization, the module uses a field to identify the users, and defines the additions, deletions, or updates. The default field is USERNAME, but you can choose any field from WorkflowGen (e.g. Ads_Path, EMPLOYEENUMBER, etc.) as long as it is processed by the connector.

    Groups synchronization field

    As with users, parameters can be set for the group synchronization field.

    Prefix username by

    To facilitate importing, and in certain cases to avoid double entries concerning user names, it is possible to prefix usernames with a character string. 📌 Example: Domain\

    The username prefix cannot contain the : (colon) character.

    Prefix groupname by

    To facilitate importing and to avoid, in certain cases, double entries concerning group names, it is possible to prefix the group names with a character string. 📌 Example: Domain\

    User synchronization type

    There are three synchronization modes: Add only allows new users to be imported, Add and modify also allows data for existing users to be updated, and Add, modify and delete has an additional function that enables archiving of WorkflowGen users who are not included in the Imported Directory.

    • Add only: During synchronization, any user that exists in the directory to be imported but does not exist in the WorkflowGen directory will be added to the latter. Data for existing users will not be modified. In order to be added, a user must at least have a user name (USERNAME) and a last name (LASTNAME). If this condition is not satisfied, an error occurs and the add is cancelled. In case of a defect with one of these values (USERNAME and LASTNAME), an alert (WARNING) is generated.

    • Add and modify: This type of synchronization functions the same as the preceding one with regards to additions. It also allows you to update data for users who are already present in the directory and are to be synchronized. In this way, data for a user present in the WorkflowGen directory and in the directory to be imported will be updated.

    Group synchronization type

    There are three synchronization modes: Add only allows only new groups to be imported, Add and modify allows data for existing groups to be updated, and Add, modify and delete has an additional function that enables archiving of WorkflowGen groups that are not included in the imported directory.

    New user default status

    This option defines the default status of new user accounts that are created during the synchronization. Set the status to Active if you want a new user account to be activated by default. Set the status to Inactive if you want to manage a new user account activation manually, or to enable the user self-activation feature. This is recommended for clients who are using the per-user license mode.

    Self-activation

    This option allows an inactive new user account to activate itself when logging into WorkflowGen for the first time. The ‘Inactive’ new user default status option must be selected in order to use this option.

    If a user is deleted

    In order to provide proper user tracking in WorkflowGen, when a deletion request is generated, users that have performed actions are not actually deleted; you can either deactivate them or archive them. Once archived, the user will retain their unique internal ID, but their username will be renamed with an archive suffix and sequence number.

    Launching mode

    Triggering can occur manually (using the Synchronize button) or automatically.

    • Manual: Manual synchronization makes it possible to perform synchronization on an on-demand basis only. To do this, click the Synchronize button on the synchronization file concerned.

    • Test: This mode has the same running mode as manual synchronization, except that processing is, in reality, not performed. Instead, it is only simulated in order to anticipate if synchronization will take place correctly or not. To do this, click the Test button. A synchronization test is logged in the same way as a real synchronization.

    • Automatic: Data synchronization can take place automatically. In this case, a scheduled task analyzes the configuration of all the synchronizations on a daily basis, and subsequently runs the process.

    Frequency

    If synchronization is performed automatically, you can choose the frequency for synchronization. This can be every day, once a week, or once a month. For automatic synchronization, see the section for instructions on how to set specific dates and times for the operation.

    Active Directory connector

    Overview

    The purpose of the connector is to import users and groups from Active Directory into a WorkflowGen directory. The connector operates with the LDAP protocol using ADSI (Active Directory Service Interface). Access to Active Directory is read-only.

    Requirements

    • Read-only LDAP access to Active Directory is required for an anonymous account or for an account that has access to the Active Directory server.

    • If the Active Directory server is located behind a firewall, the LDAP protocol must be open.

    • You can use the ADSVIEW utility tool provided in the setup package to check that your LDAP path refers to the correct container to retrieve the users and groups of your directory.

    LDAP path

    The connector needs an LDAP path in order to retrieve the data in Active Directory. This path consists of:

    • The protocol: LDAP://, in this case.

    • The name of the server or its IP address.

    • Optionally, the port separated from the name of the server with : (colon). Default: 389

    In order to run the query that is needed to synchronize the users, the Organization (O) and the Organizational Units (OU) must be specified starting from the bottom upwards, preceding them with DC= and separating them with , (comma).

    📌 Example

    An Active Directory structure is as follows:

    • Top level Domain (DC): thecompany.com

    • Organization unit (OU): group within the domain: BusinessUnit2

    • Sub-unit (OU): sub-group within the domain: IT Department

    In order to access users and groups of IT Department, the LDAP path would be:

    The LDAP path does not support the . operator, but it does support spaces. Therefore, the .com is identified by the DC=com operator.

    • CN is also supported as a container type.

    • Only one branch of the directory can be associated with a given directory. If multiple OUs at the same level must be queried, then the parent of both OUs must be queried, or two directories created. For example, if the structure /Company/Department1 and /Company/Department2 and /Company/Department3

    For more information, see .

    Data to import

    Synchronization is performed for users. However, it is also possible to synchronize groups, and consequently group user memberships. You can import data directly from the OU or the container that is the target path. You can retrieve data from the child containers by activating the Deep search mode.

    For users to be synchronized, their sn and sAMAccountName attributes must be set in Active Directory. These map to Last name and Username, respectively.

    The Active Directory connector does not take into account the Disabled property of AD user accounts; these accounts will therefore be synchronized as active users. If you don't want the synchronization to include inactive AD accounts, you'll need to use the instead, with the (!(userAccountControl:1.2.840.113556.1.4.803:=2)) filter added to the user synchronization query. As well, make sure to set the desired behavior for the If a user is archived option to either Archive (default) or Deactivate whenever an existing account becomes inactive in AD.

    Synchronization fields

    User synchronization field and Group synchronization field are set to System identifier by default.

    If you have an existing WorkflowGen installation that uses an Active Directory connector for synchronization, we recommend switching the user and group synchronization fields to System identifier, since it is a unique identifier for each user and group object in Active Directory.

    Retrieving Active Directory data

    The information is retrieved in Active Directory using the LDAP path. As such, it provides an in-depth access to the data by targeting the OU from which the users and groups are to be retrieved.

    The following tables list the mapping between the key-entry fields for a user and the field names with Active Directory. These mappings can't be edited, so if you want to edit them, you'll need to use the directory LDAP connector (see below).

    Users

    Groups

    LDAP connector

    Overview

    The purpose of the LDAP connector is to import users and groups from a generic LDAP directory (e.g. AD, Sun ONE, ADAM, etc.) into a WorkflowGen directory. The connector operates with the LDAP protocol and the connection is performed as read-only.

    Requirements

    Read-only LDAP access is required for an anonymous account or for an account that has access to the LDAP server. If the LDAP server is located behind a firewall, the LDAP protocol must be open.

    User and group synchronization queries

    The connector needs an LDAP query in order to retrieve the data in the directory. This query consists of:

    • The protocol: LDAP://, in this case.

    • The name of the server or its IP address.

    • Optionally, the port separated from the name of the server with : (colon). The default port is 389.

    📌 Examples

    An LDAP structure is as follows:

    • Top level Domain (DC): thecompany.com

    • Organization unit (OU): Group within the domain: BusinessUnit2

    • Sub-unit (OU): Sub-group within the domain: IT Department

    In order to access users and groups of IT Department, the LDAP queries would be (assuming an Active Directory LDAP structure):

    User

    Group

    To use a specific CN referencing two groups, the following query filters may be used:

    User

    Group

    • Only one user and group query can be associated with a given directory. If multiple OUs at the same level must be queried, then the parent of both OUs must be queried, two directories created, or a specific query filter devised that includes both OUs.

      For example, if the structure /Company/Department1 and /Company/Department2 and /Company/Department3 exists, and only departments 1 and 2 must be queried, then either the entire /Company

    See the Microsoft article for additional samples of generic LDAP queries.

    Data to import

    Synchronization is performed for users. However, it is also possible to synchronize groups, and consequently, group user memberships.

    For users to be synchronized, their sn and sAMAccountName attributes must be set in Active Directory. These map to Last name and Username, respectively.

    You can import data directly from the OU or the container that is the target path. You can also retrieve data from the child containers by activating the Deep Search Mode.

    Synchronization fields

    The default synchronization fields are set as follows:

    • Users: System identifier

    • Groups: name (sn)

    Retrieving LDAP data

    The following tables list the mapping between the key-entry fields for a user and the field names with LDAP. These mappings can be edited by selecting the Edit mapping button on the directory editing page.

    Make sure to save the field mapping whenever you add or modify an LDAP query.

    Users

    Groups

    Text connector

    Overview

    The purpose of the text connector is to import users and groups using text files into a WorkflowGen directory.

    Requirements

    The text connector requires three different text files:

    • User: One text file that contains the data related to the users to synchronize.

    • Group: One text file that contains the data related to the groups to synchronize.

    • Usergroup: One text file that contains the relationships between the users and the groups according to the selected synchronization fields.

    Data to import

    Synchronization takes place for the users, but it can also be activated for groups. To do this, check the corresponding box in the synchronization configuration sheet.

    Selecting files

    Since files to be imported have a standard suffix, use Filepath and key in the path followed by the part that is common to the names of the three files.

    📌 Example

    If you decide to name your import importWorkflowGen and you have saved it to the DRIVE:\Extract\ directory, you will need to have the importWorkflowGen_USER.txt file in this directory. If you want to perform group synchronization as well, you also need the importWorkflowGen_GROUP.txt and importWorkflowGen_USERGROUP.txt files. When setting the parameters for synchronization, once you have chosen the Text connector, enter DRIVE:\Extract\importWorkflowGen in Filepath.

    Text file names

    Data import files must have suffixes as described in the following manner:

    • The user file must end with _USER.txt

    • The group file must end with _GROUP.txt

    • The group user member file must end with _USERGROUP.txt

    The rest of the file name must be the same for the three files.

    Text file structure

    Text files begin with a line listing each of the property names separated with a character that is defined as a constant in the connector file. Each line then corresponds to a record, such as a user, with the values also separated by the delimiting character. If a property is empty, it must nevertheless be delimited by the separating character. The default delimiter is ; (semicolon).

    The , (comma) separator cannot be used on a server that uses this character as a decimal separator, such as a French server.

    The group user member file only has two fields: synchronization fields for groups and for users. These fields are chosen in the directory synchronization module. As well, it is possible to prefix the names of these fields in order to avoid cases where a field name for synchronizing users is the same as that for groups. These parameters are set in the Configuration Panel in the Administration Module when setting the Active Directory synchronization values.

    For example, if the user synchronizing field is Username and the field for the groups is name, the file must contain the GROUP_sAMAccountName and USER_sAMAccountName fields.

    ADS path

    With text files exported from Active Directory, the connector needs the LDAP path in order to allow it to rebuild the ADSPATH property for the users.

    List of properties

    The following tables list the properties that are needed for synchronizing users, with their equivalents in WorkflowGen. These mappings define the column names in the text file and can be edited by selecting the Edit mapping button in the directory editing page.

    Users

    Groups

    User groups

    These are the required fields for the group user member file:

    • Synchronization field name for groups (e.g. GROUP_SAMAccountName)

    • Synchronization field name for users (e.g. USER_SAMAccountName)

    Active Directory export text file

    You can generate an export text file for user data by using the following command:

    In this case SERVERNAME is the name of the server hosting the directory, file.CSV is the name of the resulting text file, and OU=myOu,DC=mycompany,DC=com is the path to the container in which you want to put the list of users.

    To execute this synchronization automatically, this data export process must be added to the task scheduler before the synchronization script is run. To add a task, see the administrator documentation for the Synchronization module. This method does not allow groups to be synchronized.

    Examples of text files

    User file

    Group file

    User group file

    SCIM connector

    The SCIM connector lets you define a new directory that will be used by Microsoft Entra ID (formerly Azure Active Directory) to synchronize users and groups. For information on how to configure this, see the section in the guide.

    Self-provisioning connector

    The self-provisioning connector is a directory connector that automatically creates and synchronizes a user based on the user's session token claims that contain claims from the OpenID Connect provider ID token. For instructions on how to configure this, see the section in the .

    Synchronization logs

    Overview

    Synchronization logs are set up on the Directory synchronization tab in the Configuration Panel; see in the section.

    Each synchronization, whether manual or automatic, is logged and available to be viewed by Administrators only, in the Synchronization logs option in the Directories menu.

    By default, 31 days of logs are maintained. This parameter can be changed by an Administrator in the Configuration Panel.

    Each log provides the details of each synchronization action performed, including listing all users and groups added, modified, or deleted (archived). This also includes warnings (such as a missing email) and errors (such as a missing last name). Log files can be viewed or deleted.

    Location of log files

    Log files can be found on the WorkflowGen server under the \wfgen application folder at the following location: \wfgen\App_Data\LogFiles\Dir\Synchro.

  • Add, modify and delete: You can delete users from a WorkflowGen directory through synchronization. In this mode, the user is deleted when they are present in the WorkflowGen directory but not in the directory to be imported.

  • ✏️
    Note:
    If you’re using LDAP in SSL mode, you must use port 636; otherwise, you can omit the port number, or use the default one.
  • The path in the server's LDAP tree structure.

  • exists, and only departments 1 and 2 must be queried, then either the entire
    /Company
    OU should be specified (all three department OUs will be synchronized), or two separate synchronization directories should be created each with one OU specified.
  • LDAP query filters are not supported.

  • The group query is inherently the same as the user query.

  • Groups and users linked to them must exist within the same LDAP path, otherwise mismatched group/user combinations will be excluded from the synchronization and appear as errors in the synchronization log. This typically occurs when Active Directory groups are defined as CNs within an OU that point to users that are in fact defined in other OUs outside the scope in the LDAP path provided. For example, this situation will arise if the LDAP path is defined to link only to the /Company/Department1 OU, and within this OU the /Company/Department1/Team1 group points to users in /Company/Department2. In this case, it is recommended to either choose an LDAP path that includes all OUs that are involved in the groups, or to use the LDAP connector type instead to create more refined individual user/group queries and filters.

  • (none)

    Manager

    manager

    Phone

    telephoneNumber

    Mobile

    mobile

    Fax

    facSimileNumber

    Pager

    pager

    Office

    physicalDeliveryOfficeName

    Department

    department

    Company

    company

    Job title

    title

    Employee type

    employeeType

    Initials

    initials

    Title

    personalTitle

    Employee number

    employeeID

    Postal address

    postalAddress

    Zip code

    postalCode

    City

    l

    State/Area

    st

    Country

    co

    LDAP path

    ADsPath

    Display name

    distinguishedName

    Distinctive name

    cn

    Extended attribute 1

    extensionAttribute1

    Extended attribute 2

    extensionAttribute2

    Extended attribute 3

    extensionAttribute3

    Extended attribute 4

    extensionAttribute4

    Extended attribute 5

    extensionAttribute5

    System identifier

    objectSid

    cn

    Distinctive name

    DistinguishedName

    System identifier

    objectSid

    The top level domain.

  • The LDAP query and/or filters.

  • OU should be specified (all the department OUs will be synchronized), or a specific filter must be devised that queries only those two OUs.
  • Groups and users linked to them must exist within the same LDAP path, otherwise mismatched group/user combinations will be excluded from the synchronization, and appear as errors in the synchronization log. This typically occurs when AD groups are defined as CNs within an OU that point to users that are in fact defined in other OUs outside the scope of the LDAP path provided.

    For example, if the LDAP path is defined to link only to the /Company/Department1 OU, and within this OU the /Company/Department1/Team1 group points to users in /Company/Department2, this situation will arise. In this case, it is suggested to choose a user query that includes all OUs that are involved in the groups.

  • (none)

    Manager (must be a valid username)

    manager

    Phone

    telephoneNumber

    Mobile

    mobile

    Fax

    facSimileNumber

    Pager

    pager

    Office

    physicalDeliveryOfficeName

    Department

    department

    Company

    company

    Job title

    title

    Employee type

    employeeType

    Initials

    initials

    Title

    personalTitle

    Employee number

    employeeID

    Postal address

    postalAddress

    Zip code

    postalCode

    city

    l

    State/Area

    st

    Country

    co

    LDAP path

    ADsPath

    Display name

    distinguishedName

    Distinctive name

    cn

    Extended attribute 1

    extensionAttribute1

    Extended attribute 2

    extensionAttribute2

    Extended attribute 3

    extensionAttribute3

    Extended attribute 4

    extensionAttribute4

    Extended attribute 5

    extensionAttribute5

    System identifier

    objectSid

    cn

    Distinctive name

    DistinguishedName

    System identifier

    objectSid

    (none)

    Manager (must be a valid username)

    manager

    Phone

    telephoneNumber

    Mobile

    mobile

    Fax

    facSimileNumber

    Pager

    pager

    Office

    physicalDeliveryOfficeName

    Department

    department

    Company

    company

    Job title

    title

    Employee type

    employeeType

    Initials

    initials

    Title

    personalTitle

    Employee number

    employeeID

    Postal address

    postalAddress

    Zip code

    postalCode

    City

    l

    State/Area

    st

    Country

    co

    LDAP path

    (none)

    Display name

    (none)

    Distinctive name

    (none)

    Extended attribute 1

    (none)

    Extended attribute 2

    (none)

    Extended attribute 3

    (none)

    Extended attribute 4

    (none)

    Extended attribute 5

    (none)

    System identifier

    (none)

    Field

    Active Directory default mapping

    Username

    sAMAccountName

    Password

    userPassword

    Name

    sn

    First name

    givenName

    Email

    mail

    Field

    Active Directory default mapping

    Name

    sAMAccountName

    Description

    Description

    Email

    mail

    Group code

    groupCode

    LDAP path

    AdsPath

    Field

    LDAP default mapping

    Username

    sAMAccountName

    Password

    (none)

    Name

    sn

    Firstname

    givenName

    Email

    mail

    Field

    LDAP default mapping

    Name

    sAMAccountName

    Description

    Description

    Email

    mail

    Group code

    groupCode

    LDAP path

    AdsPath

    Field

    Text default mapping

    Username

    sAMAccountName

    Password

    (none)

    Name

    sn

    Firstname

    givenName

    Email

    mail

    Field

    Text default mapping

    Name

    sAMAccountName

    Description

    Description

    Configuration Panel
    LDAP connector
    LDAP connector
    LDAP connector
    Search Filter Syntax
    Microsoft Entra ID Synchronization
    WorkflowGen for Azure
    Auth0 user provisioning
    WorkflowGen Technical Guide
    Directory synchronization
    Configuration Panel

    Default time zone

    Display name

    Default time zone

    Display name

    Default time zone

    LDAP://servername:port/OU=IT Department,OU=BusinessUnit2,DC=thecompany,DC=com
    LDAP://servername:port/DC=thecompany,DC=com;(&(objectCategory=person)(objectClass=user)(sn=*)(sAMAccountName=*)(memberOf=CN=TheSpecificCN,OU=LowestOU,OU=HigherOU,DC=thecompany,DC=com)(!(userAccountControl:1.2.840.113556.1.4.803:=2)));adsPath,objectSid,sAMAccountName,sn,GivenName,mail,telephoneNumber,mobile,pager,facSimileTelephoneNumber,department,company,EmployeeType,EmployeeId,title,initials,postalAddress,postalCode,physicalDeliveryOfficeName,st,L,co,manager;subtree
    LDAP://servername:port/DC=thecompany,DC=com;(&(objectClass=group));adsPath,objectSid,sAMAccountName,Description;subtree
    LDAP://servername:port/DC=thecompany,DC=com;(&(objectCategory=person)(objectClass=user)(sn=*)(sAMAccountName=*) (memberOf=CN=TheSpecificCN,OU=LowestOU,OU=HigherOU,DC=thecompany,DC=com)(!(userAccountControl:1.2.840.113556.1.4.803:=2)));adsPath,objectSid,sAMAccountName,sn,GivenName,mail,telephoneNumber,mobile,pager,facSimileTelephoneNumber,department,company,EmployeeType,EmployeeId,title,initials,postalAddress,postalCode,physicalDeliveryOfficeName,st,L,co,manager;subtree
    LDAP://thecompany/dc=thcompany,dc=com;(&(objectClass=group)(|(sAMaccountName=Group1)(sAMaccountName=Group2)));adsPath,objectSid,sAMAccountName,Description;subtree
    csvde –f file.csv –s SERVERNAME –d "OU=myOu,DC=mycompany,DC=com" –p subtree –r "(objectClass=OrganizationalPerson)" –l "ADsPath,cn,displayName,givenName,sn,sAMAccountName,mail, telephoneNumber,mobile,pager,facSimileTelephoneNumber,physicalDeliveryOfficeName,department,company, initials,title,employeeID,employeeType,postalAddress,postalCode,l,st,co,personalTitle"
    sn;givenName;sAMAccountName;mail;
    "USER1-01";"Paul Smith";"psmith";"[email protected]";
    "USER1-02";"John Doe";"jdoe";"[email protected]";
    "USER1-03";"Jack Ryan";"jryan";"[email protected]";
    "USER1-04";"Ted Graham";"tgraham";"[email protected]";
    sAMAccountName;Description
    "HR";"GRP1-01"
    "IT";"GRP1-02"
    GROUP_sAMAccountName;USER_sAMAccountName
    "HR";"psmith"
    "HR";"jdoe"
    "IT";"jryan"
    "IT";"tgraham"

    EXECSQL Workflow Application

    Overview

    The EXECSQL workflow application allows you to execute one or multiple SQL queries in a process.

    EXECSQL lets you retrieve information via SELECT queries, for example, in order to use the results in process conditions.

    How it works
    • EXECSQL requires the CONNECTION_NAME parameter, which corresponds to the connection name, and the QUERY parameter, which corresponds to the query to execute.

    • You can specify one or multiple commands per EXECSQL action. For this, the parameters must be prefixed by CMDx_, where x corresponds to the command number (e.g. CMD1_).

    • The supported query types are SELECT, INSERT, UPDATE, DELETE, SCALAR, and PROCEDURE.

    • The application supports SQL transaction management.

    • You can use a global connection for multiple commands. In this case, you must not prefix the CONNECTION_NAME parameter with CMDx_. It is not possible to use a global connection and a local connection (e.g. CONNECTION_NAME and CMD2_CONNECTION_NAME).

    • You can use a global transaction for multiple commands. In this case, you must not prefix the TRANSACTION parameter with CMDx_. It is not possible to use a global transaction and a local transaction (e.g. TRANSACTION and CMD2_TRANSACTION). It's necessary to define a global connection to be able to define a global transaction.

    • Application logs are available. These can be specified by setting the value of the ExecSqlLogLevel parameter in the web.config file to 0 to deactivate logs, 1 for error logs, 2 for information logs, or 3 for debug logs; the default value is 0.

    Required parameters

    Parameter

    Type

    Direction

    Description

    CONNECTION_NAME

    TEXT

    IN

    Name of the connection to use

    The connection name must be defined in the WorkflowGen web.config file.

    QUERY

    TEXT

    IN

    Query to execute

    Optional parameters

    General

    Parameter

    Type

    Direction

    Description

    TYPE

    TEXT

    IN

    Type of query to execute

    The supported types are:

    • SELECT (default)

    • INSERT

    TRANSACTION

    TEXT

    IN

    When set to Y, the application triggers a SQL transaction before the request execution and will perform a commit or rollback based on the result. Default: N

    ON_ERROR

    • If you want to populate a GridView using the FORM_DATA_GRIDVIEW parameter, the contents of FORM_DATA must contain at least the XML schema.

    • If the first action of the process is an EXECSQL action, you must put a default value in FORM_DATA , with the definition of the schema.

    Query parameters

    For each query, you can define parameters to use during execution. These parameters can be defined in two ways: either by using the QUERY_PARAM prefix or by using an at sign (@).

    📌 Example

    You can use QUERY_PARAM_MyParam or @MyParam, where MyParam corresponds to the name of the parameter defined in the query.

    Parameter

    Type

    Direction

    Description

    QUERY

    TEXT

    IN

    SELECT * FROM USERS WHERE LASTNAME = @UserLastname

    QUERY_PARAM_UserLastName / @UserLastName

    TEXT

    IN

    Doe

    Return parameters

    General

    Parameter

    Type

    Direction

    Description

    ERROR_MESSAGE

    TEXT

    OUT

    Contains the error message in the event that the parameter value contains CATCH and an exception is thrown during execution

    RESULT_COMMIT

    TEXT

    OUT

    Indicates whether a commit was performed on the transaction Possible values:Y or N

    SELECT query

    Parameter

    Type

    Direction

    Description

    RESULT_ROWx_fieldName

    TEXT

    NUMERIC

    DATETIME

    OUT

    Contains the value of the fieldName column for row x

    You must replace fieldname with your column name (e.g. LASTNAME) and x with the row number (e.g. 2).

    RESULT_ROW_fieldName

    TEXT

    NUMERIC

    DATETIME

    OUT

    Contains the value of the fieldName column for the first row returned

    RESULT_JSON

    SCALAR query

    Parameter

    Type

    Direction

    Description

    RESULT

    NUMERIC

    OUT

    Contains the numeric result of a SCALAR type query

    Examples

    SELECT query

    Store the results in data

    Parameter

    Type

    Direction

    Value

    CONNECTION_NAME

    TEXT

    IN

    MainDbSource

    QUERY

    TEXT

    IN

    SELECT LASTNAME, FIRSTNAME, USERNAME FROM USERS

    RESULT_JSON

    Populate a GridView

    Parameter

    Type

    Direction

    Value

    CONNECTION_NAME

    TEXT

    IN

    MainDbSource

    QUERY

    TEXT

    IN

    SELECT LASTNAME as REQUEST_GRID_LASTNAME, FIRSTNAME as REQUEST_GRID_FIRSTNAME, USERNAME as REQUEST_GRID_USERNAME FROM USERS

    FORM_DATA

    If EXECSQL is the first action of the process, you must define a default value for the FORM_DATA data containing the schema of the array, as shown in the example below:

    INSERT query

    Parameter

    Type

    Direction

    Value

    CONNECTION_NAME

    TEXT

    IN

    MainDbSource

    TYPE

    TEXT

    IN

    INSERT

    QUERY

    Here's another possibility for query parameters:

    Parameter

    Type

    Direction

    Value

    CONNECTION_NAME

    TEXT

    IN

    MainDbSource

    TYPE

    TEXT

    IN

    INSERT

    QUERY

    UPDATE query

    Parameter

    Type

    Direction

    Value

    CONNECTION_NAME

    TEXT

    IN

    MainDbSource

    TYPE

    TEXT

    IN

    UPDATE

    QUERY

    DELETE query

    Parameter

    Type

    Direction

    Value

    CONNECTION_NAME

    TEXT

    IN

    MainDbSource

    TYPE

    TEXT

    IN

    DELETE

    QUERY

    Stored procedure

    Parameter

    Type

    Direction

    Value

    CONNECTION_NAME

    TEXT

    IN

    MainDbSource

    TYPE

    TEXT

    IN

    PROCEDURE

    QUERY

    The PROCEDURE query type does not return a value. If you want to return a value, you must use the SELECT type.

    Parameter

    Type

    Direction

    Value

    CONNECTION_NAME

    TEXT

    IN

    MainDbSource

    TYPE

    TEXT

    IN

    SELECT

    QUERY

    SCALAR query

    Parameter

    Type

    Direction

    Value

    CONNECTION_NAME

    TEXT

    IN

    MainDbSource

    TYPE

    TEXT

    IN

    SCALAR

    QUERY

    Launch multiple requests

    Parameter

    Type

    Direction

    Value

    CONNECTION_NAME

    TEXT

    IN

    MainDbSource

    CMD1_TYPE

    TEXT

    IN

    INSERT

    CMD1_QUERY

    Requests with transactions and error management

    Parameter

    Type

    Direction

    Value

    CONNECTION_NAME

    TEXT

    IN

    MainDbSource

    CMD1_TYPE

    TEXT

    IN

    INSERT

    CMD1_QUERY

    Configuration Panel

    Overview

    The Configuration Panel is used to configure the main settings for the WorkflowGen application. It can be accessed from the home page of the Administration Module or from the URL http://[servername]/wfgen/admin/Config.aspx.

    Access to the Configuration Panel can be set in the WorkflowGen web.config configuration file located in the \wfgen directory of your site. To add administrators, add their user names (separated by commas) to the ApplicationConfigAllowedUsersLogin parameter. (The users must first have administrator profiles.)

    The Configuration Panel is divided into the following tabs:

    • : General WorkflowGen settings (e.g. database connection string)

    • : User Portal settings (e.g. behavior, banner settings, etc.)

    • : Administration Module settings (e.g. language settings)

    General

    Database

    Type

    This is the type of database that WorkflowGen is using (Microsoft SQL Server).

    Master database connection string

    The database scaling feature allows for the addition of database servers to significantly improve server performance and response times. The additional read-only replica database server can be used as a dedicated read-only server (SELECT SQL queries). The read-only database server is replicated from the existing master.

    To test if the master database connection string entered is valid, click the Test button.

    📌 SQL server example

    Read-only database connection string

    The read-only replica database connection string. To test if the connection string entered is valid, click the Test button.

    📌 SQL server example

    Multi-database

    Select the Enable checkbox to activate the database scaling feature.

    Portal

    If the multi-database option is enabled, the checkboxes of the different Portal components will be activated. If checked, the different components will use the read-only replica database. Otherwise, if left unchecked, it will use the primary database.

    Modules

    If the multi-database option is enabled, the different Portal modules will be activated. If checked, the different modules will use the read-only replica database. Otherwise, if left unchecked, it will use the primary database.

    Address

    Web application URL (required)

    The base URL of the web application. You can specify the protocol to use (HTTP or HTTPS), the IP or DNS name of the web server, and/or the TCP port of the website. To test if the value entered is valid, click the Test button. 📌 URL example: http://www.mycompany.com/

    SMTP

    SMTP server

    You can choose between two delivery methods: Server, which will use your SMTP server to send email notifications, and Pickup directory, which will save email notifications in a pickup folder.

    • Server:

      • Host name: The SMTP server address

      • Port: The SMTP server port; if not set, the SMTP connection will use the default SMTP port (25)

    To test the SMTP configuration, click the Test button and enter sender and recipient email addresses. An email will be sent to the address you entered.

    Instant messaging

    See the section for information on how to configure instant messaging in WorkflowGen.

    Provider

    The SMS provider (Twilio).

    API URL

    The Twilio API URL.

    Account SID

    The Twilio account security identifier.

    Auth token

    The Twilio authorization token.

    Sender phone number

    The telephone number of the instant message sender to display.

    Logs

    Enables instant messaging logs.

    Authentication

    Mode

    Select the authentication mode used to log in to WorkflowGen:

    • IIS: Users are authenticated by IIS.

    • Windows: Authentication and user passwords are managed in Windows.

    • WorkflowGen: Authentication and user passwords are managed in WorkflowGen.

    Password management mode

    • Version 5 (Legacy) uses the same password management mode as earlier versions of WorkflowGen.

    • One-way Hashing (SHA256) stores hashed account passwords in the WorkflowGen database.

    • One-way Hashing (SHA256 FIPS compliant) stores hashed account passwords in the WorkflowGen database, compatible with Windows FIPS enabled mode.

    Maximum login attempts

    Sets the maximum number of user login attempts before the account is locked. Enter 0 for unlimited attempts.

    Minimum password length

    Sets the minimum length of user passwords.

    Remove domain name prefix from the username (required)

    You can specify a domain to remove from users' usernames when they log in to WorkflowGen. If this value is set to All, any domain name will be removed from the value.

    Security

    Configuration password management mode

    The password management mode for directories, applications, SMTP server, and the Remote Approval incoming mail server.

    • AES (FIPS Compliant) mode uses symmetric password encryption, compatible with Windows FIPS enabled mode.

    • Version 5 (Legacy) uses the legacy symmetric password management mode.

    Encryption key

    Password encryption key.

    Workflow engine service default identity (required)

    The Windows Service identity to use in order to run the WorkflowGen services.

    Working days and hours

    New user default time zone

    Sets what time zone is selected by default on the user’s home page on the Portal module. This is used when creating a new user account, whether manually or by directory synchronization. Since it is used only for account creation, it will not override the current user’s selected time zone.

    Weekdays off (optional)

    Specifies which weekdays are normally off. This is used by WorkflowGen to calculate process and action deadlines. 📌 Example: Selecting Saturday, Sunday will exclude these days from deadline calculations.

    Working hours begin (required)

    Specifies at which hour the workday begins (based on the current server time zone). This value is used by WorkflowGen to calculate the process and action deadlines. It will be converted to GMT for calculations. 📌 Example: 8 specifies that deadlines are to start being calculated at 8:00 a.m. every day.

    Working hours end (required)

    Specifies at which hour the workday ends (based on the current server time zone). This value is used by WorkflowGen to calculate the process and action deadlines. It will be converted to GMT for calculations. 📌 Example: 19 specifies that deadlines are to stop being calculated at 7:00 p.m. every day.

    Working hours time zone

    Specifies the time zone in which working hours begin and end.

    Days off country (required)

    Selects the country to be used to calculate the legal public holidays. This value is used by WorkflowGen to calculate the process and action deadlines, based on one of the DaysOff.*.resx files located in \wfgen\App_GlobalResources. These files can be updated and new ones can be created based on their regional settings. By default, it uses the DaysOff.en-US.resx resource file, which is based on the value of the EngineCountryDaysOff configuration setting in the WorkflowGen web.config file. 📌 Example: United States (English)

    Special days off (d/m separated by comma (,)) (optional)

    This value allows you to specify your custom days off. 📌 Example: 2/1, 11/1 specifies January 2nd and January 11th as holidays.

    Skin

    Defines the look and feel of the UI, including colors, margins, etc. The administrator can use the default skin or manually edit the CSS files to create a different look.

    Portal

    Display

    Application name (required)

    Customizes the WorkflowGen word that is displayed in the User Portal. 📌 Example: Acme Flow

    Application language

    Defines the Portal language. Selecting User preference allows the user to choose their language, but you can impose one by selecting it in the list, in which case the language selection option will be hidden in the Portal User settings panel.

    Display code names

    Uncheck this to display process and action descriptions instead of code names.

    Number of records per page displayed in lists (required)

    Number of records displayed in different lists of the User Portal. Default: 10

    Number of pages displayed in lists (required)

    Number of pages displayed in different lists of the User Portal. Default: 10

    Maximum number of records displayed in lists (required)

    Limits the number of records displayed in a search or statistics (data) result list. Default: 1000

    Maximum number of users in a list before filtering by name (required)

    You can specify the maximum limit before a filter appears in user lists. Default: 100

    Display new request in the home page

    Display mode of the New request link on the User Portal home page. You can choose between:

    • Display requests

    • Display requests grouped by category

    • Display categories and hide processes

    When a request is launched

    When a new request is launched, you can choose how WorkflowGen behaves from the following:

    • Display the request follow-up form

    • Start the first action

    • Display the follow-up form of the first action

    Request launching

    If this parameter is checked, the user has to confirm the launch of the new request.

    When clicking on an action to do

    • Display the follow-up form of the action

    • Launch the action

    When an action is completed

    • Display the follow-up form of the request

    • Display the follow-up form of the request or the next action

    • Display the follow-up form of the request (except if action to assign)

    • Display the follow-up form of the request (except if action to do)

    Action completion mode

    Specifies if the action completion treatment is processed in the background (threading). This option can sometimes improve the response time to the end user or prevent timeout issues, especially if there are large amounts of processing after a web form submission.

    Maximum number of records in home page list (required)

    Maximum number of records in lists on the User Portal home page before showing pages.

    Customized banner URL

    URL of the banner displayed at the top of the User Portal. 📌 Example: http://www.mycompany.com/welcome.htm

    Customized banner height (optional)

    Height of the banner (in pixels) displayed at the top of the User Portal. 📌 Example: 50

    Search redirection

    Specifies if the search result is redirected to the follow-up form when there is only one item found.

    Advanced view

    • Display the result as a customizable report by default

    • Enable Quick approval by default: Enables the Display Quick approval buttons option in the Search form by default.

    • Enable custom column editing for process managers and supervisors

    Link and email address formatting

    Displays URLs and email addresses as clickable links.

    Process grouping

    Specifies if the processes are grouped by category in the drop-down list box used to switch to the single process view.

    Default process data column size (required)

    Specifies the default width (in pixels) of the columns that display the associated data when the end-user UI is switched to the single-process view. Default: 150

    Quick View: Activate Quick View

    Allows you to enable or disable the Quick View functionality in the User Portal.

    Quick View data name

    Specifies the process data value to display within the Quick View dialog box. 📌 Example: FORM_ARCHIVE

    Display Quick View on mouse event

    You can choose between two different events to trigger the Quick View dialog box to open: Click (Default) or Hover.

    Common process data name list

    This parameter allows you to enter the same names and data types, which can then be used in a multi-process view.

    For example, if you have a process data called CUSTOMER (TEXT) that is used in most of your processes, you can define it as Portal common process data by entering it in the Common process data name list field.

    When entering multiple data types in this parameter, each data type must be separated by a comma.

    Calling card

    User calling cards are enabled by default. Uncheck this to disable calling cards.

    Request

    Delete ghost requests that are older than (required)

    Specifies the maximum number of days, hours, or minutes before deleting requests in progress that contain only one action that is not yet completed and assigned to the requester only. Defaults: 3 and days

    Maximum number of simultaneous instance creations per action (required)

    The maximum number of simultaneous launches of the same process action. This parameter allows you to avoid simple loops at runtime. 📌 Example: 100

    Request deletion

    When this is selected, managers and supervisors can delete requests even if the process status is set to Active.

    Associated data

    Uncheck this to hide data with empty values in the follow-up form.

    Request data lock timeout for concurrent applications (minutes) (required)

    Request data will be locked during the time period specified in order to avoid "competition" for access to the same data. 📌 Example: 5

    User notification

    Email notification

    • Activate email notification: This parameter allows you to enable or disable email notifications. This will affect all processes regardless of their status.

    • Notify the user when they are both the sender and recipient of the notification: If this parameter is enabled, email notifications are sent even if the sender and recipient email addresses are the same.

    • Notify the delegator: If this parameter is enabled, email notifications are sent to the delegator and all the delegates concerned. Otherwise, only to all the delegates.

    Default sender name (optional)

    Sets the default sender name for email notifications. If not set, the default sender email address will be displayed as the sender name.

    Default sender email (required)

    Sets the default email sender for email notifications. This is only used if a notification is sent by the system. 📌 Example: [email protected]

    Default reply-to email (required)

    Default email address for replies to email notifications.

    Maximum number of users to notify per notification (required)

    Maximum number of users to send email notifications to per notification. 📌 Example: 100

    Maximum attachment size (MB) (required)

    Maximum size of attachments to requests in megabytes.

    Notification default language

    If the user has no default or preferred language selected, this parameter is used to specify which language to use for the email notification texts.

    Link and email address formatting

    Displays URLs and email addresses as clickable links.

    Log level

    This sets the type of information stored in the notification log file.

    • 0 – Disabled: No log file will be created.

    • 1 – Errors only: The log file will display only information pertaining to errors.

    • 2 – All notifications: The log file will contain information pertaining to errors and notifications, such as the time stamp and the recipient’s email address.

    Delegation

    Activate user delegation

    If this parameter is checked, end-users can delegate their tasks to other WorkflowGen users. Otherwise, only administrators are able to manage the delegation rules from the Administration Module.

    Host application

    This is used to specify the URL of the host application. For example, in SharePoint, you can create a webpart to display and use the WorkflowGen User Portal or Administration Module in the same way as a stand-alone web browser. This way, a user can remain in the SharePoint portal and use WorkflowGen at the same time without having to work in separate windows.

    In this case, you have to specify the host URL in order for WorkflowGen to function properly inside the SharePoint webpart.

    CORS configuration is required to use the host application feature. See the section in the WorkflowGen Technical Guide for instructions on how to enable it.

    Security

    Throw an exception when a self service assignment error occurs

    This option will force WorkflowGen to throw an assignment exception error when a self service action is assigned to an invalid user. You should design your process to handle assignment exceptions, otherwise it will halt your workflow.

    Statistics

    Number of processes displayed in report (required)

    Number of processes displayed in statistic reports. 📌 Example: 10

    Number of users displayed in report (required)

    Number of users displayed in statistic reports. 📌 Example: 10

    Number of actors displayed in report (required)

    Number of actors displayed in statistic reports. 📌 Example: 10

    Number of requesters displayed in report (required)

    Number of requesters displayed in statistic reports. 📌 Example: 10

    Link and email address formatting

    Displays URLs and email addresses as clickable links.

    Export format

    You can choose between two different formats when exporting the results generated from a data statistics report. The available formats are:

    • CSV (comma-separated values): This format does not support Unicode characters. ✏️ Note: You can configure different separators for certain languages and/or cultures by modifying the CSVFieldDelimiter value in the language's \wfgen\App_GlobalResources\Advantys.Workflow.Web.UI.Portal.*.resx file.

    • Unicode text (tab separator): The values are separated by tab characters but the Unicode character range is supported.

    Comments

    Activate portal comments

    Enables or disables User Portal comments.

    Maximum number of comments displayed on the home page

    Sets the total number of comments that can be displayed on the home page.

    Auto-refresh frequency (required)

    Sets the follow-up form comments list auto-refresh rate in milliseconds. Use the value 0 to disable the auto-refresh feature. Default: 300000 (5 minutes)

    Window pop-up width (required)

    Sets the action runtime menu comments list window pop-up width size in pixels. Default: 380

    The following corresponding style widths must be updated separately in the Portal’s Cascading Style Sheet (\App_Themes\Default\portal\css\Default.css) when the pop-up width is changed:

    • div.CommentsViewOpenedRightAlign

    Window pop-up height (pixels) (required)

    Sets the action runtime menu comments list window pop-up height size in pixels. Default: 550

    The following corresponding style heights must be updated separately in the Portal’s Cascading Style Sheet (\App_Themes\Default\portal\css\Default.css) when the pop-up height is changed.

    • div.CommentsListBodyPopUp

    Default sort field

    Sets the default comment list sort by field. Default: date

    Default sort order

    Sets the default comment list sort order. Default: ascending

    Default display mode

    Expand the comments view displays the comment list the first time the follow-up form is displayed. Default: unchecked (hidden)

    Administration

    Display

    Application language

    Allows you to define the application language for the Administration Module. Selecting User preference allows users to choose their own language, but you can impose one by selecting a language from the list.

    Number of records displayed in lists (required)

    Number of records displayed in lists of the Administration Module. Default: 100

    Number of pages displayed in lists (required)

    Number of pages displayed in lists of the Administration Module. Default: 10

    Maximum number of users in a list before filtering by name (required)

    You can specify a maximum limit before a filter appears in the users’ lists. Default: 100

    Name encoding restriction (required)

    If Restrict name encoding to ANSI character set is checked, only ANSI characters are permitted in the "Name" fields. If this parameter is not checked, only special characters (', ", tab, space, %, /, \, *) are discarded.

    Workflow

    Associate actions with participants in swim lanes

    Enable this option to keep actions in their respective participants' swim lanes in the workflow designer.

    Default condition language

    Sets the default language for conditions: JavaScript or VBScript.

    Form

    Databind data providers

    The databind data providers, separated by commas (,).

    Maximum number of undo operations (required)

    Sets the maximum number of undo operations in the form designer. Default: 30

    User

    New user default language

    When a new user is created, the language selected here will be applied to their profile as their default language.

    Check deletion rules when displaying users, groups, and directories

    Enables the deletion rules check for users, groups, and directories. Disable this option to improve list and form response times.

    Security

    Restrict process managers from editing global participants

    Disables process managers’ permissions to modify a global participant’s information (either via the process participants or while importing a process) such as name, description, and user/group/directory associations.

    Even if this option is enabled, process managers cannot create new global participants.

    Directory synchronization

    General

    Synchronize only group members that are associated with a participant

    If this option is enabled, the directory synchronization will synchronize the group’s members only if the group is associated to at least one participant. This option is useful to reduce synchronization run time by skipping a group’s member synchronization when the group is not used in a participant.

    Maximum number of users to delete per synchronization cycle (required)

    Defines the maximum number of account deletions per synchronization run. This option is useful for batch account deletion in order to optimize synchronization performance. The default is 0 (unlimited).

    Logs

    Remove temporary files

    If Automatically delete old log files is selected, the temporary XML files created by WorkflowGen are removed once the synchronization is complete.

    Detailed report

    If Display Update entries in logs is selected, the synchronization logs each action performed on the directory data.

    Keep log files history for (days) (required)

    Number of days before deleting the log files. 📌 Example: 31

    Display warnings in logs

    If this is selected, warnings will be displayed in the log files.

    Automatic synchronization

    Week day for the weekly synchronization

    Day of the week to perform the automatic weekly synchronization. 📌 Example: Monday

    Month date for the monthly synchronization

    Date of the month to perform the automatic monthly synchronization. 📌 Example: 1 for the 1st of the month)

    Start synchronization at

    Hour of the day to perform the automatic monthly synchronization (in 24-hour format).

    Integration

    GraphQL

    Maximum page size

    Maximum page size for page number based pagination (default: 30; maximum: 100).

    Default page number

    Default page number for page number based pagination (default: 1).

    Default page size

    Default page size for page number based pagination (default: 30).

    GraphiQL

    Enable GraphiQL (default: disabled).

    Data caching

    Enable data caching.

    Debug mode

    Enable debug mode.

    Query timeout (ms)

    The query execution timeout in milliseconds.

    Operation timeout (ms)

    The operation execution timeout in milliseconds.

    Maximum operations per query

    The maximum number of operations per query.

    Maximum input file size (kB)

    The maximum file size to send in FILE type parameter URLs in kilobytes.

    Maximum input file content size (kB)

    The maximum content size of FILE type parameters encoded in base64 (only recommended for small files, e.g. under 1 MB).

    Input file allowed folders (comma separated values)

    The local or remote folders where files used by FILE type parameters are stored.

    When using file uploads, you don't need to add the original file folder to this setting.

    You can disallow input file allowed folders by leaving this field empty, or allow certain folders only by entering comma-separated values according to the table below:

    Input file allowed HTTP URLs

    You can disallow file uploads using HTTP and/or HTTPS URLs by leaving this field empty, or allow certain URLs only by entering comma-separated values according to the table below:

    Webhooks

    Debug mode

    Enable debug mode.

    Operation timeout (ms)

    The operation execution timeout in milliseconds.

    Maximum input file size (kB)

    The maximum file size limit for FILE type parameters.

    Maximum input file content size (kB)

    The maximum content size of FILE type parameters encoded in base64 (only recommended for small files, e.g. under 1 MB).

    Input file allowed folders (comma separated values)

    The local or remote folders where files used by FILE type parameters are stored.

    When using file uploads, you don't need to add the original file folder to this setting.

    You can disallow input file allowed folders by leaving this field empty, or allow certain folders only by entering comma-separated values according to the table below:

    Input file allowed HTTP URLs

    You can disallow file uploads using HTTP and/or HTTPS URLs by leaving this field empty, or allow certain URLs only by entering comma-separated values according to the table below:

    Security

    System operations allowed users (usernames separated by commas)

    Usernames (separated by commas) of users who have permissions to perform system or sensitive administration operations through the API, such as process management and deployment, participant management, user management, group management, raise exception, complete activity instance, or other regular API operations through impersonation.

    Applications

    DocuSign

    • These parameters must be associated to a DocuSign account and application.

    • It is necessary to have authorized your DocuSign application for use. To do this, go to the following address: <SERVER>/oauth/auth?response_type=code&scope=signature%20impersonation&client_id=<CLIENT_ID>&redirect_uri=<REDIRECT_URI>

    Client ID

    DocuSign user ID. Corresponds to your DocuSign application's Integration Key value.

    User GUID

    DocuSign user GUID. Corresponds to the API Username value in the DocuSign configuration panel.

    Authentication server

    DocuSign Auth server.

    DocuSign values:

    • account.docusign.com (production)

    • account-d.docusign.com (demo)

    Host server

    DocuSign host server.

    DocuSign values:

    • https://docusign.net (production)

    • https://demo.docusign.net (demo)

    RSA key

    DocuSign RSA key. Corresponds to your DocuSign application's Private Key.

    Log level for DOCUSIGNSEND

    Sets the amount and type of information stored in the DOCUSIGNSEND notification log file:

    • 0 – Disabled: None (no log file will be created)

    • 1 – Error messages: Exception error messages only

    • 2 – Information and error messages: Execution summary messages and exception error messages

    Log level for DOCUSIGNCHECK

    Sets the amount and type of information stored in the DOCUSIGNCHECK notification log file:

    • 0 – Disabled: None (no log file will be created)

    • 1 – Error messages: Exception error messages only

    • 2 – Information and error messages: Execution summary messages and exception error messages

    Adobe Sign

    These settings must be associated with an Adobe Sign account and application.

    Client ID

    Adobe Sign client ID. Corresponds to your Adobe Sign application's Client ID value.

    Client secret

    Adobe Sign client secret. Corresponds your Adobe Sign application's Client secret value.

    Host server

    Adobe Sign host server. In general, the URL is composed as follows: https://api.naX.adobesign.com, where X is the server identifier.

    Refresh token

    Your application's refresh token (see the section).

    Refresh URL

    Your application's refresh URL. The default value is /oauth/v2/token.

    ADOBESIGNSEND log level

    Sets the amount and type of information stored in the ADOBESIGNSEND notification log file:

    • 0 – Disabled: None (no log file will be created)

    • 1 – Error messages: Exception error messages only

    • 2 – Information and error messages: Execution summary messages and exception error messages

    ADOBESIGNCHECK log level

    Sets the amount and type of information stored in the ADOBESIGNCHECK notification log file:

    • 0 – Disabled: None (no log file will be created)

    • 1 – Error messages: Exception error messages only

    • 2 – Information and error messages: Execution summary messages and exception error messages

    Docaposte

    These parameters must be associated with a Docaposte - Contralia account.

    Username

    Your Docaposte - Contralia account username.

    Password

    Your Docaposte - Contralia account password.

    Host server

    Docaposte host server (e.g. https://test.contralia.fr:443).

    Offer code

    Offer code. Available in My account > API access.

    Organizational unit code

    Organizational unit code. Available in My account > API access.

    DOCAPOSTESEND log level

    Sets the amount and type of information stored in the DOCAPOSTESEND notification log file:

    • 0 – Disabled: None (no log file will be created)

    • 1 – Error messages: Exception error messages only

    • 2 – Information and error messages: Execution summary messages and exception error messages

    DOCAPOSTECHECK log level

    Sets the amount and type of information stored in the DOCAPOSTECHECK notification log file:

    • 0 – Disabled: None (no log file will be created)

    • 1 – Error messages: Exception error messages only

    • 2 – Information and error messages: Execution summary messages and exception error messages

    Remote Approval

    See the section for information on setting up Remote Approval, such as approval emails, actions, and questions.

    Remote Approval

    Activate

    Enable Remote Approval.

    Refresh interval (seconds) (required)

    Refresh interval for Remote Approval email (in seconds). Default: 180

    Quick mode

    Enables Quick mode, which lets the user reply to approval emails on one line, without any other formatting necessary (the user can still leave an optional comment on the second line). Default: disabled

    Subject line validation

    Enable this mode to use the action reference code in the subject line for validation. Default: disabled (recommended for greater security)

    Case sensitive answer

    Enable this to enforce case sensitivity on email answers. Default: disabled

    Log file trace level

    Sets the amount and type of information stored in the notification log file:

    • 0 – Disabled: None (no log file will be created)

    • 1 – General messages: Execution summary messages only

    • 2 – Error messages: Exception error messages only

    Log file life span (days)

    Sets the life span for temporary log files. Default: 1 day

    Incoming mail server

    Type

    Type of email server: POP, IMAP, Exchange 2007, Exchange 2010 and later (Exchange 2013, 2016, and 2019 are supported), or Exchange Online - Modern Authentication.

    Exchange Online - Modern Authentication is supported as of WorkflowGen version 7.22.5.

    This email server type supports authorization via the industry-standard OAuth 2.0 protocol for Exchange Online EWS servers.

    For the setup procedure, see the chapter in the guide.

    Server address (required)

    The address (or, if using Exchange 2007+, the name) of the server to receive emails. For Exchange Online, use outlook.office365.com or your own Exchange Online domain name.

    Port

    The port number for an IMAP or POP connection (not required for Exchange 2007+ or Exchange Online).

    Security

    Enables SSL (use SSL for Exchange 2007+). Default: SSL

    Default reply-to email (required)

    Email address for Remote Approval to send and receive approval emails. For Exchange Online, use the email address of the Remote Approval Office user.

    Username (required)

    The username used to log in to the POP, IMAP, or Exchange 2007+ server. For Exchange Online, use the username of the Remote Approval Office user.

    Password (required)

    Password used to log in to the POP, IMAP, or Exchange 2007+ server.

    Domain

    Domain name of the incoming Exchange 2007+ account.

    Application (client) ID (required for Exchange Online)

    Application (client) ID from the Azure Portal.

    Client secret (required for Exchange Online)

    A secret string that the application uses to prove its identity when requesting a token; can also be referred to as an application password.

    Scope (required for Exchange Online)

    Scope of the application, e.g. https://outlook.office365.com/.default&grant_type=client_credentials. Replace outlook.office365.com with your own Exchange Online domain name if needed.

    Access token URI (required for Exchange Online)

    Endpoint where the access token is provided, e.g. https://login.microsoftonline.com/{directory_tenant_ID}/oauth2/v2.0/token. Replace {directory_tenant_ID} with your own directory (tenant) ID from the Azure Portal.

    Diagnostic

    File size

    The total size refers to the combined size of all the files on the server. The average size refers to the average size of the files on the server. The maximum size refers to the largest file on the server.

    Stuck requests

    This refers to a request that is open, but with no follow-up action associated with it. It is an irregular request.

    Automatic actions in timeout

    Displays a list of actions that have timed out.

    Unexpected errors

    Displays a list of errors that are not timeout errors.

    Product information

    License information

    Version

    The current version of the WorkflowGen installation.

    Serial number

    The activation serial number of the WorkflowGen installation, and copyright information.

    Assembly versions

    The various library versions used by the WorkflowGen application.

    <?xml version="1.0" standalone="yes"?>
    <NewDataSet>
        <xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
            <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
                <xs:complexType>
                    <xs:choice minOccurs="0" maxOccurs="unbounded">
                        <xs:element name="Table1">
                            <xs:complexType>
                                <xs:sequence>
                                </xs:sequence>
                            </xs:complexType>
                        </xs:element>
                        <xs:element name="REQUEST_GRID">
                            <xs:complexType>
                                <xs:sequence>
                                    <xs:element name="REQUEST_GRID_LASTNAME" type="xs:string" minOccurs="0"/>
                                    <xs:element name="REQUEST_GRID_FIRSTNAME" type="xs:string" minOccurs="0"/>
                                    <xs:element name="REQUEST_GRID_USERNAME" type="xs:string" minOccurs="0"/>
                                </xs:sequence>
                            </xs:complexType>
                        </xs:element>
                    </xs:choice>
                </xs:complexType>
            </xs:element>
        </xs:schema>
        <Table1></Table1>
    </NewDataSet>

    UPDATE

  • DELETE

  • SCALAR

  • PROCEDURE

  • TEXT

    IN

    When set to CATCH, the application will not return errors to WorkflowGen. This allows an error message to be stored in the ERROR_MESSAGE parameter and to continue the execution. Default: THROW

    TIMEOUT

    NUMERIC

    IN

    Indicates the number of seconds to define in the command execution time Default: 30

    FORM_DATA

    FILE

    INOUT

    FORM_DATA file containing the XML process definition

    FORM_DATA_GRIDVIEW

    TEXT

    IN

    Identifier of the GridView to feed to the FORM_DATA

    RESULT_CSV_SEPARATOR

    TEXT

    IN

    Separator used in the return value or CSV file

    Default: , (comma)

    TEXT

    OUT

    Contains the query result in JSON format

    RESULT_JSON_FILE

    FILE

    OUT

    Contains the query result in JSON format stored in a .json file

    RESULT_XML

    TEXT

    OUT

    Contains the query result in XML format

    RESULT_XML_FILE

    FILE

    OUT

    Contains the query result in XML format stored in an .xml file

    RESULT_CSV

    TEXT

    OUT

    Contains the query result in CSV format

    Data are separated according to the separator defined in the RESULT_CSV_SEPARATOR parameter.

    RESULT_CSV_FILE

    FILE

    OUT

    Contains the query result in CSV format stored in a .csv file

    Data are separated according to the separator defined in the RESULT_CSV_SEPARATOR parameter.

    TEXT

    OUT

    { "TABLE":[ { "LASTNAME":"Administrator", "FIRSTNAME":"WorkflowGen", "USERNAME":"wfgen_admin" }, { "LASTNAME":"Doe", "FIRSTNAME":"John", "USERNAME":"john.doe" } ] }

    RESULT_JSON_FILE

    FILE

    OUT

    result.json

    RESULT_CSV

    TEXT

    OUT

    "LASTNAME","FIRSTNAME","USERNAME" "Administrator","WorkflowGen","wfgen_admin"

    "Doe","John","john.doe"

    RESULT_CSV_FILE

    FILE

    OUT

    result.csv

    RESULT_ROW_LASTNAME

    TEXT

    OUT

    Administrator

    RESULT_ROW1_FIRSTNAME

    TEXT

    OUT

    WorkflowGen

    RESULT_ROW2_USERNAME

    TEXT

    OUT

    john.doe

    FILE

    INOUT

    FORM_DATA

    FORM_DATA_GRIDVIEW

    TEXT

    IN

    REQUEST_GRID

    TEXT

    IN

    INSERT INTO WFCATEGORY (ID_CATEGORY,NAME,DESCRIPTION) VALUES (@IdCategory, @Name, @Description)

    QUERY_PARAM_IdCategory

    NUMERIC

    IN

    1

    QUERY_PARAM_Name

    TEXT

    IN

    CategoryName

    QUERY_PARAM_Description

    TEXT

    IN

    Description of the category

    TEXT

    IN

    INSERT INTO WFCATEGORY (ID_CATEGORY,NAME,DESCRIPTION) VALUES (@IdCategory, @Name, @Description)

    @IdCategory

    NUMERIC

    IN

    1

    @Name

    TEXT

    IN

    CategoryName

    @Description

    TEXT

    IN

    Description of the category

    TEXT

    IN

    UPDATE WFCATEGORY SET NAME = @Name WHERE ID_CATEGORY = @IdCategory

    QUERY_PARAM_IdCategory

    NUMERIC

    IN

    1

    QUERY_PARAM_Name

    TEXT

    IN

    NewCategoryName

    TEXT

    IN

    DELETE FROM WFCATEGORY WHERE ID_CATEGORY = @IdCategory

    QUERY_PARAM_IdCategory

    NUMERIC

    IN

    1

    TEXT

    IN

    INSERT_CATEGORY

    QUERY_PARAM_ID_CATEGORY

    NUMERIC

    IN

    1

    QUERY_PARAM_NAME

    TEXT

    IN

    CategoryName

    QUERY_PARAM_DESCRIPTION

    TEXT

    IN

    Description of the category

    TEXT

    IN

    EXEC GET_USER @USERNAME = @User

    QUERY_PARAM_User

    NUMERIC

    IN

    wfgen_admin

    TEXT

    IN

    SELECT COUNT(*) FROM USERS

    RESULT

    NUMERIC

    OUT

    2

    TEXT

    IN

    INSERT INTO WFCATEGORY (ID_CATEGORY,NAME,DESCRIPTION) VALUES (@IdCategory, @Name, @Description)

    CMD1_QUERY_PARAM_IdCategory

    NUMERIC

    IN

    1

    CMD1_QUERY_PARAM_Name

    TEXT

    IN

    CategoryName

    CMD1_QUERY_PARAM_Description

    TEXT

    IN

    Description of the category

    CMD2_QUERY

    TEXT

    IN

    SELECT NAME FROM WFCATEGORY WHERE ID_CATEGORY = @IdCategory

    CMD2_@IdCategory

    NUMERIC

    IN

    1

    CMD2_RESULT_ROW_NAME

    TEXT

    OUT

    CategoryName

    TEXT

    IN

    INSERT INTO WFCATEGORY (ID_CATEGORY,NAME,DESCRIPTION) VALUES (1, "Name", "Description")

    CMD1_TRANSACTION

    TEXT

    IN

    Y

    CMD1_ON_ERROR

    TEXT

    IN

    CATCH

    CMD1_COMMIT

    TEXT

    OUT

    Y

    CMD1_ERROR_MESSAGE

    TEXT

    OUT

    NULL

    CMD2_TYPE

    TEXT

    IN

    INSERT

    CMD2_QUERY

    TEXT

    IN

    INSERT INTO WFCATEGORY (ID_CATEGORY,NAME,DESCRIPTION) VALUES (1, "OtherName", "Other description")

    CMD2_TRANSACTION

    TEXT

    IN

    Y

    CMD2_ON_ERROR

    TEXT

    IN

    CATCH

    CMD2_COMMIT

    TEXT

    OUT

    N

    CMD2_ERROR_MESSAGE

    TEXT

    OUT

    Cannot insert duplicate key in object 'dbo.WFCATEGORY'. The duplicate key value is (1).

    Directory synchronization: Directory synchronization settings (e.g. logs, schedules)
  • Integration: Integration settings (e.g. GraphQL, webhooks)

  • Applications: Workflow application settings

  • Remote Approval: Remote Approval settings (e.g. log file trace level, mail server)

  • Diagnostic: File size usage and request-related errors

  • Product information: Product installation information page

  • Use SSL/TLS: Check to enable SSL/TLS

  • Username: The username used for the SMTP connection

  • Password: The password used for the SMTP connection

  • Connection timeout (seconds): The time in seconds allowed before server connection timeout (default: 3)

  • Pickup directory: Specify the path of the pickup folder. This option requires that you set up an SMTP gateway or external SMTP service to retrieve and send email notifications.

  • Custom:
    Authentication and user passwords are managed using your own custom .NET HTTP module.
  • Microsoft Identity Platform: OIDC-compliant Microsoft Identity Platform v2.0 authentication.

  • Azure v1: OIDC-compliant Microsoft Entra ID (formerly Azure AD) authentication.

  • Auth0: OIDC-compliant Auth0 authentication.

  • ADFS: OIDC-compliant Active Directory Federation Services 2016 authentication.

  • Okta: OIDC-compliant Okta authentication.

  • Gardian: OIDC-compliant Gardian authentication

  • Display the list of actions to do

  • Display the list of actions to do or the next action

  • Display the list of actions to do (except if action to assign)

  • Display the list of actions to do (except if action to do)

  • Display the homepage

  • Display the homepage or the next action

  • Display the homepage (except if action to assign)

  • Display the homepage (except if action to do)

  • Display the homepage and expand the actions to do

  • Display the homepage and expand the actions to do or the next action

  • Display the homepage and expand the actions to do (except if action to assign)

  • Display the homepage and expand the actions to do (except if action to do)

  • Display the homepage and expand my requests in progress

  • Enable custom column editing for standard users
  • Enable custom chart editing for process managers and supervisors

  • Enable custom chart editing for standard users

  • div.CommentsViewSubOpenedRightAlign

  • div.CommentsViewOpenedPopUpRightAlign

  • div.CommentsViewSubOpenedPopUpRightAlign

  • .CommentsListHeader .ListRow .CellOpenedRightAlign

  • .CommentsList .ListRow .ListCell .Comment .Row .CellHeader

  • .CommentsListInput .ListRow .ListCell .NewComment .Row .Cell .TextArea

  • div.CommentsListBodyPopUpHidden
  • div.CommentsListBodyPopUpReadOnly

  • div.CommentsListBodyPopUpReadOnlyHidden

  • Specific folder only

    HTTP from a specific folder only

    http://mydomain/folder*

    All files and folders whose names start with folder 📌 Examples:

    • http://mydomain/folderfile.jpg

    • http://mydomain/folder/file.jpg

    http://mydomain/folder/file.jpg

    Specific file only

    Specific folder only

    HTTP from a specific folder only

    http://mydomain/folder*

    All files and folders whose names start with folder 📌 Examples:

    • http://mydomain/folderfile.jpg

    • http://mydomain/folder/file.jpg

    http://mydomain/folder/file.jpg

    Specific file only

    <SERVER>: https://account.docusign.com (production) or https://account-d.docusign.com (demo)

  • <CLIENT_ID>: Corresponds to the value of your DocuSign application's Integration Key

  • <REDIRECT_URI>: Redirect address (e.g. https://docusign.com)

  • 3 – Full details for debugging:
    Execution summary messages and full detail exception messages
    3 – Full details for debugging:
    Execution summary messages and full detail exception messages
    3 – Full details for debugging:
    Execution summary messages and full detail exception messages
    3 – Full details for debugging:
    Execution summary messages and full detail exception messages
    3 – Full details for debugging:
    Execution summary messages and full detail exception messages
    3 – Full details for debugging:
    Execution summary messages and full detail exception messages
    3 – General and error messages:
    Execution summary messages and exception error messages
  • 4 – Full details for debugging (including Event Viewer): Execution summary messages and full detail exception messages (including Event Viewer information logs)

  • Value

    Description

    Empty

    No folders allowed

    *

    All folders allowed

    c:\*

    All folders on drive c:

    c:\Inetpub\*

    All subfolders in a specific folder

    c:\Inetpub\folder*

    All c:\Inetpub folders whose names start with folder 📌 Examples:

    • c:\Inetpub\folder1

    • c:\Inetpub\folder1\abc

    • c:\Inetpub\folder2

    Value

    Description

    Empty

    No HTTP or HTTPS URLs allowed

    *

    All HTTP and HTTPS URLs allowed

    https://*

    HTTPS URLs only

    http://*

    HTTP URLs only

    http://mydomain/*

    HTTP from a specific domain only

    Value

    Description

    Empty

    No folders allowed

    *

    All folders allowed

    c:\*

    All folders on drive c:

    c:\Inetpub\*

    All subfolders in a specific folder

    c:\Inetpub\folder*

    All c:\Inetpub folders whose names start with folder 📌 Examples:

    • c:\Inetpub\folder1

    • c:\Inetpub\folder1\abc

    • c:\Inetpub\folder2

    Value

    Description

    Empty

    No HTTP or HTTPS URLs allowed

    *

    All HTTP and HTTPS URLs allowed

    https://*

    HTTPS URLs only

    http://*

    HTTP URLs only

    http://mydomain/*

    HTTP from a specific domain only

    General
    Portal
    Administration
    SENDMESSAGE workflow application
    Cross-origin resource sharing (CORS)
    Obtaining the refresh token
    Remote Approval
    Exchange Online: Modern Authentication for Remote Approval
    WorkflowGen for Azure

    c:\Inetpub\folder2\abc\def

    http://mydomain/folder/*

    c:\Inetpub\folder2\abc\def

    http://mydomain/folder/*

    Data Source=DB_SERVER_1;Initial Catalog=WFGEN;User ID=WFGEN_USER;Password=admin123!;
    Data Source=DB_SERVER_2;Initial Catalog=WFGEN;User ID=WFGEN_USER;Password=admin123!;
    http://mydomain/folder2/file.jpg
    http://mydomain/folder2/file.jpg

    RESTAPICLIENT Workflow Application

    Overview

    The RESTAPICLIENT workflow application allows you to call REST API endpoints to exchange information with other applications through HTTP requests, and can be used to build integrations with extendable applications (such as Azure Services and Slack).

    It also allows you to call a REST API endpoint using application/json or application/x-www-form-urlencoded payloads. RESTAPICLIENT will then receive and process the response from the external API by mapping the response content with defined OUT parameters.

    How it works

    • The RESTAPICLIENT application requires the APP_URL parameter, which corresponds to the REST API endpoint.

    • The default request payload content type (APP_REQUEST_CONTENT_TYPE) is application/json. application/x-www-form-urlencoded is also supported.

    Required parameter

    Optional parameters

    General

    APP_URL optional parameters

    📌 Example

    The parameters defined above will generate the following URL in APP_URL:

    Header parameters

    📌 Example

    The parameters defined above will generate two headers in the request payload:

    Authorization parameters

    The application also supports some predefined authorization header parameters in order to avoid adding these HTTP header parameters with the APP_HEADER_xxx parameter name.

    • Only one authorization header can be defined, otherwise an exception is thrown.

    • APP_AUTH_BEARER_TOKEN is equivalent to defining the header parameter APP_HEADER_Authorization.

    Request payload

    There are two different ways to prepare the request payload. The first way is when you have access to the whole request payload (see below); the second way is by building the JSON or URL encoded payload via IN parameters (see and below).

    Set the whole request payload via a parameter

    The following parameters can be used when you have access to the whole request payload, or the request content type is neither application/json nor application/x-www-form-urlencoded. You can set this request payload in a file/text data or directly in the text value.

    • APP_REQUEST_CONTENT_FILE has priority over APP_REQUEST_CONTENT.

    • APP_REQUEST_CONTENT has priority over IN parameters used to build a JSON or an URL encoded payload.

    URL encoded request payload

    The following examples show how to build a request payload with application/x-www-form-urlencoded as content type.

    Standard URL encoded request payload

    The following parameters are used to build a standard URL encoded request payload:

    The parameters defined above will generate the following request payload:

    JSON request payload encoded into a key name

    The following parameters are used to build a JSON payload encoded into a key name:

    The parameters defined above will generate the following request payload:

    The APP_REQUEST_CONTENT_PAYLOAD_NAME parameter is only supported with the application/x-www-form-urlencoded request content type.

    JSON request payload

    The following examples show how to build a request payload with application/json as content type.

    Standard JSON request payload

    The following parameters are used to build a simple JSON request payload:

    The parameters defined above will generate the following request payload:

    If you want to convert this JSON into an array, you have to set the APP_REQUEST_CONTENT_IS_ARRAY parameter value to Y.

    Setting the APP_REQUEST_CONTENT_IS_ARRAY parameter to Y will generate the following request payload:

    To see how to build more complex JSON, see and sections below.

    Setting a JSON array into a JSON property

    To set an array into a JSON property, you have to define the property path (e.g. person.spokenlanguages) followed by the __X suffix, where X is the array index number.

    The following parameters are used to set a JSON array into a JSON property:

    The parameters defined above will generate the following request payload:

    If you want to set a JSON array of JSON objects (e.g. "spokenlanguages": [{"spokenlanguage":"french"}, {"spokenlanguage":"english"}]) into a JSON property, see the next section.

    • The array parameters will be ordered depending on their index number.

    • Index numbers have no limit (e.g. person.spokenlanguages__9999).

    Setting a JSON object/array into a JSON property using the __JSON suffix parameter

    To set a JSON object/array into a JSON property, you have to define the property path (e.g. person.children) followed by the __JSON suffix with the JSON object/array as the parameter value.

    The following parameters are used to set a JSON object/array into a JSON property:

    The parameters defined above will generate the following request payload:

    • An exception will be thrown if there is more than one JSON property specified in the IN parameters. (e.g. person.children and person.children__JSON).

    • The __JSON suffix uses

    Response payload

    The application supports OUT parameters to be mapped with the HTTP response:

    Mapping a JSON response payload with OUT parameters

    The application also supports additional custom OUT parameters to map simple JSON response payloads.

    📌 Example

    JSON response payload:

    The following parameters allow you to map the response payload into different process data:

    For mapping complex JSON, see the next section.

    Mapping a JSON response payload with OUT parameters using JSONPath query language

    The application supports the JSONPath query language (similar to XPath expressions in XML). This language allows you to retrieve specific data from a JSON. For more details regarding the JSONPath syntax, see .

    📌 Example

    JSON response payload:

    For example, here we want to get the names of Charles's grandchildren who are older than seven years old, and we also want these names separated by a | (using the APP_JSONPATH_DELIMITER IN parameter). At the same time, we are also getting Elizabeth's age and date of birth. To get the information, the following parameters must be defined:

    • In the PARAM1__JSONPATH parameter name, the PARAM1 name is not relevant, but it must be followed by the __JSONPATH suffix (two underscores are used in the suffix).

    Usage example with Azure REST API to obtain an OAuth 2.0 access token and then create an Event Grid topic

    This example shows how to obtain an access token and use it to create an Event Grid topic. This can be done by creating a process with two actions having RESTAPICLIENT as application. The workflow below illustrates this example:

    The next sections describe the parameters that must be declared for each action.

    GET_TOKEN action: Obtaining an OAuth 2.0 access token

    The following parameters are needed to get an access token to use the Azure Resource management API. This token will be stored in the access_token OUT parameter and will be used when creating an Event Grid topic in the next section.

    The parameters defined above will generate the following request payload:

    Here's the response from the Azure API:

    The access_token OUT parameter is mapped with the access_token JSON property.

    For more details about how to get an access token to use the Azure Resource API, see .

    CREATE_TOPIC action: Creating an Event Grid topic

    The following parameters are needed to create an Event Grid topic using the Azure Resource management API.

    The parameters defined above will generate the following request payload:

    Here's the response from the Azure API:

    For more information about how to create an Event Grid topic and the Azure REST API, see .

    Enabling SSL/TLS

    In case of a Could not create SSL/TLS secure channel error, strong encryption must be enabled by executing the following code in PowerShell:

    Restart your IIS server after executing the commands.

    The default HTTP request method (APP_METHOD) is GET. Other request methods (POST, PUT, DELETE, etc.) are also supported.
  • In case of error, when the APP_RESPONSE_IGNORE_ERROR IN parameter is defined and has Y as its value, the error will be ignored and defined OUT parameters (APP_RESPONSE_STATUS or APP_RESPONSE_CONTENT) will be mapped. Otherwise, an exception will be thrown.

  • Since the application parameters are case sensitive, parameters must use the API’s accepted notation.

  • The default request timeout is 30,000 milliseconds (30 seconds); this default value can be modified by setting the RestApiClientRequestTimeout parameter value in the web.config file. The request timeout can also be defined in the APP_TIMEOUT IN parameter; the maximum timeout is 3,600,000 milliseconds (1 hour).

    ✏️ Note: This timeout value must be less than the IIS request timeout value.

  • The HTTP request headers can be defined with the APP_HEADER_xxx parameters, where xxx is the header field name. For more information, see the Header parameters section.

  • The request payload can be defined in the APP_REQUEST_CONTENT_FILE or APP_REQUEST_CONTENT IN parameters. When both parameters are defined, the APP_REQUEST_CONTENT_FILE parameter has priority. For more information on these parameters, see the Request payload section.

  • The response from the REST API can be mapped to the APP_RESPONSE_CONTENT_FILE or APP_RESPONSE_CONTENT OUT parameters. Both parameters can be defined at the same time. For more information on these parameters, see the Response payload section.

  • Besides the optional parameters listed below, you can also add additional custom IN and OUT parameters to send and receive custom user-defined data to and from the external API. For more information on and examples of these custom IN and OUT parameters, see the Request payload and Response payload sections.

  • The application supports the JSONPath query language (see https://github.com/json-path/JsonPath), which allows extraction of specific data from a JSON response (similar to XPath expressions in XML). For information on how to use this with the application along with examples, see the Response payload section.

  • Application logs are available and can be specified by setting the RestApiClientLogLevel parameter value in the web.config file to 0 to disable logging (default), 2 for simple logs, or 3 for debug logs.

  • The default maximum response length is 4194304 characters (4 MB); this default value can be modified by setting the RestApiClientMaxResponseLength parameter value in the web.config file.

  • Automatic deletion of temporary files can be disabled by setting the RestApiClientEnableFilesCleanUp parameter value to N in the web.config file; the default value is Y.

  • IN

    Request content type supported by the external API

    The application supports application/json and application/x-www-form-urlencoded); the default is application/json.

    APP_RESPONSE_IGNORE_ERROR

    Text

    IN

    When set to Y, the application will ignore the error when a WebException occurs or the external API returns a response status equal to or greater than 300; the default is N.

    IN

    dev-group-advantys

    APP_URL_topicName

    Text

    IN

    dev-topic

    IN

    API authorization Bearer token

    APP_AUTH_AZ_SAS_TOKEN

    Text

    IN

    API authorization Azure SAS token

    IN

    payload

    IN

    30

    person.name

    Text

    IN

    John

    IN

    chinese

    A correct index sequence is not mandatory (e.g. person.spokenlanguages__90, person.spokenlanguages__30). The __30 parameter value will be the first array parameter, and __90 the second one.
  • An exception will be thrown if there is more than one JSON property specified in the IN parameters (e.g. person.spokenlanguages and person.spokenlanguages__0).

  • The __X suffix uses two underscore characters.

  • The parameter value can only be a text value.

  • two
    underscore characters.

    OUT

    Response payload or error message in a file

    APP_RESPONSE_CONTENT

    Text

    OUT

    Response payload or error message

    APP_RESPONSE_CONTENT_IS_ARRAY

    Text

    OUT

    Returns Y if the JSON payload is an array

    Only supported for application/json content type responses.

    OUT

    DATA_AGE

    person.name

    Text

    OUT

    DATA_NAME

    AGE__JSONPATH

    Text

    IN

    $.person.age

    AGE

    Numeric

    OUT

    data AGE_VALUE (value will be: 85)

    DOB__JSONPATH

    Text

    IN

    $.person.dob

    DOB

    DateTime

    OUT

    data DOB_VALUE (value will be: 1937-09-23T00:00:00Z)

    To retrieve a value into a Text process data, you can use a single INOUT Text parameter (e.g. PARAM1__JSONPATH parameter as in the example above).
  • To retrieve a value into a Numeric or DateTime process data, you must use separate parameters: an IN Text parameter for the JSONPath query and an OUT parameter that maps to the Numeric or DateTime process data. Both parameters must share the same name prefix (e.g. AGE__JSONPATH and AGE parameters as in the example above).

  • The default value of APP_JSONPATH_DELIMITER is a comma (,) when this parameter is not defined.

  • IN

    POST

    APP_REQUEST_CONTENT_TYPE

    Text

    IN

    application/x-www-form-urlencoded

    grant_type

    Text

    IN

    client_credentials

    client_id

    Text

    IN

    b7e29e2f-6e2b-4375-9684-8151431d4ca6

    client_secret

    Text

    IN

    lxy/IwKyTedHUWMeeUtyCtu7/YUy0rNGoY3NNWXXotI=

    resource

    Text

    IN

    https://management.core.windows.net/

    access_token

    Text

    OUT

    DATA_ACCESS_TOKEN

    IN

    dev-group-advantys

    APP_URL_topicName

    Text

    IN

    new-topic-example

    APP_URL_api-version

    Text

    IN

    2018-09-15-preview

    APP_METHOD

    Text

    IN

    PUT

    APP_REQUEST_CONTENT_TYPE

    Text

    IN

    application/json

    APP_AUTH_BEARER_TOKEN

    Text

    IN

    DATA_ACCESS_TOKEN

    location

    Text

    IN

    canadaeast

    Parameter

    Type

    Direction

    Description

    APP_URL

    Text

    IN

    External API URL

    Parameter

    Type

    Direction

    Description

    APP_TIMEOUT

    Numeric

    IN

    Maximum time interval between sending the request and receiving the response

    The default is 30,000 milliseconds (30 seconds) and the maximum is 3,600,000 milliseconds (1 hour); the default can be modified by setting the RestApiClientRequestTimeout parameter value in the web.config file.

    ✏️ Note: This timeout value must be less than the IIS request timeout value.

    APP_METHOD

    Text

    IN

    API method

    The default is GET. Supports POST, PUT, DELETE, HEAD, PATCH

    APP_REQUEST_CONTENT_TYPE

    Parameter

    Type

    Direction

    Description

    APP_URL_xxx

    Text

    IN

    API URL optional parameter where xxx is the URL parameter name

    It must be defined in the APP_URL parameter value between brackets (e.g. APP_URL_subscriptionId for the URL https://management.azure.com/subscriptions/{subscriptionId})

    Parameter

    Type

    Direction

    Value

    APP_URL

    Text

    IN

    https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}

    APP_URL_subscriptionId

    Text

    IN

    457a2a46-7a7f-4afa-940d-8779e1425fa8

    APP_URL_resourceGroupName

    Parameter

    Type

    Direction

    Description

    APP_HEADER_xxx

    Text

    IN

    External API header parameters where xxx is the header field name

    Parameter

    Type

    Direction

    Value

    APP_HEADER_Authorization

    Text

    IN

    Bearer AbCdEf123456

    APP_HEADER_location

    Text

    IN

    canadaeast

    Parameter

    Type

    Direction

    Description

    APP_AUTH_BASIC_USERNAME

    Text

    IN

    API authorization Basic username

    APP_AUTH_BASIC_PASSWORD

    Text

    IN

    API authorization Basic password; must be used with APP_AUTH_BASIC_USERNAME parameter

    APP_AUTH_BEARER_TOKEN

    Parameter

    Type

    Direction

    Description

    APP_REQUEST_CONTENT_FILE

    File

    IN

    Request payload in a file

    APP_REQUEST_CONTENT

    Text

    IN

    Request payload

    Parameter

    Type

    Direction

    Description

    param1

    Text

    IN

    value1

    param2

    Text

    IN

    value2

    Parameter

    Type

    Direction

    Description

    param1

    Text

    IN

    value1

    param2

    Text

    IN

    value2

    APP_REQUEST_CONTENT_PAYLOAD_NAME

    Parameter

    Type

    Direction

    Value

    person.address.street

    Text

    IN

    160 Guy Street

    person.address.zipcode

    Text

    IN

    J4G 1U4

    person.age

    Parameter

    Type

    Direction

    Description

    APP_REQUEST_CONTENT_IS_ARRAY

    Text

    IN

    When set to Y, the application will convert the JSON request payload into an array; the default is N

    Only supported when building JSON request payload with IN parameters.

    Parameter

    Type

    Direction

    Value

    person.spokenlanguages__0

    Text

    IN

    french

    person.spokenlanguages__1

    Text

    IN

    english

    person.spokenlanguages__2

    Parameter

    Type

    Direction

    Value

    person.children__JSON

    Text

    IN

    [{"name": "child 1"}, {"name": "child 2"}]

    Parameter

    Type

    Direction

    Description

    APP_RESPONSE_STATUS

    Text/Numeric

    OUT

    Response status code

    APP_RESPONSE_CONTENT_TYPE

    Text

    OUT

    Response content type

    APP_RESPONSE_CONTENT_FILE

    Parameter

    Type

    Direction

    Retrieve the value into a data

    person.address.street

    Text

    OUT

    DATA_STREET

    person.address.zipcode

    Text

    OUT

    DATA_ZIPCODE

    person.age

    Parameter

    Type

    Direction

    IN Value

    OUT Value

    APP_JSONPATH_DELIMITER

    Text

    IN

    |

    PARAM1__JSONPATH

    Text

    INOUT

    person.children[?(@.name == 'Charles')].children[*].children[?(@.age > 7)].name

    Parameter

    Type

    Direction

    Value

    APP_URL

    Text

    IN

    https://login.microsoftonline.com/{tenandId}/oauth2/token

    APP_URL_tenantId

    Text

    IN

    a6e70c61-fabd-4885-89f7-97121e92db7f

    APP_METHOD

    Parameter

    Type

    Direction

    Value

    APP_URL

    Text

    IN

    https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.EventGrid/topics/{topicName}?api-version={api-version}

    APP_URL_subscriptionId

    Text

    IN

    235765d9-5d62-43f4-a730-2ed71a3f8adb

    APP_URL_resourceGroupName

    Set the whole request payload via a parameter
    URL encoded request payload
    JSON request payload
    Setting a JSON array into a JSON property
    Setting a JSON object/array into a JSON property using the __JSON suffix parameter
    https://github.com/json-path/JsonPath
    https://docs.microsoft.com/en-us/azure/active-directory/develop/v1-oauth2-client-creds-grant-flow#request-an-access-token
    https://docs.microsoft.com/en-us/rest/api/eventgrid/topics/createorupdate

    Text

    Text

    Text

    Text

    Text

    Text

    File

    Text

    data DATA1_VALUE (value will be: George|Charlotte)

    Text

    Text

    https://management.azure.com/subscriptions/457a2a46-7a7f-4afa-940d-8779e1425fa8/resourceGroups/dev-group-advantys/providers/Microsoft.EventGrid/topics/dev-topic
    Authorization: Bearer AbCdEf123456
    location: canadaeast
    param1=value1&param2=value2
    payload: { param1: "value1", "param2": "value2" }
    {
        "person": {
            "address": {
                "street": "160 Guy Street",
                "zipcode": "J4G 1U4"
            },
            "age": 30,
            "name": "John"
        }
    }
    [{
        "person": {
            "address": {
                "street": "160 Guy Street",
                "zipcode": "J4G 1U4"
            },
            "age": 30,
            "name": "John"
        }
    }]
    {
        "person": {
            "spokenlanguages": ["french", "english", "chinese"]
        }
    }
    {
        "person": {
            "children": [{
                "name": "child 1"
            }, {
                "name": "child 2"
            }]
        }
    }
    {
        "person": {
            "address": {
                "street": "160 Guy Street",
                "zipcode": "J4G 1U4"
            },
            "age": 30,
            "name": "John"
        }
    }
    {
        "person": {
          "name": "Elizabeth",
          "age": 85,
          "dob": "1937-09-23T00:00:00Z",
          "children": [
            {
              "name": "Charles",
              "age": 60,
              "children": [
                {
                  "name": "Nathalie",
                  "children": [
                    {
                      "name": "George",
                      "age": 8
                    },
                    {
                      "name": "Charlotte",
                      "age": 10
                    },
                    {
                      "name": "Jefferson",
                      "age": 7
                    }
                  ]
                },
                {
                  "name": "Harry"
                }
              ]
            },
            {
              "name": "Bob",
              "age": 57,
              "children": [
                {
                  "name": "John"
                },
                {
                  "name": "Mark"
                }
              ]
            }
          ]
        }
    }
    POST https://login.microsoftonline.com/a6e70c61-fabd-4885-89f7-97121e92db7f/oauth2/token HTTP/1.1
    Host: login.microsoftonline.com
    Content-Type: application/x-www-form-urlencoded
    
    grant_type=client_credentials&client_id=b7e29e2f-6e2b-4375-9684-8151431d4ca6&client_secret=lxy/IwKyTedHUWMeeUtyCtu7/YUy0rNGoY3NNWXXotI=&resource=https://management.core.windows.net/
    {  
       "token_type":"Bearer",
       "expires_in":"3600",
       "ext_expires_in":"3600",
       "expires_on":"1555951493",
       "not_before":"1555947593",
       "resource":"https://management.core.windows.net/",
       "access_token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1d..."
    }
    PUT https://management.azure.com/subscriptions/235765d9-5d62-43f4-a730-2ed71a3f8adb/resourceGroups/dev-group-advantys/providers/Microsoft.EventGrid/topics/new-topic-example?api-version=2018-09-15-preview
    Host: management.azure.com
    Content-Type: application/json
    Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1d...
    location: canadaeast
    {  
       "properties":{  
          "provisioningState":"Creating",
          "endpoint":null
       },
       "location":"canadaeast",
       "tags":null,
       "id":"/subscriptions/994e2fc0-937d-4110-b355-e7473acef822/resourceGroups/dev-evt-grid/providers/Microsoft.EventGrid/topics/test-from-wfg",
       "name":"test-from-wfg",
       "type":"Microsoft.EventGrid/topics"
    }
    Set-ItemProperty -Path 'HKLM:\SOFTWARE\Wow6432Node\Microsoft\.NetFramework\v4.0.30319' -Name 'SchUseStrongCrypto' -Value '1' -Type DWord
    
    Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\.NetFramework\v4.0.30319' -Name 'SchUseStrongCrypto' -Value '1' -Type DWo

    Structure, Sections & Fields

    Structure

    Header

    • The header contains a title, a label, and an optional image.

    • The title can be used to display the process name. Its text can be edited directly in the form.

    • The label is used to display the current request number. Its default identifier is CURRENT_REQUEST and can be referenced in an action parameter to receive the Request.Id macro.

    • The image is used to display a logo. It can be resized or realigned.

    • A fixed width and height can be set for the header in the form configuration window.

    Section

    • The section has a title to display the section name. Its text can be edited directly on the form.

    • It can have one or several fields.

    • Each section must have a unique identifier.

    • Sections can only be aligned vertically and reordered using the mouse drag-and-drop action.

    See for the different types of default section.

    Field

    • The field has a label and an input control.

    • The label is used to display the name of the field. Its text can be edited directly on the form. It can be resized and realigned.

    • A fixed width can be set for all labels (General / Labels).

    • The input control is where a value is captured in the form. It can be resized and realigned.

    See for the different types of default field.

    Button

    • The Submit and Save as draft buttons can be renamed in the form configuration window (General / Buttons) or in the Appearance Editor (see ).

    • The Save as draft button can be enabled or disabled as well.

    • Their identifiers are submitButton and saveAsDraftButton

    Footer

    • The footer contains a title and an optional image.

    • The title can be used to display a note. Its text can be edited directly on the form.

    • The image is used to display a logo. It can be resized or realigned in the form configuration window (General / Footer) or in the Appearance Editor (see ).

    You can also change the web form style sheet and other attributes (header image, footer, text, etc.) at runtime by adding the following .NET code to your form:

    This replaces:

    • The current style sheet with the metal.css template

    You should define the width and height of the images in the form configuration in the .NET code.

    📌 Example:

    An absolute URL is recommended because the generated form archive (HTML) could be opened in the email notification.

    Sections & fields

    Tools

    Default and custom tools are available in the Tools drop-down list.

    Save a section or field as tool

    This feature allows a form designer to save an existing section or field in the current form as a custom tool template in order to be reused in other forms. First, select a section or field then click the Save a section or field as tool icon on the toolbar (see ).

    Manage custom tools

    To open this window, click the Tools drop-down menu and select Manage custom tools, which allows you to delete custom tools.

    Section settings

    File attachment field settings

    CheckBox/RadioButton field settings

    These settings apply to CheckBoxList, CheckBoxListVertical, RadioButtonList, and RadioButtonListVertical fields as well.

    TextBox field settings

    These settings apply to Currency, Date, DateTime, Numeric, Password, and TextArea fields.

    ListBox/DropDownListBox field settings

    These settings (except Items) apply to Label, ReadOnlyCurrency, ReadOnlyDate, ReadOnlyDateTime, ReadOnlyNumeric, and ReadOnlyText fields as well.

    GridView field settings

    ASP.NET user control field tool

    The Form Designer supports a custom field tool that is an ASP.NET user control. You can create this tool and manually deploy it on the server. It must have the following elements, folder and file structures:

    User control field template: \wfgen\App_Data\Templates\Forms\[language]\[folder name]\fields\[user control name].txt

    User control sources:

    • ASCX: \wfgen\WfApps\WebForms\[user control name].ascx

    • Code-behind: \wfgen\WfApps\WebForms\[user control name].ascx.cs

    When you enter a tag, the user control field automatically inserts its closing tag. To collapse a code block, click the down arrow next to the line number, which will insert a double-arrow icon in place of the code. To expand the code block, click the right arrow. Press Ctrl+Space to show a drop-down menu that displays the available variables and keywords.

    The user control field supports the Custom attributes settings (see ).

    ID editing

    The ID menu in the toolbar will activate the field’s identifier edit mode. You can change the identifier of the header label, sections and fields. Identifiers are normally used to identify a form element such as a section or a field in WorkflowGen’s action parameters (e.g. FORM_FIELDS_REQUIRED) or in the form’s ASP.NET code-behind.

    Rules

    • Each identifier must be unique.

    • It must start with a letter.

    • It can only contain alphanumeric and underscore characters.

    • It is case sensitive.

    A tooltip with the full/real identifier of the element will be displayed when you mouseover the identifier input field.

    Tooltip editing

    The Tooltip menu in the toolbar will activate the field’s tooltip edit mode. You can change the tooltip for the form fields only. Tooltips are normally used to display more information about the field when the user moves the mouse pointer over it.

    Format editing

    The Format menu in the toolbar will activate the field’s format edit mode. You can change the format of TextBox, Currency, Date, DateTime, Numeric, Label, ReadOnlyCurrency, ReadOnlyDate, ReadOnlyDateTime, ReadOnlyNumeric and ReadOnlyText fields. Formats are normally used to specify the way to capture and display a specific type of value based on the user’s language and culture.

    When inserting a section tool into the form, the new section will be placed in the last position.

  • Section width will be resized automatically based on the widest field in the form whenever there is a field width change.

  • A fixed width can be set for all sections.

  • The section’s settings can be edited by clicking the pencil icon on the right side of the section name.

  • Each field must have a unique identifier.

  • Fields within the same section are prefixed with the section’s identifier following an underscore character.

  • Fields within a section can be reordered vertically using the mouse drag-and-drop action.

  • A field can be moved from one section to another section using the mouse drag-and-drop action.

  • When inserting a field tool into the form, the new field will be placed in the last position of the selected section or the first section if no section is selected.

  • By default, fields are aligned vertically on the same column.

  • Two fields can be aligned horizontally on the same row using the Remove line break button (left arrow) on the right side of the first field.

  • Two fields can be aligned vertically on the same column using the Line break button (right arrow) on the right side of the first field.

  • The field’s settings can be edited edited by clicking the pencil icon on the right side of the field.

  • , respectively.
    A fixed width and height can be set for the footer.

    The header title label

  • The header image

  • The footer title label

  • The footer image

  • A section that has no fields

    Request

    A section that contains first name, last name, and date fields in read-only, plus a category drop-down list, subject textbox, and description multiline textbox

    Standard

    A section that contains first name, last name, and date fields in read-only

    Default fields

    Attachment

    Attach one file

    CheckBox

    Single checkbox

    CheckBoxList

    Multiple checkboxes in horizontal alignment

    CheckBoxListVertical

    Multiple checkboxes in vertical alignment

    Currency

    Input for currency value

    Date

    Input for date value

    DateTime

    Input for date time value

    DropDownListBox

    List of items for a single choice selection

    GridView

    Dynamic table of multiple input fields; each column represents a field and each row represents a record

    Label

    Text displayed in read-only

    ListBox

    List of items for a multiple choice selection

    Numeric

    Input for numeric value

    Password

    Input for password value (the entered text will be masked)

    RadioButton

    Single radio button

    RadioButtonList

    Multiple radio buttons in horizontal alignment

    RadioButtonListVertical

    Multiple radio buttons in vertical alignment

    ReadOnlyCurrency

    Read-only currency value

    ReadOnlyDate

    Read-only date value

    ReadOnlyDateTime

    Read-only date time value

    ReadOnlyNumeric

    Read-only numeric value

    ReadOnlyText

    Read-only text value

    TextArea

    Multiline textbox

    TextBox

    Single line textbox

    Delete the current custom field tool

    The section fields are required based on a custom condition. If the condition is empty then it will be true. The custom condition must be server-side C# syntax code.

    📌 Example: MyTextBox.Text == "Hello World"

    Read-only

    Sets the section’s fields to read-only

    Condition

    The section fields are read-only based on a custom condition. If the condition is empty then it will be true. The custom condition must be server-side C# syntax code.

    📌 Example: MyTextBox.Text == "Hello World"

    Hidden

    Sets the section fields to be hidden

    Condition

    The section fields are hidden based on a custom condition. If the condition is empty then it will be true. The custom condition must be server-side C# syntax code.

    📌 Example: MyTextBox.Text == "Hello World"

    Displays the size of the uploaded file beside the download link

    Upload file automatically

    Automatically uploads the file, otherwise an upload button will be displayed

    Control style

    Display the Modify and Delete controls as links or buttons

    Image/PDF preview

    Display an image or PDF preview (thumbnail)

    Position

    Display the image preview above (Top) or below (Bottom) the attachment filename and controls

    Width / Height

    Sets the width and/or height of the image preview in pixels

    ⚠️ Important: You should only set one of these values in order to preserve the aspect ratio of the original image as displayed in the preview; otherwise, the image will appear distorted.

    Storage in form archive

    • Web address (URL): Stores the image in the form folder

    • Embedded image: Embeds the image in the form archive HTML

    File size limit (kB)

    Defines the maximum size of the uploaded file in kilobytes

    Size restriction error message

    Write error that will appear if file exceeds the file size limit

    Allowed extensions

    Restricts the allowed file types by extension, separated by commas (e.g. txt,doc,html,xml,png)

    Forbidden extensions

    List of file extensions not allowed for links

    Extension restriction error message

    Write error message that will be displayed when file extension error occurs

    Empty file error message

    Write error message that will display when there is no file to link to

    Add button label

    Display text for the add button

    Update button label

    Display text for update button

    Delete button label

    Display text for delete button

    Overwrite button label

    Allows you to choose a new file

    Cancel button label

    Allows you to cancel request for a new file

    Display mode

    Sets the default display mode:

    • Display: the field is read-only

    • Edit: the field can be edited

    Download link

    Check to display a link to download the uploaded file

    Validation

    Behavior

    ✏️ Note: To simplify the capture of a condition, the form fields and operators are listed in the Select a field... and Select an operator... drop-down menus. You can also press Ctrl+Spaceto display a drop-down menu that lists the available variables and keywords.

    Required

    Sets the field to be required

    Condition

    The field is required based on a custom condition. If the condition is empty then it will be true. The custom condition must be server-side C# syntax code. To help with the capture of the condition, the list of form fields and a list of operators are displayed.

    📌 Example: MyTextBox.Text == "Hello World"

    Read-only

    Sets the field to be read-only

    Condition

    The field is read-only based on a custom condition. If the condition is empty then it will be true. The custom condition must be server-side C# syntax code. To help with the capture of the condition, the list of form fields and a list of operators are displayed.

    📌 Example: MyTextBox.Text == "Hello World"

    Hidden

    Sets the field to be hidden

    Condition

    The field is hidden based on a custom condition. If the condition is empty then it will be true. The custom condition must be server-side C# syntax code. To help with the capture of the condition, the list of form fields and a list of operators are displayed.

    📌 Example: MyTextBox.Text == "Hello World"

    Custom attributes

    Name

    Any name that is not in the list of standard reserved attribute names (id, name, class, style, title, multiple, type, value, checked, runat)

    Additional reserved attribute names specific to File attachment / General:

    Value

    Any value

    Add a new attribute

    Remove the current attribute

    Value of the checkbox/radio button

    Text

    Display text of the checkbox/radio button

    Add a new checkbox/radio button

    Delete the current checkbox/radio button

    Validation

    Behavior

    ✏️ Note: To simplify the capture of a condition, the form fields and operators are listed in the Select a field… and Select an operator... drop-down menus. You can also press Ctrl+Spaceto display a drop-down menu that lists the available variables and keywords.

    Required

    Sets the field to be required

    Condition

    The field is required based on a custom condition. If the condition is empty then it will be true. The custom condition must be server-side C# syntax code. 📌 Example: MyTextBox.Text == "Hello World"

    ✏️ Note: The checkbox fields (list or single) and single radio button are not supported by this behavior.

    Read-only

    Sets the field to be read-only

    Condition

    The field is required based on a custom condition. If the condition is empty then it will be true. The custom condition must be server-side C# syntax code. 📌 Example: MyTextBox.Text == "Hello World"

    Hidden

    Sets the field to be hidden

    Condition

    The field is required based on a custom condition. If the condition is empty then it will be true. The custom condition must be server-side C# syntax code. 📌 Example: MyTextBox.Text == "Hello World"

    Custom attributes

    aslist

    This property allows a radio button and checkbox field with one item to be converted as a list control (RadioButtonList / CheckBoxList) instead of a RadioButton / CheckBox control in the web form. Accepted Boolean values: true or false

    Sets the field to be required

    Condition

    The field is required based on a custom condition. If the condition is empty then it will be true. The custom condition must be server-side C# syntax code.

    📌 Example: MyTextBox.Text == "Hello World"

    Read-only

    Sets the field to be read-only

    Condition

    The field is read-only based on a custom condition. If the condition is empty then it will be true. The custom condition must be server-side C# syntax code.

    📌 Example: TextBox.Text == "Hello World"

    Hidden

    Sets the field to be hidden

    Condition

    The field is hidden based on a custom condition. If the condition is empty then it will be true. The custom condition must be server-side C# syntax code.

    📌 Example: MyTextBox.Text == "Hello World"

    Regular expression

    Expression

    A regular expression to determine validity.

    📌 Example: email address: \b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}\b

    A regular expression can be entered freely into the designated area. It is also possible to use regular expressions in the Select a regular expression list.

    Error message

    Message to display when the validated field is invalid

    Range

    Minimum value

    Minimum value for the field being validated

    Maximum value

    Maximum value for the field being validated

    Error message

    Message to display when the validated field is invalid

    Custom

    OnServerValidate

    Server-side C# syntax validation code; must return a Boolean value (true or false)

    Validate empty text

    Whether the validator validates the control when the text of the control is empty

    Error message

    Message to display when the validated field is invalid

    Compare

    Value to compare

    Value to compare against

    Control to compare

    Select another field in the current form to compare against

    Operator

    Comparison operation to apply to values:

    • Equal (=)

    • Greater than (>)

    • Greater than or equal to (>=

    Error message

    Message to display when the validated field is invalid

    Custom attributes

    timezoneconversion

    Applicable to Date and DateTime textbox fields only

    This property allows the disabling of the default user time zone conversion behavior when the form field is in the Date or DateTime format.

    This option is useful if you want to capture and maintain a consistent date-only value in the form field and process data without applying the time zone conversion that sometimes changes the date value depending on the original and current user time zones.

    Accepted Boolean values: true or false

    Additional reserved attribute names specific to validation

    maxlength, requiredcondition, readonlycondition, hiddencondition, validationexpression, regularexpressionerrormessage, minimumvalue, maximumvalue, rangeerrormessage, onservervalidate, validateemptytext, customerrormessage, valuetocompare

    Value of the item

    Text

    Displays text of the item

    Add a new item

    Delete the current item

    Databind

    Connection mode

    Select the type of connection for data binding:

    • Name

    • String

    • Global lists

    Connection by name

    Connection name

    List of connection names defined in the WorkflowGen web configuration file (<connectionStrings>)

    ✏️ Note: It is strongly recommended to use a connection name rather than a connection string to simplify multi-environment management. Connection names are centrally managed in the WorkflowGen web.config file.

    Select command

    SQL select query

    📌 Examples: select column_id, column_text from table_name;

    Data value field

    The data field that provides the item value

    📌 Example: column_id

    Data text field

    The data field that provides the item text

    📌 Example: column_text

    Append data bound items

    Check to append the data bound items to the list. Otherwise, the data bound items will replace all the existing items in the list.

    Parameters

    Name

    Specifies the parameter name if the Select command uses a filter with a dynamic value from a parameter in the select query.

    📌 Example: Name=PARAM; Select command=select column_id, column_text from table_name where column_id > @PARAM

    Data type

    Specifies the data type of the parameter: Boolean, Byte, Char, DateTime, DBNull, Decimal, Double, Empty, Int16, Int32, Int64, Object, SByte,

    Filter by field

    Specifies another field in the current form where the dynamic value will be retrieved

    Default filter value

    Specifies the default value if the parameter field has an empty value or no value

    If the value is empty

    Select from one of the following:

    • Do nothing

    • Remove all items

    • Filter on empty value

    Connection by string

    Connection String

    Specifies the connection string

    📌 Example: Data Source=sqlserver_name;Initial Catalog=wfgen;User ID=wfgen_user;Password=abc123!;

    Provider name

    List of provider names defined in the WorkflowGen web configuration file (AdministrationFormDataProviderName). It also supports custom defined third-party .NET data providers.

    • System.Data.SqlClient (.NET FWK Data Provider for SQL Server)

    • System.Data.OleDb (.NET FWK Data Provider for OLE DB)

    • System.Data.Odbc (.NET FWK Data Provider for ODBC)

    Select command, Data value field, Data text field, Append data bound items, Parameters (Name, Field, Default value and Data type)

    Same as Connection by name

    Connection by global lists

    List name

    Specifies the list name

    Data value column

    Select the column used for item’s value

    Data text column

    Select the column used for item’s label

    Sort column

    Select the column used to sort the list

    Append data bound items

    Check to append the data bound items to the list. Otherwise, the data bound items will replace all the existing items in the list.

    Filter

    Column

    Specifies the column name used to filter data

    Comparison operator

    • Equal (=)

    • Not equal (<>)

    • Greater than (>)

    Filter by field

    Select the form field that contains the filter’s value

    Default filter value

    The default value if the field is empty

    If the value is empty

    Set the behavior of the filter if the value is empty

    Connection by XML

    URL

    Specifies the file name of an XML file for data binding

    📌 Examples:

    • c:\myfile.xml

    • http://server_name/myfile.xml

    XPath

    Specifies an XPath expression to be applied to the XML data contained by the XML file, e.g. rss/channel/item

    XSL transform file

    Specifies the file name of an Extensible Stylesheet Language (XSL) file (.xsl) that defines an XSLT transformation to be performed on the XML file

    📌 Example: c:\myfile.xsl

    Data value field, Data text field, Append data bound items

    Same as Connection by Name

    Connection by SharePoint 2007 and 2010

    ✏️ Note: The settings in the config file have to be set to detect SharePoint for this option to be active.

    URL

    URL of the SharePoint list

    📌 Example: http://www.mysitesps.com/mylists

    Name of the list

    Name of the SharePoint list

    📌 Example: Country

    Data field value

    Name of the column containing the value of the item

    📌 Example: Id_Country

    Data text field

    Name of the column containing the text of the item

    📌 Example: Description

    Validation

    Behavior

    ✏️ Note: To simplify the capture of a condition, the form fields and operators are listed in the Select a field… and Select an operator… drop-down menus. You can also press Ctrl+Spaceto display a drop-down menu that lists the available variables and keywords.

    Maximum length

    The maximum number of characters that can be entered

    ✏️ Note: Not available for TextArea fields.

    Required

    Sets the field to be required

    Condition

    The field is required based on a custom condition. If the condition is empty then it will be true. The custom condition must be server-side C# syntax code.

    📌 Example: MyTextBox.Text == "Hello World"

    Read-only

    Sets the field to be read-only

    Condition

    The field is read-only based on a custom condition. If the condition is empty then it will be true. The custom condition must be server-side C# syntax code.

    📌 Example: MyTextBox.Text == "Hello World"

    Hidden

    Sets the field to be hidden

    Condition

    The field is hidden based on a custom condition. If the condition is empty then it will be true. The custom condition must be server-side C# syntax code.

    📌 Example: MyTextBox.Text == "Hello World"

    Custom attributes

    timezoneconversion

    Applicable to Date and DateTime Label fields only

    This property allows for the disabling of the the default user time zone conversion behavior when the form field is in Date or DateTime format.

    This option is useful if you want to capture and maintain a consistent date-only value in the form field and process data without applying the time zone conversion that sometimes changes the date value depending on the original and current user time zones.

    Accepted Boolean value: true or false

    Additional reserved attribute names specific to Databind

    connectionname, connectionstring, providername, xmldatasource, xpath, transformfile, selectcommand, parametername, parametercontrolid, parameterdefaultvalue, parametertype, datavaluefield, datatextfield

    List of field types supported in the GridView:

    • DropDownListBox

    • ListBox

    • Label

    Footer text

    Display text of the column’s footer

    The column’s footer text can be plain text or an expression used to filter rows, calculate the values in a column, or create an aggregate column (e.g. to calculate a summary from all the row values of the same column: =SUM). For more information, refer to DataColumn.Expression at .

    Add a new column

    Delete the current column

    Appearance

    Edit button label

    Display text for the edit button

    Delete button label

    Display text for the delete button

    Update button label

    Display text for the update button

    Cancel button label

    Display text for the cancel button

    Show edit button

    Check to display edit button

    Show delete button

    Check to display delete button

    Show header

    Check to display the header

    Show footer

    Check to display the footer

    Validation

    Behavior

    ✏️ Note: To simplify the capture of a condition, the form fields and operators are listed in the Select a field... and Select an operator... drop-down menus. You can also press Ctrl+Spaceto display a drop-down menu that lists the available variables and keywords.

    Required

    Sets the field to be required

    Condition

    The field is required based on a custom condition. If the condition is empty then it will be true. The custom condition must be server-side C# syntax code.

    📌 Example: MyTextBox.Text == "Hello World"

    Read-only

    Sets the field to be read-only

    Condition

    The field is read-only based on a custom condition. If the condition is empty then it will be true. The custom condition must be server-side C# syntax code.

    📌 Example: MyTextBox.Text == "Hello World"

    Hidden

    Sets the field to be hidden

    Condition

    The field is hidden based on a custom condition. If the condition is empty then it will be true. The custom condition must be server-side C# syntax code.

    📌 Example: MyTextBox.Text == "Hello World"

    Additional reserved attribute names specific to GridView / Appearance

    edittext, deletetext, updatetext, showheader, showfooter

    Each field within a section will be automatically prefixed with the section’s identifier following an underscore character (e.g. section id=ACTION1; field id=ACTION1_MYFIELD1)

  • Each field within a GridView field will be automatically prefixed with the GridView’s identifier following the underscore character (e.g. gridview id=ACTION1_MYGRIDVIEW1; field id=ACTION1_MYGRIDVIEW1_TITLE1).

    • If the field is moved from one section to another section, then the field’s identifier will be automatically prefixed with the new section’s identifier.

    • If the section’s identifier is changed then all the fields within the section will be automatically prefixed with the new section’s identifier.

  • 6/10/2019 1:45:30 PM ➞ 1:45 PM (en-US)

    Long time

    6/10/2019 1:45:30 PM ➞ 1:45:30 PM (en-US)

    Full date/time (short time)

    6/10/2019 1:45:30 PM ➞ Monday, June 10, 2019 1:45 PM (en-US)

    Full date/time (long time)

    6/10/2019 1:45:30 PM ➞ Monday, June 10, 2019 1:45:30 PM (en-US)

    General date/time (short time)

    6/10/2019 1:45:30 PM ➞ 6/10/2019 1:45 PM (en-US)

    General date/time (long time)

    6/10/2009 1:45:30 PM ➞ 6/10/2019 1:45:30 PM (en-US)

    Month/day

    6/10/2019 1:45:30 PM ➞ June 10 (en-US)

    Round-trip date/time

    6/10/2019 1:45:30 PM ➞ 2019-06-10T13:45:30.0900000

    RFC1123

    6/10/2019 1:45:30 PM ➞ Mon, 10 Jun 2019 20:45:30 GMT

    Sortable date/time

    6/10/2019 1:45:30 PM ➞ 2019-06-10T13:45:30

    Universal sortable date/time

    6/10/2019 1:45:30 PM ➞ 2019-06-10 20:45:30Z

    Universal full date/time

    6/10/2019 1:45:30 PM ➞ Monday, June 10, 2019 8:45:30 PM (en-US)

    Year/month

    6/10/2019 1:45:30 PM ➞ June, 2019 (en-US)

    Name

    Description

    Manage custom tools...

    Opens the Manage custom tools window

    Custom – sections

    List of custom section templates A custom section template can be created by using the Save a section or field as tool feature or by manually deploying it on the server with the following folder and file structures: \wfgen\App_Data\Templates\Forms\[language]\[folder name]\sections\[section name].txt 📌 Example: \wfgen\App_Data\Templates\Forms\En\MyCompany\sections\MySection.txt ✏️ Note: A custom section template must comply with the content structures and rules used and known by the form designer. This is aimed at advanced users.

    Custom – field

    List of custom field templates

    A custom field template can be created by using the Save a section or field as tool feature or by manually deploying it on the server with the following folder and file structures: \wfgen\App_Data\Templates\Forms\[language]\[folder name]\fields\[field name].txt 📌 Example: \wfgen\App_Data\Templates\Forms\En\MyCompany\fields\MyField.txt ✏️ Note: A custom field template must comply with the content structures and rules used and known by the form designer. This is intended for advanced users.

    Default sections

    Approval

    A section that contains first name, last name, and date fields in read-only, plus an approval radio button list and comment multiline textbox

    Field

    Description

    Save as tool

    Name

    Enter a unique name for the custom tool

    Tools

    Select an existing tool in the drop-down list for replacement

    Name / Icon

    Description

    Sections

    Name

    Name of the custom section tool

    Delete the current custom section tool

    Fields

    Name

    Name of the custom field tool

    Name / Icon

    Description

    Close and apply the changes to the section

    Close and cancel the changes

    Validation

    Behavior

    ✏️ Note: To simplify the capture of a condition, the form fields and operators are listed in the Select a field... and Select an operator... drop-down menus. You can also press Ctrl+Spaceto display a drop-down menu that lists the available variables and keywords.

    Required

    Sets the section fields to be required

    Name / Icon

    Description

    Close and apply the changes to the field

    Close and cancel the changes

    General

    Enable advanced mode

    Enables the file attachment settings listed below

    Enable download link

    Check if you want to enable the link to open file

    Name / Icon

    Description

    Add a new checkbox/radio button

    Delete the current checkbox/radio button

    Items

    Drag and drop to change the order of the items

    Checked

    Check the default selected items in the field. The radio button field supports single selection whereas the checkbox field supports multiple selections.

    Name / Icon

    Description

    Close and apply the changes to the field

    Close and cancel the changes

    Validation

    Behavior

    ✏️ Note: To simplify the capture of a condition, the form fields and operators are listed in the Select a field... and Select an operator... drop-down menus. You can also press Ctrl+Spaceto display a drop-down menu that lists the available variables and keywords.

    Maximum length

    The maximum number of characters that can be entered

    ✏️ Note: Now also available for TextArea fields.

    Name / Icon

    Description

    Close and apply the changes to the field

    Close and cancel the changes

    Items

    Drag-and-drop to change the order of the items

    Selected

    Check the default selected items in the field

    The DropdownListBox field supports single selection whereas the ListBox field supports multiple selections.

    Name / Icon

    Description

    Close and apply the changes to the field

    Close and cancel the changes

    Columns

    Drag-and-drop to change the order of the columns

    Header text

    Display text on the column header

    Format types

    Description

    Numeric

    The value is numeric

    Currency

    The value is a currency

    Date Time (system)

    WorkflowGen's default date time

    Short date

    6/10/2019 1:45:30 PM ➞ 6/10/2019 (en-US)

    Long date

    6/10/2019 1:45:30 PM ➞ Monday, June 10, 2019 (en-US)

    Tools
    Tools
    Appearance Editor
    Appearance Editor
    Toolbar
    File attachment field settings

    Empty

    Condition

    Show file size

    Value

    Required

    Value

    Field type

    Short time

    protected void Page_Load(object sender, EventArgs e)
    {
        base.Page_Load(sender, e);
        String stylePath=HttpContext.Current.Request.PhysicalApplicationPath.Replace("WfApps\\WebForms\\","App_Data\\Templates\\Forms\\En\\Default\\css");
        Page.Header.Controls.Remove(this.FindControl("StyleSheet"));
        Page.Header.Controls.Add(
            new LiteralControl(
                System.IO.File.ReadAllText(stylePath + "\\" + "metal.css")
            )
        );
        string imageUrl="http://mywebsite/mylogo.jpg"
        HeaderImage.Style["background-image"] = "url('" + imageUrl+ "')";
        HeaderTitleLabel.Text="My Title #";
        FooterTitleLabel.Text="My footer";
        imageUrl="http://mywebsite/myfooter.jpg";
        FooterImage.Style["background-image"] = "url('" + imageUrl+ "')";
    }
    FooterImage.Style["width"] = "200px";
    FooterImage.Style["height"] = "100px";
    accesskey
    ,
    dir
    ,
    lang
    ,
    tabindex
    ,
    xml:lang
    ,
    onblur
    ,
    onchange
    ,
    onclick
    ,
    onfocus
    ,
    onmousedown
    ,
    onmousemove
    ,
    onmouseout
    ,
    onmouseover
    ,
    onmouseup
    ,
    onkeydown
    ,
    onkeypress
    ,
    onkeyup
    ,
    onselect
    ,
    enabled
    ,
    visible
    ,
    ondatabinding
    ,
    ondisposed
    ,
    oninit
    ,
    onload
    ,
    onprerender
    ,
    onunload

    A list of examples of custom attributes is displayed at the beginning of the tab; you can choose one or enter a specific name.

    )
  • Less than (<)

  • Less than or equal to (<=)

  • Not equal (<>)

  • ,
    controltocompare
    ,
    operator
    ,
    compareerrormessage
    XML
  • SharePoint

  • Single
    ,
    String
    ,
    UInt16
    ,
    UInt32
    ,
    UInt64

    Greater than or equal to (>=)

  • Less than (<)

  • Less than or equal to (>=)

  • Contains

  • Begins with

  • Ends with

  • Is null

  • Is not null

  • In

  • Not In

  • Between

  • http://server_name/service.asmx/getmyfilexml

    The XML file must be structured so that the properties of each element are expressed as attributes. If you have an XML file in which property values are expressed in a format other than attributes, you must:

    • Create a transformation file (.xslt) that can dynamically reformat the .xml file so that it is compatible with the XmlDataSource control.

    • Specify the path of your XSLT file in the "XSL transform file" parameter (see below).

    ,
    appenddatabounditems
    ,
    spsdatasource
    ,
    spsdatalist
    ,
    spsdatavaluefield
    ,
    spsdatatextfield
    TextArea
  • TextBox

  • ✏️ Notes:

    • TextBox and TextArea fields in the GridView do not support the validation settings.

    • The Label field in the GridView does not support the databind settings.

    http://msdn.microsoft.com/en-us/library/system.data.datacolumn.expression(v=VS.80).aspx