Datafilter

<< Click to Display Table of Contents >>

Navigation:  Kontrollpanel >

Datafilter

Datafilter er en modul som gir deg anledning til å opprette faste filtere og spørringer mot alle data i systemet  (alle data som er tilgjengelig gjennom vårt offentlige API). Modulen finnes på Kontrollpanel -> Datafilter. Denne modulen er en avansert modul, som krever god teknisk kompetanse for å bruke. Foreløpig kan den brukes i gadget for avviksliste basert på filter, samt som et fast filter ved uttak av data gjennom API ("filterid"-parameter i URL).

 

I toppen av oppsettet av et datafilter, får man anledning til å registrere navn, og hvilken datamodell det gjelder. Ved valg av datamodell, får man en beskrivelse av datamodellen til høyre.

 

datafilters

 

Lenger nede får man anledning til å velge hvilke kolonner man ønsker å hente ut, hvilke relaterte datamodeller man ønsker å utvide på, hvilken sortering det skal være, og til sist men viktigst, hvilket filter man ønsker på dataene. Mens man skriver i feltene oppdateres en forhåndsvisning av resultatet under. Merk at alle data som hentes ut gjennom API alltid er filtrert på rettighetene til pålogget bruker.

 

(Se beskrivelse lenger nede)

datafilters-filter

 

Kolonner

Dersom denne står tom, velges alle kolonner i modellen. Dersom du kun ønsker spesifikke kolonner, skriv kolonnene inn, separert med komma.

 

Eksempel: "Subject, Description".

 

Utvid på

Her kan du velge hvilke relasjoner modellen skal utvides på. Dersom du utvider på en relasjon, kan du i "Select" skrive "RelasjonsNavn/KolonneNavn" for å velge kolonner fra utvidelsen.

 

Eksempel: "Responsible, Department"

 

Sorter på

Her kan du velge hvilke kolonner du ønsker å sortere utvalget på, og hvilken retning du vil sortere på.

 

Eksempel: "Subject DESC, CreatedDateTime ASC"

 

Filter

Her kan du skrive en filter-spørring som skal filtrere utvalget. Filtrene må separeres med enten "and" eller "or".

 

Likhet sjekkes med tegnet "=". Tegnene "<=", ">=", "<" og ">" støttes for å sammenlikne data. I tillegg støttes operatorene "contains" og "in".

 

"contains" brukes på denne måten: Subject contains "kjell"

"in" brukes på denne måten: Id IN (1,2,3,4)

 

Eksempel: "(Subject contains "kjell" AND Cause contains "hei") OR (Id IN (1,2,3,4)) OR (IncidentDateTime <= '2013-12-31')"

 

Bruk gjerne paranteser for å skille filtrene fra hverandre, slik som i eksempelet. Dersom listen ikke viser det som er forventet, prøv å legg paranteser rundt ting for å tydeliggjøre hva du spør etter.

 

Ved filtrering på JSON-formatterte felt, vil ikke alltid lagrede verdier gjenspeile hva som vises i APIet. F. eks. kan en verdi være lagret som null (JSON-felt ikke fylt ut), men verdien i API er false (på grunn av standard-verdi). For å hente alle som er null eller false kan man da spørre etter Feltnavn != true i stedet for Feltnavn = false.

 

Funksjoner og variabler

Navn

Formål

Parametere

Eksempel

CurrentUserId()

Returnerer id for pålogget bruker, kan brukes på følgende måte:

Ingen

ResponsibleCoworkerId = CurrentUserId()

CurrentDepartmentIds()

Returnerer ider på alle avdelingene til pålogget bruker, kan brukes på følgende måte:

Ingen

DepartmentId IN CurrentDepartmentIds()

Now()

Nåværende tidspunkt, kan brukes på følgende måte:

Ingen

PlannedStartDate > Now()

CurDate()

Datoen i dag, uten tidspunkt, kan brukes på følgende måte:

Ingen

PlannedStartDate > CurDate(). Forskjellen er at denne har tidspunkt 00:00:00 i motsetning til Now() som også har nåværende tidspunkt.

CurrentUsername()

Nåværende brukernavn

Ingen

 

CurrentFullName()

