Supplied Workflow Custom Resources

Documentation home

 

Introduction. 1

Workflow Tasks 3

Overview. 3

Security. 3

Input Parameters 4

Table Returned. 5

Examples 6

Workflow Jobs 7

Overview. 7

Security. 7

Input Parameters 7

Table Returned. 8

Examples 9

Workflow Processes 11

Overview. 11

Security. 11

Input Parameters 11

Table Returned. 12

Examples 12

Workflow Escalators 13

Overview. 13

Security. 13

Input Parameters 14

Table Returned. 15

Examples 15

Workflow Audit Records 16

Overview. 16

Security. 16

Input Parameters 16

Table Returned. 17

Examples 18

 

See also:  Workflow Index

 

Introduction

 

The Ebase Xi Workflow system is supplied with five custom resource classes which allow tabular information to be read via the workflow API and presented or processed in an Ebase Xi form. These custom resources are used by the sample tasklist (form WF_TASKLIST in project WORKFLOW_SAMPLES) and Workflow Administrator (form WORKFLOW_ADMINISTRATOR in project WORKFLOW_PROCESS_MANAGEMENT) forms, and these custom resources can be viewed in the Ebase Xi Designer in project Shared, folder Resources/Custom Resources. These samples can be used as supplied, or copied, or new resources can be created.

 

Custom Resource Implementing Class

Data accessed

Workflow API method

Sample Custom Resource Name

com.ebasetech.ufs.workflow.form.customresources.WorkflowTaskList

Workflow tasks

getFilteredTasks()

WF_TASKLIST

com.ebasetech.ufs.workflow.form.customresources.WorkflowJobsList

Workflow jobs

getFilteredJobs()

WF_JOBSLIST

com.ebasetech.ufs.workflow.form.customresources.WorkflowProcessesList

Workflow processes

getProcesses()

WF_PROCESS_LIST

com.ebasetech.ufs.workflow.form.customresources.WorkflowEscalatorsList

Workflow escalators

getFilteredPendingEscalators()

WF_ESCALATORLIST

com.ebasetech.ufs.workflow.form.customresources.WorkflowAuditList

Workflow audit trail records

getFilteredAuditRecords()

WF_AUDITLIST

 

These custom resources are all read only and can only be used with the fetchtable command or Javascript fetchtable().

 

A security authorization check is made when each call to the Workflow API is made, details are shown under each custom resource below.

 

All of these custom resources accept a number of filter parameters which can be used to control which tasks, jobs, processes etc are returned e.g. the workflow tasks resource can be configured to return all the tasks for a single job by specifying job id as a filter parameter. The filter parameters are shown in the Ebase Xi Designer at the top of each custom resource under Resource parameters. Each parameter specifies the name of a form field containing the parameter value. Please note that these workflow resources differ from other custom resources in that they refer directly to form fields rather than to resource fields which are then mapped. This means that forms that use these custom resources must contain all fields which are referenced.

 

The bottom section of each custom resource shows the table returned from the workflow API. These tables are fully configured with all possible table fields returned by the corresponding call to the workflow API.

 

As an example, the WF_JOBSLIST custom resource is shown below. This accepts parameters from form fields JOB_COMPLETED_FILTER, JOB_ID_FILTER, JOB_OPENER_FILTER etc. The JobsList table will be populated by a fetchtable command.

 

 

Each custom resource is now shown in turn with a more detailed description.

Workflow Tasks

Overview

Implementing class: com.ebasetech.ufs.workflow.form.customresources.WorkflowTaskList

 

This resource returns a table of workflow tasks, including system and interactive tasks, decisions, splits, escalators etc. It is used by the supplied WF_TASKLIST sample form to provide a list of interactive tasks which can be executed by a given individual – i.e. the user’s task list. The resource accepts a number of filter parameters, shown below, that can be used to filter the tasks returned. All filter parameters are optional. If no filter parameters are specified, all tasks will be returned.

 

FPL command fetchtable or API method Table.fetchTable() or the only statements accepted by this resource.

Security

Security requirements depend on the workflow security handler configured on the server:

 

  • com.ebasetech.ufs.workflow.security.example EbaseSecurityHandler: tasks can be displayed by any user so long as a security expression is not configured for the task or the process. When a security expression is configured, the system checks security authorization Workflow/Security Expression/View where Security Expression is the value entered on the Security tab of the node properties dialog for the task, or if this is empty, the corresponding tab for the process properties. Tasks that fail this security check are not displayed.

 

  • com.ebasetech.ufs.workflow.security.example EbaseStrictSecurityHandler: an authenticated user is required to access this custom resource. If no authenticated user is available, error message “Parameters to API method getFilteredTasks are ill formed” is issued.

 

