Gå til innhold

Digpro-integrasjon

Digpro er et planleggings- og arbeidsstyrings-system særlig brukt i elektro- og nettverksbransjen. ePortal har fire separate Digpro-adaptere som kjøres via Konti Connect-modulen. Hver adapter er sin egen integrasjonstype og settes opp som en egen integrasjon med eget konfig-sett.

Adapter (TypeCode) Retning Hovedoppgave
DigproProjectSync ePortal → Digpro Synker prosjekter fra wv_Time_Proj til Digpro Organizer (/organizer/task/...)
DigproActivitySync Digpro → ePortal Henter workflow-aktivitetstyper og lagrer arbeidsordrer i ePortal
DigproTimeSync ePortal → Digpro Eksporterer godkjente timeregistreringer som timerapporter i Digpro
DigproWorkOrderCostSync ePortal → Digpro Eksporterer eksterne kostnader (wv_WorkOrder_ExternalCost) per AO til Digpro

Autentisering: Alle Digpro-adaptere bruker Basic Auth mot Digpro REST API (Authorization: Basic base64(username:password)). Det er ingen OAuth, ingen client-credentials og ingen sesjons-token. Se DigproApiService.cs:39-50. Karakteristisk: Digpro-timer kommer inn i ePortal som ukontrollerte og ugodkjente (wrChecked = 0, wrApproved = 0). Verken Digpro-adapterne eller Integration-API-innskrivingen (wv_Time_WageReg_ins) setter wrChecked — kolonnen defaulter til 0. For å godkjenne dem i overordnet godkjenning må leder enten først kjøre «Kontroller timer», eller bruke «Godkjenn også ukontrollerte timer»-toggelen. Timer som allerede er eksportert til Digpro (wrExported = 1) må også være med i datauttrekket — se godkjenningsflyten nedenfor.


Tilgang

Hvem Hva trengs
Hos kunden Digpro-installasjon med REST API tilgjengelig (/dpserver/rest), pluss en tjenestebruker for ePortal
Hos Konti Administrator-tilgang til Konti Connect-modulen
Nettverk ePortal-API må nå Digpro REST-endepunktet over HTTPS

Forutsetninger

  • Digpro-installasjon med REST API aktivert (Organizer-modulen for prosjekt/aktivitet, timerapport-modulen for timer)
  • Egen Digpro-bruker for ePortal med tilgang til relevante moduler (les og skriv)
  • ePortal har Konti Connect aktivert
  • Time-flyt avklart med kunden (hvem godkjenner Digpro-timer, og når)

Konfigurasjon — feltforklaring

Felles autentiserings- og konfignøkler (felles for alle adaptere) — konfigureres som ConfigurationJson i Konti Connect:

Felt Type Påkrevd Hva det betyr
BaseUrl String Ja Full URL til Digpro REST-roten, inkludert /dpserver/rest, f.eks. https://digpro.example.com/dpserver/rest. Verifiseres mot tom verdi i adapter (DigproActivitySyncAdapter.cs:285, DigproProjectSyncAdapter.cs:260, DigproTimeSyncAdapter.cs:371, DigproWorkOrderCostSyncAdapter.cs:358)
Username String Ja Brukernavn til Digpro REST-bruker (Basic Auth)
Password String (hemmelighet) Ja Passord til Digpro REST-bruker. Lagres kryptert via IntegrationService
App String Nei (default per adapter) Digpro app-kontekst som sendes som query-parameter (app=...). Standard: fpp for ProjectSync/ActivitySync/WorkOrderCostSync, fpp_ten for TimeSync
DebugLogging Boolean Nei (default false) Detaljert logging av API-kall og data. Kun for feilsøking

DigproProjectSync — egne felter

Felt Type Påkrevd Default Hva det betyr
DefaultSubtype Integer Nei 3 Standard dp_subtype for nye prosjekter i Digpro. Kan overstyres per prosjekt via wv_Time_Proj.projSubtype (DigproProjectSyncAdapter.cs:267)

DigproActivitySync — egne felter

