0
我有一個註冊的存儲過程,它將兩個數字相加。SAS Web服務:對SOAP請求的錯誤響應
%let sum = %SYSEVALF(&NUM1 + &NUM2);
data _null_;
file _webout;
PUT "&SUM";
RUN;
所存儲的過程被註冊到傳送流,兩者都輸入變量被登記爲數值,_webout輸出參數被註冊爲一個字符串(此參數的註冊並不改變任何東西)。
沒有別的包括。
我正在使用SOAPUI基於自動生成的WSDL文件創建SOAP信封。 SOAP請求:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:biw="http://www.sas.com/xml/namespace/biwebservices">
<soapenv:Header/>
<soapenv:Body>
<biw:wSDL_Test>
<biw:parameters>
<!--Optional:-->
<biw:NUM1>1</biw:NUM1>
<!--Optional:-->
<biw:NUM2>1</biw:NUM2>
</biw:parameters>
</biw:wSDL_Test>
</soapenv:Body>
</soapenv:Envelope>
我期待着與2號的響應,但我得到這個代替:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<n:wSDL_TestResponse xmlns:n="http://www.sas.com/xml/namespace/biwebservices">
<n:wSDL_TestResult>
<n:Streams>
<n:_WEBOUT contentType="text/html;charset=windows-1252">
<n:Value>Mgo=</n:Value>
</n:_WEBOUT>
</n:Streams>
</n:wSDL_TestResult>
</n:wSDL_TestResponse>
</soapenv:Body>
</soapenv:Envelope>
值「氧化鎂=」又還給無論任何兩個數的添加。如果我調用從SAS EG或從中間層Web存儲過程應用程序轉換爲Web服務的存儲過程,我會得到所需總和的正確響應。
這是我的第一個webservice,我用它作爲其他東西的POC。我覺得它必須是非常簡單的東西,但我不確定它是什麼。任何幫助表示讚賞!
問候, 瓦西里
謝謝,現在你說,它是如此明顯。我不知道爲什麼當我用不同的參數測試它時,我得到了相同的結果。 謝謝! – 2014-10-12 11:57:40
檢查以確保您未在代碼中設置宏變量。我知道過去犯了這個錯誤! – DomPazz 2014-10-13 15:01:13
我在存儲過程中註冊了兩個輸入。 _webout是一個自動變量,所以我沒問題。謝謝。 – 2014-10-14 06:10:58