Create a Link to a Remedy Ticket

BMC SoftwareLike many large companies, mine uses BMC Remedy for IT Service Management. One of the seemingly simple tasks that’s often asked of us is to create a page or report that links ticket numbers to their listings in Remedy. This is more difficult that it ever should need to be, but doable with a little work. Note that the following was tested on BMC Remedy 7.6. as, unfortunately, I have no other environment to test in.

Creating a Link to Remedy

Remedy create a direct link much more difficult than it should be. In essence, we’re forced to construct a search for the ticket. The basic format for this:

https://**SERVER**/arsys/forms/itsmsys76/SHR%3ALandingConsole/Default+Administrator+View/?mode=search&F304255500=**TYPE**&F1000000076=FormOpen&F303647600=SearchTicketWithQual&F304255610=**FIELD**%3D%22**TICKET**%22

The four variables needed to complete the above URL are:

  • **SERVER**: The path to your Remedy server. Often something like “remedy.company.com“.
  • **TYPE**: A string indicating the type of console to open, based on the ticket type:
    • INC: HPD%3AHelp+Desk
    • PBI: PBM%3AProblem+Investigation
    • PKE: PBM%3AKnown+Error
    • CRQ: CHG%3AInfrastructure+Change
    • TSK: TMS%3ATask
    • WOI: WOI%3AWorkOrder
  • **FIELD**: The internal identifier of the field to be searched, based on the ticket type:
    • INC: ‘1000000161’
    • PBI: ‘1000000232’
    • PKE: ‘1000000979’
    • CRQ: ‘1000000182’
    • TSK: ‘1’
    • WOI: ‘1000000182’
  • **TICKET**: The full 15-character ticket number being searched for.

While there are other types of tickets (for example, Configuration Items), I couldn’t determine values that worked. For one-off implementations, manually generating the link is simple enough, but with a little scripting we can easily make portable solution.

Scripting the Link

To make this easier to use, here’s a JavaScript function that accepts a string (a list of Remedy tickets) and opens a new window for each one passed:

     // Helper Tool to open Remedy Instances
function Remedy_OpenTickets(Tickets) {

          // Set Server Name
     var Server = "remedy.company.com";
          // Replace any spaces
     Tickets = Tickets.replace(/ /g, "");
          // Create an Array
     Tickets = Tickets.split(",");

          // Loop over the Array
     for (var cnt = 0; cnt < Tickets.length; cnt++) {
               // Get the Ticket Number
          var CurTicket = Tickets[cnt].trim();
               // Get the Ticket Type
          var CurType = CurTicket.substring(0,3).toUpperCase();
               // Determine parameters
          switch(CurType) {
               case "INC":
                    var P1 = "HPD%3AHelp+Desk";
                    var P2 = "'1000000161'";
                    break;
               case "PBI":
                    var P1 = "PBM%3AProblem+Investigation";
                    var P2 = "'1000000232'";
                    break;
               case "PKE":
                    var P1 = "PBM%3AKnown+Error";
                    var P2 = "'1000000979'";
                    break;
               case "CRQ":
                    var P1 = "CHG%3AInfrastructure+Change";
                    var P2 = "'1000000182'";
                    break;
               case "TSK":
                    var P1 = "TMS%3ATask";
                    var P2 = "'1'";
                    break;
               case "WOI":
                    var P1 = "WOI%3AWorkOrder";
                    var P2 = "'1000000182'";
                    break;
               };

               // Create the URL
          var CurURL = "https://" + Server + "/arsys/forms/itsmsys76/SHR%3ALandingConsole/Default+Administrator+View/?mode=search&F304255500=" + P1 + "&F1000000076=FormOpen&F303647600=SearchTicketWithQual&F304255610=" + P2 + "%3D%22" + CurTicket + "%22";
               // Open a tab for each of the passed Tickets
          window.open(CurURL, '_blank');

     };

          // Return true (success)
     return true;

};

This can be easily integrated into a web page or SharePoint site.

2 Comments

Add a Comment
  1. How would this be configured for REQ? I’ve got the others (e.g., INC, CRQ) working, but REQ is not addressed here.

    1. Apologies – life got in the way for a few months there.

      I remember looking for REQ tickets and not being able to determine the code/key to make them work. Unfortunately I no longer have access to a Remedy environment to continue testing this as we migrated to ServiceNow late last year.

Leave a Reply