Security authorization check: Workflow/CLIENT/getTasks

 

Each returned task is additionally checked to ensure that the user has security access to view the task. The system checks security authorization Workflow/Security Expression/View where Security Expression is the value entered on the Security tab of the node properties dialog for the task, or if this is empty, the corresponding tab for the process properties. Tasks that fail this security check are not displayed.

Input Parameters

All filter parameters are optional. If no filter parameters are specified, all tasks will be returned.

 

Filter parameter

Type

Description

JOB_ID_FILTER_FIELD_NAME

CHAR

A job id that uniquely identifies a job. For a form running under workflow control, this is supplied as system variable $WF_JOB_ID. If specified, only nodes for this job are returned.

TASK_ID_FILTER_FIELD_NAME

CHAR

A task id that uniquely identifies a task. For a form running under workflow control, this is supplied as system variable $WF_TASK_ID. If specified, only the single task that matches this id is returned.

TASK_ACTOR_FILTER_FIELD_NAME

CHAR

Specifies a userid. Only tasks assigned to this userid are returned.

TASK_ASSIGNABLE_TO_ACTOR_FILTER_FIELD_NAME

CHAR

Specifies a userid. All tasks which can potentially be assigned to the userid are returned. Only tasks with status “Active”, “Unassigned” or “Waiting” are displayed. Method isAssignableToActor() for the implemented assignment handler is invoked for all candidate tasks, and only those tasks for which this method returns true are included. See customizing workflow for more details on the assignment mechanism.

 

Use this filter parameter to create a task list for the user (see example).

 

When the supplied Ebase assignment handler is used, tasks which have been explicitly assigned to the user and any group tasks that could be assigned to the user are returned. Group tasks that have already been assigned to another group member are also returned if TASK_VISIBLE_TO_POOL_FILTER_FIELD_NAME is set to “Y”.

TASK_ASSIGNABLE_TO_ROLE_FILTER_FIELD_NAME

CHAR

Specifies a role name. Tasks which can potentially be assigned to the role are returned. Only tasks with status “Active”, “Unassigned” or “Waiting” are displayed. Method isAssignableToRole() for the implemented assignment handler is invoked for all candidate tasks, and only those tasks for which this method returns true are included. See customizing workflow for more details on the assignment mechanism.

 

The supplied Ebase assignment handler does not support this attribute and the returned list will therefore be empty if a value is specified for this filter field.

TASK_VISIBLE_TO_POOL_FILTER_FIELD_NAME

CHAR

Supported values are “Y” or “N”.

If set to “Y”, tasks that were originally potentially assignable to the userid specified in parameter TASK_ASSIGNABLE_TO_ACTOR_FILTER_FIELD_NAME but have been assigned to a different individual are returned. When group assignment is used, setting this field to “Y” displays group tasks which have been assigned to other individuals in the group.

TASK_PROCESS_FILTER_FIELD_NAME

CHAR

Specifies a process name. Only tasks that are part of a job for the named process are returned.

TASK_CLASS_FILTER_FIELD_NAME

CHAR

Specifies the single type of task to be returned. If omitted, all types are returned.

Supported values are:

 

Type

Value

Decision

com.ebasetech.ufs.workflow.server.enactment.DecisionTaskEnactment

Interactive Task

com.ebasetech.ufs.workflow.server.enactment.InteractiveTaskEnactment

System Task

com.ebasetech.ufs.workflow.server.enactment.SystemTaskEnactment

Split

com.ebasetech.ufs.workflow.server.enactment.SplitTaskEnactment

Join

com.ebasetech.ufs.workflow.server.enactment.JoinTaskEnactment

Escalator

com.ebasetech.ufs.workflow.server.enactment.EscalatorTaskEnactment

Sub-process

com.ebasetech.ufs.workflow.server.enactment.ProcessNodeTaskEnactment

 

TASK_ACTIVE_FILTER_FIELD_NAME

CHAR

Supported values are “Y” or “N”. Set to “Y” to include tasks with status Active

TASK_COMPLETED_FILTER_FIELD_NAME

CHAR

Supported values are “Y” or “N”. Set to “Y” to include tasks with status Completed

TASK_FAILED_FILTER_FIELD_NAME

CHAR

Supported values are “Y” or “N”. Set to “Y” to include tasks with status Failed

TASK_PAUSED_FILTER_FIELD_NAME

CHAR

Supported values are “Y” or “N”. Set to “Y” to include tasks with status Paused

TASK_SKIPPED_FILTER_FIELD_NAME

CHAR

Supported values are “Y” or “N”. Set to “Y” to include tasks with status Skipped

TASK_UNASSIGNED_FILTER_FIELD_NAME

CHAR

Supported values are “Y” or “N”. Set to “Y” to include tasks with status Unassigned

