Skip Headers
Oracle® Fusion Middleware Developing with Oracle WebCenter Content
11g Release 1 (11.1.1)

Part Number E26694-01
Go to Documentation Home
Home
Go to Book List
Book List
Go to Table of Contents
Contents
Go to Index
Index
Go to Master Index
Master Index
Go to Feedback page
Contact Us

Go to previous page
Previous
Go to current chapter
Up
Go to next page
Next
PDF · Mobi · ePub

31 Configuring Web Services with WSDL, SOAP, and the WSDL Generator

This chapter describes how to integrate Oracle WebCenter Content into a client application with WSDL and SOAP files by using them to manage Oracle WebCenter Content Sever. It also describes how to use the WSDL Generator component, which provides integration technologies to access the functionality of Content Server.

This chapter includes the following sections:

For general information about web services that you can use with Content Server, see Section 24.2, "Overview of Web Services." The way to use web services described in this chapter was introduced in Oracle Universal Content Management 10g. If you want to use WebCenter Content web services with security configuration and Security Assertion Markup Language (SAML) support, introduced in Oracle WebCenter Content 11g, see Chapter 25, "Configuring WebCenter Content Web Services for Integration."

With either way of using web services, you can use the Oracle Web Services Manager (Oracle WSM) for security. For more information about Oracle WSM, see the Oracle Fusion Middleware Security and Administrator's Guide for Web Services.

31.1 About Configuring Web Services with WSDL, SOAP, and the WSDL Generator

You can use Web Services Definition Language (WSDL) and SOAP (Simple Object Access Protocol) files to manage Content Server from a client application. SOAP is a lightweight, XML-based messaging protocol for encoding the information in web service request and response messages before sending them over a network.

The WSDL Generator component, WsdlGenerator, which is installed and enabled by default in Content Server, generates WSDLs for the services of Content Server. You can take the WSDLs and plug them into APIs to create web services for use with Content Server.

Some SOAP functionality has been built into the core Content Server. The WSDL Generator component is not essential for using SOAP. Administrators can still write service calls to Content Server in SOAP if needed. The WSDL Generator provides flexibility in altering existing client applications.

WebCenter Content has a WSDL 1.1 implementation that exposes the WebCenter Content IDCService (Internet Distributed Content Service), which in turn extends all of the capabilities of Content Server. With IDCService, you can do any of these tasks:

You can use WSDL files to map to WebCenter Content and SOAP to access content and content management functions within WebCenter Content and to deploy your content management capabilities as a web service. Alternatively, you can write service calls to Content Server in SOAP.

31.1.1 Web Services Framework

The core enabling technologies for web services follow:

31.1.1.1 XML Data

The eXtensible Markup Language (XML) is a bundle of specifications that provides the foundation of all web services technologies. Using the XML structure and syntax as the foundation allows for the exchange of data between different programming languages, middleware, and database management systems.

The XML syntax incorporates instance data, typing, structure, and semantic information associated with data. XML describes data independently and also provides information for mapping the data to software systems or programming languages. Because of this flexibility, any software program can be mapped to web services.

When web services are invoked, the underlying XML syntax provides the data encapsulation and transmission format for the exchanged data. The XML elements and attributes define the type and structure information for the data. XML provides the capability to model data and define the structure specific to the programming language (such as Java, C#, or Visual Basic), the database management system, or the software application. Web services use the XML syntax to specify how data is represented, how the data is transmitted, and how the service interacts with the referenced application.

31.1.1.2 WSDL Interface

The Web Services Description Language (WSDL) provides the interface that is exposed to web services. The WSDL layer enables web services to be mapped to underlying programs and software systems. A WSDL file is an XML file that describes how to connect to and use a web service.

31.1.1.3 SOAP Communication

The Simple Object Access Protocol (SOAP) provides Content Server communications for web services interfaces to communicate with each other over a network. SOAP is an XML-based communication protocol used to access web services. The web services receive requests and return responses using SOAP packets that are encapsulated within an XML document.

31.1.1.4 UDDI Registry

The Universal Description Discovery and Integration (UDDI) service provides registry and repository services for storing and retrieving web services interfaces. UDDI is a public or private XML-based directory for registering and looking up web services.

Content Server currently does not publish to any public or private UDDI sources. However, this does not prevent users from integrating Content Server with other applications using web services.

31.1.1.5 DIME Message Format

DIME is a lightweight, binary message format that can be used to encapsulate one or more application-defined groups of file content, of arbitrary type and size, into a single message construct. You can use this format for uploading or downloading content. The payloads consist of the SOAP message and one or more groups of file content.

31.1.1.6 How the Enabling Technologies Work Together

The XML, WSDL, SOAP, and UDDI technologies work together as layers on the web services protocol stack. As Figure 31-1 shows, the web services protocol stack consists of these layers:

  • The service transport layer between applications (HTTP)

  • The messaging layer, which provides a common communication method (XML and SOAP)

  • The service description layer, which describes the public interface to a specific web service (WSDL)

  • The service discovery layer, which provides registry and repository services for storing and retrieving web services interfaces (UDDI)

Figure 31-1 Layers of the Web Services Protocol Stack

Surrounding text describes Figure 31-1 .

Note:

While several protocols are available for a transport layer (such as HTTP, SMTP, FTP, and BEEP), the HTTP protocol is most commonly used. The WSDL Generator component relies on the HTTP protocol as the transport layer.

To help grasp the connection between these technologies, consider this simple analogy: Think of HTTP as the telephone wire (transport between applications) and UDDI as a telephone book (where a developer can browse a UDDI registry to locate a registered service). SOAP could be described as the voices of the people talking on the telephone (the exchange of information), and XML as the language they are speaking in (the underlying structure for the exchange of data). To continue with the telephone analogy, WSDL would be the phone number that calls a specific web service (of course, WSDL is more than just a phone number because it includes information such as the available functions and data types).

31.1.1.7 Implementation Architecture

Web services are not executable, but rather they exchange data within the development environment. So, web services are a means to exchange information with an application server or software package that is performing the communication between the programs exchanging data.

Figure 31-2 shows the web services implementation architecture for the Content Server application. The primary value of this architecture remains in the features and functions of Content Server. Web services access Content Server through the WSDL Generator and use the exposed Content Server services to execute actions and provide data transactions between the user employing web services and Content Server.

Figure 31-2 Web Services Implementation Architecture

Surrounding text describes Figure 31-2 .

31.1.1.8 Implementation on .NET

The Microsoft .NET products, including the .NET platform, .NET Framework, and Visual Studio .NET, all support the XML schema, WSDL, and SOAP specifications:

  • The .NET platform is designed as a programming model that enables developers to build XML web services and applications. The platform provides a set of servers that integrates, executes, and manages XML web services and applications.

  • The .NET Framework product enables developers to build and deploy web services and applications. It provides a structured environment for integrating web services, consists of a common language runtime and unified class libraries, and includes the ASP .NET server.

  • The Visual Studio .NET product provides tools for developers to write application software according to the XML-based web service specifications.

Using the .NET architecture, development and deployment of a web service are integrated as a single step. Because every program written in a .NET language is designed to function as a web service, the .NET server is able to create and deploy the program as a web service.

31.1.1.9 The SOAP Protocol

SOAP is an XML-based messaging protocol consisting of these parts:

  • An envelope that defines what is in a message and how to process it

  • A set of encoding rules for defining application data types

  • A convention for representing remote procedure calls and responses

Employing a SOAP integration provides a standardized interface for executing Content Server services using the Java API (IdcCommand) and provides XML and non-XML content managed by Content Server.

Because SOAP uses the Hypertext Transfer Protocol (HTTP) for data transmission, it can be invoked across the Web, and it can enable content to be accessible over a network in a platform-independent and language-neutral way.

31.2 Accessing Content Server with a SOAP Client

Using SOAP to access content management capabilities as a web service enables real-time programmatic interaction between applications, enables the integration of business processes, and facilitates information exchange.

Note:

If you are developing SOAP client implementations, make sure that chunking is disabled in your client API code.

Web services are modular components that are contained in an XML wrapper and defined by the WSDL specifications. The UDDI) Web-based registry system is used to locate these services.

Tip:

While .NET servers support WSDL and integrate with the SOAP Toolkit, you must specify that a SOAP packet is sending a Remote Procedure Call (RPC). The default is to evaluate SOAP messages as document-style SOAP messages, rather than RPC-style SOAP messages. Using the SOAP Toolkit client with a .NET-developed web service returns a read error for the WSDL document. To permit the SOAP Toolkit to read the generated WSDL and call your .NET web service, you must specify the SoapRpcService() attribute in your web service class.

31.2.1 Using a Java SOAP Client

With a Java SOAP client, you can use the command-line parameters that Table 31-1 describes.

Table 31-1 Command-Line Parameters for Java SOAP Clients

Parameter Description

-c config file

The configuration file containing server settings (host, port, and so on)

-x xml file

The XML file containing the SOAP request to pass to Content Server

-p primary file

The file name of the primary file to upload

-a alternate file

The file name of the alternate file to upload (optional)

-l log file

The file name of the file containing the request and response data (optional)


31.3 Calling Content Server Services with SOAP

You can execute various Content Server IdcCommand services with the SOAP interface. Your user ID must have appropriate permissions to execute the commands. Some commands require administrative access, and other commands require only write permission.

The WSDL Generator component is installed and enabled by default with Content Server, and it must remain enabled to call services. For lists of available services and the required parameters, see the Oracle Fusion Middleware Services Reference for Oracle WebCenter Content.

31.3.1 SOAP Packet Format

A SOAP request is an XML-based Remote Procedure Call (RPC) sent using the HTTP transport protocol. The payload of the SOAP packet is an XML document that specifies the call being made and the parameters being passed.

31.3.1.1 HTTP Headers

This entry is required in the HTTP header of a SOAP request:

Content-Type: text/xml; charset="utf-8"

This SOAPAction header is suggested, but not required:

SOAPAction: "http://www.oracle.com/IdcService"

31.3.1.2 Namespaces

Within the body of a SOAP message, XML namespaces are used to qualify element and attribute names in the parts of the document. Element names can be global (referenced throughout the SOAP message) or local. A local element name is provided by a namespace, and the name is used in the particular part of the message where it is located. So, SOAP messages use namespaces to qualify element names in the separate parts of a message. Application-specific namespaces qualify application-specific element names. Namespaces also identify the envelope version and encoding style.

Content Server defines a namespace called idc that explains the schema and allowable tags for the SOAP content.

31.3.1.3 Nodes

A SOAP node is the entity that processes a SOAP message according to the rules for accessing the services provided by the underlying protocols through the SOAP bindings. So, message processing involves mapping to the underlying services. The SOAP specification defines a correlation between the parts of a SOAP message and the software handlers that will process each part of the message.

The following nodes might be required for a service request or might be returned in the response:

31.3.1.3.1 Service Node

As the main node in the IDC namespace, the <idc:service> node has these requirements:

  • This node must exist for a request to be processed.

  • The required attribute IdcService defines the service you are requesting.

  • The subnodes of <idc:service> are not required to carry the namespace in their tags.

    For example, you can use <document> rather than <idc:document>. However, if you do define the namespace identifier in the child nodes, it must match the identifier specified in the service tag.

Example 31-1 shows an <idc:service> node with a PING_SERVER service request.

Example 31-1 Service Node in the IDC Namespace

<idc:service xmlns:idc="http://www.oracle.com/IdcService/" IdcService="PING_SERVER">
</idc:service>
31.3.1.3.2 Document Node

