Skip to Content

Odoo Sporingsfelt Forklart: Overvåk Endringer Med Sikkerhet

Lær hvordan sporingsattributtet fungerer i Odoo, når du skal bruke det, og hvordan du konfigurerer det i datamodellen din
6. mars 2026 etter
Odoo Sporingsfelt Forklart: Overvåk Endringer Med Sikkerhet
Dasolo
| No comments yet

Hvis du noen gang har lurt på hvem som endret et felt på en Odoo-post og når, er sporingsfunksjonen svaret ditt.


Odoo lar deg overvåke endringer på spesifikke felt og registrere hver modifikasjon direkte i chatteren til posten. Dette gir teamene full synlighet i hvordan forretningsdata utvikler seg over tid, uten å bygge et eget revisjonssystem.

Enten du konfigurerer Odoo Studio-felt eller skriver et tilpasset Python-modul, er det å forstå hvordan feltsporing fungerer en kjernekomponent i arbeidet med Odoo-datamodellen. Denne guiden tar deg gjennom alt du trenger å vite.

Hva er sporingsfeltet i Odoo


I Odoo er sporing ikke en felttype i seg selv. Det er en attributt du kan aktivere på eksisterende felt, som Char, Many2one, Selection, Integer eller Date-felt. Når sporing er aktivert på et felt, registrerer Odoo hver verdiendring i chatteren, og viser den gamle verdien, den nye verdien, datoen og brukeren som er ansvarlig.

Dette vises i grensesnittet som en loggnotat i meldingstråden til posten. For eksempel, på en CRM-lead kan du se: "Fase endret fra Ny til Kvalifisert", logget automatisk i det øyeblikket en salgsrepresentant flytter avtalen fremover.

Tracking-attributtet er tilgjengelig på de fleste standard Odoo-felt typer og kan aktiveres gjennom Odoo Studio eller direkte i Python-kode som en del av et tilpasset Odoo utviklingsprosjekt.

Hvilke data lagrer det

Hver sporet endring lagres som en mail.message post knyttet til dokumentet. Meldingen inneholder:

  • Feltetiketten som endret seg
  • Den forrige verdien (før endringen)
  • Den nye verdien (etter endringen)
  • Tidsstempelet for modifikasjonen
  • Brukeren som gjorde endringen

Denne historikken er alltid synlig for alle med lese tilgang til posten. Det krever ingen ytterligere konfigurasjon utover å aktivere sporing på feltet.

Hvordan feltet fungerer


For at sporing skal fungere, må modellen bruke mail.thread mixin. Denne mixinen gir meldings- og loggingsinfrastrukturen som driver chatteren. De fleste standard Odoo forretningsmodeller, inkludert sale.order, crm.lead, account.move, og stock.picking, arver allerede fra mail.thread.

Når en bruker lagrer en post som har endrede sporingsfelt, sammenligner Odoo de gamle og nye verdiene og skriver automatisk en loggmelding til chatteren. Ingen ytterligere handling er nødvendig fra brukeren.

Teknisk atferd i Odoo ORM

Fra et teknisk ståsted, fanger Odoo ORM opp skrivinger på modellnivå. Når et write()-anrop endrer et sporet felt, fanger rammeverket opp den forrige verdien, anvender endringen, og oppretter deretter en mail.message-post som beskriver forskjellen.

I Python aktiveres sporing ved å legge til tracking=True i en feltdefinisjon i din Odoo Python-feltoppsett:

state = fields.Selection(
    [('draft', 'Utkast'), ('confirmed', 'Bekreftet')],
    tracking=True
)

Du kan også bruke et prioritetsnummer fra 1 til 10 for å kontrollere visningsrekkefølgen når flere sporingsfelt endres i samme lagringsoperasjon. Lavere tall vises først i loggmeldingen:

partner_id = fields.Many2one('res.partner', tracking=1)
priority = fields.Selection(tracking=10)

Interaksjon med andre poster

