Does anyone use the Remedy Web Services as the interface with Orion? If so, what is the configuration setup?
Were you ever able to figure out how to do this? I have this very need. I was provided with the Remedy WSDL, but I need to figure out how to call it when one of my switches goes down to create a ticket.
If anyone has any ideas on this, it would be greatly appreciated.
Thanks.
First start with a WSDL / SOAP test tool. I like the following:
NOTE: the WSDL is specific to our implementation. Change it to match yours.NOTE: the parameters are specific to our implementation. Change it to match yours.NOTE: I only fill in the mandatory fields to get a ticket cut.
Here is a php test script I used to work with the WSDL exposed by our Remedy support staff.
Kinda crude and brute force, but it worked.
<?php$myargs = getArgs($_SERVER['argv']);foreach (array('u','p','g','c','o','f','l','s') as $arg) { if (!isset($myargs[$arg])) { echo "usage $argv[0] -u 'username' -p 'userpassword' -g 'group name as shown in ars' -c 'opcat1:opcat2:opcat3' -o 'prodcat1:prodcat2:prodcat3' -f 'firstname' -l 'lastname' -s 'summary field text'\n"; exit; }}$opcats = split(":",$myargs['c']); print_r($opcats);$prodcats = split(":",$myargs['o']); print_r($prodcats);$params->Assigned_Group=$myargs['g'];$params->Assigned_Group_Shift_Name='';$params->Assigned_Support_Company='Liquids Pipelines';$params->Assigned_Support_Organization='Liquids Pipelines';$params->Assignee='';$params->Categorization_Tier_1=$opcats[0];$params->Categorization_Tier_2=$opcats[1];$params->Categorization_Tier_3=$opcats[2];$params->CI_Name='';$params->Closure_Manufacturer='';$params->Closure_Product_Category_Tier1='';$params->Closure_Product_Category_Tier2='';$params->Closure_Product_Category_Tier3='';$params->Closure_Product_Model_Version='';$params->Closure_Product_Name='';$params->Department='';$params->First_Name=$myargs['f'];$params->Impact='4-Minor/Localized';$params->Last_Name=$myargs['l'];$params->Lookup_Keyword='';$params->Manufacturer='';$params->Product_Categorization_Tier_1=$prodcats[0];$params->Product_Categorization_Tier_2=$prodcats[1];$params->Product_Categorization_Tier_3=$prodcats[2];$params->Product_Model_Version='';$params->Product_Name='';$params->Reported_Source='Direct Input';$params->Resolution='';$params->Resolution_Category_Tier_1='';$params->Resolution_Category_Tier_2='';$params->Resolution_Category_Tier_3='';$params->Service_Type='User Service Request';$params->Status='New';$params->Action='CREATE';$params->Create_Request='Yes';$params->Summary=$myargs['s'];$params->Notes='';$params->Urgency='4-Low';$params->Work_Info_Summary='';$params->Work_Info_Notes='';$params->Work_Info_Type='----- Customer Inbound -----';$params->Work_Info_Date='';$params->Work_Info_Source='Email';$params->Work_Info_Locked='Yes';$params->Work_Info_View_Access='Internal';$params->Middle_Initial='';//test//$ars = new SoapClient('hostname:8080/.../HPD_IncidentInterface_Create_WS');//dev//$ars = new SoapClient('hostname:8080/.../HPD_IncidentInterface_Create_WS');// prod$ars = new SoapClient('hostname:8080/.../HPD_IncidentInterface_Create_WS');$auth->userName=$myargs['u'];$auth->password=$myargs['p'];$authvalues = new SoapVar($auth, SOAP_ENC_OBJECT);$header = new SoapHeader('name_space', "AuthenticationInfo", $authvalues, false);$ars->__setSoapHeaders(array($header));$result = $ars->HelpDesk_Submit_Service($params); var_dump($result);function getArgs($args) { $out = array(); $last_arg = null; for($i = 1, $il = sizeof($args); $i < $il; $i++) { if( (bool)preg_match("/^--(.+)/", $args[$i], $match) ) { $parts = explode("=", $match[1]); $key = preg_replace("/[^a-z0-9]+/", "", $parts[0]); if(isset($parts[1])) { $out[$key] = $parts[1]; } else { $out[$key] = true; } $last_arg = $key; } else if( (bool)preg_match("/^-([a-zA-Z0-9]+)/", $args[$i], $match) ) { for( $j = 0, $jl = strlen($match[1]); $j < $jl; $j++ ) { $key = $match[1]{$j}; $out[$key] = true; } $last_arg = $key; } else if($last_arg !== null) { $out[$last_arg] = $args[$i]; } } return $out;}?>
Thanks for that info. I have been playing with soapUI to get all the fields correct for creating a ticket, so I know all the fields I need now.
How are you calling this PHP from Solarwinds? Do you have PHP installed on your Solarwinds server?
Yes, I've installed PHP 5.x on the server and use the CLI interface.
To call it, I do alert action of "run an external program" like this:
C:\Program Files (x86)\PHP\TelAlert\php.exe c:\remedy.php -u username -p password -g "Monitoring" -c Request:Service:Create -o "Software:IT Software:Monitoring" -f firstname -l lastname -s "cmdline soap testing from Orion"
Hi Guy's
Does anyone have a physical diagram of this prosses end to end? Trying to get my head around the components and how the communication is between Orian and Remedy to generate tickets on events.
Something like the attached?
Many thanks