Felt Type Påkrevd Default Hva det betyr
StartDate String (yyyy-MM-dd) Nei (tom) Synker kun arbeidsordre opprettet fra og med denne datoen. Tom = alle (DigproActivitySyncAdapter.cs:71)
EnableDeltaSync Boolean Nei false true = bruker Digpro dp_mod-felt for å hente kun rader endret siden forrige kjøring. false = full synk hver gang (DigproActivitySyncAdapter.cs:66)

DigproTimeSync — egne felter

Felt Type Påkrevd Default Hva det betyr
StartDate String (yyyy-MM-dd) Nei (tom) Kun eksporter timer fra og med denne datoen. Tom = alle (DigproTimeSyncAdapter.cs:89)
RequireApproval Boolean Nei true true = kun eksporter timer med wrApproved=1. false = eksporter alle timer uavhengig av godkjenning (DigproTimeSyncAdapter.cs:74)
EnableDeltaSync Boolean Nei false true = synker også oppdaterte timer (endret etter forrige kjøring) via PATCH. false = kun nye timer eksporteres (DigproTimeSyncAdapter.cs:76)
LastSyncTimestamp DateTime (ISO) Nei (null) Brukes internt sammen med EnableDeltaSync for å huske siste vellykkede kjøring (DigproTimeSyncAdapter.cs:82)

DigproWorkOrderCostSync — egne felter

Felt Type Påkrevd Default Hva det betyr
CostField String Nei cost_other Hvilket Digpro-kostnadsfelt verdien skrives til (DigproWorkOrderCostSyncAdapter.cs:71)
TransType String Nei COST Transaksjonstype i Digpro (DigproWorkOrderCostSyncAdapter.cs:72)
InvertAmount Boolean Nei false Multipliserer beløp med -1 ved sending (samme rolle som i Trimble-adapteren) (DigproWorkOrderCostSyncAdapter.cs:73)
RetryFailed Boolean Nei true Tar med rader som tidligere feilet i neste kjøring (DigproWorkOrderCostSyncAdapter.cs:75)
StartDate String (yyyy-MM-dd eller yyyyMMdd) Nei (tom) Filtrerer kostnader til Date >= StartDate (DigproWorkOrderCostSyncAdapter.cs:82)

Eksempel ConfigurationJson (DigproTimeSync)

{
  "BaseUrl": "https://digpro.example.com/dpserver/rest",
  "Username": "<din-digpro-tjenestebruker>",
  "Password": "<passord>",
  "App": "fpp_ten",
  "StartDate": "2026-01-01",
  "RequireApproval": true,
  "EnableDeltaSync": false,
  "DebugLogging": false
}

Hemmelig håndtering: Password krypteres når den lagres via IntegrationService. Tjenester som leser config må bruke GetDecryptedConfigAsync (ikke FromIntegration direkte). Se Sette opp ny integrasjon i Konti Connect.


Slik gjør du — oppsett

1. Opprett en Digpro-tjenestebruker

I Digpro-administrasjonen:

  • Opprett en dedikert REST-bruker for ePortal (anbefalt: eportal-integrasjon)
  • Gi tilgang til Organizer-modulen (for prosjekt/aktivitet) og timerapport-modulen
  • Verifiser at REST-endepunktet /dpserver/rest/organizer/task/... svarer 200 med Basic Auth

2. Opprett integrasjon i Konti Connect

I ePortal → Konti Connect → Ny integrasjon:

  • Velg adaptertype (DigproProjectSync, DigproActivitySync, DigproTimeSync eller DigproWorkOrderCostSync)
  • Fyll inn BaseUrl, Username, Password som minimum
  • Sett øvrige adapter-spesifikke felter (App, StartDate, RequireApproval osv.) basert på case
  • Sett kjøreplan (typisk daglig)

3. Test første kjøring

  • Bruk Kjør nå i Konti Connect → integrasjonen
  • Følg kjøringsloggen
  • For DigproTimeSync: sjekk at riktige wrApproved-statuser eksporteres og at LastSyncTimestamp skrives ved fullført kjøring

