D HP Service Manager WSDL Format

Templates translate the XML format of Enterprise Manager incidents to the XML format required for the end-point application's web service. To create custom templates, you need to understand the format of both sides so that you know how to map the data. This appendix provides detailed information on the format of the XML document that the Service Manager Web service requires.

A WSDL file defines the interface that must be used to call a Web service. The WSDL defines the structure of the XML document that it accepts and how the Web service is to be called. The contents of the WSDL file are listed in Example D-1. All unused operations and messages have been removed to reduce the amount of information. This is the out-of-box WSDL that Service Manager provides. Your WSDL may be significantly different, because the Service Manager web services can be highly customized.

Examples provided in this appendix are as follows:

Example D-1 IncidentManagement WSDL File

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<definitions targetNamespace="http://servicecenter.peregrine.com/PWS"
    xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:cmn="http://servicecenter.peregrine.com/PWS/Common"
    xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
    xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
    xmlns:ns="http://servicecenter.peregrine.com/PWS"
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://schemas.xmlsoap.org/wsdl/  http://schemas.xmlsoap.org/wsdl/">
    <types>
        <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" attributeFormDefault="unqualified"
            elementFormDefault="qualified" targetNamespace="http://servicecenter.peregrine.com/PWS"
            version="2008-09-11 Rev 0" xmlns="http://servicecenter.peregrine.com/PWS"
            xmlns:cmn="http://servicecenter.peregrine.com/PWS/Common">
            <xs:import namespace="http://servicecenter.peregrine.com/PWS/Common"
                schemaLocation="http://hpsm710c:13080/sc62server/PWS/Common.xsd"/>
            <xs:complexType name="IncidentKeysType">
                <xs:sequence>
                    <xs:element minOccurs="0" name="IncidentID" nillable="true"
                        type="cmn:StringType"/>
                </xs:sequence>
                <xs:attribute name="query" type="xs:string" use="optional"/>
            </xs:complexType>
            <xs:complexType name="IncidentInstanceType">
                <xs:sequence>
                    <xs:element minOccurs="0" name="IncidentID" nillable="true"
                        type="cmn:StringType"/>
                    <xs:element minOccurs="0" name="Category" nillable="true" type="cmn:StringType"/>
                    <xs:element minOccurs="0" name="OpenTime" nillable="true"
                        type="cmn:DateTimeType"/>
                    <xs:element minOccurs="0" name="OpenedBy" nillable="true" type="cmn:StringType"/>
                    <xs:element minOccurs="0" name="severity" nillable="true" type="cmn:StringType"/>
                    <xs:element minOccurs="0" name="UpdatedTime" nillable="true"
                        type="cmn:DateTimeType"/>
                    <xs:element minOccurs="0" name="PrimaryAssignmentGroup"                        nillable="true"
                        type="cmn:StringType"/>
                    <xs:element minOccurs="0" name="ClosedTime" nillable="true"
                        type="cmn:DateTimeType"/>
                    <xs:element minOccurs="0" name="ClosedBy" nillable="true"                       type="cmn:StringType"/>
                    <xs:element minOccurs="0" name="ClosureCode" nillable="true"
                        type="cmn:StringType"/>
                    <xs:element minOccurs="0" name="AffectedItem" nillable="true"
                        type="cmn:StringType"/>
                    <xs:element minOccurs="0" name="IncidentDescription">
                        <xs:complexType>
                            <xs:complexContent>
                                <xs:extension base="cmn:ArrayType">
                                    <xs:sequence>
                                        <xs:element maxOccurs="unbounded"                                             minOccurs="0"
                                            name="IncidentDescription" type="cmn:StringType"/>
                                    </xs:sequence>
                                </xs:extension>
                            </xs:complexContent>
                        </xs:complexType>
                    </xs:element>
                    <xs:element minOccurs="0" name="Resolution">
                        <xs:complexType>
                            <xs:complexContent>
                                <xs:extension base="cmn:ArrayType">
                                    <xs:sequence>
                                        <xs:element maxOccurs="unbounded"                                             minOccurs="0"
                                            name="Resolution" type="cmn:StringType"/>
                                    </xs:sequence>
                                </xs:extension>
                            </xs:complexContent>
                        </xs:complexType>
                    </xs:element>
                    <xs:element minOccurs="0" name="AssigneeName" nillable="true"
                        type="cmn:StringType"/>
                    <xs:element minOccurs="0" name="Contact" nillable="true" type="cmn:StringType"/>
                    <xs:element minOccurs="0" name="JournalUpdates">
                        <xs:complexType>
                            <xs:complexContent>
                                <xs:extension base="cmn:ArrayType">
                                    <xs:sequence>
                                        <xs:element maxOccurs="unbounded"                                              minOccurs="0"
                                            name="JournalUpdates" type="cmn:StringType"/>
                                    </xs:sequence>
                                </xs:extension>
                            </xs:complexContent>
                        </xs:complexType>
                    </xs:element>
                    <xs:element minOccurs="0" name="AlertStatus" nillable="true"
                        type="cmn:StringType"/>
                    <xs:element minOccurs="0" name="ContactLastName"                        nillable="true"
                        type="cmn:StringType"/>
                    <xs:element minOccurs="0" name="ContactFirstName"                        nillable="true"
                        type="cmn:StringType"/>
                    <xs:element minOccurs="0" name="Company" nillable="true" type="cmn:StringType"/>
                    <xs:element minOccurs="0" name="BriefDescription"                        nillable="true"
                        type="cmn:StringType"/>
                    <xs:element minOccurs="0" name="TicketOwner" nillable="true"
                        type="cmn:StringType"/>
                    <xs:element minOccurs="0" name="UpdatedBy" nillable="true" type="cmn:StringType"/>
                    <xs:element minOccurs="0" name="IMTicketStatus"                        nillable="true"
                        type="cmn:StringType"/>
                    <xs:element minOccurs="0" name="Subcategory" nillable="true"
                        type="cmn:StringType"/>
                    <xs:element minOccurs="0" name="SLAAgreementID"                        nillable="true"
                        type="cmn:DecimalType"/>
                    <xs:element minOccurs="0" name="SiteCategory" nillable="true"
                        type="cmn:StringType"/>
                    <xs:element minOccurs="0" name="ProductType" nillable="true"
                        type="cmn:StringType"/>
                    <xs:element minOccurs="0" name="ProblemType" nillable="true"
                        type="cmn:StringType"/>
                    <xs:element minOccurs="0" name="ResolutionFixType" nillable="true"
                        type="cmn:StringType"/>
                    <xs:element minOccurs="0" name="UserPriority" nillable="true"
                        type="cmn:StringType"/>
                    <xs:element minOccurs="0" name="Location" nillable="true" type="cmn:StringType"/>
                    <xs:element minOccurs="0" name="Solution">
                        <xs:complexType>
                            <xs:complexContent>
                                <xs:extension base="cmn:ArrayType">
                                    <xs:sequence>
                                        <xs:element maxOccurs="unbounded"                                             minOccurs="0"
                                            name="Solution" type="cmn:StringType"/>
                                    </xs:sequence>
                                </xs:extension>
                            </xs:complexContent>
                        </xs:complexType>
                    </xs:element>
                    <xs:element minOccurs="0" name="InitialImpact" nillable="true"
                        type="cmn:StringType"/>
                    <xs:element minOccurs="0" name="folder" nillable="true" type="cmn:StringType"/>
                    <xs:element minOccurs="0" name="Service" nillable="true" type="cmn:StringType"/>
                    <xs:element minOccurs="0" name="OracleConnectorId"                        nillable="true"
                        type="cmn:StringType"/>
                    <xs:element minOccurs="0" name="attachments" nillable="true"
                        type="cmn:AttachmentsType"/>
                </xs:sequence>