Sporte endringer lagres direkte på posten der feltet befinner seg. De sprer seg ikke automatisk til relaterte poster. Hvis du ønsker sporing på tvers av relaterte modeller, må du aktivere det separat på hver modell der det er viktig.

Dette er med vilje. Odoo-datamodellen holder revisjonsspor tett på objektet som blir endret, noe som gjør det enkelt å gjennomgå historikken uten å navigere gjennom flere relaterte poster.

Forretningsbrukstilfeller


Her er fem praktiske eksempler der aktivering av feltsporing gir reell verdi i dag-til-dag-operasjoner.


1. CRM og salgsprosessledelse

Salgsgrupper trenger å vite når et lead har flyttet fra en fase til en annen og hvem som gjorde den endringen. Å aktivere sporing på stage_id-feltet i CRM-modulen gir ledere en komplett tidslinje for hver statusovergang.

Dette hjelper med å identifisere hvor avtaler stopper opp, støtter pipeline-gjennomganger, og gjør det lettere å coache salgsteam basert på faktiske data i stedet for hukommelse.


2. Kjøps- og fakturagodkjenningsarbeidsflyter

I regnskap og innkjøp krever revisjonskompatibilitet ofte å vite hvem som godkjente et dokument og når. Å spore state-feltet på innkjøpsordrer eller leverandørregninger gjør denne historikken umiddelbart tilgjengelig i chatteren uten behov for en egen revisjonsmodul.

Dette er spesielt nyttig i selskaper som er underlagt finansielle kontroller eller interne revisjonskrav.


3. Lager- og beholdningsstyring

Når produktmengder eller lagringssteder endres uventet, hjelper sporing av felt på lagerbevegelser eller produkter lagerledere med å identifisere kilden til avvik raskt.

I stedet for å grave gjennom logger eller spørre kolleger, er svaret rett der i chatteren til den relevante posten.


4. Kvalitetsstyring av kundedata

Hvis teamet ditt regelmessig oppdaterer kundeposter, kan du spore endringer i kritiske felt som email, phone eller pricelist_id på partnermodellen. Dette opprettholder en historikk over endringer i kontaktdata direkte i CRM, noe som er nyttig for kundeserviceteam og kvalitetsvurderinger av data.


5. HR og ansattregistre

Å spore endringer i felt som stilling, avdeling eller lønnsklasse på ansattregistre sikrer en transparent historikk over eventuelle modifikasjoner. Dette er viktig for HR-kompatibilitet i mange bransjer og gjør interne revisjoner betydelig enklere å gjennomføre.


Opprette eller tilpasse sporingsfeltet


Det er to hovedmåter å aktivere sporing på et felt i Odoo: ved å bruke Odoo Studio for en kodefri tilnærming, eller ved å skrive Python-kode for en fullt teknisk implementering.

Bruke Odoo Studio

Odoo Studio gjør det enkelt å aktivere sporing på eksisterende felt uten å skrive noe kode. Åpne Studio på den relevante modellen, klikk på feltet du ønsker å overvåke, og se etter Track Changes bryteren i feltinnstillingspanelet.

Når det er aktivert, vil alle fremtidige endringer til det feltet vises i chatteren. Dette er den anbefalte tilnærmingen for administratorer og forretningsbrukere som ønsker å legge til sporing som en del av sin odoo tilpasningsarbeidsflyt, uten å involvere en utvikler.

Det samme Studio-grensesnittet kan brukes når du oppretter felt i Odoo fra bunnen av. Når du legger til et nytt tilpasset felt gjennom Studio, kan du aktivere sporing med en gang under opprettelsen av feltet.

Bruke Python i et Tilpasset Modul

For utviklere som bygger eller utvider moduler, legges sporingsattributtet direkte til feltdefinisjonen i modellklassen. Dette er standard praksis i enhver odoo utviklerguide eller odoo teknisk tutorial.

Modellen må også arve fra mail.thread for at sporing skal ha noen effekt. Her er et minimalt eksempel:

from odoo import models, fields

