Beispiel für statische WSDL-Skript-Includes

  • Freigeben Version: Australia
  • Aktualisiert 12. März 2026
  • 2 Minuten Lesedauer
  • In diesem Beispiel wird das Skript „FakeStockValue“ veranschaulicht, das einen Großteil des statischen WSDL-Verhaltens implementiert.

    var FakeStockValue = Class.create();
     
    FakeStockValue.prototype = {
      initialize : function(requestXML) {
        //Use some backend XML utilities...you could use string tools if you wish
        this.xmlutil = Packages.com.glide.util.XMLUtil;
        //converting the string to an XML Document
        this.fSoapDoc = new XMLDocument(requestXML);
      },
     
      process : function() {
        var soapBody = this.fSoapDoc.getNode("/Envelope/Body");
        //Our WSDL was formatted to have the only first child element be the function
        var funcNode = this.xmlutil.getFirstChildElement(soapBody);
        var nodeName = this.xmlutil.getNodeNameNS(funcNode);
     
        //If the function for this SOAP request is TradePriceRequest, perform the necessary actions
        if (nodeName == "TradePriceRequest") {
          return this.fakeOutTradePriceRequest(funcNode);
        }
     
        //Couldn't find any supported functions in this SOAP request
        return this.generateSoapFault("un-supported API call: " + nodeName);
      },
     
      fakeOutTradePriceRequest : function (funcNode) {
        //Create the beginnings of our XML response
        var r = new XMLDocument("<GetLastTradePriceOutput xmlns='https://www.service-now.com/vws/FakeStockValue'/>");
     
        //Do the necessary actions here...we're going to get the USER ID of the user
        //used to make this SOAP call.  Then we will return the 
        //stock symbol they were asking about
        var usersysid = gs.getUserID();
        var now_GR = new GlideRecord("sys_user");
        gr.get(usersysid);
        var username = gr.user_name;
        var quoteSymbol = this.xmlutil.getText(funcNode);
        //Create a "message" element to store our response message
        r.createElement("message", username + ", You were looking for a quote on "+quoteSymbol);
        return r.getDocumentElement();
      },
     
     
      generateSoapFault : function (str) {
         var f = "<SOAP-ENV:Fault>" +
                   "<faultcode xsi:type='xsd:string'>SOAP-ENV:FakeStockValue</faultcode>" +
                   "<faultstring xsi:type='xsd:string'>" + str + 
                   "</faultstring>" +
                 "</SOAP-ENV:Fault>"
         var s = new XMLDocument(f);
         return s.getDocumentElement();
      }
    }
    

    Funktion initialisieren

    Die Initialisierungsfunktion verwendet die XML-Anforderungszeichenfolge und konvertiert sie in ein XML-Dokumentobjekt, das Sie mithilfe von Bibliotheken navigieren und bearbeiten können. Alternativ können Sie die XML-Anforderung als Zeichenfolge belassen und sie mit regulären Ausdrücken navigieren.

    Prozessfunktion

    Die Prozessfunktion wird vom geskripteten Webservice aufgerufen. Diese Funktion greift das erste untergeordnete Element in der XML nach dem Textkörper-Element ab. Die WSDL verwendet dieses untergeordnete Element, um zu bestimmen, welche Funktion verwendet werden soll. In dieser WSDL gibt es nur eine mögliche Funktion, die meisten WSDLs bieten jedoch viele Funktionen. Wenn mehr Funktionen verfügbar wären, gäbe es mehr „wenn“-Anweisungen, die das erste untergeordnete Element für die verschiedenen Funktionsnamen getestet haben.

    FakeOutTradePriceRequest-Funktion

    Die Funktion fakeOutTradePriceRequest ist die Implementierung der einzigen verfügbaren Funktion in der WSDL. Diese Funktion sucht nach dem Anwender, als dem die SOAP-Anforderung authentifiziert wurde, und ruft ab Anwendername Gibt sie dann an den SOAP-Client zurück. Die Funktion fakeOutTradePriceRequest könnte erweitert werden, um nützliche Aktivitäten auszuführen, z. B. nach einem Aktiensymbol suchen und den zuletzt gehandelten Preis zurückgeben.

    GenerateSoapFault-Funktion

    Die Funktion generateSoapFault gibt einen SOAP-Fehler zurück, der bei Problemen aufgerufen werden kann.