Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Oppslag mot eksterne tjenester krever state håndtering i skjemaet #972

Open
langvatn opened this issue Mar 6, 2023 · 1 comment
Open
Labels
kind/feature-request New feature or request needs-info Awaiting reply (cannot be reproduced, etc) status/triage

Comments

@langvatn
Copy link

langvatn commented Mar 6, 2023

Description

Vi jobber mot en næring der det er flere store selskaper med mange underselskaper med kompliserte organisasjonsstrukturer. Vi ønsker at direkte eier av en lokalitet sender inn våre skjema, ikke øverste ledd i organisasjonen. Derfor krever vi at de som bruker skjema sender inn på det laveste nivået i organisasjonsstrukturen underenheten i brreg. På den måten er oddsen for at de sender inn feil mye mindre.

Screen.Recording.2023-02-27.at.09.37.46.mov

Dette handler om data-integriteten vår. Hvis vi ikke tillater brukere å sende inn feil data får vi bedre data hos oss.

Dette betyr vi trenger å håndtere states i skjemaet:

  • At det tar tid å laste inn data (Loading state)
  • At det de søker etter ikke finnes (Http status: 404)
  • At det skjer en feil i søket (Andre feil som http status: 505)

Additional Information

No response

@langvatn langvatn added the kind/feature-request New feature or request label Mar 6, 2023
@olemartinorg
Copy link
Contributor

Heisann! Beklager at det tok lang tid å gi dere et svar her.

Jeg tror det meste her mulig å få til i dag, men det er kanskje ikke helt slik dere forventer. Slik jeg tolker det, gjør dere en jobb i ProcessDataWrite for å slå opp noe data fra brreg, og resultatet skrives tilbake i datamodellen til appen. Med utgangspunkt i det, kan dere løse punkt 2 og 3 ved å oppdatere datamodellen med forskjellige resultater ut fra hvilken feil som oppstod. Da kan dere altså skrive server-side-koden selv, og oppdatere datamodellen med et felt som f.eks. inneholder en feilmelding om at organisasjonen ikke ble funnet (eller bare sette et boolean-flagg som indikerer at organisasjonen ikke ble funnet). Ved hjelp av dynamiske uttrykk kan dere da sette opp en komponent (f.eks. en Panel-komponent) som bare vises når flagget er satt - slik at brukeren får opp en melding om at organisasjonen ikke ble funnet (eller at noe annet galt skjedde, som i punkt 3).

For å vise til brukeren at siden henter noe data (punkt 1), burde vi egentlig hatt en generell indikator, men jeg har pleid å bruke et datamodelltriks her også. Hvis feltet for org.nr i datamodellen f.eks. heter orgNr har jeg pleid å lage en orgNrShadow som jeg setter i ProcessDataWrite. Da kan jeg bruke et dynamisk uttrykk for å vise en komponent når de to feltene i datamodellen ikke er like (ergo, i perioden hvor man venter på svar fra serveren). Dette kan også gjøres med dynamiske uttrykk, og f.eks. en Image-komponent som viser en spinner (eller eventuelt en Paragraph-komponent eller en Panel-komponent):

{
  "id": "loadingIndicator",
  "type": "Paragraph",
  "hidden": ["equals", ["dataModel", "orgNr"], ["dataModel", "orgNrShadow"]]
}

Vi får også snart på plass støtte for å automatisk slette "shadow fields" fra datamodellen ved innsending, da dette er ment som hjelpefelt under skjemautfylling, og ikke noe man skal sende inn til slutt. Se mer info i #744.

@olemartinorg olemartinorg added the needs-info Awaiting reply (cannot be reproduced, etc) label Jan 10, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/feature-request New feature or request needs-info Awaiting reply (cannot be reproduced, etc) status/triage
Projects
Status: No status
Development

No branches or pull requests

3 participants