4. Sett godkjenningsflyt (gjelder Digpro-timer i ePortal)

Digpro-timer kommer inn ukontrollerte (wrChecked = 0). DigproActivitySync synker aktivitetstyper/arbeidsordrer (wv_Digpro_Activities), ikke timeregistreringer, og setter ikke wrChecked. Avklar med kunden hvordan timene skal godkjennes:

  • Enten la leder kjøre «Kontroller timer» først, og deretter godkjenne, eller
  • la leder godkjenne direkte i overordnet godkjenning med «Godkjenn også ukontrollerte timer»-toggelen på (per release v2.91.0).

Godkjenningsflyt for Digpro-timer

Faktisk flyt (verifisert mot adapter- og innskrivingskoden):

  1. Timene kommer inn ukontrollerte og ugodkjente (wrChecked = 0, wrApproved = 0). Ingen Digpro-adapter eller Integration-API-innskriving setter wrChecked — kolonnen defaulter til 0.
  2. Leder godkjenner via overordnet godkjenning med toggelen «Godkjenn også ukontrollerte timer» på (alternativt kjøres «Kontroller timer» først).
  3. Godkjente timer går videre til lønnskjøring og fakturering.

Toggle (v2.91.0): «Godkjenn også ukontrollerte timer» lar leder godkjenne timer som ikke har vært gjennom «Kontroller timer» — nødvendig nettopp fordi Digpro-timer kommer inn ukontrollerte.

Eksporterte timer (rettet 2026-06-26, migrasjon 20260626900001): Timer som er sendt til Digpro av DigproTimeSync får wrExported = 1. Datauttrekket til overordnet godkjenning (wv_Time_WageReg_GetNotApproved_V2) ekskluderte tidligere alle wrExported = 1-rader, slik at slike timer ble talt som «ikke godkjent» i oversikten men aldri nådde godkjenningssteget. Filteret er fjernet for ugodkjente rader, så eksporterte-men-ugodkjente Digpro-timer kan nå godkjennes.


Sikkerhet

  • API-nøkler mellom Digpro og Konti Connect lagres kryptert
  • Bruk dedikert eksport-konto hos Digpro
  • Aldri del API-nøkler
  • Mappings audites — endring krever godkjenning

Vanlige problemer

Timer kommer ikke inn

  • Sjekk at Digpro sin eksport faktisk kjørte (Digpro-logg)
  • Sjekk Konti Connect mottak-logg
  • Sjekk ansatt-mapping — ukjente ansatte hopper over
  • Sjekk wagetype-mapping — ukjente typer hopper over

"Ingen timer er kontrollert"-feilmelding i godkjenning

Digpro-timer kommer inn ukontrollerte (wrChecked = 0), så uten tiltak finner overordnet godkjenning ingen kontrollerte timer å godkjenne. To ting kan gi denne feilen:

  1. Ukontrollerte timer: Skru på toggelen «Godkjenn også ukontrollerte timer» i overordnet godkjenning (per release v2.91.0).
  2. Eksporterte timer: Hvis timene allerede er sendt til Digpro (wrExported = 1), ble de tidligere ekskludert fra datauttrekket og talt som «ikke godkjent» uten å kunne godkjennes. Rettet 2026-06-26 (migrasjon 20260626900001); sørg for at klienten har kjørt denne migrasjonen.

Timer kommer som duplikater

Sjekk at samme Digpro-eksport ikke kjører to ganger. Konti Connect bruker idempotency-nøkkel — duplikater bør avvises automatisk, men hvis ePortal-data ble slettet og re-importert kan duplikater oppstå.

Wagetype matcher ikke lønnsavtale

Digpro har egen wagetype-konvensjon. Sjekk mapping mot ePortal sin lønnsavtale-spesifikke wagetype-tabell.

Timer kommer på feil ansatt

Ansatt-mapping er feil. Sjekk Digpro-bruker-ID → ePortal-bruker-ID-mapping i Konti Connect.


Relaterte sider