Oavsett vilken typ av entitet man har valt så finns det några allmänna variabler som kan användas i scripten:
Varibel |
Beskrivning/Typ |
NowUtc |
datetime, samma som DateTime.UtcNow |
DayAgoUtc |
datetime |
WeekAgoUtc |
datetime |
MonthAgoUtc |
datetime |
CurrentUser |
Användarobjekt |
db |
Objekt för att interagera med databasen (dB-frågor) |
api |
Objekt med hjälpmetoder. |
record |
Objektet som triggern kör mot. |
Den viktigaste variabeln är ”record” som Triggern kör mot. Antingen för att den just har blivit sparad (Händelsestyrd trigger) eller för att en kontroll av en Tidsstyrd trigger har fallit ut. Man kan göra vilka ändringar man vill på detta objekt, ändringarna sparas till databasen automatiskt. Ändringar som görs kan påverka andra triggrar så att dessa körs, under förutsättning att dess villkor då blir uppfyllda.
När man handskas med fält när man gör script, måste man använda fältens systemnamn, t.ex. v:record.BaseHeader . I användarinterfacet visas endast fältbenämningen. Detta gör det knepigt och det är en av orsakerna till att vi rekommenderar att man tar hjälp av Nilex när man vill använda Triggerscript. I den nuvarande editorn finns ingen stödfunktion som hjälper dig att hitta rätt namn. Ett sätt att komma runt detta och hitta systemnamnet är att använda funktionaliteten som finns i editorn för Textmallar av E-posttyp. Gör så här:
1. Öppna NSP i en annan flik eller browser.
2. I Agentportalen gå till Systeminställningar> Hantera> Textmallar
3. Skapa en ny textmall, välj malltyp E-post.
4. Välj samma Entitet i fältet Taggar som är vald i Triggern.
5. Sätt markören i textfältet.
6. I listan under fältet Taggar finns en lista med fältbeteckningar. Dubbelklicka på det önskade fältet och systemnamnet skrivs ut i textfältet.
När man använder referensfält i script, d.v.s. fält som pekar på andra objekt, måste man känna till att dessa konverteras till ID-nummer av heltalstyp.
Exempel: Ärendeegenskapen Prioritet (fältbenämning) har systemnamnet v:record.Priority men eftersom det är ett referensfält skall man i ckriptet använda record.PriorityId istället.
Lathund med vanliga Ärendefält
Här följer en lista med, i script ofta använda, systemnamn för fält och deras script-datatyper.
Fältbenämning |
Scriptnamn |
Datatyp |
Agent group: |
record.AgentGroupId |
int |
Agent: |
record.BaseAgentId |
int |
Category: |
record.CategoryId |
int |
Closed date: |
record.CloseDateTime |
datetime |
Created date: |
record.CreatedDate |
datetime |
Description: |
record.BaseDescription |
string (html) |
End User: |
record.BaseEndUserId |
int |
Impact: |
record.ImpactId |
int |
Latest update: |
record.UpdatedDate |
datetime |
Major incident: |
record.IsMajor |
boolean |
Priority: |
record.PriorityId |
int |
Reported by: |
record.ReportedById |
int |
Status: |
record.BaseEntityStatusId |
int |
Subject: |
record.BaseHeader |
string |
Ticket number: |
record.ReferenceNo |
string |
Urgency: |
record.UrgencyId |
int |
Alla fält som är tillagda med hjälp av Entitetseditorn har prefixet “u_”.
Fält beräkningar och null-värden
Alla fält har initialt värdet ”null” och det är inte tillåtet att använda ”null”-värden i numeriska beräkningar. Detta betyder att man först måste konvertera ”null” till 0 (noll) för fält som skall användas i script. Det lättaste sättet att göra det är med operatorn “||” som betyder; om värdet till vänster om operatorn är null, använd det som står på högra sidan istället. Exempel:
var value1 = record.u_Value1 || 0;
var value2 = record.u_Value2 || 0;
record.u_SumOfValues = value1 + value2;