ScriptableDataStream - escopo, global

  • Versão de lançamento: Zurich
  • Atualizado 31 de jul. de 2025
  • 6 min. de leitura
  • . ScriptableDataStream A API fornece métodos para interagir com um fluxo de dados.

    Esta classe só pode ser usada em um script do lado do servidor depois de recuperar um objeto ScriptableDataStream usando uma destas APIs:

    • . ExecuteDataStreamAction() método no FlowAPI classe. Consulte FlowAPI .
    • . GetDataStream() método no ScriptableFlowRunnerResult classe. Consulte ScriptableFlowRunnerResult .

    Depois de recuperar um objeto ScriptableDataStream, chame os métodos nesta ordem específica:

    1. Use HasNext() método para determinar se há mais itens no fluxo de dados.
    2. Use next() método para acessar o próximo item no fluxo.
    3. Use GetItemIndex() , GetItemInPageIndex() e GetPageIndex() métodos para obter informações do fluxo.
    4. Use fechar() método para fechar o fluxo.

    Esta classe executada está em sn_fd namespace.

    Nota:
    Sempre encapsular lógica de fluxo de dados em um try/catch bloquear para detectar erros. Sempre inclua um por fim declaração que termina com fechar() método do ScriptableDataStream classe para fechar o fluxo de dados e evitar problemas de desempenho.

    ScriptableDataStream - Fechar()

    Fecha a conexão com um fluxo de dados. Sempre chame este método depois de executar as operações desejadas em um fluxo de dados.

    Você só pode chamar este método em um objeto ScriptableDataStream retornado do ExecuteDataStreamAction() Método na classe FlowAPI. Consulte FlowAPI .

    Tabela 1. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 2. Retorna
    Tipo Descrição
    vazio
    (function() {
    	
    	try {
    ​
    		// Execute Data Stream Action. 
    		var stream = sn_fd.FlowAPI.executeDataStreamAction('x_snc_my_scope.data_stream_name');
    ​
    		// Process each item in the data stream
    		while (stream.hasNext()) {
    ​
    			// Get a single item from the data stream.
    			var user = stream.next();
    		
    			// Only log the first item in each page
    			if (stream.getItemInPageIndex() == 0) {
    				gs.info('first user on page is ' + user.name);
    			}
    		}		
    	} catch (ex) {
    		var message = ex.getMessage();
    		gs.error(message);
    	} finally {
    		stream.close();
    	}
    	
    })();

    ScriptableDataStream - getItemIndex()

    Retorna o índice atual de um item em um fluxo de dados.

    Você só pode chamar este método em um objeto ScriptableDataStream retornado do ExecuteDataStreamAction() Método na classe FlowAPI. Consulte FlowAPI .

    Tabela 3. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 4. Retorna
    Tipo Descrição
    Número Índice atual de um item em um fluxo de dados usando indexação baseada em zero.
    (function() {
    	
    	try {
    
    		// Execute Data Stream Action. 
    		var stream = sn_fd.FlowAPI.executeDataStreamAction('x_my_scope.data_stream_name');
    
    		// Process each item in the data stream
    		while (stream.hasNext()) {
    
    			// Get a single item from the data stream.
    			var User = stream.next();
    
    			// Use the item. Example:
    			// var now_GR = new GlideRecord(<table_name>);
    			// now_GR.<field_name> = User.<field_name>;
    			// now_GR.insert();
    		
    			// By default, this code snippet will terminate after 10 items.
    			// Remove or modify this limit after your code has been tested.
    			if (stream.getItemIndex() >= 9) {
    				break;
    			}
    		}		
    	} catch (ex) {
    		var message = ex.getMessage();
    		gs.error(message);
    	} finally {
    		stream.close();
    	}
    	
    })();

    ScriptableDataStream - getItemInPageIndex()

    Retorna o índice atual de um item na página atual em um fluxo de dados.

    Você só pode chamar este método em um objeto ScriptableDataStream retornado do ExecuteDataStreamAction() Método na classe FlowAPI. Consulte FlowAPI .

    Tabela 5. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 6. Retorna
    Tipo Descrição
    Número Índice atual de um item na página atual no fluxo de dados usando indexação baseada em zero.
    (function() {
    	
    	try {
    ​
    		// Execute Data Stream Action. 
    		var stream = sn_fd.FlowAPI.executeDataStreamAction('x_snc_my_scope.data_stream_name');
    ​
    		// Process each item in the data stream
    		while (stream.hasNext()) {
    ​
    			// Get a single item from the data stream.
    			var user = stream.next();
    		
    			// Only log the first item in each page
    			if (stream.getItemInPageIndex() == 0) {
    				gs.info('first user on page is ' + user.name);
    			}
    		}		
    	} catch (ex) {
    		var message = ex.getMessage();
    		gs.error(message);
    	} finally {
    		stream.close();
    	}
    	
    })();

    ScriptableDataStream - getPageIndex()

    Retorna o índice atual de uma página em um fluxo de dados.

    Você só pode chamar este método em um objeto ScriptableDataStream retornado do ExecuteDataStreamAction() Método na classe FlowAPI. Consulte FlowAPI .

    Tabela 7. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 8. Retorna
    Tipo Descrição
    Número Índice atual de uma página em um fluxo de dados usando indexação baseada em zero.
    (function() {
    	
    	try {
    
    		// Execute Data Stream Action. 
    		var stream = sn_fd.FlowAPI.executeDataStreamAction('x_my_scope.data_stream_name');
    
    		// Process each item in the data stream
    		while (stream.hasNext()) {
    
    			// Get a single item from the data stream.
    			var item = stream.next();
    
    			// Use the item. 
    			var now_GR = new GlideRecord('incident');
    			now_GR.setValue('number',item.id);
    			now_GR.setValue('short_description',item.name);
    			now_GR.insert();
    		
    			// By default, this code snippet will terminate after 5 pages.
    			// Remove or modify this limit after testing your code.
    			if (stream.getPageIndex() >= 4) {
    				break;
    			}
    		}		
    	} catch (ex) {
    		var message = ex.getMessage();
    		gs.error(message);
    	} finally {
    		stream.close();
    	}
    	
    })();

    ScriptableDataStream - hasNext()

    Retorna verdadeiro se houver mais itens no fluxo de dados.

    Você só pode chamar este método em um objeto ScriptableDataStream retornado do ExecuteDataStreamAction() Método na classe FlowAPI. Consulte FlowAPI .

    Nota:
    Por padrão, a instância aguarda 600 segundos para recuperar uma única página de dados de um MID Server. Se você encontrar um tempo limite ao executar um Fluxo de dados ação por meio de um MID Server, mude este padrão aumentando datastream_alternative_env_fetch_page_timeout_secondspropriedade do sistema.
    Tabela 9. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 10. Retorna
    Tipo Descrição
    Booliano Sinalizador que determina se há mais itens no fluxo de dados. Os valores incluem:
    • Verdadeiro: Há mais itens para iterar no fluxo de dados.
    • Falso: Não há mais itens no fluxo de dados.

    Este exemplo cria um registro de incidente para cada item retornado no fluxo de dados.

    (function() {
    	
    	try {
    
    		// Execute Data Stream Action. 
    		var stream = sn_fd.FlowAPI.executeDataStreamAction('x_my_scope.data_stream_name');
    
    		// Process each item in the data stream
    		while (stream.hasNext()) {
    
    			// Get a single item from the data stream.
    			var item = stream.next();
    
    			// Use the item. 
    			var now_GR = new GlideRecord('incident');
    			now_GR.setValue('number',item.id);
    			now_GR.setValue('short_description',item.name);
    			now_GR.insert();
    		
    			// By default, this code snippet will terminate after 10 items.
    			// Remove or modify this limit after testing your code.
    			if (stream.getItemIndex() >= 9) {
    				break;
    			}
    		}		
    	} catch (ex) {
    		var message = ex.getMessage();
    		gs.error(message);
    	} finally {
    		stream.close();
    	}
    	
    })();

    ScriptableDataStream - next()

    Retorna o próximo item em um fluxo de dados.

    Você só pode chamar este método em um objeto ScriptableDataStream retornado do ExecuteDataStreamAction() Método na classe FlowAPI. Consulte FlowAPI .

    Nota:
    Por padrão, a instância aguarda 600 segundos para recuperar uma única página de dados de um MID Server. Se você encontrar um tempo limite ao executar um Fluxo de dados ação por meio de um MID Server, mude este padrão aumentando datastream_alternative_env_fetch_page_timeout_secondspropriedade do sistema.
    Tabela 11. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 12. Retorna
    Tipo Descrição
    Objeto O próximo item no fluxo de dados. Este objeto contém as saídas definidas pela ação Fluxo de dados. Para exibir as saídas da ação Fluxo de dados, navegue até a seção Saídas da ação Fluxo de dados na interface do Flow Designer.

    Este exemplo cria um registro de incidente para cada item retornado no fluxo de dados.

    (function() {
    	
    	try {
    
    		// Execute Data Stream Action. 
    		var stream = sn_fd.FlowAPI.executeDataStreamAction('x_my_scope.data_stream_name');
    
    		// Process each item in the data stream
    		while (stream.hasNext()) {
    
    			// Get a single item from the data stream.
    			var item = stream.next();
    
    			// Use the item. 
    			var now_GR = new GlideRecord('incident');
    			now_GR.setValue('number',item.id);
    			now_GR.setValue('short_description',item.name);
    			now_GR.insert();
    		
    			// By default, this code snippet will terminate after 10 items.
    			// Remove or modify this limit after testing your code.
    			if (stream.getItemIndex() >= 9) {
    				break;
    			}
    		}		
    	} catch (ex) {
    		var message = ex.getMessage();
    		gs.error(message);
    	} finally {
    		stream.close();
    	}
    	
    })();