---
sourceDocument: Referência de API do Xanadu
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/pt-BR/xanadu/api-reference

 Release :

    - xanadu

ft:locale :

    - pt-BR

ft:publication_title :

    - Referência de API do Xanadu

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# XMLStreamingBuilder - com escopo

# XMLStreamingBuilder - com escopo {#ariaid-title1}

* Versão de lançamento: Xanadu
* 
* Atualizado 1 de ago. de 2024
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 6 min. de leitura

Cria um objeto de construtor para criar uma grande carga XML para uso em uma solicitação REST ou SOAP para enviar dados em massa para uma API de terceiros. Você também pode criar a carga como uma cadeia de caracteres XML para uma opção sem fluxo.
Use esses métodos em uma Workflow Studio Etapa de script com o identificador de namespace `sn_ih`. Por exemplo, você pode usar esta API para criar uma carga XML na etapa de script Workflow Studio e passar o valor retornado para a etapa REST para enviar a solicitação a um serviço de terceiros. Para obter mais informações, consulte a Workflow Studio [etapa Script](https://www.servicenow.com/docs/access?context=javascript-step-action-designer&version=xanadu&pubname=xanadu-build-workflows&ft:locale=en-US).  
Nota:  
Você só pode usar esta API no ambiente Workflow Studio.

## Ordem de chamada de API {#XMLStreamingBuilderScopedAPI__section_j2q_1ll_jlb}

Gere cargas XML primeiro instanciando um objeto de construtor com XMLStreamingBuilder e, em seguida, chamando os métodos na classe XMLStreamingAPI :  

1. XMLStreamingBuilder: cria um objeto de construtor
:   Use esses métodos na seguinte ordem para criar um objeto de construtor:  
    1. XMLStreamingBuilder(): Instancia o objeto XMLStreamingBuilder.
    2. withAttachment(): opcional. Cria um documento XML como um anexo e o armazena na tabela Anexos de streaming \[streaming_attachment\]. Se você não chamar este método, a API criará a carga como uma cadeia de caracteres XML.
    3. expiresAt(): opcional. Define uma hora em que o anexo expira. Falso é o padrão. Também deve chamar o método withAttachment().
    4. build(): retorna um objeto XMLStreamingAPI.
    {#XMLStreamingBuilderScopedAPI__ol_gvr_k2k_jlb}

2. XMLStreamingAPI: cria a carga XML
:   Use esses métodos na seguinte ordem para criar a carga XML:  
    1. startDocument(): cria o elemento primário de nível superior no documento XML.
    2. Métodos para gerar elementos secundários no documento XML, como writeTextElement(), startElement()e writeArray().
    3. Métodos para gerar atributos para um elemento, como writeAttribute(), writeNamespace()e writeDtd().
    4. endElement(): fecha um elemento XML.
    5. endDocument: Encerra o elemento primário de nível superior.
    6. getXMLString() ou getAttachmentId(): retorna a cadeia de caracteres XML ou o ID de anexo que você criou.
    7. close(): fecha o objeto XMLStreamingAPI.
    {#XMLStreamingBuilderScopedAPI__ol_hvr_k2k_jlb}

## Limites de tamanho {#XMLStreamingBuilderScopedAPI__section_vrl_jvs_1mb}

As cargas geradas por meio desta API não podem exceder estes limites de tamanho:  
* Anexos: 200 MB
* Cadeias de caracteres: 5 MB
{#XMLStreamingBuilderScopedAPI__ul_llq_msw_3lb}  
O exemplo a seguir mostra como criar um documento XML e armazená-lo na tabela Anexos de streaming \[streaming_attachment\] com uma data de expiração definida.  


    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();
    }

Como alternativa, este exemplo mostra como usar a API na etapa Script e criar a carga como uma cadeia de caracteres XML. Você pode usar esta opção para criar cargas com menos de 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);

Saída:  

    <?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() {#ariaid-title2}

Instancia o objeto XMLStreamingBuilder.
{#XSB-XMLStreamingBuilder__table_ogh_vhz_clb__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| Nenhum(a) |   |   |
[Tabela 1. Parâmetros]

{#XSB-XMLStreamingBuilder__table_ogh_vhz_clb}  
Este exemplo mostra como instanciar um objeto de `construtor`.

    var builder = new sn_ih.XMLStreamingBuilder()

## XMLStreamingBuilder - build() {#ariaid-title3}

Retorna um objeto XMLStreamingAPI.
{#XSB-build__table_cr5_yms_jlb__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| Nenhum |   |   |
[Tabela 2. Parâmetros]

{#XSB-build__table_cr5_yms_jlb} {#XSB-build__table_dr5_yms_jlb__entry__2}

| Tipo | Descrição |
|-|-|
| XMLStreamingAPI | Objeto XML de fluxo para construir a carga útil. |
[Tabela 3. Retorna]

{#XSB-build__table_dr5_yms_jlb}  
O exemplo a seguir mostra como criar um documento XML e armazená-lo na tabela Anexos de streaming \[streaming_attachment\] com uma data de expiração definida.


    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(Object expiresAt) {#ariaid-title4}

Define uma hora em que o anexo expira. Também deve chamar o método withAttachment().
{#XSB-expiresAt_O__table_kc4_25s_jlb__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| expira em | [GlideDateTime](https://servicenow-prod.fluidtopics.net/rM63LHg6OGy~hBdWP_QdHA#c_GlideDateTimeScoped "A classe GlideDateTime com escopo fornece métodos para executar operações em objetos GlideDateTime.") | Objeto que é definido quando o anexo expira. * Valor mínimo: 7.200 segundos, ou duas horas, a partir da hora em que o anexo é criado. Este será o valor padrão se você não chamar o método expiresAt(). * Valor máximo: 172.800 segundos, ou 48 horas, a partir da hora em que o anexo é criado. {#XSB-expiresAt_O__ul_xsc_trx_3lb} |
[Tabela 4. Parâmetros]

{#XSB-expiresAt_O__table_kc4_25s_jlb} {#XSB-expiresAt_O__table_lc4_25s_jlb__entry__2}

| Tipo | Descrição |
|-|-|
| XMLStreamingBuilder | Objeto de construtor usado para iniciar a carga XML. |
[Tabela 5. Retorna]

{#XSB-expiresAt_O__table_lc4_25s_jlb}  
O exemplo a seguir mostra como criar um documento XML e armazená-lo na tabela Anexos de streaming \[streaming_attachment\] com uma data de expiração definida.


    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() {#ariaid-title5}

Cria um documento XML como um anexo e o armazena na tabela Anexos de streaming \[streaming_attachment\]. Se você não chamar este método, a API criará o documento XML como uma cadeia de caracteres.
{#XSB-withAttachment__table_oqn_zps_jlb__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| Nenhum |   |   |
[Tabela 6. Parâmetros]

{#XSB-withAttachment__table_oqn_zps_jlb} {#XSB-withAttachment__table_pqn_zps_jlb__entry__2}

| Tipo | Descrição |
|-|-|
| XMLStreamingBuilder | Objeto de construtor usado para iniciar a carga XML. |
[Tabela 7. Retorna]

{#XSB-withAttachment__table_pqn_zps_jlb}  
O exemplo a seguir mostra como criar um documento XML e armazená-lo na tabela Anexos de streaming \[streaming_attachment\] com uma data de expiração definida.  


    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();
    }

Este exemplo mostra como criar a carga XML e salvá-la como uma cadeia de caracteres.  

    (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);

Saída:  

    <?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>


