Gå til innhold

Konti Connect-modulen

Konti Connect er ePortal sin integrasjonsmodul for å sette opp, kjøre og overvåke integrasjoner mot eksterne systemer (regnskap, ERP, HR, GPS, m.m.). Hver integrasjon er en konkret instans av en integrasjonstype (en adapter som ligger ferdig i ePortal) — du velger type, gir den navn og konfigurasjon, og bestemmer hvor ofte den skal kjøres.

Ikke å forveksles med Connect API — som er det eksterne REST-API-et tredjeparts-utviklere bruker for å integrere MOT ePortal. Konti Connect er hvordan ePortal kobler seg TIL eksterne systemer (samt en av adapterne, KontiConnect, som henter inn eksterne kostnader via Konti Connect API).

I denne delen betyr konsulent en Konti-konsulent som hjelper kunden gjennom Konti sin supportprosess. Se Tekniker eller konsulent.

Tilgang

Hvem Hva trengs
Rolle Administrator-tilgang i tenanten — sjekken er userAccess.moduleID === 27 && (new === true || new === 1) (integration-list.component.ts:115). Uten denne vises «Ingen tilgang»-meldingen i stedet for siden.
Modul Konti Connect (moduleId: 27) — guarden er satt på alle rutene under /konti-connect/integrations (konti-connect-routing.module.ts:18).
Lisens Modulen aktiveres per tenant av Konti via wv_Module / wv_DomainModule.

Hovedlisten med kortvisning, filterfeltet øverst, og minst én integrasjon i hver kategori (Import, Export, Bidirectional)

Slik ser modulen ut

Modulen består av fire skjermbilder under /konti-connect:

Skjermbilde Rute Hovedinnhold
Integrasjonsliste /konti-connect/integrations Søk + filter + valg av visning (kort / liste), grupperingsalternativer, og «Opprett ny»-knapp (integration-list.component.html:1).
Integrasjonsdetalj /konti-connect/integrations/:id Tab-navigasjon med Oversikt, Konfigurasjon, Historikk, og (per adapter) Bilagslogg, Nye og endrede timer, Nye bilag til bokføring, Nye bilag til Business NXT, Bilagshistorikk og Recovery (integration-detail.component.html:40).
Editor /konti-connect/integrations/new og /:id/edit Veiviser-stil med 5 tabber: Grunnleggende, Frekvens & Parametere, Konfigurasjon, Feltmapping, Avansert (integration-editor.component.html:32).
Bilagsimport /konti-connect/voucher-import Frittstående side (ikke knyttet til en enkelt integrasjon) for å importere avregningsfiler fra Fjordkraft/Altibox som bokføringsbilag — faner Import, Mapping, Historikk (konti-connect-routing.module.ts:40-44). Se Bilagsimport.

Funksjoner i modulen

Integrasjonsliste

  • Søk på navn, type, beskrivelse eller kategori.
  • Filtre på integrasjonstype (alle typer som er aktivert i wv_IntegrationType) og kategori (Import / Export / Sync / Digpro — kategorien kommer fra wv_IntegrationType.Category).
  • Gruppering av listen: ingen, etter type eller etter kategori (standard er kategori) (integration-list.component.ts:30).
  • Visningsmodus — kortvisning (standard) eller listevisning, lagres i localStorage under integrations-view-mode (integration-list.component.ts:62).
  • Aktiv/inaktiv-bryter per integrasjon — slår av automatisk kjøring uten å slette konfigurasjon eller historikk (integration-list.component.ts:369).
  • Kjør nå-knapp — trigger en kjøring umiddelbart og navigerer til Historikk-tabben på detaljbildet (integration-list.component.ts:448). Knappen er deaktivert hvis integrasjonen ikke er aktiv.
  • Token-utløpsvarsel — viser «Utløper snart» (lokal kalkulasjon, mindre enn 7 dager til oAuthTokenExpiresAt) (integration-list.component.ts:596).
  • Globale innstillinger (dropdown øverst til høyre): Konti Connect API-credentials, Microsoft Graph (M365) og Azure Storage. Alle åpnes som modal (integration-list.component.ts:301).

Hovedlisten i kortvisning med kategorigruppering og minst én aktiv + én inaktiv integrasjon

Detaljbilde — tabber

Tabbene som vises avhenger av adapter-typen (integration-detail.component.html:60):

