Web クライアント関数またはプロシージャーの SET SOAP オプションを使用して SOAP エンベロープで変数を指定し、SOAP 操作を設定できます。
次のコードは、Web クライアント関数で SOAP 操作を設定する方法を示しています。
CREATE FUNCTION soapAddItemFunc(amount INT, item LONG VARCHAR) RETURNS XML URL 'http://localhost:8082/itemStore' SET 'SOAP(OP=addItems)' TYPE 'SOAP:DOC'; |
この例では、addItems は、soapAddItemFunc 関数にパラメーターとして渡される amount 値と item 値を含む SOAP 操作です。
次のサンプルスクリプトを実行して要求を送信できます。
SELECT soapAddItemFunc(5, 'shirt'); |
soapAddItemFunc ファンクションコールの呼び出しによって、次のような SOAP エンベロープが生成されます。
<?xml version="1.0"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:m="http://localhost:8082"> <SOAP-ENV:Body> <m:addItems> <m:amount>5</m:amount> <m:item>shirt</m:item> </m:addItems> </SOAP-ENV:Body> </SOAP-ENV:Envelope> |
前の方法の代わりに、独自の SOAP ペイロードを作成し、HTTP ラッパーでサーバーに送信できます。
SOAP サービスに対する変数は、標準 SOAP 要求の一部として含める必要があります。これ以外の方法で提供される値は無視されます。
次のコードは、カスタマイズされた SOAP エンベロープを構築する HTTP ラッパープロシージャーを作成する方法を示しています。
CREATE PROCEDURE addItemHttpWrapper(amount INT, item LONG VARCHAR) RESULT(response XML) BEGIN DECLARE payload XML; DECLARE response XML; SET payload = '<?xml version="1.0"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:m="http://localhost:8082"> <SOAP-ENV:Body> <m:addItems> <m:amount>' || amount || '</m:amount> <m:item>' || item || '</m:item> </m:addItems> </SOAP-ENV:Body> </SOAP-ENV:Envelope>'; SET response = httpAddItemFunc( payload ); /* process response as demonstrated in addItemFuncWrapper */ SELECT response; END; |
次のコードは、要求の送信に使用する Web クライアント関数を示しています。
CREATE FUNCTION httpAddItemFunc(soapPayload XML) RETURNS XML URL 'http://localhost:8082/itemStore' TYPE 'HTTP:POST:text/xml' HEADER 'SOAPAction: "http://localhost:8082/addItems"'; |
次のサンプルスクリプトを実行して要求を送信できます。
CALL addItemHttpWrapper( 7, 'socks' ); |
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |