WCM Integration with a Change Management System
You can integrate Workload Change Manager (WCM) with a change management system, which enables you to send requests via WCM.
-
Create a Ticket: A WCM Web User makes a request that creates a ticket in the change management system.
-
Change a Ticket State: A Web User or Control-M Scheduler makes a request that changes a ticket state in the change management system.
-
Show Ticket State: A Web User makes a request that shows the ticket state in the change management system.
To enable a change management system to receive REST API communication from WCM, you must do one of the following:
-
Create a Dedicated REST Server: Create and maintain a dedicated REST server, which exposes the API based on the type of request and sends API requests to the change management system.
-
Create APIs in the Change Management System: Create and implement APIs in your change management system, and configure the change management system API to work in non-authentication mode. This enables you to send API requests directly from WCM to the change management system to create, update, and show tickets, without the need for a dedicated REST server. This option is only available in some change management systems.
BMC Software provides an example REST Service for Integrating Remedy with WCM.
The following topics describe how to Workload Change Manager (WCM) with a change management system:
Integrating WCM with a Change Management System
This procedure describes how to integrate WCM with a change management system.
Begin
-
Prepare the dedicated REST server or change management system to receive the API endpoints, as described in WCM API Endpoints.
-
Test the API endpoints with Postman or any HTTP connector.
-
(Optional) Configuring Secure Communication between WCM and a Change Manager System.
-
Configure Control-M with the new endpoint parameters, as described in WCM System Parameters.
WCM API Endpoints
The following table describes the API endpoints that the change management system receives from WCM. The WCM integration cannot receive API requests from the change management system.
URL |
Response |
---|---|
POST validateChangeState |
Responds with one of the following:
|
POST stateChanged |
Confirms the state of the ticket. |
POST getChangeStatus |
Returns the state of the ticket with a 200 (OK) HTTP status code, the changeID, and a message, when the Change Management Status option is enabled, as described in WCM System Parameters. |
The following table describes the parameters of the API endpoints.
Parameter |
Description |
---|---|
changeID |
Defines the ticket ID of the change management system. If a request does not contain a ChangeID, WCM retrieves one and assigns it to the request. |
ctmRequestID |
Defines the ID of the Workspace that the Web user submits. |
Name |
Defines the name that the Web user gives to the request. |
newState |
Defines the new status of the request. |
OldState |
Defines the old status of the request. |
creationTime |
Determines the creation time of the request in UTC format, as follows: YYYYMMDDhhmmssUTC |
lastTransferSideTimestamp |
Determines the last transfer side timestamp in UTC format, as follows: YYYMMDDhhmmssUTC |
endUser |
Defines the Web user that submitted the request. |
scheduler |
Defines the Control-M scheduler of the request. |
The following table describes the response parameters from the change management system.
Parameter |
Description |
---|---|
message |
Defines the returned message that appears to the Web user or the Control-M scheduler. |
changeID |
Determines the ticket ID of the change management system. |
For examples, see REST Service API Examples.
Configuring Secure Communication between WCM and a Change Manager System
This procedure describes how to configure a secure SSL connection between WCM and an external change management system.
Before You Begin
Ensure that the CN field of the SSL certificate for the external change manager contains the host name of the external server.
Begin
-
From the Control-M/EM JRE bin directory, run the following command to verify that your CA certificate is trusted by BMC Software:
-
Windows: keytool -list -keystore ..\lib\security\cacerts
-
UNIX: ./keytool -list -keystore ../lib/security/cacerts
The default keystore password is changeit, unless you are using external Java.
-
-
If your CA certificate is not trusted by BMC Software, import your CA certificate from the Control-M/EM JRE bin directory, as follows:
-
Windows: keytool -importcert -file <certificate pathname> -keystore ..\lib\security\cacerts -alias <certificate name>
-
UNIX: ./keytool -importcert -file <certificate pathname> -keystore ../lib/security/cacerts -alias <certificate name>
-
REST Service API Examples
The following are examples of API change requests from WCM to a change management system:
WCM sends a validateChangeState to the change management system to create or update a ticket.
-
WCM sends the following validateChangeState request:
CopyPOST validateChangeState
ctmRequestID=”Workspace22”
name=”please review my workspace”
newState=”Submitted”
creationTime=” 20211027123500”
endUser=”James” -
The change management system sends one of the following:
-
After recording the change request:
200 HTTP code (OK)
changeID=”request222”
-
If the change management system rejects the change request, it returns the following:
400 HTTP code (Bad Request)
changeID=”request222”
-
WCM first sends a validateChangeState to the change management system before creating or updating the change state, and then sends a stateChanged request.
-
WCM sends the following validateChangeState request:
CopyPOST validateChangeState
ctmRequestID=”Workspace22”
name=”please review my workspace”
newState=”Submitted”
creationTime=” 20211027123500”
endUser=”James” -
The change management system identifies the change request, and returns the following:
200 HTTP code (OK)
changeID=”request222”
-
WCM sends the following stateChanged request:
CopyPOST stateChanged
changeID=”request222”
ctmRequestID=”Workspace22”
name=”please review my workspace”
newState=”Submitted”
creationTime=” 20211027123500”
endUser=”James” -
The change management system records the change request, and returns the following:
-
200 HTTP code (OK)
-
changeID=”request222”
-
The Web user wants to check the status in the change management system of one of his tickets.
-
The change management system sends the following getChangeStatus request:
CopyPOST getChangeStatus
changeID=”request222”
ctmRequestID=”Workspace22”
name=”please review my workspace”
newState=”Submitted”
oldState=”Rejected”
creationTime=” 20211027123500”
endUser=”James”
scheduler=”Frank” -
The change management system records the change request, and returns the following:
200 HTTP code (OK)
changeID=”request222”
message=”The change is approved”
Integrating Remedy with WCM
This procedure describes how to integrate Remedy with WCM through a REST Service. This procedure contains example code which can be modified to fit your specific criteria.
The Remedy example provides two actions:
-
Creates and verifies a Change Ticket ID and verifies the approval of a submitted request.
-
Adds more properties for the different WCM request statuses; such as returned, or rejected.
You can modify and add properties that are relevant to your organization and use the Remedy example as a basis to create your own Rest Service for a different change management system.
Before You Begin
Ensure that you have the following installed:
-
Java JDK 1.8.
-
Apache MAVEN build utility.
Begin
-
Navigate to the following directory:
-
Windows: <EM_Installation_Folder>\WCMRemedyIntegration\src\main\webapp\WEB-INF\classes
-
UNIX: <EM_Installation_Folder>/WCMRemedyIntegration/src/main/webapp/WEB-INF/classes
-
-
Open the RemedyIntegration.properties file to configure the settings of your Remedy properties, as described in Remedy Integration File Properties.
-
In the same directory, open the NewTicketFields.properties file to configure the field ID values that are used to create a Change Ticket ID. You can modify the values to reflect your Remedy environment values.
The values of the fields can contain values for the REST Service request, such as: Control-M Request ${name} by ${endUser} performed by ${scheduler}.
-
Navigate to the following directory:
<EM_Installation_Folder>/WCMRemedyIntegration
-
To create a WAR package, type the following commands:
-
Windows:
SET JAVA_HOME= your java home path
SET M2_HOME= your M2 home path
SET PATH=%JAVA_HOME%\bin;%M2_HOME%\bin;%PATH%
mvn package
-
UNIX:
setenv JAVA_HOME
setenv M2_HOME
set path = ($JAVA_HOME/bin $M2_HOME/bin $PATH)
mvn package
The MAVEN build utility creates a WAR and JAR file in the target directory.
-
-
Deploy the WAR file to a Web Server. You can use a Control-M/EM Web Server by copying the WAR file into the following directory:
-
Windows: <EM_Installation_Folder>\emweb\tomcat\webapps
-
UNIX: <EM_Installation_Folder>/etc/emweb/tomcat/webapps
-
Remedy Integration File Properties
The following table describes the RemedyIntegration.properties file definitions that are used to configure your Remedy environment settings, which integrates it with WCM:
Property |
Description |
---|---|
ServerName |
Defines the name of your Remedy server. |
UserName |
Defines the username in Remedy. |
IsUserPasswordEncrypted |
Determines whether the user password is encrypted, as described in Encrypting the User Password. Valid Values:
Default: no |
UserPassword |
Defines the password of the Remedy user. If you have created an encrypted password, you can define the password in this property. |
CreateForm |
Creates a new change management entry in the Remedy form. |
ModifyForm |
Determines an existing change management entry to modify in the Remedy form. |
ChangeIdFieldId |
Defines the field ID number that contains the Change Ticket ID in Remedy. If the Change Ticket ID is not defined in the submitted request, it is created automatically and is assigned to the request. If a Change Ticket ID is defined, it is verified in Remedy. |
TicketApprovedFieldId |
Defines the field ID number that contains the status of the request. |
TicketApprovedFieldValue |
Defines the field value which determines if the status is approved. After a request is submitted for approval, the integration process checks if the TicketApprovedFieldId of the change ticket is in the value of TicketApprovedFieldValue. If it is, the request is approved and the status is changed. |
Encrypting the User Password
This procedure describes how to encrypt the user password.
Begin
-
Complete Integrating Remedy with WCM and build the MAVEN package.
-
Run the following command:
java -cp target\WCMRemedyIntegration-9.jar com.bmc.ctmem.wcminteg.changemanagment.AESCrypt abcd1234 /li>
-
Update the encrypted password in the UserPassword property.
-
Build the MAVEN package again.