<xs:attribute name="query" type="xs:string" use="optional"/>
                <xs:attribute name="uniquequery" type="xs:string" use="optional"/>
                <xs:attribute name="recordid" type="xs:string" use="optional"/>
            </xs:complexType>
            <xs:complexType name="IncidentModelType">
                <xs:sequence>
                    <xs:element name="keys" type="IncidentKeysType"/>
                    <xs:element name="instance" type="IncidentInstanceType"/>
                    <xs:element minOccurs="0" name="messages" type="cmn:MessagesType"/>
                </xs:sequence>
                <xs:attribute name="query" type="xs:string" use="optional"/>
            </xs:complexType>
            <xs:element name="RetrieveIncidentRequest">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="model" type="IncidentModelType"/>
                    </xs:sequence>
                    <xs:attribute name="attachmentInfo" type="xs:boolean"                       use="optional"/>
                    <xs:attribute name="attachmentData" type="xs:boolean"                       use="optional"/>
                    <xs:attribute default="true" name="ignoreEmptyElements" type="xs:boolean"
                        use="optional"/>
                </xs:complexType>
            </xs:element>
            <xs:element name="RetrieveIncidentResponse">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="model" type="IncidentModelType"/>
                        <xs:element minOccurs="0" name="messages" type="cmn:MessagesType"/>
                    </xs:sequence>
                    <xs:attribute name="status" type="cmn:StatusType"                       use="required"/>
                    <xs:attribute name="message" type="xs:string" use="required"/>
                    <xs:attribute name="schemaRevisionDate" type="xs:date"                       use="required"/>
                    <xs:attribute name="schemaRevisionLevel" type="xs:int"                       use="required"/>
                    <xs:attribute name="returnCode" type="xs:decimal"                       use="optional"/>
                    <xs:attribute name="query" type="xs:string" use="optional"/>
                </xs:complexType>
            </xs:element>
            <xs:element name="CreateIncidentRequest">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="model" type="IncidentModelType"/>
                    </xs:sequence>
                    <xs:attribute name="attachmentInfo" type="xs:boolean"                       use="optional"/>
                    <xs:attribute name="attachmentData" type="xs:boolean"                       use="optional"/>
                    <xs:attribute default="true" name="ignoreEmptyElements" type="xs:boolean"
                        use="optional"/>
                </xs:complexType>
            </xs:element>
            <xs:element name="CreateIncidentResponse">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="model" type="IncidentModelType"/>
                        <xs:element minOccurs="0" name="messages" type="cmn:MessagesType"/>
                    </xs:sequence>
                    <xs:attribute name="status" type="cmn:StatusType"                       use="required"/>
                    <xs:attribute name="message" type="xs:string" use="required"/>
                    <xs:attribute name="schemaRevisionDate" type="xs:date"                       use="required"/>
                    <xs:attribute name="schemaRevisionLevel" type="xs:int"                       use="required"/>
                    <xs:attribute name="returnCode" type="xs:decimal"                       use="optional"/>
                    <xs:attribute name="query" type="xs:string" use="optional"/>
                </xs:complexType>
            </xs:element>
            <xs:element name="UpdateIncidentRequest">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="model" type="IncidentModelType"/>
                    </xs:sequence>
                    <xs:attribute name="attachmentInfo" type="xs:boolean"                       use="optional"/>
                    <xs:attribute name="attachmentData" type="xs:boolean"                       use="optional"/>
                    <xs:attribute default="true" name="ignoreEmptyElements" type="xs:boolean"
                        use="optional"/>
                </xs:complexType>
            </xs:element>
            <xs:element name="UpdateIncidentResponse">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="model" type="IncidentModelType"/>
                        <xs:element minOccurs="0" name="messages" type="cmn:MessagesType"/>
                    </xs:sequence>
                    <xs:attribute name="status" type="cmn:StatusType"                       use="required"/>
                    <xs:attribute name="message" type="xs:string" use="required"/>
                    <xs:attribute name="schemaRevisionDate" type="xs:date"                       use="required"/>
                    <xs:attribute name="schemaRevisionLevel" type="xs:int"                       use="required"/>
                    <xs:attribute name="returnCode" type="xs:decimal"                       use="optional"/>
                    <xs:attribute name="query" type="xs:string" use="optional"/>
                </xs:complexType>
            </xs:element>
        </xs:schema>
    </types>
    <message name="RetrieveIncidentRequest">
        <part element="ns:RetrieveIncidentRequest" name="RetrieveIncidentRequest"/>
    </message>
    <message name="RetrieveIncidentResponse">
        <part element="ns:RetrieveIncidentResponse" name="RetrieveIncidentResponse"/>
    </message>
    <message name="CreateIncidentRequest">
        <part element="ns:CreateIncidentRequest" name="CreateIncidentRequest"/>
    </message>
    <message name="CreateIncidentResponse">
        <part element="ns:CreateIncidentResponse" name="CreateIncidentResponse"/>
    </message>
    <message name="UpdateIncidentRequest">
        <part element="ns:UpdateIncidentRequest" name="UpdateIncidentRequest"/>
    </message>
    <message name="UpdateIncidentResponse">
        <part element="ns:UpdateIncidentResponse" name="UpdateIncidentResponse"/>
    </message>
    <portType name="IncidentManagement">
        <operation name="RetrieveIncident">
            <documentation/>
            <input message="ns:RetrieveIncidentRequest"/>
            <output message="ns:RetrieveIncidentResponse"/>
        </operation>
        <operation name="CreateIncident">
            <documentation/>
            <input message="ns:CreateIncidentRequest"/>
            <output message="ns:CreateIncidentResponse"/>
        </operation>
        <operation name="UpdateIncident">
            <documentation/>
            <input message="ns:UpdateIncidentRequest"/>
            <output message="ns:UpdateIncidentResponse"/>
        </operation>
    </portType>
    <binding name="IncidentManagement" type="ns:IncidentManagement">
        <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
        <operation name="RetrieveIncident">
            <soap:operation soapAction="Retrieve" style="document"/>
            <input>
                <soap:body use="literal"/>
            </input>
            <output>
                <soap:body use="literal"/>
            </output>
        </operation>
        <operation name="CreateIncident">
            <soap:operation soapAction="Create" style="document"/>
            <input>
                <soap:body use="literal"/>
            </input>
            <output>
                <soap:body use="literal"/>
            </output>
        </operation>
        <operation name="UpdateIncident">
            <soap:operation soapAction="Update" style="document"/>
            <input>
                <soap:body use="literal"/>
            </input>
            <output>
                <soap:body use="literal"/>
            </output>
        </operation>
    </binding>
    <service name="IncidentManagement">
        <port binding="ns:IncidentManagement" name="IncidentManagement">
            <soap:address location="http://hpsm710c:13080/sc62server/ws"/>
        </port>
    </service>