TASK_WAITING_FILTER_FIELD_NAME

CHAR

Supported values are “Y” or “N”. Set to “Y” to include tasks with status Waiting

 

Table Returned

The tasklist table returned by a fetchtable call to this resource contains the following columns.

 

Column

Type

Description

PROCESS_NAME

CHAR

The name of the process

PROCESS_VERSION

INTEGER

The version number of the process

JOB_SEQUENCE

INTEGER

The job sequence

TASK_NAME

CHAR

The name of the task

TASK_PRIORITY

INTEGER

Current priority of the task

TASK_ID

CHAR

The unique task id of the task

STATE

CHAR

The current state of the task. This will be one of the following:

  • Unassigned
  • Waiting
  • Active
  • Paused
  • Completed
  • Cancelled
  • Failed
  • Skipped

 

TASK_DESCRIPTION

CHAR

The task description text displayed in the user’s runtime language. Any process attribute names prefixed by && contained in the text will be substituted.

ACTOR

CHAR

The user assigned to the task

POOLED_ACTORS

CHAR

The pooled actor string as determined by the configured assignment handler. Usually this will represent a group or a subset of a group or some other means of representing a pool of users.

CREATION_DATE

DATE

Creation date and time of the task

MODIFICATION_DATE

DATE

Date and time of the last change to the task

JOB_ID

CHAR

The unique job id of the parent job

 

Examples

The following example illustrates use of this resource in a task list application and returns all tasks assignable to an individual.

 

Custom resource filter parameters:

 

TASK_ASSIGNABLE_TO_ACTOR_FILTER_FIELD_NAME  = WF_ASSIGNABLE_TO_ACTOR_FILTER

TASK_CLASS_FILTER_FIELD_NAME = WF_CLASS_FILTER

TASK_ACTIVE_FILTER_FIELD_NAME = WF_ACTIVE_FILTER

TASK_UNASSIGNED_FILTER_FIELD_NAME = WF_UNASSIGNED_FILTER

TASK_WAITING_FILTER_FIELD_NAME = WF_WAITING_FILTER

TASK_VISIBLE_TO_POOL_FILTER_FIELD_NAME = WF_VISIBLE_TO_POOL_FILTER

 

 

Script:

 

FPL:

API based language (Javascript):

 

// Include tasks for this userid (signed on user)

set WF_ASSIGNABLE_TO_ACTOR_FILTER = $USER;

// Do not include group tasks assigned to other group members

set WF_VISIBLE_TO_POOL_FILTER = 'N';

// Include unassigned tasks

set WF_UNASSIGNED_FILTER = 'Y';

// Include waiting tasks

set WF_WAITING_FILTER = 'Y';

// Include active tasks

set WF_ACTIVE_FILTER = 'Y';

// Include node types (interactive tasks only)

set WF_CLASS_FILTER = 'com.ebasetech.ufs.workflow.server.enactment.InteractiveTaskEnactment';

// Fetch the task list

fetchtable TASKLIST;

 

 

// Include tasks for this userid (signed on user)

fields.WF_ASSIGNABLE_TO_ACTOR_FILTER.value = system.securityManager.userName;

// Do not include group tasks assigned to other group members

fields.WF_VISIBLE_TO_POOL_FILTER.value = "N";

// Include unassigned tasks

fields.WF_UNASSIGNED_FILTER.value = "Y";

// Include waiting tasks

fields.WF_WAITING_FILTER.value = "Y";

// Include active tasks

fields.WF_ACTIVE_FILTER.value = "Y";

// Include node types (interactive tasks only)

fields.WF_CLASS_FILTER.value = 'com.ebasetech.ufs.workflow.server.enactment.InteractiveTaskEnactment';

// Fetch the task list

tables.TASKLIST.fetchTable();

 

 

Note that setting WF_VISIBLE_TO_POOL_FILTER to 'Y' will also include group tasks assigned to other group members.

 

Workflow Jobs

Overview

Implementing class: com.ebasetech.ufs.workflow.form.customresources.WorkflowJobsList

 

This resource returns a table of jobs. All filter parameters are optional. If no filter parameters are specified, all jobs will be returned.

 

FPL command fetchtable or API method Table.fetchTable() or the only statements accepted by this resource.

 

Security

Security requirements depend on the workflow security handler configured on the server:

 

  • com.ebasetech.ufs.workflow.security.example EbaseSecurityHandler: jobs can be displayed by any user so long as a security expression is not configured for the process. When a security expression is configured, the system checks security authorization Workflow/Security Expression/View where Security Expression is the value entered on the Security tab of the process properties. Jobs that fail this security check are not displayed.

 

  • com.ebasetech.ufs.workflow.security.example EbaseStrictSecurityHandler: an authenticated user is required to access this custom resource. If no authenticated user is available, error message “Parameters to API method getFilteredJobs are ill formed” is issued.

 

