2013-08-12 2 views
0

Я пытаюсь использовать скрипты Google Apps для вызова вызова службы SOAP, и я пытался возиться с несколькими способами получения ответа; однако я все время получаю сообщение об ошибке. Я по умолчанию пытался отправить точную копию сообщения, хранящегося в моей электронной таблице, которое, как мне известно, работает через другую службу ... до сих пор не повезло. Вот Apps Script Code:Доступ к службам SOAP с помощью скрипта Google Apps

function getVesselSummaryXMLStringFromName() { 
    var wsdl = SoapService.wsdl("http://cgmix.uscg.mil/xml/PSIXData.asmx?WSDL"); 
    Logger.log(wsdl.getServiceNames()); 

    var uscgService = wsdl.getPSIXData(); 

    var sheet = SpreadsheetApp.getActiveSheet(); 

    //Get working SOAP message 
    var envelope = sheet.getRange("D1:D1").getValues(); 

    Logger.log(envelope); 

    var result = uscgService.getenvelope; 
    Logger.log(result); 
    } 

SOAP-сообщение Я посылаю, который работает через http://www.soapclient.com/soapclient является:

<?xml version="1.0" encoding="UTF-8" standalone="no"?><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://www.w3.org/2003/05/soap-envelope" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:tns="http://cgmix.uscg.mil" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" ><SOAP-ENV:Body><tns:getVesselSummaryXMLString xmlns:tns="http://cgmix.uscg.mil"><tns:VesselID></tns:VesselID><tns:VesselID></tns:VesselID><tns:VesselName>Atlantic Salvor</tns:VesselName><tns:VesselName></tns:VesselName><tns:CallSign></tns:CallSign><tns:CallSign></tns:CallSign><tns:VIN></tns:VIN><tns:VIN></tns:VIN><tns:HullNum></tns:HullNum><tns:HullNum></tns:HullNum><tns:Flag></tns:Flag><tns:Flag></tns:Flag><tns:Service></tns:Service><tns:Service></tns:Service><tns:BuildYear></tns:BuildYear><tns:BuildYear></tns:BuildYear></tns:getVesselSummaryXMLString></SOAP-ENV:Body></SOAP-ENV:Envelope> 
+0

Первое замечание, что [Soap Services] (https://developers.google.com/apps-script/reference/soap/) является признанной функцией [устарело] (https://developers.google.com/ приложения-скрипт/закат). Какая ошибка возникает? – wchiquito

+0

Спасибо за ответ, по достоинству оцените, что он находится на графике заката. Это не возвращает ошибку (хотя метод из учебника Google был). Результат регистрируется как неопределенный. Я отправляю тот же конверт через другую услугу, и я получаю желаемый ответ. – HoosierTIM

ответ

0

Следующий код возвращает ответ, так что, может быть, вы можете помочь.

... 
var url = 'http://cgmix.uscg.mil/xml/PSIXData.asmx?WSDL'; 
var wsdl = SoapService.wsdl(url); 
var servicePSIXData = wsdl.getPSIXData(); 
var params = Xml.element('getVesselSummaryXMLString', [ 
    Xml.attribute('xmlns', 'http://cgmix.uscg.mil'), 
    Xml.element('VesselID', ['']), 
    Xml.element('VesselName', ['Atlantic Salvor']), 
    Xml.element('CallSign', ['']), 
    Xml.element('VIN', ['']), 
    Xml.element('HullNum', ['']), 
    Xml.element('Flag', ['']), 
    Xml.element('Service', ['']), 
    Xml.element('BuildYear', ['']) 
]); 
var result = servicePSIXData.getVesselSummaryXMLString(params); 
Logger.log(result.toXmlString()); 
... 

UPDATE

Оба Xml Services и Soap Services считаются deprecated.

+0

Спасибо, Уильям. Работает на меня. Теперь я могу вернуться и посмотреть, чего не хватает. – HoosierTIM

Смежные вопросы