Using Perl with ServiceNow

whooploafSoftware and s/w Development

Dec 13, 2013 (3 years and 5 months ago)

799 views

PDF generated using the open source mwlib toolkit. See http://code.pediapress.com/ for more information.
PDF generated at: Mon, 10 Dec 2012 22:40:29 PST
Using Perl with ServiceNow

ServiceNow.pm
1
ServiceNow.pm
Perl API

ServiceNow.pm

ITIL Objects

Incident.pm

Problem.pm

Change.pm

Request.pm

RequestedItem.pm

SC_Task.pm

Ticket.pm

Task.pm

Approval.pm

Other

Configuration.pm

GlideRecord.pm

Attachment.pm
Related Topics

Integration Overview

Web Services
Get the Book
Get the Book
ServiceNow module
ServiceNow Perl API - ServiceNow perl module
Desciption
ServiceNow module is a collection of Perl subroutines that provides convenient and direct access to the ServiceNow
platform
System Requirements
The ServiceNow Perl API requires Perl 5.8 with the following modules installed

SOAP::Lite (prerequisites http:/ / soaplite. com/ prereqs. html) 0.71 or later

Crypt::SSLeay

IO::Socket::SSL

File::Basename

MIME::Types

MIME::Type

MIME::Base64

ServiceNow.pm
2
Examples
Creating an Incident
#!/usr/bin/perl -w
use ServiceNow;
use ServiceNow::Configuration;
my $CONFIG = ServiceNow::Configuration->new();
$CONFIG->setSoapEndPoint("https://demoi1.service-now.com/");
$CONFIG->setUserName("admin");
$CONFIG->setUserPassword("admin");
my $SN = ServiceNow->new($CONFIG);
my $number = $SN->createIncident({"short_description" => "this incident was created from the Perl API", "category" => "hardware"});
print $number ."\n";
Querying an Incident
#!/usr/bin/perl -w
use ServiceNow;
use ServiceNow::Configuration;
my $CONFIG = ServiceNow::Configuration->new();
$CONFIG->setSoapEndPoint("https://demoi1.service-now.com/");
$CONFIG->setUserName("admin");
$CONFIG->setUserPassword("admin");
my $SN = ServiceNow->new($CONFIG);
my @incidents = $SN->queryIncident({'number' => 'INC00002'});
my $count = scalar(@incidents);
print "number of incidents=" . $count . "\n";
foreach my $incident (@incidents) {
print "Incident number: $incident->{'number'}\n";
print "Assignent Group: $incident->{'assignment_group'}\n";
print "Opened by: $incident->{'opened_by'}\n";
print "Opened by DV: $incident->{'dv_opened_by'}\n";
print "SD: $incident->{'short_description'}\n";
print "TW: $incident->{'time_worked'}\n";
print "\n"
}

ServiceNow.pm
3
Querying Journal fields
#!/usr/bin/perl -w
use ServiceNow;
use ServiceNow::Configuration;
my $CONFIG = ServiceNow::Configuration->new();
$CONFIG->setSoapEndPoint("https://demoi1.service-now.com/");
$CONFIG->setUserName("admin");
$CONFIG->setUserPassword("admin");
my $SN = ServiceNow->new($CONFIG);
my @journals = $SN->queryJournal('INC00002');
print $journals[0]->{'element'} . " = " . $journals[0]->{'value'} ."\n";
print $journals[1]->{'element'} . " = " . $journals[1]->{'value'} ."\n";
Constructor
new
new(Configuration object, optional Instance ID)
Example:
$config = ServiceNow::Configuration->new();
$SN = ServiceNow->new($config);
Sets up an instance of the ServiceNow object using a Configuration object and an optional Instance ID.
Subroutines
Incident
createIncident
createIncident(optional paramaters)
Example:
$number = $SN->createIncident({"short_description" => "this is the short description"});
Create an incident. Returns an incident number upon success. On failure returns undef.
queryIncident
queryIncident(Reference to named parameters hash of Incident fields and exact values)
Example:
@results = $SN->queryIncident({'number' => 'INC0000054'});
Query for Incidents matching specified criteria. Returns an array of incident records.