Security authorization check: Workflow/CLIENT/getJobs

 

Each returned job is additionally checked to ensure that the user has security access to view the job. The system checks security authorization Workflow/Security Expression/View where Security Expression is the value entered on the Security tab of the process properties. Jobs that fail this security check are not displayed.

Input Parameters

All filter parameters are optional. If no filter parameters are specified, all jobs will be returned.

 

Filter parameter

Type

Description

JOB_ID_FILTER_FIELD_NAME

CHAR

A job id that uniquely identifies a job. For a form running under workflow control, this is supplied as system variable $WF_JOB_ID. If specified, only the single job matching this id is returned.

JOB_COMPLETED_FILTER_FIELD_NAME

CHAR

Supported values are “Y” or “N”.

Set to “Y” to only include completed jobs.

Set to “N” to only include active jobs.

Omit or set to another value to include all jobs.

JOB_OPENER_FILTER_FIELD_NAME

CHAR

Specifies a userid. Only jobs opened by the userid are returned

JOB_OWNER_FILTER_FIELD_NAME

CHAR

Specifies a userid. Only jobs owned by the userid are returned. (The job owner is specified on the Job owner assignment tab of the process properties.)

JOB_PROCESS_ATTRIBUTES_FILTER_TABLE_NAME

TABLE

Specifies a table containing process attribute names and values. Only jobs with matching process attribute values are returned. This filter can be used to find jobs by referring to some external reference e.g. a reference id, applicant name, postcode etc.

 

The process attributes table must contain columns:

xxx-NAME, type CHAR, containing the process attribute name in upper case

xxx-VALUE, type should match the workflow process attribute type, containing the process attribute value

JOB_PROCESS_FILTER_FIELD_NAME

CHAR

Only jobs for the named process are returned

JOB_CREATION_DATE_FROM_FILTER_FIELD_NAME

DATE

Used in conjunction with JOB_CREATION_DATE_TO_FILTER_FIELD_NAME. Only jobs with a creation date within the specified date range are shown. To see all jobs created on a certain date, specify the same date for both the to and from filter fields.

JOB_CREATION_DATE_TO_FILTER_FIELD_NAME

DATE

Used in conjunction with JOB_CREATION_DATE_FROM_FILTER_FIELD_NAME. Only jobs with a creation date within the specified date range are shown. To see all jobs created on a certain date, specify the same date for both the to and from filter fields.

JOB_MODIFIED_DATE_FROM_FILTER_FIELD_NAME

DATE

Used in conjunction with JOB_ MODIFIED _DATE_TO_FILTER_FIELD_NAME. Only jobs with a last modified date within the specified date range are shown. To see all jobs last modified on a certain date, specify the same date for both the to and from filter fields. Note that for jobs that have ended, the last modified date will be the date the job ended.

JOB_ MODIFIED _DATE_TO_FILTER_FIELD_NAME

DATE

Used in conjunction with JOB_ MODIFIED _DATE_FROM_FILTER_FIELD_NAME. Only jobs with a last modified date within the specified date range are shown. To see all jobs last modified on a certain date, specify the same date for both the to and from filter fields. Note that for jobs that have ended, the last modified date will be the date the job ended.

JOB_INCLUDE_SUBJOBS_FILTER_FIELD_NAME

CHAR

Supported values are “Y” or “N”.

Set to “Y” to include sub-jobs.

Set to “N” or leave blank to exclude sub-jobs.

 

Table Returned

The Jobslist table returned by a fetchtable call to this resource contains the following columns.

 

Column

Type

Description

JOB_ID

CHAR

The unique job id for the job

PROCESS_NAME

CHAR

The name of the process

PROCESS_VERSION

INTEGER

The version number of the process

JOB_SEQUENCE

INTEGER

The job sequence

OWNER

CHAR

The userid configured as job owner (see Job owner assignment tab of process properties)

OPENER

CHAR

The userid who opened the job, if available

PROCESS_DESCRIPTION

CHAR

The process description text displayed in the user’s runtime language. Any process attribute names prefixed by && contained in the text will be substituted.

CREATION_DATE

DATE

Creation date and time of the job

MODIFICATION_DATE

DATE

Date and time of the last change to the job

COMPLETED

BOOLEAN

Indicates whether the job has completed

PARENT_PROCESS_NAME

CHAR

The name of the parent process where the job is a sub-job or null if no parent job exists

PARENT_PROCESS_VERSION

INTEGER

The version number of the parent process where the job is a sub-job or -1 if no parent job exists

PARENT_JOB_SEQUENCE

INTEGER