</definitions>

Example D-2 Common.xsd File

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" attributeFormDefault="unqualified"
    elementFormDefault="qualified" targetNamespace="http://servicecenter.peregrine.com/PWS/Common"
    version="2008-09-11 Rev 0" xmlns="http://servicecenter.peregrine.com/PWS/Common"
    xmlns:cmn="http://servicecenter.peregrine.com/PWS/Common">
    <xs:complexType name="StringType">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute fixed="String" name="type" type="xs:string"                   use="required"/>
                <xs:attribute name="mandatory" type="xs:boolean" use="optional"/>
                <xs:attribute name="readonly" type="xs:boolean" use="optional"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="DecimalType">
        <xs:simpleContent>
            <xs:extension base="xs:decimal">
                <xs:attribute fixed="Decimal" name="type" type="xs:string"                   use="required"/>
                <xs:attribute name="mandatory" type="xs:boolean" use="optional"/>
                <xs:attribute name="readonly" type="xs:boolean" use="optional"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="BooleanType">
        <xs:simpleContent>
            <xs:extension base="xs:boolean">
                <xs:attribute fixed="Boolean" name="type" type="xs:string"                   use="required"/>
                <xs:attribute name="mandatory" type="xs:boolean" use="optional"/>
                <xs:attribute name="readonly" type="xs:boolean" use="optional"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="DateTimeType">
        <xs:simpleContent>
            <xs:extension base="xs:dateTime">
                <xs:attribute fixed="DateTime" name="type" type="xs:string"                   use="required"/>
                <xs:attribute name="mandatory" type="xs:boolean" use="optional"/>
                <xs:attribute name="readonly" type="xs:boolean" use="optional"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="DateType">
        <xs:simpleContent>
            <xs:extension base="xs:date">
                <xs:attribute fixed="Date" name="type" type="xs:string"                   use="required"/>
                <xs:attribute name="mandatory" type="xs:boolean" use="optional"/>
                <xs:attribute name="readonly" type="xs:boolean" use="optional"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="TimeType">
        <xs:simpleContent>
            <xs:extension base="xs:time">
                <xs:attribute fixed="Time" name="type" type="xs:string"                   use="required"/>
                <xs:attribute name="mandatory" type="xs:boolean" use="optional"/>
                <xs:attribute name="readonly" type="xs:boolean" use="optional"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="DurationType">
        <xs:simpleContent>
            <xs:extension base="xs:duration">
                <xs:attribute fixed="Duration" name="type" type="xs:string"                   use="required"/>
                <xs:attribute name="mandatory" type="xs:boolean" use="optional"/>
                <xs:attribute name="readonly" type="xs:boolean" use="optional"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="IntType">
        <xs:simpleContent>
            <xs:extension base="xs:int">
                <xs:attribute fixed="Int" name="type" type="xs:string"                   use="required"/>
                <xs:attribute name="mandatory" type="xs:boolean" use="optional"/>
                <xs:attribute name="readonly" type="xs:boolean" use="optional"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="ShortType">
        <xs:simpleContent>
            <xs:extension base="xs:short">
                <xs:attribute fixed="Short" name="type" type="xs:string"                   use="required"/>
                <xs:attribute name="mandatory" type="xs:boolean" use="optional"/>
                <xs:attribute name="readonly" type="xs:boolean" use="optional"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="LongType">
        <xs:simpleContent>
            <xs:extension base="xs:long">
                <xs:attribute fixed="Long" name="type" type="xs:string"                   use="required"/>
                <xs:attribute name="mandatory" type="xs:boolean" use="optional"/>
                <xs:attribute name="readonly" type="xs:boolean" use="optional"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="ByteType">
        <xs:simpleContent>
            <xs:extension base="xs:byte">
                <xs:attribute fixed="Byte" name="type" type="xs:string"                   use="required"/>
                <xs:attribute name="mandatory" type="xs:boolean" use="optional"/>
                <xs:attribute name="readonly" type="xs:boolean" use="optional"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="FloatType">
        <xs:simpleContent>
            <xs:extension base="xs:float">
                <xs:attribute fixed="Float" name="type" type="xs:string"                   use="required"/>
                <xs:attribute name="mandatory" type="xs:boolean" use="optional"/>
                <xs:attribute name="readonly" type="xs:boolean" use="optional"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="DoubleType">
        <xs:simpleContent>
            <xs:extension base="xs:double">
                <xs:attribute fixed="Double" name="type" type="xs:string"                   use="required"/>
                <xs:attribute name="mandatory" type="xs:boolean" use="optional"/>
                <xs:attribute name="readonly" type="xs:boolean" use="optional"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="Base64Type">
        <xs:simpleContent>
            <xs:extension base="xs:base64Binary">
                <xs:attribute fixed="Base64" name="type" type="xs:string"                   use="required"/>
                <xs:attribute name="mandatory" type="xs:boolean" use="optional"/>
                <xs:attribute name="readonly" type="xs:boolean" use="optional"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="ArrayType">
        <xs:attribute fixed="Array" name="type" type="xs:string" use="required"/>
    </xs:complexType>
    <xs:complexType name="StructureType">
        <xs:attribute fixed="Structure" name="type" type="xs:string"               use="required"/>
    </xs:complexType>
    <xs:complexType name="AttachmentType">
        <xs:attribute name="href" type="xs:string" use="optional"/>
        <xs:attribute name="contentId" type="xs:string" use="optional"/>
        <xs:attribute name="action" type="xs:string" use="optional"/>
        <xs:attribute name="name" type="xs:string" use="required"/>
        <xs:attribute name="type" type="xs:string" use="required"/>
        <xs:attribute name="len" type="xs:int" use="optional"/>
        <xs:attribute name="charset" type="xs:string" use="optional"/>
        <xs:attribute name="attachmentType" type="xs:string" use="optional"/>
    </xs:complexType>
    <xs:complexType name="AttachmentsType">
        <xs:sequence>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="attachment" type="AttachmentType"
            />
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="MessageType">
        <xs:simpleContent>
<xs:extension base="StringType">
                <xs:attribute name="severity" type="xs:int" use="optional"/>
                <xs:attribute name="module" type="xs:string" use="optional"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:complexType name="MessagesType">
        <xs:sequence>
            <xs:element maxOccurs="unbounded" minOccurs="0" name="message" type="MessageType"/>
        </xs:sequence>
    </xs:complexType>
    <xs:simpleType name="StatusType">
        <xs:restriction base="xs:string">
            <xs:enumeration value="SUCCESS"/>
            <xs:enumeration value="FAILURE"/>
        </xs:restriction>
    </xs:simpleType>
</xs:schema>