class ProjectTask(models.Model):
    _name = 'project.task'
    _inherit = ['project.task', 'mail.thread']

    x_client_priority = fields.Selection(
        [('low', 'Lav'), ('medium', 'Moderat'), ('high', 'Høy')],
        string='Kundeprioritet',
        tracking=True
    )

Dette er et typisk mønster når du trenger å utvide en eksisterende modell som en del av et odoo utviklingsprosjekt. Feltet oppfører seg som enhver annen odoo databasefeltoppføring, men nå blir hver endring av verdien automatisk registrert.

Viktig Merknad om Tilpassede Modeller

Når du oppretter helt nye tilpassede modeller, må du sørge for å inkludere _inherit = ['mail.thread', 'mail.activity.mixin'] i modelldefinisjonen din. Uten dette vil sporingsattributtet bli ignorert stille, og ingen endringer vil bli registrert i chatteren.

Dette er et punkt som mange utviklere snubler over når de følger en odoo felt tutorial for første gang. Mixin er ikke valgfritt hvis du ønsker at sporing skal fungere.

Beste praksis


Å spore felt er enkelt å sette opp, men enkelt å misbruke. Disse retningslinjene vil hjelpe deg med å få mest mulig ut av funksjonen.

Spor kun felt som betyr noe

Å aktivere sporing på hvert felt skaper støy i chatteren og gjør det vanskeligere å finne relevant historikk. Fokuser på felt som virkelig er nyttige for revisjon: tilstander, faser, ansvarlige brukere, viktige datoer og finansielle verdier.

Bruk prioritetstall for klarhet

Når flere felt spores på samme modell, bruk prioritetstall fra 1 til 10 for å kontrollere hvordan endringer grupperes i loggmeldingen. Dette forbedrer lesbarheten i chatteren, spesielt på modeller med mange sporingsfelt.

Kombiner med tilgangsrettigheter

Sporing er mest nyttig når den kombineres med riktige registreringsregler og tilgangskontroller. Det er lite verdi i å opprettholde en revisjonsspor hvis alle i systemet kan endre det fritt. Sikre datamodellen din før du stoler på chatteren som et revisjonsmekanisme.

Dokumenter dine sporingsfelt

Hold en klar oversikt over hvilke felt som har sporing aktivert, spesielt i delte eller flerutviklerprosjekter. Dette unngår forvirring under kodegjennomganger og forhindrer utilsiktet dobbelsporing etter moduloppgraderinger.

Test før du går live

Verifiser alltid sporingsatferd i et staging-miljø før du distribuerer til produksjon. Noen felttyper, spesielt beregnede eller relaterte felt, kan oppføre seg annerledes enn standard lagrede felt når sporing er involvert.

Vanlige fallgruver


Dette er feilene som oftest oppstår når man arbeider med feltsporing i Odoo.

Glemmer å arve fra mail.thread

Dette er det mest vanlige problemet. Hvis en egendefinert modell ikke arver fra mail.thread, vil sporingsattributtet bli stille ignorert. Ingen feil blir utløst, og ingen loggmeldinger vil vises i chatteren. Verifiser alltid modellens arvkjede når sporing ikke ser ut til å fungere.

Sporing av ikke-lagrte beregnede felt

Beregnete felt kan spores, men bare hvis de er lagret med store=True. Et ikke-lagret beregnet felt har ingen vedvarende verdi i Odoo-databasefeltene, så det er ingenting å sammenligne før og etter en endring. Hvis du prøver å spore et ikke-lagret beregnet felt, vil sporing stille ha ingen effekt.

Aktivering av sporing på for mange felt

Det er fristende å aktivere sporing overalt for å maksimere gjennomsiktighet. I praksis gjør dette chatteren rotete og gjør det faktisk vanskeligere å finne meningsfulle endringer. Vær selektiv og fokuser på felt med reell revisjons- eller driftsverdi.

Forventning om sporing i bulk- eller direkte SQL-operasjoner