ServiceNow.pm
4
updateIncident
updateIncident($number, optional hash of Incident fields and values to update)
Example:
$ret = $SN->updateIncident($number,{$field => $value});
Update a ServiceNow incident Returns undef on failure, all other values indicate success.
closeIncident
closeIncident(incident number, optional hash of Incident fields and values to update)
Example:
$number = $SN->closeIncident($number, {$field => $value});
Close a ServiceNow Incident and optionally update field values. Returns the incident number on success, undef on
failure.
reopenIncident
reopenIncident(incident number)
Example:
my $ret = $SN->reopenIncident('INC99999');
Reopen a closed ServiceNow incident. Returns the incident number on success, undef on failure.
reassignIncident
reassignIncident(Incident number, assignment group, optional assigned to)
Example:
my $ret = $SN->reassignIncident('INC99999', 'SOME_GROUP');
my $ret = $SN->reassignIncident('INC99999', 'SOME_GROUP', 'username');
Reassign a ServiceNow Incident to a new assignment_group.(and optionally specify an assigned_to) Returns the
incident number on success, undef on failure.
Ticket
createTicket
createTicket(Reference to named parameters hash of ticket fields and values)
Example:
my $number = $SN->createTicket({"category" => "hardware"});
Create a ServiceNow ticket associated with an incident. Returns a ticket number upon success. On failure returns
undef.
updateTicket
updateTicket(The ticket number , Reference to named parameters hash of ticket fields and values to update)
Example:
my $ret = $SN->updateTicket($number, {$field => $value});

ServiceNow.pm
5
Returns undef on failure, all other values indicate success.
queryTicket
queryTicket( Reference to named parameters hash of Incident fields and exact values )
Example:
my @tickets = $SN->queryTicket({'number' => $number});
Query for tickets matching specified criteria. Reference to array of hashes of all matching tickets, undef on failure or
if no records found.
closeTicket
closeTicket(Ticket number, {$field => $value})
Example:
my $ret = $SN->closeTicket($number);
my $ret = $SN->closeTicket($number, {"comments" => "ticket closed"});
Close a ServiceNow ticket and optionally specify work effort. Returns the ticket number on success, undef on
failure.
reopenTicket
reopenTicket(The ticket number)
Example:
my $ret = $SN->reopenTicket('TKT99999');
Reopen a closed ServiceNow ticket. Returns the ticket number on success, undef on failure.
reassignTicket
reassignTicket(ticket number, the incident assignment group, optional person to assign the ticket to)
Example:
my $ret = $SN->reassignTicket('TKT99999', 'SOME_GROUP');
my $ret = $SN->reassignTicket('TKT99999', 'SOME_GROUP', 'username');
Reassign a ServiceNow ticket to a new assignment_group. Returns the ticket number on success, undef on failure.
RequestedItem / Request
createRequestedItem
createRequestedItem(catalog item number, requested for, variables)
Example:
my $req = $SN->createRequestedItem('CITM10000', "username", {'description' => 'Some description', 'group' => 'SOME_GROUP'});
Create a Service Catalog RequestedItem (and indirectly the associated Request and Tasks). Returns a RequestedItem
number upon success. On failure returns undef.

ServiceNow.pm
6
queryRequestedItem
queryRequestedItem(Reference to named parameters hash of RequestedItem fields and exact values)
Example:
my $requestedItems = $SN->queryRequestedItem({'number' => 'SOME_RI_NUMBER'});
Query for RequestedItems matching specified criteria. Reference to array of hashes of all matching RequestedItem,
undef on failure or if no records found.
queryRequest
queryRequest(Reference to named parameters hash of Request fields and exact values)
Example:
my $requests = $SN->queryRequest({'number' => 'SOME_REQUEST_NUMBER'});
Query for Requests matching specified criteria. Reference to array of hashes of all matching Request, undef on
failure or if no records found.
Task
createTask
createTask(optional paramaters)
Example:
$number = $SN->createTask({"short_description" => "this is the short description"});
Create a task record. Returns an task number upon success. On failure returns undef.
closeTask
closeTask(task number, optional work effort in seconds)
Example:
my $ret = $SN->closeTask($number);
my $ret = $SN->closeTask($number, {$field => $value});
Close a ServiceNow Task and optionally update field values. Returns true on success, undef on failure.
reopenTask
reopenTask(task number)
Example:
my $ret = $SN->reopenTask('TASK99999');
Reopen a closed ServiceNow Task. Returns true on success, undef on failure.
reassignTask
reassignTask(task number, assignment group, optional person it is being assigned to)
Example:
my $ret = $SN->reassignTask('TASK99999', 'SOME_GROUP');
my $ret = $SN->reassignTask('TASK99999', 'SOME_GROUP', 'username');

