Exemplos de script de fonte de dados

  • Versão de lançamento: Zurich
  • Atualizado 31 de jul. de 2025
  • 5 min. de leitura
  • Use scripts de fonte de dados para mapear valores de entrada, elementos descritivos e ações de entrada. Como alternativa, crie uma fonte de dados dedicada para cada um desses elementos.

    O script da fonte de dados aceita dois parâmetros: ValoresMapper e. contexto . O parâmetro Contexto se refere ao formulário de entrada com o qual o usuário está interagindo. . ValoresMapper o parâmetro é responsável por vincular identificadores de elemento a colunas de tabela específicas por meio de AddRecordMapping método. Por exemplo, a chamada de método pode ser semelhante a esta:
    valuesMapper.addRecordMapping(UNIQUE_ELEMENT_IDENTIFIER, GLIDE_RECORD_INSTANCE, COLUMN_NAME);
    Nota:
    Todos os scripts listados neste tópico são configurados no registro da fonte de dados. Para obter mais informações, consulte Configurar fontes de dados.

    Script de amostra padrão

    A seguir está o script de exemplo fornecido no Construtor de aplicações para celular. O script fornece um modelo que mostra como filtrar uma tabela existente e mapear campos específicos para elementos de IU.
    (function DataSource(valuesMapper, context) {
    var gr = new GlideRecord(TABLE_NAME); // Could be any table within the Instance, including custom tables
    gr.addQuery('sys_id',context.getUniqueValue());
    gr.query();
    if (gr.next()) { // Could also be itetaring muliple records from the same table using the 'while' iterator
    
        valuesMapper.addRecordMapping('short_description',gr,'short_description'); // Map the field short_description to a UI element that has element identifier of "short_description". The element identifier could be any String, it's easier to map the column's name as the element identifer.
    
        valuesMapper.addRecordMapping('priority',gr,'priority'); // Map the field priority to a UI element that has element identifier of "priority". The element identifier could be any String, it's easier to map the column's name as the element identifier.
    
    }
    })(valuesMapper, context);
    
    Este script de amostra contém:
    • Os seguintes parâmetros que definem a fonte de dados:
      • ValoresMapper : Este parâmetro é usado para mapear os valores da fonte de dados para os elementos de IU.
      • Contexto : Este parâmetro especifica o contexto no qual a fonte de dados está sendo usada, como um incidente, solicitação de mudança ou qualquer outra tabela.
    • . AddRecordMapping o método é usado para mapear os campos e consiste nos seguintes parâmetros:
      • Identificador de elemento: O nome exclusivo definido para o campo que você está mapeando. No exemplo, este é <short description> e. <priority> .
      • Registro do Glide <gr> : É usado para fazer referência a qualquer tabela na instância, incluindo tabelas personalizadas.
      • Nome do campo: Este é o nome do campo no registro do Glide. No exemplo, este é <short description> e. <priority> .
        Nota:
        Uma diretriz geral é nomear o identificador do elemento da mesma forma que o nome do campo, para facilitar a manutenção e a compreensão do código.

    Script para mapear entradas configuradas no formulário de entrada

    A seguir está um exemplo de script que demonstra como o. ElementIdentifier O atributo de entradas configurado na tabela Atributos [sys_sg_input_attribute] é processado. O script contém exemplos de mapeamento de um valor de entrada para uma coluna na tabela de incidentes de cinco entradas nomeadas input_1 , input_2 , input_3 , input_4 , input_5 .

    (function DataSource(valuesMapper, context) {
    var gr = new GlideRecord('incident');
    gr.addQuery('sys_id',context.getUniqueValue());
    gr.query();
    if (gr.next()) {
    // Map the column short_description from the incident table to the elementIdentifier "input_1_short_description".
    valuesMapper.addRecordMapping('input_1_short_description', gr,'short_description'); 
    
    // Map the column start_time from the incident table to the elementIdentifier "input_2_start_time".
    valuesMapper.addRecordMapping('input_2_start_time',gr,'start_time'); 
    
    // Map the column score from the incident table to the elementIdentifier "input_3_score".
    valuesMapper.addRecordMapping('input_3_score', gr,'score'); 
    
    // Map the column assigned_to from the incident table to the elementIdentifier "input_4_assigned_to".
    valuesMapper.addRecordMapping('input_4_assigned_to',gr,'assigned_to');
    
    // Map the attachment from the record in the incident table to the elementIdentifier "input_5_attachment_1" (The column name must be “sys_id”).
    valuesMapper.addRecordMapping('input_5_attachment_1',gr,'sys_id');
    
     }
    })(valuesMapper, context);
    
    Este código define a função Fonte de dados Que mapeia colunas específicas do registro da tabela Incidente [incidente] para identificadores de elemento correspondentes. Ocorre o seguinte processo:
    • Cria um GlideRecord objeto da tabela de incidente [incident].
    • Consulta a tabela em busca de um registro com um específico sys_id usando um valor exclusivo do contexto .
    • Se um registro for encontrado, ele mapeará as seguintes colunas para o identificador de elemento exclusivo correlacionado:
      • short_description . input_1_short_description
      • start_time . input_2_start_time
      • pontuação . input_3_score
      • assigned_to . input_4_assigned_to
      • sys_id . input_5_attachment_1

    Script para mapear elementos descritivos associados a entradas ou seções de entrada no formulário de entrada

    A seguir está um exemplo de script que demonstra como lidar com ElementIdentifier atributo de um elemento descritivo, configurado na tabela elemento descritivo [ sys_sg_descritive_element].
    (function DataSource (valuesMapper, context) {
    var gr = new GlideRecord('incident');
    gr.addQuery('sys_id',context.getUniqueValue());
    gr.query();
    if (gr.next()) {
    // Handle descriptive element of type Rich Text. Map to a column named "rich_text_1_col" in the incident table to the elementIdentifier "input_1_rich_text_descriptive_element_id". The col type in the "incident" should be "HTML"
    valuesMapper.addRecordMapping('input_1_rich_text_descriptive_element_id',gr,'rich_text_1_col'); 
    
    // Handle descriptive element of type Text. Map to a column named "plain_text_1_col" in the incident table to the elementIdentifier "input_1_text_descriptive_element_id". The col type in the "incident" should be "String"/"String (Full UTF-8)"
    valuesMapper.addRecordMapping('input_1_text_descriptive_element_id',gr,'plain_text_1_col'); 
    
    // Handle descriptive element of type Image. Map to a column named "image_1_col" in the incident table to the elementIdentifier "input_1_image_descriptive_element_id". The col type in the "incident" should be "Image"
    valuesMapper.addRecordMapping('input_1_image_descriptive_element_id',gr,'image_1_col'); 
    }
    })(valuesMapper, context);
    
    Este código define a função Fonte de dados Que mapeia colunas específicas do registro da tabela Incidente [incidente] para identificadores de elemento correspondentes. Ocorre o seguinte processo:
    • Cria um GlideRecord objeto da tabela de incidente [incident].
    • Consulta a tabela em busca de um registro com um específico sys_id usando um valor exclusivo do contexto .
    • Se um registro for encontrado, ele mapeará as seguintes colunas para o identificador de elemento exclusivo correlacionado:
      • rich_text_1_col (Tipo HTML) para input_1_rich_text_descritive_element_id
      • texto_simples_1_col (Tipo de cadeia de caracteres) a input_1_text_descritive_element_id
      • imagem_1_col (Tipo de imagem) a input_1_image_descritive_element_id

    Script para mapear ações de entrada associadas a entradas no formulário de entrada

    A seguir está um exemplo de script que demonstra como lidar com ElementIdentifier Atributo de ações de entrada configuradas na tabela Ação de formulário de entrada [sys_sg_parameter_action].
    (function DataSource(valuesMapper, context) {
    var gr = new GlideRecord('incident');
    gr.addQuery('sys_id',context.getUniqueValue());
    gr.query();
    if (gr.next()) {
    // Handle an attachment type input action. Map the elementIdentifier "input_1_action_attachments" to a record in the incident table by specifying the sys_id as the column in the table.
    valuesMapper.addRecordMapping('input_1_action_attachments',gr,'sys_id'); 
    
    // Handle a comment type input action. Map the elementIdentifier "input_1_action_comment" to a column in the incident table where the comment is stored. In this example, the comment is stored in the //"comment_by_agent" column.
    valuesMapper.addRecordMapping('input_1_action_comment',gr,'comment_by_agent'); 
    
    //Handle a navigation type input action with a record context.
    Map the elementIdentifier "input_1_navigation" to a record in the incident table by specifying the sys_id as the column in the table.
    valuesMapper.addRecordMapping('input_1_navigation',gr,'sys_id'); 
    }
    })(valuesMapper, context);
    
    Este código define a função Fonte de dados Que mapeia colunas específicas de um registro de tabela Incidente [incidente] para identificadores de elemento correspondentes. Ocorre o seguinte processo:
    • Cria um objeto GlideRecord para a tabela "incidente".
    • Consulta a tabela em busca de um registro com um específico sys_id usando um valor exclusivo do contexto .
    • Se um registro for encontrado, ele mapeará as seguintes colunas para o identificador de elemento exclusivo correlacionado:
      • sys_id . input_1_action_attachments para lidar com ações de entrada de tipo de anexo.
      • comment_by_agent . input_1_action_comment para lidar com ações de entrada de tipo de comentário.
      • sys_id . input_1_navigation para lidar com ações de entrada de tipo de navegação com um contexto de registro.