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"

Reply via email to