The job sequence of the parent process where the job is a sub-job or -1 if no parent job exists

 

Examples

Example 1

 

The following example returns all active jobs for process LOAN_APPLICATION.

 

Custom resource filter parameters:

 

JOB_PROCESS_FILTER_FIELD_NAME  = WF_PROCESS_FILTER

JOB_COMPLETED_FILTER_FIELD_NAME = WF_COMPLETED_FILTER

 

Script:

 

FPL:

API based language (Javascript):

 

// Only include jobs for this process

set WF_PROCESS_FILTER = 'LOAN_APPLICATION';

// Only include active jobs

set WF_COMPLETED_FILTER = 'N';

// Fetch the jobs list

fetchtable JOBSLIST;

 

// Only include jobs for this process

fields.WF_PROCESS_FILTER.value = "LOAN_APPLICATION";

// Only include active jobs

fields.WF_COMPLETED_FILTER.value = "N";

// Fetch the jobs list

tables.JOBSLIST.fetchTable();

 

 

 

Example 2

 

The following example returns any LOAN_APPLICATION jobs (probably just one) with an APPLICATION_ID process attribute as entered by the user.

 

Custom resource filter parameters:

 

JOB_PROCESS_FILTER_FIELD_NAME  = WF_PROCESS_FILTER_TABLE

JOB_PROCESS_ATTRIBUTES_FILTER_TABLE_NAME  = WF_PA_FILTER

 

Table WF_PA_FILTER_TABLE

 

Configured as a hidden table with columns:

WF_PA_FILTER_TABLE-NAME CHAR

WF_PA_FILTER_TABLE-VALUE INTEGER (type should match process attribute APPLICATION_ID of process LOAN_APPLICATION)

 

Script:

 

FPL:

API based language (Javascript):

 

// Only include jobs for this process

set WF_PROCESS_FILTER = 'LOAN_APPLICATION';

// Empty the process attributes filter table

resettable WF_PA_FILTER_TABLE;

// Add an empty row to the process attributes filter table

insertrow WF_PA_FILTER_TABLE;

// Set the process attribute name as APPLICATION_ID

set WF_PA_FILTER_TABLE-NAME = 'APPLICATION_ID';

// Set the process attribute value as entered by the user (field APPL_ID)

set WF_PA_FILTER_TABLE-VALUE = APPL_ID;

 

// Fetch the jobs list

fetchtable JOBSLIST;

 

 

// Only include jobs for this process

fields.WF_PROCESS_FILTER.value = "LOAN_APPLICATION";

// Empty the process attributes filter table

tables.WF_PA_FILTER_TABLE.resetTable();

// Add an empty row to the process attributes filter table

tables.WF_PA_FILTER_TABLE.insertRow();

// Set the process attribute name as APPLICATION_ID

fields.WF_PA_FILTER_TABLE-NAME.value = "APPLICATION_ID";

// Set the process attribute value as entered by the user (field APPL_ID)

fields.WF_PA_FILTER_TABLE-VALUE.value = fields.APPL_ID.value;

 

// Fetch the jobs list

tables.JOBSLIST.fetchTable();

 

Workflow Processes

Overview

Implementing class: com.ebasetech.ufs.workflow.form.customresources.WorkflowProcessesList

 

This resource returns a table of processes. All filter parameters are optional. If no filter parameters are specified, all processes will be returned.

 

FPL command fetchtable or API method Table.fetchTable() or the only statements accepted by this resource.

 

Security

Security requirements depend on the workflow security handler configured on the server:

 

  • com.ebasetech.ufs.workflow.security.example EbaseSecurityHandler: jobs can be displayed by any user so long as a security expression is not configured for the process. When a security expression is configured, the system checks security authorization Workflow/Security Expression/View where Security Expression is the value entered on the Security tab of the process properties. Processes that fail this security check are not displayed.

 

  • com.ebasetech.ufs.workflow.security.example EbaseStrictSecurityHandler: an authenticated user is required to access this custom resource. If no authenticated user is available, error message “Parameters to API method getProcesses are ill formed” is issued.

 

Security authorization check: Workflow/CLIENT/ getProcesses

 

Each returned job is additionally checked to ensure that the user has security access to view the process. The system checks security authorization Workflow/Security Expression/View where Security Expression is the value entered on the Security tab of the process properties. Processes that fail this security check are not displayed.

Input Parameters

All filter parameters are optional. If no filter parameters are specified, all processes will be returned.

 

Filter parameter

Type

Description

PROCESS_ACTIVE_FILTER_FIELD_NAME

CHAR

Supported values are “Y” or “N”.

Set to “Y” to only include active processes.

Set to “N” to only include quiesced processes.

Omit or set to another value to include all processes.

PROCESS_CREATOR_FILTER_FIELD_NAME