The <document> node contains all content-item information and is the parent node of all data nodes.

Attributes that are valid for your content items are defined by your particular Content Server. For example, dID, dDocTitle, and dDocType are common attributes. These rules apply to the <document> node:

  • Custom content-item information, such as xSpec, is valid if it is defined as metadata.

  • All known document fields can be used as attributes.

Example 31-2 shows a <document> node that uses the CHECKOUT_BY_NAME service.

Example 31-2 Document Node in an IDC Service Node

<idc:service xmlns:idc="http://www.oracle.com/IdcService/" IdcService="CHECKOUT_BY_NAME">
<idc:document dDocName="soap_sample">
</idc:document>
</idc:service>
31.3.1.3.3 User Node

The <user> node contains all user information. These rules apply to the <user> node:

  • Attributes that are valid for users are defined by a specific Content Server. For example, dName, dFullName, and dEmail are common attributes.

  • Custom user information is valid if it is defined as metadata.

  • All known user fields can be used as attributes.

Example 31-3 shows a <user> node that specifies a user for the GET_USER_INFO service request.

Example 31-3 User Node in an IDC Service Node

<idc:service xmlns:idc="http://www.oracle.com/IdcService/" IdcService="GET_USER_INFO">
<idc:user dUser="sysadmin">
</idc:user>
</idc:service>
31.3.1.3.4 Optionlist Node

The <optionlist> node contains any option lists. The name attribute specifies the name of the option list. Each <option> subnode contains a value in the <optionlist> node.

Example 31-4 shows an <optionlist> node with an <option> subnode that has a locale value.

Example 31-4 Optionlist Node for Locale

<idc:optionlist name="Users_UserLocaleList">
<idc:option>
English-US
</idc:option>
</idc:optionlist>
31.3.1.3.5 Option Subnode in an IDC Optionlist Node

The <option> subnode is specified within the <optionlist> node. The option attribute specifies the name of the option for the option list.

Example 31-5 shows <option> nodes with dDocType values.

Example 31-5 Option Subnodes of an Optionlist Node

<idc:optionlist name="dDocType">
<idc:option>ADACCT</idc:option>
<idc:option>ADHR</idc:option>
<idc:option>ADSALES</idc:option>
</idc:optionlist>
31.3.1.3.6 Resultset Subnode

The <resultset> subnode can be specified within a <document> or <user> node. This subnode contains ResultSet information in a request or response. The name attribute specifies the name of the ResultSet.

Example 31-6 specifies a <resultset> subnode for a ResultSet that contains a revision history.

Example 31-6 Resultset Subnode for a Revision History

<idc:resultset name="REVISION_HISTORY">
<idc:row dFormat="text/plain" dInDate="4/12/02 1:27 PM" dOutDate="" dStatus="RELEASED" dProcessingState="Y" dRevLabel="1" dID="6" dDocName="stellent" dRevisionID="1">
</idc:row>
</idc:resultset>
31.3.1.3.7 Row Subnode

The <row> subnode is specified within a <resultset> subnode, which can have multiple <row> subnodes. Each <row> subnode specifies a row in the ResultSet.

Attributes that are valid are defined by your specific Content Server. Valid attributes are the same fields that can appear as attributes in a <document> or <user> node.

Example 31-7 specifies a row in a ResultSet of user attributes.

Example 31-7 Row Subnode of a Resultset Subnode

<idc:resultset name="UserAttribInfo">
<idc:row dUserName="jsmith" AttributeInfo="role,contributor,15">
</idc:row>
</idc:resultset>
31.3.1.3.8 Field Subnode

The <field> subnode can be specified within a <document>, <user>, or <row> node. The name attribute specifies the name of the field. A <field> subnode often represents data, such as refreshSubjects or dSubscriptionID.

A <field> subnode can represent document or user metadata that a user can configure, or it can represent custom metadata, such as xComments. Example 31-8 specifies a field subnode that represents subscription ID data.

Example 31-8 Field Node to Represent Metadata

<idc:field name="dSubscriptionID">
stellent
</idc:field>

Another use for a <field> subnode is to pass search result values for fields such as QueryText and OriginalQueryText, as Example 31-9 shows.

Example 31-9 Field Subnode to Pass a Value

  • <idc:field name="QueryText">
    dDocType <Substring> "ADSALES&"
    </idc:field>
    

31.3.2 Special Characters

When passing special characters, such as a left angle bracket (<) or right angle bracket (>), to WebCenter Content, you must use the XML-encoding format, which Table 31-1 shows.

Table 31-2 Special Character Formats

Standard Format XML-Encoding Format

<

&lt;

>

&gt;

"

&quot;

