Oracle® Fusion Middleware Oracle WebCenter Contentでの開発 11gリリース1(11.1.1) B72427-01 |
|
前 |
次 |
ホーム > Oracle WebCenter Contentによる開発 > WSDL、SOAPおよびWSDLジェネレータによるWebサービスの構成
この章では、WSDLおよびSOAPファイル(これらを使用してOracle WebCenter Content Severを管理します)を使用して、Oracle WebCenter Contentをクライアント・アプリケーションに統合する方法について説明します。また、コンテンツ・サーバーの機能にアクセスするための統合テクノロジを提供するWSDLジェネレータ・コンポーネントの使用方法についても説明します。
この章では、次の項目について説明します。
コンテンツ・サーバーで使用できるWebサービスの一般的な情報については、第24.2項「Webサービスの概要」を参照してください。この章で説明されているWebサービスの使用方法は、Oracle Universal Content Management 10gで導入されました。WebCenter Content Webサービスを、セキュリティが構成され、Security Assertion Markup Language (SAML) (Oracle WebCenter Content 11gで導入されました)がサポートされている状態で使用する場合は、第25章「統合のためのWebCenter Content Webサービスの構成」を参照してください。
Webサービスをいずれの方法で使用した場合でも、セキュリティのためにOracle Web Services Manager (Oracle WSM)を使用することができます。Oracle WSMの詳細は、Oracle Fusion Middleware Web Servicesセキュリティおよび管理者ガイドを参照してください。
Web Services Definition Language (WSDL)およびSOAP (Simple Object Access Protocol)ファイルを使用して、クライアント・アプリケーションからコンテンツ・サーバーを管理できます。SOAPは、Webサービス・リクエストおよびレスポンス・メッセージをネットワーク経由で送信する前にそれらの中の情報をエンコードするための、軽量のXMLベース・メッセージング・プロトコルです。
WSDLジェネレータ・コンポーネントWsdlGenerator
(これは、コンテンツ・サーバーにデフォルトでインストールされ有効化されます)は、コンテンツ・サーバーのサービスのためのWSDLを生成します。WSDLを取得し、それをAPIにプラグインして、コンテンツ・サーバーで使用するためのWebサービスを作成できます。
一部のSOAP機能は、コアのコンテンツ・サーバーに組み込まれています。SOAPの使用にWSDLジェネレータ・コンポーネントが不可欠というわけではありません。管理者は、必要に応じて、SOAPでコンテンツ・サーバーへのサービス・コールを記述することができます。WSDLジェネレータを使用すると、既存のクライアント・アプリケーションを柔軟に変更できるようになります。
WebCenter Contentには、WebCenter Content IDCService (Internet Distributed Content Service)を公開するWSDL 1.1実装があり、WebCenter Content IDCServiceは、コンテンツ・サーバーのすべての機能を拡張します。IDCServiceを使用して、次のいずれのタスクも実行できます。
コンテンツをチェックインまたはチェックアウトする
ワークフローを作成、実行または承認する
コンテンツを公開できるようにする
コンテンツを、カテゴリ(メタデータ)、コンテンツ(全文)またはそれらの組合せによって検索する
WSDLファイルを使用してWebCenter ContentおよびSOAPにマップし、WebCenter Content内のコンテンツおよびコンテンツ管理機能にアクセスし、コンテンツ管理機能をWebサービスとしてデプロイすることができます。または、SOAPでコンテンツ・サーバーへのサービス・コールを記述することができます。
Webサービスのコアとなる実現技術は、次のようなものです。
eXtensible Markup Language (XML)は、すべてのWebサービス・テクノロジの基礎を提供する一まとまりの仕様です。XML構造および構文を基礎として使用することで、様々なプログラミング言語、ミドルウェアおよびデータベース管理システム間でデータを交換することが可能になります。
XML構文には、インスタンス・データ、型付け、構造、およびデータに関連するセマンティック情報が組み込まれます。XMLでは、データは独立して記述され、データをソフトウェア・システムまたはプログラミング言語にマップするための情報も提供されます。この柔軟性があるため、どのソフトウェア・プログラムでもWebサービスにマップできます。
Webサービスが起動されると、基礎となるXML構文により、交換されたデータのためのデータ・カプセル化および送信フォーマットが提供されます。XML要素および属性は、データの型と構造に関する情報を定義します。XMLは、データをモデリングする機能を提供し、プログラミング言語(Java、C#、Visual Basicなど)、データベース管理システムまたはソフトウェア・アプリケーションに固有の構造を定義します。Webサービスは、XML構文を使用して、データがどのように表現され、データがどのように送信され、サービスがどのように参照アプリケーションと対話するのかを指定します。
Web Services Description Language (WSDL)は、Webサービスに公開されるインタフェースを提供します。WSDLレイヤーにより、Webサービスを、基礎となるプログラムおよびソフトウェア・システムにマップできるようになります。WSDLファイルは、Webサービスへの接続方法とその使用方法が記述されたXMLファイルです。
Simple Object Access Protocol (SOAP)は、Webサービス・インタフェースがネットワーク経由で相互に通信するためのコンテンツ・サーバー通信を提供します。SOAPは、Webサービスへのアクセスに使用されるXMLベースの通信プロトコルです。Webサービスは、XMLドキュメント内にカプセル化されたSOAPパケットを使用して、リクエストを受信し、レスポンスを返します。
Universal Description Discovery and Integration (UDDI)サービスは、Webサービス・インタフェースの格納と取得のためのレジストリおよびリポジトリ・サービスを提供します。UDDIは、Webサービスの登録および検索のためのパブリックまたはプライベートのXMLベース・ディレクトリです。
コンテンツ・サーバーは現在、いずれのパブリックまたはプライベートUDDIソースにも公開されません。ただし、このことにより、コンテンツ・サーバーを、Webサービスを使用する他のアプリケーションと統合できなくなるわけではありません。
DIMEは、任意のタイプとサイズの、アプリケーションで定義された1つ以上のファイル・コンテンツ・グループを単一のメッセージ構成にカプセル化するために使用できる軽量のバイナリ・メッセージ・フォーマットです。コンテンツのアップロードまたはダウンロードで、このフォーマットを使用できます。ペイロードは、SOAPメッセージおよび1つ以上のファイル・コンテンツ・グループで構成されています。
XML、WSDL、SOAPおよびUDDIテクノロジは、Webサービス・プロトコル・スタック上のレイヤーとして連携して機能します。図31-1に示すように、Webサービス・プロトコル・スタックは、次のレイヤーで構成されています。
アプリケーション間のトランスポート・レイヤー(HTTP)
一般的な通信方法を提供するメッセージング・レイヤー(XMLおよびSOAP)
特定のWebサービスへのパブリック・インタフェースを記述するサービス記述レイヤー(WSDL)
Webサービス・インタフェースの格納と取得のためのレジストリおよびリポジトリ・サービスを提供するサービス検出レイヤー(UDDI)
注意: トランスポート・レイヤーでは、いくつかのプロトコル(HTTP、SMTP、FTP、BEEPなど)が使用できますが、HTTPプロトコルがもっとも一般的に使用されています。WSDLジェネレータ・コンポーネントは、トランスポート・レイヤーとしてHTTPプロトコルに依存します。 |
これらのテクノロジ間の接続を理解しやすくするため、単純な例えで考えてみましょう。つまり、HTTPを電話回線(アプリケーション間のトランスポート)として捉え、UDDIを電話帳(開発者はUDDIレジストリを参照して登録済のサービスを検索できます)として捉えます。この例えでは、SOAPは人々が電話で話す声(情報の交換)、XMLは人々が話す言語(データ交換の基礎となる構造)と見なすことができます。電話の例えで続けるなら、WSDLは、特定のWebサービスをコールするための電話番号になります(もちろん、WSDLには使用可能な機能やデータ型などの情報が含まれているため、WSDLは単なる電話番号以上のものです)。
Webサービスは、実行可能ファイルではありませんが、開発環境内でデータを交換します。そのため、Webサービスは、データを交換するプログラム間で通信を実行するアプリケーション・サーバーまたはソフトウェア・パッケージと情報を交換する手段となります。
図31-2は、コンテンツ・サーバー・アプリケーションのためのWebサービス実装アーキテクチャを示しています。このアーキテクチャのプライマリ値は、コンテンツ・サーバーの機能において保持されます。Webサービスは、WSDLジェネレータを通じてコンテンツ・サーバーにアクセスし、公開されたコンテンツ・サーバー・サービスを使用してアクションを実行し、ユーザーが使用するWebサービスとコンテンツ・サーバー間のデータ・トランザクションを提供します。
Microsoft .NET製品(.NETプラットフォーム、.NET Framework、Visual Studio .NETなど)はすべて、XMLスキーマ、WSDLおよびSOAP仕様をサポートしています。
.NETプラットフォームは、開発者がXML Webサービスおよびアプリケーションを構築できるようにするプログラミング・モデルとして設計されています。このプラットフォームは、XML Webサービスおよびアプリケーションを統合、実行および管理する一連のサービスを提供します。
.NET Framework製品は、開発者がWebサービスおよびアプリケーションを構築してデプロイすることを可能にします。これは、Webサービスを統合するための構造化環境を提供し、一般的な言語ランタイムと統合クラス・ライブラリで構成されています。また、これには、ASP .NETサーバーが組み込まれています。
Visual Studio .NET製品は、開発者がXMLベースのWebサービス仕様に従ってアプリケーション・ソフトウェアを作成するためのツールを提供します。
.NETアーキテクチャを使用して、Webサービスの開発とデプロイは1つのステップとして統合されます。.NET言語で作成されたすべてのプログラムはWebサービスとして機能するように設計されているため、.NETサーバーは、プログラムをWebサービスとして作成およびデプロイすることが可能です。
SOAPは、次のパーツで構成されている、XMLベースのメッセージング・プロトコルです。
メッセージの内容とその処理方法を定義するエンベロープ
アプリケーション・データ型を定義する一連のエンコーディング・ルール
リモート・プロシージャ・コールおよびレスポンスを表すための規則
SOAP統合を使用すると、Java API (IdcCommand
)を使用してコンテンツ・サーバー・サービスを実行するための標準化されたインタフェースが提供され、コンテンツ・サーバーによって管理されるXMLおよび非XMLコンテンツが提供されます。
SOAPは、データ送信にHypertext Transfer Protocol (HTTP)を使用するため、Web経由で起動でき、プラットフォームと言語に依存しない方法でネットワーク経由でコンテンツにアクセスできるようにします。
SOAPを使用してコンテンツ管理機能にWebサービスとしてアクセスすることで、アプリケーション間でリアルタイムにプログラムによる対話を行うことができ、ビジネス・プロセスの統合が可能になり、情報交換を容易に行えます。
注意: SOAPクライアント実装を開発する場合は、クライアントAPIコードでチャンクを無効にしてください。 |
Webサービスは、XMLラッパーに含まれており、かつWSDL仕様で定義されているモジュラ・コンポーネントです。UDDI Webベース・レジストリ・システムは、それらのサービスの検索に使用されます。
Java SOAPクライアントでは、表31-1に示すコマンドライン・パラメータを使用できます。
SOAPインタフェースを使用して、様々なコンテンツ・サーバーのIdcCommand
サービスを実行できます。ユーザーIDには、コマンドを実行するための適切な権限が必要です。管理者アクセスを必要とするコマンドもあれば、書込み権限のみを必要とするコマンドもあります。
WSDLジェネレータ・コンポーネントは、コンテンツ・サーバーにデフォルトでインストールされ有効化されます。サービスをコールするには、これを有効な状態にしておく必要があります。使用可能なサービスのリストと必須パラメータの詳細は、『Oracle Fusion Middleware Oracle WebCenter Contentサービス・リファレンス』を参照してください。
SOAPリクエストは、HTTPトランスポート・プロトコルを使用して送信されるXMLベースのリモート・プロシージャ・コール(RPC)です。SOAPパケットのペイロードは、実行されるコールと渡されるパラメータを指定するXMLドキュメントです。
SOAPリクエストのHTTPヘッダーでは、次のエントリが必要です。
Content-Type: text/xml; charset="utf-8"
次のSOAPAction
ヘッダーが推奨されますが、必須ではありません。
SOAPAction: "http://www.oracle.com/IdcService"
SOAPメッセージのボディ内では、ドキュメントの各部分の要素および属性名を修飾するためにXMLネームスペースが使用されます。要素名は、グローバルとする(SOAPメッセージ全体で参照されます)ことも、ローカルとすることもできます。ローカルの要素名は、ネームスペースによって提供され、その名前は、それが存在するメッセージの特定部分で使用されます。そのため、SOAPメッセージは、ネームスペースを使用して、メッセージの別の部分の要素名を修飾します。アプリケーション固有のネームスペースは、アプリケーション固有の要素名を修飾します。ネームスペースはまた、エンベロープのバージョンとエンコーディング・スタイルも識別します。
コンテンツ・サーバーは、SOAPコンテンツのスキーマと許容されるタグを説明する、idc
と呼ばれるネームスペースを定義します。
SOAPノードは、SOAPバインディングを通じて基礎となるプロトコルによって提供されるサービスにアクセスするためのルールに従ってSOAPメッセージを処理するエンティティです。したがって、メッセージの処理には、基礎となるサービスへのマッピングが含まれます。SOAP仕様は、SOAPメッセージの部分と、メッセージの各部分を処理するソフトウェア・ハンドラ間の相関関係を定義します。
次のノードは、サービス・リクエストで必要になったり、レスポンスで返されたりする可能性があります。
注意: コンテンツ・サーバー・サービスは、リクエストにおいてデータが指定されている場所については柔軟に対応します。fieldノードにデータ・フィールドを指定し、かつそれがdocument属性と想定される(またはその逆の)場合でも、サービスは、データを正しく処理します。レスポンスは、データを正しいノードに配置します。 |
IDCネームスペース内のメイン・ノードである<idc:service>
ノードには、次の要件があります。
リクエストが処理されるためには、このノードが存在している必要があります。
必須属性IdcService
は、リクエストしているサービスを定義します。
<idc:service>
のサブノードでは、そのタグ内にネームスペースが含まれている必要はありません。
たとえば、<idc:document>
ではなく、<document>
を使用できます。ただし、子ノードでネームスペース識別子を定義する場合、serviceタグ内に指定されている識別子と一致させる必要があります。
例31-1は、PING_SERVER
サービス・リクエストが指定された<idc:service>
ノードを示しています。
<document>
ノードには、すべてのコンテンツ・アイテム情報が含まれており、このノードは、すべてのデータ・ノードの親になります。
コンテンツ・アイテムに対して有効な属性は、特定のコンテンツ・サーバーによって定義されます。たとえば、dID
、dDocTitle
およびdDocType
は、共通属性です。<document>
ノードには、次のルールが適用されます。
カスタムのコンテンツ・アイテム情報(xSpec
など)は、それがメタデータとして定義されている場合は有効です。
すべての既知のdocumentフィールドは、属性として使用できます。
例31-2は、CHECKOUT_BY_NAME
サービスを使用する<document>
ノードを示しています。
<user>
ノードには、すべてのユーザー情報が含まれます。<user>
ノードには、次のルールが適用されます。
ユーザーに対して有効な属性は、特定のコンテンツ・サーバーによって定義されます。たとえば、dName
、dFullName
およびdEmail
は、共通属性です。
カスタムのユーザー情報は、それがメタデータとして定義されている場合は有効です。
すべての既知のuserフィールドは、属性として使用できます。
例31-3は、GET_USER_INFO
サービス・リクエストのユーザーを指定する<user>
ノードを示しています。
<optionlist>
ノードには、任意のオプション・リストが含まれます。name
属性は、オプション・リストの名前を指定します。各<option>
サブノードには、<optionlist>
ノード内の値が含まれます。
例31-4は、ロケール値を持つ<option>サブノードがある<optionlist>
ノードを示しています。
<option>
サブノードは、<optionlist>
ノード内に指定されます。option
属性は、オプション・リストのオプションの名前を指定します。
例31-5は、dDocType
値が指定された<option>
ノードを示しています。
<resultset>
サブノードは、<document>
または<user>
ノード内に指定することができます。このサブノードには、リクエストまたはレスポンス内のResultSetの情報が含まれます。name
属性はResultSetの名前を指定します。
例31-6では、リビジョン履歴を含むResultSetの<resultset>
サブノードを指定します。
<row>
サブノードは、<resultset>
サブノード内で指定されます。<resultset>サブノードは、複数の<row>サブノードを持つことができます。各<row>サブノードは、ResultSet内の行を指定します。
有効な属性は、特定のコンテンツ・サーバーによって定義されます。有効な属性は、<document>
または<user>
ノード内の属性として表示できるものと同じフィールドです。
例31-7では、user属性のResultSet内の行を指定します。
<idc:resultset name="UserAttribInfo"> <idc:row dUserName="jsmith" AttributeInfo="role,contributor,15"> </idc:row> </idc:resultset>
<field>
サブノードは、<document>
、<user>
または<row>
ノード内に指定することができます。name
属性は、フィールドの名前を指定します。<field>
サブノードは多くの場合、refreshSubjects
やdSubscriptionID
などのデータを表します。
<field>
サブノードは、ユーザーが構成できるドキュメントまたはユーザー・メタデータを表すことができます。または、xComments
などのカスタム・メタデータを表すこともできます。例31-8では、サブスクリプションIDデータを表すfieldサブノードを指定します。
<field>
サブノードの別の使用法としては、例31-9に示されているように、QueryText
やOriginalQueryText
などのフィールドの検索結果値を渡すことがあります。
<idc:field name="QueryText"> dDocType <Substring> "ADSALES&" </idc:field>
左山カッコ(<
)や右山カッコ(>
)などの特殊文字をWebCenter Contentに渡すときは、表31-1に示すXMLエンコーディング・フォーマットを使用する必要があります。
表31-2 特殊文字のフォーマット
標準フォーマット | XMLエンコーディング・フォーマット |
---|---|
|
|
|
|
|
|
|
|
|
|
注意:
|
(汎用的な問合せ構文を使用した)コンテンツ・アイテム問合せの場合は、いずれのフォーマットでもコンテンツ・サーバーに文字列を渡すことができます。次の例では、文字列は標準フォーマットで指定されています。
次の例では、文字列はXMLエンコード・フォーマットで指定されています。
SOAPレスポンス/リクエストを使用したサービス・コールによって、SOAPリクエストでコンテンツ・サーバー・サービスを実行できます。使用可能なサービスのリストと必須パラメータの詳細は、『Oracle Fusion Middleware Oracle WebCenter Contentサービス・リファレンス』を参照してください。
次のIdcCommandサービスは、SOAPリクエストの例です。
IdcCommand | 説明 |
---|---|
|
このサービスは、サーバーへの接続が存在するかどうかを評価します。第31.3.3.1項「サーバーのPing」を参照してください。 |
|
このサービスは、システムに新しいユーザーを追加します。「新しいユーザーの追加」を参照してください。 |
|
このサービスは、既存のユーザーを編集します。「既存のユーザーの編集」を参照してください。 |
|
このサービスは、ユーザー・リストを取得します。「ユーザー情報の取得」を参照してください。 |
|
このサービスは、既存のユーザーを削除します。「ユーザーの削除」を参照してください。 |
|
このサービスは、コンテンツ・サーバーによって制御されるチェックインを実行します。「コンテンツ・アイテムのチェックイン」を参照してください。 |
|
このサービスは、指定されたコンテンツ・アイテムの最新バージョンをロック済としてマークします。「コンテンツ・アイテムのチェックアウト」を参照してください。 |
|
このサービスは、コンテンツIDを使用してコンテンツ・アイテムのチェックアウトを元に戻します。「コンテンツ・アイテムのチェックアウトを元に戻す」を参照してください。 |
|
このサービスは、コンテンツ・アイテムのリビジョン情報を取得します。「コンテンツ・アイテム情報の取得」を参照してください。 |
|
このサービスは、チェックアウトを実行せずにコンテンツ・アイテムのコピーを取得します。「ファイルの取得」を参照してください。 |
|
このサービスは、渡された問合せテキストに対する検索結果を取得します。「検索結果の取得」を参照してください。 |
|
このサービスは、WebCenter Contentデータベースから、指定された表をエクスポートします。「表のデータの取得」を参照してください。 |
|
このサービスは、基準ワークフローの情報を返します。「基準ワークフロー情報の取得」を参照してください。 |
PING_SERVER
サービスは、サーバーへの接続が存在するかどうかを評価します。
このサービスは、コンテンツ・サーバーのステータス情報を返します。
このサービスを実行できない場合、サーバーへの接続を確立できません。
というメッセージがユーザーに表示されます。
ヒント: コンテンツ・サーバーへの接続が確立されており、コマンドの実行権限を持つユーザーとしてログインしていることを確認するために、他のサービスをコールする前に |
<?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
<?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 'sysadmin'. </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>
ADD_USER
サービスは、システムに新しいユーザーを追加します。
ユーザー名が指定されると、サービスは、そのユーザーがシステム内に存在するかどうかを判断します。存在しない場合、サービスは、そのユーザーを追加します。
最も発生しがちなエラーは、ユーザー名が一意でないことです。このサービスを実行できない場合、エラー・メッセージがユーザーに表示されます。
次のパラメータを指定する必要があります。
パラメータ | 説明 |
---|---|
dName |
一意の名前。 |
dUserAuthType |
ユーザーの認可タイプ。この値は、 |
IdcService |
|
次のオプション・パラメータを指定することができます。
パラメータ | 説明 |
---|---|
dEmail |
ユーザーの電子メール・アドレス。 |
dFullName |
ユーザーの完全名。 |
dPassword |
ユーザーのパスワード。 |
このオプション・データは、ユーザーの属性情報、ユーザーが属するロール、およびユーザーがアクセス権を持つアカウントを定義します。属性情報は、3つのカンマ区切りの文字列のリストで構成されます。最初の文字列は属性のタイプを、2番目の文字列は属性の名前を、3番目の文字列はアクセス番号を示します。
重要: ユーザー属性情報は、事前定義されていません。デフォルトでは、ユーザーはどのロールまたはアカウントにも属しておらず、システムではゲストになります。 |
属性情報 | 説明 |
---|---|
アクセス番号 |
アクセス番号は、そのユーザーに割り当てられるアクセスまたは権限のレベルを決定します。 |
属性名 |
属性名は、割り当てられるroleまたはaccountの名前です。たとえば、admin、contributor、editorなどを割り当てることができます。 |
属性タイプ |
属性タイプは、roleまたはaccountで構成されます。 |
ユーザーに次のアクセス番号を割り当てることができます。
アクセス・レベルのフラグ | 説明 |
---|---|
1 |
読取り専用。 |
3 |
読取りと書込み。 |
7 |
読取り、書込みおよび削除。 |
15 |
管理権限。 |
ユーザーは、複数のロールおよびアカウントに属することができます。そのため、属性情報列に、カンマで区切られた複数のロールおよびアカウント情報文字列が存在する可能性があります。
ユーザーが管理ロールを持つようにする場合、ユーザー属性情報は次のとおり定義します。
<idc:resultset name="UserAttribInfo"> <idc:row dUserName="jsmith" AttributeInfo="role,contributor,15">
ユーザーがコントリビュータとエディタの両方のロールに属し、かつ会計帳簿の読取り権限を持つようにする場合、ユーザー属性情報は次のように定義します。
<idc:resultset name="UserAttribInfo"> <idc:row dUserName="jsmith" AttributeInfo="role,contributor,15,role,editor,15,account,books,1">
ロールを定義するとき、最初の文字列ではこれがrole属性であることを指定し、2番目の文字列はロールの名前、3番目の文字列はデフォルト・エントリの15になります。
アカウントを定義するとき、最初の文字列ではこれがaccount属性であることを指定し、2番目の文字列はアカウントの名前、3番目の文字列はアクセス・レベルになります。
role属性の場合、情報は次のようなフォームになります。
role,contributor,15
アクセス・レベルによって指定アカウントへのユーザーの権限が決定されるaccount属性の場合、情報は次のようなフォームになります。
account,books,1
<?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>
<?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>
EDIT_USER
サービスは、既存のユーザーの情報を編集します。
ユーザー名とユーザーの認可タイプが指定されると、サービスは、そのユーザーがシステム内に存在するかどうかを判断します。存在しない場合、サービスは失敗します。それ以外の場合、ユーザー情報は、更新され置き換えられます。
最も発生しがちなエラーは、ユーザーがこのアクションを実行するためのセキュリティ・レベルを持っていないことです。このサービスを実行できない場合、エラー・メッセージがユーザーに表示されます。
注意: ユーザー属性情報は、現在の属性を置き換えます。リストに追加されるわけではありません。そのため、ユーザー属性情報が定義されていない場合、ユーザーは、システムではゲストになります。 |
次のパラメータを指定する必要があります。
パラメータ | 説明 |
---|---|
dName |
一意の名前。 |
dUserAuthType |
ユーザーの認可タイプ。この値は、 |
IdcService |
|
次のオプション・パラメータを指定することができます。
パラメータ | 説明 |
---|---|
dEmail |
ユーザーの電子メール・アドレス。 |
dFullName |
ユーザーの完全名。 |
dPassword |
ユーザーのパスワード。 |
dUserLocale |
ロケールの指定(English-US、English-UK、Deutsch、Français、Españolなど)。 |
dUserType |
定義済のユーザー・タイプ。 |
ユーザーの属性情報を含み、ユーザーが属するロールおよびユーザーがアクセス権を持つアカウントを参照するResultSet。属性情報は、3つのカンマ区切りの文字列のリストで構成されます。最初の文字列は属性のタイプを、2番目の文字列は属性の名前を、3番目の文字列はアクセス番号を示します。
重要: ユーザー属性情報は、事前定義されていません。デフォルトでは、ユーザーはどのロールまたはアカウントにも属しておらず、システムではゲストになります。 |
属性情報 | 説明 |
---|---|
アクセス番号 |
アクセス番号は、そのユーザーに割り当てられるアクセスまたは権限のレベルを決定します。 |
属性名 |
属性名は、割り当てられるroleまたはaccountの名前です。たとえば、admin、contributor、editorなどを割り当てることができます。 |
属性タイプ |
属性タイプは、roleまたはaccountで構成されます。 |
アクセス番号
ユーザーに次のアクセス番号を割り当てることができます。
アクセス・レベルのフラグ | 説明 |
---|---|
1 |
読取り専用。 |
3 |
読取りと書込み。 |
7 |
読取り、書込みおよび削除。 |
15 |
管理権限。 |
ユーザーは、複数のロールおよびアカウントに属することができます。そのため、属性情報列に、カンマで区切られた複数のロールおよびアカウント情報文字列が存在する可能性があります。
ユーザーが管理ロールを持つようにする場合、ユーザー属性情報は次のとおり定義します。
<idc:resultset name="UserAttribInfo"> <idc:row dUserName="jsmith" AttributeInfo="role,contribut or,15">
ユーザーがコントリビュータとエディタの両方のロールに属し、かつ会計帳簿の読取り権限を持つようにする場合、ユーザー属性情報は次のように定義します。
<idc:resultset name="UserAttribInfo"> <idc:row dUserName="jsmith" AttributeInfo="role,contributor,15,role,editor,15,account,books,1">
ロールの定義では、最初の文字列ではこれがrole属性であることを指定し、2番目の文字列はロールの名前、3番目の文字列はデフォルト・エントリの15になります。
アカウントの定義では、最初の文字列ではこれがaccount属性であることを指定し、2番目の文字列はアカウントの名前、3番目の文字列はアクセス・レベルになります。
role属性の場合、情報は次のようなフォームになります。
role,contributor,15
アクセス・レベルによって指定アカウントへのユーザーの権限が決定されるaccount属性の場合、情報は次のようなフォームになります。
account,books,1
<?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>
<?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>
GET_USER_INFO
サービスは、ユーザー・リストを取得します。
定義済のユーザーが指定されると、サービスは、ユーザー・リストを取得します。
このサービスを実行できない場合、「ユーザー・リストを取得できません。」というメッセージがユーザーに表示されます。
次のパラメータを指定する必要があります。
パラメータ | 説明 |
---|---|
dUser |
定義済のユーザー。 |
IdcService |
|
<?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>
<?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>
DELETE_USER
サービスは、既存のユーザーを削除します。
ユーザー名が指定されると、サービスは、システムからそのユーザーを削除します。
最も発生しがちなエラーは、ユーザーに別名が割り当てられていることです。このサービスが実行できない場合、エラー・メッセージが返されます。
<?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>
<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>
CHECKIN_UNIVERSAL
サービスは、コンテンツ・サーバーへの制御されたチェックインを実行します。
このサービスは、コンテンツID (dDocName)をキーとして使用してデータベースに問合せを行うことにより、コンテンツ・アイテムが新規のものであるか、システムにすでに存在しているものであるかを判断します。
コンテンツ・アイテムがシステムに存在している場合、パブリッシュ状態(dPublishState)は空である必要があります。
リビジョン・ラベル(dRevLabel)が指定された場合、このサービスは、そのコンテンツ・リビジョンがシステムに存在しているかどうかをチェックします。そのリビジョンが存在する場合は、例外がスローされます。
このサービスは、次のサブサービスのいずれかにこのリクエストをディスパッチします。
CHECKIN_NEW
_SUB
- コンテンツ・アイテムがサーバーに存在しない場合。
CHECKIN_SEL_SUB
- コンテンツ・アイテムがシステムに存在し、有効なリビジョンが指定されておらず、コンテンツ・アイテムがチェックアウトされている場合。
WORKFLOW_CHECKIN_SUB
- コンテンツ・アイテムが存在し、ワークフローの一部である場合。
最も発生しがちなエラーは、パラメータの不一致、またはコンテンツ・アイテムが正常にチェックインされなかったことです。このサービスを実行できない場合、「コンテンツ・アイテム{dDocName}を正常にチェックインできませんでした。」
というメッセージがユーザーに表示されます。
CHECKIN_UNIVERSAL
サービスは、コンテンツ・サーバーへの制御されたチェックインです。チェックインは、新規、選択済またはワークフロー・チェックイン・プロセスのいずれかに分類され、ブラウザまたはリポジトリ・マネージャ・アプリケーションを介したチェックインと同じロジックに従います。チェックイン対象のコンテンツ・アイテムがすでにシステムに存在している場合、チェックインを正常に行うためには、そのコンテンツ・アイテムをチェックアウトする必要があります。
これらは、本質的に、コンテンツ・サーバーへの制御されたチェックインで使用されるサブサービスと同じです。ただし、これらのサブサービスは、BatchLoadまたはアーカイブのインポート中にはコールされません。このサービスは、セキュリティをチェックして、ユーザーがコンテンツ・アイテムのチェックインを実行するための十分な権限を持っているかどうか、およびコンテンツ・アイテムが存在する場合は、それがチェックアウトされているかどうかを判断します。さらに、コンテンツ・アイテムがワークフローの基準に一致しているかどうか、またはアクティブな基本ワークフローに属しているかどうかも判断します。
コンテンツ・アイテムが見つからない場合、コンテンツ・アイテムは、CHECKIN_NEW_SUB
サブサービスを使用してチェックインされます。このサブサービスは、チェックイン・データを検証し、このコンテンツ・アイテムが基準ワークフローに属しているかどうかを判断します。コンテンツ・アイテムがすでにシステムに存在しており、それがワークフローに属していない場合、CHECKIN_SEL_SUB
が使用されます。それ以外の場合、つまり、コンテンツ・アイテムが存在しており、それがワークフローに属している場合は、WORKFLOW_CHECKIN_SUB
が使用されます。
注意: バックスラッシュ(\)はエスケープ文字であるため、すべてのパスで、ファイルの区切り文字としてスラッシュ(/)が使用されます。たとえば、 |
次のパラメータを指定する必要があります。
パラメータ | 説明 |
---|---|
dDocAuthor |
コンテンツ・アイテムの作成者(コントリビュータ)。 |
dDocName |
コンテンツ・アイテムの識別子(コンテンツID)。
|
dDocTitle |
コンテンツ・アイテムのタイトル。 |
dDocType |
コンテンツ・アイテムのタイプ。 |
doFileCopy |
このフラグは |
dSecurityGroup |
|
IdcService |
|
primaryFile |
サーバーから見た、ファイルの場所への絶対パス。ファイルの区切り文字としてスラッシュを使用します。 プライマリ・ファイルは、メタデータのみをチェックインするのではないかぎり、指定する必要があります。プライマリ・ファイルとともに代替ファイルが指定された場合、Oracle WebCenter Content: Inbound Refineryは、代替ファイルを変換します。それ以外の場合、プライマリ・ファイルが変換されます。
|
重要: 定義するカスタムのメタデータ・フィールドも指定する必要があります。 |
次のパラメータが必要な場合もあります。
パラメータ | 説明 |
---|---|
dDocAccount |
コンテンツ・アイテムのセキュリティ・アカウント。 アカウントを有効にした場合は、このパラメータを渡す必要があります。 |
次のオプション・パラメータを指定することができます。
パラメータ | 説明 |
---|---|
alternateFile |
変換のための代替ファイル。
|
dCreateDate |
コンテンツ・アイテムが作成された日付。デフォルトでは、これは現在の日付です。 |
dInDate |
コンテンツのリリース日。コンテンツ・アイテムがWebにリリースされる日付。デフォルトでは、これは現在の日付です。 コンテンツのリリース日(dInDate)が指定されない場合、作成日(dCreateDate)が使用されます。この値が指定されない場合、自動的に生成されます。 |
dOutDate |
コンテンツの有効期限。デフォルトでは、これはブランクであり、有効期限は指定されません。 コンテンツの有効期限(dOutDate)が入力されない場合、値は空のままになります。これは有効な状態です。 |
dRevLabel |
コンテンツ・アイテムのリビジョン・ラベル。設定された場合、このラベルを使用して、指定されたリビジョンを検索します。 |
isFinished |
これがワークフロー・チェックインであり、その編集が完了している場合は、 詳細は、 |
注意: コンテンツID ( |
<?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>
<?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 'SoapUpload2'. </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>
CHECKOUT_BY_NAME
は、指定されたコンテンツ・アイテムの最新リビジョンをチェックアウトします。
コンテンツ・アイテムのリビジョンIDが指定されると、このサービスは、コンテンツ・アイテムをシステムで検索し、チェックアウトを元に戻そうとします。
コンテンツ・アイテムがシステムに存在しない場合、コンテンツ・アイテムがチェックアウトされていない場合、またはチェックアウトを元に戻すのに十分な権限がユーザーにない場合、サービスは失敗します。
最も発生しがちなエラーは、コンテンツ・アイテム名が存在しないことです。このサービスを実行できない場合、エラー・メッセージがユーザーに表示されます。
注意: このサービスは、コンテンツ・アイテムをロック済としてマークするだけです。ダウンロードは実行しません。 |
次のパラメータを指定する必要があります。
パラメータ | 説明 |
---|---|
dDocName |
コンテンツ・アイテムの識別子(コンテンツID)。 |
IdcService |
|
注意: コンテンツID ( |
<?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>
<?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>
UNDO_CHECKOUT_BY_NAME
サービスは、コンテンツIDを使用してコンテンツ・アイテムのチェックアウトを元に戻します。
コンテンツ・アイテムの名前が指定されると、このサービスは、コンテンツ・アイテムをシステムで検索し、チェックアウトを元に戻そうとします。
コンテンツ・アイテムがシステムに存在しない場合、コンテンツ・アイテムがチェックアウトされていない場合、またはチェックアウトを元に戻すのに十分な権限がユーザーにない場合、サービスは失敗します。
このサービスは、アプレットまたはアプリケーションによって使用されます。
このサービスを実行できない場合、「{dDocName}に対するチェックアウトを元に戻せません。」
というメッセージがユーザーに表示されます。
次のパラメータを指定する必要があります。
パラメータ | 説明 |
---|---|
dDocName |
コンテンツ・アイテムの識別子(コンテンツID)。 |
IdcService |
|
注意: コンテンツID ( |
<?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>
<?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>
DOC_INFO
サービスは、コンテンツ・アイテムのリビジョン情報を取得します。
コンテンツ・アイテムのリビジョンIDが指定されると、このサービスは、コンテンツ・アイテムのリビジョン情報を取得します。
最も発生しがちなエラーは、そのコンテンツ・アイテムがすでにシステムに存在していないか、ユーザーがこのアクションを実行するためのセキュリティ・レベルを持っていないことです。このサービスを実行できない場合、エラー・メッセージがユーザーに表示されます。
次のパラメータを指定する必要があります。
パラメータ | 説明 |
---|---|
|
生成済のコンテンツ・アイテムのリビジョンID。 |
|
|
<?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>
<?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>
GET_FILE
サービスは、コンテンツ・アイテムの特定のレンディション、最新のリビジョンまたは最新リリースのリビジョンを返します。チェックアウトを実行せずにコンテンツ・アイテムのコピーを取得します。
このコマンドは、リビジョンのdID
(コンテンツ・アイテムのリビジョンID)を計算し、計算されたdID
を持つリビジョンの特定のレンディションのファイル名を特定します。指定されたdID
、またはdDocName
(コンテンツ・アイテム名)とRevisionSelectionMethod
パラメータを使用できます。
dID
、またはdDocName
とRevisionSelectionMethod
パラメータが指定されると、このサービスは、そのリビジョンの特定のレンディションのファイル名を特定し、そのファイルをクライアントに返します。
最も発生しがちなエラーは、パラメータになんらかの不整合があるか、存在しないリビジョンまたはレンディションに対するリクエストであることです。このサービスを実行できない場合、エラー・メッセージがユーザーに表示されます。
注意: リクエスタがdDocName値を認識しているコンテンツ・アイテムに対するすべてのリクエストで、dDocNameを使用してください。コンテンツ・サーバーのエラー・メッセージは、フォームなど、他の機能と同様に、dDocName値が存在しているという想定に基づいています。 |
重要: コンテンツ・アイテムのリビジョンID ( |
パラメータ | 説明 |
---|---|
|
コンテンツ・アイテムの識別子(コンテンツID)。
|
|
生成済のコンテンツ・アイテムのリビジョンID。
|
|
リビジョン選択メソッド。 これが指定された場合は、
|
IdcService |
|
次のオプション・パラメータを指定することができます。
パラメータ | 説明 |
---|---|
Rendition |
コンテンツ・アイテムのレンディション。このパラメータは、コンテンツ・アイテムのレンディションを指定するもので、Primary、WebまたはAlternateに設定できます。Renditionが指定されない場合、デフォルトでPrimaryが設定されます。
|
注意: コンテンツID ( |
<?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>
<?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--
GET_SEARCH_RESULTS
サービスは、渡された問合せテキストに対する検索結果を取得します。
コンテンツ・アイテムの問合せを行ったユーザーに検索結果を表示するために使用されます。
QueryText
パラメータにTitle
やContent ID
などの値を添付して、このサービスで返される結果を絞り込むことができます。
QueryText
パラメータは、問合せを定義します。SOAPメッセージで使用するためには、この問合せはXMLエンコードである必要があります。次の例では、コンテンツ・アイテムの問合せのために送信される文字列を標準フォーマットで渡す場合と、XMLエンコード・フォーマットで渡す場合の両方を示します。
標準フォーマットの文字列が指定されたパラメータは次のとおりです。
QueryText=dDocType <Substring> "ADSALES"
XMLエンコードの文字列が指定されたパラメータは次のとおりです。
<idc:field name="QueryText"> dDocType <Substring> `ADSALES` </idc:field>
XMLエンコードの文字列のフォーマットの詳細は、第31.3.2項「特殊文字」を参照してください。
このサービスを実行できない場合、「検索結果を取得できません」
というメッセージが表示されます。
次のパラメータを指定する必要があります。
パラメータ | 説明 |
---|---|
IdcService |
|
QueryText |
コンテンツ・アイテムの問合せのために送信される、ユーザーが指定したテキスト。 |
次のパラメータを指定することができます。
パラメータ | 説明 |
---|---|
resultCount |
返される結果の数。デフォルトは25です。 |
sortField |
ソートの基準となるメタデータ・フィールドの名前。
|
sortOrder |
ソート順序。使用できる値は、ASC (昇順)およびDES (降順)です。 |
startRow |
次の検索結果として取得される最初の行。たとえば、結果として200行が返され、resultCountが25である場合、2番目の結果セットを取得するには、startRowを26に設定します。 |
<?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>
<?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"> <$dDocTitle$> </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>
GET_TABLE
サービスは、WebCenter Contentデータベースから、指定された表をエクスポートします。
ResultSetを作成し、シリアル化されたHDAファイルにそれを追加することにより、指定された表をエクスポートします。表が見つからない場合、サービスは失敗します。シリアル化されたHDAファイルを受信して、後で使用するためにこのResultSetを格納するのは、コール元プログラムです。
最も発生しがちなエラーは、表名が存在しないことです。このサービスを実行できない場合、エラー・メッセージがユーザーに表示されます。
次のパラメータを指定する必要があります。
パラメータ | 説明 |
---|---|
IdcService |
|
tableName |
エクスポートする表の名前。 |
<?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>
<?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>
GET_CRITERIA_WORKFLOWS_FOR_GROUP
サービスは、基準ワークフロー情報を返します。
セキュリティ・グループが指定されると、このサービスは、ワークフローおよび関連ステップのリストを返します。
Resultset WorkflowsForGroup
and WorkflowStepsForGroup
を返します。
WorkflowsForGroup
では、このグループに対するすべてのワークフローがリストされます(dWfID
、dWfName
)。
WorkflowStepsForGroup
では、このグループに対するすべてのワークフローのすべてのステップがリストされます(dWfID
、dWfName
、dWfStepID
、dWfStepName
)。
「ワークフロー管理」管理アプレットの「条件」タブから、基準ワークフローおよびサブワークフローを追加、編集、有効化、無効化および削除できます。
最も発生しがちなエラーは、指定のセキュリティ・グループが存在しないか、ユーザーがセキュリティ・チェックに失敗することです。そのような状況では、サービスは、ユーザーに表示するための適切な例外をスローします
次のパラメータを指定する必要があります。
パラメータ | 説明 |
---|---|
dSecurityGroup |
|
IdcService |
|
<?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>
<?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>
実行するサービスと必須パラメータを定義するSOAPパケットをカプセル化することで、Active Server Pageからコンテンツ・サーバーのIdcCommandサービスを実行できます。コマンドを実行するための適切な権限が必要です。管理者アクセスを必要とするコマンドもあれば、書込み権限のみを必要とするコマンドもあります。
Active Server Pageは、コンテンツ・サーバーからサービスをコールできます。サンプル・サービスの次の説明には、必須パラメータとオプション・パラメータが含まれています。また、埋込みSOAPリクエストのXMLフォーマット・バージョンも提供されます。
必須パラメータとオプション・パラメータを含め、サービス・コールの詳細は、第31.3.3項「SOAPレスポンス/リクエストを使用したサンプルのサービス・コール」を参照してください。
次の例では、XMLフォーマットSOAPリクエストは、GET_SEARCH_RESULTSサービスを使用して、渡された問合せテキストに対する検索結果を取得します。
<?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>
埋込みSOAPリクエストは、Active Server Pageの基礎を形成します。次のサンプルは、GET_SEARCH_RESULTSを実行します。
サービス・コールの詳細およびSOAPレスポンス/リクエスト・メッセージの例は、第31.3.3項「SOAPレスポンス/リクエストを使用したサンプルのサービス・コール」を参照してください。
<% ' 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> </td> <td><b>Title</b></td> <td> </td> <td><b>Type</b></td> <td> </td> <td><b>Release Date</b></td> <td> </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> </td> <td><%=strDocTitle%></td> <td> </td> <td><%=strDocType%></td> <td> </td> <td><%=strInDate%></td> <td> </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 '--------------------------- %>
WebCenter Contentサービスとの接続のためにWSDLファイルを生成できます。
WSDLファイルは、コンテンツ・サーバー・サービスによって認識可能なデータを渡せるようにします。コンテンツ・サーバー・サービスにより、WebCenter Content内のコンテンツおよびコンテンツ管理機能へのアクセスが可能になります。コンポーネントとともに提供されているWSDLファイルは、IntradocDir/weblayout/groups/secure/wsdl/customディレクトリに格納されます。
WSDLジェネレータ・コンポーネントとともに次のWSDLファイルが提供されます。
SoapカスタムWSDL管理ページを使用して、追加のWSDLファイルを生成できます。詳細は、第31.5.2項「サンプルのWSDLファイル」を参照してください。
WSDLファイルは、形式上、Webサービスに渡されるデータの説明を含む要素で構造化されます。この構造は、交換されるデータを解析するために、アプリケーションの送信とアプリケーションの受信を可能にします。
WSDL要素には、データ上で実行される操作の説明およびプロトコルまたはトランスポートへのバインディングが含まれます。これにより、データの処理と、応答する方法やデータを返す方法の解釈の両方のために、アプリケーションを受信できるようになります。各WSDL要素内に、追加のサブ要素が含まれる場合もあります。
WSDLファイル構造には、次の主要素が含まれます。
メッセージ: 完全なドキュメント、またはメソッドの起動にマップされた引数のいずれかとしての、メッセージの形式でのデータの定義。
バインディング: 特定のポート・タイプに対して定義されている操作およびメッセージの実際のプロトコルおよびデータ・フォーマット。
サービスとポート: サービスは、バインディングをポートにマップし、ポートは、バインディングと、通信交換のためのネットワーク・アドレスの組合せです。
注意: 次のコード・フラグメントは、WSDLジェネレータ・コンポーネントとともに提供されるDocInfo.wsdlファイルにあるものです。完全なWSDLファイルについては、第31.5.2項「サンプルのWSDLファイル」を参照してください。 |
データ型<types>は、複雑なタイプと、関連付けられている要素を定義します。Webサービスは、単純なデータ型(文字列、整数、ブールなど)と複雑なデータ型の両方をサポートします。複雑な型は、複数の単純な型またはサブ要素の配列を含む構造化されたXMLドキュメントです。
ContentInfoセットに対する次のコード・フラグメントでは、名前、タイトル、作成者およびグループの各要素を定義し、それらが文字列であることを指定します。
<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>
メッセージ<message>は、メソッドの起動にマップされるデータを引数として定義します。
<message name="DocInfoByIDSoapIn"> <part name="parameters" element="s0:DocInfoByID" /> </message> <message name="DocInfoByIDSoapOut"> <part name="parameters" element="s0:DocInfobyIDResponse" /> </message>
ポート・タイプ<portType>は、バインディングのための操作のコレクションを定義します。DocInfo.wsdlファイルは、メッセージを処理するためのI/O情報とともにDocInfoSoapおよびDocInfo操作名(メソッド名)を提供します。
<portType name="DocInfoSoap"> <operation name="DocInfoByID"> <input message="s0:DocInfoByIDSoapIn" /> <output message="s0:DocInfoByIDSoapOut" /> </operation> </portType>
注意: ポート・タイプは、(Javaにおけるクラスと同様に)操作のコレクションです。一方、WSDLは、.NET、EJBまたはCORBAオブジェクトへの単なるマッピングよりも多くの機能を提供する、独立したデータ抽象化です。 |
バインディング<binding>は、特定のポート・タイプに対する操作およびメッセージの実際のプロトコルおよびデータ・フォーマットを定義します。
<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>
サービス<service>は、バインディングをポートにマップします。ポートは、バインディングと、通信交換のためのネットワーク・アドレスの組合せです。ポートは、定義されたトランスポート上でポート・タイプ(操作)のセットを公開するために使用されます。
<service name="DocInfo"> <port name="DocInfoSoap" binding="s0:DocInfoSoap"> <soap:address location="http://myhost.example.com:16200/_dav/cs/idcplg" /> </port> </service>
ヒント:
|
次のサンプル・コードは、完全なDocInfo.wsdlファイルを示しています。このファイルと、CheckIn.wsdl、GetFile.wsdlおよびSearch.wsdlファイルは、コンテンツ・サーバー・インスタンスのIntradocDir/weblayout/groups/secure/wsdl/customディレクトリにあります。
<?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>
Oracle WebCenter Contentのインストール時に、WSDLジェネレータ・コンポーネントがインストールされて有効化されると、一部のサービスをWebサービスとして公開する、いくつかのフォルダおよび関連するHDAファイルが生成されます。IntradocDir
/data/soap
ディレクトリに、2つのディレクトリが作成されます。generic
ディレクトリにはgeneric.hda
ファイルが含まれ、custom
ディレクトリにはwsdl_custom.hda
ファイルが含まれます。管理者は、Soap Wsdl管理ページを使用して、WSDLファイルをカスタマイズしたり追加したりできます。それらのページにアクセスするには、「管理アプレット」ページの「管理」セクションで「Soap WSDL」リンクをクリックします。
注意: WSDLファイルを生成するには、WSDLジェネレータ・コンポーネントを有効にする必要があります。 |
SoapカスタムWSDL管理ページを使用したカスタムWSDLの作成および編集に関するステップバイステップの手順については、第31.6項「WSDLファイルのカスタマイズ」を参照してください。
開発者は、WSDLファイルを使用して、開発ツールにプラグインするためのプロキシ・クラスを作成できます。WSDLファイルをJava、Visual Basic、C#などの言語のプログラミング・クラス・ファイルに変換するための、多数のソフトウェア製品およびツールキットがあります。たとえば、Apache AXISは、SOAPからJavaへの変換のためのツールキットを提供し、Microsoft .NET開発環境は、WSDLファイルをC#に変換する機能を提供しています。
Microsoft .NETを使用している場合は、utilitywsdl.exeを使用してプロキシ・クラスを生成できます。
wsdl /l:CS DocInfo.wsdl
このユーティリティは、DocInfoServiceクラスおよびパラメータが指定されたDocInfo関数を含むDocInfoService.csファイル(C#クラス)を生成します。戻り値は、すべてのレスポンス・パラメータが指定されたDocInfoSetクラスと、ErrorCodeおよびErrorMessageの値です。ErrorCodeがゼロ未満の場合、サービス・コールでエラーが発生したことを示しています。その詳細は、ErrorMessage値で確認できます。
注意: WSDLジェネレータ・コンポーネントで提供されるWSDLファイルに加えて、任意のWebCenter Contentサービス用のWSDLファイルを生成することもできます。詳細は、第31.5.3項「WSDLファイルの生成」を参照してください。 |
SoapカスタムWSDL管理ぺージには、管理者がWSDLファイルを編集およびカスタマイズできる機能があります。この項では、カスタムWSDLの作成および編集に関するステップバイステップの手順を説明する管理のチュートリアルを提供します。
WSDLファイルを生成するには、WSDLジェネレータ・コンポーネントを有効にする必要があります。WSDLジェネレータ・コンポーネントで提供されるWSDLファイルに加えて、任意のWebCenter Contentサービス用の追加のWSDLファイルを生成することもできます。詳細は、第31.5.3項「WSDLファイルの生成」を参照してください。
使用可能なサービスのリストと必須パラメータの詳細は、『Oracle Fusion Middleware Oracle WebCenter Contentサービス・リファレンス』を参照してください。
SoapカスタムWSDL管理ページを使用してカスタムWSDLファイルを作成および編集する手順は次のとおりです。
Webブラウザで、Oracle WebCenter Content Serverに管理者としてログインします。
「管理」トレイまたはメニューから、「Soap WSDL」を選択します。
このオプションにより、図31-3に示す「WSDLリスト」ページが開きます。
「アクション」メニューから、「データ・リスト」を選択します。
このオプションにより、図31-4に示す「データ・リスト」ページが開きます。
注意: システム固有のWSDLは削除できません。ただし、WSDLを編集し、そのWSDLに対して複合型の要素を有効化または無効化することができます。 |
データ・リストは、複合型、サービス・パラメータまたは他のデータ・リストとともに使用できる、データのグローバルなリストです。データ・リストがパラメータまたは複合型のサブタイプとして指定されている場合、そのデータ・リストのすべてのサブタイプがデータ型として表示されます。データ・リストは、いったん定義されると、様々なWSDLおよびサービスで複数回参照できます。データ型のリストでは、すべてのデータ・リストにd:という接頭辞が付いています。
「アクション」メニューから「データ・リストの追加」を選択します。
「データ・リストの追加」ページが表示されます。
次の情報を入力します。
名前: UserMetaFields
説明: ユーザー・メタデータ・フィールド
「追加」をクリックします。
データ・リストの要素の「名前」列に、ユーザー・メタデータ・フィールドの次の名前を入力します。
dName
dFullName
dPassword
dEmail
dUserAuthType
図31-5に示すように、それぞれの名前で、「タイプ」列のメニューから「field:string」
を選択し、必ず「有効」を選択します。
「更新」をクリックします。
更新された「データ・リスト」ページに戻ります。UserMetaFields
がリストの下部に表示されていることに注意してください。
「アクション」メニューから「WSDLリスト」を選択します。
図31-6に示す「WSDLリスト」ページが再表示されます。
「アクション」メニューから「WSDLの追加」を選択します。
「WSDLの追加」ページが表示されます。
次の情報を入力します。
名前: UserInfo
説明: ユーザー・サービス
「追加」をクリックします。
図31-7に示す「WSDL情報」ページが表示されます。
「アクション」メニューから「複合型の追加」を選択します。
「複合型の追加」ページが表示されます。
注意: 複合型には、他のデータ型がサブタイプとして含まれています。それらが作成されると、WSDL内の任意のサービスで、これらの複合型をパラメータとして使用できます。 |
複合型に関する次の情報を入力します。
名前: UserAttribInfo
タイプ: メニューから「resultset」を選択します。
「追加」をクリックします。
図31-8に示す「WSDL情報」ページが再表示されます。
「UserAttribInfo」行で「編集」をクリックします。
「複合型の情報」/「複合型の要素」ページが開きます。
次の複合型の要素を入力し、メニューからそれぞれの「タイプ」値を選択します。
名前 | タイプ | Idc名 |
---|---|---|
|
|
|
|
|
「複合型の要素」セクションで「更新」をクリックします。
更新された「WSDL情報」ページに戻ります。User AttribInfo
が複合型として表示されていることに注意してください。
「アクション」メニューから「サービスの追加」を選択します。
「サービスの追加」ページが開きます。
次の情報を入力します。
名前: AddUser
IdcService: ADD_USER
「追加」をクリックします。
「WSDL情報」ページが開きます。
AddUserサービスに対して「編集」を選択します。
このオプションにより、図31-9に示す「サービス情報」ページが開きます。
注意: WSDLを作成する際、コンテンツ・サーバーのIdcServices機能に対応するサービスを作成します。サービスがWebサービス・コールとの間でやり取りするリクエストおよびレスポンス・パラメータも指定します。 |
「アクション」メニューから「リクエスト・パラメータの更新」を選択します。
「リクエスト・パラメータ」ページが表示されます。
次の情報を入力し、メニューからタイプを選択します。
名前 | タイプ | Idc名 |
---|---|---|
DataList |
d:UserMetaFields |
|
CustomUserData |
propertylist:CustomUserMeta |
「更新」をクリックします。
更新された「サービス情報」ページに戻ります。「リクエスト・パラメータ」セクションにDataList
およびCustomUserData
が表示されていることに注意してください。
「更新」をクリックします。
更新された「WSDL情報」ページに戻ります。このページには、今追加したサービスが表示されています。
「更新」を再度クリックします。
更新された「WSDLリスト」ページに戻ります。UserInfoがリストの下部に表示されています。
「アクション」メニューから「WSDLの生成」を選択します。
WSDLが正常に生成されると、確認メッセージが表示されます。
「戻る」をクリックします。
「WSDLリスト」ページに戻ります。
「名前」列の「UserInfo」リンクをクリックします。
生成されたWSDLファイルのソース・コードが表示されます(例31-12にその一部を示します)。
例31-12 ソース・コードの一部、WSDLファイル
<?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>
ブラウザの「戻る」ボタンをクリックします。
SoapカスタムWSDLページに戻ります。
ヒント: 「表示」を右クリックし、デスクトップにWSDLファイルを保存できます(.NETで使用するなどの目的で)。ただし、デフォルトの |