Valideringsskript – Datamodell

Valideringsskript – Datamodell

Designet til Compose har blitt oppdatert. Siden kan inneholde skjermbilder av det gamle designet, men informasjonen er oppdatert. Vi takker for din tålmodighet mens vi oppdaterer bildene!

English

Å validere data gir deg blant annet to store fordeler. I første omgang kan du la sluttbrukeren vite umiddelbart om de har oppgitt ukorrekte svar, og gi veiledende eksempler til korrekte svar. Sluttbrukeren vil derfor kunne fylle ut tjenesten enklere, og dette kan fasilitere en bedre brukeropplevelse. I andre omgang sikres også at brukerdataene er av høy kvalitet, slik at mengden manuelt etterarbeid minimeres.

Hvert spørsmål som opprettes i skjemabyggeren har en validering. Compose har fire innebyggede valideringer – Tekst, Heltall, Desimal og Dato. Disse kan brukes til å validere spørsmålssvar i tillegg til at du kan lage egne valideringer i Valideringsbyggeren. I tillegg kan spørsmål pålegges valideringsskript, hvor svar kan valideres i forhold til andre svar avgitt av brukeren.

Valideringer kan også velges for spørsmål i Datamodell-menyen i skjemabyggeren.

I skjermbildet under har E-post-spørsmålet en egendefinert e-postvalidering. Svaret samsvarer ikke med e-postformatet i valideringen og dermed vises en valideringsfeilmelding under feltet.

I denne brukerveiledningen demonstreres hvordan valideringsskript tillegges spørsmål. Dersom du ønsker å lære hvordan du bygger valideringer i valideringsbyggeren, dekkes dette i veiledningen Valideringer.

Valideringsskript

Naviger til Datamodell-menyen og velg spørsmålet i datamodellen du ønsker å tillegge et valideringsskript. Velg Betingelser-fanen i panelet med Egenskaper og du vil se kodevinduet for valideringsskript.

Oppgi valideringsskriptet i kodevinduet. Trykk Åpne for å åpne en større arbeidsflate for koden. Kodespråket er Groovy (på lik linje med resten av Compose).

Koden under validerer at mobilnummeret i Q3 er 8 tegn langt dersom e-postadressen oppgitt i Q2 har den norske endelsen “no” (f.eks. e-postadressen person@online.no):

Q2.answer[-2..-1] == "no" && Q3.answer.length() == 8

Valideringen skal henholdsvis sørge for at norske e-postadresser oppgis sammen med norske mobilnumre. Hvis valideringen feiler (altså at kode-påstanden ikke er riktig) vil sluttbrukeren få en feilmelding. Oppgi feilmeldingen i feltet Beskjed til sluttbruker hvis valideringen feiler.

Du har også mulighet til å bestemme når valideringsskriptet skal kjøre i prosessen. Gå tilbake til Bygger-menyen i skjemabyggeren og åpne Avansert-fanen for spørsmålet med valideringsskriptet.

Under Valideringsskriptet kjøres per velger du hvorvidt valideringsskriptet kjører etter at skjema er fullført, når sluttbrukeren navigerer vekk fra siden, eller når fokuset er skiftet vekk fra elementet. Hvis valideringsskriptet kjører etter at skjema er fullført og prosessen har en etterfølgende Validering-aktivitet, vises valideringsfeilmeldingen under dette steget dersom skriptet feiler. I en tjeneste kan et feilet validreingsskript se slik ut:

Husk å lagre kladden og versjonere skjemaet hvis du ønsker å teste valideringsskriptet i en prosess.

Flere skript-eksempler

def result = false if (Q1.answer == "hourly") {    resultat = (Q2.answer != null && Q2.answer > 0 && Q2.answer <= 100) } else if (Q1.answer == "weekly") {    result = (Q2.answer != null && Q2.answer > 100 && Q2.answer <= 500) } else {    result = (Q2.answer != null && Q2.answer > 0 && Q2.answer <= 150) } return result

Skriptet over tar høyde for at spørsmålet med ID Q1 er et tekst-input spørsmål med Tekststreng-validering og at spørsmålet med ID Q2 er et tekst-input spørsmål med heltall- eller desimal-validering. Valideringsskriptet over har blitt skrevet for Q2. Legg merke til at skriptet vil fungere selv om Q1 og Q2 er inne i en dupliserbar spørsmålsgruppe.

Q4.answer != null && Q5.answer != null && (Q4.answer + Q5.answer) > 200

Skriptet over antar at både spørsmål Q4 og Q5 er tekst-input spørsmål med enten heltall- eller desimal-validering. Skriptet feiler hvis et av spørsmålene ikke er besvart eller hvis summen av Q4 og Q5 er over 200.