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


---

# Fluxo - com escopo, global

# Fluxo - com escopo, global {#ariaid-title1}

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

A API Stream fornece métodos para interagir com um fluxo de itens, como registros. Por exemplo, você pode usar o método forEach() para atualizar o estado de cada registro em um fluxo retornado pela API GlideQuery.

Você pode obter um objeto de fluxo destas maneiras:  
* Instanciar um objeto de fluxo usando o construtor.
* Retornar um objeto de fluxo do método GlideQuery.select(). Para obter mais informações, consulte [GlideQuery](https://servicenow-prod.fluidtopics.net/weOjD4QxtQmCMbvdegl_Dw#GlideQueryGlobalAPI "A inclusão de script GlideQuery é uma alternativa à API GlideRecord para executar operações CRUD em dados de registro de scripts do lado do servidor.").
{#StreamGlobalAPI__ul_d3q_3dl_4mb}

Este método é estático e não requer uma instância da classe: [fromArray()](https://servicenow-prod.fluidtopics.net/fzIJduEXjC~UEIBxIRy~9g#Stream-fromArray_O "Retorna um objeto de fluxo que contém os valores da matriz fornecida.").

Use a API Stream em scripts do lado do servidor com escopo ou globais. Esta API requer o plug-in GlideQuery \[com.sn_glidequery\].

## Implementação {#StreamGlobalAPI__section_wqk_wwv_wmb}

Esta API pode funcionar com as APIs [GlideQuery](https://servicenow-prod.fluidtopics.net/weOjD4QxtQmCMbvdegl_Dw#GlideQueryGlobalAPI "A inclusão de script GlideQuery é uma alternativa à API GlideRecord para executar operações CRUD em dados de registro de scripts do lado do servidor.") e [opcionais](https://servicenow-prod.fluidtopics.net/7SFmnBHO5B_AA3dUMbI7mA#OptionalGlobalAPI "A API opcional interage com um único registro retornado pelas APIs GlideQuery, Streamou GlideRecord, mesmo quando ele não existe. Escreva scripts com menor probabilidade de resultar em erro ao lidar com resultados de consulta nulos ou indefinidos.") em um padrão de construtor em que o método chama a cadeia, cada método se baseia no resultado retornado do método anterior. Use métodos para definir os atributos da consulta. Os métodos não são executados até que você chame um método de terminal, um método que retorna um resultado de consulta, permitindo que você defina os requisitos da consulta antes de executá-la.

Se a consulta retornar um único registro, o sistema agrupará o resultado em um objeto opcional. Se a consulta retornar um fluxo de registros, o sistema agrupará o resultado em um objeto Stream. Esses objetos permitem gerenciar o resultado usando um conjunto de métodos em cada API.

Por exemplo, este script executa uma consulta na Tabela de tarefas, agrupa os registros por prioridade e retorna cada prioridade que tem um total de reatribuições maior que quatro.{#StreamGlobalAPI__code-ex-desc}  

    var query = new global.GlideQuery('task')
        .where('active', true) //Returns new GlideQuery object with a "where" clause.
        .groupBy('priority') //Returns new GlideQuery object with a "group by" clause.
        .aggregate('sum', 'reassignment_count') //Returns new GlideQuery object with a "sum(reassignment_count)" clause.
        .having('sum', 'reassignment_count', '>', 4) //Returns new GlideQuery object with a "having reassignment_count > 4" clause.
        .select() //Returns a stream of records wrapped in a Stream object.  
        .forEach(function (priority){ //Terminal method in the Stream class that executes the query and returns the result. 
          gs.info("Priority " + priority.group.priority + ": " + priority.sum.reassignment_count + " reassignments");
        });

Saída:

    Priority 1: 11 reassignments
    Priority 3: 6 reassignments
    Priority 5: 5 reassignments

## Métodos de terminal {#StreamGlobalAPI__section_ldm_qjx_wmb}

Por motivos de desempenho, uma consulta só busca dados quando você chama um método de terminal. Estes são os métodos de terminal da classe Stream :

* [cada ()](https://servicenow-prod.fluidtopics.net/fzIJduEXjC~UEIBxIRy~9g#Stream-every_F "Aplica uma função de predicado a cada item no objeto Stream. Se o predicado retornar verdadeiro para cada item no fluxo, o método retornará verdadeiro. Se o predicado retornar falso para qualquer item no fluxo, o método retornará falso.")
* [localizar ()](https://servicenow-prod.fluidtopics.net/fzIJduEXjC~UEIBxIRy~9g#Stream-find_F "Retorna o primeiro registro ou item no objeto de fluxo que corresponde à função de predicado. Se nenhuma função de predicado for fornecida, o método retornará o primeiro registro ou item no fluxo.")
* [paraCada()](https://servicenow-prod.fluidtopics.net/fzIJduEXjC~UEIBxIRy~9g#Stream-forEach_F "Aplica a função especificada a cada registro ou item no fluxo.")
* [reduzir ()](https://servicenow-prod.fluidtopics.net/fzIJduEXjC~UEIBxIRy~9g#Stream-reduce_F_A "Executa uma função de redutor em cada item no fluxo, resultando em um único valor de saída.")
* [alguns ()](https://servicenow-prod.fluidtopics.net/fzIJduEXjC~UEIBxIRy~9g#Stream-some_F "Aplica uma função de predicado, uma função que usa um único valor e retorna verdadeiro ou falso, a cada item no fluxo. Se o predicado retornar verdadeiro para qualquer item no fluxo, o método retornará verdadeiro.")
* [toArray()](https://servicenow-prod.fluidtopics.net/fzIJduEXjC~UEIBxIRy~9g#Stream-toArray_N "Retorna uma matriz que contém o número fornecido de itens do fluxo.")
{#StreamGlobalAPI__ul_u1m_2jd_smb}

## Fluxo - Fluxo (função nextFn) {#ariaid-title2}

Instancia um objeto de fluxo.
Em vez de usar este construtor, você pode retornar um objeto de fluxo com base em uma consulta usando a API [GlideQuery](https://servicenow-prod.fluidtopics.net/weOjD4QxtQmCMbvdegl_Dw#GlideQueryGlobalAPI "A inclusão de script GlideQuery é uma alternativa à API GlideRecord para executar operações CRUD em dados de registro de scripts do lado do servidor.").
{#Stream-Stream_F__table_jx3_xbf_4mb__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| nextFn | Função | Uma função que recupera o próximo item no fluxo. |
[Tabela 1. Parâmetros]

{#Stream-Stream_F__table_jx3_xbf_4mb}  
Este exemplo mostra como criar um objeto de fluxo com base em um gerador de números aleatórios. Certifique-se de incluir o método limit() para evitar a criação de um loop infinito.

    new Stream(Math.random)
       .map(Math.round)
       .map(function (num) { 
          return num === 1 ? 'heads' : 'tails'; 
       })
       .limit(10)
       .forEach(gs.info)

Saída:

    *** Script: tails
    *** Script: heads
    *** Script: tails
    *** Script: heads
    *** Script: tails
    *** Script: heads
    *** Script: tails
    *** Script: tails
    *** Script: tails
    *** Script: tails

## Fluxo - bloco (contagem de números) {#ariaid-title3}

Retorna resultados em lotes de matrizes, cada uma contendo o número de registros passados para o método.
{#Stream-chunk_N__table_lkw_rcf_4mb__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| contagem | Número | Número de registros em cada matriz retornada do fluxo. |
[Tabela 2. Parâmetros]

{#Stream-chunk_N__table_lkw_rcf_4mb} {#Stream-chunk_N__table_mkw_rcf_4mb__entry__2}

| Tipo | Descrição |
|-|-|
| Fluxo | Objeto usado para interagir com um fluxo de itens, como registros. |
[Tabela 3. Retorna]

{#Stream-chunk_N__table_mkw_rcf_4mb}  
Este exemplo mostra como consultar uma tabela e dividir o resultado em lotes de matrizes.

    var chunkResult = new GlideQuery('cmdb_ci_hardware')
        .select('asset', 'purchase_date')
        .limit(10)
        .chunk(5) //Returns arrays of 5 sys_ids at a time
        .forEach(function (chunk){ 
            gs.info(JSON.stringify(chunk, null, 2)); 
        });

Saída:

    *** Script: [
      {
        "asset": "2fa9680d3790200044e0bfc8bcbe5dfb",
        "purchase_date": "2022-02-28",
        "sys_id": "2ba9680d3790200044e0bfc8bcbe5dfc"
      },
      {
        "asset": "73c1fa8837f3100044e0bfc8bcbe5ded",
        "purchase_date": "2017-12-05",
        "sys_id": "b4fd7c8437201000deeabfc8bcbe5dc1"
      },
      {
        "asset": "cbc1ba8837f3100044e0bfc8bcbe5dad",
        "purchase_date": "2017-12-05",
        "sys_id": "25fd3c8437201000deeabfc8bcbe5dea"
      },
      {
        "asset": "8fc1ba8837f3100044e0bfc8bcbe5da9",
        "purchase_date": null,
        "sys_id": "108a9205c611227500786e160f9d343e"
      },
      {
        "asset": "27c1fa8837f3100044e0bfc8bcbe5dd8",
        "purchase_date": "2017-06-06",
        "sys_id": "a9a2d111c611227601fb37542399caa8"
      }
    ]
    *** Script: [
      {
        "asset": "93c1fa8837f3100044e0bfc8bcbe5d30",
        "purchase_date": "2017-12-05",
        "sys_id": "6b43105c37301000deeabfc8bcbe5db2"
      },
      {
        "asset": "a2c0b1213784200044e0bfc8bcbe5de3",
        "purchase_date": "2017-12-05",
        "sys_id": "aac0b1213784200044e0bfc8bcbe5de3"
      },
      {
        "asset": "33c1fa8837f3100044e0bfc8bcbe5def",
        "purchase_date": "2017-12-05",
        "sys_id": "d0e8761137201000deeabfc8bcbe5da7"
      },
      {
        "asset": "53c1fa8837f3100044e0bfc8bcbe5d1f",
        "purchase_date": "2017-12-05",
        "sys_id": "53fdbc8437201000deeabfc8bcbe5d10"
      },
      {
        "asset": "f1c031213784200044e0bfc8bcbe5de0",
        "purchase_date": "2017-12-05",
        "sys_id": "71c031213784200044e0bfc8bcbe5de1"
      }
    ]

Este exemplo mostra como criar uma consulta secundária usando lotes de IDs. Quando você chama o método planoMap() depois de usar o método bloco(), o sistema itera sobre o lote de registros em vez de cada registro individual.

    var chunkResult = new global.GlideQuery('cmdb_ci_hardware')
        .select('sys_id')
        .map(function (device) { return device.sys_id; })
        .chunk(5) //Returns arrays of 5 sys_ids at a time
        .flatMap(function (deviceIds) {
            return new GlideQuery('cmdb_sam_sw_install')
                .where('installed_on', 'IN', deviceIds)
                .select('software_model', 'installed_on');
        })

    gs.info(JSON.stringify(chunkResult));

## Fluxo - a cada (predicado da função) {#ariaid-title4}

Aplica uma função de predicado a cada item no objeto Stream. Se o predicado retornar verdadeiro para cada item no fluxo, o método retornará verdadeiro. Se o predicado retornar falso para qualquer item no fluxo, o método retornará falso.
{#Stream-every_F__table_tyn_x2f_4mb__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| predicado | Função | Função de predicado a ser aplicada a cada registro ou item dentro do objeto Stream. A função deve usar cada item no fluxo como entrada e retornar um booliano. |
[Tabela 4. Parâmetros]

{#Stream-every_F__table_tyn_x2f_4mb} {#Stream-every_F__table_uyn_x2f_4mb__entry__2}

| Tipo | Descrição |
|-|-|
| Booliano | Sinalizador que indica se a função de predicado retorna verdadeiro para cada item no fluxo. Valores válidos: * verdadeiro: a função de predicado retorna verdadeiro para cada item no fluxo. * falso: a função de predicado não retorna verdadeiro para todos os itens no fluxo. {#Stream-every_F__ul_ij5_1kg_tmb} |
[Tabela 5. Retorna]

{#Stream-every_F__table_uyn_x2f_4mb}  
Este exemplo mostra como aplicar uma função de predicado a cada item em um fluxo.

    var hasOnlyShortDescriptions = new global.GlideQuery('task')
       .whereNotNull('description')
       .select('description')
       .every(function (t) { 
           return t.description.length < 10; 
           });

    gs.info(hasOnlyShortDescriptions);

Saída:

    false

## Fluxo - filter (predicado da função) {#ariaid-title5}

Aplica uma função de predicado a cada item no objeto Stream. Se o predicado retornar verdadeiro, o método retornará o fluxo. Se o predicado retornar falso, ele retornará um objeto de fluxo vazio.
Para obter melhor desempenho, use os métodos Where( ), WhereNotNull()e WhereNull() na classe GlideQuery em vez deste método sempre que possível. Consulte [GlideQuery](https://servicenow-prod.fluidtopics.net/weOjD4QxtQmCMbvdegl_Dw#GlideQueryGlobalAPI "A inclusão de script GlideQuery é uma alternativa à API GlideRecord para executar operações CRUD em dados de registro de scripts do lado do servidor.").
{#Stream-filter_F__table_qyn_g1l_4mb__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| predicado | Função | Função de predicado a ser aplicada a cada registro ou item dentro do objeto Stream. A função deve usar cada item no fluxo como entrada e retornar um booliano. |
[Tabela 6. Parâmetros]

{#Stream-filter_F__table_qyn_g1l_4mb} {#Stream-filter_F__table_fcd_j2f_4mb__entry__2}

| Tipo | Descrição |
|-|-|
| Fluxo | Objeto usado para interagir com um fluxo de itens, como registros. |
[Tabela 7. Retorna]

{#Stream-filter_F__table_fcd_j2f_4mb}  
Este exemplo mostra como verificar todos os registros na tabela de tarefas em relação a um filtro definido. Se os registros corresponderem ao filtro, o sistema retornará o fluxo de registros. Caso contrário, ele retornará um objeto de fluxo vazio.

    var shoutingTasks = new global.GlideQuery('task')
       .whereNotNull('description')
       .select('description')
       .filter(function (task) { 
           return task.description.toUpperCase() === task.description; 
       })

## Fluxo - encontrar (predicado da função) {#ariaid-title6}

Retorna o primeiro registro ou item no objeto de fluxo que corresponde à função de predicado. Se nenhuma função de predicado for fornecida, o método retornará o primeiro registro ou item no fluxo.
{#Stream-find_F__table_gn4_k2f_4mb__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| predicado | Função | Opcional. Função de predicado a ser aplicada aos itens dentro do objeto Stream. A função deve usar cada item no fluxo como entrada e retornar um booliano. |
[Tabela 8. Parâmetros]

{#Stream-find_F__table_gn4_k2f_4mb} {#Stream-find_F__table_hn4_k2f_4mb__entry__2}

| Tipo | Descrição |
|-|-|
| Opcional | Objeto que contém o registro retornado. |
[Tabela 9. Retorna]

{#Stream-find_F__table_hn4_k2f_4mb}  
Este exemplo mostra como retornar o primeiro registro do fluxo.

    var UserOptional = new global.GlideQuery('sys_user')
       .where('active', true)
       .where('company.name', 'ServiceNow')
       .select()
       .find()
       .map(function (user) { 
          return JSON.stringify(user); 
       })

    gs.info(UserOptional);

Saída:

    Optional<{"sys_id":"babb4639b76233004fbc2089ee11a97f"}>

## Fluxo - planoMap(function fn) {#ariaid-title7}

Aplica uma função a cada item em um fluxo. Retorna outro fluxo sobre o qual você pode iterar.
Use este método em vez de map() se a função retornar um segundo fluxo de registros.
{#Stream-flatMap_F__table_nrd_tgf_4mb__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| fn | Função | Função a ser aplicada ao resultado da consulta que retorna um objeto de fluxo. |
[Tabela 10. Parâmetros]

{#Stream-flatMap_F__table_nrd_tgf_4mb} {#Stream-flatMap_F__table_jjk_h2f_4mb__entry__2}

| Tipo | Descrição |
|-|-|
| Fluxo | Objeto que contém o fluxo de registros atualizados após a aplicação da função. |
[Tabela 11. Retorna]

{#Stream-flatMap_F__table_jjk_h2f_4mb}  
Este exemplo mostra como consultar a tabela Usuário e criar uma consulta secundária a partir do resultado. Este exemplo executa uma consulta N+1, o que pode causar problemas de desempenho. Evite este caso de uso em um ambiente de produção.

    var records = new global.GlideQuery('sys_user')
       .where('last_login', '>', '2015-12-31')
       .select('first_name', 'last_name')
       .flatMap(function (u) {
          return new global.GlideQuery('task')
               .where('closed_by', u.sys_id)
               .select('closed_at', 'description')
               .map(function (t) {
                    return {
                        first_name: u.first_name,
                        last_name: u.last_name,
                        description: t.description,
                        closed_at: t.closed_at
                     };
               });
          })
       .limit(5)
       .toArray(100);

    gs.info(JSON.stringify(records));

Saída:

    [
       {
          "first_name":"System",
          "last_name":"Administrator",
          "description":null,
          "closed_at":"2020-08-23 13:14:56"
       },
       {
          "first_name":"System",
          "last_name":"Administrator",
          "description":null,
          "closed_at":"2020-08-23 13:07:43"
       },
       {
          "first_name":"System",
          "last_name":"Administrator",
          "description":null,
          "closed_at":"2020-06-15 06:59:05"
       },
       {
          "first_name":"System",
          "last_name":"Administrator",
          "description":null,
          "closed_at":"2020-08-23 13:07:33"
       },
       {
          "first_name":"System",
          "last_name":"Administrator",
          "description":null,
          "closed_at":"2020-08-23 13:07:14"
       }
    ]

## Fluxo - forEach(Function fn) {#ariaid-title8}

Aplica a função especificada a cada registro ou item no fluxo.
{#Stream-forEach_F__table_nrd_tgf_4mb__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| fn | Função | Função a ser aplicada a cada item no fluxo. |
[Tabela 12. Parâmetros]

{#Stream-forEach_F__table_nrd_tgf_4mb} {#Stream-forEach_F__table_emq_dff_4mb__entry__2}

| Tipo | Descrição |
|-|-|
| Nenhum(a) |   |
[Tabela 13. Retorna]

{#Stream-forEach_F__table_emq_dff_4mb}  
Este exemplo mostra como imprimir o resultado de cada item no fluxo.

    var firstNames = new global.GlideQuery('sys_user')
       .select('first_name')
       .forEach(function (u) { 
          gs.debug(u.first_name); 
       });

Saída:

    *** Script: [DEBUG] survey
    *** Script: [DEBUG] Lucius
    *** Script: [DEBUG] Jimmie
    *** Script: [DEBUG] Melinda
    *** Script: [DEBUG] Jewel
    *** Script: [DEBUG] Sean
    *** Script: [DEBUG] Jacinto
    *** Script: [DEBUG] Krystle
    *** Script: [DEBUG] Billie
    *** Script: [DEBUG] Christian
    *** Script: [DEBUG] Naomi
    ...

## Fluxo - fromArray(Object arr) {#ariaid-title9}

Retorna um objeto de fluxo que contém os valores da matriz fornecida.
Nota:  
Este método é estático. Você não precisa de uma instância da classe para usar este método.
{#Stream-fromArray_O__table_qdh_jff_4mb__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| arr | Matriz | Matriz de valores a partir da qual o fluxo será criado. |
[Tabela 14. Parâmetros]

{#Stream-fromArray_O__table_qdh_jff_4mb} {#Stream-fromArray_O__table_rdh_jff_4mb__entry__2}

| Tipo | Descrição |
|-|-|
| Fluxo | Objeto usado para interagir com um fluxo de itens, como registros. |
[Tabela 15. Retorna]

{#Stream-fromArray_O__table_rdh_jff_4mb}  
Este exemplo mostra como criar um objeto Stream que contém uma matriz de valores.

    var nameStream = Stream.fromArray(['Bob', 'Sue', 'Sam'])
       .map(function (name) { 
          return name.toUpperCase(); 
       })
       .toArray(3);

    gs.info(JSON.stringify(nameStream));

Saída:

    ["BOB","SUE","SAM"]

## Fluxo - limite (contagem de números) {#ariaid-title10}

Limita o número de resultados retornados pelo fluxo.
Para obter melhor desempenho, use o método limit() na classe GlideQuery sempre que possível. Consulte [GlideQuery](https://servicenow-prod.fluidtopics.net/weOjD4QxtQmCMbvdegl_Dw#GlideQueryGlobalAPI "A inclusão de script GlideQuery é uma alternativa à API GlideRecord para executar operações CRUD em dados de registro de scripts do lado do servidor."). Pode ser necessário usar este método para limitar os resultados com o método Stream.flatMap().
{#Stream-limit_N__table_gvh_2mc_nmb__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| contagem | Número | Número de registros a serem retornados. |
[Tabela 16. Parâmetros]

{#Stream-limit_N__table_gvh_2mc_nmb} {#Stream-limit_N__table_xhc_zbf_4mb__entry__2}

| Tipo | Descrição |
|-|-|
| Fluxo | Objeto usado para interagir com um fluxo de itens, como registros. |
[Tabela 17. Retorna]

{#Stream-limit_N__table_xhc_zbf_4mb}  
Este exemplo mostra como limitar os resultados retornados do método Stream.flatMap().

    var records = new global.GlideQuery('sys_user')
       .where('last_login', '>', '2015-12-31')
       .select('first_name', 'last_name')
       .flatMap(function (u) {
          return new GlideQuery('task')
               .where('closed_by', u.sys_id)
               .select('closed_at', 'description')
               .map(function (t) {
                    return {
                        first_name: u.first_name,
                        last_name: u.last_name,
                        description: t.description,
                        closed_at: t.closed_at
                     };
               });
          })
       .limit(5)
       .forEach(function (task){
          gs.info(JSON.stringify(task, null, 2));
       });

Saída:

    *** Script: {
      "first_name": "System",
      "last_name": "Administrator",
      "description": null,
      "closed_at": "2021-10-04 13:40:16"
    }
    *** Script: {
      "first_name": "System",
      "last_name": "Administrator",
      "description": null,
      "closed_at": "2021-10-04 13:40:22"
    }
    *** Script: {
      "first_name": "System",
      "last_name": "Administrator",
      "description": null,
      "closed_at": "2021-10-04 13:40:27"
    }
    *** Script: {
      "first_name": "System",
      "last_name": "Administrator",
      "description": null,
      "closed_at": "2021-10-04 13:40:31"
    }
    *** Script: {
      "first_name": "System",
      "last_name": "Administrator",
      "description": null,
      "closed_at": "2021-10-04 13:40:54"
    }

## Fluxo - map (Função fn) {#ariaid-title11}

Aplica uma função a cada item em um fluxo e retorna o objeto Stream atualizado.
{#Stream-map_F__table_zkh_rgf_4mb__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| fn | Função | Função a ser aplicada ao resultado da consulta que usa cada item no fluxo como entrada. |
[Tabela 18. Parâmetros]

{#Stream-map_F__table_zkh_rgf_4mb} {#Stream-map_F__table_pct_xdf_4mb__entry__2}

| Tipo | Descrição |
|-|-|
| Fluxo | Objeto que contém o fluxo de registros atualizados após a aplicação da função. |
[Tabela 19. Retorna]

{#Stream-map_F__table_pct_xdf_4mb}  
Este exemplo mostra como aplicar uma função a cada item no fluxo.

    var users = new global.GlideQuery('sys_user')
       .whereNotNull('first_name')
       .select('first_name')
       .map(function (u) { 
          return u.first_name.toUpperCase(); 
       })
       .toArray(100);

    gs.info(JSON.stringify(users));

Saída:

    [
       "SURVEY",
       "LUCIUS",
       "JIMMIE",
       "MELINDA",
       "JEWEL",
       "SEAN",
       "JACINTO",
       "KRYSTLE",
       "BILLIE",
       "CHRISTIAN",
       ...
    ]

## Fluxo - reduza (função redutorFn, qualquer valorinicial) {#ariaid-title12}

Executa uma função de redutor em cada item no fluxo, resultando em um único valor de saída.
Este método é semelhante ao método de redução () do JavaScript nativo. Para obter mais informações, consulte [a documentação do w3chools](https://www.w3schools.com/jsref/jsref_reduce.asp).
{#Stream-reduce_F_A__table_ogx_bff_4mb__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| RedutorFn | Função | Função a ser aplicada a cada item no fluxo que reduz o fluxo a um único valor. Esta função deve ter dois argumentos: * `acc`: acumulador que acumula todos os valores retornados pela função. * `cur`: item atual que está sendo acumulado na matriz. {#Stream-reduce_F_A__ul_k1m_yd3_5mb} |
| valorInicial | Qualquer | Valor passado para a função como o valor inicial. |
[Tabela 20. Parâmetros]

{#Stream-reduce_F_A__table_ogx_bff_4mb} {#Stream-reduce_F_A__table_pgx_bff_4mb__entry__2}

| Tipo | Descrição |
|-|-|
| Qualquer | Total acumulado de todos os itens retornados pela função de redutor. |
[Tabela 21. Retorna]

{#Stream-reduce_F_A__table_pgx_bff_4mb}  
Este exemplo mostra como retornar o registro com o nome mais longo da tabela Usuário.

    var longestName = new global.GlideQuery('sys_user')
       .whereNotNull('first_name')
       .select('first_name')
       .reduce(function (acc, cur) {
           return cur.first_name.length > acc.length
               ? cur.first_name
               : acc;
           }, '');

    gs.info(JSON.stringify(longestName));

Saída:

    "ATF_TestItilUser1"

## Fluxo - some (predicado da função) {#ariaid-title13}

Aplica uma função de predicado, uma função que usa um único valor e retorna verdadeiro ou falso, a cada item no fluxo. Se o predicado retornar verdadeiro para qualquer item no fluxo, o método retornará verdadeiro.
{#Stream-some_F__table_q4v_v2f_4mb__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| predicado | Função | Função de predicado a ser aplicada aos itens dentro do objeto Stream. Deve retornar um valor booliano. |
[Tabela 22. Parâmetros]

{#Stream-some_F__table_q4v_v2f_4mb} {#Stream-some_F__table_r4v_v2f_4mb__entry__2}

| Tipo | Descrição |
|-|-|
| Booliano | Sinalizador que indica se a função de predicado retornou verdadeiro para um item no fluxo. Valores válidos: * verdadeiro: a função de predicado retornou verdadeiro para um item no fluxo. * falso: a função de predicado não retornou verdadeiro para um item no fluxo. {#Stream-some_F__ul_iwm_q33_5mb} |
[Tabela 23. Retorna]

{#Stream-some_F__table_r4v_v2f_4mb}  
Este exemplo mostra como verificar se alguma descrição na tabela de tarefas tem mais de 1.000 caracteres.

    var hasLongDescriptions = new global.GlideQuery('task')
       .whereNotNull('description')
       .select('description')
       .some(function (t) { 
          return t.description.length > 1000; 
       });


    gs.info(hasLongDescriptions);

Saída:

    false

## Fluxo - toArray(Number count) {#ariaid-title14}

Retorna uma matriz que contém o número fornecido de itens do fluxo.
{#Stream-toArray_N__table_acv_y2f_4mb__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| contagem | Número | O número máximo de itens do fluxo a serem retornados na matriz. |
[Tabela 24. Parâmetros]

{#Stream-toArray_N__table_acv_y2f_4mb} {#Stream-toArray_N__table_bcv_y2f_4mb__entry__2}

| Tipo | Descrição |
|-|-|
| Matriz | Matriz que contém o número fornecido de itens do fluxo. |
[Tabela 25. Retorna]

{#Stream-toArray_N__table_bcv_y2f_4mb}  
Este exemplo mostra como transformar um fluxo de registros em uma matriz JavaScript.

    var users = new global.GlideQuery('sys_user')
        .limit(10)
        .select('first_name', 'last_name')
        .toArray(50);

    gs.info(JSON.stringify(users));

Saída:

    [
       {
          "first_name":"Jewel",
          "last_name":"Agresta",
          "sys_id":"02826bf03710200044e0bfc8bcbe5d64"
       },
       {
          "first_name":"Sean",
          "last_name":"Bonnet",
          "sys_id":"02826bf03710200044e0bfc8bcbe5d6d"
       },
       {
          "first_name":"Jacinto",
          "last_name":"Gawron",
          "sys_id":"02826bf03710200044e0bfc8bcbe5d76"
       },
       {
          "first_name":"Krystle",
          "last_name":"Stika",
          "sys_id":"02826bf03710200044e0bfc8bcbe5d7f"
       },
       {
          "first_name":"Billie",
          "last_name":"Cowley",
          "sys_id":"02826bf03710200044e0bfc8bcbe5d88"
       },
       {
          "first_name":"Christian",
          "last_name":"Marnell",
          "sys_id":"02826bf03710200044e0bfc8bcbe5d91"
       }
    ]


