XMLStreamingBuilder – Umfang
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.
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 .
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:
- XMLStreamingBuilder() : Instanziiert das XMLStreamingBuilder-Objekt.
- 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.
- ExpresAt() : Optional. Legt einen Zeitpunkt fest, zu dem der Anhang abläuft. „Falsch“ ist der Standard. Muss auch anrufen Mit Anhang() Methode.
- 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:
- StartDocument() : Erstellt das übergeordnete Element der obersten Ebene im XML-Dokument.
- Methoden zum Generieren untergeordneter Elemente im XML-Dokument, z. B. WriteTextElement() , StartElement() , Und WriteArray() .
- Methoden zum Generieren von Attributen für ein Element, z. B. WriteAttribute() , WriteNamespace() , Und WriteDtd() .
- EndElement() : Schließt ein XML-Element.
- EndDokument : Schließt das übergeordnete Element der obersten Ebene.
- GetXMLString() Oder GetAttachmentId() : Gibt die von Ihnen erstellte XML-Zeichenfolge oder Anhang-ID zurück.
- 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.
| 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.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| 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.
| Name | Typ | Beschreibung |
|---|---|---|
| expiresAt | GlideDateTime | Objekt, das festgelegt wird, wenn der Anhang abläuft.
|
| 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.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| 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>