Close popover
Pratik A (pratik)
Cognizant Technology Solutions
Strategic Solution Architect
Cognizant Technology Solutions
pratik Member since 2013 13 posts
Cognizant Technology Solutions
Posted: September 22, 2017
Last activity: May 18, 2020

Control outage during essential maintenance


In many scenarios, it may not be prudent to bring the server down to prevent users from accessing the application during a scheduled maintenance. Moreover, events such as post-deployment tasks that usually take longer than anticipated to complete (like work update etc), users logging-in intermediately will only make things worse.

This solution will come in handy during such events as the utility will not only prevent end-users from logging into the application, but also allow administrator and developers continue working uninterrupted. While an intuitive message to the users indicating the maintenance is in progress, should prove effective (something like this)

Before proceeding, note that this approach is alternative to the one suggested by Pega, but requires less customization when compared to the article given here.


Solution Approach

The core functionality just requires a simple activity rule. However, additional UI rules provide an intuitive experience for both administrators and the end users. You will need -

  1. Activity (switchOutage) - to propel changes when invoked by the administrator.
    1. Called from the Local Action
    2. Takes input from end user whether to initiate/end the maintenance outage
    3. Browse through a list of operator profiles under the scope of this outage
    4. Open each record recursively, calling the child activity
    5. Save changes to the operator records
  2. Child Activity (SetStartingActivity, customized OOTB) - to update required operator profiles
    1. A minor customization is needed so that activity can accept input parameter for the switch
    2. Also, the activity was found to have operator detail hard-coded previously which will need to refer the current operator in loop instead
  3. Navigation (pySystemSetting, customized OOTB) - to add an entry to the Designer Studio within System > Settings LP.
    1. Add a new entry to call the local action, with appropriate display settings
    2. I used local action instead of LP so that a new Harness could be avoided from creating altogether
  4. Local action (Maintenance) - to invoke settings display to the administrator, and fire the switch
    1. Section to display information to the administrator
    2. Post activity to fire the switch, with parameter as input taken from administrator
  5. Section (OutageSwitch) - to display information for administrator to switch the maintenance outage
    1. Accepts a boolean value from the administrator to decide whether outage needs to be initiated or ended.
  6. HTML (FullHeader, customized OOTB) - to display information to the end users when an outage is in progress.
    1. Necessary message indicating an outage is in progress
    2. Log off link



Pega Platform 7.4 Enterprise Application Development Dev/Designer Studio System Administration Installation and Deployment