Merk
Tilgang til denne siden krever autorisasjon. Du kan prøve å logge på eller endre kataloger.
Tilgang til denne siden krever autorisasjon. Du kan prøve å endre kataloger.
Bruk denne artikkelen til å feilsøke de vanligste feilene i Power Automate skyflyter. Hver oppføring forklarer hva feilen betyr, hvorfor den skjer, og hvordan du løser den.
Bemerkning
Denne referansen gjelder for alle Power Automate skyflytlisensnivåer. Lær om feil som er spesifikke for skrivebordsflyter i Feilsøke feil i skrivebordsflyten.
Utformingstidsfeil
Disse feilene oppstår når du lagrer, validerer eller publiserer en flyt.
UgyldigTemplate
Hva det betyr: Flytdefinisjonen inneholder en syntaksfeil i et uttrykk eller en handlingskonfigurasjon.
Vanlige årsaker:
- Uovertruffen parentes eller anførselstegn i et uttrykk
- Referere til et handlingsutdata som ikke finnes (skrivefeil i handlingsnavn)
- Bruke en funksjon med feil antall argumenter (for eksempel
createArray()uten argumenter) - Typekonflikt i et konstant uttrykk (for eksempel
int('abc')ellerdiv(100, 0))– motoren validerer disse ved lagringstidspunkt - Kopier innlimingsuttrykk fra dokumentasjon som inneholder usynlige Unicode-tegn
Slik løser du:
- Åpne handlingen uthevet i rødt i utformeren.
- Kontroller uttrykket på formellinjen. Se etter uovertruffen
()eller'tegn. - Kontroller at handlingsnavnene i uttrykk samsvarer nøyaktig (skiller mellom store og små bokstaver):
outputs('Get_item')ikkeoutputs('Get Item'). - Hvis uttrykket ser riktig ut, sletter du det og skriver det inn manuelt for å fjerne skjulte tegn.
Tips
Handlingsnavn i uttrykk bruker understrekingsstreker i stedet for mellomrom. Hvis handlingen heter Hent element, er outputs('Get_item')uttrykksreferansen .
Relatert informasjon: ExpressionEvaluationFailed, FlowCheckerError
FlowCheckerError
Hva det betyr: Flytkontrollen fant ett eller flere valideringsproblemer som hindrer lagring.
Vanlige årsaker:
- Et obligatorisk felt er tomt i én eller flere handlinger
- En tilkobling er ikke valgt for en koblingshandling
- Et uttrykk refererer til en dynamisk innholdsverdi fra en parallell gren (ikke garantert å eksistere)
- Utløserinndata er ufullstendige
Slik løser du:
- Velg feilbanneret øverst i utformeren for å vise den fullstendige listen over problemer.
- Velg hver feil for å navigere til den berørte handlingen.
- Fyll ut obligatoriske felt, rett opp brutte uttrykk og velg tilkoblinger.
- Lagre på nytt. Kontrollen kjører automatisk ved lagring.
Relatert informasjon: InvalidTemplate, MissingRequiredProperty
DuplicateActionName
Hva det betyr: To eller flere handlinger i flyten har samme interne navn.
Vanlige årsaker:
- Kopiere innliming av en handling uten å gi den nytt navn
- Importere en flytdefinisjon som ble redigert manuelt med dupliserte nøkler
- Gi nytt navn til en handling som allerede brukes av en annen handling i samme omfang
Slik løser du:
- Søk i flyten etter handlinger med identiske navn (kontroller også innsiden
Apply to EachogScopebeholdere). - Gi nytt navn til en av duplikatene. Velg ... -menyen i handlingen, og velg deretter Gi nytt navn.
- Oppdater alle uttrykk som refererer til handlingen med nytt navn:
outputs('Old_Name')tiloutputs('New_Name').
Relatert informasjon: InvalidTemplate
MissingRequiredProperty
Hva det betyr: Et obligatorisk inndatafelt på en handling eller utløser er tomt.
Vanlige årsaker:
- Legge til en koblingshandling, men ikke fullføre konfigurasjonen
- Dynamisk innholdstoken som ble løst til å tømme, ble brukt i et obligatorisk felt
- Flyt importert fra en løsning der miljøvariabler ikke er angitt
Slik løser du:
- Åpne handlingen som er flagget med feilen.
- Se etter felt merket med en rød stjerne (*) som er tomme.
- Fyll ut den nødvendige verdien, enten med statisk tekst eller et dynamisk innholdstoken.
- Kontroller at alle miljøvariabler har verdier i målmiljøet for løsningsflyter.
Relatert informasjon: FlowCheckerError
Kjøretidsuttrykksfeil
Disse feilene oppstår når en flyt kjører og et uttrykk ikke kan evalueres.
ExpressionEvaluationFailed
Hva det betyr:
Et uttrykk kan ikke evalueres under kjøring fordi de faktiske dataene ikke samsvarte med det uttrykket forventet. Denne feilen oppstår bare når uttrykket bruker dynamiske verdier (variabler, utløsertekst, handlingsutdata) som ikke kan kontrolleres ved lagringstidspunkt.
Bemerkning
Hvis et uttrykk bare bruker konstante verdier (som int('abc') eller div(100, 0)), fanger flytmotoren feilen ved lagringstid som InvalidTemplate i stedet.
Vanlige årsaker:
- Kaller
int()på en variabel som inneholder en ikke-numerisk streng under kjøring - Tilgang til en egenskap på et nullobjekt (
outputs('Get_item')?['body/title']når Get_item ikke returnerte noe) - Samsvar mellom datoformat i
formatDateTime()ellerparseDateTime()når formatet kommer fra en variabel - Divisjon med null når divisoren er en dynamisk verdi som tilfeldigvis er 0
Slik løser du:
- Åpne den mislykkede kjøringen, og velg den mislykkede handlingen for å vise uttrykks- og inndataverdiene.
- Bryt risikable uttrykk med nullkontroller:
if(empty(triggerBody()?['value']), 'default', triggerBody()?['value']). - Bruk
coalesce()denne til å angi tilbakefallsverdier:coalesce(outputs('Get_item')?['body/title'], 'Untitled'). - Valider datatyper før konvertering:
if(isInt(variables('input')), int(variables('input')), 0).
Tips
Finn ut mer om et bibliotek med klar-til-bruk-uttrykksmønstre med null-sikker håndtering i expression-kokeboken for skyflyter.
Relatert informasjon: InvalidTemplate, ContentConversionFailed
ContentConversionFailed
Hva det betyr: Flyten kan ikke konvertere data fra én type til en annen mellom handlinger.
Vanlige årsaker:
- Sende en streng der et heltall eller boolsk er forventet
- Sende en matrise til en handling som forventer ett enkelt objekt
- Datostreng i et uventet format (for eksempel
DD/MM/YYYYnårMM/DD/YYYYdet forventes) - Binært innhold (fil) sendt til en tekstinndata
Slik løser du:
- Kontroller inndataene for den mislykkede handlingen i kjøreloggen. Sammenlign den faktiske verditypen med hva handlingen forventer.
- Bruk eksplisitte konverteringsfunksjoner:
int(), ,float(),string(),bool()json(). - For datoer kan du bruke
parseDateTime()med en eksplisitt nasjonal innstilling ellerformatDateTime()til å normalisere før du sender. - For matriser kan du bruke
first()til å trekke ut ett enkelt element hvis nedstrømshandlingen forventer én verdi.
Relatert informasjon: ExpressionEvaluationFailed
Tilkoblings- og godkjenningsfeil
Disse feilene oppstår når flyten ikke kan godkjennes til en tilkoblet tjeneste.
Ugyldig tilkobling
Hva det betyr: En tilkoblingsreferanse i flyten peker til en tilkobling som er brutt, slettet eller utløpt.
Vanlige årsaker:
- Brukeren som opprettet tilkoblingen, endret passordet eller fikk tilbakestilling av MFA
- Tilkoblingen ble slettet fra Tilkoblinger-siden
- En administrator fjernet tilkoblingen via administrasjonssenteret for Power Platform
- Flyten ble importert til et miljø der tilkoblingen ikke finnes
Slik løser du:
- Åpne flyten i redigeringsmodus. Handlinger med brutte tilkoblinger viser et advarselsikon.
- Velg handlingen, og velg Endre tilkobling eller Legg til ny tilkobling.
- Logg på med riktig legitimasjon for å opprette en ny tilkobling.
- Lagre og test flyten.
Viktig!
Vurder å bruke tjenestekontohavertilkoblinger i stedet for personlige brukertilkoblinger for produksjonsflyter. Tjenestekontohavertilkoblinger utløper ikke når en bruker endrer passordet eller forlater organisasjonen.
Relatert informasjon: ConnectionNotConfigured, ConnectionAuthorizationFailed
ConnectionNotConfigured
Hva det betyr: En handling krever en tilkobling, men ingen ble valgt.
Vanlige årsaker:
- Flyten ble importert fra en løsning, og tilkoblingsreferanser ble ikke tilordnet
- En ny handling ble lagt til, men tilkoblingstrinnet ble hoppet over
- Tilkoblingsreferansen peker til en miljøvariabel uten verdi
Slik løser du:
- Åpne flyten i redigeringsmodus, og finn handlingen med tilkoblingsadvarselen.
- Velg en eksisterende tilkobling fra rullegardinlisten, eller opprett en ny.
- Hvis du vil ha løsningsflyter, kan du gå til Standardløsningstilkoblingsreferanser> for >.
- Angi tilkoblingen for hver referanse.
Relatert informasjon: InvalidConnection
Uautorisert (401)
Hva det betyr: API-en avviste forespørselen fordi godkjenningstokenet er ugyldig eller utløpt.
Vanlige årsaker:
- OAuth-tokenet er utløpt, og tilkoblingen kan ikke oppdateres automatisk
- Brukerens konto ble deaktivert eller passordet ble endret
- Tjenestekontohaverhemmelighet eller sertifikat utløpt
- Policy for betinget tilgang blokkerte påloggingen (geo, enhetssamsvar)
Slik løser du:
- Gå til Power Automate>Connections og finn tilkoblingen som brukes av den mislykkede handlingen.
- Hvis tilkoblingen viser en advarsel, velger du Løs tilkobling og godkjenner på nytt.
- For tjenestekontohavertilkoblinger roterer du hemmeligheten i Microsoft Entra ID og oppdaterer tilkoblingen.
- Kontroller Microsoft Entra ID påloggingslogger for betingede tilgangsblokker: Azure portal>Microsoft Entra ID>Sign-in-logs, filtrer etter appnavnet.
Relatert informasjon: Forbudt (403), ConnectionAuthorizationFailed
Forbudt (403)
Hva det betyr: Den godkjente brukeren eller appen har ikke tillatelse til å utføre den forespurte operasjonen.
Vanlige årsaker:
- En DLP-policy (Hindring av tap av data) blokkerer koblingen eller koblingshandlingen i dette miljøet
- Brukeren mangler tillatelser på målressursen (for eksempel ingen skrivetilgang til en SharePoint list)
- En administrator begrenset koblingen via innstillinger på leiernivå
- Koblingen krever en premiumlisens, og brukeren er på en seeded plan
Slik løser du:
- Kontroller DLP-policyer:Datapolicyer> for Power Platform. Se etter policyer som blokkerer koblingen i miljøgruppen.
- Kontroller at tilkoblingsbrukeren har de riktige tillatelsene for måltjenesten (SharePoint områdetillatelser, dataverse sikkerhetsroller og lignende).
- Hvis det er et premium-koblingsproblem, må du kontrollere at flyteieren eller innringeren har en Power Automate Premium-lisens.
- Kontakt administratoren hvis en DLP-policy må endres.
Relatert informasjon: Uautorisert (401), DirectApiAuthorizationRequired
ConnectionAuthorizationFailed
Hva det betyr: Tilkoblingen finnes, men den lagrede legitimasjonen er ikke lenger gyldig.
Vanlige årsaker:
- Brukerens passord endret eller MFA-metoden ble tilbakestilt
- OAuth-oppdateringstokenet utløpt (vanlig med tilkoblinger ubrukt i 90+ dager)
- Administrator opphevet samtykke for appen i Microsoft Entra ID
- Delt tilkobling ble ikke delt av eieren
Slik løser du:
- Åpne Power Automate>Connections.
- Finn den berørte tilkoblingen.
- Velg tilkoblingen, og velg deretter Løs tilkobling for å godkjenne på nytt.
- Hvis du bruker en delt tilkobling, ber du eieren av tilkoblingen om å dele den på nytt.
- Angi en kalenderpåminnelse for tjenestekontoer for å rotere legitimasjonen før de utløper.
Tips
Finn en detaljert opplæring om tilkoblingsproblemer etter kobling (SharePoint, Outlook, SQL Server, Dataverse, HTTP) i Fiks tilkoblingsfeil i skyflyter.
Relatert informasjon: InvalidConnection, Unauthorized (401)
Koblings- og API-feil
Disse feilene kommer fra nedstrømstjenesten flyten kaller.
ActionFailed
Hva det betyr: En handling returnerte en feilstatus. Dette er en generell wrapper. De faktiske feildetaljene er i handlingens utdatatekst.
Vanlige årsaker:
- Nedstrøms-API-en returnerte en 4xx- eller 5xx-feil
- En underordnet flyt (kalt via «Kjør en underordnet flyt») mislyktes
- En egendefinert kobling returnerte et uventet svarformat
- Innstillingene for konfigurasjon av kjøring etter for handlingen førte til at den ble utført etter en tidligere feil
Slik løser du:
- Åpne den mislykkede kjøringen, og velg den mislykkede handlingen.
- Utvid utdata for å vise den faktiske feilmeldingen og statuskoden fra API-en.
- Løs det underliggende problemet basert på den spesifikke API-feilen (se gjennom oppføringene 400, 401, 403 og 404 i denne referansen).
- Hvis handlingen skal kjøres selv når tidligere handlinger mislykkes, kontrollerer du innstillingene for Konfigurer kjøring etter .
Relatert informasjon: BadRequest (400), NotFound (404)
BadRequest (400)
Hva det betyr: Koblings-API-en avviste forespørselen fordi inndata er ugyldige eller ugyldige.
Vanlige årsaker:
- Sende et felt med feil datatype (streng i stedet for tall eller omvendt)
- Obligatoriske felt mangler fra forespørselsteksten
- Ugyldige tegn i filnavn eller listeelementtitler
- Overskrider en feltlengdegrense (for eksempel SharePoint tekst med én linje = 255 tegn)
Slik løser du:
- Åpne den mislykkede handlingen i kjøreloggen, og se på Inndata-delen for å vise nøyaktig hva som ble sendt.
- Sammenlign inndataene med API-ens forventede skjema (kontroller koblingsdokumentasjonen).
- Sanitize user input with
replace()to strip invalid characters before passing to the action. - Bruk
substring()ellertake()for å avkorte lange verdier til feltets maksimale lengde.
Relatert informasjon: ActionFailed, ContentConversionFailed
NotFound (404)
Hva det betyr: Ressursen handlingen prøver å få tilgang til, finnes ikke.
Vanlige årsaker:
- Et SharePoint list, et bibliotek eller område ble gitt nytt navn eller ble slettet
- En Outlook mappe eller Teams-kanal ble fjernet
- Flyten refererer til en hardkodet ID for en ressurs som ikke lenger finnes
- Dataverstabellen eller -raden ble slettet av en annen prosess
Slik løser du:
- Kontroller at ressursen fremdeles finnes i måltjenesten.
- Hvis den har fått nytt navn, kan du oppdatere handlingen for å bruke det nye navnet eller ID-en.
- Erstatt hardkodede ID-er med dynamiske oppslag der det er mulig (for eksempel «Hent elementer» med et filter i stedet for «Hent element» med en statisk ID).
- Legg til feilbehandling: Konfigurer neste handling til Kjør etter>har mislyktes , og håndter 404 på en grasiøs måte.
Relatert informasjon: ActionFailed
Utløserfeil
Disse feilene er knyttet til flytutløsere som ikke utløses eller mislykkes.
TriggerConditionNotMet
Hva det betyr: Utløseren evaluerte tilstanden og fastslo at hendelsen ikke skulle starte en flytkjøring.
Vanlige årsaker:
- Et uttrykk for utløserbetingelser evalueres alltid til usann (logikkfeil)
- Utløserbetingelsen refererer til et felt som ikke finnes i utløsernyttelasten
- Hendelsen oppstod, men dataene samsvarte ikke med filteret (for eksempel «Når et element opprettes» med en betingelse på Status, men Status var tom)
Slik løser du:
- Gå til innstillingene for utløseren, og se gjennom uttrykket for utløserbetingelser.
- Test betingelsen mot en kjent nyttelast for hendelser. Bruk kikkkode på utløseren til å vise råskjemaet.
- Fjern betingelsen midlertidig, utløs flyten manuelt, og undersøk utløserutdataene for å bekrefte feltnavn og verdier.
- Løs uttrykket, og aktiver betingelsen på nytt.
Relatert informasjon: ExpressionEvaluationFailed
Tidsavbrudd og begrensningsfeil
Disse feilene oppstår når flyten eller en handling overskrider tids- eller rentebegrensninger.
ActionTimedOut
Hva det betyr: En enkelt handling overskred den konfigurerte tidsavbruddet og ble avbrutt.
Vanlige årsaker:
- HTTP-handling som kaller en treg ekstern API med standard tidsavbrudd på 100 sekunder
- "Vent på en godkjenning" med en utløpsdato som gikk
- Stor fil lastes opp eller lastes ned over en treg tilkobling
- Dataversspørring returnerer for mange rader uten paginering
Slik løser du:
- Åpne handlingens Innstillinger , og øk tidsavbruddsverdien (ISO 8601-varighet, for eksempel i
PT5M5 minutter). - For HTTP-handlinger må du kontrollere om den eksterne API-en har et langvarig operasjonsmønster (undersøkelse med prøv på nytt).
- Legg til
$filterog$topreduser resultatsettet for Dataverse. - For godkjenninger kan du angi en rimelig utløpsdato og legge til en tidsavbruddsgren for å håndtere ikke-svar.
Relatert informasjon: OperationTimedOut
OperationTimedOut
Hva det betyr: En langvarig operasjon (webhook wait, approval, HTTP polling) oversteg den maksimale ventetiden.
Vanlige årsaker:
- HTTP webhook handling venter på en tilbakeringing som aldri kom
- Godkjenningshandling uten utløp, ved å trykke på den 30-dagers flytkjøringsgrensen
- Handlingen «Forsinkelse til» er satt til en dato utover grensen for 30-dagers kjøringsvarighet
- Ekstern tjeneste gikk ned og sendte aldri det forventede svaret
Slik løser du:
- Angi alltid eksplisitte tidsavbrudd for webhook- og godkjenningshandlinger.
- For HTTP webhook-handlinger implementerer du en tidsavbruddsgren med Konfigurer kjøring etter>at den er tidsavbrutt.
- Bryt lange ventetider i kortere segmenter ved hjelp av en løkke med daglige kontroller.
- For 30-dagers kjøringsgrensen kan du utforme langvarige prosesser på nytt for å bruke et "videresendingsmønster": Avslutt gjeldende kjøring og start en ny med tilstand sendt via Dataverse eller en fil.
Viktig!
Skyflyter har en maksimal kjørevarighet på 30 dager. For prosesser som tar lengre tid, kan du dele dem inn i flere flytkjøringer med delt tilstand.
Relatert informasjon: ActionTimedOut
WorkflowRunActionRepetitionQuotaExceeded
Hva det betyr: En Bruk på hver løkke overskred maksimalt antall gjentakelser (standard: 100 000 for premium, 5000 for ytelsesprofiler).
Vanlige årsaker:
- Behandler en stor SharePoint list- eller Datavers-tabell uten først å filtrere
- Nestede
Apply to Eachløkker multipliserer gjentakelsesantall (100 x 100 = 10 000) - En
Get itemshandling som returnerer alle rader i stedet for et filtrert delsett
Slik løser du:
- Legg til filtre i datakildehandlingen for å redusere antall elementer før løkken.
- Bruk OData
$filterog$tophent elementer-handlinger i stedet for å filtrere i løkken. - For store datasett grupperer du arbeidet på tvers av flere flytkjøringer ved hjelp av pagineringstokener eller datoområder.
- Vurder å bruke
SelectellerFilter arrayhandlinger i stedetApply to Eachfor når du bare trenger å transformere eller filtrere data.
Relatert informasjon: FlowRunQuotaExceeded
FlowRunQuotaExceeded
Hva det betyr: Flyten eller leieren overskred den daglige handlingskjøringsgrensen.
Vanlige årsaker:
- Seeded/gratis lisens: 6000 handlinger per dag per bruker
- Premium-lisens: 40 000 handlinger per dag per bruker
- Prosesslisens: 250 000 handlinger per dag per flyt
- En loop-tung flyt som bruker tusenvis av handlinger per kjøring
Slik løser du:
- Kontroller gjeldende bruk i administrasjonssenteret for Power Platform>Analytics>Power Automate.
- Optimaliser flyter for å bruke færre handlinger: Erstatt Bruk på hver med Velg/Filter, satsvise operasjoner, reduser avspørringsfrekvens.
- Oppgrader lisensnivå hvis arbeidsbelastningen legitimt trenger mer kapasitet.
- Spre arbeidsbelastninger på tvers av flere flyter eller planlegg kjøringer med høyt volum i perioder utenfor rushtiden.
Bemerkning
Lær mer om daglige handlingsgrenser etter lisensnivå i Power Automate grenser og konfigurasjon.
Relatert informasjon: WorkflowRunActionRepetitionQuotaExceeded, DirectApiAuthorizationRequired
Lisensieringsfeil
DirectApiAuthorizationRequired
Hva det betyr: Flyten bruker en Premium-kobling, men innringeren har ikke en Premium-lisens.
Vanlige årsaker:
- En flyt med premium-koblinger (HTTP, SQL Server, Dataverse, egendefinerte koblinger) kjøres av en bruker på en seeded Microsoft 365 lisens
- Flyteieren har premium, men utløserbrukeren gjør ikke det (anroperens lisens er viktig, ikke eierens)
- Eieren av en planlagt flyt mistet premiumlisensen sin
- En kontekstintern flyt ble koblet fra Power App, noe som gjorde den utenfor kontekst
Slik løser du:
- Identifiser hvilken kobling som krever premium. Feilmeldingen gir den vanligvis navn.
- Tilordne en Power Automate Premium-lisens til brukeren som utløser eller kjører flyten.
- Kontroller at flyteieren har en premiumlisens for planlagte eller automatiserte flyter.
- Vurder om en prosesslisens (per flyt) er mer kostnadseffektiv for delte flyter med høyt volum.
Relatert informasjon: Forbudt (403), FlowRunQuotaExceeded
Hurtigreferansetabell
| Feil | Kategori | Mest sannsynlig løsning |
|---|---|---|
| UgyldigTemplate | Utformingstid | Løse uttrykkssyntaks |
| ExpressionEvaluationFailed | Kjøretid | Legge til nullkontroller, validere typer |
| ActionFailed | Kjøretid | Kontroller handlingsutdata for API-feil |
| FlowCheckerError | Utformingstid | Fyll ut obligatoriske felt, løs tilkoblinger |
| Ugyldig tilkobling | Tilkobling | Godkjenne tilkoblingen på nytt |
| ConnectionNotConfigured | Tilkobling | Velge eller opprette en tilkobling |
| Uautorisert (401) | Auth | Løse tilkobling, rotere legitimasjon |
| Forbudt (403) | Auth | Kontroller DLP-policyer, tillatelser |
| BadRequest (400) | API | Valider inndataformat |
| NotFound (404) | API | Kontroller at ressursen finnes, oppdater referanser |
| TriggerConditionNotMet | Utløser | Se gjennom uttrykk for utløserbetingelse |
| ActionTimedOut | Tidsavbrudd | Øk tidsavbrudd i handlingsinnstillinger |
| DuplicateActionName | Utformingstid | Gi nytt navn til én av de dupliserte handlingene |
| MissingRequiredProperty | Utformingstid | Fyll ut obligatoriske felt |
| ContentConversionFailed | Kjøretid | Bruk eksplisitte typekonverteringer |
| WorkflowRunActionRepetitionQuotaExceeded | Kvele | Filtrere data før løkke |
| DirectApiAuthorizationRequired | Lisensiering | Tilordne premiumlisens til innringer |
| FlowRunQuotaExceeded | Kvele | Optimaliser antall handlinger, oppgrader lisens |
| ConnectionAuthorizationFailed | Tilkobling | Løse tilkobling, godkjenne på nytt |
| OperationTimedOut | Tidsavbrudd | Angi eksplisitte tidsavbrudd, bruk relémønster |
Relatert informasjon
- Uttrykkshåndbok for skyløsninger
- Rette opp tilkoblingsfeil i skybaserte flyter
- Feilsøke skyflytfeil
- Power Automate grenser og konfigurasjon
- Power Automate lisensieringsveiledning
Obs! Forfatteren opprettet denne artikkelen med hjelp fra KUNSTIG INTELLIGENS. Finn ut mer