Tab Når vises den Innhold
Oversikt Alltid Navn, type, beskrivelse, frekvens, status, sist/neste kjøring, opprettet/endret.
Konfigurasjon Alltid Hele konfigurasjons-JSON vises read-only. Toggle for «Debug-logging» som skriver GraphQL/REST-payloads til kjøringsloggen.
Historikk Alltid Sideinndelt liste over alle kjøringer (sidestørrelse 10/20/50/100). Per kjøring vises Status, Starttid, Varighet, antall poster prosessert/vellykket/feilet/hoppet over, trigger og utfører. Detaljer åpnes i en under-tab med Steg, Logg, eller Postdetaljer.
Bilagslogg Kun for WorkOrderMaterialVoucherExport Liste over eksporterte bilag-batcher med mulighet til å nullstille en hel batch eller enkeltrad for ny eksport (integration-detail.component.html:851).
Nye og endrede timer Kun for DigproTimeSync Forhåndsvisning av timer som vil bli eksportert ved neste kjøring (integration-detail.component.html:588).
Nye bilag til bokføring Kun for WorkOrderMaterialVoucherExport Forhåndsvisning av bilag som er klare for eksport (integration-detail.component.html:636).
Nye bilag til Business NXT Kun for VismaBusinessNXT_Vouchers Forhåndsvisning av ventende bilag i eksportkøen til Business NXT, server-cappet med reell totaltelling (integration-detail.component.html:672).
Bilagshistorikk Kun for VismaBusinessNXT_Vouchers Arkiverte/eksporterte NXT-bilag med søk, multi-select og «Gjenopprett»-knapp som legger valgte bilag tilbake i eksportkøen (integration-detail.component.html:711).
Recovery Kun for VismaBusinessNXT_Orders Viser uferdige ordrelinjeoppdateringer fra den eksisterende wv_Integration_SyncTracking-state-maskinen. Pending og LinesDeleted gjenopptas automatisk ved neste kjøring. Unknown krever at operatøren kontrollerer faktiske ordrelinjer i Business NXT, skriver begrunnelse og åpner raden for kontrollert replay; handlingen blir synlig i Historikk som ManualRecovery.

Detaljbildet har også «Kjør», «Rediger» og «Slett»-knapper i headeren. Slett er en soft delete via DELETE-endepunktet (konti-connect.service.ts:97).

Detaljbildet på en NXT-Vouchers eller WorkOrderMaterialVoucherExport-integrasjon med tabbene synlige

Editor — felt og validering

Skjemaet bygges i integration-editor.component.ts:194-215 med følgende felt:

Felt Standardverdi Validering
Integrasjonstype (ingen) Påkrevd
Navn tomt Påkrevd, maks 200 tegn
Beskrivelse tomt Maks 1000 tegn
Frekvens Manual Påkrevd. Verdier: Manual, Daily, Weekdays, Weekly, Monthly, Custom
Tidspunkt (for daglig/ukentlig/månedlig) 09:00 Regex HH:mm
Dag i måneden (for månedlig) 1 Min 1, maks 31
Cron-uttrykk (for Custom) tomt 5-feltsmønster (min/time/dag/måned/ukedag) — backend bruker Cronos for full parsing
Aktiv true
Konfigurasjon (JSON) {} Må være gyldig JSON, valideres når brukeren prøver å lagre
Parametertype None None, PreviousMonth, PreviousWeek, LastNDays, Custom
Antall dager (for LastNDays) 30
Aktiver delta-synk true
Fallback til full synk hvis delta feiler true

Editoren har en GUI-modus og en rå JSON-modus for konfigurasjonen. «Last mal»-knappen fyller inn et adapter-spesifikt eksempel (typiske felt og dummy-verdier) — malen merger inn i eksisterende konfigurasjon uten å overskrive verdier brukeren allerede har satt (integration-editor.component.ts:960-1000).

Tallfelt i skjema-modus lagres som ekte tall i konfigurasjonen. Desimaler og null er gyldige der adapteren forventer det; tømmer du et valgfritt tallfelt, fjernes nøkkelen og adapteren bruker sin egen standardverdi (integration-editor.component.ts:2627-2656). Kravet om hele tall ≥ 1 gjelder kun de validerte Visma Business NXT-feltene — se Sette opp ny integrasjon.

Editor-tab «Grunnleggende» med type-velger åpen som viser tilgjengelige adaptere

Tilgjengelige integrasjonstyper (adaptere)

Adapterne ligger ferdig i ePortal og seedes inn i wv_IntegrationType via migrasjoner. Et nytt forslag i veiviseren er en av disse:

Kategori TypeCode Hva
Import Abax GPS-turer fra Abax → kilometergodtgjørelse
Import VismaPayrollImport Ansatte fra Visma Lønn
Import SimployerEmployeeImport Ansatte fra Simployer
Import SimployerAbsenceImport Fravær fra Simployer
Import KontiConnect Eksterne kostnader fra Visma Business (via Konti Connect API)
Import PowerOfficeGoMasterDataImport Kunder/leverandører/produkter/kontoplan fra PowerOffice Go
Import PowerOfficeGoEmployeeImport Ansatte fra PowerOffice Go
Import PowerOfficeGoTimeKpiImport Time-KPI fra PowerOffice Go
Import TrimbleMaterialImport Materialtransaksjoner fra Trimble Cityworks
Export VismaPayrollExport Timedata til Visma Lønn
Export PowerOfficeGoInvoiceExport Fakturaer til PowerOffice Go
Export WorkOrderMaterialVoucherExport Materialforbruk → bilag i regnskap
Export CrmActorExport CRM-aktører til eksternt system
Digpro DigproActivitySync Workflow-aktivitetstyper fra Digpro
Digpro DigproTimeSync Godkjente timer til Digpro
Digpro DigproProjectSync Prosjekter til Digpro
Digpro DigproWorkOrderCostSync Arbeidsordrekostnader fra Digpro
Sync TrimbleProjectSync Prosjekter til/fra Trimble NIS
Sync TrimbleWorkOrderCostSync Arbeidsordrekostnader til Trimble NIM
Sync M365Planner Microsoft Planner-oppgaver
Sync M365Todo Microsoft To Do-oppgaver
Bidirectional VismaBusinessNXT_Products Produkter mellom ePortal og NXT (GraphQL)
Import VismaBusinessNXT_Accounts Kontoplan fra NXT
Bidirectional VismaBusinessNXT_Actors Kunder og leverandører til/fra NXT
Bidirectional VismaBusinessNXT_OrgUnits Organisasjonsenheter (12 nivåer)
Import VismaBusinessNXT_Vouchers Bilag fra NXT
Import VismaBusinessNXT_Orders Salgs- og innkjøpsordre fra NXT
Export VismaBusinessNXT_TimeRegs Replikering av timeregistreringer til NXT

Den faktiske listen leses fra databasen ved sidelast (kallet getIntegrationTypes(activeOnly: true)), så typer som er deaktivert i wv_IntegrationType vises ikke i veiviseren.

Delta-synk og OAuth-token

Disse to feltene følger med på selve integrasjonsraden (synlig i kortet i listen):

  • Delta-synk — når enableDeltaSync = true henter adapteren kun rader endret siden forrige vellykkede kjøring (lagret i lastSuccessfulSyncDate). Antallet rader som ble synket sist vises i kortet (integration.model.ts).
  • OAuth-token — feltene hasOAuthToken og oAuthTokenExpiresAt kommer fra backend per integrasjon. Listen sammenligner utløpsdato med dagens dato og merker tokens med mindre enn 7 dagers gjenværende levetid med en advarsel.

Bilagslogg (Voucher Export Log)

Egen tab kun for WorkOrderMaterialVoucherExport. Viser per eksportkjøring:

  • Dato, bilagsnummer, kildetype, antall rader, beløp, status (OK / Delvis / Feilet).
  • Drill-down per kjøring viser hver bilagslinje (debet/kredit, arbeidsordre, prosjekt, m.m.).
  • Nullstill kjøring — fjerner bilag-flagget på alle linjer i batchen så de kan eksporteres på nytt; bilagslinjene og loggraden slettes.
  • Nullstill rad — samme, men for én enkelt rad.

Begge handlingene bekreftes via en NgbModal-dialog før de utføres (integration-detail.component.ts:52).

Adapteren VismaBusinessNXT_Vouchers har en tilsvarende, men separat, Bilagshistorikk-tab (se tabellen over) — samme idé (arkiverte bilag), men med søk og et «Gjenopprett»-knapp per rad/utvalg i stedet for nullstill-per-batch/rad.

Bilagslogg-tabben med minst én batch som har drill-down åpen

Globale innstillinger

Dropdownen «Innstillinger» øverst på listen åpner tre uavhengige modaler:

Modal Innhold
Konti Connect API OAuth-credentials (Client ID, Client Secret, Tenant ID, Token URL, API Base URL) for å koble ePortal mot Konti sitt sentrale Connect-API. Har egen «Test tilkobling»-knapp.
Microsoft Graph (M365) Credentials og innstillinger for Graph-baserte adaptere (Planner, To Do, Outlook).
Azure Storage Storage-account-konfigurasjon brukt på tvers av adaptere som lagrer filer.

Innstillingene lagres globalt (per tenant) og deles av alle integrasjoner som trenger dem — KontiConnect-adapteren bruker for eksempel disse credentials og ikke per-integrasjon-credentials: den injiserer IKontiConnectAuthService og leser KontiConnect.ApiBaseUrl gjennom ISettingsService (KontiExternalCostImportAdapter.cs:33, :89).

Slik gjør du — opprette en ny integrasjon

