Потоковая передача XML-данных с использованием веб-службы SAS
Мне нужна ваша помощь о том, как создать хранимый процесс для вывода потока данных (XML) и развернуть его как веб-сервис? Хранимый процесс SAS должен выводить набор данных в виде XML. Но когда я тестировал его на мыльном интерфейсе как веб-сервис, в xml не отображалось никакого значения. Пожалуйста, смотрите код ниже и вывод из SOAP UI. Я также прикрепил скриншоты свойств хранимого процесса.enter code here
КОД:
data chartxml; input price sell; datalines; 20 250 30 180 40 130 50 250 60 250 ; run; libname _webout XML XMLmeta=schemadata; data _webout.chartxml; set chartxml; run;
SOAP OUTPUT
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" <soapenv:Body <n:chartResponse xmlns:n="http://tempuri.org/Chart"> <n:chartResult/ </n:chartResponse> </soapenv:Body> </soapenv:Envelope>
Спасибо Кришна
1 ответ
Я не смог запустить ваш пример, но могу посоветовать, что вы перепутали (автоматически доступно) _webout
fileref, используя его как (определенный вручную) libref.
Если вы хотите транслировать веб-вывод, вы можете сделать это, используя его в file
утверждение, следующее:
data _null_;
file _webout;
put '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"' @;
put '<soapenv:Body <n:chartResponse xmlns:n="http://tempuri.org/Chart">' @;
put '<n:chartResult/ </n:chartResponse> </soapenv:Body> </soapenv:Envelope>';
run;
Для "развертывания в качестве веб-службы" ваш код SAS должен быть зарегистрирован как сохраненный процесс (с помощью SAS Management Console) с выбранным потоковым выводом. Затем вы можете выполнить STP, используя URL-адрес с расположением метаданных STP в параметре _PROGRAM, например:
http://yourmachine:8080/SASStoredProcess/do?_PROGRAM=/MetaLoc/STP_Name