GlideDBFunctionBuilder – Scoped, Global
Die GlideDBFunctionBuilder Die API bietet Methoden zum Erstellen von Funktionen zum Ausführen von SQL-Vorgängen in der Datenbank.
Diese Methoden bieten eine Möglichkeit zum Erstellen von RDBMS-Funktionen (Relational Database Management System), um SQL-Vorgänge für Datensatzdaten auszuführen. Sie können diese Methoden sowohl in bereichsbezogenen als auch globalen Serverskripts verwenden.
- Erstellen Sie eine Funktion mit dem GlideDBFunctionBuilder-Konstruktor und zugehörigen Methoden.
- Nach dem Erstellen einer Funktion wenden Sie die Funktion mit auf den aktuellen Datensatz an AddFunction() Methode von GlideRecord Klasse.
- Fügen Sie die Funktion mit einer Abfrage hinzu AddQuery() Methode von GlideRecord Klasse.
- Rufen Sie die Ergebnisse der Funktion mit dem vorhandenen ab GlideRecord API-Methoden wie GetValue() Und GetElement() .
Zum Beispiel:
var functionBuilder = new GlideDBFunctionBuilder();
var dbFunction = functionBuilder.position();
dbFunction = functionBuilder.constant('my'); // search_term: Text to search for in the specified table column.
dbFunction = functionBuilder.field('short_description'); // column: Name of the table column to search.
dbFunction = functionBuilder.build();
gs.log(dbFunction);
var gr_incident = new GlideRecord('incident'); // Table containing the column to search
gr_incident.addFunction(dbFunction);
gr_incident.addQuery("short_description", "CONTAINS", "my");
gr_incident.setLimit(20);
gr_incident.query();
while(gr_incident.next()) {
gs.info(gr_incident.short_description + "\n position('my', short_description): " + gr_incident.getValue(dbFunction));
}
Weitere Informationen zu Funktionsfeldern finden Sie unter Function field.
Scoped GlideDBFunctionBuilder – GlideDBFunctionBuilder()
Instantiiert ein GlideDBFunctionBuilder-Objekt.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
var builder = new GlideDBFunctionBuilder();
Bereichsbezogener GlideDBFunctionBuilder – andFunc(expr1, expr2, …)
Startet einen neuen UND-Ausdruck, der nur dann „wahr“ zurückgibt, wenn alle ihm als Parameter bereitgestellten Ausdrücke „wahr“ sind. Mindestens ein boolescher Ausdruck muss als Parameter angegeben werden.
| Name | Typ | Beschreibung |
|---|---|---|
| Ausdruck | GlideFunction-Ausdruck mit booleschem Wert | Derzeit umfassen Glide-Funktionen, die diese Kriterien erfüllen Und() , Oder() , Und Vergleichen() . |
| Typ | Beschreibung |
|---|---|
| Zeichenfolge | Der resultierende GlideFunction-Ausdruck. |
Das folgende Beispiel zeigt, wie Sie eine einfache Fallbeschreibung definieren und erstellen.
var expr = new GlideDBFunctionBuilder()
.andFunc()
.compare().field('first_name').constant('=').constant('John').endfunc()
.compare().field('active').constant('=').constant(1).endfunc()
.endfunc()
.build();
gs.info("Expression: " + expr);
Ausgabe:
Expression: glidefunction:and(compare(first_name,'=','John'),compare(active,'=','1'))
Scoped GlideDBFunctionBuilder – add()
Fügt die Werte von zwei oder mehr Ganzzahlfeldern hinzu.
Verwenden Sie die field(String field)-Methode zum Definieren von Feldern, in denen der Vorgang ausgeführt wird.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| void |
var functionBuilder = new GlideDBFunctionBuilder();
var myAddingFunction = functionBuilder.add();
myAddingFunction = functionBuilder.field('order');
myAddingFunction = functionBuilder.field('priority');
myAddingFunction = functionBuilder.build();
Scoped GlideDBFunctionBuilder – build()
Erstellt die Datenbankfunktion, die vom GlideDBFunctionBuilder-Objekt definiert wird.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| void |
var functionBuilder = new GlideDBFunctionBuilder();
var myAddingFunction = functionBuilder.add();
myAddingFunction = functionBuilder.field('order');
myAddingFunction = functionBuilder.field('priority');
myAddingFunction = functionBuilder.build();
gs.info(myAddingFunction);
*** Script: glidefunction:add(order,priority)Bereichsbezogener GlideDBFunctionBuilder – coalesce()
Verwendet eine beliebige Anzahl von kommagetrennten Feldern als Eingabe und gibt den ersten nicht leeren Wert zurück.
| Name | Typ | Beschreibung |
|---|---|---|
| Argument | Zeichenfolge | Eine Liste, die einen konstanten Wert (Zeichenfolgen, Objekte, boolesche Werte) oder ein Feld enthält. Akzeptiertes Format: Glidefunktion:Coalesce(<Zeichenfolge, Zeichenfolge, Zeichenfolge usw.>) . Ein Argument kann eine beliebige Anzahl von Parametern haben, es muss jedoch mindestens ein Parameter definiert sein. |
| Typ | Beschreibung |
|---|---|
| Zeichenfolge | Der erste Wert in der Argumentliste, der nicht null ist. Wenn keine Werte ungleich null sind, wird Null zurückgegeben. Wenn bei der Erstellung des Funktionsobjekts keine Argumente angegeben werden, wird „ungültige Funktion“ als Zeichenfolge zurückgegeben. |
Die folgende Beispielanforderung zeigt, wie die Zusammenfügungsleitfadenfunktion gebildet wird, um Nullwerte gemäß den Feldern „closed_at“, „Resolved_at“ und „sys_updated_on“ zurückzugeben.
var gr = new GlideRecord('incident');
var func = "glidefunction:coalesce(closed_at, resolved_at,sys_updated_on)";
gr.addFunction(func);
gr.query();
while(gr.next())
gs.info(gr.getValue(func));
Das Skript gibt für jeden Incident-Datensatz in der Incident-Tabelle den ersten nicht-Null-Wert aus einem Feld aus dieser Liste zurück: [Closed_at, Resolved_at, sys_updated_on] und gibt sie mit aus gs.info .
2016-12-14 02:46:44
2018-01-09 22:55:16
2018-01-07 22:54:55
2018-01-13 23:02:54
2018-01-09 23:12:02
Bereichsbezogener GlideDBFunctionBuilder – compare(exp1, op, exp2)
Startet einen neuen VERGLEICHSAUSDRUCK, der einen Vergleich zwischen zwei Ausdrücken durchführt.
| Name | Typ | Beschreibung |
|---|---|---|
| exp1 | Zeichenfolge | Linker Vergleichsausdruck. Kann eine Konstante, ein Verweis auf ein Feld oder eine andere Glide-Funktion sein. |
| op | Zeichenfolge | Ein Vergleichsoperator, umgeben von Anführungszeichen. Akzeptierte Werte:
|
| exp2 | Zeichenfolge | Rechter Vergleichsausdruck. Kann eine Konstante, ein Verweis auf ein Feld oder eine andere Glide-Funktion sein. |
| Typ | Beschreibung |
|---|---|
| Zeichenfolge | Der resultierende GlideFunction-Ausdruck. |
Das folgende Beispiel zeigt, wie Sie einen Glidefunktionsausdruck mit dem Vorgang „compare()“ erstellen. Nach dem Anruf Vergleichen() , Müssen drei zusätzliche Aufrufe erfolgen, um jeden der drei erforderlichen Parameter anzugeben, die dann durch einen einzelnen Aufruf an abgeschlossen werden Endfun() . Unten erstellen wir zwei separate Vergleichen() Ausdrücke und geben Sie sie als Parameter für an Oder() Ausdruck.
var expr = new GlideDBFunctionBuilder()
.orFunc()
.compare().field('first_name').constant('=').constant('John').endfunc()
.compare().field('active').constant('=').constant(1).endfunc()
.endfunc()
.build();
Ausgabe:
Expression: glidefunction:or(compare(first_name,'=','John'),compare(active,'=','1'))
Scoped GlideDBFunctionBuilder – concat()
Verkettet die Werte von zwei oder mehr Feldern.
Verwenden Sie die field(String field)-Methode zum Definieren von Feldern, in denen der Vorgang ausgeführt wird.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| void |
var functionBuilder = new GlideDBFunctionBuilder();
var myConcatFunction = functionBuilder.concat();
myConcatFunction = functionBuilder.field('short_description');
myConcatFunction = functionBuilder.field('caller_id.name');
myConcatFunction = functionBuilder.build();
Scoped GlideDBFunctionBuilder – constant(String constant)
Definiert einen konstanten Wert, der in der Funktion verwendet werden soll. Bei Verwendung mit der dayofweek()-Methode definiert die Zeichenfolge, ob Sonntag oder Montag als erster Tag der Woche verwendet werden soll.
| Name | Typ | Beschreibung |
|---|---|---|
| constant | Zeichenfolge | Ein konstanter Wert, der in einer Funktion verwendet wird. Bei Verwendung mit der dayofweek()-Methode definiert die Wert, ob die Woche an einem Sonntag oder Montag beginnt.
Diese Definition aktiviert die dayofweek()-Methode, um den korrekten Wochentag eines bestimmten Datums zurückzugeben. Wenn ein anderer Wert als 1 oder 2 angegeben ist, verwendet die dayofweek()-Methode Sonntag als ersten Tag der Woche. |
| Typ | Beschreibung |
|---|---|
| void |
Das folgende Codebeispiel zeigt, wie diese Methode aufgerufen wird.
var functionBuilder = new GlideDBFunctionBuilder();
var dbFunction = functionBuilder.position();
dbFunction = functionBuilder.constant('my');
dbFunction = functionBuilder.field('short_description');
dbFunction = functionBuilder.build();
gs.log(dbFunction);
var g = new GlideRecord('incident');
g.addFunction(dbFunction);
g.addQuery("short_description", "CONTAINS", "my");
g.setLimit(20);
g.query();
while(g.next()) {
gs.info(g.short_description + "\n position('my', short_description): " + g.getValue(dbFunction));
}
Scoped GlideDBFunctionBuilder – datediff()
Bestimmt die Dauer anhand eines bestimmten Startdatums/-zeit und eines Enddatums/-zeit.
Verwenden Sie die field(String field)-Methode zum Definieren von Start- und Enddatums/-zeit-Feldern
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| void |
var functionBuilder = new GlideDBFunctionBuilder();
var myDateDiffFunction = functionBuilder.datediff();
myDateDiffFunction = functionBuilder.field('sys_updated_on');
myDateDiffFunction = functionBuilder.field('opened_at');
myDateDiffFunction = functionBuilder.build();
Scoped GlideDBFunctionBuilder – dayofweek()
Gibt eine Ganzzahl zurück, die den Wochentag für ein bestimmtes Datum darstellt.
Verwenden Sie die field(String field)-Methode zum Definieren des bestimmten Enddatums/-zeit. Verwenden Sie die constant(String constant)-Methode, um zu definieren, ob die Woche an einem Sonntag oder Montag beginnt.
Diese Methode kann nur mit MySQL-, Oracle- und Microsoft SQL Server-Datenbanken verwendet werden. Wenn Sie eine Oracle-Datenbank verwenden, muss die Einstellung NLS_TERRITORY auf ein Gebiet mit Sonntag als ersten Tag der Woche festgelegt werden.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| Ganzzahl | Wenn Sonntag in der constant(String constant)-Methode als erster Wochentag festgelegt ist, werden Rückgabewerte den folgenden Wochentagen zugeordnet:
Wenn Montag als erster Wochentag festgelegt ist:
Wenn in der constant(String constant)-Methode ein anderer Wert als 1 oder 2 angegeben ist, verwendet die dayofweek()-Methode Sonntag als ersten Tag der Woche. |
var functionBuilder = new GlideDBFunctionBuilder();
var dayOfWeekFunction = functionBuilder.dayofweek();
dayOfWeekFunction = functionBuilder.field('opened_at');
dayOfWeekFunction = functionBuilder.constant('2');
dayOfWeekFunction = functionBuilder.build();
var now_GR = new GlideRecord('incident');
now_GR.addFunction(dayOfWeekFunction);
now_GR.query();
while(now_GR.next())
gs.log(now_GR.getValue(dayOfWeekFunction));
Scoped GlideDBFunctionBuilder – divide()
Dividiert den Wert eines ganzzahligen Feldes durch ein anderes.
Verwenden Sie die field(String field)-Methode zum Definieren von Feldern, in denen der Vorgang ausgeführt wird.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| void |
var functionBuilder = new GlideDBFunctionBuilder();
var myDivideFunction = functionBuilder.divide();
myDivideFunction = functionBuilder.field('order');
myDivideFunction = functionBuilder.field('priority');
myDivideFunction = functionBuilder.build();
Scoped GlideDBFunctionBuilder – field(String field)
Definiert ein Feld, in dem ein SQL-Vorgang ausgeführt wird.
| Name | Typ | Beschreibung |
|---|---|---|
| field | Zeichenfolge | Das Feld, in dem Sie den SQL-Vorgang durchführen. |
| Typ | Beschreibung |
|---|---|
| void |
var functionBuilder = new GlideDBFunctionBuilder();
var myAddingFunction = functionBuilder.add();
myAddingFunction = functionBuilder.field('order');
myAddingFunction = functionBuilder.field('priority');
myAddingFunction = functionBuilder.build();
Scoped GlideDBFunctionBuilder – length()
Legt die Anzahl der Codeeinheiten in einem Feld fest.
Verwenden Sie die field(String field)-Methode zum Definieren von Feldern, in denen der Vorgang ausgeführt wird.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| void |
var functionBuilder = new GlideDBFunctionBuilder();
var myLengthFunction = functionBuilder.length();
myLengthFunction = functionBuilder.field('short_description');
myLengthFunction = functionBuilder.build();
Scoped GlideDBFunctionBuilder – multiply()
Multipliziert die Werte von zwei Ganzzahlfeldern.
Verwenden Sie die field(String field)-Methode zum Definieren von Feldern, in denen der Vorgang ausgeführt wird.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| void |
var functionBuilder = new GlideDBFunctionBuilder();
var myMultiplyFunction = functionBuilder.multiply();
myMultiplyFunction = functionBuilder.field('order');
myMultiplyFunction = functionBuilder.field('priority');
myMultiplyFunction = functionBuilder.build();
Bereichsbezogener GlideDBFunctionBuilder – orFunc(Ausdruck)
Startet einen neuen ODER-Ausdruck, der „wahr“ zurückgibt, wenn mindestens einer der ihm als Parameter bereitgestellten Ausdrücke „wahr“ ist.
Mindestens ein boolescher Ausdruck muss als Parameter angegeben werden.
| Name | Typ | Beschreibung |
|---|---|---|
| Ausdruck | GlideFunction-Ausdruck mit booleschem Wert | Derzeit umfassen Glide-Funktionen, die diese Kriterien erfüllen, und(), oder() und compare(). |
| Typ | Beschreibung |
|---|---|
| Zeichenfolge | Der resultierende GlideFunction-Ausdruck. |
Das folgende Beispiel zeigt, wie Sie einen Glidefunktionsausdruck mit dem Vorgang oder() erstellen. Der Ausdruck gibt „wahr“ zurück, wenn entweder „wahr“ first_nameFeld ist „John“ oder der activeFeld ist „wahr“. Die resultierende Ausdruckszeichenfolge kann dann überall verwendet werden, wo Glidefunktionsausdrücke akzeptiert werden.
var expr = new GlideDBFunctionBuilder()
.orFunc()
.compare().field('first_name').constant('=').constant('John').endfunc()
.compare().field('active').constant('=').constant(1).endfunc()
.endfunc()
.build();
gs.info("Expression: " + expr);
Ausgabe:
Expression: glidefunction:or(compare(first_name,'=','John'),compare(active,'=','1'))
Bereichsbezogener GlideDBFunctionBuilder – Position()
Gibt das erste Vorkommen einer angegebenen Zeichenfolge innerhalb einer Spalte einer Tabelle zurück.
Optional können Sie einen Speicherort innerhalb der Zeichenfolge angeben, um die Suche zu starten. Diese Methode entspricht der LOCATE (Teilzeichenfolge, str, Position) In MySQL.
Mit dieser Methode können Sie interessante Datenpunkte oder anwenderdefinierte Berichte von Datenanalysten finden. Normalerweise verwenden Sie diese Methode für das Data Warehousing oder zum Extrahieren, Transformieren und Laden von ETL-Daten in weniger flexible Systeme.
Um diese Methode in Wörterbuchdatensätzen zu verwenden, verwenden Sie Glidefunktion:Position(<serarch_term>,<column>) .
| Name | Typ | Beschreibung |
|---|---|---|
| search_term | Zeichenfolge | Text, nach dem in der angegebenen Tabellenspalte gesucht werden soll. |
| Spalte | Zeichenfolge | Name der zu suchenden Tabellenspalte. Die Tabelle wird im zugehörigen GlideRecord-Objekt angegeben. |
| Start_Position | Anzahl | Optional. Speicherort im Spaltentext, um die Suche zu starten. Standard: 1 |
| Typ | Beschreibung |
|---|---|
| Keine | Position des ersten Vorkommens des angegebenen Suchbegriffs. Gibt Zurück 0 Wenn der Suchbegriff nicht im zugehörigen Text gefunden wird. Gibt Zurück NULL Wenn ein erforderliches Argument Null ist. |
Das folgende Codebeispiel zeigt, wie diese Methode aufgerufen wird.
var functionBuilder = new GlideDBFunctionBuilder();
var dbFunction = functionBuilder.position();
dbFunction = functionBuilder.constant('my'); // search_term: Text to search for in the specified table column.
dbFunction = functionBuilder.field('short_description'); // column: Name of the table column to search.
dbFunction = functionBuilder.build();
gs.log(dbFunction);
var gr_incident = new GlideRecord('incident'); // Table containing the column to search
gr_incident.addFunction(dbFunction);
gr_incident.addQuery("short_description", "CONTAINS", "my");
gr_incident.setLimit(20);
gr_incident.query();
while(gr_incident.next()) {
gs.info(gr_incident.short_description + "\n position('my', short_description): " + gr_incident.getValue(dbFunction));
}
Ausgabe:
*** Script: glidefunction:position('my',short_description)
*** Script: Wireless access is down in my area
position('my', short_description): 28
*** Script: Printer in my office is out of toner
position('my', short_description): 12
*** Script: Reset my password
position('my', short_description): 7
*** Script: I can't launch my VPN client since the last software update
position('my', short_description): 16
*** Script: Missing my home directory
position('my', short_description): 9
*** Script: Seem to have an issue with my hard drive...
position('my', short_description): 28
*** Script: Please remove the latest hotfix from my PC
position('my', short_description): 38
*** Script: I can't get my weather report
position('my', short_description): 13
*** Script: Reset my password
position('my', short_description): 7
*** Script: my PDF docs are all locked from editing
position('my', short_description): 1
*** Script: My desk phone does not work
position('my', short_description): 1
*** Script: Can't log into SAP from my laptop today
position('my', short_description): 25
*** Script: My computer is not detecting the headphone device
position('my', short_description): 1
*** Script: My disk is still having issues. Can't delete a file
position('my', short_description): 1
*** Script: The USB port on my PC stopped working
position('my', short_description): 17
Bereichsbezogener GlideDBFunctionBuilder – substring()
Gibt eine Teilzeichenfolge aus einer angegebenen Spalte einer Tabelle zurück, die an einem angegebenen Speicherort beginnt.
Optional können Sie auch einen Speicherort innerhalb der Zeichenfolge angeben, an dem die Textextraktion gestoppt werden soll. Diese Methode entspricht der LOCATE (Teilzeichenfolge, str, Position) In MySQL.
Diese Methode funktioniert ähnlich wie JavaScript, nur auf Datenbankebene. Mit dieser Methode können Sie interessante Datenpunkte oder anwenderdefinierte Berichte für Datenanalysten finden. Normalerweise verwenden Sie diese Methode für das Data Warehousing oder zum Extrahieren, Transformieren und Laden von ETL-Daten in weniger flexible Systeme.
Um diese Methode in Wörterbuchdatensätzen zu verwenden, verwenden Sie Glidefunktion:substring(<field>,<start_position>,<end_position>)
| Name | Typ | Beschreibung |
|---|---|---|
| field | Zeichenfolge | Name der Spalte in der Tabelle, aus der der Text abgerufen werden soll. Die Tabelle wird im zugehörigen GlideRecord-Objekt angegeben. |
| Start_Position | Anzahl | Speicherort im Spaltentext, um mit der Extraktion von Text zu beginnen. |
| End_Position | Anzahl | Optional. Speicherort im Spaltentext, um die Extrahierung von Text zu beenden. Standard: Ende des Texts in der angegebenen Spalte. |
| Typ | Beschreibung |
|---|---|
| Zeichenfolge | Text, der aus der angegebenen Tabellenspalte extrahiert wurde. |
Das folgende Codebeispiel zeigt, wie diese Methode aufgerufen wird.
var functionBuilder = new GlideDBFunctionBuilder();
var dbFunction = functionBuilder.substring();
dbFunction = functionBuilder.field('short_description'); // field: Column within the table to obtain the substring
dbFunction = functionBuilder.constant(0); // start_position: Location in the column text to start extracting text
dbFunction = functionBuilder.constant(20); // end_position: Location in the column text to stop extracting text.
dbFunction = functionBuilder.build();
gs.log(dbFunction);
var gr_incident = new GlideRecord('incident'); // Table containing the column from which to extract the text
gr_incident.addFunction(dbFunction);
gr_incident.addQuery("short_description", "CONTAINS", "my");
gr_incident.setLimit(20);
gr_incident.query();
while(gr_incident.next()) {
gs.info(gr_incident.short_description + "\n substring(short_description, 0, 20): " + gr_incident.getValue(dbFunction));
}
Ausgabe:
*** Script: glidefunction:substring(short_description,'0','20')
*** Script: Wireless access is down in my area
substring(short_description, 0, 20): Wireless access is
*** Script: Printer in my office is out of toner
substring(short_description, 0, 20): Printer in my offic
*** Script: Reset my password
substring(short_description, 0, 20): Reset my password
*** Script: I can't launch my VPN client since the last software update
substring(short_description, 0, 20): I can't launch my V
*** Script: Missing my home directory
substring(short_description, 0, 20): Missing my home dir
*** Script: Seem to have an issue with my hard drive...
substring(short_description, 0, 20): Seem to have an iss
*** Script: Please remove the latest hotfix from my PC
substring(short_description, 0, 20): Please remove the l
*** Script: I can't get my weather report
substring(short_description, 0, 20): I can't get my weat
*** Script: Reset my password
substring(short_description, 0, 20): Reset my password
*** Script: my PDF docs are all locked from editing
substring(short_description, 0, 20): my PDF docs are all
*** Script: My desk phone does not work
substring(short_description, 0, 20): My desk phone does
*** Script: Can't log into SAP from my laptop today
substring(short_description, 0, 20): Can't log into SAP
*** Script: My computer is not detecting the headphone device
substring(short_description, 0, 20): My computer is not
*** Script: My disk is still having issues. Can't delete a file
substring(short_description, 0, 20): My disk is still ha
*** Script: The USB port on my PC stopped working
substring(short_description, 0, 20): The USB port on my
Scoped GlideDBFunctionBuilder – subtract()
Subtrahiert den Wert eines ganzzahligen Feldes von einem anderen.
Verwenden Sie die field(String field)-Methode zum Definieren von Feldern, in denen der Vorgang ausgeführt wird.
| Name | Typ | Beschreibung |
|---|---|---|
| Keine |
| Typ | Beschreibung |
|---|---|
| void |
var functionBuilder = new GlideDBFunctionBuilder();
var mySubtractFunction = functionBuilder.subtract();
mySubtractFunction = functionBuilder.field('order');
mySubtractFunction = functionBuilder.field('priority');
mySubtractFunction = functionBuilder.build();