Gå til innhold

Landax

1. Hva den gjør

Landax er kvalitetssystemet bak skjema-modulen: alle sjekklistedefinisjoner, avvik (incidents), dokumenter og medarbeidere bor i Landax (knapphus.landax.no). Connect API fungerer som proxy — appen snakker aldri direkte med Landax.

Flyt

flowchart LR
    APP[App] --> API[Connect API proxy]
    API <-->|OAuth2| LX[Landax]
    KI[Kiosk uten innlogging] --> BUF[(SurveySubmissions lokal buffer)]
    BUF -->|videresend| API
    classDef sys fill:#f8d7da,stroke:#b53b46
    class API,BUF sys

2. Når den er aktuell

Alle selskaper som bruker Skjema og sjekklister (dags-/månedskontroll, internkontroll, Landax-avvik, kioskskjema).

3. Sync-retning

Sanntid, begge veier, per kall:

  • Inn til appen: skjemadefinisjoner, spørsmål, alternativer, egne resultater, avvik med status, dokumenter.
  • Ut fra appen: nye skjemaresultater og svar, avvik (opprett/oppdater), notater, bilde-/dokumentopplastinger, signaturer.

Kiosk-innsendinger lagres først lokalt (tabellen SurveySubmissions) og videresendes til Landax — feiler videresendingen blir status Failed og kan resendes.

4. Datamodeller

Entitet Bruk
SurveyDefinitions / Questions / Alternatives Sjekklistedefinisjoner (kun IsMainDefinition)
SurveyResults / Answers Innsendte sjekklister; IsDone skiller åpne/fullførte
Incidents (+ Types, Categories, Statuses, Priorities, Causes) Avvik med full statusflyt
Notes Notater på avvik
Documents Vedlegg (to-trinns: opprett dokument → koble til avvik)
Coworkers Medarbeidere — kobles mot app-brukeren

5. Field-mapping

Den kritiske mappingen er app-bruker → Landax-medarbeider (CoworkerId), som prøves i denne rekkefølgen:

Prioritet Vårt felt Landax-felt
1 {selskapsID}-{brukernavn} Coworker.Number (ansattnummer)
2 Brukernavn Coworker.Email
3 Brukernavn Coworker.Mobile
4 Brukernavn Coworker.Name (inneholder)

Feiler alle fire: «User not mapped to Landax Coworker ID» — brukeren får ikke sendt inn skjema. Spørsmålstypene mappes 1:1 (radio, flervalg, tekst, tall, dato, klokkeslett, signatur som base64-PNG i SignatureFileData).

6. Authentication

OAuth2 password grant mot https://knapphus.landax.no/authenticate/token med klient-ID/-hemmelighet og en dedikert API-bruker. Nøklene ligger i API-ets Web.config (Landax_ApiUrl, Landax_AuthUrl, Landax_ClientId, Landax_ClientSecret, Landax_Username, Landax_Password). Access-tokens caches og fornyes med 5 minutters margin. Kiosk-endepunktene (/api/landax/surveys/kiosk/*) er anonyme og sikres med kiosk-token i stedet.

7. Oppsettssteg

Én gang per kunde/selskap:

  1. Opprett API-klient og servicebruker i Landax; legg nøklene i Web.config.
  2. Registrer medarbeiderne i Landax med ansattnummer på formen {selskapsID}-{brukernavn} (eller korrekt e-post).
  3. Bygg skjemadefinisjonene; merk hoveddefinisjoner (IsMainDefinition).
  4. Verifiser at ID-ene for hurtigvalgene stemmer med appen (Dagskontroll = 111, Månedskontroll = 105 i app-settings.ts).
  5. For kiosk: kjør survey_kiosk_database_setup.sql på selskapsdatabasen og opprett tokens i /kiosk-token-admin.

8. Daglig drift

  • API-loggen (NLog) logger alle Landax-kall med feil.
  • Kiosk: overvåk SurveySubmissions for rader med Status = 'Failed' (SELECT * FROM SurveySubmissions WHERE Status='Failed') og resend.
  • Tokens fornyes automatisk; ingen manuell rotasjon i daglig drift.

9. Feil-håndtering

Symptom Årsak Løsning
«User not mapped to Landax Coworker ID» Medarbeider mangler/feil ansattnr i Landax Rett opp Coworker.Number/Email i Landax
Avviksfanen er tom, men avvik finnes Coworker-mapping feilet — kun ShowForAllUsers-avvik vises Samme som over
401 fra Landax i loggen API-brukerens passord endret/utløpt Oppdater Landax_Password
Dokumentopplasting feiler To-trinnskoblingen feilet Prøv på nytt; fallback-mekanismen kobler i etterkant
Kiosk-svar mangler i Landax Videresending feilet Sjekk SurveySubmissions.ErrorMessage, resend
400-feil på avvikslister $expand i OData-spørringen Kjent — proxyen stripper $expand og beriker separat

10. Begrensninger

  • Skjemadefinisjoner kan ikke redigeres fra appen — kun i Landax.
  • Avdelingsfeltet på kiosk-tokens er metadata, ikke filtrering.
  • Ingen offline-kø i appen for autentiserte innsendinger (kun kiosk har lokal buffer).
  • Landax nede ⇒ skjema- og avviksmodulen er utilgjengelig i sanntid.

(Verifisert i API LandaxController/SurveyController/SurveyKioskController, Knapphus.Landax.Client-biblioteket og landax-survey-api.service.ts.)

Relaterte sider