XMLStreamingBuilder – Umfang

  • Freigeben Version: Zurich
  • Aktualisiert 31. Juli 2025
  • 6 Minuten Lesedauer
  • Erstellt ein Builder-Objekt zum Erstellen einer großen XML-Nutzlast zur Verwendung in einer REST- oder SOAP-Anforderung zum Senden von Massendaten an eine Drittanbieter-API. Sie können die Nutzlast auch als XML-Zeichenfolge für eine nicht-Streaming-Option erstellen.

    Verwenden Sie diese Methoden in einem Workflow-Studio Skriptschritt mit sn_ih Namespace-Bezeichner. Sie können diese API beispielsweise verwenden, um eine XML-Nutzlast in zu erstellen Workflow-Studio Skriptschritt und übergeben Sie den zurückgegebenen Wert an den REST-Schritt, um die Anforderung an einen Drittparteiservice zu senden. Weitere Informationen finden Sie unter Workflow-Studio Skriptschritt .
    Hinweis:
    Sie können diese API nur innerhalb von verwenden Workflow-Studio Umgebung.

    API-Aufrufreihenfolge

    Generieren Sie XML-Nutzlasten, indem Sie zuerst ein Builder-Objekt mit instanziieren XMLStreamingBuilder Und ruft dann die Methoden in auf XMLStreamingAPI Klasse:

    1. XMLStreamingBuilder : Erstellt ein Generatorobjekt
    Verwenden Sie diese Methode in der folgenden Reihenfolge, um ein Generatorobjekt zu erstellen:
    1. XMLStreamingBuilder() : Instanziiert das XMLStreamingBuilder-Objekt.
    2. Mit Anhang() : Optional. Erstellt ein XML-Dokument als Anhang und speichert es in der Tabelle „Streaming-Anhänge“ [Streaming_attachment]. Wenn Sie diese Methode nicht aufrufen, erstellt die API die Nutzlast als XML-Zeichenfolge.
    3. ExpresAt() : Optional. Legt einen Zeitpunkt fest, zu dem der Anhang abläuft. „Falsch“ ist der Standard. Muss auch anrufen Mit Anhang() Methode.
    4. Build() : Gibt ein XMLStreamingAPI-Objekt zurück.
    2. XMLStreamingAPI : Erstellt die XML-Nutzlast
    Verwenden Sie diese Methoden in der folgenden Reihenfolge, um die XML-Nutzlast zu erstellen:
    1. StartDocument() : Erstellt das übergeordnete Element der obersten Ebene im XML-Dokument.
    2. Methoden zum Generieren untergeordneter Elemente im XML-Dokument, z. B. WriteTextElement() , StartElement() , Und WriteArray() .
    3. Methoden zum Generieren von Attributen für ein Element, z. B. WriteAttribute() , WriteNamespace() , Und WriteDtd() .
    4. EndElement() : Schließt ein XML-Element.
    5. EndDokument : Schließt das übergeordnete Element der obersten Ebene.
    6. GetXMLString() Oder GetAttachmentId() : Gibt die von Ihnen erstellte XML-Zeichenfolge oder Anhang-ID zurück.
    7. Schließen () : Schließt das XMLStreamingAPI-Objekt.

    Größenbeschränkungen

    Über diese API generierte Nutzlasten dürfen diese Größenbeschränkungen nicht überschreiten:

    • Anhänge: 200 MB
    • Zeichenfolgen: 5 MB

    Das folgende Beispiel zeigt, wie ein XML-Dokument erstellt und in der Tabelle „Streaming-Anhänge“ [Streaming_attachment] mit einem definierten Ablaufdatum gespeichert wird.

    
    try {
      var ttl = new GlideDateTime("2011-01-01 12:00:00");
      var builder = new sn_ih.XMLStreamingBuilder()
        .withAttachment() // Creates the XML document in streaming mode within an attachment.
        .expiresAt(ttl) // Sets an expiration date for the attachment.
        .build(); // Creates the XMLStreamingAPI object.
    
      builder.startDocument("Employee") // Begins generating the XML document.
        .writeTextElement("firstName","John") // Writes a "firstName" element and value.
        .writeTextElement("lastName","Smith")
        .writeTextElement("age","25")
        .startElement("address") // Adds an "address" parent element.
          .writeTextElement("streetAddress", "21 2nd Street") // Writes a child element and value.
          .writeTextElement("city", "Santa Clara")
          .writeTextElement("state", "CA")
          .writeTextElement("postalCode", "11111")
        .endElement() // Adds a closing tag for the "address" element.
        .startElement("phoneNumber")
          .writeTextElement("type","home")
          .writeTextElement("number","212 555-1234")
          .writeTextElement("type","fax")
          .writeTextElement("number","646 555-4567")
        .endElement()
      .endDocument() // Stops generating the XML document.
          
      gs.log(builder.getAttachmentId()); // Returns the sys_id of the attachment.
    } catch (err) {
      gs.log(err);
    } finally {
      builder.close();
    }

    Alternativ zeigt dieses Beispiel, wie Sie die API im Skriptschritt verwenden und die Nutzlast als XML-Zeichenfolge erstellen. Sie können diese Option verwenden, um Nutzlasten unter zu erstellen 5 MB .

    (function execute(inputs, outputs) {
    
      var builder = new sn_ih.XMLStreamingBuilder().build();
      
      builder.startDocument("Employee")
        .enablePrettyPrint()
        .writeTextElement("firstName","John")
        .writeTextElement("lastName","Smith")
        .writeTextElement("age","25")
        .startElement("address")
          .writeTextElement("streetAddress", "21 2nd Street")
          .writeTextElement("city", "Santa Clara")
          .writeTextElement("state", "CA")
          .writeTextElement("postalCode", "11111")
        .endElement()
        .startElement("phoneNumber")
          .writeTextElement("type","home")
          .writeTextElement("number","212 555-1234")
          .writeTextElement("type","fax")
          .writeTextElement("number","646 555-4567")
        .endElement()
      .endDocument()
    
      outputs.payload = builder.getXMLString();
      
    })(inputs, outputs);

    Ausgabe:

    <?xml version="1.0" encoding="UTF-8"?>
    <firstName>John</firstName>
    <lastName>Smith</lastName>
    <age>25</age>
    <address>
      <streetAddress>21 2nd Street</streetAddress>
      <city>Santa Clara</city>
      <state>CA</state>
      <postalCode>11111</postalCode>
    </address>
    <phoneNumber>
      <type>home</type>
      <number>212 555-1234</number>
      <type>fax</type>
      <number>646 555-4567</number>
    </phoneNumber>

    XMLStreamingBuilder: XMLStreamingBuilder()

    Instanziiert das XMLStreamingBuilder-Objekt.

    Tabelle : 1. Parameter
    Name Typ Beschreibung
    Keine

    Dieses Beispiel zeigt, wie ein instanziiert wird generator Objekt.

    var builder = new sn_ih.XMLStreamingBuilder()

    XMLStreamingBuilder – build()

    Gibt ein XMLStreamingAPI-Objekt zurück.

    Tabelle : 2. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 3. Ergebnisse
    Typ Beschreibung
    XMLStreamingAPI Streaming-XML-Objekt zum Erstellen der Nutzlast.

    Das folgende Beispiel zeigt, wie ein XML-Dokument erstellt und in der Tabelle „Streaming-Anhänge“ [Streaming_attachment] mit einem definierten Ablaufdatum gespeichert wird.

    
    try {
      var ttl = new GlideDateTime("2011-01-01 12:00:00");
      var builder = new sn_ih.XMLStreamingBuilder()
        .withAttachment() // Creates the XML document in streaming mode within an attachment.
        .expiresAt(ttl) // Sets an expiration date for the attachment.
        .build(); // Creates the XMLStreamingAPI object.
    
      builder.startDocument("Employee") // Begins generating the XML document.
        .writeTextElement("firstName","John") // Writes a "firstName" element and value.
        .writeTextElement("lastName","Smith")
        .writeTextElement("age","25")
        .startElement("address") // Adds an "address" parent element.
          .writeTextElement("streetAddress", "21 2nd Street") // Writes a child element and value.
          .writeTextElement("city", "Santa Clara")
          .writeTextElement("state", "CA")
          .writeTextElement("postalCode", "11111")
        .endElement() // Adds a closing tag for the "address" element.
        .startElement("phoneNumber")
          .writeTextElement("type","home")
          .writeTextElement("number","212 555-1234")
          .writeTextElement("type","fax")
          .writeTextElement("number","646 555-4567")
        .endElement()
      .endDocument() // Stops generating the XML document.
          
      gs.log(builder.getAttachmentId()); // Returns the sys_id of the attachment.
    } catch (err) {
      gs.log(err);
    } finally {
      builder.close();
    }

    XMLStreamingBuilder – ExpresAt(Object ExpresAt)

    Legt einen Zeitpunkt fest, zu dem der Anhang abläuft. Muss auch anrufen Mit Anhang() Methode.

    Tabelle : 4. Parameter
    Name Typ Beschreibung
    expiresAt GlideDateTime Objekt, das festgelegt wird, wenn der Anhang abläuft.
    • Mindestwert: 7200 Sekunden oder zwei Stunden ab dem Zeitpunkt der Erstellung des Anhangs. Dies ist der Standardwert, wenn Sie nicht aufrufen ExpresAt() Methode.
    • Höchstwert: 172800 Sekunden oder 48 Stunden ab dem Zeitpunkt der Erstellung des Anhangs.
    Tabelle : 5. Rückgaben
    Typ Beschreibung
    XMLStreamingBuilder Builder-Objekt, das zum Initiieren der XML-Nutzlast verwendet wird.

    Das folgende Beispiel zeigt, wie ein XML-Dokument erstellt und in der Tabelle „Streaming-Anhänge“ [Streaming_attachment] mit einem definierten Ablaufdatum gespeichert wird.

    
    try {
      var ttl = new GlideDateTime("2011-01-01 12:00:00");
      var builder = new sn_ih.XMLStreamingBuilder()
        .withAttachment() // Creates the XML document in streaming mode within an attachment.
        .expiresAt(ttl) // Sets an expiration date for the attachment.
        .build(); // Creates the XMLStreamingAPI object.
    
      builder.startDocument("Employee") // Begins generating the XML document.
        .writeTextElement("firstName","John") // Writes a "firstName" element and value.
        .writeTextElement("lastName","Smith")
        .writeTextElement("age","25")
        .startElement("address") // Adds an "address" parent element.
          .writeTextElement("streetAddress", "21 2nd Street") // Writes a child element and value.
          .writeTextElement("city", "Santa Clara")
          .writeTextElement("state", "CA")
          .writeTextElement("postalCode", "11111")
        .endElement() // Adds a closing tag for the "address" element.
        .startElement("phoneNumber")
          .writeTextElement("type","home")
          .writeTextElement("number","212 555-1234")
          .writeTextElement("type","fax")
          .writeTextElement("number","646 555-4567")
        .endElement()
      .endDocument() // Stops generating the XML document.
          
      gs.log(builder.getAttachmentId()); // Returns the sys_id of the attachment.
    } catch (err) {
      gs.log(err);
    } finally {
      builder.close();
    }

    XMLStreamingBuilder – withAttachment()

    Erstellt ein XML-Dokument als Anhang und speichert es in der Tabelle „Streaming-Anhänge“ [Streaming_attachment]. Wenn Sie diese Methode nicht aufrufen, erstellt die API das XML-Dokument als Zeichenfolge.

    Tabelle : 6. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 7. Ergebnisse
    Typ Beschreibung
    XMLStreamingBuilder Builder-Objekt, das zum Initiieren der XML-Nutzlast verwendet wird.

    Das folgende Beispiel zeigt, wie ein XML-Dokument erstellt und in der Tabelle „Streaming-Anhänge“ [Streaming_attachment] mit einem definierten Ablaufdatum gespeichert wird.

    
    try {
      var ttl = new GlideDateTime("2011-01-01 12:00:00");
      var builder = new sn_ih.XMLStreamingBuilder()
        .withAttachment() // Creates the XML document in streaming mode within an attachment.
        .expiresAt(ttl) // Sets an expiration date for the attachment.
        .build(); // Creates the XMLStreamingAPI object.
    
      builder.startDocument("Employee") // Begins generating the XML document.
        .writeTextElement("firstName","John") // Writes a "firstName" element and value.
        .writeTextElement("lastName","Smith")
        .writeTextElement("age","25")
        .startElement("address") // Adds an "address" parent element.
          .writeTextElement("streetAddress", "21 2nd Street") // Writes a child element and value.
          .writeTextElement("city", "Santa Clara")
          .writeTextElement("state", "CA")
          .writeTextElement("postalCode", "11111")
        .endElement() // Adds a closing tag for the "address" element.
        .startElement("phoneNumber")
          .writeTextElement("type","home")
          .writeTextElement("number","212 555-1234")
          .writeTextElement("type","fax")
          .writeTextElement("number","646 555-4567")
        .endElement()
      .endDocument() // Stops generating the XML document.
          
      gs.log(builder.getAttachmentId()); // Returns the sys_id of the attachment.
    } catch (err) {
      gs.log(err);
    } finally {
      builder.close();
    }

    Dieses Beispiel zeigt, wie die XML-Nutzlast erstellt und als Zeichenfolge gespeichert wird.

    (function execute(inputs, outputs) {
    
      var builder = new sn_ih.XMLStreamingBuilder().build();
      
      builder.startDocument("Employee")
        .enablePrettyPrint()
        .writeTextElement("firstName","John")
        .writeTextElement("lastName","Smith")
        .writeTextElement("age","25")
        .startElement("address")
          .writeTextElement("streetAddress", "21 2nd Street")
          .writeTextElement("city", "Santa Clara")
          .writeTextElement("state", "CA")
          .writeTextElement("postalCode", "11111")
        .endElement()
        .startElement("phoneNumber")
          .writeTextElement("type","home")
          .writeTextElement("number","212 555-1234")
          .writeTextElement("type","fax")
          .writeTextElement("number","646 555-4567")
        .endElement()
      .endDocument()
    
      outputs.payload = builder.getXMLString();
      
    })(inputs, outputs);

    Ausgabe:

    <?xml version="1.0" encoding="UTF-8"?>
    <firstName>John</firstName>
    <lastName>Smith</lastName>
    <age>25</age>
    <address>
      <streetAddress>21 2nd Street</streetAddress>
      <city>Santa Clara</city>
      <state>CA</state>
      <postalCode>11111</postalCode>
    </address>
    <phoneNumber>
      <type>home</type>
      <number>212 555-1234</number>
      <type>fax</type>
      <number>646 555-4567</number>
    </phoneNumber>