Configure Change Management Systems

FlexDeploy change management systems integration (out of box or custom) can be configured globally for use by various Projects or Pipelines. Configurations can be overridden at the Application, Folder or Pipeline (external approval gate) levels as necessary.

To configure the integration at the Global level, select the Administration->Change Management Systems menu item.

Select a particular change management system by clicking its name, or by selecting the row and clicking on the Edit button.  To create a new Change Management System click the New button.

You can the update name, description and Java implementation for custom integrations, whereas, only the description may be modified for out of the box integrations).

Field Name

Required

Description

Id

Yes

System generated identifier (read-only).

Name

Yes

Name of the change management system. (read-only for out of box integrations)

Description

No

Description of the change management system.

Java ImplementationYesJava Implementation class for the change management integration. (read-only for out of box integrations)

Ticket Fields

A change management "ticket" is the generic term for a change object, which may be referred to as a "change request" or another term by a particular provider.  Every provider has different fields (or attributes) within the ticket, and most often supports decorating the object with your own custom fields.  The Ticket Fields tab provides the metadata data describing the relevant fields for a the provider implementation.

To add a new ticket field, click on the Create button and enter the required Field Code, Display Name, Description, Data Type, and whether or not a value is required in order to create a new CMS Ticket.

For ServiceNow, BMC Remedyforce, Freshworks Freshservice, and Jira ITSM, there are a number of out of the box fields which are made available for you by default.  These included fields cannot be removed.

