Here are text versions to try and get around the attachment blocking.
Regards, Andrew Goodall Software Engineer 2 | Development Services | jcpenney . www.jcp.com <http://www.jcp.com/> ________________________________ From: Andrew C Goodall Sent: Wednesday, March 14, 2012 12:09 PM To: 'arslist@ARSLIST.ORG' Subject: RE: perl soap lite examples Good grief - got blocked again. Ok - go here if you're interested: https://communities.bmc.com/communities/docs/DOC-18743 Regards, Andrew Goodall Software Engineer 2 | Development Services | jcpenney . www.jcp.com <http://www.jcp.com/> | 972.431.1518 ________________________________ From: Andrew C Goodall Sent: Wednesday, March 14, 2012 12:04 PM To: 'arslist@ARSLIST.ORG' Subject: RE: perl soap lite examples Attempting this again as a zip attachment. For anymore who is interested these are some Perl SOAP::Lite examples for opcreate, opset, opget, and opgetlist. I haven't used these in a while, but remember it took me a while to figure out how to consume the remedy web services in perl - so thought these may help someone else out. http://www.soaplite.com/ FYI- I used Activestate Komodo Edit on windows - http://www.activestate.com/komodo-edit/downloads Regards, Andrew Goodall Software Engineer 2 | Development Services | jcpenney . www.jcp.com <http://www.jcp.com/> <font face="monospace"size="-3"><br>The information transmitted is intended only for the person or entity to which it is addressed and <br>may contain confidential and/or privileged material. If the reader of this message is not the intended<br>recipient, you are hereby notified that your access is unauthorized, and any review, dissemination,<br>distribution or copying of this message including any attachments is strictly prohibited. If you are not<br>the intended recipient, please contact the sender and delete the material from any computer.<br> _______________________________________________________________________________ UNSUBSCRIBE or access ARSlist Archives at www.arslist.org attend wwrug12 www.wwrug12.com ARSList: "Where the Answers Are"
#!/apps/remdev/ars/ars/perl -w # # Test Remedy WebService # use Env; use SOAP::Lite; #trace=>'all'; #+trace => [ transport => \&SOAP_log ]; sub SOAP_log { # Assume Transport Logging Only my ($in) = @_; my $doubleLF = chr(10).chr(10); my $singleLF = chr(10); my($sName,$sVal) = split(/=/,$in,2); while( my ($k, $v) = each %$in ) { if ( $k eq "_content" ) { $sVal = "$sName\n".$v; $sVal =~ s/$doubleLF/$singleLF/g; write_log ( $sVal ); } } } sub write_log { # my $arLogFile=$ENV{'ARCONFIGDIR'}."/tmp/fred_Remedy_SOAP.log"; my $arLogFile="Remedy_SOAP.log"; my($message) = @_; $message="$message"; chop(my $date = `date +'%a %b %e %Y %T'`); my $messagehead = "<PERL> <TID: 0> <RPC ID: 0> <Queue: 0> <Client-RPC: 0> <USER: perl> /* $date */ "; warn "Could not open logfile: $arLogFile\n" unless (open (LOGFILE, ">>$arLogFile")); print LOGFILE "$messagehead $message\n"; warn "Could not close logfile: $arLogFile\n" unless (close (LOGFILE)); } my $USERNAME = "username-goes-here"; my $PASSWORD = "password-goes-here"; my $arServer = "ars-server-goes-here"; my $arwebServer = "midtier-server-goes-here"; my $ServiceName = "webservice-name-goes-here"; my $RemedyURL = "http://".$arwebServer."/arsys/services/ARService?server=".$arServer."&webService=".$ServiceName; my $RemedyNS = "urn:".$ServiceName; my $RecordID = "INC000001294141"; my $newline = "\n"; #newline is not working??? my $doubleLF = chr(10).chr(10); #this does not work??? my $Work_Log = "This is an update 2 to the worklog from:".$newline."-this is a test."; #my $UpdateDate = "2006-11-17T20:35:11"; #my $UpdateDate = localtime(time); my $soap = SOAP::Lite -> proxy($RemedyURL) -> ns($RemedyNS,'ns1') -> autotype(0) -> readable(1); my $som = $soap->OpSet( SOAP::Header->name('AuthenticationInfo' => \SOAP::Header->value( SOAP::Header->name('userName' => $USERNAME), SOAP::Header->name('password' => $PASSWORD) )), SOAP::Data->name('Incident_Number' => $RecordID ), SOAP::Data->name('Work_Log' => $Work_Log )); if ($som->fault){ print "Fault :", $som->faultstring, "\n"; print "Faultcode :",$som->faultcode, "\n"; print "Faultdetail :", %{$som->faultdetail}, "\n"; }else{ print "Update successful."; } #print $som; _______________________________________________________________________________ UNSUBSCRIBE or access ARSlist Archives at www.arslist.org attend wwrug12 www.wwrug12.com ARSList: "Where the Answers Are"
#!/apps/remdev/ars/ars/perl -w # # Test Remedy WebService # use Env; use SOAP::Lite; #trace=>'all'; #+trace => [ transport => \&SOAP_log ]; sub SOAP_log { # Assume Transport Logging Only my ($in) = @_; my $doubleLF = chr(10).chr(10); my $singleLF = chr(10); my($sName,$sVal) = split(/=/,$in,2); while( my ($k, $v) = each %$in ) { if ( $k eq "_content" ) { $sVal = "$sName\n".$v; $sVal =~ s/$doubleLF/$singleLF/g; write_log ( $sVal ); } } } sub write_log { # my $arLogFile=$ENV{'ARCONFIGDIR'}."/tmp/fred_Remedy_SOAP.log"; my $arLogFile="Remedy_SOAP.log"; my($message) = @_; $message="$message"; chop(my $date = `date +'%a %b %e %Y %T'`); my $messagehead = "<PERL> <TID: 0> <RPC ID: 0> <Queue: 0> <Client-RPC: 0> <USER: perl> /* $date */ "; warn "Could not open logfile: $arLogFile\n" unless (open (LOGFILE, ">>$arLogFile")); print LOGFILE "$messagehead $message\n"; warn "Could not close logfile: $arLogFile\n" unless (close (LOGFILE)); } my $USERNAME = "username-goes-here"; my $PASSWORD = "password-goes-here"; my $arServer = "ars-server-goes-here"; my $arwebServer = "midtier-server-goes-here"; my $ServiceName = "webservice-name-goes-here"; my $RemedyURL = "http://".$arwebServer."/arsys/services/ARService?server=".$arServer."&webService=".$ServiceName; my $RemedyNS = "urn:".$ServiceName; my $Descrip = "Error Detected with..."; my $newline = "\n"; #newline is not working??? my $Work_Log = "This is an update to the worklog from:".$newline."-netcool has closed this incident."; #my $UpdateDate = "2006-11-17T20:35:11"; #my $UpdateDate = localtime(time); my $soap = SOAP::Lite -> proxy($RemedyURL) -> ns($RemedyNS,'ns1') -> autotype(0) -> readable(1); my $som = $soap->OpCreate( SOAP::Header->name('AuthenticationInfo' => \SOAP::Header->value( SOAP::Header->name('userName' => $USERNAME), SOAP::Header->name('password' => $PASSWORD) )), SOAP::Data->name('Entry_Description' => $Descrip ), SOAP::Data->name('Work_Log' => $Work_Log )); if ($som->fault){ print "Fault :", $som->faultstring, "\n"; print "Faultcode :",$som->faultcode, "\n"; print "Faultdetail :", %{$som->faultdetail}, "\n"; }else{ foreach my $field ($som->valueof('//OpCreateResponse')) { print "-----------------------------------------\n"; # print description for every field then the returned value foreach my $fieldname (sort keys %{$field}) { # use the if statment to supress fields with empty values #if ($field->{$fieldname}){ print $fieldname, ": '", $field->{$fieldname}, "'\n"; #} } } print "Create successful.\n"; } #print $som; _______________________________________________________________________________ UNSUBSCRIBE or access ARSlist Archives at www.arslist.org attend wwrug12 www.wwrug12.com ARSList: "Where the Answers Are"
#!/apps/remdev/ars/ars/perl -w # # Test Remedy WebService # use Env; use SOAP::Lite; #trace=>'all'; #+trace => [ transport => \&SOAP_log ]; sub SOAP_log { # Assume Transport Logging Only my ($in) = @_; my $doubleLF = chr(10).chr(10); my $singleLF = chr(10); my($sName,$sVal) = split(/=/,$in,2); while( my ($k, $v) = each %$in ) { if ( $k eq "_content" ) { $sVal = "$sName\n".$v; $sVal =~ s/$doubleLF/$singleLF/g; write_log ( $sVal ); } } } sub write_log { # my $arLogFile=$ENV{'ARCONFIGDIR'}."/tmp/fred_Remedy_SOAP.log"; my $arLogFile="Remedy_SOAP.log"; my($message) = @_; $message="$message"; chop(my $date = `date +'%a %b %e %Y %T'`); my $messagehead = "<PERL> <TID: 0> <RPC ID: 0> <Queue: 0> <Client-RPC: 0> <USER: perl> /* $date */ "; warn "Could not open logfile: $arLogFile\n" unless (open (LOGFILE, ">>$arLogFile")); print LOGFILE "$messagehead $message\n"; warn "Could not close logfile: $arLogFile\n" unless (close (LOGFILE)); } my $USERNAME = "username-goes-here"; my $PASSWORD = "password-goes-here"; my $arServer = "ars-server-goes-here"; my $arwebServer = "midtier-server-goes-here"; my $ServiceName = "webservice-name-goes-here"; my $RemedyURL = "http://".$arwebServer."/arsys/services/ARService?server=".$arServer."&webService=".$ServiceName; my $RemedyNS = "urn:".$ServiceName; my $RecordID = "INC000001294141"; my $StatusTxt = "Success"; my $UpdateDate = "2006-11-17T20:35:11"; my $soap = SOAP::Lite -> proxy($RemedyURL) -> ns($RemedyNS,'ns1') -> autotype(0) -> readable(1); my $som = $soap->OpGet( SOAP::Header->name('AuthenticationInfo' => \SOAP::Header->value( SOAP::Header->name('userName' => $USERNAME), SOAP::Header->name('password' => $PASSWORD) )), SOAP::Data->name('Incident_Number' => $RecordID )); # check to see if we got a fault back. If we did then print it. If we #did not then get the fields that we want. use Encode; if ($som->fault){ print "Fault :", $som->faultstring, "\n"; print "Faultcode :",$som->faultcode, "\n"; print "Faultdetail :", %{$som->faultdetail}, "\n"; }else{ # print all fields returned from the OpGet method foreach my $field ($som->valueof('//OpGetResponse')) { print "-----------------------------------------\n"; # print description for every field then the returned value foreach my $fieldname (sort keys %{$field}) { # use the if statment to supress fields with empty values #if ($field->{$fieldname}){ print decode_utf8($fieldname), ": '", $field->{decode_utf8($fieldname)}, "'\n"; #} } } } print "\n"; print "\n"; print "Vendor Group ID: (",$som->valueof('//OpGetResponse/Vendor_Group_ID'), ")\n"; #print $som; _______________________________________________________________________________ UNSUBSCRIBE or access ARSlist Archives at www.arslist.org attend wwrug12 www.wwrug12.com ARSList: "Where the Answers Are"
#!/apps/remdev/ars/ars/perl -w # # Test Remedy WebService # use Env; use Win32; use SOAP::Lite; #trace=>'all'; #+trace => [ transport => \&SOAP_log ]; sub SOAP_log { # Assume Transport Logging Only my ($in) = @_; my $doubleLF = chr(10).chr(10); my $singleLF = chr(10); my($sName,$sVal) = split(/=/,$in,2); while( my ($k, $v) = each %$in ) { if ( $k eq "_content" ) { $sVal = "$sName\n".$v; $sVal =~ s/$doubleLF/$singleLF/g; write_log ( $sVal ); } } } sub write_log { # my $arLogFile=$ENV{'ARCONFIGDIR'}."/tmp/fred_Remedy_SOAP.log"; my $arLogFile="Remedy_SOAP.log"; my($message) = @_; $message="$message"; chop(my $date = `date +'%a %b %e %Y %T'`); my $messagehead = "<PERL> <TID: 0> <RPC ID: 0> <Queue: 0> <Client-RPC: 0> <USER: perl> /* $date */ "; warn "Could not open logfile: $arLogFile\n" unless (open (LOGFILE, ">>$arLogFile")); print LOGFILE "$messagehead $message\n"; warn "Could not close logfile: $arLogFile\n" unless (close (LOGFILE)); } sub get_assignedtome { my $USERNAME = "username-goes-here"; my $PASSWORD = "password-goes-here"; my $arServer = "ars-server-goes-here"; my $arwebServer = "midtier-server-goes-here"; my $ServiceName = "webservice-name-goes-here"; my $RemedyURL = "http://".$arwebServer."/arsys/services/ARService?server=".$arServer."&webService=".$ServiceName; my $RemedyNS = "urn:".$ServiceName; my $Win32loginname = Win32::LoginName(); #print "'Assignee Login ID' = \"$Win32loginname\""; #my $qualification = "'Incident Number' = \"INC000001294141\""; my $qualification = "'Assignee Login ID' = \"Demo\""; #my $qualification = "'Assignee Login ID' = \"$Win32loginname\""; #my $qualification = "'Assignee' = \"Bob User\""; #my $qualification = "'7' = \"Resolved\""; #my $qualification = "1=1"; my $soap = SOAP::Lite -> proxy($RemedyURL) -> ns($RemedyNS,'ns1') -> autotype(0) -> readable(1); my $som = $soap->HelpDesk_QueryList_Service( #my $som = $soap->OpGetList( SOAP::Header->name('AuthenticationInfo' => \SOAP::Header->value( SOAP::Header->name('userName' => $USERNAME), SOAP::Header->name('password' => $PASSWORD) )), SOAP::Data->name('Qualification' => $qualification )); # check to see if we got a fault back. If we did then print it. If we #did not then get the fields that we want. if ($som->fault){ print "Fault :", $som->faultstring, "\n"; print "Faultcode :",$som->faultcode, "\n"; print "Faultdetail :", %{$som->faultdetail}, "\n"; }else{ # add this to get a full array of the results my @params = $som->paramsout; #$output = "sdsdsd"; $rowcounter = 0; # Process each of the records # foreach $entry ($som->valueof('//HelpDesk_QueryList_ServiceResponse/getListValues')){ # foreach $field (keys (%{$entry})){ # print $field, " : ", ${%{$entry}}{$field},"\n"; # } # print "\n"; # $rowcounter = $rowcounter + 1; #} my $results = ""; #foreach my $row(@params) { foreach my $row ($som->valueof('//HelpDesk_QueryList_ServiceResponse/getListValues')){ $results = $results."<tr><td>".$row->{'Incident_Number'}."</td><td>".$row->{'Status'}."</td><td>".$row->{'Summary'}."</td><td>".$row->{'Priority'}."</td></tr>"; #print("<tr><td>".$row->{'Incident_Number'}."</td><td>"); #print($row->{'Status'}."</td><td>"); #print($row->{'Summary'}."</td><td>"); #print($row->{'Priority'}."</td></tr>"); #print($row->{'Assignee'}."\n"); #$output = ($row->{'Incident_Number'}."</td><td>".{'Summary'}."</td><td>".{'Priority'}."</td></tr>"); #$output = $output.($row->{'Incident_Number'}."</td><td>"); #print($row->{'Status7'}."\n"); #print($row->{'Create_Date'}."\n") $rowcounter = $rowcounter + 1; } return $results; } } #end of get_assignedtome $output = get_assignedtome(); #print Win32::LoginName(), "\n"; #print "Record count = ",$rowcounter; print "Content-type: text/html\n\n"; print <<ENDHTML; <html> <head> </style> <title>Remedy Incidents - Assigned to Me</title> </head> <BODY style="align:center"> <h3>Remedy Incidents - Assigned to Me</h3> <table> <tr> <td>Incident #</td> <td>Status</td> <td>Summary</td> <td>Priority</td> </tr> $output </table> <br> </BODY> </html> ENDHTML ; _______________________________________________________________________________ UNSUBSCRIBE or access ARSlist Archives at www.arslist.org attend wwrug12 www.wwrug12.com ARSList: "Where the Answers Are"