ServiceNow.pm
7
Reassign a ServiceNow Task to a new assignment_group. (and optionally specify an assigned_to) Returns true on
success, undef on failure.
updateTask
updateTask(task number, reference to named parameters hash of Task fields and values)
Example:
my $ret = $SN->updateTask($number, {$field => $value});
Update a ServiceNow Task. Returns true on success, undef on failure.
queryTask
queryTask(reference to named parameters hash of Task fields and exact values )
Example:
my @tasks = $SN->queryTask({'number' => $number});
foreach my $task (@tasks) {
print "Incident number: $task->{'number'}\n";
print "Assignent Group: $task->{'assignment_group'}\n";
print "Opened by: $task->{'opened_by'}\n";
print "SD: $task->{'short_description'}\n";
print "TW: $task->{'time_worked'}\n";
print "\n"
}
Query for Tasks matching specified criteria. Array of hashes of all matching Tasks, undef on failure or if no records
found.
Journal
queryJournal
queryJournal(Incident/Ticket/Task number, optional journal field name )
Query for journals entries for the specified incident, ticket or task. Return array of hashes of all matching Journals,
undef on failure or if no records found. There will be one hash per per journal entry, 'value' will contain the journal
entry string, 'element' will be the name of the field (e.g. 'comments', 'work_notes', etc.)
appendJournal
appendJournal(Incident/Ticket/Task number, field name, journal text)
Example:
my $ret = $SN->appendJournal('INC99999', 'comments' "some comment text");
Append a journal entry to the specified journal field of an incident, ticket, or task. Returns true on success, undef on
failure.

ServiceNow.pm
8
Approval
queryApproval
queryApproval(reference to named parameters hash of approval fields and exact values)
Example:
my @approvals = $SN->queryApproval({'approver' => 'username'});
Query for approvals Return array of hashes of all matching approvals, undef on failure or if no records found.
approve
approve(sys_id of the approval,approval state,optional comment text)
Example:
my $ret = $SN->approve($sys_id, 'Approved');
my $ret = $SN->approve($sys_id, 'Rejected', "Please do something else");
Approve/reject a ServiceNow approval request and optionally provide a comment. Returns the sys_id on success,
undef on failure.
Dictionary
queryFields
queryFields(table, optional boolean)
Example:
my @fields = $SN->queryFields('incident');
List all the fields of an Incident, Request, RequestedItem or Task. Returns a reference to a hash of fields in the
specified table type. The hash key is the field name, and the hash value is a hash reference to attributes about the
field: 'mandatory', 'hint', 'label', 'reference' and 'choice'. Returns undef on failure. If getchoices is true then 'choices' is
a reference to a hash containing individual choices, keyed by choice value and containing choice 'label' and 'hint'.

9
ITIL Objects
Incident.pm
Perl API

ServiceNow.pm

ITIL Objects

Incident.pm

Problem.pm

Change.pm

Request.pm

RequestedItem.pm

SC_Task.pm

Ticket.pm

Task.pm

Approval.pm

Other

Configuration.pm

GlideRecord.pm

Attachment.pm
Related Topics

Integration Overview

Web Services
Get the Book
Get the Book
Incident module
ServiceNow Perl API - Incident perl module
Desciption
An object representation of an Incident in the ServiceNow platform. Provides subroutines for querying, updating,
and creating incidents.
System Requirements
The ServiceNow Perl API requires Perl 5.8 with the following modules installed

SOAP::Lite (prerequisites http:/ / soaplite. com/ prereqs. html) 0.71 or later

Crypt::SSLeay

IO::Socket::SSL

