XMLStreamingBuilder : délimité
Crée un objet de générateur pour construire une charge utile XML volumineuse à utiliser dans une demande REST ou SOAP pour envoyer des données en bloc à une API tierce. Vous pouvez également créer la charge utile en tant que chaîne XML pour une option autre que de diffusion.
d’espace de noms sn_ih. Par exemple, vous pouvez utiliser cette API pour créer une charge utile XML à l’étape Studio de workflow Script et transmettre la valeur renvoyée à l’étape REST pour envoyer la demande à un service tiers. Pour plus d’informations, consultez Studio de workflow l’étape Script.
Ordre d’appel d’API
Générez des charges utiles XML en instanciant d’abord un objet de générateur avec XMLStreamingBuilder , puis en appelant les méthodes dans la classe XMLStreamingAPI :
- 1. XMLStreamingBuilder : crée un objet de générateur
- Utilisez ces méthodes dans l’ordre suivant pour créer un objet de générateur :
- XMLStreamingBuilder() : instancie l’objet XMLStreamingBuilder.
- withAttachment() : Facultatif. Crée un document XML en tant que pièce jointe et le stocke dans la table Pièces jointes de diffusion en continu [streaming_attachment]. Si vous n’appelez pas cette méthode, l’API construit la charge utile sous forme de chaîne XML.
- expiresAt() : Facultatif. Définit une date d’expiration de la pièce jointe. False est la valeur par défaut. Doit également appeler la méthode withAttachment( ).
- build() : Renvoie un objet XMLStreamingAPI.
- 2. XMLStreamingAPI : génère la charge utile XML
- Utilisez ces méthodes dans l’ordre suivant pour créer la charge utile XML :
- startDocument() : Crée l’élément parent de niveau supérieur dans le document XML.
- Méthodes permettant de générer des éléments enfants dans le document XML, telles que writeTextElement(),startElement() et writeArray().
- Méthodes permettant de générer des attributs pour un élément, tels que writeAttribute(),writeNamespace() et writeDtd().
- endElement() : Ferme un élément XML.
- endDocument : ferme l’élément parent de niveau supérieur.
- getXMLString() ou getAttachmentId() : renvoie la chaîne XML ou l’ID de pièce jointe que vous avez créé.
- close() : Ferme l’objet XMLStreamingAPI.
Limites de taille
Les charges utiles générées via cette API ne peuvent pas dépasser ces limites de taille :
- Pièces jointes : 200 Mo
- Chaînes : 5 Mo
L’exemple suivant montre comment créer un document XML et le stocker dans la table Pièces jointes de diffusion en continu [streaming_attachment] avec une date d’expiration définie.
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();
}Cet exemple montre également comment utiliser l’API à l’étape Script et créer la charge utile en tant que chaîne XML. Vous pouvez utiliser cette option pour créer des charges utiles de moins de 5 Mo.
(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);Sortie :
<?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()
Instancie l’objet XMLStreamingBuilder.
| Nom | Type | Description |
|---|---|---|
| Néant |
Cet exemple montre comment instancier un objet de générateur .
var builder = new sn_ih.XMLStreamingBuilder()
XMLStreamingBuilder : build()
Renvoie un objet XMLStreamingAPI.
| Nom | Type | Description |
|---|---|---|
| Néant |
| Type | Description |
|---|---|
| XMLStreamingAPI | Objet XML de diffusion en continu pour la construction de la charge utile. |
L’exemple suivant montre comment créer un document XML et le stocker dans la table Pièces jointes de diffusion en continu [streaming_attachment] avec une date d’expiration définie.
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 : expiresAt(Objet expiresAt)
Définit une date d’expiration de la pièce jointe. Doit également appeler la méthode withAttachment( ).
| Nom | Type | Description |
|---|---|---|
| expiresAt | GlideDateTime | Objet défini lorsque la pièce jointe expire.
|
| Type | Description |
|---|---|
| XMLStreamingBuilder | Objet de générateur utilisé pour lancer la charge utile XML. |
L’exemple suivant montre comment créer un document XML et le stocker dans la table Pièces jointes de diffusion en continu [streaming_attachment] avec une date d’expiration définie.
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()
Crée un document XML en tant que pièce jointe et le stocke dans la table Pièces jointes de diffusion en continu [streaming_attachment]. Si vous n’appelez pas cette méthode, l’API crée le document XML sous forme de chaîne.
| Nom | Type | Description |
|---|---|---|
| Néant |
| Type | Description |
|---|---|
| XMLStreamingBuilder | Objet de générateur utilisé pour lancer la charge utile XML. |
L’exemple suivant montre comment créer un document XML et le stocker dans la table Pièces jointes de diffusion en continu [streaming_attachment] avec une date d’expiration définie.
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();
}Cet exemple montre comment créer la charge utile XML et l’enregistrer en tant que chaîne.
(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);Sortie :
<?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>