CA Service Management

 View Only
  • 1.  SDM 17.2 integration to a 3rd party App

    Posted Jul 17, 2020 09:37 AM
    ​I'm looking for a simple solution to send initial ticket content to an external app. Does anyone have an example of a jar file that can be called from an activity notification to ship ticket data to an external application?

    Thanks
    Jeff

    ------------------------------
    Service Desk Contractor
    Royal Canadian Mounted Police
    ------------------------------


  • 2.  RE: SDM 17.2 integration to a 3rd party App

    Posted Jul 18, 2020 10:33 AM
    Have you considered using Process Automation to do that?

    ------------------------------
    Lindsay Estabrooks
    Principal Consultant
    IT-EDU Consultants
    ------------------------------



  • 3.  RE: SDM 17.2 integration to a 3rd party App

    Posted Jul 20, 2020 07:22 AM

    Hello. Thanks for the reply.  PAM is on our wish list so we do not have it installed yet. Until that can happen, I'm looking for another solution.

     






  • 4.  RE: SDM 17.2 integration to a 3rd party App

    Posted Jul 20, 2020 12:30 PM
    Lindsay,
    I am curious. We have process automation and create tickets from catalog to service desk using process automation. We have 3rd party apps that we would probably like to integrate with process automation to do this. What are your suggestions?
    Thanks

    ------------------------------
    Stephanie Connolly
    Blue Cross Blue Shield of Alabama
    ------------------------------



  • 5.  RE: SDM 17.2 integration to a 3rd party App

    Posted Jul 19, 2020 08:55 AM
    Hi Jeff,
    you need an trigger  for your activity to call spel-code, in which one uses an exec-cmd. This exec calls your app and brings all your arguments from ticket.

    I think you can use the statement (for example perl script) You can substitude the variables, I use the statement in several spels, therefore the parameters.

    .. read your values from ticket and prepair the output (here ausg)
    
    bin = "D:\\CA\\SERVIC~1\\bin"; bin = "D:\\CA\\SERVIC~1\\bin"; 
    drive = "D:"; // drive for script
    s_path = "CA/servic~1/site/mods/xx-SAPTEL"; // script path (perl) 
    drive2 = "D:"; // drive for outfile 
    out_path= "CA\\servic~1\\site\\mods\\xx-SAPTEL"; // output file path 
    out_file= "AHD_"; // output file name 
    par1 = ausg; // ausg
    cmd = format("%s\\pdm_perl %s\\%s\\saptel.pl   %s \"%s\" \"%s\" \"%s\" \"%s\" ",   bin, drive, s_path,    drive2, out_path, out_file, par1, cr_id ); cmd = format("%s\\pdm_perl %s\\%s\\saptel.pl   %s \"%s\" \"%s\" \"%s\" \"%s\" ",   bin, drive, s_path,    drive2, out_path, out_file, par1, cr_id );
    exec(cmd);

    Quotes in cmd are very important, do not count!
    The method works with all apps if you have command line information.
    Regards




  • 6.  RE: SDM 17.2 integration to a 3rd party App

    Posted Jul 21, 2020 09:22 AM
    Hi Jeff,

    How about an example based around a simple PowerShell script that can be extended.  Additional content can be output by amending the notification template and the PowerShell could be adapted to call external API / REST service instead of writing to a file.

    Notification Method
    Symbol = Custom-File
    Notification method = cmd /c powershell CustomNotify.ps1

    Notification Methods on contact
    Last Name = JG
    Low = Custom-File
    Normal = Custom-File
    High = Custom-File
    Emergency = Custom-File

    Message Template
    Symbol = JG-Message
    Object Type = Request/Incident/Problem
    Auto Notification = Ticked
    Notify Level = Normal
    Message Title = New Incident
    Message Body = @{call_req_id.ref_num}

    Notification Rule
    Symbol = JG-NotRule
    Object Type = Request/Incident/Problem
    Description = Notify new incident
    Message Template = JG-Message
    Contacts = JG

    CustomNotify.ps1 (Copy to $NX_Root/bin)
    ##
    ## Custom CASD notification - write notification to a file
    ##
    $notification = $env:NX_NTF_MESSAGE
    $file = "c:\temp\notification_$notification.log"
    $notification | Add-Content -Path $file


    ------------------------------
    Joe
    ------------------------------



  • 7.  RE: SDM 17.2 integration to a 3rd party App

    Posted Jul 21, 2020 09:27 AM
    Sorry missed off the Activity Notification

    Activity Notification
    Symbol = Initial
    Code = INIT
    Activity Valid For = Request/Incidents/Problems
    Object Type = Request/Incidents/Problems
    Notification Rules = JG-NotRule

    ------------------------------
    Joe
    ------------------------------



  • 8.  RE: SDM 17.2 integration to a 3rd party App
    Best Answer

    Posted Jul 22, 2020 03:49 AM
    Hi.
    As Lindsay already mentioned, one way to go is through Process Automation (PA).
    In general, native outbound communication capabilities of SDM are somehow weak, in my opinion.
    Sure, using Process Automation in those cases is at least a possibility to handle 3rd party integration in a secure and reliable manner, with the cost of an additional application (PA) and its related infrastructure and operation efforts.
    If you already have PA in place, that's not an issue, but if you use SDM as a standalone application, the PA path might be a bit over-sized.
    However, PA processes can be triggered(started) based on ticket activity log creation,in detail:
    • Whenever a ticket(I/P/R , issue, change) gets changed SDM creates activity log entries.
    • based on this alg creation you can attach a so called SDM event to the ticket.
    • This event can execute a PA related macro.
    • The execution of the macro will send a http request to PA which starts a process in PA
    • this http request gets repeated it if it fails, for any reason.
    • The process in PA gets the ticket persistent_id as a reference, and can now get all necessary data from the ticket
    • PA itself has a broad range of capabilities to do the external, 3rd party communication regarding
      • repeating failed integration attempts
      • "known/expected error" handling.
    • The PA process would also be able to "return" some kind of result into SDM, lets say create an activity log, saying "Data successfully transferred to 3rd party tool xyz"
     
    In my opinion, one should take care of the following principals
    • repeating failed communication
    • appropriate error handling
    • return a result

    At least in my understanding , things like a simple exec in spel is not reliable enough, as it is similar to an UDP package, a send and forget.
    But as always, it heavily depends on the requirements.
    PA has a big footprint, but the broadest range of capabilities, and its the way to go if you already have that in place.
    If you are not willing to install, operate and maintain an additional application like PA, I can imagine a different reliable approach, solely based on SDM.

    If you are fine with that your integration fails from time to time, lets say in 1 or 2 percentage, maybe less, then the spel-exec path might be sufficient.
    just my 50 cent
     
    Regards
    ....Michael

    ------------------------------
    Principal Services Consultant
    HCL Enterprise Studio
    Germany
    ------------------------------