Skip to Content

Odoo Tracking Field: Slik Sporer Du Endringer i Poster tryggt

Forstå hvordan sporingsinnstillingen i Odoo påvirker endringslogg og revisjon, når det er smart å aktivere den, og hvordan du legger den til i modellene dine slik at felter og bevegelser blir loggført automatisk.
6. mars 2026 etter
Odoo Tracking Field: Slik Sporer Du Endringer i Poster tryggt
Dasolo
| No comments yet

Hvis du noen gang har lurt på hvem som endret en verdi i et Odoo-objekt – og når det skjedde – er sporingsfunksjonen svaret.


Odoo kan loggføre endringer på utvalgte felt og legge hvert enkelt endringsspor som en melding i posttråden (chatter) på objektet. Det gir hele teamet innsikt i hvordan data utvikler seg, uten at du må bygge et eget revisjonssystem.

Enten du legger til felt via Odoo Studio eller bygger en løsning med egen Python-modul, er det viktig å forstå hvordan feltsporing fungerer i Odoo-modellen. Denne guiden går gjennom det viktigste du trenger å vite.

Hva er sporingsfeltet i Odoo


I Odoo er ikke «tracking» en egen felttype — det er en egenskap du slår på for eksisterende felt som Char, Many2one, Selection, Integer eller Date. Når et felt har sporing aktivert, registreres tidligere og nye verdi, tidspunktet og hvem som foretok endringen i chatteren.

I grensesnittet vises dette som en loggmelding i dokumentets meldingsstrøm. For eksempel kan en CRM-lead få en automatisk notis som «Fase endret fra Ny til Kvalifisert» straks en selger flytter salget videre.

Sporing kan brukes på de fleste standard felttyper i Odoo og aktiveres enten via Odoo Studio eller direkte i Python-kode som en del av et skreddersydd utviklingsprosjekt.

Hva slags data lagres

Hver registrerte endring lagres som en mail.message knyttet til dokumentet. Meldingen inneholder blant annet:

  • Feltets visningsnavn som ble endret
  • Den tidligere verdien før endringen
  • Den nye verdien etter endringen
  • Tidspunktet for endringen
  • Brukeren som foretok endringen

Denne historikken er synlig for alle som har lesetilgang til objektet. Du trenger ingen ekstra moduler utover å aktivere sporing for feltet.

Slik fungerer funksjonen


For at sporingen skal fungere må modellen arve mail.thread. Denne mixinen gir meldings- og logginfrastrukturen som chatteren bruker. De fleste forretningsmodeller i Odoo som sale.order, crm.lead, account.move og stock.picking arver allerede fra mail.thread.

Når en bruker lagrer et dokument med sporede felt som har endret seg, sammenligner Odoo gammel og ny verdi og skriver automatisk en loggmelding i chatteren — brukeren trenger ikke gjøre noe ekstra.

Teknisk oppførsel i Odoo ORM

Teknisk sett fanger Odoo ORM opp endringer på modellnivå. Når en write()-operasjon endrer et sporet felt, fanges forrige verdi, endringen anvendes, og det opprettes en mail.message som beskriver forskjellen.

I Python aktiverer du sporing ved å angi tracking=True i feltdefinisjonen i modellen:

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

Du kan også bruke et prioritetstall fra 1 til 10 for å styre rekkefølgen når flere felter endres i samme lagring. Lavere tall vises først i loggen.

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

Sporingsendringer og relasjoner

Endringsloggene lagres på selve objektet feltet tilhører og blir ikke automatisk ført videre til relaterte objekter. Om du ønsker historikk på flere modeller, må du aktivere sporing på hver modell separat.

Dette er en bevisst arkitektur: revisjonssporet holdes nær objektet som ble endret, slik at gjennomgang blir enklere uten å navigere gjennom mange relasjoner.

Praktiske forretningsscenarier


Fem nyttige eksempler på når sporing gir reell verdi i hverdagen.


1. CRM og salgspipeline

Selgere og ledere trenger å vite når en lead bytter fase og hvem som gjorde det. Å aktivere sporing på stage_id gir en kronologisk oversikt over alle faseendringer i CRM.