CHAR

Specifies a designer userid. Only processes created by the userid are returned (see process properties).

PROCESS_DELETED_FILTER_FIELD_NAME

CHAR

Supported values are “Y” or “N”.

Set to “Y” to only include deleted processes.

Set to “N” to exclude deleted processes.

Omit or set to another value to include all processes.

PROCESS_NAME_FILTER_FIELD_NAME

CHAR

Specifies a process name. Only the named process is returned.

PROCESS_OWNER_FIELD_NAME

CHAR

Specifies a userid. Only processes owned by the userid are returned (see process properties).

 

Table Returned

The ProcessList table returned by a fetchtable call to this resource contains the following columns.

 

Column

Type

Description

NAME

CHAR

The name of the process

VERSION

CHAR

The latest version of the process. If the STATE column shows ‘Working’, then the latest released version is the shown number minus one. If the version is 0, there is no released version.

DESCRIPTION

INTEGER

The process description text displayed in the user’s runtime language.

OWNER

CHAR

The process owner (see process properties)

CREATOR

CHAR

The process creator (see process properties)

STATE

CHAR

This will be either ‘Working’ or ‘Released’ and applies to the version shown in column VERSION.

QUIESCENT

CHAR

This will be either ‘Quiescent’ or ‘Active’ depending on whether or not the process has been quiesced

DELETED

BOOLEAN

Indicates whether the process has been deleted

CREATION_DATE

DATE

Creation date and time of the process

MODIFICATION_DATE

DATE

Date and time of the last change to the process

 

Examples

The following example returns all active (not quiesced) processes.

 

Custom resource filter parameters:

 

PROCESS_ACTIVE_FILTER_FIELD_NAME  = WF_PROCESS_ACTIVE_FILTER

 

Script:

 

FPL:

API based language (Javascript):

 

// Only include active processes

set WF_PROCESS_ACTIVE_FILTER = 'Y';

// Fetch the processes list

fetchtable PROCESSESLIST;

 

 

// Only include active processes

fields.WF_PROCESS_ACTIVE_FILTER.value = "Y";

// Fetch the processes list

tables.PROCESSESLIST.fetchTable();

 

 

Workflow Escalators

Overview

Implementing class: com.ebasetech.ufs.workflow.form.customresources.WorkflowEscalatorsList

 

This resource returns a table of escalators. The resource accepts a number of filter parameters, shown below, that can be used to filter the escalators returned. All filter parameters are optional. If no filter parameters are specified, all escalators will be returned. This resource is used by the supplied WF_TASKLIST sample form to provide a list of escalators that apply to a given individual.

 

FPL command fetchtable or API method Table.fetchTable() or the only statements accepted by this resource.

Security

Security requirements depend on the workflow security handler configured on the server:

 

  • com.ebasetech.ufs.workflow.security.example EbaseSecurityHandler: escalators can be displayed by any user so long as a security expression is not configured for the escalated node. When a security expression is configured, the system checks security authorization Workflow/Security Expression/View where Security Expression is the value entered on the Security tab of the node properties dialog for the escalated node, or if this is empty, the corresponding tab for the process properties. Tasks that fail this security check are not displayed.

 

  • com.ebasetech.ufs.workflow.security.example EbaseStrictSecurityHandler: an authenticated user is required to access this custom resource. If no authenticated user is available, error message “Parameters to API method GetFilteredPendingEscalators are ill formed” is issued.

 

Security authorization check: Workflow/CLIENT/ GetFilteredPendingEscalators

 

Each returned escalator is additionally checked to ensure that the user has security access to view the escalated node. The system checks security authorization Workflow/Security Expression/View where Security Expression is the value entered on the Security tab of the node properties dialog for the escalated node, or if this is empty, the corresponding tab for the process properties. Escalators that fail this security check are not displayed.

Input Parameters

All filter parameters are optional. If no filter parameters are specified, all tasks will be returned.

 

Filter parameter

Type

Description

CONTINGENT_ENACTMENT_FILTER_FIELD_NAME

CHAR

The task id of the contingent node i.e. the node that triggered the escalator

ESCALATED_ENACTMENT_FILTER_FIELD_NAME

CHAR

The task id of the escalated node i.e. the node to which the escalator has been applied

ESCALATED_NODE_NAME_FILTER_FIELD_NAME

CHAR

The node name of the escalated node i.e. the node to which the escalator has been applied

ESCALATOR_ACTIVE_FILTER_FIELD_NAME

BOOLEAN

Supported values are “Y” or “N”. Set to “Y” to include escalators with status Active

ESCALATOR_CANCELLED_FILTER_FIELD_NAME

BOOLEAN

Supported values are “Y” or “N”. Set to “Y” to include escalators with status Cancelled

