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) setterwrChecked— 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:
Passwordkrypteres når den lagres viaIntegrationService. Tjenester som leser config må brukeGetDecryptedConfigAsync(ikkeFromIntegrationdirekte). 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,DigproTimeSyncellerDigproWorkOrderCostSync) - Fyll inn
BaseUrl,Username,Passwordsom minimum - Sett øvrige adapter-spesifikke felter (
App,StartDate,RequireApprovalosv.) 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 riktigewrApproved-statuser eksporteres og atLastSyncTimestampskrives 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):
- Timene kommer inn ukontrollerte og ugodkjente (
wrChecked = 0,wrApproved = 0). Ingen Digpro-adapter eller Integration-API-innskriving setterwrChecked— kolonnen defaulter til 0. - Leder godkjenner via overordnet godkjenning med toggelen «Godkjenn også ukontrollerte timer» på (alternativt kjøres «Kontroller timer» først).
- 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 avDigproTimeSyncfårwrExported = 1. Datauttrekket til overordnet godkjenning (wv_Time_WageReg_GetNotApproved_V2) ekskluderte tidligere allewrExported = 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:
- Ukontrollerte timer: Skru på toggelen «Godkjenn også ukontrollerte timer» i overordnet godkjenning (per release v2.91.0).
- 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 (migrasjon20260626900001); 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.