Incident.pm
10
Examples
Creating an Incident
#!/usr/bin/perl -w
use ServiceNow;
use ServiceNow::Configuration;
use ServiceNow::ITIL::Incident;
my $CONFIG = ServiceNow::Configuration->new();
$CONFIG->setSoapEndPoint("https://demoi1.service-now.com/");
$CONFIG->setUserName("admin");
$CONFIG->setUserPassword("admin");
# setting incident values as a hash map in the insert argument
my $incident = ServiceNow::ITIL::Incident->new($CONFIG);
my $sys_id = $incident->insert({"short_description" => "this incident was created from the Perl API", "category" => "hardware"});
print $sys_id ."\n";
# setting incident values by making setValue calls to the incident object
$incident = ServiceNow::ITIL::Incident->new($CONFIG);
$incident->setValue("short_description", "this incident was created from the Perl API - 2");
$incident->setValue("category", "hardware");
$sys_id = $incident->insert();
print $sys_id ."\n";
Querying for Incidents
#!/usr/bin/perl -w
use ServiceNow;
use ServiceNow::Configuration;
use ServiceNow::ITIL::Incident;
my $CONFIG = ServiceNow::Configuration->new();
$CONFIG->setSoapEndPoint("https://demoi1.service-now.com/");
$CONFIG->setUserName("admin");
$CONFIG->setUserPassword("admin");
my $incident = ServiceNow::ITIL::Incident->new($CONFIG);
$incident->addQuery("assignment_group", "Service Desk");
$incident->addQuery("category", "Hardware");
$incident->query();
while($incident->next()) {
print "number=" . $incident->getValue("number") . "\n";
print "sd=" . $incident->getValue("short_description") . "\n";

Incident.pm
11
print "opened_by Display Value= " . $incident->getDisplayValue("opened_by") . "\n";
print "opened_by sys_id= " . $incident->getValue('opened_by');
}
Adding an attachment to a newly created Incident
#!/usr/bin/perl -w
use ServiceNow;
use ServiceNow::Configuration;
use ServiceNow::ITIL::Incident;
my $CONFIG = ServiceNow::Configuration->new();
$CONFIG->setSoapEndPoint("https://demoi1.service-now.com/");
$CONFIG->setUserName("admin");
$CONFIG->setUserPassword("admin");
my $incident = ServiceNow::ITIL::Incident->new($CONFIG);
$incident->setValue("short_description", "test incident for attachment 2");
$incident->insert();
$incident->attach("/Users/davidloo/Desktop/test_files/number_test.xls");
Constructor
new
new(Configuration);
Example:
$incident = ServiceNow::ITIL::Incident->new($CONFIG);
Takes a configuration object and manufactures an Incident object connected to the ServiceNow instance
Subroutines inherited from Task.pm

attach

close

create

queryJournal

reassign

reopen

Incident.pm
12
Subroutines inherited from GlideRecord.pm

addQuery

getValue

getDisplayValue

setValue

next

insert

query

update
Subroutines
close
close(number, hashmap);
Example:
$incident->close($number)
Close an incident and update values described in the hash map passed in.
reopen
reopen(number, hashmap);
Example:
$incident->reopen($number);
Re-open a closed incident and update values described in the hash map passed in.
createProblem
createProblem();
Create a problem ticket from an incident and associate it. Returns the sys_id of the newly created problem ticket
createChange
createChange();
Create a change request from an incident and associate it. Returns the sys_id of the newly created change request

Problem.pm
13
Problem.pm
Perl API

ServiceNow.pm

ITIL Objects

Incident.pm

Problem.pm

Change.pm

Request.pm

RequestedItem.pm

SC_Task.pm

Ticket.pm

Task.pm

Approval.pm

Other

Configuration.pm

GlideRecord.pm

Attachment.pm
Related Topics

Integration Overview

Web Services
Get the Book
Get the Book
Problem module
ServiceNow Perl API - Problem perl module
Desciption
An object representation of a Problem in the ServiceNow platform. Provides subroutines for querying, updating, and
creating problems.
System Requirements
The ServiceNow Perl API requires Perl 5.8 with the following modules installed

SOAP::Lite (prerequisites http:/ / soaplite. com/ prereqs. html) 0.71 or later

Crypt::SSLeay

IO::Socket::SSL

Problem.pm
14
Constructor
new
new(Configuration);
Example:
$problem = ServiceNow::ITIL::Problem->new($CONFIG);
Takes a configuration object and manufactures a Problem object connected to the ServiceNow instance
Subroutines inherited from Task.pm

attach

close

create

queryJournal

reassign

reopen
Subroutines inherited from GlideRecord.pm

addQuery

getValue

getDisplayValue

setValue

next

insert

query

update

Change.pm
15
Change.pm
Perl API

ServiceNow.pm

ITIL Objects

Incident.pm

Problem.pm

Change.pm

Request.pm

RequestedItem.pm

SC_Task.pm

Ticket.pm

Task.pm

Approval.pm

Other

Configuration.pm

GlideRecord.pm

Attachment.pm
Related Topics

Integration Overview

Web Services
Get the Book
Get the Book
Change module
ServiceNow Perl API - Change perl module
Desciption
An object representation of an Change in the ServiceNow platform. Provides subroutines for querying, updating, and
creating change requests.
System Requirements
The ServiceNow Perl API requires Perl 5.8 with the following modules installed

SOAP::Lite (prerequisites http:/ / soaplite. com/ prereqs. html) 0.71 or later

Crypt::SSLeay

IO::Socket::SSL

Change.pm
16
Constructor
new
new(Configuration);
Example:
$change = ServiceNow::ITIL::Change->new($CONFIG);
Takes a configuration object and manufactures an Change object connected to the ServiceNow instance
Subroutines inherited from Task.pm

attach

