我有一个注册的存储过程,它会加两个数字。
%let sum = %SYSEVALF(&NUM1 + &NUM2);
data _null_;
file _webout;
PUT "&SUM";
RUN;
存储过程注册为传递流,两个输入变量都注册为数字,_webout输出参数注册为字符串(此参数的注册不会改变任何内容)。
没有其他内容。
我正在使用SOAPUI基于自动生成的WSDL文件创建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>
无论添加任何两个数字,都会返回值“Mgo =”。如果我调用从SAS EG或中间层Web存储进程应用程序转换为Web服务的存储进程,我会获得具有所需总和的正确响应。
这是我的第一个网络服务,我将其用作其他东西的POC。我觉得它必须非常简单,但我不确定它是什么。任何帮助表示赞赏!
此致 Vasilij