Exemples de scripts de sources de données

  • Rversion finale: Yokohama
  • Mis à jour 5 mars 2025
  • 5 minutes de lecture
  • Utilisez des scripts de sources de données pour mapper les valeurs d’entrée, les éléments descriptifs et les actions d’entrée. Vous pouvez également créer une source de données dédiée pour chacun de ces éléments.

    Le script de source de données accepte deux paramètres : valuesMapper et context. Le paramètre de contexte fait référence au formulaire d’entrée avec lequel l’utilisateur interagit. Le paramètre valuesMapper est chargé de lier les identificateurs d’éléments à des colonnes de table spécifiques via la méthode addRecordMapping . Par exemple, l’appel de méthode pourrait ressembler à ceci :
    valuesMapper.addRecordMapping(UNIQUE_ELEMENT_IDENTIFIER, GLIDE_RECORD_INSTANCE, COLUMN_NAME);
    Remarque :
    Tous les scripts répertoriés dans cette rubrique sont configurés dans l’enregistrement de source de données. Pour plus d'informations, consultez Configurer les sources de données.

    Exemple de script par défaut

    Voici l’exemple de script fourni dans Générateur d’application mobile. Le script fournit un modèle montrant comment filtrer une table existante et mapper des champs spécifiques à des éléments d’interface utilisateur.
    (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);
    
    Cet exemple de script contient :
    • Les paramètres suivants qui définissent la source de données :
      • valuesMapper : ce paramètre est utilisé pour mapper les valeurs de la source de données aux éléments d’interface utilisateur.
      • Contexte : ce paramètre spécifie le contexte dans lequel la source de données est utilisée, comme un incident, une demande de changement ou toute autre table.
    • La méthode addRecordMapping est utilisée pour mapper les champs et se compose des paramètres suivants :
      • Identificateur d’élément : nom unique que vous avez défini pour le champ que vous mappez. Dans l’exemple, il s’agit de <brève description> et < priorité >.
      • Enregistrement Glide <gr> : utilisé pour référencer n’importe quelle table de l’instance, y compris les tables personnalisées.
      • Nom de champ : il s’agit du nom du champ dans l’enregistrement Glide. Dans l’exemple, il s’agit de <brève description> et < priorité >.
        Remarque :
        Une directive générale consiste à nommer l’identificateur de l’élément de la même manière que le nom du champ, afin de rendre le code plus facile à gérer et à comprendre.

    Script pour mapper les entrées configurées dans le formulaire d’entrée

    Voici un exemple de script montrant comment l’attribut ElementIdentifier des entrées configurées dans la table Attributs [sys_sg_input_attribute] est traité. Le script contient des exemples de mappage d’une valeur d’entrée à une colonne de la table d’incidents de cinq entrées nommées input_1, input_2, input_3, input_4input_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);
    
    Ce code définit la fonction DataSource qui mappe des colonnes spécifiques de l’enregistrement de la table Incident [incident] aux identificateurs d’éléments correspondants. Le processus suivant se produit :
    • Crée un objet GlideRecord pour la table d’incidents [incident].
    • Interroge la table d’un enregistrement avec un sys_id spécifique à l’aide d’une valeur unique du contexte.
    • Si un enregistrement est trouvé, il mappe les colonnes suivantes à leur identificateur d’élément unique corrélé :
      • short_description à input_1_short_description
      • start_time à input_2_start_time
      • score à input_3_score
      • assigned_to à input_4_assigned_to
      • sys_id à input_5_attachment_1

    Script pour mapper les éléments descriptifs associés à des entrées ou des sections d’entrée dans le formulaire d’entrée

    Voici un exemple de script montrant comment gérer l’attribut ElementIdentifier d’un élément descriptif, configuré dans la table d’élément descriptif [ sys_sg_descriptive_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);
    
    Ce code définit la fonction DataSource qui mappe des colonnes spécifiques de l’enregistrement de la table Incident [incident] aux identificateurs d’éléments correspondants. Le processus suivant se produit :
    • Crée un objet GlideRecord pour la table d’incidents [incident].
    • Interroge la table d’un enregistrement avec un sys_id spécifique à l’aide d’une valeur unique du contexte.
    • Si un enregistrement est trouvé, il mappe les colonnes suivantes à leur identificateur d’élément unique corrélé :
      • rich_text_1_col (type HTML) à input_1_rich_text_descriptive_element_id
      • plain_text_1_col (type chaîne) à input_1_text_descriptive_element_id
      • image_1_col (type d’image) à input_1_image_descriptive_element_id

    Script pour mapper les actions d’entrée associées aux entrées du formulaire d’entrée

    Voici un exemple de script montrant comment gérer l’attribut ElementIdentifier des actions d’entrée configurées dans la table Action de formulaire d’entrée [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);
    
    Ce code définit la fonction Source de données qui mappe des colonnes spécifiques d’un enregistrement de table Incident [incident] aux identificateurs d’éléments correspondants. Le processus suivant se produit :
    • Crée un objet GlideRecord pour la table « incident ».
    • Interroge la table d’un enregistrement avec un sys_id spécifique à l’aide d’une valeur unique du contexte.
    • Si un enregistrement est trouvé, il mappe les colonnes suivantes à leur identificateur d’élément unique corrélé :
      • sys_id à input_1_action_attachments pour gérer les actions d’entrée du type de pièce jointe.
      • comment_by_agent à input_1_action_comment pour gérer les actions d’entrée de type de commentaire.
      • sys_id à input_1_navigation pour gérer les actions d’entrée de type navigation avec un contexte d’enregistrement.