close

create

queryJournal

reassign

reopen
Subroutines inherited from GlideRecord.pm

addQuery

getValue

getDisplayValue

setValue

next

insert

query

update

Request.pm
17
Request.pm
Perl API

ServiceNow.pm

ITIL Objects

Incident.pm

Problem.pm

Change.pm

Request.pm

RequestedItem.pm

SC_Task.pm

Ticket.pm

Task.pm

Approval.pm

Other

Configuration.pm

GlideRecord.pm

Attachment.pm
Related Topics

Integration Overview

Web Services
Get the Book
Get the Book
Request module
ServiceNow Perl API - Request perl module
Desciption
An object representation of an Request in the ServiceNow platform. Provides subroutines for querying, updating,
and creating service catalog requests.
System Requirements
The ServiceNow Perl API requires Perl 5.8 with the following modules installed

SOAP::Lite (prerequisites http:/ / soaplite. com/ prereqs. html) 0.71 or later

Crypt::SSLeay

IO::Socket::SSL

Request.pm
18
Constructor
new
new(Configuration);
Example:
$request = ServiceNow::ITIL::Request->new($CONFIG);
Takes a configuration object and manufactures an Request object connected to the ServiceNow instance
Subroutines inherited from Task.pm

attach

close

create

queryJournal

reassign

reopen
Subroutines inherited from GlideRecord.pm

addQuery

getValue

getDisplayValue

setValue

next

insert

query

update
Subroutines
createRequest
createRequest(user);
Create a service request for the specified user

RequestedItem.pm
19
RequestedItem.pm
Perl API

ServiceNow.pm

ITIL Objects

Incident.pm

Problem.pm

Change.pm

Request.pm

RequestedItem.pm

SC_Task.pm

Ticket.pm

Task.pm

Approval.pm

Other

Configuration.pm

GlideRecord.pm

Attachment.pm
Related Topics

Integration Overview

Web Services
Get the Book
Get the Book
RequestedItem module
ServiceNow Perl API - RequestedItem perl module
Desciption
An object representation of an Requested Item in the ServiceNow platform. Provides subroutines for querying,
updating, and creating service catalog requested item.
System Requirements
The ServiceNow Perl API requires Perl 5.8 with the following modules installed

SOAP::Lite (prerequisites http:/ / soaplite. com/ prereqs. html) 0.71 or later

Crypt::SSLeay

IO::Socket::SSL

RequestedItem.pm
20
Constructor
new
new(Configuration);
Example:
$req_item = ServiceNow::ITIL::RequestedItem->new($CONFIG);
Takes a configuration object and manufactures an Requested Item object connected to the ServiceNow instance
Subroutines inherited from Task.pm

attach

close

create

queryJournal

reassign

reopen
Subroutines inherited from GlideRecord.pm

addQuery

getValue

getDisplayValue

setValue

next

insert

query

update

SC_Task.pm
21
SC_Task.pm
Perl API

ServiceNow.pm

ITIL Objects

Incident.pm

Problem.pm

Change.pm

Request.pm

RequestedItem.pm

SC_Task.pm

Ticket.pm

Task.pm

Approval.pm

Other

Configuration.pm

GlideRecord.pm

Attachment.pm
Related Topics

Integration Overview

Web Services
Get the Book
Get the Book
SC_Task module
ServiceNow Perl API - SC_Task perl module
Desciption
An object representation of an Service Request Task in the ServiceNow platform. Provides subroutines for querying,
updating, and creating sc_task.
System Requirements
The ServiceNow Perl API requires Perl 5.8 with the following modules installed

SOAP::Lite (prerequisites http:/ / soaplite. com/ prereqs. html) 0.71 or later

Crypt::SSLeay

IO::Socket::SSL

SC_Task.pm
22
Constructor
new
new(Configuration);
Example:
$sc_task = ServiceNow::ITIL::RequestedItem->new($CONFIG);
Takes a configuration object and manufactures an Service Catalog Task object connected to the ServiceNow instance
Subroutines inherited from Task.pm

attach

close

create

queryJournal

reassign

reopen
Subroutines inherited from GlideRecord.pm

addQuery

getValue

getDisplayValue

setValue

next

insert

query

update

Ticket.pm
23
Ticket.pm
Perl API

ServiceNow.pm

ITIL Objects

Incident.pm

Problem.pm

Change.pm

Request.pm

RequestedItem.pm

SC_Task.pm

Ticket.pm

Task.pm

Approval.pm

Other

Configuration.pm

GlideRecord.pm

Attachment.pm
Related Topics

Integration Overview