` (use back quotation mark if you are using universal query syntax)

&

&amp;

\

&#39;


Note:

Some search result values, such as the QueryText and OriginalQueryText values, are URL-encoded in the response.

You can pass a string to Content Server for a content-item query (using universal query syntax) in either format. Example specifies a string in standard format

Example 31-10 Parameter with a Standard-Format String

QueryText=dDocType <Substring> "ADSALES"

Example specifies a string in XML-encoded format.

Example 31-11 Parameter with an XML-Encoded String:

<idc:field name="QueryText">
dDocType &lt;Substring&gt; `ADSALES`
</idc:field>

31.3.3 Sample Service Calls with SOAP Response/Request

Using service calls with SOAP response/request, you can execute Content Server services in a SOAP request. For a list of available services and the required parameters, see the Oracle Fusion Middleware Services Reference for Oracle WebCenter Content

These IdcCommand services are used as SOAP request examples.

IdcCommand Description

PING_SERVER

This service evaluates whether a connection to the server exists. See Section 31.3.3.1, "Ping the Server,".

ADD_USER

This service adds a new user to the system. See "Add a New User".

EDIT_USER

This service edits an existing user. See "Edit Existing User".

GET_USER_INFO

This service retrieves the user list. See "Get User Information".

DELETE_USER

This service deletes an existing user. See "Delete User".

CHECKIN_UNIVERSAL

This service performs a Content Server controlled check-in. See "Check In Content Item".

CHECKOUT_BY_NAME

This service marks the latest revision of the specified content item as locked. See "Check out Content Item".

UNDO_CHECKOUT_BY_NAME

This service reverses a content item checkout using the Content ID. See "Undo Content Item Checkout".

DOC_INFO

This service retrieves content item revision information. See "Get Content Item Information".

GET_FILE

This service retrieves a copy of a content item without performing a check out. See "Get File".

GET_SEARCH_RESULTS

This service retrieves the search results for the passed query text. See "Get Search Results".

GET_TABLE

This service exports the specified table from the WebCenter Content database. See "Get Table Data".

GET_CRITERIA_WORKFLOWS_FOR_GROUP

This service returns criteria workflow information. See "Get Criteria Workflow Information".


31.3.3.1 Ping the Server

The PING_SERVER service evaluates whether a connection to the server exists.

  • This service returns status information for Content Server.

  • If this service is unable to execute, this message is displayed to the user: Unable to establish connection to the server.

    Tip:

    Execute a PING_SERVER request before calling other services to ensure that there is a connection to Content Server and that you are logged in as a user authorized to execute commands.

31.3.3.1.1 Required Parameters

These parameters must be specified.

Parameter Description

IdcService

Must be set to PING_SERVER.


31.3.3.1.2 SOAP Request
<?xml version='1.0' ?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<idc:service xmlns:idc="http://www.oracle.com/IdcService/" IdcService="PING_SERVER">
</idc:service>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope
31.3.3.1.3 Response
<?xml version='1.0' ?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<idc:service xmlns:idc="http://www.oracle.com/IdcService/" IdcService="PING_SERVER">
<idc:document>
<idc:field name="changedSubjects">

</idc:field>
<idc:field name="refreshSubjects">

</idc:field>
<idc:field name="loadedUserAttributes">
1
</idc:field>
<idc:field name="StatusMessage">
You are logged in as &#39;sysadmin&#39;.
</idc:field>
<idc:field name="changedMonikers">

</idc:field>
<idc:field name="refreshSubMonikers">

</idc:field>
<idc:field name="refreshMonikers">

</idc:field>
</idc:document>
<idc:user dUser="sysadmin">
</idc:user>
</idc:service>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

31.3.3.2 Add a New User

The ADD_USER service adds a new user to the system.

  • Given a user name, the service determines if the user is in the system. If the user does not exist, the service will add the user.

  • The most likely error is when the user name is not unique. If this service is unable to execute, an error message is displayed to the user.

31.3.3.2.1 Required Parameters

These parameters must be specified.

Parameter Description

dName

The unique name.

dUserAuthType

The user authorization type. This value must be set to either LOCAL or GLOBAL.

IdcService

Must be set to ADD_USER.


31.3.3.2.2 Optional Parameters

These optional parameters may be specified.

Parameter Description

dEmail

The email address for the user.

dFullName

The full name of the user.

dPassword

The password for the user.


31.3.3.2.3 Optional Attribute Information

This optional data defines the user's attribute information, the roles the user belongs to, and the accounts the user has access to. Attribute information consists of a list of three comma-delimited strings. The first string indicates the type of attribute, the second the name of the attribute, and the third is the access number.

Important:

The user attribute information is not predefined. The user by default will belong to no roles or accounts, and will become a guest in the system.

Attribute Information Description

Access Number

The access number determines the level of access or privileges assigned to the user

Attribute Name

The attribute name is the name of the role or account to be assigned. For example, admin, contributor, or editor may be assigned.

Attribute Type

The attribute types consists of role or account.


Access Number

These access numbers can be assigned to the user.

Access Level Flags Description

1

Read only.

3

Read and write.

7

Read, write, and delete.

15

Administrative privileges.


Attribute Name

A user can belong to multiple roles and accounts, there may be multiple role and account information strings separated by commas in the attribute information column.

  • If the user is to have the admin role, define the user attribute information as follows:

    <idc:resultset name="UserAttribInfo">
    <idc:row dUserName="jsmith" AttributeInfo="role,contributor,15">
    
  • If the user is to belong to both the contributor and editor roles and has read privilege on the account books, define the user attribute information as follows:

    <idc:resultset name="UserAttribInfo">
    <idc:row dUserName="jsmith" AttributeInfo="role,contributor,15,role,editor,15,account,books,1">
    

Attribute Type

When defining a role, the first string specifies that this is a role attribute, the second string is the name of the role, and the third is the default entry of 15.

When defining an account, the first string specifies that this is an account attribute, the second string is the name of the account, and the third is the access level.

  • For an attribute role, the information is in this form:

    role,contributor,15
    
  • For an attribute account where the access level determines the user's rights to the named account, the information is in this form:

    account,books,1
    
31.3.3.2.4 SOAP Request
<?xml version='1.0' ?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<idc:service xmlns:idc="http://www.oracle.com/IdcService/" IdcService="ADD_USER">
<idc:user dName="Jennifer" dFullName="Jennifer Anton" dPassword="password" dEmail="email@example.com" dUserAuthType="local">
<idc:resultset name="UserAttribInfo">
<idc:row dUserName="Jennifer" AttributeInfo="role,contributor,3">
</idc:row>
</idc:resultset>
</idc:user>
</idc:service>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
31.3.3.2.5 Response
<?xml version='1.0' ?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<idc:service xmlns:idc="http://www.oracle.com/IdcService/" IdcService="ADD_USER">
<idc:document>
<idc:field name="refreshMonikers">

</idc:field>
<idc:field name="refreshSubMonikers">

</idc:field>
<idc:field name="refreshSubjects">

</idc:field>
<idc:field name="isAdd">
1
</idc:field>
<idc:field name="copyAll">
1
</idc:field>
<idc:field name="alwaysSave">
1
</idc:field>
<idc:field name="dAttributeName">
contributor
</idc:field>
<idc:field name="loadedUserAttributes">
1
</idc:field>
<idc:field name="doAdminFields">
1
</idc:field>
<idc:field name="dAttributePrivilege">
3
</idc:field>
<idc:field name="dAttributeType">
role
</idc:field>
<idc:field name="changedMonikers">

</idc:field>
<idc:field name="changedSubjects">
userlist,1018884022874
</idc:field>
</idc:document>
<idc:user dUserAuthType="local" dEmail="email@example.com" dFullName="Jennifer Anton" dUser="sysadmin" dPassword="password" dName="Jennifer">
</idc:user>
</idc:service>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

31.3.3.3 Edit Existing User

The EDIT_USER service edits the information for an existing user.

  • Given a user name and user authorization type, the service determines if the user is in the system. If the user does not exist, the service fails. Otherwise the user information is updated and replaced.

  • The most likely error is the user does not have the security level to perform this action. If this service is unable to execute, an error message is displayed to the user.

    Note:

    The user attribute information replaces the current attributes. It does not add to the list. Consequently, if the user attribute information is not defined, the user will become a guest in the system.

31.3.3.3.1 Required Parameters

These parameters must be specified.

Parameter Description

dName

The unique name.

dUserAuthType

The user authorization type. This value must be set to either LOCAL or GLOBAL.

IdcService

Must be set to EDIT_USER.


31.3.3.3.2 Optional Parameters

These optional parameters can be specified.

Parameter Description

dEmail

The email address of the user.

dFullName

The full name of the user.

dPassword

The password for the user.

dUserLocale

The locale designation, such as English-US, English-UK, Deutsch, Français, Español.

dUserType

The defined user type.


31.3.3.3.3 Optional Attribute Information

A ResultSet containing the user's attribute information and referencing the roles to which the user belongs and the accounts to which the user has access. Attribute information consists of a list of three comma-delimited strings. The first string indicates the type of attribute, the second the name of the attribute, and the third is the access number.

Important:

The user attribute information is not predefined. The user by default will belong to no roles or accounts, and will become a guest in the system.

Attribute Information Description

Access Number

The access number determines the level of access or privileges assigned to the user

Attribute Name

The attribute name is the name of the role or account to be assigned. For example, admin, contributor, or editor may be assigned.

Attribute Type

The attribute types consist of role or account.


Access Number

These access numbers can be assigned to the user.

Access Level Flags Description

1

Read only.

3

Read and write.

7

Read, write, and delete.

15

Administrative privileges.


A user can belong to multiple roles and accounts, there may be multiple role and account information strings separated by commas in the attribute information column.

  • If the user is to have the admin role, define the user attribute information as follows:

    <idc:resultset name="UserAttribInfo">
    <idc:row dUserName="jsmith" AttributeInfo="role,contribut
    or,15">
    
  • If the user is to belong to both the contributor and editor roles and has read privilege for the account books, define the user attribute information as follows:

    <idc:resultset name="UserAttribInfo">
    <idc:row dUserName="jsmith" AttributeInfo="role,contributor,15,role,editor,15,account,books,1">
    

Attribute Type

In the definition of a role, the first string specifies that this is a role attribute, the second string is the name of the role, and the third is the default entry of 15.

In the definition of an account, the first string specifies that this is an account attribute, the second string is the name of the account, and the third is the access level.

  • For an attribute role, the information is in this form:

    role,contributor,15
    
  • For an attribute account where the access level determines the user's rights to the named account, the information is in this form:

    account,books,1
    
31.3.3.3.4 SOAP Request
<?xml version='1.0' ?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<idc:service xmlns:idc="http://www.oracle.com/IdcService/" IdcService="EDIT_USER">
<idc:user dName="Jennifer" dFullName="Jennifer Anton" dPassword="password" dEmail="jennifer@example.com" dUserAuthType="local">
<idc:resultset name="UserAttribInfo">
<idc:row dUserName="Jennifer" AttributeInfo="role,guest,1">
</idc:row>
</idc:resultset>
</idc:user>
</idc:service>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
31.3.3.3.5 Response
<?xml version='1.0' ?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<idc:service xmlns:idc="http://www.oracle.com/IdcService/" IdcService="EDIT_USER">
<idc:document>
<idc:field name="refreshMonikers">

</idc:field>
<idc:field name="refreshSubMonikers">

</idc:field>
<idc:field name="refreshSubjects">

</idc:field>
<idc:field name="alwaysSave">
1
</idc:field>
<idc:field name="dAttributeName">
guest
</idc:field>
<idc:field name="loadedUserAttributes">
1
</idc:field>
<idc:field name="doAdminFields">
1
</idc:field>
<idc:field name="dAttributePrivilege">
1
</idc:field>
<idc:field name="dAttributeType">
role
</idc:field>
<idc:field name="changedMonikers">

</idc:field>
<idc:field name="changedSubjects">
userlist,1018884022877
</idc:field>
</idc:document>
<idc:user dUserAuthType="local" dEmail="jennifer@example.com" dFullName="Jennifer Anton" dUser="sysadmin" dPassword="password" dName="Jennifer">
</idc:user>
</idc:service>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

31.3.3.4 Get User Information

The GET_USER_INFO service retrieves the user list.

  • Given a defined user, the service retrieves the user list.

  • If this service is unable to execute, this message is displayed to the user: Unable to retrieve user list.

31.3.3.4.1 Required Parameters

These parameters must be specified.

Parameter Description

dUser

The defined user.

IdcService

Must be set to GET_USER_INFO.


31.3.3.4.2 SOAP Request
<?xml version='1.0' ?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<idc:service xmlns:idc="http://www.oracle.com/IdcService/" IdcService="GET_USER_INFO">
<idc:user dUser="sysadmin">
</idc:user>
</idc:service>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
31.3.3.4.3 Response
<?xml version='1.0' ?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<idc:service xmlns:idc="http://www.oracle.com/IdcService/" IdcService="GET_USER_INFO">
<idc:document>
<idc:field name="changedSubjects">

</idc:field>
<idc:field name="refreshSubjects">

</idc:field>
<idc:field name="loadedUserAttributes">
1
</idc:field>
<idc:field name="changedMonikers">

</idc:field>
<idc:field name="refreshSubMonikers">

</idc:field>
<idc:field name="refreshMonikers">

</idc:field>
<idc:optionlist name="Users_UserLocaleList">
<idc:option>
English-US
</idc:option>
</idc:optionlist>
</idc:document>
<idc:user dUser="sysadmin" dName="sysadmin">
<idc:resultset name="UserMetaDefinition">
<idc:row umdName="dFullName" umdType="BigText" umdCaption="apTitleFullName" umdIsOptionList="0" umdOptionListType="0" umdOptionListKey="" umdIsAdminEdit="0" umdOverrideBitFlag="1">
</idc:row>
<idc:row umdName="dEmail" umdType="BigText" umdCaption="apTitleEmailAddress" umdIsOptionList="0" umdOptionListType="" umdOptionListKey="" umdIsAdminEdit="0" umdOverrideBitFlag="2">
</idc:row>
<idc:row umdName="dUserType" umdType="Text" umdCaption="apTitleUserType" umdIsOptionList="1" umdOptionListType="combo" umdOptionListKey="Users_UserTypeList" umdIsAdminEdit="0" umdOverrideBitFlag="4">
</idc:row>
<idc:row umdName="dUserLocale" umdType="Text" umdCaption="apTitleUserLocale" umdIsOptionList="1" umdOptionListType="choice,locale" umdOptionListKey="Users_UserLocaleList" umdIsAdminEdit="0" umdOverrideBitFlag="8">
</idc:row>
</idc:resultset>
<idc:resultset name="USER_INFO">
<idc:row dName="sysadmin" dFullName="System Administrator" dEmail="" dPasswordEncoding="" dPassword="-----" dUserType="" dUserAuthType="LOCAL" dUserOrgPath="" dUserSourceOrgPath="" dUserSourceFlags="0" dUserArriveDate="" dUserChangeDate="" dUserLocale="" dUserTimeZone="">
</idc:row>
</idc:resultset>
</idc:user>
</idc:service>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

31.3.3.5 Delete User

The DELETE_USER service deletes an existing user.

  • Given a user name, the service deletes the user from the system.

  • The most likely error is when the user has been assigned to an alias.If this service is unable to execute, an error message is returned.

31.3.3.5.1 Required Parameters

These parameters must be specified.

Parameter Description

dName

The unique name.

IdcService

Must be set to DELETE_USER.


31.3.3.5.2 SOAP Request
<?xml version='1.0' ?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<idc:service xmlns:idc="http://www.oracle.com/IdcService/" IdcService="DELETE_USER">
<idc:user dName="Jennifer" >
</idc:user>
</idc:service>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
31.3.3.5.3 Response
<idc:service xmlns:idc="http://www.oracle.com/IdcService/" IdcService="DELETE_USER">
<idc:document>
<idc:field name="changedSubjects">
userlist,1018884022876
</idc:field>
<idc:field name="refreshSubjects">

</idc:field>
<idc:field name="loadedUserAttributes">
1
</idc:field>
<idc:field name="changedMonikers">

</idc:field>
<idc:field name="dUserName">
Jennifer
</idc:field>
<idc:field name="refreshSubMonikers">

</idc:field>
<idc:field name="refreshMonikers">

</idc:field>
</idc:document>
<idc:user dUser="sysadmin" dName="Jennifer">
</idc:user>
</idc:service>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

31.3.3.6 Check In Content Item

The CHECKIN_UNIVERSAL service performs a controlled check-in to Content Server:

  • This service determines if the content item is new or already exists in the system by querying the database using the content ID (dDocName) as the key.

  • If the content item exists in the system, the publish state (dPublishState) must be empty.

  • If a revision label (dRevLabel) is specified, this service will check if the content revision exists in the system; an exception is thrown if the revision exists.

  • This service will dispatch this request to one of these subservices:

    • CHECKIN_NEW_SUB - If the content item does not exist in the server.

    • CHECKIN_SEL_SUB - If the content item exists on the system and no valid revision was specified and the content item is checked out.

    • WORKFLOW_CHECKIN_SUB - If the content item exists and is part of a workflow.

  • The most likely errors are mismatched parameters or when the content item was not successfully checked in. If this service is unable to execute, this message is displayed to the user: Content item ''{dDocName}'' was not successfully checked in.

The CHECKIN_UNIVERSAL service is a controlled check-in to Content Server. The check-in will fall into either a new, selected, or workflow check-in process and follow the same logic as a check-in through the browser or Repository Manager application. If the content item to be checked in already exists in the system, the content item must be checked out for the check in to succeed.

These are essentially the same subservices used during a controlled check-in to Content Server. However, these subservices are not called during a BatchLoad or Archive import. This service will check security to determine if the user has sufficient privilege to perform a check in on the content item and if the content item (if it exists) has been checked out. Also, it will determine if the content item matches a workflow criteria or belongs to an active basic workflow.

If the content item is not found the content item is checked in using the CHECKIN_NEW_SUB subservice. This subservice validates the check in data and determines if this content item belongs to a criteria workflow. If the content item already exists in the system and the content item does not belong to a workflow, the CHECKIN_SEL_SUB is used. Otherwise the content item exists and belongs to a workflow and the WORKFLOW_CHECKIN_SUB is used.

Note:

All paths use the slash (/) as the file separator, because the backslash (\) is an escape character. For example, primaryFile=d:/temp/myfile.txt should point to the primary file to check in.

31.3.3.6.1 Required Parameters

These parameters must be specified.

Parameter Description

dDocAuthor

The content item author (contributor).

dDocName

The content item identifier (Content ID).

  • This field is optional if the system has been configured with IsAutoNumber set to TRUE. In this scenario, if the dDocName is not specified, the check in will always be new, and the system will generate a new name for the content item.

  • Otherwise, if dDocName is specified, the service will use this key to do a look up to determine what type of check in to perform.

dDocTitle

The content item title.

dDocType

The content item type.

doFileCopy

Set this flag to TRUE (1) or the file will be removed from your hard drive.

dSecurityGroup

The security group such as PUBLIC or SECURE.

IdcService

Must be set to CHECKIN_UNIVERSAL.

primaryFile

The absolute path to the location of the file as seen from the server. Use the slash as the file separator.

A primary file must be specified unless checking in metadata only. If an alternate file is specified with the primary file, Oracle WebCenter Content: Inbound Refinery will convert the alternate file. Otherwise, the primary file will be converted.

  • If a primary file is not specified, a metafile can be used in its place. Only one metafile can exist though for each content item (that is, a primary AND alternate meta file cannot coexist).

  • If both a primary and alternate file is specified, their extensions must be different.


Important:

Custom metadata fields that are defined must also be specified.

31.3.3.6.2 Additional Parameters

This parameter may be required.

Parameter Description

dDocAccount

The security account for the content item.

If you have accounts enabled, you must pass this parameter.


31.3.3.6.3 Optional Parameters

These optional parameters may be specified.

Parameter Description

alternateFile

The alternate file for conversion.

  • Only one metafile can exist though for each content item (a primary AND alternate meta file cannot coexist.)

  • If an alternate file is specified with the primary file, Inbound Refinery will convert the alternate file. Otherwise, the primary file will be converted.

dCreateDate

The date the content item was created. By default, this is the current date.

dInDate

The content release date. The date the content item is to be released to the web. By default, this is the current date.

If the content release date (dInDate) is not specified, the creation date (dCreateDate) is used. This value is auto generated if it is not supplied.

dOutDate

The content expiration date. By default, this is blank and does not specify an expiration date.

If the content expiration date (dOutDate) is not entered, the value remains empty. This is a valid state.

dRevLabel

The revision label for the content item. If set, the label will be used to locate the specified revision.

isFinished

Set to TRUE (1) if this is a workflow check-in and you have finished editing it.

See WORKFLOW_CHECKIN for additional information.


Note:

Do not confuse the Content ID (dDocName) with the internal content item revision identifier (dID). The dID value is a generated reference to a specific rendition of a content item

31.3.3.6.4 SOAP Request
<?xml version='1.0' ?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<idc:service xmlns:idc="http://www.oracle.com/IdcService/" IdcService="CHECKIN_UNIVERSAL">
<idc:document dDocName="SoapUpload2" dDocAuthor="sysadmin" dDocTitle="Soap Upload 2 Document" dDocType="ADACCT" dSecurityGroup="Public" dDocAccount="">
<idc:file name="primaryFile" href="C:/stellent/custom/Soap/JavaSamples/SoapClientUpload/soaptest.doc">
</idc:file>
</idc:document>
</idc:service>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
31.3.3.6.5 Response
<?xml version='1.0' ?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<idc:service xmlns:idc="http://www.oracle.com/IdcService/" IdcService="CHECKIN_UNIVERSAL">
<idc:document dDocAuthor="sysadmin" dDocName="SoapUpload2" dExtension="doc" dDocAccount="" dIsPrimary="1" dRevisionID="1" dPublishType="" dInDate="4/22/02 1:31PM" dReleaseState="N" dRevClassID="12" dCreateDate="4/22/02 1:31 PM" dIsWebFormat="0" dPublishState="" dLocation="" dStatus="DONE" dOriginalName="12.doc" dOutDate="" dDocID="24" dRevLabel="1" dProcessingState="Y" dDocTitle="Soap Upload 2 Document" dID="12" dDocType="ADACCT" dSecurityGroup="Public" dFileSize="19456" dFormat="application/msword">
<idc:field name="primaryFile:path">
c:/stellent/vault/~temp/1230750423.doc
</idc:field>
<idc:field name="dRawDocID">
23
</idc:field>
<idc:field name="changedSubjects">
documents,1019482656706
</idc:field>
<idc:field name="StatusCode">
0
</idc:field>
<idc:field name="soapFile:path">
c:/stellent/vault/~temp/1230750422.xml
</idc:field>
<idc:field name="xComments">

</idc:field>
<idc:field name="soapStartContentID">
SoapContent
</idc:field>
<idc:field name="refreshSubMonikers">

</idc:field>
<idc:field name="changedMonikers">

</idc:field>
<idc:field name="dActionDate">
4/22/02 1:31 PM
</idc:field>
<idc:field name="dActionMillis">
30263
</idc:field>
<idc:field name="loadedUserAttributes">
1
</idc:field>
<idc:field name="WebfilePath">
c:/stellent/weblayout/groups/public/documents/adacct/soapupload2~1.doc
</idc:field>
<idc:field name="StatusMessage">
Successfully checked in content item &#39;SoapUpload2&#39;.
</idc:field>
<idc:field name="refreshSubjects">

</idc:field>
<idc:field name="dConversion">
PASSTHRU
</idc:field>
<idc:field name="primaryFile">
C:/stellent/custom/Soap/JavaSamples/SoapClientUpload/soaptest.doc
</idc:field>
<idc:field name="dAction">
Checkin
</idc:field>
<idc:field name="refreshMonikers">

</idc:field>
<idc:field name="VaultfilePath">
c:/stellent/vault/adacct/12.doc
</idc:field>
</idc:document>
<idc:user dUser="sysadmin">
</idc:user>
</idc:service>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

31.3.3.7 Check out Content Item

The CHECKOUT_BY_NAME checks out the latest revision of the specified content item.

  • Given a content item revision ID, this service attempts to locate the content item in the system and undo the checkout.

  • The service fails if the content item does not exist in the system, if the content item is not checked out, or the user does not have sufficient privilege to undo the checkout.

  • The most likely error is a content item name that does not exist. If this service is unable to execute, an error message is displayed to the user.

    Note:

    This service only marks the content item as locked. It does not perform a download.

31.3.3.7.1 Required Parameters

These parameters must be specified.

Parameter Description

dDocName

The content item identifier (Content ID).

IdcService

Must be set to CHECKOUT_BY_NAME.


Note:

Do not confuse the Content ID (dDocName) with the internal content item revision identifier (dID). The dID value is a generated reference to a specific rendition of a content item.

31.3.3.7.2 Optional Parameters

This optional parameter may be specified.

Parameter Description

dDocTitle

The content item title.


31.3.3.7.3 SOAP Request
<?xml version='1.0' ?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<idc:service xmlns:idc="http://www.oracle.com/IdcService/" IdcService="CHECKOUT_BY_NAME">
<idc:document dDocName="soap_sample">
</idc:document>
</idc:service>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
31.3.3.7.4 Response
<?xml version='1.0' ?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<idc:service xmlns:idc="http://www.oracle.com/IdcService/" IdcService="CHECKOUT_BY_NAME">
<idc:document dDocTitle="soap_sample" dID="10" dRevLabel="1" dDocAccount="" dRevClassID="10" dDocName="soap_sample" dOriginalName="soap_sample.txt" dSecurityGroup="Public">
<idc:field name="dActionMillis">
39964
</idc:field>
<idc:field name="refreshMonikers">

</idc:field>
<idc:field name="dActionDate">
4/22/02 12:20 PM
</idc:field>
<idc:field name="latestID">
10
</idc:field>
<idc:field name="refreshSubMonikers">

</idc:field>
<idc:field name="refreshSubjects">

</idc:field>
<idc:field name="CurRevID">
10
</idc:field>
<idc:field name="CurRevIsCheckedOut">
0
</idc:field>
<idc:field name="dAction">
Check out
</idc:field>
<idc:field name="loadedUserAttributes">
1
</idc:field>
<idc:field name="CurRevCheckoutUser">
sysadmin
</idc:field>
<idc:field name="changedMonikers">

</idc:field>
<idc:field name="changedSubjects">
documents,1019482656687
</idc:field>
<idc:resultset name="DOC_INFO">
<idc:row dID="10" dDocName="soap_sample" dDocType="ADACCT" dDocTitle="soap_sample" dDocAuthor="sysadmin" dRevClassID="10" dRevisionID="1" dRevLabel="1" dIsCheckedOut="1" dCheckoutUser="sysadmin" dSecurityGroup="Public" dCreateDate="4/22/02 12:18 PM" dInDate="4/22/02 12:18 PM" dOutDate="" dStatus="RELEASED" dReleaseState="Y" dFlag1="" dWebExtension="txt" dProcessingState="Y" dMessage="" dDocAccount="" dReleaseDate="4/22/02 12:19 PM" dRendition1="" dRendition2="" dIndexerState="" dPublishType="" dPublishState="" dDocID="19" dIsPrimary="1" dIsWebFormat="0" dLocation="" dOriginalName="soap_sample.txt" dFormat="text/plain" dExtension="txt" dFileSize="12">
<idc:field name="xComments">

</idc:field>
</idc:row>
</idc:resultset>
</idc:document>
<idc:user dUser="sysadmin">
</idc:user>
</idc:service>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

31.3.3.8 Undo Content Item Checkout

The UNDO_CHECKOUT_BY_NAME service reverses a content item checkout using the Content ID.

  • Given a content item name, this service attempts to locate the content item in the system and undo the checkout.

  • The service fails if the content item does not exist in the system, if the content item is not checked out, or if the user does not have sufficient privilege to undo the checkout.

  • This service is used by an applet or application.

  • If this service is unable to execute, this message is displayed to the user: Unable to undo checkout for ''{dDocName}''.

31.3.3.8.1 Required Parameters

These parameters must be specified.

Parameter Description

dDocName

The content item identifier (Content ID).

IdcService

Must be set to UNDO_CHECKOUT_BY_NAME.


Note:

Do not confuse the Content ID (dDocName) with the internal content item revision identifier (dID). The dID value is a generated reference to a specific rendition of a content item.

31.3.3.8.2 Optional Parameters

This optional parameter may be specified.

Parameter Description

dDocTitle

The content item title.


31.3.3.8.3 SOAP Request
<?xml version='1.0' ?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<idc:service xmlns:idc="http://www.oracle.com/IdcService/" IdcService="UNDO_CHECKOUT_BY_NAME">
<idc:document dDocName="soap_sample">
</idc:document>
</idc:service>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
31.3.3.8.4 Response
<?xml version='1.0' ?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<idc:service xmlns:idc="http://www.oracle.com/IdcService/" IdcService="UNDO_CHECKOUT_BY_NAME">
<idc:document dCheckoutUser="sysadmin" dPublishState="" dDocTitle="soap_sample" dID="10" dRevLabel="1" dDocAccount="" dDocName="soap_sample" dRevClassID="10" dOriginalName="soap_sample.txt" dSecurityGroup="Public">
<idc:field name="dActionMillis">
5317
</idc:field>
<idc:field name="refreshMonikers">

</idc:field>
<idc:field name="dActionDate">
4/22/02 12:23 PM
</idc:field>
<idc:field name="latestID">
10
</idc:field>
<idc:field name="refreshSubMonikers">

</idc:field>
<idc:field name="refreshSubjects">

</idc:field>
<idc:field name="CurRevID">
10
</idc:field>
<idc:field name="CurRevIsCheckedOut">
1
</idc:field>
<idc:field name="dAction">
Undo Checkout
</idc:field>
<idc:field name="loadedUserAttributes">
1
</idc:field>
<idc:field name="CurRevCheckoutUser">
sysadmin
</idc:field>
<idc:field name="changedMonikers">

</idc:field>
<idc:field name="changedSubjects">
documents,1019482656689
</idc:field>
</idc:document>
<idc:user dUser="sysadmin">
</idc:user>
</idc:service>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

31.3.3.9 Get Content Item Information

The DOC_INFO service retrieves content item revision information.

  • Given a content item revision ID, the service retrieves content item revision information

  • The most likely errors are when the content item no longer exists in the system or when the user does not have the security level to perform this action. If this service is unable to execute, an error message is displayed to the user.

31.3.3.9.1 Required Parameters

These parameters must be specified.

Parameter Description

dID

The generated content item revision ID.

IdcService

Must be set to DOC_INFO.


31.3.3.9.2 SOAP Request
<?xml version='1.0' ?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<idc:service xmlns:idc="http://www.oracle.com/IdcService/" IdcService="DOC_INFO">
<idc:document dID="6">
</idc:document>
</idc:service>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
31.3.3.9.3 Response
<?xml version='1.0' ?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<idc:service xmlns:idc="http://www.oracle.com/IdcService/" IdcService="DOC_INFO">
<idc:document dStatus="RELEASED" dDocFormats="text/plain" dID="6" DocUrl="HTTP://wharristest/stellent/groups/public/documents/adacct/stellent.txt" dDocTitle="stellent">
<idc:field name="dSubscriptionAlias">
sysadmin
</idc:field>
<idc:field name="changedSubjects">

</idc:field>
<idc:field name="dSubscriptionID">
stellent
</idc:field>
<idc:field name="refreshSubjects">

</idc:field>
<idc:field name="loadedUserAttributes">
1
</idc:field>
<idc:field name="changedMonikers">

</idc:field>
<idc:field name="refreshSubMonikers">

</idc:field>
<idc:field name="refreshMonikers">

</idc:field>
<idc:field name="dSubscriptionType">
Basic
</idc:field>
<idc:resultset name="REVISION_HISTORY">
<idc:row dFormat="text/plain" dInDate="4/12/02 1:27 PM" dOutDate="" dStatus="RELEASED" dProcessingState="Y" dRevLabel="1" dID="6" dDocName="stellent" dRevisionID="1">
</idc:row>
</idc:resultset>
<idc:resultset name="WF_INFO">
</idc:resultset>
<idc:resultset name="DOC_INFO">
<idc:row dID="6" dDocName="stellent" dDocType="ADACCT" dDocTitle="stellent" dDocAuthor="sysadmin" dRevClassID="6" dRevisionID="1" dRevLabel="1" dIsCheckedOut="0" dCheckoutUser="" dSecurityGroup="Public" dCreateDate="4/12/02 1:27 PM" dInDate="4/12/02 1:27 PM" dOutDate="" dStatus="RELEASED" dReleaseState="Y" dFlag1="" dWebExtension="txt" dProcessingState="Y" dMessage="" dDocAccount="" dReleaseDate="4/12/02 1:27 PM" dRendition1="" dRendition2="" dIndexerState="" dPublishType="" dPublishState="" dDocID="11" dIsPrimary="1" dIsWebFormat="0" dLocation="" dOriginalName="stellent.txt" dFormat="text/plain" dExtension="txt" dFileSize="8">
<idc:field name="xComments">
stellent
</idc:field>
</idc:row>
</idc:resultset>
</idc:document>
<idc:user dUser="sysadmin">
</idc:user>
</idc:service>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

31.3.3.10 Get File

The GET_FILE service returns a specific rendition of a content item, the latest revision, or the latest released revision. A copy of the file is retrieved without performing a check out.

  • This command computes the dID (content item revision ID) for the revision, and then determines the file name of a particular rendition of the revision with the computed dID. A specified dID or a dDocName (content item name) along with a RevisionSelectionMethod parameter can be used.

  • Given a dID or a dDocName along with a RevisionSelectionMethod parameter, the service determines the file name of a particular rendition of the revision and returns that file to the client.

  • The most likely errors are some form of mismatched parameters or a request for a revision or rendition that does not exist. If this service is unable to execute, an error message is displayed to the user.

    Note:

    Use dDocName in all requests for content items where the requester knows the dDocName value. Error messages in Content Server are based on the assumption that the dDocName value is present, as are other features, such as forms.

31.3.3.10.1 Required Parameters

Important:

Either the content item revision ID (dID) must be specified or a content item name (dDocName) along with a RevisionSelectionMethod parameter must be defined.

Parameter Description

dDocName

The content item identifier (Content ID).

  • If dDocName is not present, dID must be present, and RevisionSelectionMethod must not be present.

  • If RevisionSelectionMethod is present, a rendition of a revision of the content item with this name will be returned, if it exists.

  • If RevisionSelectionMethod is not present, dDocName can be used in error messages.

dID

The generated content item revision ID.

  • If dID is not specified, dDocName, and RevisionSelectionMethod must specified.

  • A rendition of the revision of the content item with this ID will be returned, if it exists, and the RevisionSelectionMethod parameter does not exist or has the value Specific.

RevisionSelectionMethod

The revision selection method.

If present, dDocName must be present. The value of this variable is the method used to compute a dID from the specified dDocName. Its value can be Specific, Latest, or LatestReleased.

  • If the value is Specific, dDocName is ignored, and dID is required, and it is used to get a rendition.

  • If the value is Latest, the latest revision of the content item is used to compute the dID.

  • If the value is LatestReleased, the latest released revision of the content item is used to compute the dID.

IdcService

Must be set to GET_FILE.


31.3.3.10.2 Optional Parameter

This optional parameters may be specified.

Parameter Description

Rendition

The content item rendition. This parameter specifies the rendition of the content item and can be set to Primary, Web, or Alternate. If Rendition is not present, it defaults to Primary.

  • If the value is Primary, the primary rendition of the selected revision is returned.

  • If the value is Web, the web viewable rendition of the selected revision is returned.

  • If the value is Alternate, the alternate rendition of the selected revision is returned.


Note:

Do not confuse the Content ID (dDocName) with the internal content item revision identifier (dID). The dID value is a generated reference to a specific rendition of a content item.

31.3.3.10.3 SOAP Request
<?xml version='1.0' ?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<idc:service xmlns:idc="http://www.oracle.com/IdcService/" IdcService="GET_FILE">
<idc:document dID="10">
</idc:document>
</idc:service>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
31.3.3.10.4 Response
<?xml version='1.0' ?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<idc:service xmlns:idc="http://www.oracle.com/IdcService/" IdcService="GET_FILE">
<idc:document dID="10">
</idc:document>
</idc:service>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Receving response...
HTTP/1.1 200 OK
Server: Microsoft-IIS/5.0
Connection: keep-alive
Date: Mon, 29 Apr 2002 16:09:42 GMT
Content-type: Multipart/Related; boundary=-----------------4002588859573015789;
type=text/xml; start="<SoapContent>"
Content-Length: 1717

-------------------4002588859573015789
Content-Type: text/xml; charset=utf-8
Content-ID:  <SoapContent>

<?xml version='1.0' ?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<idc:service xmlns:idc="http://www.oracle.com/IdcService/" IdcService="GET_FILE">
<idc:document dID="10" dExtension="txt">
<idc:field name="changedSubjects">

</idc:field>
<idc:field name="refreshSubjects">

</idc:field>
<idc:field name="loadedUserAttributes">
1
</idc:field>
<idc:field name="changedMonikers">

</idc:field>
<idc:field name="refreshSubMonikers">

</idc:field>
<idc:field name="refreshMonikers">

</idc:field>
<idc:resultset name="FILE_DOC_INFO">
<idc:row dID="10" dDocName="soap_sample" dDocType="ADACCT" dDocTitle="soap_sample" dDocAuthor="sysadmin" dRevClassID="10" dRevisionID="1" dRevLabel="1" dIsCheckedOut="0" dCheckoutUser="" dSecurityGroup="Public" dCreateDate="4/22/02 12:18PM" dInDate="4/22/02 12:18 PM" dOutDate="" dStatus="RELEASED" dReleaseState="Y" dFlag1="" dWebExtension="txt" dProcessingState="Y" dMessage="" dDocAccount="" dReleaseDate="4/22/02 12:19 PM" dRendition1="" dRendition2="" dIndexerState="" dPublishType="" dPublishState="" dDocID="19" dIsPrimary="1" dIsWebFormat="0" dLocation="" dOriginalName="soap_sample.txt" dFormat="text/plain" dExtension="txt" dFileSize="12">
<idc:field name="xComments">

</idc:field>
</idc:row>
</idc:resultset>
</idc:document>
<idc:user dUser="sysadmin">
</idc:user>
</idc:service>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

-------------------4002588859573015789
Content-Type: text/html
Content-ID: <soap_sample.txt>

...File content...
-------------------4002588859573015789--

31.3.3.11 Get Search Results

The GET_SEARCH_RESULTS service retrieves the search results for the passed query text.

  • Used to display the search results to a user making a content item query.

  • You can append values for Title, Content ID, and so on, in the QueryText parameter, to refine this service.

    The QueryText parameter defines the query. For use in a SOAP message, this query must be XML-encoded. This example passes a string submitted for a content item query in both standard format and XML-encoded format:

    • Parameter with standard formatted string:

      QueryText=dDocType <Substring> "ADSALES"
      
    • Parameter with XML-encoded string:

      <idc:field name="QueryText">
      dDocType &lt;Substring&gt; `ADSALES`
      </idc:field>
      

      For more information about formatting XML-encoded strings, see Section 31.3.2, "Special Characters."

  • If this service is unable to execute, it displays the following message: Unable to retrieve search results.

31.3.3.11.1 Required Parameters

These parameters must be specified.

Parameter Description

IdcService

Must be set to GET_SEARCH_RESULTS.

QueryText

The user supplied text submitted for the content item query.


31.3.3.11.2 Optional Parameters

These parameters may be specified.

Parameter Description

resultCount

The number of results to return, defaults to 25.

sortField

The name of the metadata field to sort on.

  • Examples: dInDate, dDocTitle, Score.

  • Defaults to dInDate.

sortOrder

The sort order. Allowed values are ASC (ascending) and DES (descending).

startRow

The row to begin the search results. For example, if a result returns 200 rows, and resultCount is 25, set startRow to 26 to obtain the second set of results.


31.3.3.11.3 SOAP Request
<?xml version='1.0' ?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<idc:service xmlns:idc="http://www.oracle.com/IdcService/" IdcService="GET_SEARCH_RESULTS">
<idc:document>
<idc:field name="QueryText">
dDocType <Substring> "ADSALES"
</idc:field>
</idc:document>
</idc:service>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
31.3.3.11.4 Response
<?xml version='1.0' ?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<idc:service xmlns:idc="http://www.oracle.com/IdcService/" IdcService="GET_SEARCH_RESULTS">
<idc:document StartRow="1" TotalDocsProcessed="6" TotalRows="0" QueryText="dDocType+%3cSubstring%3e+%22ADSALES%22" EndRow="25" SearchProviders="Master_on_wharristest" NumPages="0" PageNumber="1">
<idc:field name="refreshMonikers">

</idc:field>
<idc:field name="refreshSubMonikers">

</idc:field>
<idc:field name="refreshSubjects">

</idc:field>
<idc:field name="EnterpriseSearchMaxRows">
4
</idc:field>
<idc:field name="FullRequest">
&QueryText=dDocType+%3cSubstring%3e+%22ADSALES%22
</idc:field>
<idc:field name="loadedUserAttributes">
1
</idc:field>
<idc:field name="changedMonikers">

</idc:field>
<idc:field name="changedSubjects">

</idc:field>
<idc:field name="Text2">
&lt;$dDocTitle$&gt; 
</idc:field>
<idc:field name="Text1">
<$dDocName$> 
</idc:field>
<idc:field name="OriginalQueryText">
dDocType+%3cSubstring%3e+%22ADSALES%22
</idc:field>
<idc:resultset name="SearchResults">
</idc:resultset>
<idc:resultset name="NavigationPages">
</idc:resultset>
<idc:resultset name="Master_on_wharristest">
</idc:resultset>
<idc:resultset name="EnterpriseSearchResults">
<idc:row ProviderName="Master_on_wharristest" IDC_Name="Master_on_wharristest" TotalRows="0" TotalDocsProcessed="6">
<idc:field name="ProviderDescription">
!csProviderLocalContentServerLabel
</idc:field>
<idc:field name="InstanceMenuLabel">
Master_on_wharristest
</idc:field>
<idc:field name="InstanceDescription">
Master_on_wharristest
</idc:field>
<idc:field name="IntradocServerHostName">
wharristest
</idc:field>
<idc:field name="HttpRelativeWebRoot">
/stellent/
</idc:field>
<idc:field name="IsImplicitlySearched">

</idc:field>
<idc:field name="UserAccounts">
#all
</idc:field>
<idc:field name="IsLocalCollection">
true
</idc:field>
<idc:field name="Selected">

</idc:field>
<idc:field name="StatusMessage">
Success
</idc:field>
<idc:field name="ResultSetName">
Master_on_wharristest
</idc:field>
<idc:field name="SearchCgiWebUrl">
/idcplg/idc_cgi_isapi.dll/stellent/pxs
</idc:field>
</idc:row>
</idc:resultset>
</idc:document>
<idc:user dUser="sysadmin">
</idc:user>
</idc:service>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

31.3.3.12 Get Table Data

The GET_TABLE service exports the specified table in the WebCenter Content database.

  • Exports the specified table by creating a ResultSet and adding it to the serialized HDA file. If the table is not found, the service will fail. It is up to the calling program that is receiving the serialized HDA file to store this ResultSet for later use.

  • The most likely error is a table name that does not exist. If this service is unable to execute, an error message is displayed to the user.

31.3.3.12.1 Required Parameters

These parameters must be specified.

Parameter Description

IdcService

Must be set to GET_TABLE.

tableName

The name of table to export.


31.3.3.12.2 SOAP Request
<?xml version='1.0' ?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<idc:service xmlns:idc="http://www.oracle.com/IdcService/" IdcService="GET_TABLE">
<idc:document>
<idc:field name="tableName">
DocTypes
</idc:field>
</idc:document>
</idc:service>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
31.3.3.12.3 Response
<?xml version='1.0' ?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<idc:service xmlns:idc="http://www.oracle.com/IdcService/" IdcService="GET_TABLE">
<idc:document>
<idc:field name="tableName">
DocTypes
</idc:field>
<idc:field name="changedSubjects">

</idc:field>
<idc:field name="refreshSubjects">

</idc:field>
<idc:field name="loadedUserAttributes">
1
</idc:field>
<idc:field name="changedMonikers">

</idc:field>
<idc:field name="refreshSubMonikers">

</idc:field>
<idc:field name="refreshMonikers">

</idc:field>
<idc:resultset name="DocTypes">
<idc:row dDocType="ADACCT" dDescription="Acme Accounting Department" dGif="adacct.gif">
</idc:row>
<idc:row dDocType="ADCORP" dDescription="Acme Corporate Department" dGif="adcorp.gif">
</idc:row>
<idc:row dDocType="ADENG" dDescription="Acme Engineering Department" dGif="adeng.gif">
</idc:row>
<idc:row dDocType="ADHR" dDescription="Acme Human Resources Department" dGif="adhr.gif">
</idc:row>
<idc:row dDocType="ADMFG" dDescription="Acme Manufacturing Department" dGif="admfg.gif">
</idc:row>
<idc:row dDocType="ADMKT" dDescription="Acme Marketing Department" dGif="admkt.gif">
</idc:row>
<idc:row dDocType="ADSALES" dDescription="Acme Sales Department" dGif="adsales.gif">
</idc:row>
</idc:resultset>
</idc:document>
<idc:user dUser="sysadmin">
</idc:user>
</idc:service>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

31.3.3.13 Get Criteria Workflow Information

The GET_CRITERIA_WORKFLOWS_FOR_GROUP service returns criteria workflow information.

  • Given a named security group, this service returns a list of workflows and related steps.

  • Returns the Resultset WorkflowsForGroup and WorkflowStepsForGroup:

    • WorkflowsForGroup lists all of the workflows for this group (dWfID, dWfName).

    • WorkflowStepsForGroup lists all of the steps in all of the workflows for this group (dWfID, dWfName, dWfStepID, dWfStepName).

  • Criteria workflows and subworkflows can be added, edited, enabled, disabled, and deleted from the Criteria tab of the Workflow Admin administration applet.

  • The most likely error is a named security group that does not exist or a user failing the security check. The service throws reasonable exceptions for display to the user in these situations.

31.3.3.13.1 Required Parameters

These parameters must be specified.

Parameter Description

dSecurityGroup

The security group such as PUBLIC or SECURE.

IdcService

Must be set to GET_CRITERIA_WORKFLOWS_FOR_GROUPS.


31.3.3.13.2 SOAP Request
<?xml version="1.0" ?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<idc:service xmlns:idc="http://www.oracle.com/IdcService/" IdcService="GET_CRITERIA_WORKFLOWS_FOR_GROUP">
<idc:document dSecurityGroup="Public" />
</idc:service>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
31.3.3.13.3 Response
<?xml version='1.0' ?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<idc:service xmlns:idc="http://www.oracle.com/IdcService/" IdcService="GET_CRITERIA_WORKFLOWS_FOR_GROUP">
<idc:document dSecurityGroup="Public">
<idc:field name="changedSubjects">

</idc:field>
<idc:field name="refreshSubjects">

</idc:field>
<idc:field name="loadedUserAttributes">
1
</idc:field>
<idc:field name="changedMonikers">

</idc:field>
<idc:field name="refreshSubMonikers">

</idc:field>
<idc:field name="refreshMonikers">

</idc:field>
<idc:resultset name="WorkflowStepsForGroup">
<idc:row>
<idc:field name="dWfID">
1
</idc:field>
<idc:field name="dWfName">
TestWorkflow
</idc:field>
<idc:field name="dWfStepID">
1
</idc:field>
<idc:field name="dWfStepName">
contribution
</idc:field>
</idc:row>
<idc:row>
<idc:field name="dWfID">
1
</idc:field>
<idc:field name="dWfName">
TestWorkflow
</idc:field>
<idc:field name="dWfStepID">
2
</idc:field>
<idc:field name="dWfStepName">
StepOne
</idc:field>
</idc:row>
</idc:resultset>
<idc:resultset name="WorkflowsForGroup">
<idc:row>
<idc:field name="dWfID">
1
</idc:field>
<idc:field name="dWfName">
TestWorkflow
</idc:field>
</idc:row>
</idc:resultset>
</idc:document>
<idc:user dUser="sysadmin">
</idc:user>
</idc:service>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

31.4 Using SOAP Packets in Active Server Pages

You can execute Content Server IdcCommand services from an Active Server Page by encapsulating a SOAP packet that defines the service to execute and the required parameters. You must have appropriate permissions to execute the commands. Some commands require administrative access, other commands may require only write permission.

31.4.1 Sample SOAP Request

An Active Server Page can call a service from Content Server. The following description of a sample service includes the required and optional parameters. It also provides an XML-formatted version of the embedded SOAP request.

For more information about service calls, including required and optional parameters, see Section 31.3.3, "Sample Service Calls with SOAP Response/Request."

In the following example, an XML-formatted SOAP request uses the GET_SEARCH_RESULTS service to retrieve the search results for the passed query text.

<?xml version='1.0' ?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<idc:service xmlns:idc="http://www.oracle.com/IdcService/" IdcService="GET_SEARCH_RESULTS">
<idc:document>
<idc:field name="QueryText">
dDocType <Substring> "ADSALES"
</idc:field>
</idc:document>
</idc:service>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

31.4.2 Sample Active Server Page

The embedded SOAP request forms the basis of the Active Server Page. The following sample executes GET_SEARCH_RESULTS.

For more information about service calls and examples of SOAP response/request messages, see Section 31.3.3, "Sample Service Calls with SOAP Response/Request."

<%

' Sample ASP page of sending a DOC_INFO Soap request.

Option Explicit

Response.Write("Search Results")

%>
<br><br>
<%

' Construct the Soap request.
Dim strSoapRequest, strQueryText

strQueryText = Request.Form("QueryText")
strQueryText = Server.HtmlEncode(strQueryText)

strSoapRequest = "<?xml version='1.0' ?>" _
& "<SOAP-ENV:Envelope xmlns:SOAP-ENV=""http://schemas.xmlsoap.org/soap/envelope/"">" _
& "<SOAP-ENV:Body>" _
& "<idc:service xmlns:idc=""http://www.oracle.com/IdcService/"" IdcService=""GET_SEARCH_RESULTS"">" _
& "<idc:document>" _
& "<idc:field name=""QueryText"">" & strQueryText & "</idc:field>" _
& "<idc:field name=""SortField"">" & Request.Form("SortField") & "</idc:field>" _
& "<idc:field name=""SortOrder"">" & Request.Form("SortOrder") & "</idc:field>" _
& "<idc:field name=""ResultCount"">" & Request.Form("ResultCount") & "</idc:field>" _
& "<idc:field name=""Auth"">Internet</idc:field>" _
& "</idc:document>" _
& "</idc:service>" _
& "</SOAP-ENV:Body>" _
& "</SOAP-ENV:Envelope>"

' Send the Soap request.
Dim objXmlHttp
Set objXmlHttp = Server.CreateObject("MSXML2.ServerXMLHTTP")
objXmlHttp.open "POST", "http://localhost/stellent/idcplg", False, "sysadmin", "idc"
objXmlHttp.setRequestHeader "Content-Type", "text/xml; charset=utf-8"
objXmlHttp.send(strSoapRequest)

' Parse the Soap response.
Dim objXmlDoc
Set objXmlDoc = Server.CreateObject("Msxml2.DOMDocument")
objXmlDoc.async = False
objXmlDoc.Load objXmlHttp.responseXml

' Check for errors.
Dim strResponseError
strResponseError = objXmlDoc.parseError.reason
If strResponseError <> "" Then
Response.Write(objXmlHttp.ResponseText)
DisplayBackButton()
Response.End
End If

' Check for a fault string.
Dim objXmlFaultNode
Set objXmlFaultNode = objXmlDoc.documentElement.selectSingleNode("//SOAP-ENV:Fault/faultstring")
If (Not (objXmlFaultNode Is Nothing)) Then
Response.Write(objXmlFaultNode.Text)
DisplayBackButton()
Response.End
End If

' Check the status code.
Dim objXmlStatusCodeNode, objXmlStatusMessageNode, strStatusCode, nStatusCode, strStatusMessage
Set objXmlStatusCodeNode = objXmlDoc.documentElement.selectSingleNode("//idc:field[@name='StatusCode']")
If (Not objXmlStatusCodeNode Is Nothing) Then
nStatusCode = CInt(objXmlStatusCodeNode.Text)
If (nStatusCode < 0) Then
Response.Write(objXmlDoc.documentElement.selectSingleNode("//idc:field[@name='StatusMessage']").Text)
DisplayBackButton()
Response.End
End If
End If

' Display search results
Dim strDocName, strDocTitle, strDocType, strInDate, strComments, nCurRow, nTotalRows
Dim objXmlResultNodeList, objXmlCommentNode

Set objXmlResultNodeList = objXmlDoc.documentElement.selectNodes("//idc:resultset[@name='SearchResults']/idc:row")
nTotalRows = objXmlResultNodeList.Length

%>
<table>
<tr>
<td><b>Content ID</b></td>
<td>&nbsp;</td>
<td><b>Title</b></td>
<td>&nbsp;</td>
<td><b>Type</b></td>
<td>&nbsp;</td>
<td><b>Release Date</b></td>
<td>&nbsp;</td>
<td><b>Comments</b></td>
</tr>

<%
For nCurRow = 0 To (nTotalRows - 1)
strDocName = GetXmlNodeValue(objXmlResultNodeList.Item(nCurRow), "dDocName")
strDocTitle = GetXmlNodeValue(objXmlResultNodeList.Item(nCurRow), "dDocTitle")
strDocType = GetXmlNodeValue(objXmlResultNodeList.Item(nCurRow), "dDocType")
strInDate = GetXmlNodeValue(objXmlResultNodeList.Item(nCurRow), "dInDate")
strComments = GetXmlNodeValue(objXmlResultNodeList.Item(nCurRow), "xComments")

%>

<tr>
<td><%=strDocName%></td>
<td>&nbsp;</td>
<td><%=strDocTitle%></td>
<td>&nbsp;</td>
<td><%=strDocType%></td>
<td>&nbsp;</td>
<td><%=strInDate%></td>
<td>&nbsp;</td>
<td><%=strComments%></td>
</tr>
<%
Next
%>

</table>

<%

DisplayBackButton()
'----------------------------
Function GetXmlNodeValue(objXmlRowNode, strNodeName)
'----------------------------
Dim objXmlNode, objXmlNodeValue

Set objXmlNode = objXmlRowNode.selectSingleNode("@" & strNodeName)
If (objXmlNode Is Nothing) Then
Set objXmlNode = objXmlRowNode.selectSingleNode("idc:field[@name='" & strNodeName & "']")
End If

If (Not (objXmlNode Is Nothing)) Then
GetXmlNodeValue = objXmlNode.Text
End If
'----------------------------
End Function
'----------------------------

'----------------------------
Sub DisplayBackButton()
'----------------------------
%>
<form method=POST action="request.asp">
<table>
<tr>
<td><input type=submit value="Back"></td>
</tr>
</table>
</form>
<%
'----------------------------
End Sub
'---------------------------
%>

31.5 Generating WSDL Files to Access WebCenter Content

You can generate WSDL files for interfacing with WebCenter Content services.

31.5.1 Understanding WSDL Files

WSDL files provide the ability to pass data that can be understood by Content Server services, which enables access to the content and content management functions within WebCenter Content. The WSDL files provided with the component are stored in the IntradocDir/weblayout/groups/secure/wsdl/custom directory.

These WSDL files are provided with the WSDL Generator component:

  • CheckIn.wsdl

  • DocInfo.wsdl

  • GetFile.wsdl

  • MetaData.wsdl

  • PortalInfo.wsdl

  • Search.wsdl

  • Subscription.wsdl

  • Workflow.wsdl

Additional WSDL files can be generated using the Soap Custom WSDL administrative pages. See Section 31.5.2, "Sample WSDL File," for additional information.

31.5.1.1 WSDL File Structure

WSDL files are formally structured with elements that contain a description of the data to be passed to the web service. This structure enables both the sending application and the receiving application to interpret the data being exchanged.

WSDL elements contain a description of the operation to perform on the data and a binding to a protocol or transport. This permits the receiving application to both process the data and interpret how to respond or return data. Additional subelements may be contained within each WSDL element.

The WSDL file structure includes these major elements:

  • Data Types: Generally in the form of XML schema to be used in the messages.

  • Message: The definition of the data in the form of a message either as a complete document or as arguments to be mapped to a method invocation.

  • Port Type: A set of operations mapped to an address. This defines a collection of operations for a binding.

  • Binding: The actual protocol and data formats for the operations and messages defined for a particular port type.

  • Service and Port: The service maps the binding to the port and the port is the combination of a binding and the network address for the communication exchange.

    Note:

    The following code fragments are from the DocInfo.wsdl file provided with the WSDL Generator component. For a complete WSDL file, see Section 31.5.2, "Sample WSDL File."

31.5.1.1.1 Data Type

The Data Type <types> defines the complex types and associated elements. Web services supports both simple data types (such as string, integer, or boolean) and complex data types. A complex type is a structured XML document that contains several simple types or an array of subelements.

The following code fragment for the ContentInfo set defines the Name, Title, Author, and Group elements and specifies that they are strings.

<s:complexType name="ContentInfo">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="dDocName" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="dDocTitle" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="dDocType" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="dDocAuthor" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="dSecurityGroup" type="s:string"/>
</s:sequence>
</s:complexType>
31.5.1.1.2 Message

The Message <message> defines the data as arguments to be mapped to a method invocation.

<message name="DocInfoByIDSoapIn">
<part name="parameters" element="s0:DocInfoByID" />
</message>
<message name="DocInfoByIDSoapOut">
<part name="parameters" element="s0:DocInfobyIDResponse" />
</message>
31.5.1.1.3 Port Type

The Port Type <portType> defines a collection of operations for a binding. The DocInfo.wsdl file provides the DocInfoSoap and the DocInfo operation name (method name) with I/O information for processing the message.

<portType name="DocInfoSoap">
<operation name="DocInfoByID">
<input message="s0:DocInfoByIDSoapIn" />
<output message="s0:DocInfoByIDSoapOut" />
</operation>
</portType>

Note:

While a port type is a collection of operations (like classes in Java), WSDL is an independent data abstraction that provides more functionality than simply mapping to .NET, EJB, or CORBA objects.

31.5.1.1.4 Binding

The binding <binding> defines the actual protocol and data formats for the operations and messages for the particular port type.

<binding name="DocInfoSoap" type="s0:DocInfoSoap">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
<operation name="DocInfoByID">
<soap:operation soapAction="http://wwww.oracle.com/Soap/DocInfo/" style="document" />
<input>
<soap:body use="literal" />
</input>
<output>
<soap:body use="literal" />
</output>
</operation>
</binding>
31.5.1.1.5 Service and Port

The service <service> maps the binding to the port. The port is the combination of a binding and the network address for the communication exchange. The port is used to expose a set of port types (operations) on the defined transport.

<service name="DocInfo">
<port name="DocInfoSoap" binding="s0:DocInfoSoap">
<soap:address location="http://myhost.example.com:16200/_dav/cs/idcplg" />
</port>
</service>

Tip:

You can add &IsSoap=1 to the URL of a Content Server browser window to view the underlying SOAP code for that page.

31.5.2 Sample WSDL File

This sample code presents the complete DocInfo.wsdl file. This file and the CheckIn.wsdl, GetFile.wsdl, and Search.wsdl files are found in the IntradocDir/weblayout/groups/secure/wsdl/custom directory for the Content Server instance.

<?xml version='1.0' encoding='utf-8' ?>
<definitions xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:s="http://www.w3.org/2001/XMLSchema"
xmlns:s0="http://wwww.oracle.com/DocInfo/"
targetNamespace="http://wwww.oracle.com/DocInfo/"
xmlns="http://schemas.xmlsoap.org/wsdl/">
<types>
<s:schema elementFormDefault="qualified" targetNamespace="http://www.oracle.com/DocInfo/">
<s:element name="DocInfoByID">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="dID" type="s:int" />
<s:element minOccurs="0" maxOccurs="1" name="extraProps" type="s0:IdcPropertyList" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="DocInfoByIDResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="DocInfoByIDResult" type="s0:DocInfoByIDResult" />
</s:sequence>
</s:complexType>
</s:element>
<s:complexType name="DocInfoByIDResult">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="ContentInfo" type="s0:ContentInfo" />
<s:element minOccurs="0" maxOccurs="unbounded" name="Revisions" type="s0:Revisions" />
<s:element minOccurs="0" maxOccurs="unbounded" name="WorkflowInfo" type="s0:WorkflowInfo" />
<s:element minOccurs="0" maxOccurs="1" name="StatusInfo" type="s0:StatusInfo" />
</s:sequence>
</s:complexType>
<s:element name="DocInfoByName">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="dDocName" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="extraProps" type="s0:IdcPropertyList" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="DocInfoByNameResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="DocInfoByNameResult" type="s0:DocInfoByNameResult" />
</s:sequence>
</s:complexType>
</s:element>
<s:complexType name="DocInfoByNameResult">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="ContentInfo" type="s0:ContentInfo" />
<s:element minOccurs="0" maxOccurs="unbounded" name="Revisions" type="s0:Revisions" />
<s:element minOccurs="0" maxOccurs="unbounded" name="WorkflowInfo" type="s0:WorkflowInfo" />
<s:element minOccurs="0" maxOccurs="1" name="StatusInfo" type="s0:StatusInfo" />
</s:sequence>
</s:complexType>
<s:complexType name="ContentInfo">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="dDocName" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="dDocTitle" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="dDocType" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="dDocAuthor" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="dSecurityGroup" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="dDocAccount" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="dID" type="s:int" />
<s:element minOccurs="0" maxOccurs="1" name="dRevClassID" type="s:int" />
<s:element minOccurs="0" maxOccurs="1" name="dRevisionID" type="s:int" />
<s:element minOccurs="0" maxOccurs="1" name="dRevLabel" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="dIsCheckedOut" type="s:boolean" />
<s:element minOccurs="0" maxOccurs="1" name="dCheckoutUser" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="dCreateDate" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="dInDate" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="dOutDate" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="dStatus" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="dReleaseState" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="dFlag1" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="dWebExtension" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="dProcessingState" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="dMessage" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="dReleaseDate" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="dRendition1" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="dRendition2" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="dIndexerState" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="dPublishType" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="dPublishState" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="dDocID" type="s:int" />
<s:element minOccurs="0" maxOccurs="1" name="dIsPrimary" type="s:boolean" />
<s:element minOccurs="0" maxOccurs="1" name="dIsWebFormat" type="s:boolean" />
<s:element minOccurs="0" maxOccurs="1" name="dLocation" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="dOriginalName" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="dFormat" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="dExtension" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="dFileSize" type="s:int" />
<s:element minOccurs="0" maxOccurs="1" name="CustomDocMetaData" type="s0:IdcPropertyList" />
</s:sequence>
</s:complexType>
<s:complexType name="Revisions">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="dFormat" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="dInDate" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="dOutDate" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="dStatus" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="dProcessingState" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="dRevLabel" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="dID" type="s:int" />
<s:element minOccurs="0" maxOccurs="1" name="dDocName" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="dRevisionID" type="s:int" />
</s:sequence>
</s:complexType>
<s:complexType name="WorkflowInfo">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="dWfID" type="s:int" />
<s:element minOccurs="0" maxOccurs="1" name="dDocName" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="dWfDocState" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="dWfComputed" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="dWfCurrentStepID" type="s:int" />
<s:element minOccurs="0" maxOccurs="1" name="dWfDirectory" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="dClbraName" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="dWfName" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="dWfDescription" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="dCompletionDate" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="dSecurityGroup" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="dWfStatus" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="dWfType" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="dProjectID" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="dIsCollaboration" type="s:boolean" />
</s:sequence>
</s:complexType>
<s:complexType name="StatusInfo">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="statusCode" type="s:int" />
<s:element minOccurs="0" maxOccurs="1" name="statusMessage" type="s:string" />
</s:sequence>
</s:complexType>
<s:complexType name="IdcPropertyList">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="property" type="s0:IdcProperty" />
</s:sequence>
</s:complexType>
<s:complexType name="IdcProperty">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="name" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="value" type="s:string" />
</s:sequence>
</s:complexType>
</s:schema>
</types>
<message name="DocInfoByIDSoapIn">
<part name="parameters" element="s0:DocInfoByID" />
</message>
<message name="DocInfoByIDSoapOut">
<part name="parameters" element="s0:DocInfoByIDResponse" />
</message>
<message name="DocInfoByNameSoapIn">
<part name="parameters" element="s0:DocInfoByName" />
</message>
<message name="DocInfoByNameSoapOut">
<part name="parameters" element="s0:DocInfoByNameResponse" />
</message>
<portType name="DocInfoSoap">
<operation name="DocInfoByID">
<input message="s0:DocInfoByIDSoapIn" />
<output message="s0:DocInfoByIDSoapOut" />
</operation>
<operation name="DocInfoByName">
<input message="s0:DocInfoByNameSoapIn" />
<output message="s0:DocInfoByNameSoapOut" />
</operation>
</portType>
<binding name="DocInfoSoap" type="s0:DocInfoSoap">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
<operation name="DocInfoByID">
<soap:operation soapAction="http://www.oracle.com/DocInfo/" style="document" />
<input>
<soap:body use="literal" />
</input>
<output>
<soap:body use="literal" />
</output>
</operation>
<operation name="DocInfoByName">
<soap:operation soapAction="http://www.oracle.com/DocInfo/" style="document" />
<input>
<soap:body use="literal" />
</input>
<output>
<soap:body use="literal" />
</output>
</operation>
</binding>
<service name="DocInfo">
<port name="DocInfoSoap" binding="s0:DocInfoSoap">
<soap:address location="http://myhost.example.com:16200/_dav/cs/idcplg/idc_cgi_isapi.dll" />
</port>
</service>
</definitions>

31.5.3 Generating WSDL Files

When the WSDL Generator component is installed and enabled during Oracle WebCenter Content installation, several folders and related HDA files are generated that expose several services as web services. Two directories are created in the IntradocDir/data/soap directory. The generic directory contains a generic.hda file, and the custom directory contains a wsdl_custom.hda file. Administrators can customize or add WSDL files using the Soap Wsdl administration pages. These pages are accessed by clicking the Soap WSDL link from the Administration section of the Admin Applet page.

Note:

The WSDL Generator component must be enabled to generate WSDL files.

For step-by-step instructions on creating and editing a custom WSDL using the Soap Custom Wsdl administration pages, see Section 31.6, "Customizing WSDL Files."

31.5.4 Generating Proxy Class from WSDL Files

Using the WSDL files, developers may choose to create proxy classes to plug into a development tool. A number of software products and tool kits are available for converting WSDL files to programming class files in languages such as Java, Visual Basic, and C#. For example, Apache AXIS provides a SOAP to Java toolkit, and Microsoft .NET Development Environment provides functionality to convert WSDL files to C#.

If you are using Microsoft .NET, you can use utilitywsdl.exe to generate the proxy classes:

wsdl /l:CS DocInfo.wsdl

This utility generates the file DocInfoService.cs (C# class) which contains the class DocInfoService and the function DocInfo with the parameters specified. The return value is the DocInfoSet class, which is all the response parameters specified, along with ErrorCode and ErrorMessage values. If the ErrorCode is less than zero, an error has occurred in the service call, and you can see the specifics of it in the value of ErrorMessage.

Note:

In addition to the WSDL files provided with the WSDL Generator component, you can generate WSDL files for any WebCenter Content service. For more information, see Section 31.5.3, "Generating WSDL Files."

31.6 Customizing WSDL Files

The Soap Custom Wsdl administration pages provide an administrator with the ability to edit and customize WSDL files. This chapter provides an administrative tutorial that gives step-by-step instructions on creating and editing a custom WSDL.

The WSDL Generator component must be enabled to generate WSDL files. In addition to the WSDL files provided with the WSDL Generator component, you can generate additional WSDL files for any WebCenter Content service. See Section 31.5.3, "Generating WSDL Files," for additional information.

For a list of available services and the required parameters, see the Oracle Fusion Middleware Services Reference for Oracle WebCenter Content.

To create and edit a custom WSDL file with the Soap Custom WSDL administration pages:

  1. In a web browser, log in to Oracle WebCenter Content Server as an administrator.

  2. From the Administration tray or menu, choose Soap Wsdls.

    This option displays the Wsdl List page, which Figure 31-3 shows.

    Figure 31-3 Wsdl List Page

    Surrounding text describes Figure 31-3 .
  3. From the Actions menu, choose Data Lists.

    This option displays the Data Lists page, which Figure 31-4 shows.

    Figure 31-4 Data Lists Page

    Surrounding text describes Figure 31-4 .

    Note:

    System-specific WSDLs cannot be deleted. You can, however, edit the WSDL and enable or disable the complex type elements for that WSDL.

    Data Lists are global lists of data that can be used with complex types, service parameters, or other Data Lists. When a Data List is specified as a parameter or a subtype of a complex type, all the subtypes of the Data List will appear as data types. Data Lists are defined once but can be referenced multiple times with different WSDLs and services. All the Data Lists have a prefix of "d:" in the data type list.

  4. Choose Add Data List from the Actions menu.

    The Add Data List page is displayed.

  5. Enter the following information:

    Name: UserMetaFields

    Description: User Metadata Fields

  6. Click Add.

  7. In the Data List Elements Name column, enter the following names for user metadata fields:

    • dName

    • dFullName

    • dPassword

    • dEmail

    • dUserAuthType

    For each name, choose field:string from the menu in the Type column, and make sure Enabled is selected, as Figure 31-5 shows.

    Figure 31-5 Data List Elements

    Surrounding text describes Figure 31-5 .
  8. Click Update.

    You are returned to the updated Data Lists page. Note that UserMetaFields now appears at the bottom of the list.

  9. Choose Wsdl List from the Actions menu.

    The Wsdl List page is displayed again, as Figure 31-6 shows.

    Figure 31-6 Wsdl List Page Redisplayed

    Surrounding text describes Figure 31-6 .
  10. Choose Add Wsdl from the Actions menu.

    The Add Wsdl page is displayed.

  11. Enter the following information:

    Name: UserInfo

    Description: User Services

  12. Click Add.

    The Wsdl Information page is displayed, as Figure 31-7 shows.

    Figure 31-7 Wsdl Information Page

    Surrounding text describes Figure 31-7 .
  13. Choose Add Complex Type from the Actions menu.

    The Add Complex Type page is displayed.

    Note:

    Complex types contain other data types as subtypes. After these are created, any service in the WSDL can use these complex types as parameters.

  14. Enter the following Complex Type information:

    Name: UserAttribInfo

    Type: Choose resultset from the menu.

  15. Click Add.

    The Wsdl Information page is displayed again, as Figure 31-8 shows.

    Figure 31-8 Wsdl Information Page Redisplayed

    Surrounding text describes Figure 31-8 .
  16. Click Edit on the UserAttribInfo line.

    The Complex Type Information/Complex Type Elements page opens.

  17. Enter the following Complex Type Elements, and choose the Type value for each one from the menu.

    Name Type Idc Name

    dUserName

    field:string

     

    AttributeInfo

    field:string

     

  18. Click Update in the Complex Type Elements section.

    You are returned to the updated Wsdl Information page. Note that User AttribInfo now appears as a complex type.

  19. Choose Add Service from the Actions menu.

    The Add Service page opens.

  20. Enter the following information:

    Name: AddUser

    IdcService: ADD_USER

  21. Click Add.

    The Wsdl Information page opens.

  22. Choose Edit for the AddUser service.

    This option displays the Service Information page, which Figure 31-9 shows.

    Figure 31-9 Service Information Page

    Surrounding text describes Figure 31-9 .

    Note:

    When you create a WSDL, you create services that correspond to the IdcServices feature of Content Server. You also specify the request and response parameters that you want the service to pass and receive from the Web Service call.

  23. Choose Update Request Parameters from the Actions menu.

    The Request Parameters page is displayed.

  24. Enter the following information, selecting the Type from the menu.

    Name Type Idc Name

    DataList

    d:UserMetaFields

     

    CustomUserData

    propertylist:CustomUserMeta

     

  25. Click Update.

    You are returned to the updated Service Information page. Note that DataList and CustomUserData now appear in the Request Parameters section.

  26. Click Update.

    You are returned to the updated Wsdl Information page, showing the service that you just added.

  27. Click Update again.

    You are returned to the updated Wsdl List page. UserInfo appears at the bottom of the list.

  28. Choose Generate Wsdls from the Actions menu.

    A confirmation message displays after the Wsdls are generated successfully.

  29. Click Back.

    You are returned to the Wsdl List page.

  30. Click the UserInfo link in the Name column.

    The source code for the generated Wsdl file is displayed (a portion is shown in Example 31-12).

    Example 31-12 Partial Source Code, Wsdl File

    <?xml version="1.0" encoding="utf-8" ?>
    - <definitions xmins:http="http://schemas.xmlsoap.org/wsdl/http/"
        xmlns:soap="http://schemas.smlsoap.org/wsdl/soap/"
        xmlns:s="http://www.w3.org/2001/XMLSchema"
        xmlns:s0="http://www.example.com/UserInfo/"
        targetNamespace="http://www.example.com/UserInfo/"
        xmlns="http://schemas.xmlsoap.org/wsdl/">
      - <types>
        - <s:schema elementFormDefault="qualified"
            targetNamespace="http://www.example.com/UserInfo/">
          - <s:element name="AddUser">
            - <s:complexType>
              - <s:sequence>
                  <s:element minOccurs="0" maxOccurs="1" name="dName"
                    type="s:string" />
                  <s:element minOccurs="0" maxOccurs="1" name="dFullName"
                    type="s:string" />
                  <s:element minOccurs="0" maxOccurs="1" name="dPassword"
                    type="s:string" />
                  <s:element minOccurs="0" maxOccurs="1" name="dEmail"
                    type="s:string" />
                  <s:element minOccurs="0" maxOccurs="1" name="dUserAuthType"
                    type="s:string: />
                  <s:element minOccurs="0" maxOccurs="1" name="CustomUserData"
                    type="s0:IdcPropertyList" />
                  <s:element minOccurs="0" maxOccurs="1" name="extraProps"
                    type="s0:IdcPropertyList" />
                </s:sequence>
              </s:complexType>
            </s:element>
    
  31. Click the browser Back button.

    You are returned to the Soap Custom Wsdl page.

    Tip:

    You can right click View and save the WSDL file to your desktop (for use with .NET, and so on). However, be sure to save the file with the .wsdl file extension rather than the default .xml file extension.