Det gjør det enklere å finne flaskehalser i pipelinen, gjennomføre bedre pipeline-gjennomganger og gi målrettet coaching basert på faktiske hendelser.


2. Innkjøp og godkjenningsflyt

Innen regnskap og innkjøp krever ofte revisjon at du kan vise hvem som godkjente dokumenter og når. Å spore state på innkjøpsordrer eller leverandørfakturaer gir denne historikken direkte i chatteren.

Dette er spesielt viktig i selskaper med økonomiske kontroller eller internrevisjon.


3. Lager- og varemottak

Når antall varer eller lagerlokasjon endres uventet, hjelper sporing på flyt- eller produktfelt lageransvarlige med å finne årsaken raskt.

I stedet for å lete gjennom separate logger eller stille kolleger spørsmål, ser du svaret i chatteren på det aktuelle dokumentet.


4. Kvalitet på kundedata

Hvis kundedata oppdateres jevnlig, er det smart å spore felt som email, phone eller pricelist_id på partneren. Det gir en historikk over kontaktendringer som er nyttig for kundeservice og datarens.


5. HR og ansattregister

Sporing av stilling, avdeling eller lønnsnivå på ansatte gir tydelig oversikt over endringer i personaldata — viktig både for samsvar og interne revisjoner.


Slik oppretter eller tilpasser du sporingsfeltet


Det finnes to hovedmåter å aktivere sporing på: via Odoo Studio for en kodefri løsning, eller gjennom Python i et tilpasset modul.

Bruk av Odoo Studio

Odoo Studio gjør det enkelt å slå på sporing uten koding. Åpne Studio for modellen, velg feltet du vil overvåke, og aktiver «Track Changes» i feltinnstillingene.

Når dette er slått på, vil alle fremtidige endringer vises i chatteren. Dette er det beste valget for virksomhetsansvarlige som ønsker rask tilpasning uten å involvere utviklere.

Du kan også aktivere sporing når du oppretter nye, egendefinerte felt i Studio — slå på sporingen direkte ved opprettelse.

Bruk av Python i en egendefinert modul

For utviklere legges sporing til direkte i feltdefinisjonen i modellklassen. Dette er standard praksis i Odoo-utvikling.

Modellen må også arve mail.thread for at sporingen skal fungere. Et enkelt eksempel ser slik ut:

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', 'Middels'), ('high', 'Høy')],
        string='Kundeprioritet',
        tracking=True
    )

Dette er et typisk mønster når du utvider en eksisterende modell. Feltet lagres som vanlige Odoo-data, men alle endringer blir automatisk loggført.

Viktig om helt nye modeller

Når du lager helt nye modeller, må du sørge for å inkludere _inherit = ['mail.thread', 'mail.activity.mixin']. Uten dette blir tracking ignorert og ingen endringer blir loggført.

Dette er en vanlig feil blant utviklere som følger en enkel feltguide for første gang — mixinen er ikke valgfri hvis du ønsker sporing.

Anbefalt praksis


Sporing er lett å sette opp — og lett å misbruke. Følg disse rådene for å få best mulig effekt.

Spor bare felt som er viktige

Å aktivere sporing på alle felt skaper støy i chatteren og gjør det vanskelig å finne relevant historikk. Konsentrer deg om felter med reell revisjonsverdi: statuser, ansvarlige brukere, nøkkeldatoer og økonomiske verdier.

Bruk prioritetstall for bedre lesbarhet

Når mange felter spores på samme modell, bruk prioritet 1–10 for å styre hvordan endringer grupperes i meldingen. Det gjør loggen ryddigere, særlig på komplekse modeller.

Kombiner med riktige tilgangsrettigheter

Sporing gir mest verdi sammen med gode tilgangsregler. Et revisjonsspor er lite verdt hvis alle kan endre eller slette poster uten begrensninger — sikre modellene før du bruker chatteren som revisjonskilde.

Dokumenter hvilke felt som spores

Ha en oversikt over hvilke felt som har aktiv sporing, spesielt i prosjekter med flere utviklere. Det forhindrer forvirring ved kodegjennomganger og utilsiktede konflikter ved oppgraderinger.

Test i et staging-miljø før produksjon