ESCALATOR_COMPLETED_FILTER_FIELD_NAME

BOOLEAN

Supported values are “Y” or “N”. Set to “Y” to include escalators with status Completed

ESCALATOR_DUE_AFTER_DATE_FILTER_FIELD_NAME

DATE

Returns all escalators due to fire after the specified date. If this is not specified and parameter ESCALATOR_DUE_AFTER_TIME_FILTER_FIELD_NAME is specified, the current date is assumed.

ESCALATOR_DUE_AFTER_TIME_FILTER_FIELD_NAME

CHAR

Returns all escalators due to fire after the specified time 

ESCALATOR_DUE_BEFORE_DATE_FILTER_FIELD_NAME

DATE

Returns all escalators due to fire before the specified date. If this is not specified and parameter ESCALATOR_DUE_BEFORE_TIME_FILTER_FIELD_NAME is specified, the current date is assumed.

ESCALATOR_DUE_BEFORE_TIME_FILTER_FIELD_NAME

CHAR

Returns all escalators due to fire before the specified time 

ESCALATOR_PROCESS_FILTER_FIELD_NAME

CHAR

Specifies a process name. Only escalators that are part of a job for the named process are returned.

ESCALATOR_SKIPPED_FILTER_FIELD_NAME

BOOLEAN

Supported values are “Y” or “N”. Set to “Y” to include escalators with status Skipped

INCLUDE_COMPLETED_ESCALATED_TASKS_FILTER_FIELD_NAME

CHAR

Supported values are “Y” or “N”.

Set to “Y” to include escalators when the escalated task has completed.

Set to “N” or omit to exclude escalators when the escalated task has completed.

JOB_ID_FILTER_FIELD_NAME

CHAR

A job id that uniquely identifies a job. If specified, only escalators for this job are returned.

ESCALATOR_WAITING_FILTER_FIELD_NAME

BOOLEAN

Supported values are “Y” or “N”. Set to “Y” to include escalators with status Waiting

 

Table Returned

The escalatorlist table returned by a fetchtable call to WF_TASKLIST contains the following columns.

 

Column

Type

Description

ESCALATOR_NAME

CHAR

The escalator name

ESCALATOR_ID

CHAR

The task id of the escalator

ESCALATED_NODE_NAME

CHAR

The node name of the escalated node i.e. the node to which the escalator has been applied

ESCALATED_ENACTMENT_ID

CHAR

The task id of the the escalated node i.e. the node to which the escalator has been applied

CONTINGENT_ENACTMENT_ID

CHAR

The task id of the contingent node i.e. the node that triggered the escalator

JOB_ID

CHAR

The unique job id of the parent job

PROCESS_NAME

CHAR

The name of the process

PROCESS_VERSION

CHAR

The version number of the process

JOB_SEQUENCE

CHAR

The job sequence

STATE

CHAR

The current state of the escalator. This will be one of the following:

  • Waiting
  • Active
  • Completed
  • Cancelled
  • Skipped

CREATION_DATE

CHAR

Creation date and time of the escalator

ACTOR

CHAR

The user assigned to the escalator

ESCALATOR_DUE_DATE

CHAR

The date and time when the escalator will fire

ESCALATED_ENACTMENT_DESCRIPTION

CHAR

The escalated node description text displayed in the user’s runtime language.

 

Examples

The following example illustrates returns active or waiting escalators for a specific job id.

 

Custom resource filter parameters:

 

JOB_ID_FILTER_FIELD_NAME  = WF_JOBID_FILTER

ESCALATOR_ACTIVE_FILTER_FIELD_NAME = WF_ACTIVE_FILTER

ESCALATOR_WAITING_FILTER_FIELD_NAME = WF_WAITING_FILTER

 

Script:

 

FPL:

API based language (Javascript):

 

// Filter by jobid

set WF_JOBID_FILTER = JOBSLIST-JOB_ID;

// Include waiting escalators

set WF_WAITING_FILTER = 'Y';

// Include active escalators

set WF_ACTIVE_FILTER = 'Y';

// Fetch the escalator list

fetchtable ESCALATORSLIST;

 

 

// Filter by jobid

fields.WF_JOBID_FILTER.value = tables.JOBSLIST.JOB_ID.value;

// Include waiting escalators

fields.WF_WAITING_FILTER.value = "Y";

// Include active escalators

fields.WF_ACTIVE_FILTER.value = "Y";

// Fetch the escalator list

tables.ESCALATORSLIST.fetchTable();

 

Workflow Audit Records

Overview

Implementing class: com.ebasetech.ufs.workflow.form.customresources.WorkflowAuditList

 

This resource returns a table of audit trail records. All filter parameters are optional. If no filter parameters are specified, all audit trail records will be returned.

 

