The Self Service template displays lists of workflow tasks users can carry out. You can use a range of filters to control the process instances that will be considered. From that set of process instances users will see lists of the tasks that are assigned to them, or that they are eligible to claim (ie they are a candidate for).
The template can also be set up to give an overview of all current and historic requests started by any user.
Articles using the template should be secured using standard iCM security. Self Service displays tasks and information relevant to the current user - a user has to be logged in so the template knows who they are.
Note that this version of Self Service requires workflow processes to be indexed in the search. The IndexWorkflowProcesses Scheduled Tasks needs to be run once to build the search collection (once built the collection is kept up to date by the workflow worker).
Page Title and Content
The Self Service template displays its title and content, including inline elements, in the same way as the Default template.
Assisted Service - Use on Behalf of Another User
This option in the article extras controls how the article behaves when it's used in with the Assisted Service template. If unchecked, when a staff member is assisting another user, the article will display the tasks and processes for the user that is being assisted. When checked, the article will always display requests for the currently logged in user.
If you do not have the Assisted Service template, this setting has no effect.
Filters
Filters are set up in the article extras. They control the process instances that will be returned by the template and provide controls that users can use to find tasks relevant to them.
See Filtering in Self Service and User Requests for a detailed look at building filters.
Claiming the "Next" Task
Rather than displaying a list of all claimable tasks (see below), the template can display a panel with a single button. Pressing the button will assign the next task (ie the task that would usually appear at the top of the claimable task list) to the user and display the relevant task form. The panel can be shown or hidden using the "Show panel" drop-down in the article extras. The text above the button can be changed using the "Next claimable task message" text box.
Assigned Tasks
This panel shows tasks for the selected processes that have been claimed by, or assigned directly to, the user. They will remain with the user until complete or, if the option is enabled, they are unclaimed. Unclaiming a task returns it to the claimable tasks list.
Panel Configuration
The panel can be shown or hidden using the "Show panel" drop-down in the article extras. The heading can be changed using the "Assigned tasks heading" text box.
Unclaiming Tasks
Whether or not users can unclaim tasks is controlled by the "Allow tasks to be unclaimed" drop-down in the article extras. If enabled users can select tasks using the checkboxes and press the "Unclaim selected tasks" button. If disabled the column of checkboxes and button are hidden.
When unclaiming multiple tasks there can sometimes be a delay between the page refreshing and the background processing. Unclaimed tasks may still appear in the panel in a disabled state until the next page refresh.
The user tasks in a workflow model can be set up to prevent unclaiming. If the "prevent unclaim" task listener has been added to a task the panel displays "N/A" rather than a checkbox. This is also true if a task has been assigned directly to a user and there are no other eligible candidates to claim the task if it were to be unclaimed.
Column Configuration
The panel has four columns. Their titles can be changed using the text boxes in the article extras.
- Process Description - The description of the workflow model, which can include process variables, and business key. See the Self Service section of Workflow and History Data In Assisted Service, Self Service and User Requests for more information
- Task Created Time - The date and time the workflow execution arrived at the current task.
- Task Due Date - The task due date set in the workflow model or "N/A" if one hasn't been set for this task. This column can be toggled on or off in the article extras.
- Task Details - The description of the current task, which can include process variables, or if there is not description, the task name. See the Self Service section of Workflow and History Data In Assisted Service, Self Service and User Requests for more information. When a user clicks on a task description (styled as a button) they'll be taken to the relevant task form.
View All
The "View all" button links to a paged view of all of a user's tasks. This view includes a keyword search and any filters set up in the article extras.
The created and due columns can be sorted by time ascending or descending.
Claimable Tasks
This panel displays any tasks for the selected processes that the current user can claim. To claim a task a user must be a task candidate (either directly or as a member of one of the candidate groups).
Panel Configuration
The panel can be shown or hidden using the "Show panel" drop-down in the article extras. The heading can be changed using the "Claimable tasks heading" text box.
Column Configuration
The columns in this panel are the same as those in the assigned tasks panel.
A user can claim tasks by checking the checkboxes next to them and pressing the "Claim selected tasks" button. Claiming a task will move it to the current user's assigned tasks list. The "Perform task" button will take the user straight to the relevant task form, claiming it automatically.
When claiming multiple tasks there can sometimes be a delay between the page refreshing and the background processing. Claimed tasks may still appear in the panel in a disabled state until the next page refresh.
Active Processes
The active processes panel displays information about the processes selected in the general settings filter. It can be set up to provide an overview of requests raised by the current user, or display information about requests started by anyone. The panel is useful if you want to provide an overview for a staff administrator.
Panel Configuration
The panel can be shown or hidden using the "Show panel" drop-down in the article extras. The heading can be changed using the "Active processes heading" text box.
The "Show processes" radio buttons set whether requests started by the current user, or those started by anyone should be shown. This setting should not be enabled if the self service article is going to be used by members of the public.
Column Configuration
The panel has four columns. Their titles can be changed using the text boxes in the article extras.
- Process Description - The description of the workflow model and business key
- Process Start - The date and time the workflow process started
- Started By - The username of the user who started the process
- Current Tasks - Tasks in this process that are assigned to the current user, or the text "N/A"
History
The history list displays information about completed processes and history items that are "sealed" (ie items that can no longer be written to, like histories relating to completed workflow processes).
Requests and History Labels
The histories that appear on the Self Service template come from iCM's History Service. Following our conventions for Labelc Histories and Reporting Data, a single request may have more than one history associated with it. For this reason the Self Service template displays histories that have a labela and labelb value, but excludes any histories that also have labelc/d/e values to avoid duplicates appearing.
Panel Configuration
The panel can be shown or hidden using the "Show panel" drop-down in the article extras. The heading can be changed using the "History heading" text box.
The "Histories to show" radio buttons set whether histories involving the current user, or those generated by anyone should be shown. Histories count as involving a user if their
Column Configuration
The panel has four columns. Their titles can be changed using the text boxes in the article extras.
- Description - The description in the history's subject. This can be updated by history events setting a new value for the
historyDescription property (the most recent value is used) - Started By - The
userId in the history's subject data. If you are only showing histories started by the current user, this column is omitted - Date Started - The value of the history's
created property - Date Completed - The value of the history's
lastupdated property
Process Overview Dialog
Process and history descriptions link to a summary of the request they relate to. Where a user is eligible, they can claim, unclaim or carry out a task.
Summary
The summary panel displays the most recent public summary history event for the process. The summary data is displayed using the form defined in the summary event. See the Workflow and History Data In Assisted Service, Self Service and User Requests article for more information.
Event Details
Beneath the summary a chronological list of events is displayed, with the most recent at the top. These events are taken from the history associated with the request. Each event includes the following.
Title
The title is the value of the history event's
Date and Time
The date and time of the event are the values of the history event's
View Details Link
Listed events may display a "View details" link. These links are only present if an event they has form data saved with it. Clicking the link displays the saved form data. You cannot control, via the Self Service configuration, whether this link appears or not - they will always appear if form data has been saved with an event. The data for the event, and the name of the form used to display it, are taken from the relevant history event.
History Details Log
This section of the article extras controls what appears in the event log beneath the summary.
Display History Events
If "Yes", standard history events will be displayed (respecting the public/private setting). Setting this as "No" means that a process or history description will only display a summary of the process/history (the "Summary" panel in the screenshot above).
Include Private Events
If "Yes" then "private" events will appear in the list. It is strongly recommended that private events are only displayed on articles secured to staff/admin users. Private events are generally used to record user tasks carried out by staff members that do not need to be seen by the person who raised the request.
Include Summary Events
If "Yes", summary events will appear in the list. Summary events are generated in addition to standard events. They are used to update the main summary displayed above the event list. If displayed users will see two events for every action (one standard event and one summary event). For this reason we don't recommend including them.
Displaying Task Notifications
It's possible to get a count of self service tasks and display them as a notification. The task badge is normally attached to a link to the self service article the count came from (as in the example above), but in in theory any item on the page could be targeted.
Task badges are implemented using custom JavaScript, uploaded into iCM as a media item and added to a site via the subsite configuration.
Example Implementation
This example shows how to add a count of assigned tasks to a link in the top utility menu of the Chill theme.
(function() {
let loadCount = function() {
let selfServiceLink = document.querySelector('header > div.header__utilities > div.container > ol.utilitymenu.utilitymenu--top > li.utilitymenu__item > a.utilitymenu__link[href="https://www.mywebsite.com/article/3721/My-Tasks"]');
if (selfServiceLink) {
let client = gi.selfservice.client('./article/1673');
client.getAssignedTasksCount(function(count) {
if (count > 0) {
let badge = document.createElement('span');
badge.setAttribute('style',
'border:2px solid;border-radius:10px;' +
'background-color:rgba(192,0,0,1);' +
'color:rgba(255,255,255,1);' +
'position:absolute;top:0;padding:1px;' +
'min-width:20px;max-height:20px;box-sizing:border-box;' +
'font-size:80%;text-align:center;line-height:16px');
badge.setAttribute('aria-hidden', 'true');
badge.innerHTML = count;
selfServiceLink.appendChild(badge);
}
});
}
};
if (document.readyState === "complete" || document.readyState === "interactive") {
loadCount();
} else {
document.addEventListener("DOMContentLoaded", loadCount);
}
}());
selfServiceLink : Using the JavaScript querySelector find the element you would like to attach the badge togi.selfservice.client : This is the Self Service article that the count should be taken from. You can provide an absolute URL or relative pathclient.[function] : one of- getAssignedTasksCount
- getClaimableTasksCount
- getActiveProcessesCount
- getCompletedHistoriesCount
This example is similar to the one above, but combines the assigned and claimable task counts. It attaches the badge to a block on the Chill theme home page:
(function() {
To implement either of these examples on your own site you'll need to:
let loadCount = function() {
let selfServiceLink = document.querySelector('.menu__block[href*="article/9908/Block-1"]');
if (selfServiceLink) {
let client = gi.selfservice.client('./article/2961');
client.getAssignedTasksCount(function(assignedCount) {
client.getClaimableTasksCount(function(claimableCount) {
const totalCount = assignedCount + claimableCount;
if (totalCount > 0) {
let badge = document.createElement('span');
badge.setAttribute('style',
'border:2px solid;border-radius:10px;' +
'background-color:rgba(192,0,0,1);' +
'color:rgba(255,255,255,1);' +
'position:absolute;top:0;padding:1px;' +
'min-width:20px;max-height:20px;box-sizing:border-box;' +
'font-size:80%;text-align:center;line-height:16px');
badge.setAttribute('aria-hidden', 'true');
badge.innerHTML = totalCount;
selfServiceLink.appendChild(badge);
}
});
});
};
};
if (document.readyState === "complete" || document.readyState === "interactive") {
loadCount();
} else {
document.addEventListener("DOMContentLoaded", loadCount);
}
}());
- Update the script with your own query selector (to find the element you want to attach the badge to)
- Update the gi.selfservice.client with the article ID of the Self Service article you want to count the tasks from
- Add your script as a JS media item in iCM and add it to the custom JavaScript in your subsite configuration