Test alltid sporing i staging før du ruller ut. Enkelte felttyper, spesielt beregnede eller relaterte felt, kan oppføre seg annerledes enn vanlige lagrede felt når de spores.

Vanlige fallgruver


De vanligste feilene folk gjør med feltsporing i Odoo.

Glemmer å arve fra mail.thread

Dette er den hyppigste feilen. Uten mail.thread blir tracking ignorert uten feilmelding — ingen loggmeldinger kommer. Sjekk alltid modellens arv hvis sporing ikke fungerer.

Sporing av ikke-lagrede beregnede felt

Beregnete felt kan spores, men kun hvis de er lagret med store=True. Ikke-lagrede beregnede felt har ingen vedvarende verdi i databasen, så det finnes ingenting å sammenligne. Forsøk på å spore slike felt har ingen effekt.

Aktivere sporing på for mange felt

Fristelsen til å slå på sporing overalt kan gi et ubrukelig rot i chatteren. Vær selektiv og spor kun felt med faktisk revisjons- eller driftsverdi.

Forvente sporing ved direkte SQL eller bulkoperasjoner

Sporing trigges gjennom Odoo ORM når du bruker standard write(). Direkte SQL-oppdateringer, importer eller API-kall som omgår ORM vil ikke produsere loggmeldinger. Sørg for at batchoperasjoner går gjennom ORM for at sporing skal fungere.

Konflikter mellom Studio og Python-definisjoner

Hvis et felt opprinnelig ble laget i Studio med sporing, vær forsiktig når du endrer det samme feltet i Python. Motstridende definisjoner kan skape uventet oppførsel ved oppgraderinger eller oppdateringer.

Ofte stilte spørsmål


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

Kun modeller som arver mail.thread støtter sporing. Mange standardmodeller gjør det allerede, men egendefinerte modeller må eksplisitt deklarere mixinen i klassen.

Vil aktivering av sporing påvirke ytelsen?

Påvirkningen er som regel minimal. Hver endring oppretter en mail.message, som gir litt ekstra skriv-overhead. For svært høyt volum bør du vurdere nøye hvilke felt som spores for å unngå mange loggposter.

Kan jeg deaktivere sporing uten å miste tidligere historikk?

Ja. Å slå av sporing stopper ny logging, men eksisterende meldinger i chatteren beholdes. Tidligere historikk slettes ikke automatisk.

Fungerer sporing på Many2many-felt?

Ja, Many2many-sporing støttes. Chatteren viser hvilke relaterte poster som ble lagt til eller fjernet, istedenfor en enkel før- og etterverdi. Visningsformatet er annerledes enn for enkle verdi-felt.

Kan jeg bruke sporing uten Odoo Studio?

Absolutt. tracking-parameteren er en standard feltattributt i Odoo-rammeverket. Du kan aktivere den i hvilken som helst egendefinert modul uten Studio. Studio er kun et visuelt, kodefritt grensesnitt for samme funksjon.

Avslutning


Sporingsattributtet er en av de funksjonene i Odoo som gir mye verdi med liten innsats. Riktig brukt gir det et pålitelig revisjonsspor, reduserer tvister om hvem som endret hva, og styrker datastyringen i organisasjonen.

Enten du konfigurerer det raskt i Odoo Studio eller implementerer det i en skreddersydd Python-modul, er resultatet det samme: full innsikt i hvordan forretningsdata endrer seg over tid.

Nøkkelen er å vite hvor du skal bruke det. Konsentrer deg om feltene som påvirker beslutninger, godkjenninger og ansvar i arbeidsflytene dine, så får du mest mulig igjen for minst mulig arbeid.

Hos Dasolo hjelper vi bedrifter med å implementere, tilpasse og optimalisere Odoo slik at det passer deres forretningsprosesser. Enten du trenger hjelp til datamodellering, å aktivere sporing i arbeidsflyter eller bygge moduler fra bunnen av, står vårt team klart til å bistå.

Ta kontakt med oss i dag for en prat om din Odoo-løsning. Kontakt oss så finner vi sammen den beste tilnærmingen for ditt prosjekt.

Odoo Tracking Field: Slik Sporer Du Endringer i Poster tryggt
Dasolo 6. mars 2026
Share this post
Logg inn to leave a comment