Progress Maps are a new graphical feature introduced in SCCD Version 7.5 (maximo 7.6) which provides an easy to grasp view of the state of the current record.
The following is an example (out of the box) of the Service Request application from SCCD. Rather than displaying the current Status value as a textual field, a series of status values are displayed in sequence forming a progress bar or 'map'. The current status value is highlighted in green with entries to the left in blue and entries to the right in grey.
Note that this facility is not indicating that the status has moved through the various states - rather only the current status is being highlighted within an ordered list of status groups\values!
Behind the scenes the Progress Map consists of a single xml tag supported by a number of System properties, conditions and domains.
This is the code which defines the above Progress Map:
Note that the flowseqmaxproperty value identifies an expression which is evaluated for each record to identify a specific System Property. In the above example the expression is as follows:
pmgui.progressmap.[ISSLAAPPLIED|sla].[SCTICKET|sc].{class}.ticket.seq
The sections in square brackets such as [SCTICKET|sc] identify a condition (SCTICKET). If the condition evaluates to True, then the literal value to the right of the condition is included in the target property name (e.g. if SCTICKET evaluates to True then the 'sc' is included in the resulting property name)
Attributes in curly brackets such as {class} represent actual fields from the target record selected. In this instance within the SR application the CLASS field will always have the value sr.
So for a Service Request (class=sr) generated from the Request Catalogue (SCTICKET = True) and where an SLA has not been applied (ISSLAAPPLIED = False), the expression will evaluate to the following:
pmgui.progressmap.sc.sr.ticket.seq
At this point the system checks for a System Property with a matching name.
Here is the definition associated with the graphical view of the Service Request above:
pmgui.progressmap.sr.ticket.seq =
SRSTATUS|NEW, SRSTATUS|QUEUED, SRSTATUS|INPROG, SRSTATUS|PENDING, SRSTATUS|RESOLVED, SRSTATUS|CLOSED
The way this works is the expression consists of a series of groups separated by commas. If there are five commas, then there are six groups identified. Thus there will be six bricks in the resulting Progress Map graphic. Each group in turn contains one or more values separated by the colon characters (e.g. FRED:BILL:JOHN,STEVE). In the above example each group only has a single entry - so there are no ':' characters present. Each value (e.g. 'SRSTATUS|NEW') is actually the Content UID associated with the specific Synonym Domain entry. Mostly these values have the form <domainname>|<value> but there are exceptions. Where there are more than one entry present within a Group, the text that id displayed for that brick will be the description associated with the first entry within the group.
e.g. the following group:
SRSTATUS|NEW:SRSTATUS|APPLM:SRSTATUS|APPFM
Would evaluate to a single brick with the description associated with the SR NEW Status Value, and would be highlighted for all records with a status of NEW, APPLM or APPFM.
Some further examples of Progress Map properties:
Within the Synonym Domain, the Content UID value is visible within the View/Modify Conditions option when activated for the row in question (alternatively you can look at the SYNONYMDOMAIN.CONTENTUID database column via SQL)
The following Progress Map:
SRSTATUS|NEW,SRSTATUS|APPR:SRSTATUS|APPLM:SRSTATUS|APPFM,SRSTATUS|QUEUED, SRSTATUS|INPROG:SRSTATUS|PENDING,SRSTATUS|RESOLVED,SRSTATUS|CLOSED
would evaluate as:
SRSTATUS|NEW,
SRSTATUS|APPR:SRSTATUS|APPLM:SRSTATUS|APPFM,
SRSTATUS|QUEUED,
SRSTATUS|INPROG:SRSTATUS|PENDING,
SRSTATUS|RESOLVED,
SRSTATUS|CLOSED
So six sections - labelled New, Approved, Queued, In Progress, Resolved, Closed.
You can add in additional Progress Map related System properties as required, in fact we have set up additional entries and have added the Worktype to the expression - so as to be able to distinguish between different types of Change records. (e.g.
pmgui.progressmap.[ISSLAAPPLIED|sla].[SCTICKET|sc].{worktype}.{class}.ticket.seq plus the additional System properties that can result)
And of course there is the flowstatusattribute value which in this case identifies the status field on the source record, but seems to be capable of being mostly anything with an associated domain (e.g. I have setup sample Progress Maps based on the Change Phase of the target record - custom field used to identify the logical phase in which a Change currently resides linked to an ALN Domain)
What's next to test is whether this facility can be added to existing CHANGE\WORKORDER related applications outside of SCCD!