Archer Dynamic Workflow Tracker Tool & Utility 6.12 P1 Implementation Guide
Archer Dynamic Workflow Tracker Tool & Utility 6.12 P1 Implementation Guide
Archer® Suite
6.12 P1
Implementation Guide
Trademarks
RSA Conference Logo, RSA, and other trademarks, are trademarks of RSA Security LLC or its affiliates ("RSA"). For
a list of RSA trademarks, go to https://www.archerirm.com/company/trademarks. Other trademarks are
trademarks of their respective owners.
License Agreement
This software and the associated documentation are proprietary and confidential to RSA Security LLC or its
affiliates are furnished under license, and may be used and copied only in accordance with the terms of such
license and with the inclusion of the copyright notice below. This software and the documentation, and any
copies thereof, may not be provided or otherwise made available to any other person.
No title to or ownership of the software or documentation or any intellectual property rights thereto is hereby
transferred. Any unauthorized use or reproduction of this software and the documentation may be subject to
civil and/or criminal liability.
This software is subject to change without notice and should not be construed as a commitment by RSA.
Third-Party Licenses
This product may include software developed by parties other than RSA. The text of the license agreements
applicable to third-party software in this product may be viewed on the product documentation page on the
Archer Community. By using this product, a user of this product agrees to be fully bound by terms of the license
agreements.
Distribution
Use, copying, and distribution of any RSA Security LLC or its affiliates ("RSA") software described in this publication
requires an applicable software license.
RSA believes the information in this publication is accurate as of its publication date. The information is subject to
change without notice.
THE INFORMATION IN THIS PUBLICATION IS PROVIDED "AS IS." RSA MAKES NO REPRESENTATIONS OR
WARRANTIES OF ANY KIND WITH RESPECT TO THE INFORMATION IN THIS PUBLICATION, AND SPECIFICALLY
DISCLAIMS IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. CUSTOMER IS
SOLELY RESPONSIBLE FOR ENSURING THAT THE INSTALLATION OF THE APPLICATION IS PERFORMED IN A SECURE
MANNER. RSA RECOMMENDS CUSTOMERS PERFORM A FULL SECURITY EVALUATION PRIOR TO IMPLEMENTATION.
©
2022 RSA Security LLC or its affiliates. All Rights Reserved.
August 2022
Archer Dynamic Workflow Tracker Tool & Utility Implementation Guide
Table of Contents
Chapter 1: Overview of the Archer Dynamic Workflow Tracker Tool & Utility ............................................ 5
About the Archer Dynamic Workflow Tracker Tool & Utility ................................................................... 5
The Custom Object.................................................................................................................................... 6
Key Features and Benefits ........................................................................................................................ 7
Prerequisites (ODA and system requirements) ........................................................................................ 9
Chapter 2: Archer Dynamic Workflow Tracker Tool & Utility Components ............................................... 10
2.1 Status Values List built from scratch ................................................................................................. 10
2.2 Existing Status Values List ................................................................................................................. 13
2.3 Taking advantage of sub-phases ....................................................................................................... 14
Chapter 3: Installing the Archer Dynamic Workflow Tracker Tool & Utility Package ................................. 16
Installation Overview .............................................................................................................................. 16
Step 1: Extract the Files ........................................................................................................................... 16
Step 2: Configure the Integration ........................................................................................................... 16
Step 3: Test the Installation ..................................................................................................................... 16
Chapter 4: Configuring the Archer Dynamic Workflow Tracker Tool & Utility ........................................... 17
4.1 Status Values List built from scratch ........................................................................................... 17
4.2 Existing Status Values List ........................................................................................................... 20
4.3 Sub-phases and its advantages ................................................................................................... 20
Chapter 5: Custom Object Configuration.................................................................................................... 22
5.1 Introduction ...................................................................................................................................... 22
5.2 Basic Configuration ........................................................................................................................... 23
5.3 Basic configuration examples ........................................................................................................... 25
5.4 Tooltips.............................................................................................................................................. 26
5.5 Configuring the icons ........................................................................................................................ 27
5.6 Display Layer configuration............................................................................................................... 28
5.6.1 Concepts ........................................................................................................................................ 28
5.6.2 Display Layer Assignment .............................................................................................................. 30
5.6.3 Display Layer Selection .............................................................................................................. 31
5.6.3.1 Static selection ............................................................................................................................ 31
5.6.3.2 Dynamic Selection....................................................................................................................... 32
3
Archer Dynamic Workflow Tracker Tool & Utility Implementation Guide
4
Archer Dynamic Workflow Tracker Tool & Utility Implementation Guide
Archer Advanced Workflow allows for the addition of a non-linear multi-step workflow (which is a state
machine) to any application or questionnaire.
Workflows can be composed of multiple nodes with branches and joins and multiple forward and back
transitions.
As a general principle, given a workflow with any level of complexity, it is always possible to identify a
set of macro phases that are executed in sequence and aimed to provide a high-level view of the
execution progress. Each phase represents the macro-state that the high-level workflow is in at any
given moment in time.
Given that the execution flow is sequential, the implication here is that at any given moment the
workflow is in a specific phase that can be defined as the "current phase", while the previous phases are
considered "past phases" (complete) and the phases still to be executed are considered "future phases".
In summary, within the sequential execution flow we can identify one or more past phases, one current
phase and one or more future phases as shown in the image below:
Of course, it is also possible to transition back and forth between any two phases, not necessarily
adjacent:
5
Archer Dynamic Workflow Tracker Tool & Utility Implementation Guide
In the GRC space, the typical example is the assessment (any type of). The workflow starts, includes
some preliminary activities and then the assessment starts, so the first time it is done, it can be defined
“In progress”. After its completion, the assessment is sent to the reviewer where the latter could either
approve the submission and move it to the next stage or reject the assessment. In the latter case the
workflow transitions back to a status where the submitter can amend the assessment.
This pending resubmission status is NOT the same as the first time the assessment was edited (i.e. it was
already filled in), so the proper modelling of the workflow should include another status to keep track of
the changed conditions.
At a high level, this status is still about the editing of the assessment, so it does make sense to define an
Assessment Phase and two Sub-Phases to represent the initial assessment operation and the
assessments after a rejection:
In Progress Sub-Phase (initial assessment, landing in the current phase from the “left”, that is
from the past)
Rejected by Reviewer Sub-Phase (sub-sequent assessments after a rejection from the reviewer,
that is landing in the current subphase from the “right” that is from the future)
This possibility also allows us to keep track of the origin of the incoming transition into the Assessment
phase:
The “In Progress” sub-phase means I am doing the assessment for the first time; the workflow is
coming from the left (the beginning of the sequential flow).
The “Rejected by Reviewer” sub-phase means I landed again into the Assessment after a
rejected review; the workflow is coming from the right.
The image below summarizes and generalizes these concepts:
6
Archer Dynamic Workflow Tracker Tool & Utility Implementation Guide
level values list, where the first level (parent) models the workflow phases and the second level
(children) models the sub-phases. Values List items can be enabled or disabled, and this status is
acknowledged by the custom object, so that phases can be removed from the rendering. Moreover,
each values list item has a Description text field which is leveraged by the custom object to configure
some elements of the phases such as the icons and the text rendered. This allows for the configuration
of some aspects of the custom object without changing the code of the custom object, making it easy to
use! The picture below shows a fully rendered custom object (using a generic asset classification and
asset risk assessment as an example):
The graphics include various fully configurable elements as summarized by the following picture:
One of the key capabilities is the placement of the workflow tracker which can be set to be either “stuck
on the top” or placed anywhere in the record web form (i.e. any section or any tab within a web form).
In the first case, which is the default option, the workflow tracker is constantly anchored to the top, just
below the toolbar; when the record content is scrolled, the workflow tracker is always displayed on the
top.
Configurable placement: can be stuck on top so that it remains visible when you scroll the
content, or it can be placed in any position within the web form, including inside a tab
Configurable colors and support for color schemes (some of which are included by default)
Configurable size for any element like the height, width (can be stretched or not), text, etc.
7
Archer Dynamic Workflow Tracker Tool & Utility Implementation Guide
Supports the concept of “sub-phases” to keep track of the origin phase when you land into
another one
The tracker can be collapsed to save some real estate in the web form. The collapse/expand
status is configurable.
Fully responsive (works on mobile). Text is dynamically scaled depending on browser width.
Configurable tooltips (popovers) with configurable text
Portable across the dev/test/prod environments. The custom object uses the alias name to
target the Archer fields which usually persist as packages are installed into other environments
(as opposed to their FieldIds which may differ in each respective Archer instance and typically
requires modifying the custom object code).
Easy configuration. All the configurable parameters are handled as CSS variables stored at the
beginning of the custom object code and can be easily changed with any text editor before
copying the custom object code.
Source code available in two versions: fully commented code (useful for debugging) or
minimized (useful for production and half the size of the previous).
8
Archer Dynamic Workflow Tracker Tool & Utility Implementation Guide
9
Archer Dynamic Workflow Tracker Tool & Utility Implementation Guide
There are two deployment options, and the following flowchart summarizes the possible alternatives:
NO
Create a new custom object
Search the CSS variable named?-- Assign a name
Copy and paste the
chevron-statusvl-alias?_and change the
custom object code into Copy and paste the code from the
a text editor WFStatus value to the alias of the
values lis (e.g. Overall_Status) text editor into the box
Save the record
Each Archer field has a name and an alias. When a new field is created, the alias name mirrors the field
name (except for spaces and special characters). The only system requirement is that the alias name
must be unique within the application, but in general the field name and alias name can be different.
A values list field hosting the status information is needed to deploy the DWT. This field can pre-exist
within the application or questionnaire (e.g., a use case application with an existing workflow) or it can
be built from scratch. So, you have two options…
10
Archer Dynamic Workflow Tracker Tool & Utility Implementation Guide
change the alias name you would need to make a small change to the configuration parameters. See
Chapter Error! Reference source not found. Custom Object Configuration below.)
Make sure to select the custom sort order to set the proper sequence of statuses and set one of the
values list items as the default one.
Create a new custom object (accessible from the Add New Layout section of the Layout Designer of the
layout that will display the Custom Workflow Tracker) and place it wherever you want in the layout. Set
its name (e.g. “DWT”) and copy the source code of the custom object into the code window:
11
Archer Dynamic Workflow Tracker Tool & Utility Implementation Guide
Create a new record of the application you just modified. Make sure that one of the values list items is
selected (but a default should be defined), then save the record.
IMPORTANT
The first time the custom object is run, the spinner can display for several seconds (up to 20-30
seconds). This is normal, at least in the sandbox environment, and does not impact the overall
Archer functionality in any way and this means that you can still edit and read the record as usual
while the spinner is displayed. The technical reason of this delay is that, after a standby period, the
API framework must be powered up again due to the caching strategy. The “power-up delay”
depends on the configuration of the web server as well as the workload of the Archer instance, but
after the first use, retrieving the data via API usually takes less than a second.
12
Archer Dynamic Workflow Tracker Tool & Utility Implementation Guide
Assuming you use the default values list field alias name, the only action needed is the creation of the
custom object and the copying and pasting of the custom object source code.
The visual appearance of the workflow tracker can be changed to match the required style. Specifically,
the colors can be changed, and the custom object also supports color themes (some are provided by
default). This is another example with the default color scheme:
It is also important to point out that the custom object leverages the Archer RESTful APIs to retrieve the
values list information; given this data is available only when the content record is committed, the
record must be saved at least once. The default configuration of the custom object is set to hide the
tracker prior to the initial save of the record to avoid unnecessarily cluttering the layout, though it is
possible to configure the visualization of a warning message that is displayed on the top.
NOTE
The deployment of a custom object is always layout-specific.
This means that if you want to display (or execute) the custom object regardless the
user action node you are in, you will have to replicate the deployment of the custom
object in all the layouts defined (which is admittedly a tedious task).
If you can change the alias name of the existing values list, change it to the default value of
“WFStatus” so that you don’t have to change the configuration parameter in the custom object.
If, for whatever reason, you cannot change the alias name (e.g. the alias is being referenced in
mail merge templates or other custom objects), then you need to change the value of the
13
Archer Dynamic Workflow Tracker Tool & Utility Implementation Guide
“chevron-statusvl-alias” CSS variable in the custom object. You can change this value either after
you copied the source code into the custom object or before pasting it into the custom object’s
Code field using any text editor.
Adding the DWT to the applications that adopt this workflow can provide a visualization like this (as
seen is an “Operating Test Results” questionnaire):
In the example above, the operating test is approved, but as you can see there is also the Rejected
status which is placed after the Approved status in the linear flow of execution. This is a bit confusing.
To improve the visual representation of the workflow, it is possible to leverage on the sub-state
capability of the DWT.
This requires a small tweak to the structure of the value list items, by adding a new status we can name
“Completed” (or anything else) and move the existing Approved and Rejected status below it, as shown
in the picture.
In this way we have one “macro phase” named Completed and two sub-phases
named “Completed->Approved” and “Completed->Rejected”. Basically, this is one
macro phase and sub-phases provide more details about the completion of the
workflow. This is just one of the many possibilities when leveraging phases and sub-
phases.
When you apply these changes, the outcome is something like this:
14
Archer Dynamic Workflow Tracker Tool & Utility Implementation Guide
It is also important to point out that changing the structure of the values list items for an existing
workflow is not disruptive at all, because the workflow will use the “hierarchical version” of the
previous items, that is “Completed->Approved” instead of “Approved” and “Completed->Rejected”
instead of “Rejected”. The DWT will use the parent phase as the main phase to display, as show in the
previous picture.
The new hierarchical structure automatically extends to any previous created records:
15
Archer Dynamic Workflow Tracker Tool & Utility Implementation Guide
16
Archer Dynamic Workflow Tracker Tool & Utility Implementation Guide
We can configure custom code by creating a new status value list or from the existing status value list
17
Archer Dynamic Workflow Tracker Tool & Utility Implementation Guide
Make sure to select the custom sort order to set the proper sequence of statuses and set one of the
values list items as the default one.
Create a new custom object (accessible from the Add New Layout section of the Layout Designer of the
layout that will display the Custom Workflow Tracker) and place it wherever you want in the layout. Set
its name (e.g. “DWT”) and copy the source code of the custom object into the code window:
Create a new record of the application you just modified. Make sure that one of the values list items is
selected (but a default should be defined), then save the record.
18
Archer Dynamic Workflow Tracker Tool & Utility Implementation Guide
IMPORTANT
The first time the custom object is run, the spinner can display for several seconds (up to 20-30
seconds). This is normal, at least in the sandbox environment, and does not impact the overall
Archer functionality in any way and this means that you can still edit and read the record as usual
while the spinner is displayed. The technical reason of this delay is that, after a standby period, the
API framework must be powered up again due to the caching strategy. The “power-up delay”
depends on the configuration of the web server as well as the workload of the Archer instance, but
after the first use, retrieving the data via API usually takes less than a second.
Assuming you use the default values list field alias name, the only action needed is the creation of the
custom object and the copying and pasting of the custom object source code.
The visual appearance of the workflow tracker can be changed to match the required style. Specifically,
the colors can be changed, and the custom object also supports color themes (some are provided by
default). This is another example with the default color scheme:
It is also important to point out that the custom object leverages the Archer RESTful APIs to retrieve the
values list information; given this data is available only when the content record is committed, the
record must be saved at least once. The default configuration of the custom object is set to hide the
tracker prior to the initial save of the record to avoid unnecessarily cluttering the layout, though it is
possible to configure the visualization of a warning message that is displayed on the top.
19
Archer Dynamic Workflow Tracker Tool & Utility Implementation Guide
NOTE
The deployment of a custom object is always layout-specific.
This means that if you want to display (or execute) the custom object regardless the
user action node you are in, you will have to replicate the deployment of the custom
object in all the layouts defined (which is admittedly a tedious task).
If you can change the alias name of the existing values list, change it to the default value of
“WFStatus” so that you don’t have to change the configuration parameter in the custom object.
If, for whatever reason, you cannot change the alias name (e.g. the alias is being referenced in
mail merge templates or other custom objects), then you need to change the value of the
“chevron-statusvl-alias” CSS variable in the custom object. You can change this value either after
you copied the source code into the custom object or before pasting it into the custom object’s
Code field using any text editor.
Adding the DWT to the applications that adopt this workflow can provide a visualization like this (as
seen is an “Operating Test Results” questionnaire):
In the example above, the operating test is approved, but as you can see there is
also the Rejected status which is placed after the Approved status in the linear flow of execution. This is
a bit confusing.
To improve the visual representation of the workflow, it is possible to leverage on the sub-state
capability of the DWT.
This requires a small tweak to the structure of the value list items, by adding a new status we can name
“Completed” (or anything else) and move the existing Approved and Rejected status below it, as shown
in the picture.
20
Archer Dynamic Workflow Tracker Tool & Utility Implementation Guide
In this way we have one “macro phase” named Completed and two sub-phases named “Completed-
>Approved” and “Completed->Rejected”. Basically, this is one macro phase and sub-phases provide
more details about the completion of the workflow. This is just one of the many possibilities when
leveraging phases and sub-phases.
When you apply these changes, the outcome is something like this:
It is also important to point out that changing the structure of the values list items for an existing
workflow is not disruptive at all, because the workflow will use the “hierarchical version” of the
previous items, that is “Completed->Approved” instead of “Approved” and “Completed->Rejected”
instead of “Rejected”. The DWT will use the parent phase as the main phase to display, as show in the
previous picture.
The new hierarchical structure automatically extends to any previous created records:
21
Archer Dynamic Workflow Tracker Tool & Utility Implementation Guide
The sections for CSS, HTML and JavaScript code must generally be placed in that order, i.e. CSS is
declared before the HTML code.
CSS defines the visual appearance of the HTML elements, but it allows the definition of variables using
“key-value” pairs.
22
Archer Dynamic Workflow Tracker Tool & Utility Implementation Guide
The DWT custom object takes advantage of this concept by exposing its configurable elements using an
easily accessible CSS variable that is stored at the beginning of the custom object code.
{
"mdicon": "<name of icon>",
"titleprefix": "<text for the prefix of the tooltip title>",
"subtitle": "<text of the tooltip sub-title>",
When you click on the Edit link you get this web form:
23
Archer Dynamic Workflow Tracker Tool & Utility Implementation Guide
When you click on any item, regardless of its level, a form like this is displayed. (This example shows a
parent item, that is a level 1 item):
"mdicon": "grading",
"titleprefix": "Step:",
24
Archer Dynamic Workflow Tracker Tool & Utility Implementation Guide
It’s important to point out that all the JSON properties (a property is a name/value pair) are optional
as well as the whole JSON object. This implies that the Description of a values list item can be empty
(of course this is true for any new or existing values list) so that the chevron will display only the name
of phase and the tooltip will include just the title. In general, you can add or remove any of the
supported properties, but it’s paramount to not break the JSON format in the process. Specifically,
make sure quotes surround the property names and values, a colon separates the property name from
its value, and that properties are separated with a comma. If you want to add any of the parameters of
the basic configuration, you may start with the empty template of the JSON object reported below:
Copy and paste the text into a text editor like Notepad or Notepad++ (not Word as it adds hidden
{ EMPTY TEMPLATE
"mdicon": "",
"titleprefix": "",
"subtitle": "",
metadata). Add the text within the quotes, or remove the properties you don’t want to use, copy the
modified text and paste it into the Description information of the values list item you want to change,
and finally save the field.
NOTE
You can add a JSON object to the Description field of any VL item, but the custom
object will use only the properties that are applicable to the item level. Specifically,
the properties “mdicon”, “titleprefix”, “subtitle” and “displaytitle” are considered
when the JSON is applied to the level 1 (the parent) while the “spoverride” is the only
valid property for the JSON object of the VL item level 2 (the sub-phases).
25
Archer Dynamic Workflow Tracker Tool & Utility Implementation Guide
Display a phase with the title only. The tooltip includes a prefix and a subtitle
{
"titleprefix": "Phase: ",
"subtitle": "This is the subtitle of the phase"
}
Please remember that in case of errors in the JSON object format, no error message will be displayed at
the web form level, but the custom object issues messages in the web browser console. In the case of
unexpected outcomes, click F12 while in Chrome to access its Developer Tools to investigate.
5.4 Tooltips
The DWT custom object also supports tooltips (they are actually popovers as they require a specific click
on the phase to be displayed). By default, a tooltip content includes the name of the phase along with
the sub-phases, if defined for that phase.
Consider the following example:
The currently selected VL item is the parent item named “Current Phase”. When the children named
“Sub-Phase” is selected, this is how it is rendered:
26
Archer Dynamic Workflow Tracker Tool & Utility Implementation Guide
By default, i.e. when the Description is empty, the tooltip displays just the name of the phase title and
the available sub-phases. If you add an icon and a subtitle, this is what you get (see the corresponding
JSON content):
"mdicon": "filter_alt",
"titleprefix": "",
In this case you can also see the effect of the “spoverride” property:
This property allows the override of the default name of the sub-phase that is displayed below the
phase. In this case the default name is “In Progress”. However, since the VL item Level2 includes the
JSON object that includes the “spoverride” property, the displayed text is the overridden one.
Please note that this property is optional.
27
Archer Dynamic Workflow Tracker Tool & Utility Implementation Guide
lot more community integration. The DWT custom object uses the “Material Icons” and not the
“Material Design Icon” set. The latter is more extended, so if you pick an icon name from this set, the
icon will be displayed only if it’s also included in the Google icon set.
You can browse the available icons in Google Material Icon Set by visiting the following URL:
https://fonts.google.com/icons?selected=Material+Icons
For example, an icon search against the keyword “progress” yields the following results:
Clicking on the “Restart Alt” icon would display the following screen:
The text you must use for the mdicon property is the one on the right, i.e., “restart_alt”. Basically, the
icon names are all lowercase, with spaces replaced by underscore characters (_).
5.6.1 Concepts
The concept of “Display Layer” is inspired by the concept of “photo layer” available in many photo-
editing tools. A DWT phase is (statically) associated with a number greater than 0. This number
identifies a “virtual layer” which the phase or sub-phase belongs to. The custom object allows you to
select the layers that will be displayed at any given time, and this selection can be either static or
dynamic.
In the first case, the selected layers are defined as a configuration parameter in the custom object code
(CSS variables) and as such, the set of selected layers does not change during the execution of the
custom object. However, is an Archer object (application/questionnaire) is workflow-enabled, multiple
layouts can be defined and considering that custom-object are layout-specific, this implies that DWT
custom objects with different configurations can be defined.
In the second case, the selection of layers can be established through a multi-select values list defined
28
Archer Dynamic Workflow Tracker Tool & Utility Implementation Guide
in the Archer object. This implies that the set of displayed phases and sub-phases can dynamically
change at run-time, for example it can be updated through the “update node” in an Advanced
Workflow.
To better describe the concept, let’s assume we have an advanced workflow with two parallels paths
that share the start and end nodes. In the picture, the boxes represent the possible phases, not
necessarily the user action nodes:
L2 L2
START STOP
L1 L1
PH PH
L3 L3 L3
Path 2
P2, PH1 P2, PH2 P2, PH3
Layers (the circled number) are assigned to the phases, and optionally to sub-phases. In the example
above, the start and end nodes are assigned to Layer 1, so when the Layer 1 is selected, both phases
will be displayed.
If the custom object is configured to display layers L1 and L2, the displayed phases will be the ones
associated with path 1:
If the custom object is configured to display layers L1 and L3, the displayed phases will be the ones
associated with path 2:
Below you can see other examples which are screenshots of the real implementation.
These are all the phases of the DWT with the associated layer:
If the selected layers are 1 and 4, the displayed phases will be:
If the selected layers are 2 and 3, the displayed phases will be:
If the selected layers are 3 and 4, the displayed phases will be:
29
Archer Dynamic Workflow Tracker Tool & Utility Implementation Guide
And so on…
A few notes:
1) Display Layers are only about the visualization, that is they are filters applied during the
rendering of the chevrons. As you can see from the examples above, the visualization of the
phases is not influenced by the Past/Current/Future status. This means the currently selected
phase might not be displayed in a given point in time (this may happen especially for the
dynamic configuration)
2) There are no constrains in the definition of Display Layers, so the only check is about the
matching. This means that you can label a phase/sub-phase with Layer 1,2,3 and configure the
custom object to display the layer 7. In this case, since there is no match, an error will be
displayed. If no dynamic layers are selected, the static configuration will be used, and if the
latter is not defined, all the phases/sub-phases will be displayed by default.
30
Archer Dynamic Workflow Tracker Tool & Utility Implementation Guide
2) By using a specific property in the JSON content that can be included in the description. The
property is named “displaylayer” and the value is the layer number. This option is ONLY
available for phases.
This is how it looks like:
{
"titleprefix": "Step: ",
"mdicon": "grading",
"displaylayer": 3
The “property-based approach” can be used if, for some reason, the numeric value associated with the
VL item cannot be used to represent the display layer, simply because it’s used for something else. This
implies that the custom object will check first is a property with the display layer exist for the item, if not
the numeric value will be considered.
NOTE
The static and dynamic selection approaches are not equivalent performance wise.
The dynamic selection takes a little longer to run (<1s incremental delay) due to the
additional API calls to invoke.
31
Archer Dynamic Workflow Tracker Tool & Utility Implementation Guide
By default, the value is empty, which means the static configuration of the display layers is DISABLED.
To enable the static selection, you just must add a comma separated list of numbers that correspond to
the layers to display, for example:
--chevron-display-layers: 1,3,4;
This statement means that the phases or sub-phases that correspond to the values list items with
layers 1,3,4 will be displayed, while the phases/sub-phases with a different layer number will not be
displayed.
When is this approach useful?
Custom objects are layout-specific, so when a workflow uses multiple layouts, an instance of the DWT
custom object must be dropped into every layout. However, each instance can be individually
configured, so that the displayed phases can be layout-specific.
This is very useful to address the visualization issues related with multi-path workflows that leverage
the very same status values list, and the typical example is the Exception Request application in the
Issues Management use case. By using a different static selection, it is possible to display just the
phases and sub-phases specific to a given path, hence improving the overall visualization.
The static selection also works for new records since it’s pulled from the configuration parameters. In
this case, the current phase is set by using the default flag that can be associated to a values list item.
The default value is empty, which means the dynamic configuration is disabled.
To enable the dynamic configuration, the values list that hosts the layers to select, must be defined first
and its alias name should be used as the value of the configuration parameters. So, if the values list alias
is “Selected_Layers”, the configuration parameter looks like this:
--chevron-displaylayervl-alias: Selected_Layers;
The values list should be configured as follows:
Type: multi-select like pop-up or checkmarks
Text value: any text string to describe the layer
Numeric: the number that represents the display layer
This is an example of values list configured:
32
Archer Dynamic Workflow Tracker Tool & Utility Implementation Guide
The values list items can be set manually or, more frequently, in the context of an advanced workflow
along with an Update Content node. In this way, depending on the specific workflow path, the
phases/sub-phases can be dynamically selected.
It’s important to highlight that the dynamic configuration does not work for new records, since the
values list that selects the display layers cannot be read (the record is not yet committed in memory).
There is an interesting side effect of dynamic configuration.
If the parameter “--chevron-displaylayervl-alias:” is assigned the very same value of the parameter that
hosts the status values list “--chevron-statusvl-alias:”, the DWT will display only one chevron and
specifically the chevron that is currently selected.
For example, if these are the available phases and the “Asset Classification” is selected by using the
above-described trick, this is the chevron displayed:
33
Archer Dynamic Workflow Tracker Tool & Utility Implementation Guide
The display layer visualization is only temporary, since it’s mostly aimed for troubleshooting purposes
along with the log messages displayed in the web browser console.
Also note that this capability is not available for sub-phases since they are mostly always not displayed.
This new capability allows us to display multiple instances of DWT in different locations. Clearly, only
one instance can be “stick on the top” while multiple instances can be attached to Sections in the main
page or within Tabs. Each DWT instance can have its own configuration, that is each instance
references a specific status values list and has its own graphics appearance.
From a technical perspective, this capability does not require to create multiple instances of the DWT
custom object fields. The instances as configured by adding additional sets of instance-specific CSS
variables. Each set of variables is grouped through CSS class names (CSS namespace) that must be
34
Archer Dynamic Workflow Tracker Tool & Utility Implementation Guide
aligned with the name of the div tag that must be dropped into the desired location within the web
form to enable the visualization of the DWT.
This capability requires a slightly more complex configuration and involves a small change of the
JavaScript source code (just one line) and this was due to the characteristics of the CSS technology.
.StickOnTop {
/* MOST COMMONLY UPDATED */
--chevron-statusvl-alias: WFStatus;
--chevron-current-color-scheme: cs-default;
--chevron-display-for-new-records: no;
--chevron-app-alias: ;
--chevron-style: standard;
--chevron-tail-style: standard;
--chevron-tail-coloring: inherited;
--chevron-displaylayervl-alias: ;
--chevron-display-layers: ;
--chevron-divcontainer: stuck-on-top;
/* RARELY UPDATED */
--chevron-phasedone-icon: done_outline;
--chevron-checkmark_if_done: yes;
--chevron-display-status-persistent: yes;
--chevron-background: white;
--chevron-height: 3rem;
--chevron-phase-maxwidth: auto;
--chevron-phase-minwidth: auto;
--chevron-stretched-phases: 100%;
--chevron-animation-delay: 0;
--chevron-margin-top: 0px;
--chevron-margin-bottom: 5px;
--currsubphase-title-color: #000000;
--currsubphase-text-maxsize: 0.7rem;
--currsubphase-backgroundcolor: #DDDDDD;
--currsubphase-bottom-border-color: #a80520;
--popover-background-color: #f2f2f2;
--popover-title-color: #031f5a;
--popover-title-size: 1.1rem;
--popover-subtitle-color: #031f5a;
--popover-subtitle-size: 0.8rem;
--popover-subphase-color: #a80520;
--popover-subphase-size: 0.8rem;
--chevron-phasedone-color: #FFFFFF;
--phase-color-default: lightgray;
--phase-icon-size: 2.0rem;
--phase-title-maxsize: 1.1rem;
--phase-icon-color: #020202;
--phase-subphasebar-past-color: #3a3a3a;
--phase-subphasebar-current-color: #3a3a3a;
--phase-subphasebar-future-color: #3a3a3a;
}
At the bottom of the file, the initial function Sys.Applciation.add_load() includes the definition of an
array of strings, where each string corresponds to the both then name of the div container that will
35
Archer Dynamic Workflow Tracker Tool & Utility Implementation Guide
host the DWT (where the tracker will be displayed) and also the name of the CSS class (namespace).
These names must be aligned, so that the proper configuration variables can be selected for a given
DWT instance. This is how the source code looks in the default configuration:
// The custom object execution starts here
Sys.Application.add_load(function () { // When the document is loaded...
// List of div containers aimed to host the DWT instances.
// A custom object with the div container name must be configured and placed in
the layout
let DWTContainers=["StickOnTop"]
36
Archer Dynamic Workflow Tracker Tool & Utility Implementation Guide
--popover-subphase-color: #a80520;
--popover-subphase-size: 0.8rem;
--chevron-phasedone-color: #FFFFFF;
--phase-color-default: lightgray;
--phase-icon-size: 2.0rem;
--phase-title-maxsize: 1.1rem;
--phase-icon-color: #020202;
--phase-subphasebar-past-color: #3a3a3a;
--phase-subphasebar-current-color: #3a3a3a;
--phase-subphasebar-future-color: #3a3a3a;
}
.dwtFloating {
/* MOST COMMONLY UPDATED */
--chevron-statusvl-alias: MSStatus;
--chevron-current-color-scheme: cs-USA;
--chevron-display-for-new-records: no;
--chevron-app-alias: ;
--chevron-style: flat;
--chevron-tail-style: standard;
--chevron-tail-coloring: inherited;
--chevron-displaylayervl-alias: ;
--chevron-display-layers: ;
--chevron-divcontainer: dwtFloating;
/* RARELY UPDATED */
--chevron-phasedone-icon: done_outline;
--chevron-checkmark_if_done: yes;
--chevron-display-status-persistent: yes;
--chevron-background: white;
--chevron-height: 3rem;
--chevron-phase-maxwidth: auto;
--chevron-phase-minwidth: auto;
--chevron-stretched-phases: 100%;
--chevron-animation-delay: 0;
--chevron-margin-top: 0px;
--chevron-margin-bottom: 5px;
--currsubphase-title-color: #000000;
--currsubphase-text-maxsize: 0.7rem;
--currsubphase-backgroundcolor: #DDDDDD;
--currsubphase-bottom-border-color: #a80520;
--popover-background-color: #f2f2f2;
--popover-title-color: #031f5a;
--popover-title-size: 1.1rem;
--popover-subtitle-color: #031f5a;
--popover-subtitle-size: 0.8rem;
--popover-subphase-color: #a80520;
--popover-subphase-size: 0.8rem;
--chevron-phasedone-color: #FFFFFF;
--phase-color-default: lightgray;
--phase-icon-size: 2.0rem;
--phase-title-maxsize: 1.1rem;
--phase-icon-color: #020202;
37
Archer Dynamic Workflow Tracker Tool & Utility Implementation Guide
--phase-subphasebar-past-color: #3a3a3a;
--phase-subphasebar-current-color: #3a3a3a;
--phase-subphasebar-future-color: #3a3a3a;
}
38
Archer Dynamic Workflow Tracker Tool & Utility Implementation Guide
39
Archer Dynamic Workflow Tracker Tool & Utility Implementation Guide
40
Archer Dynamic Workflow Tracker Tool & Utility Implementation Guide
41
Archer Dynamic Workflow Tracker Tool & Utility Implementation Guide
42
Archer Dynamic Workflow Tracker Tool & Utility Implementation Guide
default
icystone
USA
wild
corona
greece
macarons
Color schemes are defined as CSS classes (see below). You can either change the colors of any of the
existing schemes or create a new scheme from scratch.
To create a new scheme:
1) Copy and paste an existing scheme
43
Archer Dynamic Workflow Tracker Tool & Utility Implementation Guide
Instead of editing the CSS code directly in the custom object box, a better approach is
to copy the code into a text editor like Notepad or Notepad++, make the changes, and
then copy the modified code back into the custom object box.
Below you can see the CSS variable for the color schemes included in the custom object.
.cs-default {
--phase-color-past: #00A357;
--phase-color-current:#176DC2;
--phase-color-future: #9E9E9E;
--phase-title-past-color: #FFFFFF;
--phase-title-current-color: #FFFFFF;
--phase-title-future-color: #212121;
--phase-subphasebar-past-color: #185c04;
--phase-subphasebar-current-color: #0c4379;
--phase-subphasebar-future-color: #333634;
--chevron-phasedone-color: #FFFFFF;
.cs-icystone {
--phase-color-past: #6B799E;
--phase-color-current:#EBC57C;
--phase-color-future: #a6c2ce;
--phase-title-past-color: #CCC;
--phase-title-current-color: #333;
--phase-title-future-color: #0a1136;
--phase-subphasebar-past-color: #a31800;
44
Archer Dynamic Workflow Tracker Tool & Utility Implementation Guide
--phase-subphasebar-current-color: #a31800;
--phase-subphasebar-future-color: #a31800;
--chevron-phasedone-color: #FFFFFF;
.cs-USA {
--phase-color-past: #1F1A4F;
--phase-color-current: #C82024;
--phase-color-future: #EEEEEE;
--phase-title-past-color: #EEE;
--phase-title-current-color: #EEE;
--phase-title-future-color: #0a1136;
--phase-subphasebar-past-color: #a31800;
--phase-subphasebar-current-color: #a31800;
--phase-subphasebar-future-color: #a31800;
--chevron-phasedone-color: #EEE;
.cs-wild {
--phase-color-past: #68c077;
--phase-color-current: #FFD55A;
--phase-color-future: #47547e;
--phase-title-past-color: #EEE;
--phase-title-current-color: #770000;
--phase-title-future-color: #eee;
--phase-subphasebar-past-color: #a31800;
--phase-subphasebar-current-color: #a31800;
--phase-subphasebar-future-color: #a31800;
--chevron-phasedone-color: #EEE;
45
Archer Dynamic Workflow Tracker Tool & Utility Implementation Guide
.cs-corona {
--phase-color-past: #005A9C;
--phase-color-current: #FFCB05;
--phase-color-future: #EEE;
--phase-title-past-color: #EEE;
--phase-title-current-color: #333;
--phase-title-future-color: #333;
--phase-subphasebar-past-color: #a31800;
--phase-subphasebar-current-color: #a31800;
--phase-subphasebar-future-color: #a31800;
--chevron-phasedone-color: #FFCB05;
.cs-greece {
--phase-color-past: #EB8F90;
--phase-color-current: #FFB471;
--phase-color-future: #ADBED2;
--phase-title-past-color: #333;
--phase-title-current-color: #770000;
--phase-title-future-color: #333;
--phase-subphasebar-past-color: #a31800;
--phase-subphasebar-current-color: #a31800;
--phase-subphasebar-future-color: #a31800;
--chevron-phasedone-color: #333;
.cs-macarons {
--phase-color-past: #B7DDE0;
46
Archer Dynamic Workflow Tracker Tool & Utility Implementation Guide
--phase-color-current: #FFD0D6;
--phase-color-future: #FEE19F;
--phase-title-past-color: #333;
--phase-title-current-color: #770000;
--phase-title-future-color: #333;
--phase-subphasebar-past-color: #a31800;
--phase-subphasebar-current-color: #a31800;
--phase-subphasebar-future-color: #a31800;
--chevron-phasedone-color: #333;
.cs-jeweldark {
--phase-color-past: #2B628B;
--phase-color-current: #92363B;
--phase-color-future: #A87932;
--phase-title-past-color: #DDDDDD;
--phase-title-current-color: #DDDDDD;
--phase-title-future-color: #DDDDDD;
--phase-subphasebar-past-color: #a31800;
--phase-subphasebar-current-color: #a31800;
--phase-subphasebar-future-color: #a31800;
--chevron-phasedone-color: #DDDDDD;
47
Archer Dynamic Workflow Tracker Tool & Utility Implementation Guide
The installation package includes a sample Archer application that is aimed to get started as quickly as
possible, so that you can be familiar with the functionalities and configuration.
These are the steps to install the application and run the first step:
Install the package (no mapping required) selecting all the components.
Edit the application using the application builder.
Edit the fields “WFStatus” and “Demo” (the values lists used by the custom object) to restore
the proper custom order as described by the pictures below.
o This step is necessary because the custom sort order configured for the values lists is
not retained across the environments when deployed using packages. If you don’t do
this, the visualization of the DWT will be scrambled.
48
Archer Dynamic Workflow Tracker Tool & Utility Implementation Guide
Now you can start tweaking the configuration using the guidelines provided in the previous chapters.
49
Archer Dynamic Workflow Tracker Tool & Utility Implementation Guide
Chapter 7: Troubleshooting/FAQ
Q: I deployed the custom object. Why isn’t anything showing up?
The first thing to do is to open the web browser console (F12 in Chrome/Edge) and look at the
console messages. The most common reason is that you changed the variable “Chevron-
divcontainer” using a name the DWT does not know, so please check the names.
Q: I have configured the JSON object, but the configuration is ignored by the custom object. What
did I do wrong?
The most common cause is the wrong format of the JSON object. In case of errors, the content of
the whole JSON object is ignored, so that the tracker can still be displayed, but the content of the
popover does not include the basic configuration. Please check the quotes, colons, and the commas
to make sure the syntax is correct. Also consider that some “ghost characters” might be included,
especially if you copy/paste the JSON content from the web or a Word document. In this case, first
copy/paste the JSON into a text editor to remove formatting.
- If an item at level 2 (children) level is disabled, only that item is disabled. Sibling items and the
parent item are left intact.
Q: I deployed a package with an application that hosts the DWT custom object and the
visualization of the phases is wrong (out of synch with the expected ordering).
What’s happening?
The reason is that when you move an application across two different environments (e.g. from dev
to prod) the custom ordering you configured for the status values list is not preserved.
The issue can be easily fixed by editing the values list items and restore the ordering of the items and
save the field or simply save again the field.
Q: I see a red banner on the top with message “No item selected in Status Values List”.
What does it mean?
The values list you are using to track the status to render, is currently set to the item “No Selection”
50
Archer Dynamic Workflow Tracker Tool & Utility Implementation Guide
which means no item has been selected. This typically happens when you add the custom object to
an application and the values is already defined and has no value assigned. The best way to prevent
this is by setting as default item one of the items in the values list, so that a default status is already
selected when the record is created.
Q: I configured the icons via the JSON content, but the icon does not show up and I see many
spaces before the name of the phase. What’s happening?
The DWT object only supports the Material Icons by Google. The name of the icon must be one of
the set available here https://fonts.google.com/icons
If the icon name is mistyped, the custom object has now way to check it at runtime, so blank spaces
are displayed. The solution is to check the name od the “mdicon” property in the JSON content.
Q: Why I can view the workflow tracker only when the record is opened in edit mode?
The Archer custom object has a display option (at the bottom of the property panel) that includes
these three options:
Display when editing a record
Display when viewing a record
Display the custom object when viewing or editing a record
The first is the default one, so you must change the option to the third.
Q: I want to get rid of the line displayed below each chevron that includes sub-phases.
How can I do it?
The configuration parameter “--phase-subphasebar-color” allows to configure the color of the “sub-
phase bar”. The CSS color codes can be of different types and fully support transparency. If the RGC
color coding is used, you can made fully transparent a color by adding “00” at the end of the hex
color code. For example, if the color code is #CC2233, you can make the bar fully transparent by
using the color code #CC223300 (of course, since this is transparent, you can use any combination
for the first 6 hex digits…)
51
Archer Dynamic Workflow Tracker Tool & Utility Implementation Guide
52