Beispiele für Datenquellenskript
Verwenden Sie Datenquellskripts, um Eingabewerte, beschreibende Elemente und Eingabeaktionen zuzuordnen. Erstellen Sie alternativ eine dedizierte Datenquelle für jedes dieser Elemente.
Das Datenquellskript akzeptiert zwei Parameter: Wertzuordnung Und Kontext . Der Kontextparameter bezieht sich auf das Eingabeformular, mit dem der Anwender interagiert. Die Wertzuordnung Der Parameter ist für die Verknüpfung von Elementbezeichnern mit bestimmten Tabellenspalten über verantwortlich AddRecordMapping Methode. Der Methodenaufruf könnte beispielsweise wie folgt aussehen:
valuesMapper.addRecordMapping(UNIQUE_ELEMENT_IDENTIFIER, GLIDE_RECORD_INSTANCE, COLUMN_NAME);Hinweis:
Alle in diesem Thema aufgeführten Skripts werden im Datenquellendatensatz konfiguriert. Weitere Informationen finden Sie unter Konfigurieren Sie Datenquellen.
Standardbeispielskript
Im Folgenden finden Sie das Beispielskript, das im Mobile App Builder bereitgestellt wird. Das Skript bietet eine Vorlage, 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, die die Datenquelle definieren:
- Wertzuordnung : 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 AddRecordMapping Die Methode 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 eine beliebige Tabelle in der Instanz zu verweisen, einschließlich anwenderdefinierter Tabellen. - Feldname: Dies ist der Name des Felds im Glide-Datensatz. Im Beispiel ist dies
<short description>Und<priority>.Hinweis:Eine allgemeine Richtlinie besteht darin, den Elementbezeichner mit dem Feldnamen zu benennen, um den Code zu verwalten und zu verstehen.
- Elementbezeichner: Der eindeutige Name, den Sie für das Feld definiert haben, das Sie zuordnen. Im Beispiel ist dies
Skript zum Zuordnen von Eingaben, die im Eingabeformular konfiguriert sind
Im Folgenden finden Sie ein Beispielskript, das demonstriert, wie der Elementbezeichner Attribut von Eingaben, die in der Tabelle „Attribute“ [sys_sg_input_Attribute] konfiguriert sind, wird verarbeitet. Das Skript enthält Beispiele für die Zuordnung eines Eingabewerts zu einer Spalte in der Incident-Tabelle mit fünf Eingaben mit dem 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 Datenquelle Die bestimmte Spalten aus dem Datensatz der Tabelle „Incident“ [Incident] den entsprechenden Elementbezeichnern zuordnet. Der folgende Prozess wird ausgeführt:
- Erstellt einen GlideRecord Objekt für die Incident-Tabelle [Incident].
- Fragt die Tabelle nach einem Datensatz mit einem bestimmten ab sys_ID Mit einem eindeutigen Wert aus dem Kontext .
- Wenn ein Datensatz gefunden wird, ordnet er die folgenden Spalten ihrem zugehörigen eindeutigen Elementbezeichner zu:
- Short_description Bis Input_1_short_description
- Start_time Bis Input_2_Start_time
- Punktzahl Bis Input_3_Punktzahl
- Assigned_to Bis Input_4_assigned_to
- sys_ID Bis Input_5_attachment_1
Skript zum Zuordnen beschreibender Elemente, die Eingaben oder Eingabeabschnitten im Eingabeformular zugeordnet sind
Im Folgenden finden Sie ein Beispielskript, das die Handhabung von demonstriert Elementbezeichner Attribut eines beschreibenden Elements, konfiguriert in der Tabelle „Beschreibendes Element“ [ 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);
Dieser Code definiert die Funktion Datenquelle Die bestimmte Spalten aus dem Datensatz der Tabelle „Incident“ [Incident] den entsprechenden Elementbezeichnern zuordnet. Der folgende Prozess wird ausgeführt:
- Erstellt einen GlideRecord Objekt für die Incident-Tabelle [Incident].
- Fragt die Tabelle nach einem Datensatz mit einem bestimmten ab sys_ID Mit einem eindeutigen Wert aus dem Kontext .
- Wenn ein Datensatz gefunden wird, ordnet er die folgenden Spalten ihrem zugehörigen eindeutigen Elementbezeichner zu:
- Rich_Text_1_Col (HTML-Typ) an Input_1_Rich_Text_descriptive_Element_ID
- Plain_Text_1_Col (Zeichenfolgentyp) bis Input_1_Text_descriptive_Element_ID
- Image_1_Col (Bildtyp) bis Input_1_image_descriptive_Element_ID
Skript zum Zuordnen von Eingabeaktionen, die Eingaben im Eingabeformular zugeordnet sind
Im Folgenden finden Sie ein Beispielskript, das die Handhabung von demonstriert Elementbezeichner Attribut der Eingabeaktionen, 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 Datenquelle Das 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 einem bestimmten ab sys_ID Mit einem eindeutigen Wert aus dem Kontext .
- Wenn ein Datensatz gefunden wird, ordnet er die folgenden Spalten ihrem zugehörigen eindeutigen Elementbezeichner zu:
- sys_ID Bis Input_1_action_Attachments Zur Verarbeitung von Eingabeaktionen vom Typ „Anhang“.
- Comment_by_Agent Bis Input_1_action_comment Zur Verarbeitung von Eingabeaktionen vom Typ „Kommentar“.
- sys_ID Bis Input_1_Navigation Für die Verarbeitung von Eingabeaktionen des Navigationstyps mit einem Datensatzkontext.