Nåværende brukers fulle navn

Ingen

 

CurrentGroupIds()

Nåværende brukers grupper

Ingen

Finn medarbeidere som deler noen av mine grupper: GroupIds IN(CurrentGroupIds())

CurrentFunctionIds()

Nåværende brukers funksjoner/roller.

Ingen

Finn medarbeidere som deler noen av mine funksjoner: FunctionIds IN(CurrentFunctionIds())

date

Formål beregn en dynamisk dato

1: Tekst

For eksempel kan man skrive date(1. January), date(01.01.2016), date(now), date(first day of this year) osv. Eksempel for å hente registreringer i inneværende år: RegisteredDateTime >= date(first day of this year) and RegisteredDateTime < date(first day of next year). Merk at det brukes "mindre enn første dag neste år", fordi man også må regne med registreringer 31.12 kl. 23:59:59.

substringof

Tekst som inneholder

1: Tekst, 2: Felt

Finn alle hvor enmet inneholder "Vindu": substringof('Vindu', Subject)

endswith

Tekst som slutter på

1: Tekst, 2: Felt

Finn alle hvor emnet slutter med punktum: endswith(Subject, '.')

startswith

Tekst som starter med

1: Felt, 2: Tekst

Finn alle hvor emnet starter med "Vindu": startswith(Subject, 'Vindu')

length

Lengden på en tekst

1: Felt

Finn alle hvor emnet er 5 tegn langt: length(Subject) = 5

indexof

Posisjon til første treff på tekst

1: Felt, 2: Tekst

Finn alle hvor teksten 'vindu' er på karakter 8 i emnet: indexof(Subject, 'vindu') = 8

substring

Hent utdrag av en tekst basert på posisjon

1. Felt, 2: Start, 3: Lengde

Finn alle hvor teksten 'vindu' er på posisjon 3-6: substring(Subject,3,4) = 'vindu'

notin

Er ikke blant

Ubegrenset antall parametere

Finn alle som ikke er av type 5 og 7: TypeId NOTIN(5,7)

in

Er blant

Ubegrenset antall parametere

Finn alle av type 1, 2 og 3: TypeId IN(1,2,3)

search

Søker blant alle tekstfelter

1: Tekst

Finn alle som inneholder teksten 'vindu' i noen tekstfelt: search(vindu)

childrenof

Hent underobjekter til et objekt

1: Felt, 2: ID

Finn alle som er registrert på DepartmentId 1 eller undertype: childrenof(DepartmentId, 1). Ikke støttet i alle moduler.

hastags

Filtrer på markelapper

Ubegrenset antall ID-er

Finn alle som er registrert med merkelapp 1 eller 5: hastags(1,5)

not

Negativt filter

Filter

Finn alle som ikke har merkelapp 4: NOT hastags(4)

year

Hent ut år av en dato

1: Dato

Finn alle registrert i et spesifikt år: YEAR(RegisteredDateTime) = 1972

month

Hent ut måned av en dato

1: Dato

Finn alle registrert i januar måned (uavhengig av år): MONTH(RegisteredDateTime) = 1

day

Hent ut dag av en dato

1: Dato

Finn alle registrert den første hver måned (uavhengig av dato): DAY(RegisteredDateTime) = 1

hour

Hent ut time av en dato

1: Dato

HOUR(RegisteredDateTime) = 12

minute

Hent ut minutt av en dato

1: Dato

MINUTE(RegisteredDateTime) = 59

second

Hent ut sekund av en dato

1: Dato

SECOND(RegisteredDateTime) = 59

round

Avrund tall

1: Tall

Finn timer som inneholder desimaler: ROUND(TotalHours) != TotalHours

floor

Rund ned tall

1: Tall

Finn alle timeregistreringer hvor antall timer rundes ned, og er 10: CEILING(TotalHours) = 10

ceiling

Rund opp tall

1: Tall

Finn alle timeregistreringer hvor antall timer rundes opp, og er 10: CEILING(TotalHours) = 10

 

Det er foreløpig ikke mulig å bruke funksjoner i kolonnedefinisjon, kun ved filtrering.

 

Behov for flere variabler eller funksjoner? Registrer et forbedringsforslag i Kundeportal.