FPL command fetchtable or API method Table.fetchTable() or the only statements accepted by this resource.

 

Security

Security requirements depend on the workflow security handler configured on the server:

 

  • com.ebasetech.ufs.workflow.security.example EbaseSecurityHandler: audit records can be displayed by any user.

 

  • com.ebasetech.ufs.workflow.security.example EbaseStrictSecurityHandler: an authenticated user is required to access this custom resource. If no authenticated user is available, error message “Parameters to API method getFilteredAuditRecords are ill formed” is issued.

 

Security authorization check: Workflow/CLIENT/getFilteredAuditRecords

Input Parameters

All filter parameters are optional. If no filter parameters are specified, all audit trail records will be returned.

 

Filter parameter

Type

Description

AUDIT_RECORD_CALLER_FILTER_FIELD_NAME

CHAR

Filters based on the userid (caller) for each audited action. When the audit record was created by the workflow engine (e.g. executing a decision node) the caller will be ‘WorkThread’

AUDIT_RECORD_JOB_ID_FILTER_FIELD_NAME

CHAR

Returns audit records for the single job represented by job id

AUDIT_RECORD_LEVEL_FILTER_FIELD_NAME

CHAR

Currently unused. All audit trail records are created with a log level of 0.

AUDIT_RECORD_LOGGED_AFTER_DATE_FILTER_FIELD_NAME

DATE

Returns all audit trail records with a timestamp after the specified date. If this is not specified and parameter AUDIT_RECORD_LOGGED_AFTER_TIME_FILTER_FIELD_NAME is specified, the current date is assumed.

AUDIT_RECORD_LOGGED_AFTER_TIME_FILTER_FIELD_NAME

CHAR

Returns all audit trail records with a timestamp after the specified time.

AUDIT_RECORD_LOGGED_BEFORE_DATE_FILTER_FIELD_NAME

DATE

Returns all audit trail records with a timestamp before the specified date. If this is not specified and parameter AUDIT_RECORD_LOGGED_BEFORE_TIME_FILTER_FIELD_NAME is specified, the current date is assumed.

AUDIT_RECORD_LOGGED_BEFORE_TIME_FILTER_FIELD_NAME

CHAR

Returns all audit trail records with a timestamp before the specified time.

AUDIT_RECORD_MAX_ITEMS_FILTER_FIELD_NAME

INTEGER

Limits the number of audit trail records returned.

If this is not specified, a default value of 9999 is used.

A value of -1 means no limit is applied.

AUDIT_RECORD_PROCESS_FILTER_FIELD_NAME

CHAR

Returns audit trail records for all jobs for a single process

AUDIT_RECORD_REASON_FILTER_FIELD_NAME

CHAR

Returns all audit trail records that match the reason

AUDIT_RECORD_SOURCE_FILTER_FIELD_NAME

CHAR

Returns all audit trail records that match the source

AUDIT_RECORD_TASK_ID_FILTER_FIELD_NAME

CHAR

Returns audit records for the single task represented by task id

 

Table Returned

The auditlist table returned by a fetchtable call to this resource contains the following columns.

 

Column

Type

Description

PROCESS_NAME

CHAR

The name of the process

PROCESS_VERSION

CHAR

The version of the process

JOB_SEQUENCE

CHAR

Job sequence - a sequential number incremented each time a new job is created

NODE_SEQUENCE

CHAR

Node sequence - is a sequential number incremented each time a new node is created for the job

JOB_ID

CHAR

The unique job id of the job

TASK_ID

CHAR

The unique task id of the task

LOGGED_TIME

CHAR

Date and time the audit trail record was created

LEVEL

CHAR

This will always have a value of 0

SOURCE

CHAR

A text describing the source of the event represented by the audit trail record e.g. identifies the node and/or job

LOG_MESSAGE

CHAR

A detailed text description of the event

REASON

CHAR

The reason associated with the audit trail record

CALLER

CHAR

The userid (caller) associated with the event. This will contain ‘WorkThread’ when the audit record was created by a background task running under the workflow engine (e.g. executing a decision node)

 

Examples

The following example returns all audit trail records for a single job.

 

Custom resource filter parameters:

 

AUDIT_RECORD_JOB_ID_FILTER_FIELD_NAME = WF_JOB_ID_FILTER

 

Script:

 

FPL:

API based language (Javascript):

 

// Only show audit trail records for this job

set WF_JOB_ID_FILTER = MYJOBID;

// Fetch the audit trail records

fetchtable AUDITLIST;

 

 

// Only show audit trail records for this job

fields.WF_JOB_ID_FILTER.value = fields.MYJOBID.value;

// Fetch the audit trail records

tables.AUDITLIST.fetchTable();