Web Services
Get the Book
Get the Book
Ticket module
ServiceNow Perl API - Ticket perl module
Desciption
An object representation of a Ticket in the ServiceNow platform. Provides subroutines for querying, updating, and
creating tickets.
System Requirements
The ServiceNow Perl API requires Perl 5.8 with the following modules installed

SOAP::Lite (prerequisites http:/ / soaplite. com/ prereqs. html) 0.71 or later

Crypt::SSLeay

IO::Socket::SSL

Ticket.pm
24
Constructor
new
new(Configuration);
Example:
$ticket = ServiceNow::ITIL::Ticket->new($CONFIG);
Takes a configuration object and manufactures an Ticket object connected to the ServiceNow instance
Subroutines inherited from Task.pm

attach

close

create

queryJournal

reassign

reopen
Subroutines inherited from GlideRecord.pm

addQuery

getValue

getDisplayValue

setValue

next

insert

query

update

Task.pm
25
Task.pm
Perl API

ServiceNow.pm

ITIL Objects

Incident.pm

Problem.pm

Change.pm

Request.pm

RequestedItem.pm

SC_Task.pm

Ticket.pm

Task.pm

Approval.pm

Other

Configuration.pm

GlideRecord.pm

Attachment.pm
Related Topics

Integration Overview

Web Services
Get the Book
Get the Book
Task module
ServiceNow Perl API - Task perl module
Desciption
An object representation of a Task in the ServiceNow platform. Provides subroutines for querying, updating, and
creating tasks. Task is the parent class of Incident, Problem, Change, SC_Task and Ticket. These child classes
inherit subroutines from this class.
System Requirements
The ServiceNow Perl API requires Perl 5.8 with the following modules installed

SOAP::Lite (prerequisites http:/ / soaplite. com/ prereqs. html) 0.71 or later

Crypt::SSLeay

IO::Socket::SSL

Task.pm
26
Constructor
new
new(Configuration);
Example:
$task = ServiceNow::ITIL::Task->new($CONFIG);
Takes a configuration object and manufactures an Task object connected to the ServiceNow instance
Subroutines inherited from GlideRecord.pm

addQuery

getValue

getDisplayValue

setValue

next

insert

query

update
Subroutines
create
create(optional paramaters)
Example:
$task->create();
Creates and inserts Task/Incident/Ticket/SC_Task record into the respective table. Returns the number of created
record on succes, undef on failure.
close
close(number of record, optional parameters)
Example:
$task->close('INC1000312');
Sets the state of Task/Incident/Ticket/SC_Task to closed and updates the respective table. Returns the number of
created record on success, undef on failure.

Task.pm
27
reopen
reopen(number of record, optional parameters)
Example:
$task->reopen('TKT1003010');
Sets the state of Task/Incident/Ticket/SC_Task to open and updates the respective table.
reassign
reassign(number, group, user);
Example:
$incident->reassign($number, 'Database', 'user')
Re-assign an incident to the group and user specified.
queryJournal
queryJournal(configuration file, optional field name)
Example:
$task->queryJournal($config, 'work_notes');
Returns an array of hash references to each journal associated with the current Task/Incident/Ticket/SC_Task.
Optional field name refines the search to a specified field.
attach
attach(file path)
Example:
$task->attach("/Users/davidloo/Desktop/test_files/number_test.xls");
Attach a file to a record of Task

Approval.pm
28
Approval.pm
Perl API

ServiceNow.pm

ITIL Objects

Incident.pm

Problem.pm

Change.pm

Request.pm

RequestedItem.pm

SC_Task.pm

Ticket.pm

Task.pm

Approval.pm

Other

Configuration.pm

GlideRecord.pm

Attachment.pm
Related Topics

Integration Overview

Web Services
Get the Book
Get the Book
Approval module
ServiceNow Perl API - Approval perl module
Desciption
An object representation of an Approval record in the ServiceNow platform. Provides subroutines for querying,
updating, and creating approvals.
System Requirements
The ServiceNow Perl API requires Perl 5.8 with the following modules installed

SOAP::Lite (prerequisites http:/ / soaplite. com/ prereqs. html) 0.71 or later

Crypt::SSLeay

IO::Socket::SSL

Approval.pm
29
Constructor
new
new(Configuration);
Example:
$approvals = ServiceNow::ITIL::Approval->new($CONFIG);
Takes a configuration object and manufactures an Approval object connected to the ServiceNow instance
Subroutines inherited from Task.pm

attach

close

create

queryJournal

reassign

reopen
Subroutines inherited from GlideRecord.pm

