| About this Document
This document is aimed at developers. It explains the
WSDL/SOAP interface to Fast IssueTrack. Using the calls
defined in this document, a developer can quickly query,
create and update issues within the Fast IssueTrack system.
This document assumes some familiarity with XML and
SOAP. You should also be at lease somewhat familiar with
Fast IssueTrack, and the data stored within.
Setting up Perl/SOAP-Lite on Windows
Download and install Perl from ActiveState
Download and install nmake (make utility) from Microsoft
Download and install SOAPLite (There is also a ton of
SOAP documentation here!)
Download and install URI Perl module. Other perl modules
are recommended on the SOAPLite page, but no other modules
are required for communicating with Fast IssueTrack.
Configure Fast IssueTrack to enable SOAP Interface
Admin Menu
SOAP Functions
Click "Enable SOAP" check box and Submit.
WSDL Explained
WSDL: WSDL stands for Web Service Description Language,
and it defines all of the web service requests and responses
that can be made to Fast IssueTrack. There are 4 basic opertions that
can be performed through the web interface: |
| GetId |
This call returns the full issue detail for a single specific
issue. It is the equivilant of viewing a issues details through
the web interface. |
Read-only |
| GetissueList |
This call allows the caller to define parameters, through
which a set of issues will be returned. It is the equivilant
of the filter screen in the web interface. |
Read-only |
| Newissue |
Create a new issue within your system using this call. |
Write |
| UpdateIssue |
Update an existing issue within your system using this
call. |
Write |
Before executing any examples
in this document, or using any soap functionality, you must
enable SOAP within Fast IssueTrack (it is disabled by default). Enable
SOAP from "Admin Menu", "SOAP Functions"
and check "Enable SOAP" checkbox and press the
submit button.
NOTE: Fast IssueTrack will dynamically generate a custom
.wsdl file based on how your instance of Fast IssueTrack
is configured (ie. If you have custom fields, they will
be added to your wsdl file. All of our examples in this
document assume the stock Fast IssueTrack installation.
You can view the .wsdl file by going to http://localhost:10000/FastIssuegTrack.wsdl
(assuming you are on the same machine as Fast IssueTrack
is running on... Replace localhost with the name of the
machine running Fast IssueTrack. |
|
Before executing any examples
in this document, or using any soap functionality, you
must enable SOAP within Fast IssueTrack (it is disabled by default).
Enable SOAP from "Admin Menu", "SOAP Functions"
and check "Enable SOAP" checkbox and press the
submit button.
NOTE: Fast IssueTrack will dynamically generate a custom
.wsdl file based on how your instance of Fast IssueTrack
is configured (ie. If you have custom fields, they will
be added to your wsdl file. All of our examples in this
document assume the stock Fast IssueTrack installation.
You can view the .wsdl file by going to http://localhost:10000/FastIssueTrack.wsdl
(assuming you are on the same machine as Fast IssueTrack
is running on... Replace localhost with the name of the
machine running Fast IssueTrack.
General Conventions
Field names within Fast IssueTrack are prefixed with "m",
and "camelcase" is used for field naming conventions
(capitalize the beginning of each word). Example: the
Id field is mId, the Date Last Modified field is mDateLastModified.
All of the examples provided are using Perl and SOAP::Lite
(a Perl module). We're using this for our examples because:
Perl and SOAP::Lite are available for just about every
operating system, and they're free. While we're using
Perl, most modern programming languages have web service
modules / libraries that should work fine with Fast IssueTrack.
Customers with any questions about compatibility and/or
would like examples for platforms can email tracking@alceatech.com
for additional information.
getId
Description
This function is similar to the filter function - returning
the data that you would see on the MainMenu.
Sample Perl Code
The following Perl code retrieves the details of issue 10
from the system. We turn full debug on, to display both
the raw data that we send to Fast IssueTrack, and display the raw
data received in response.
#!/usr/bin/perl
use SOAP::Lite;
print SOAP::Lite
->service("http://localhost:10000/FastIssueTrack.wsdl")
-> on_debug(sub{print@_})
-> getId(SOAP::Data->name("mId" =>
"10"));
Input
We can see that the following SOAP message is sent to
Fast IssueTrack:
POST http://localhost:10000
Accept: text/xml
Accept: multipart/*
Content-Length: 448
Content-Type: text/xml; charset=utf-8
SOAPAction: "http://localhost:10000/getId"
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/1999/XMLSchema">
<SOAP-ENV:Body>
<getId xmlns="">
<mId xsi:type="xsd:int">10</mId>
</getId>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Output
The details of the issue are returned. The contents are
contained in a issueStruct element, which in turn contains
all of the current (non-history) fields, plus issueEntry
structures for each update to the issue. Each issueEntry contains
the values that were provided in those updates.
Sample output from the perl call:
HTTP/1.1 200 OK
Content-Length: 1919
Content-Type: text/xml; charset=utf-8
Client-Date: Tue, 21 Oct 2003 02:38:11 GMT
Client-Peer: 127.0.0.1:10000
Client-Response-Num: 1
<?xml version="1.0"?>
<SOAP-ENV:Envelope
xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/1999/XMLSchema"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<issueStruct>
<mId>10</mId>
<mSubject>performance @ Aktiom ... Server timing
...</mSubject>
<mDateEntered>Tue Sep 16 00:13:23 EDT 2003</mDateEntered>
<mCurrentStatus>Closed</mCurrentStatus>
<mCurrentAssignedTo>cjustus</mCurrentAssignedTo>
<mLastModifiedBy>cjustus</mLastModifiedBy>
<mDateLastModified>Mon Sep 22 21:55:12 EDT 2003</mDateLastModified>
<mEnteredBy>cjustus</mEnteredBy>
<mPriority>3</mPriority>
<mProject>Aktiom</mProject>
<mArea>area</mArea>
<mVersion></mVersion>
<mEnvironment></mEnvironment>
<mParent>0</mParent>
<mRequestedDueDate>null</mRequestedDueDate>
<mActualCompletionDate>null</mActualCompletionDate>
<mEstimatedHours>0.0</mEstimatedHours>
<mActualHours>0.0</mActualHours>
<mPercentComplete>0.0</mPercentComplete>
<issueHistory>
<issueEntry>
<mAssignedTo>cjustus</mAssignedTo>
<mWho>cjustus</mWho>
<mStatus>Open</mStatus>
<mWhen>Tue Sep 16 00:13:23 EDT 2003</mWhen>
<mDescription></mDescription>
</issueEntry>
<issueEntry>
<mAssignedTo>cjustus</mAssignedTo>
<mWho>cjustus</mWho>
<mStatus>Closed</mStatus>
<mWhen>Mon Sep 22 21:55:12 EDT 2003</mWhen>
<mDescription>istop issue...</mDescription>
</issueEntry>
</issueHistory>
</issueStruct>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
|