The Field Code must match the unique identifier as defined by the provider (i.e. JSON attribute names used in the provider's REST API).

@Since 5.5.0.1, dot-notated fields are supported. This allows for setting fields that are not at the root JSON level in the provider's REST API. At this time, using dot notation to access JSON arrays is not supported.

Example: Adding "fields.customfield_10102.name" to Jira ITSM as a custom field allows accessing and setting the name attribute within the customfield_10102 JSON object while creating a change ticket. 

ServiceNow Ticket Fields

Field CodeDisplay NameDescriptionData TypeRequired
short_descriptionShort DescriptionA short description for the change ticketStringNo
description DescriptionA description for the change ticketStringNo
stateState
StringNo
sys_class_nameSys Class Name
StringNo
approvalApproval
StringNo
start_datePlanned Start Date
StringNo
end_datePlanned End Date
StringNo
closed_byClosed By
StringNo
impactImpact
StringNo
priorityPriority
StringNo
riskRisk
StringNo
requested_byRequested By
StringNo
assignment_groupAssignment Group
StringNo
assigned_toAssigned To
StringNo
categoryCategory
StringNo
cmdb_ciCI
StringNo
typeType
StringNo

BMC Remedyforce Ticket Fields

Field CodeDisplay NameDescriptionData TypeRequired
BMCServiceDesk__Change_Description__cChange DescriptionA description for the change ticketStringNo
BMCServiceDesk__Reason_for_Change_Details__cChange Details


Freshworks Freshservice Ticket Fields

Field CodeDisplay NameDescriptionData TypeRequired
subjectSubjectA subject for the change ticketStringNo
descriptionDescriptionA description for the change ticketStringNo
change_typeChange  Type
LongYes
statusStatus
LongYes
priorityPriority
LongYes
impactImpact
LongYes
requester_idRequester Id
LongYes
riskRisk
LongYes
planned_start_dateStart Date
StringYes
planned_end_dateEnd Date
StringYes

Jira ITSM Ticket Fields

Field CodeDisplay NameDescriptionData TypeRequired
fields.summarySummarySummary of the changeStringYes
fields.project.keyProject KeyKey of project the change is inStringYes
fields.issuetype.nameIssue TypeType of issue for ticketStringYes
fields.descriptionDescriptionDescription for the changeStringNo
fields.priority.namePriorityPriority of the changeStringNo

Default Configuration

The Default Configuration tab allows global configuration for the CMS integration, which defines whether a ticket is required for deployment requests or whether tickets should be automatically created.  When creating tickets automatically as part of a deployment request, default values can be provided for one or more of the ticket fields.  

The Default Configuration tab provides configuration for the Global scope, meaning it applies to all deployment system-wide.  One or more of these options may be selected.

  • Require Change Ticket for Deployment - When submitting deployment requests, a user is required to specify a valid Change Management Ticket number.
  • Create Change Ticket on Deployment - When a deployment request is submitted, a Change Ticket is automatically created within Change Management System.

When choosing Create Change Ticket on Deployment you have the option of providing a Groovy expression to calculates values for specific fields using a number of context variables. 

Since the field values are Groovy expressions, String literals must be entered in double quotes.


All Groovy script fields have access to the following variables, and can be selected using the  drop-down on the right side of the field:

FieldDescription
EnvironmentNameThe name of the target environment.
PackageName1The package name requested for deployment. Same as ProjectVersion for full deployments.
ProjectName1The name of the project requested for deployment.
ProjectVersion1The project version which was requested for deployment.
StreamName1The stream from which the project version was built from.
WorkflowRequestor1The FlexDeploy username which requested the deployment.
ReleaseName2The name of the release being executed.

Variables are only applicable when the ticket scope is Project/Package

Variables are only applicable when execution occurs within the context of a release

Example Groovy expressions

  • "Deployment request to " + EnvironmentName + " for project " + ProjectName + " by " + WorkflowRequestor
  • "Deployment for " + ProjectName + " failed in " + EnvironmentName
  • "Simple String"

If you will be creating CMS Tickets per project/package in a pipeline external approval gate, EnvironmentName is the only Groovy variable that is applicable since the context is not related to a particular workflow request.  The other variables will resolve to an empty String in that case.

Environment Configuration

Likewise, the Environment Configuration tab allows overriding these settings globally, by environment (e.g require a change ticket for Production deployments only).  Click the Add button to add a new configuration, and select an environment.  This overrides any configuration on the Default Configuration tab for the selected environment.

 

The remaining configuration options are exactly as defined for the Default Configuration.  Optionally, click the Add button again to add configuration for other environments.  

Configuration use within Pipeline

The Require Change Ticket for Deployment option, for both Default Configuration and Environment Configuration, is not applicable for CMS integration within a Pipeline. That configuration is implied by the presence of an External Approval Gate within a pipeline stage.  The Create Ticket checkbox of the External Approval gate is defaulted based on the global configuration.

Properties

The Properties tab lists the metadata which is required for this Change Management System.  Values for these properties will be provided when you create a Change Management Instance in the topology.  See Creating/Editing a Change Management Instance, Property metadata is read-only for out of box integrations.

ServiceNow Properties

Key NameDisplay NameDescriptionData TypeRequiredEncrypted
SN_URLServiceNow URLServiceNow URLStringYesNo
SN_PORTServiceNow PortServiceNow PortStringNoNo
SN_USER_NAMEServiceNow User NameServiceNow User NameStringYesNo
SN_PASSWORDServiceNow PasswordServiceNow PasswordStringYesYes
SN_APPROVED_SCRIPTApproved Check ScriptServiceNow approved check Groovy scriptStringNoNo
SN_REJECTED_SCRIPTRejected Check ScriptServiceNow rejected check Groovy scriptStringNoNo
SN_DONT_POLLDon't pollDisable automatic polling (every minute) of ServiceNow tickets for status changes. Check if using REST API to communicate status changes to FlexDeploy.BooleanNoNo

BMC Remedyforce Properties

Key NameDisplay NameDescriptionData TypeRequiredEncrypted
FDBMCHR_URLBMC Helix Remedyforce URLBMC Helix Remedyforce Instance URL (https://<instance_name>.salesforce.com)StringYesNo
FDBMCHR_USER_NAMEBMC Helix Remedyforce User NameBMC Helix User NameStringYesNo
FDBMCHR_PASSWORDBMC Helix Remedyforce PasswordBMC Helix Remedyforce PasswordStringYesYes
FDBMCHR_CLIENT_IDClient IdConnected App Client IdStringYesYes
FDBMCHR_CLIENT_SECRET_IDClient SecretBMC Helix Remedyforce Client SecretStringYesYes
FDBMCHR_APPROVED_SCRIPTApproved Check ScriptBMC Helix approved check Groovy scriptStringNoNo
FDBMCHR_REJECTED_SCRIPTRejected Check ScriptBMC Helix rejected check Groovy scriptStringNoNo
FDBMCHR_DONT_POLLDon't pollDisable automatic polling (every minute) of BMC Helix tickets for status changes. Check if using REST API to communicate status changes to FlexDeploy.BooleanNoNo
FDBMCHR_SOBJECT_URLSpecified Object URLObject Name URL (/services/data/vXX.X/sobjects/{OBJECT_NAME})StringYesNo
FDBMCHR_INCIDENT_CATEGORY_IDCategory IdCategory FK Id (e.g a216g0000005NvDAAU)StringYesNo

Freshworks Freshservice Properties

Key NameDisplay NameDescriptionData TypeRequiredEncrypted
FDFS_URLFreshservice URLFreshservice URL (https://<your_helpdesk_domain_name>.freshservice.com)StringYesNo
FDFS_API_KEYFreshservice API KeyAPI key for FreshserviceStringYesYes
FDFS_APPROVED_SCRIPTApproved Check ScriptFreshservice approved check Groovy scriptStringNoNo
FDFS_REJECTED_SCRIPTRejected Check ScriptFreshservice rejected check Groovy scriptStringNoNo
FDFS_DONT_POLLDon't pollDisable automatic polling (every minute) of Freshservice tickets for status changes. Check if using REST API to communicate status changes to FlexDeploy.BooleanNoNo
FDFS_REQUESTER_IDFreshservice Requester IdFreshservice agent id for API access(should be a number)StringNoNo

Jira ITSM Properties

Key NameDisplay NameDescriptionData TypeRequiredEncrypted
FDJIRAITSM_URLJira URLJira URL (http://myjira.atlassian.net)StringYesNo
FDJIRAITSM_USER_NAMEJira UserJira User NameStringYesNo
FDJIRAITSM_API_TOKENJira API TokenAPI token for JiraStringYesYes
FDJIRAITSM_TICKET_URL_PATTERNJira Ticket URL PatternJira Ticket URL Pattern (/browse/{JIRA_CHANGE_NUMBER})StringYesNo
FDJIRAITSM_TICKET_REST_GET_PATTERNJira GET Rest API PatternJira Rest API Pattern for GET request (/rest/api/2/issue/{JIRA_CHANGE_NUMBER})StringYesNo
FDJIRAITSM_TICKET_REST_POST_PATTERNJira POST Rest API PatternJira Rest API Pattern for POST request (/rest/api/2/issue)StringYesNo
FDJIRAITSM_APPROVED_SCRIPTApproved Check ScriptJira approved check Groovy scriptStringNoNo
FDJIRAITSM_REJECTED_SCRIPTRejected Check ScriptJira rejected check Groovy scriptStringNoNo
FDJIRAITSM_DONT_POLLDon't pollDisable automatic polling (every minute) of Jira tickets for status changes. Check if using REST API to communicate status changes to FlexDeploy.BooleanNoNo

Groovy API

All out of the box Change Management Systems are implemented using Java.  For custom integrations, either Java or Groovy can be used to provide the implementation.  The Groovy API tab is enabled for custom integrations if no Java Implementation Class is provided.  On this tab you can enter the Groovy script defining the implementation.  A template script will be generated and should be modified according to your custom implementation.

See Custom Change Management System for details on creating your own custom integration using Java or Groovy.