addQuery

getValue

getDisplayValue

setValue

next

insert

query

update
Subroutines
reject
reject(sys_id of approval record, optional comment string)
Example:
$approval->reject($sysID,$comment);
Reject the Approval record with specified sys id, and add comment to approval if given.
approve
approve(sys_id of approval record, optional comment string)
Example:
$approval->approve($sysID,$comment);
Approve the Approval record with specified sys id, and add comment to approval if given.

30
Other
Configuration.pm
Perl API

ServiceNow.pm

ITIL Objects

Incident.pm

Problem.pm

Change.pm

Request.pm

RequestedItem.pm

SC_Task.pm

Ticket.pm

Task.pm

Approval.pm

Other

Configuration.pm

GlideRecord.pm

Attachment.pm
Related Topics

Integration Overview

Web Services
Get the Book
Get the Book
Configuration module
ServiceNow Perl API - Ticket perl module
Desciption
An object representation of a Configuration object used to access your ServiceNow instance.
System Requirements
The ServiceNow Perl API requires Perl 5.8 with the following modules installed

SOAP::Lite (prerequisites http:/ / soaplite. com/ prereqs. html) 0.71 or later

Crypt::SSLeay

IO::Socket::SSL

Configuration.pm
31
Constructor
new
new();
Example:
$conf = ServiceNow::Configuration->new();
Create a new Configuration object and start customizing it to be used for other objects
Subroutines
getSoapEndpoint
getSoapEndpoint(target_table);
Gets the complete SOAP endpoint used to access your ServiceNow instance, given the table name.
setSoapEndpoint
setSoapEndpoint(endpoint_url);
Sets the complete SOAP endpoint used to access your ServiceNow instance.
For example:
my $CONFIG = ServiceNow::Configuration->new();
$CONFIG->setSoapEndpoint("https://instance_name.service-now.com/");
my $incident = ServiceNow::ITIL::Incident->new($CONFIG);
getUserName
getUserName();
Get the user name used to authenticate a connection to the SOAP endpoint
setUserName
setUserName(user_name);
Set the user name used to authenticate a connection to the SOAP endpoint
getUserPassword
getUserPassword();
Get the user password used to authenticate a connection to the SOAP endpoint

Configuration.pm
32
setUserPassword
setUserPassword(user_password);
Set the user password used to authenticate a connection to the SOAP endpoint
getConnection
getConnection(target_table);
Get the Connection object used to access the ServiceNow SOAP endpoint
GlideRecord.pm
Perl API

ServiceNow.pm

ITIL Objects

Incident.pm

Problem.pm

Change.pm

Request.pm

RequestedItem.pm

SC_Task.pm

Ticket.pm

Task.pm

Approval.pm

Other

Configuration.pm

GlideRecord.pm

Attachment.pm
Related Topics

Integration Overview

Web Services
Get the Book
Get the Book
GlideRecord module
ServiceNow Perl API - GlideRecord perl module
Desciption
An object representation of a GlideRecord object used to access your ServiceNow instance.
System Requirements
The ServiceNow Perl API requires Perl 5.8 with the following modules installed

SOAP::Lite (prerequisites http:/ / soaplite. com/ prereqs. html) 0.71 or later

Crypt::SSLeay

IO::Socket::SSL

GlideRecord.pm
33
Constructor
new
new(Configuration object, Table name, optional caller object)
$config = ServiceNow::Configuration->new();
$glideRecord = ServiceNow::GlideRecord->new($config,'incident',$me);
Constructor. Access to the ServiceNow Glide Record object. The caller object is optional unless creating a Class that
inherits GlideRecord (See any class in ServiceNow/ITIL for example).
Subroutines
insert
insert(optional hash argument)
Example:
$glideRecord->insert();
Inserts glide record into Table. Returns sys id.
setValue
setValue(name, value)
Example:
$glideRecord->setValue('caller_id','56');
Sets element within Glide Record with name to specified value. Will not effect the GlideRecord within the Table
until inserted or updated.
addQuery
addQuery(name, value)
Example:
$glideRecord->addQuery('number','INC1000014');
$glideRecord->query();
Refines query to include only the Glide Records with field name=value.

