Skriptbeispiele für Datenquellen

  • Freigeben Version: Yokohama
  • Aktualisiert 5. März 2025
  • 5 Minuten Lesedauer
  • Verwenden Sie Datenquellenskripts, um Eingabewerte, beschreibende Elemente und Eingabeaktionen zuzuordnen. Alternativ können Sie für jedes dieser Elemente eine eigene Datenquelle erstellen.

    Das Datenquellenskript akzeptiert zwei Parameter: valuesMapper und context. Der Kontextparameter bezieht sich auf das Eingabeformular, mit dem der Benutzer interagiert. Der Parameter „valuesMapper“ ist für die Verknüpfung von Elementbezeichnern mit bestimmten Tabellenspalten über die Methode „addRecordMapping“ verantwortlich. Der Methodenaufruf könnte beispielsweise so aussehen:
    valuesMapper.addRecordMapping(UNIQUE_ELEMENT_IDENTIFIER, GLIDE_RECORD_INSTANCE, COLUMN_NAME);
    Hinweis:
    Alle in diesem Thema aufgeführten Skripts werden innerhalb des Datenquellen-Datensatzes konfiguriert. Weitere Informationen finden Sie unter Datenquellen konfigurieren.

    Standardbeispielskript

    Im Folgenden finden Sie das Beispielskript, das in Mobile App Builder bereitgestellt wird. Das Skript stellt eine Vorlage bereit, die zeigt, wie eine vorhandene Tabelle gefiltert und bestimmte Felder UI-Elementen zugeordnet werden.
    (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);
    
    Dieses Beispielskript enthält:
    • Die folgenden Parameter definieren die Datenquelle:
      • valuesMapper: Dieser Parameter wird verwendet, um die Werte aus der Datenquelle den UI-Elementen zuzuordnen.
      • Kontext: Dieser Parameter gibt den Kontext an, in dem die Datenquelle verwendet wird, z. B. ein Incident, eine Change-Anforderung oder eine andere Tabelle.
    • Die Methode addRecordMapping wird zum Zuordnen der Felder verwendet und besteht aus den folgenden Parametern:
      • Elementbezeichner: Der eindeutige Name, den Sie für das Feld definiert haben, das Sie zuordnen. Im Beispiel ist dies<short description> und<priority> .
      • Glide-Datensatz<gr> : Dies wird verwendet, um auf jede Tabelle innerhalb der Instanz zu verweisen, einschließlich benutzerdefinierter Tabellen.
      • Feldname: Dies ist der Name des Felds im Glide-Datensatz. Im Beispiel ist dies<short description> und<priority> .
        Hinweis:
        Als allgemeine Richtlinie gilt, den Elementbezeichner mit dem Feldnamen zu benennen, damit der Code leichter zu pflegen und zu verstehen ist.

    Skript zum Zuordnen von im Eingabeformular konfigurierten Eingaben

    Im Folgenden finden Sie ein Beispielskript, das zeigt, wie das Attribut ElementIdentifier von Eingaben verarbeitet wird, die in der Tabelle „Attribute“ [sys_sg_input_attribute] konfiguriert sind. Das Skript enthält Beispiele für die Zuordnung eines Eingabewerts zu einer Spalte in der Incident-Tabelle mit fünf Eingaben mit den Namen 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);
    
    Dieser Code definiert die Funktion „DataSource“, die bestimmte Spalten aus dem Datensatz der Incident-Tabelle [incident] den entsprechenden Elementbezeichnern zuordnet. Der folgende Prozess wird ausgeführt:
    • Erstellt ein GlideRecord- Objekt für die Incident-Tabelle [incident].
    • Fragt die Tabelle nach einem Datensatz mit einer bestimmten sys_id anhand eines eindeutigen Werts aus dem Kontextab
    • Wenn ein Datensatz gefunden wird, werden die folgenden Spalten ihrem zugehörigen eindeutigen Elementbezeichner zugeordnet:
      • „short_description “ zu „input_1_short_description“.
      • start_time “ zu „ input_2_start_time“.
      • Punktzahl zu „input_3_score“.
      • assigned_to zu input_4_assigned_to
      • sys_id zu „input_5_attachment_1“.

    Skript zum Zuordnen von beschreibenden Elementen, die Eingaben oder Eingabeabschnitten im Eingabeformular zugeordnet sind

    Im Folgenden finden Sie ein Beispielskript, das zeigt, wie das Attribut ElementIdentifier eines beschreibenden Elements behandelt wird, das in der Tabelle des beschreibenden Elements [ sys_sg_descriptive_element] konfiguriert ist.
    (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);
    
    Dieser Code definiert die Funktion „DataSource“, die bestimmte Spalten aus dem Datensatz der Incident-Tabelle [incident] den entsprechenden Elementbezeichnern zuordnet. Der folgende Prozess wird ausgeführt:
    • Erstellt ein GlideRecord- Objekt für die Incident-Tabelle [incident].
    • Fragt die Tabelle nach einem Datensatz mit einer bestimmten sys_id anhand eines eindeutigen Werts aus dem Kontextab
    • Wenn ein Datensatz gefunden wird, werden die folgenden Spalten ihrem zugehörigen eindeutigen Elementbezeichner zugeordnet:
      • Rich_text_1_col (HTML-Typ) in „ Input_1_rich_text_descriptive_element_id “.
      • plain_text_1_col “ (Zeichenfolgentyp) in „ input_1_text_descriptive_element_id“.
      • image_1_col “ (Bildtyp) in „ input_1_image_descriptive_element_id“.

    Skript zum Zuordnen von Eingabeaktionen, die Eingaben im Eingabeformular zugeordnet sind

    Im Folgenden finden Sie ein Beispielskript, das zeigt, wie das Attribut ElementIdentifier von Eingabeaktionen behandelt wird, die in der Tabelle „Eingabeformularaktion“ [sys_sg_parameter_action] konfiguriert sind.
    (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);
    
    Dieser Code definiert die Funktion „DataSource“, die bestimmte Spalten aus einem Incident-Tabellendatensatz [incident] den entsprechenden Elementbezeichnern zuordnet. Der folgende Prozess wird ausgeführt:
    • Erstellt ein GlideRecord-Objekt für die Tabelle „Incident“.
    • Fragt die Tabelle nach einem Datensatz mit einer bestimmten sys_id anhand eines eindeutigen Werts aus dem Kontextab
    • Wenn ein Datensatz gefunden wird, werden die folgenden Spalten ihrem zugehörigen eindeutigen Elementbezeichner zugeordnet:
      • sys_id zu „input_1_action_attachments“ für die Verarbeitung von Eingabeaktionen für den Typ „Anhang“.
      • „commental_by_agent“ zu „input_1_action_comment“ für die Verarbeitung von Eingabeaktionen vom Typ „Kommentar“.
      • sys_id für „input_1_navigation“ für die Verarbeitung von Eingabeaktionen für Navigationstypen mit einem Datensatzkontext.