Se prosesskartet for Konti Connect for sammenhengen mellom oppsett, aktivering, scheduler, adapterkjøring, overvåkning og retry.

  1. Gå til Konti Connect → Integrasjoner. Trykk «Opprett ny integrasjon» øverst til høyre.
  2. På tabben Grunnleggende, velg integrasjonstype (f.eks. Visma Business NXT - Produkter), gi den et navn og en valgfri beskrivelse.
  3. Gå til Frekvens & Parametere. Velg om integrasjonen skal kjøres Manuell, Daglig, Ukedager, Ukentlig, Månedlig eller Tilpasset (cron).
  4. Gå til Konfigurasjon. Trykk «Last mal» for å fylle inn dummy-verdier for adapterens forventede felt. Rediger dem til faktiske credentials/innstillinger (helst via GUI-modus, eventuelt rå JSON).
  5. Gå til Feltmapping hvis adapteren støtter konfigurérbar mapping (NXT-adapterne har ferdige mappinger og hopper over dette steget).
  6. Avansert kan du slå av/på delta-synk og fallback til full synk.
  7. Trykk Lagre nederst. Integrasjonen lander i listen som aktiv.
  8. (Valgfritt) Verifiser oppsettet ved å trykke «Kjør» på listen eller detaljbildet — du blir tatt direkte til Historikk-tabben for å se resultatet.

Frekvens & Parametere-tabben med Daily valgt og parameter «Forrige måned»

Slik gjør du — kjøre en integrasjon manuelt

  1. Finn integrasjonen i listen.
  2. Trykk «Kjør»-knappen (avspillings-ikon). Knappen er deaktivert hvis integrasjonen er inaktiv — slå den på først.
  3. Du blir tatt til detaljbildet, Historikk-tabben, der den nye kjøringen vises øverst med status Running til den er ferdig.
  4. Klikk på kjøringen for å se Steg, Logg og Postdetaljer.

Slik gjør du — håndtere NXT ordrelinje-recovery

Når NXT ordreeksport oppdaterer eksisterende ordre, lagres ønsket linjepayload før gamle linjer slettes. Hvis avbruddet skjer før linjene sendes, gjenopptas raden automatisk ved neste kjøring. Hvis avbruddet skjer mens sending pågår, settes raden til Unknown for å unngå blind retry.

  1. Åpne Konti Connect → Integrasjoner → NXT ordreintegrasjonen.
  2. Gå til Recovery-fanen.
  3. For rader med Unknown: åpne ordren i Business NXT og kontroller hvilke linjer som faktisk ligger der.
  4. Klikk Verifisert, prøv igjen, skriv hva som ble kontrollert, og bekreft.
  5. Kjør integrasjonen på nytt. Raden flyttes tilbake til Pending, og neste kjøring bruker lagret payload for kontrollert replay.

Ikke rett wv_Integration_SyncTracking direkte i databasen. Recovery-handlingen bruker rowversion-kontroll og skriver en ManualRecovery-oppføring i kjøringshistorikken.

Slik gjør du — pause en integrasjon

I dag finnes det ingen separat «Pause»-handling. Bruk aktiv/inaktiv-bryteren på integrasjonen for å stoppe automatisk kjøring uten å miste konfigurasjon, credentials eller historikk:

  1. På detaljbildet eller i listen, flipp bryteren til Inaktiv.
  2. Bekreft via toast — meldingen «Integrasjon ‹navn› deaktivert» bekrefter at oppdateringen gikk gjennom (integration-list.component.ts:388).
  3. Sett bryteren tilbake til Aktiv når du vil at den skal kjøre igjen.

Vanlige problemer

Melding Hva betyr det
«Ingen tilgang» Brukeren mangler userAccess.new på modul-ID 27. Be administrator gi tilgang under Innstillinger → Modul-tilganger.
«Integrasjonen må være aktiv for å kjøres» Aktiver integrasjonen via aktiv/inaktiv-bryteren før du trykker Kjør.
«Kunne ikke kjøre integrasjon» Backend returnerte feil — åpne kjøringsdetaljen i Historikk for å se loggen. Slå på «Debug-logging» på Konfigurasjon-tabben midlertidig for å få detaljerte API-responser i loggen.
«Kunne ikke laste integrasjoner» Typisk nettverks- eller autentiseringsfeil. Last siden på nytt og verifiser at API-en svarer.
Konfigurasjonsfeltet farges rødt med «Ugyldig JSON-format» JSON-en i Konfigurasjon-tabben kan ikke parses. Bytt til GUI-modus, eller bruk «Formater JSON»-knappen for å se hvor parsefeilen er.
«Utløper snart»-merket på integrasjonskortet OAuth-tokenet utløper innen 7 dager — re-autoriser ved å åpne integrasjonen og oppdatere OAuth-credentials på Konfigurasjon-tabben.

Relaterte sider