![]() ![]() ![]() ![]() |
この章では、BEA AquaLogic Data Services Platform と ADO.NET クライアント アプリケーション間での相互運用性を有効にする方法について説明します。ADO.NET のクライアント アプリケーションをサポートするため、Microsoft の非接続データ モデルを理解している Microsoft Visual Basic および C# の開発者は ALDSP データ サービスを ADO.NET の Web サービスのように利用することができます。
Microsoft ADO.NET の開発者側からは、サポートが透過的です。つまり、ALDSP オペレーション (関数およびプロシージャ) を呼び出すのに特別な操作は必要なく、すべての作業がサーバ側で行われます。ADO.NET のクライアント アプリケーション開発者が行うのは、Web サービスのクライアント アプリケーションの作成時と同様に、ALDSP が生成した Web サービスをプログラミング環境に組み込むことのみです。
この章では、ALDSP が ADO.NET 統合を実現する方法について一般的な情報を示します。また、ADO.NET 統合を有効にするために必要なサーバ側の操作についても説明します。この章の内容は以下のとおりです。
注意 : | ADO.NET 開発の詳細は、Microsoft の MSDN の Web サイト (http://msdn.microsoft.com) でご確認ください。ADO.NET 対応のアプリケーション開発についてはこの Web サイトを参照してください。 |
ADO.NET (Active Data Object) は Microsoft ADO.NET クライアント アプリケーション向けのデータ オブジェクト技術で、機能的に SDO (Service Data Object) と似ています。ADO.NET は、クライアント アプリケーションがデータ ソースから切断された状態でもデータを利用できる堅牢かつ階層構造のデータ アクセス コンポーネントを提供します。データ中心のクライアント アプリケーションを作成する開発者は、C#、Visual Basic.NET、またはその他の Microsoft .NET プログラミング言語を使用して、スキーマ定義に基づくローカル オブジェクトをインスタンス化します。
これらのローカル オブジェクトは DataSet と呼ばれ、クライアント アプリケーションがデータをサーバに送信する前に追加、変更、または削除するのに使用されます。このように、ADO.NET のクライアント アプリケーションは保留中の変更をソート、選択、フィルタ、または保存し、DataSet を利用する階層型データを検索します。これは ALDSP のクライアント アプリケーションが SDO を利用するのと同様です。
Java クライアント アプリケーションにおける SDO の利用の詳細については、「Mediator および SDO の役割」を参照してください。ADO.NET DataSet を使用するクライアント アプリケーションの開発は SDO を使用するプロセスとおおよそ類似しています。
機能的には一見似ていますが、2 つの異なるプラットフォーム (Java と .NET) で動作する場合があるため、ADO.NET と SDO データ モデルは本質的に相互運用できません。ただし、ALDSP が ADO.NET 準拠の DataSet を提供することにより、ADO.NET クライアント開発者が ALDSP から提供されたデータ サービスを ADO.NET 固有のデータ ソースのように利用することができます。
ALDSP のデータ サービスが ADO.NET をサポートできるようにするには、以下の手順があります。
ADO.NET は Microsoft .NET Framework に含まれる一連のライブラリで、開発者が ADO.NET クライアント アプリケーションからさまざまなデータ ストアに通信する際に役立ちます。Microsoft ADO.NET ライブラリにはデータ ソースへの接続、クエリの送信、および結果の処理に関するクラスなどがあります。
また、DataSet には従来のデータ アクセスと XML 開発のギャップを埋めるいくつかの機能があります。開発者は従来のデータ アクセス インタフェースを通して XML を利用することが可能です。
注意 : | ADO.NET は接続 (直接) モデルおよび非接続モデルの両方をサポートしますが、ALDSP は非接続モデルのみをサポートしています。 |
ADO.NET クライアント アプリケーションは一般に Microsoft Windows Forms、Web Forms、C#、または Visual Basic で作成されます。Microsoft Windows Forms は、クライアント アプリケーション開発者が Windows .NET の管理環境におけるグラフィカル ユーザ インタフェースの開発に使用するクラスの集合です。
Web Forms も同様のクライアント アプリケーション インフラストラクチャを提供し、Web ベースのクライアント アプリケーションの作成が可能です。これらのクライアント ツールのいずれかを利用して、開発者は ADO.NET をデータ ソースで利用するアプリケーションを作成できます。
WSDL URL を使用すると、クライアントがデータ サービス操作を呼び出すことができ、通常行うのと同様にデータ サービス上の関数を呼び出し、コード内の DataSet オブジェクトを操作できます。
注意 : | WDSL およびサーバ側のアーティファクトの生成プロセスについては、「ALDSP Web サービス マッパの生成」を参照してください。 |
BEA AquaLogic Data Services Platform は ADO.NET をデータ オブジェクト レベルでサポートします。つまり、ALDSP は着信 ADO.NET DataSet オブジェクトを SDO の DataObject にマッピングし、発信 SDO を DataSet にマッピングします。マッピングはサーバ上で透過的に実行され、双方向で行われます。
図 7-3 に示すように、ALDSP により ADO.NET の型付き DataSet が送信、および返送されます。実行時に Microsoft .NET クライアント アプリケーションが ADO.NET 対応の Web サービスに対する SOAP 呼び出しを行うとき、Web サービスはオブジェクトをインターセプトし、.NET Dataset を SDO データ オブジェクトに変換し、それを Data Service に渡します。
マッピング、トランスフォーメーション、およびパッキングのプロセスはクライアント アプリケーション開発者、およびデータ サービス開発者に対して透過的です。表 7-4 に記載されているもののみがデータ サービス開発者に公開されています。
Customer.ds |
||
Customer.xsd |
||
CustomerDataSet.xsd |
||
CustomerNET.ws |
ADO.NET 対応の Web サービス マップから ALDSP によって生成された WSDL は Microsoft ADO.NET クライアント専用です。データ サービスを Java クライアントが使用可能な Web サービスとして公開するのも一般的に同じですが、実際の手順 (および生成されたアーティファクト) は Java 固有です。
ADO.NET クライアントにデータ サービスへのアクセスを提供するプロセスは、最初に Eclipse で有効化し、アプリケーションおよび ALDSP Data Services Studio のコンテキスト内で実行されるサーバ側のオペレーションです。
このセクションの手順では、データスペース プロジェクトを作成していて、ADO.NET クライアント アプリケーションにデータ サービスへのアクセスを提供することを前提としています。(データ サービスの設計および開発については、『データ サービス開発者ガイド』を参照してください。)
ALDSP のアプリケーションが ADO.NET クライアントをサポートできるようにするには、以下の手順に従います。
場合によっては、ADO.NET クライアントに利用できる操作がすでに存在されています。
データ サービス関数を Web サービス操作にマップする ALDSP Web サービス マッパを生成する必要があります。
Web サービス マッパを生成するには、次の手順に従います。
その後、[プロジェクト エクスプローラ] からマッパにデータ サービス ファイルおよび関数をドラッグ アンド ドロップできます。
Web サービスのクライアントが ADO.NET 対応の Web サービスでオペレーションを呼び出すために使用可能な Web Services Description Language (WSDL) ファイルが自動的に生成されます。
注意 : | ALDSP 上部での RPC スタイルの Web サービスの構築はサポートされていません。したがって、構築された RPC スタイルの Web サービスを、ADO.NET クライアントから ALDSP を使って作成することはできません。 |
ADO.NET クライアント アプリケーションから WSDL を探すパスを指定します。例では、クライアント アプリケーションとして VisualStudio を使用します。
WSDL をインポートした後は、ALDSP 対応サーバが実行中であり、アプリケーションに十分なアクセス特権がある前提において、そのデータ サービスを実行できます。
Microsoft の ADO.NET DataSet は基本的にデータ ソースにデータ アクセスを提供するように設計されているため、データベース テーブル (列と行) に非常に似ています。ADO.NET は後に Web サービスの利用のために調整されましたが、Web サービスのデータ ソース スキーマに多くの設計上の制限を課しています。
こうした制限により、データ サービスで問題なく機能する ALDSP の XML 型 (スキーマまたは XSD ファイルとも呼ばれる) が ADO.NET の DataSet では受け入れられない場合があります。
このセクションでは、ADO.NET クライアントによる利用に備えて XML 型を準備する方法について説明します。ADO.NET クライアント側から ALDSP サーバ側への読み込みおよび更新について説明し、特に以下の方法に焦点を当てます。
注意 : | XML 型の作成および利用についての詳細は、『データ サービス開発者ガイド』を参照してください。 |
XML 型を調整して ADO.NET DataSet で利用できるようにするには、次のようないくつかの方法があります。
注意 : | ADO.NET 準拠のデータ サービスの XML 型を非 ADO.NET クライアントも使用することは可能です。 |
注意 : | この方法では反転関数およびカスタム更新を使用する可能性が高くなる場合があります。 |
以下のガイドラインは、さまざまなデータ サービス アーティファクトに対するパターン要件を示しており、ADO.NET DataSet 準拠の XML 型 (スキーマ) 開発に役立ちます。
ADO.NET DataSet で複合型をサポートするための要件には以下が含まれます。
ADO.NET は複合型間の真の繰り返し参照をサポートしないため、以下のような構成を利用するスキーマ定義をシミュレーションする場合、「複合型の要件」に記載された要件に従う必要があります。
たとえば、address の複合型が Company および Department の両方で参照された場合、CompanyAddress と DepartmentAddress の 2 つの要素定義が存在し、それぞれに匿名の複合型があります。
<xsd:schema targetNamespace="urn:company.xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="Company">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Name" type="xsd:string"/>
<xsd:element name="CompanyAddress">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="City" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Department">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Name" type="xsd:string"/>
<xsd:element name="DepartmentAddress">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="City" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
ADO.NET DataSet で単純型をサポートするための要件には以下が含まれます。
target namespace および namespace qualification を使用する要件には、以下が含まれます。
XML スキーマに関する詳細は、以下のサイトを参照してください。
RPC スタイルの Web サービスでは、結果はスキーマ属性の設定に基づいて修飾または非修飾として返されます。
elementFormDefault
一般に、Web サービスでは、任意の子要素のため form 属性を設定して elementFormDefault
をオーバーライドできます。ただし、これらの個別設定は、グローバルな設定 (修飾または非修飾) のみを考慮して以来、RPC スタイルの Web サービスのため無視されます。
<s:schema elementFormDefault="qualified"
targetNamespace="http://temp.openuri.org/SampleApp/CustomerOrder.xsd"
xmlns:s0="http://temp.openuri.org/SampleApp/CustomerOrder.xsd"
xmlns:s="http://www.w3.org/2001/XMLSchema">
<s:complexType name="ORDER">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" form="unqualified"
name="ORDER_ID" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" form="unqualified"
name="CUSTOMER_ID" type="s:string"/>
</s:sequence>
</s:complexType>
</s:schema>
このサンプル コードでは、グローバル要素は修飾であり、子要素は (ORDER_ID
) 非修飾です。
標準的な場合では、ORDER_ID
の非修飾の特別な設定が受け付けられます。ただし、RPC スタイルの Web サービスの場合、ランタイムは ORDER_ID
を含めてすべての属性に対して修飾属性を生成します。
注意 : | ADO.NET で生成された RPC スタイルの Web サービスは、スキーマの elementFormDefault 宣言に一致しない form 属性の子要素を含む可能性があります。これらの Web サービスを実行可能なデータ サービス操作に変換するには、すべての form 要素の属性および elementFormDefault 属性が (修飾または非修飾) 一致するかどうかを確認します。 |
ADO.NET 対応のデータ サービス および Web サービスの作成時に、以下の 2 つの ADO.NET 固有のアーティファクトが生成されます。
このセクションでは、これらのアーティファクトに関する技術仕様を提供します。
型付き DataSet スキーマ ファイルは、動的に生成された WSDL で参照されます。スキーマ ファイルは Web 参照の作成中に、.NET クライアントによって動的に取得されます。
生成されたスキーマでは、ルート要素が以下のように (Microsoft のネームスペース エアリアス、msdata で修飾された) IsDataSet 属性を True に設定します。
msdata:IsDataSet="true"
Microsoft の ADO.NET アーティファクトに関する要件を遵守し、生成されたデータ サービスのターゲット スキーマとそれが依存するすべてのスキーマは型付き DataSet のスキーマと同じファイルに格納されています。コントロールに追加する関数を選択すると、WebLogic Workshop は関連するスキーマを取得し、その内容をスキーマ ファイルにコピーします。
コード リスト 7-1 は、ALDSP のカスタマ スキーマから生成された型付き DataSet のスキーマ—CustomerDS.xsd
—を示しています。
<xs:schema xmlns:mstns="http://temp.openuri.org/schemas/Customer.xsd" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns="http://temp.openuri.org/schemas/Customer.xsd" targetNamespace="http://temp.openuri.org/schemas/Customer.xsd" id="CustomerDS" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element msdata:IsDataSet="true" name="CustomerDataSet">
<xs:complexType>
<xs:choice maxOccurs="unbounded">
<xs:element ref="CUSTOMER"/>
</xs:choice>
</xs:complexType>
</xs:element>
<xs:element name="CUSTOMER">
.. .
</xs:element>
</xs:schema>
マッパ ファイルから生成された WSDL ファイルにはそれぞれの型付き DataSet に対応する import 文が含まれます。import 文はそれぞれ関連する DataSet スキーマのネームスペースで修飾されます。以下はその例です。
<import namespace="http://temp.openuri.org/schemas/Customer.xsd" location="LDTest1NET/CustomerDataSet.xsd"/>
WSDL はまた、ADO.NET 準拠のラッパー型定義を含みます。ラッパの型定義は型付き DataSet と同じネームスペースのあらゆる型要素のシーケンスを含む複合型で構成されており、以下はその例です。
<s:complexType name="CustomerDataSetWrapper">
<s:sequence>
<s:any namespace="http://temp.openuri.org/schemas/Customer.xsd"/>
</s:sequence>
</s:complexType>
次に示すのは、CUSTOMER_VIEW DataSet.xsd ファイルのサンプルです。
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"
xmlns:tns="ld:logicalDS/CUSTOMER_VIEW"
targetNamespace="ld:logicalDS/CUSTOMER_VIEW"
id="CUSTOMER_VIEWDataSet" xmlns:xs="http://www,w3,org/2001/XMLSchema">
<xs:element msdata:IsDataSet="true"
name="CUSTOMER_VIEWDataSet">
<xs:complexType>
<xs:choice maxOccurs="unbounded">
<xs:element ref="tns:CUSTOMER_VIEW" />
<xs:choice>
<xs:complexType>
<xs:element>
<xs.element name="CUSTOMER_VIEW">
<xs:complexType>
<xs:sequence>
<xs:element name="CUSTOMER_ID" type="xs.string" />
<xs:element name="FIRST_NAME" type="xs.string" />
<xs:element name="LAST_NAME" type="xs.string" />
<xs:element name="CUSTOMER_SINCE" type="xs.dateTime" />
<xs:element name="EMAIL_ADDRESS" type="xs.string" />
<xs:element name="TELEPHONE_NUMBER" type="xs.string" />
<xs:element minOccurs="0"name="SSN" type="xs.string" />
<xs:element minOccurs="0"name="BIRTH_DAY" type="xs.dateTime" />
<xs:element minOccurs="0"name="DEFAULT_SHIP_METHOD"Type="xs.string"/>
<xs:element minOccurs="0"name="EMAIL_NOTIFICATION"Type="xs.integer"/>
<xs:element minOccurs="0"name="NEWS_LETTER"Type="xs.integer"/>
<xs:element minOccurs="0"name="ONLINE_STATEMENT"Type="xs.integer"/>
<xs:element minOccurs="0"name="CREDIT_LIMIT"Type="xs.decimal"/>
<xs:element name="ORDERS">
<xs.complexType>
<xs.sequence>
<xs.element minOccurs="0" maxOccurs="unbounded"name="ORDER">
<xs.complexType>
<xs.sequence>
<xs:element name="CUSTOMER_ID" type="xs.string" />
<xs:element name="ORDER_ID" type="xs.string" />
<xs:element name="ORDER_DATE" type="xs.dateTime" />
<xs:element name="SHIP_METHOD" type="xs.string" />
<xs:element name="HANDLING_CHARGE" type="xs.decimal" />
<xs:element name="SUBTOTAL" type="xs.decimal" />
<xs:element name="TOTAL_ORDER_AMOUNT" type="xs.decimal" />
<xs:element name="SUBTOTAL" type="xs.decimal" />
<xs:element name="SALE_TAX" type="xs.decimal" />
<xs:element name="SHIP_TO" type="xs.string" />
<xs:element name="SHIP_TO_NAME" type="xs.string" />
<xs:element name="BILL_TO" type="xs.string" />
<xs:element name="ESTIMATED_SHIP_DATE" type="xs.dateTime" />
<xs:element name="STATUS" type="xs.string" />
<xs:element minOccurs="0"name="TRACKING_NUMBER"type="xs.string"/>
<xs.sequence>
<xs.complexType>
<xs:element>
<xs.sequence>
<xs.complexType>
<xs:element>
<xs.sequence>
<xs.complexType>
</xs.schema>
次に示すのは、CUSTOMER_VIEW_Net WSDL ファイルの例です。
<?xml version="1.0" encoding="utf-8"?>
<definitions xmlns:tns="ld"LogicalDSs/Customer_view_net.ws"
xmlns:soap= "http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="ld:LogicalDSs/Customer_view_net.ws"
xmlns="http://schemas.xmlsoap.org/wsdl/">
<documentation>AquaLogic Data Services Web Service</documentation>
<import namespace="ld:logicalDS/CUSTOMER_VIEW" location=DSP_DOT_NET_SCHEMAS/LogicalDSs/schemas/CUSTOMER_VIEW
/CUSTOMER_VIEW DataSet.xsd/>
<types>
<xs:schema xmlns:stns="ld:logicalDS/customer_view_net.ws"
xmlns:dsns0="ld:logicalDS/CUSTOMER_VIEW"
elementFormDefault="qualified"
targetNamespace="ld:logicalDSs/customer_view_net.ws">
<xs:element name="getFirst">
<xs:complexType>
<xs:sequence/>
</xs:complexType>
</xs:element>
<xs:element name="getFirstResponse">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="getFirstResult"
type="stns:CUSTOMER_VIEWDataSetWrapper" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="createCUSTOMER_VIEW">
<xs:complexType>
<xs:sequence>
<XS:ELEMENT NAME="P">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded"
ref="dsns0:CUSTOMER_VIEW" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="createCUSTOMER_VIEWResponse">
<xs:complexType>
<xs:sequence />
</xs:complexType>
</xs:element>
<xs:element name="updateCUSTOMER_VIEW">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="p"
type="stns:CUSTOMER_VIEWDataSetWrapper" />
<xs:sequence>
<xs:complexType>
</xs:element>
<xs:element name="updateCUSTOMER_VIEWResponse">
<xs:complexType>
<xs:sequence />
</xs:complexType>
</xs:element>
<xs:element name="deleteCUSTOMER_VIEW">
<xs:complexType>
<xs:sequence>
<xs:element name="p">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded"
ref="dsns0:CUSTOMER_VIEW" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="deleteCUSTOMER_VIEWResponse">
<xs:complexType>
<xs:sequence />
</xs:complexType>
</xs:element>
<xs:element name="getAll">
<xs:complexType>
<xs:sequence />
</xs:complexType>
</xs:element>
<xs:element name="getAllResponse">
<xs:complexType>
<xs:sequence>
<xs.element minOccurs="0" name="getAllResult"
type="stns:CUSTOMER_VIEWDataSetWrapper">
<xs.sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="CUSTOMER_VIEWDataSetWrapper">
<xs:sequence>
<xs:any namespace="ld:logicalDS/CUSTOMER_VIEW" />
</xs:sequence>
</xs:complexType>
</xs.schema>
</types>
<message name="getAllIn">
<part name="parameters" element="tns:getAll" />
</message>
<message name="getAllOut">
<part name="parameters" element="tns:getAllResponse" />
</message>
<message name="getFirstIn">
<part name="parameters" element="tns:getFirst" />
</message>
<message name="getFirstOut">
<part name="parameters" element="tns:getFirstResponse" />
</message>
<message name="createCUSTOMER_VIEWIn">
<part name="parameters" element="tns:createCUSTOMER_VIEW" />
</message>
<message name="createCUSTOMER_VIEWOut">
<part name="parameters" element="tns:createCUSTOMER_VIEWResponse" />
</message>
<message name="updateCUSTOMER_VIEWIn">
<part name="parameters" element="tns:updateCUSTOMER_VIEW" />
</message>
<message name="updateCUSTOMER_VIEWOut">
<part name="parameters" element="tns:updateCUSTOMER_VIEWResponse" />
</message>
<message name="deleteCUSTOMER_VIEWIn">
<part name="parameters" element="tns:deleteCUSTOMER_VIEW" />
</message>
<message name="deleteCUSTOMER_VIEWOut">
<part name="parameters" element="tns:deleteCUSTOMER_VIEWResponse" />
</message>
<portType name="Customer_view_netPT">
<operation name="getAll">
<input message="tns:getAllIn" />
<output message="tns:getAllOut" />
</operation>
<operation name="getFirst">
<input message="tns:getFirstIn" />
<output message="tns:getFirstOut" />
</operaton>
<operation name="createCUSTOMER_VIEW">
<input message="tns:createCUSTOMER_VIEWIn" />
<output message="tns:createCUSTOMER_VIEWOut" />
</operaton>
<operation name="updateCUSTOMER_VIEW">
<input message="tns:updateCUSTOMER_VIEWIn" />
<output message="tns:updateCUSTOMER_VIEWOut" />
</operaton>
<operation name="deleteCUSTOMER_VIEW">
<input message="tns:deleteCUSTOMER_VIEWIn" />
<output message="tns:deleteCUSTOMER_VIEWOut" />
</operaton>
</portType>
<binding name+"Customer_view_netSoapBinding"
type="tns:Customer_view_netPT">
<soap:binding
transport="http://schemas.xmlsoap.org/soap/http" />
<operation name="getAll">
<soap:operation
soapAction="ld:LogicalDSs/Customer_view_net.ws/getAll"
style="document" />
<input>
<soap:body use="literal" />
</ input>
<output>
<soap:body use="literal" />
</output>
</operation>
<operation name="getFirst">
<soap:operation
soapAction="ld:LogicalDSs/Customer_view_net.ws/getFirst"
style="document" />
<input>
<soap:body use="literal" />
</input>
<output>
<soap:body use="literal" />
</output>
</operation>
<operation name="createCUSTOMER_VIEW">
<soap:operation
soapAction="ld:LogicalDSs/Customer_view_net.ws/createCUSTOMER_VIEW"
style="document" />
<input>
<soap:body use="literal" />
</input>
<output>
<soap:body use="literal" />
</output>
</operation>
<operation name="updateCUSTOMER_VIEW">
<soap:operation
soapAction="ld:LogicalDSs/Customer_view_net.ws/updateCUSTOMER_VIEW"
style="document" />
<input>
<soap:body use="literal" />
</input>
<output>
<soap:body use="literal" />
</output>
</operation>
<operation name="deleteCUSTOMER_VIEW">
<soap:operation
soapAction="ld:LogicalDSs/Customer_view_net.ws/deleteCUSTOMER_VIEW"
style="document" />
<input>
<soap:body use="literal" />
</input>
<output>
<soap:body use="literal" />
</output>
</operation>
</binding>
<service name="Customer_view_netSoapService">
<port name="Customer_view_netSoapPort"
binding="tns:Customer_view_netSoapBinding"
<soap:address
location="http://172.16.38.38:7001/RTLApp/ALDSPWebService/LogicalDSds/
Customer_view_net.ws" />
</port>
</service>
</definitions>
![]() ![]() ![]() |