Sporing utløses gjennom Odoo ORM når poster endres ved hjelp av den standard write()-metoden. Direkte SQL-oppdateringer, bulkimporter som omgår ORM, eller visse lavnivå API-anrop vil ikke utløse sporing. Hvis du bruker XML-RPC API eller batchoperasjoner, verifiser at skrivingene går gjennom ORM-laget.

Konflikter mellom Studio og Python-definisjoner

Hvis et felt opprinnelig ble opprettet og konfigurert i Odoo Studio med sporing aktivert, vær forsiktig når du også endrer det samme feltet i et Python-modul. Motstridende definisjoner mellom Studio og kode kan føre til uventet oppførsel under moduloppgraderinger eller databaseoppdateringer.

FAQ


Kan jeg spore et felt på hvilken som helst modell i Odoo?

Bare modeller som arver fra mail.thread støtter feltsporing. De fleste standard forretningsmodeller i Odoo inkluderer allerede denne mixin, men egendefinerte modeller må eksplisitt erklære det i sin klasse-definisjon.

Vil aktivering av sporing påvirke ytelsen?

Innvirkningen er minimal for de fleste bruksområder. Hver sporet endring oppretter en mail.message post, som legger til en liten overhead til skriveoperasjonen. For svært høyvolum transaksjonsmodeller, vær oppmerksom på hvor mange felt du sporer for å unngå å opprette et overdrevent antall loggposter.

Kan jeg deaktivere sporing på et felt uten å miste eksisterende historikk?

Ja. Deaktivering av sporing stopper registreringen av nye endringer, men alle eksisterende loggmeldinger i chatteren forblir tilgjengelige. Historikken som allerede er fanget, bevares og vil ikke bli slettet.

Fungerer sporing på Many2many-felt?

Sporing av Many2many-felt støttes i Odoo. Chatteren viser hvilke poster som ble lagt til eller fjernet fra relasjonen, i stedet for å vise en før- og etterverdi. Det fungerer, men husk at visningsformatet er forskjellig fra enkle verdifelt.

Kan jeg bruke sporing uten Odoo Studio?

Absolutt. tracking-parameteren er et standard Python-feltattributt i Odoo-rammeverket. Du kan aktivere det i hvilken som helst tilpasset modul uten å bruke Studio i det hele tatt. Studio gir bare et visuelt, kodefritt grensesnitt for den samme underliggende funksjonaliteten. Dette er en standarddel av enhver Odoo-feltveiledning eller Odoo-utviklerguide.

Konklusjon


Tracking-attributtet er en av de Odoo-funksjonene som stille og rolig tilfører mye verdi uten å kreve mye oppsett. Ved å aktivere det på de riktige feltene gir du teamet ditt en pålitelig revisjonsspor, reduserer tvister om hvem som endret hva, og bygger et grunnlag for bedre datastyring i hele organisasjonen din.

Enten du konfigurerer det gjennom Odoo Studio for en rask kodefri oppsett, eller implementerer det gjennom en tilpasset Python-modul som en del av et bredere Odoo-utviklings- eller Odoo-tilpasningsprosjekt, er resultatet det samme: full synlighet i hvordan forretningsdataene dine endres over tid.

Nøkkelen er å vite hvor du skal bruke det. Fokuser på feltene som driver beslutninger, godkjenninger og ansvarlighet i arbeidsflytene dine, så vil du få mest mulig verdi med svært lite innsats.

Hos Dasolo hjelper vi selskaper med å implementere, tilpasse og optimalisere Odoo for å passe deres spesifikke forretningsprosesser. Enten du trenger hjelp til å designe datamodellen din, aktivere feltsporing på tvers av arbeidsflytene dine, eller bygge tilpassede moduler fra bunnen av, er teamet vårt her for å støtte deg.

Ta kontakt med oss i dag for å diskutere din Odoo-implementering. Kontakt oss og la oss finne den beste tilnærmingen for prosjektet ditt sammen.

Odoo Sporingsfelt Forklart: Overvåk Endringer Med Sikkerhet
Dasolo 6. mars 2026
Share this post
Logg inn to leave a comment