GlideRecord.pm
34
query
query(optional hash arguments)
Example:
$glideRecord->query();
Returns all Glide Records in the Table with specified query. Step through the Records with the next() call.
next
next()
Example:
if($glideRecord->next());
while($glideRecord->next());
Steps through the results of Glide Record query. Returns TRUE if more elements exist.
update
update(optional hash arguments)
Example:
$glideRecord->setValue('name','value');
$glideRecord->update();
Updates Glide Record in table with the Glide Record object. Changes to Glide Record object will not take effect
until updated or inserted. Returns sys_id of record on success, undef of failure.
getValue
getValue(name)
Example:
$glideRecord->getValue($name);
Get value of element name in GlideRecord. Returns string value of element.
getDisplayValue
getDisplayValue(name)
Example:
$glideRecord->getDisplayValue($name);
Gets display value of element name in GlideRecord. A display value would be the string name, instead of the sys_id
in the case of a reference field, or the string value instead of the number value in the case of choice fields.

Attachment.pm
35
Attachment.pm
Perl API

ServiceNow.pm

ITIL Objects

Incident.pm

Problem.pm

Change.pm

Request.pm

RequestedItem.pm

SC_Task.pm

Ticket.pm

Task.pm

Approval.pm

Other

Configuration.pm

GlideRecord.pm

Attachment.pm
Related Topics

Integration Overview

Web Services
Get the Book
Get the Book
Attachment module
ServiceNow Perl API - Attachment perl module
Desciption
An object representation of an Attachment in the ServiceNow platform. Provides subroutines for creating an
attachment and attaching to an existing record
System Requirements
The ServiceNow Perl API requires Perl 5.8 with the following modules installed

SOAP::Lite (prerequisites http:/ / soaplite. com/ prereqs. html) 0.71 or later

Crypt::SSLeay

IO::Socket::SSL

File::Basename

MIME::Types

MIME::Type

MIME::Base64

Attachment.pm
36
Constructor
new
new(Configuration);
Example:
$task = ServiceNow::Attachment->new($CONFIG);
Takes a configuration object and manufactures an Task object connected to the ServiceNow instance
Subroutines
create
create(path, table_name, sys_id)
Example:
$attachment->create("/Users/davidloo/Desktop/test_files/number_test.xls", "incident", "9d385017c611228701d22104cc95c371");
Creates an attachment from a file on the local disk, to an existing record defined by table_name and sys_id Returns
the sys_id of the ecc_queue record, undef if failed

Article Sources and Contributors
37
Article Sources and Contributors
ServiceNow.pm  Source: https://wiki.servicenow.com/index.php?oldid=80844  Contributors: David Loo, Joseph.messerschmidt, Rachel.sienko
Incident.pm  Source: https://wiki.servicenow.com/index.php?oldid=80839  Contributors: David Loo, Joseph.messerschmidt, Kenny.caldwell, Neola, Rachel.sienko
Problem.pm  Source: https://wiki.servicenow.com/index.php?oldid=80840  Contributors: David Loo, Joseph.messerschmidt, Neola, Rachel.sienko
Change.pm  Source: https://wiki.servicenow.com/index.php?oldid=80835  Contributors: David Loo, Joseph.messerschmidt, Rachel.sienko
Request.pm  Source: https://wiki.servicenow.com/index.php?oldid=80841  Contributors: David Loo, Joseph.messerschmidt, Rachel.sienko
RequestedItem.pm  Source: https://wiki.servicenow.com/index.php?oldid=80842  Contributors: David Loo, Joseph.messerschmidt, Rachel.sienko
SC_Task.pm  Source: https://wiki.servicenow.com/index.php?oldid=80843  Contributors: David Loo, Joseph.messerschmidt, Rachel.sienko
Ticket.pm  Source: https://wiki.servicenow.com/index.php?oldid=80846  Contributors: David Loo, Joseph.messerschmidt, Rachel.sienko
Task.pm  Source: https://wiki.servicenow.com/index.php?oldid=80845  Contributors: David Loo, Joseph.messerschmidt, Rachel.sienko
Approval.pm  Source: https://wiki.servicenow.com/index.php?oldid=80833  Contributors: David Loo, Joseph.messerschmidt, Rachel.sienko
Configuration.pm  Source: https://wiki.servicenow.com/index.php?oldid=80755  Contributors: David Loo, Joseph.messerschmidt, Rachel.sienko
GlideRecord.pm  Source: https://wiki.servicenow.com/index.php?oldid=82161  Contributors: David Loo, Joseph.messerschmidt, Rachel.sienko
Attachment.pm  Source: https://wiki.servicenow.com/index.php?oldid=80834  Contributors: David Loo, Joseph.messerschmidt, Rachel.sienko

Image Sources, Licenses and Contributors
38
Image Sources, Licenses and Contributors
Image:Knowledge.gif  Source: https://wiki.servicenow.com/index.php?title=File:Knowledge.gif  License: unknown  Contributors: G.yedwab