Introduktion
Odoo JSONRPC-fejlen opstår, når et JSON-RPC-opkald til Odoo mislykkes. JSON-RPC er den protokol, som Odoos webklient og mange moderne integrationer bruger til at tale med serveren.
I modsætning til XML-RPC er JSON-RPC særligt udbredt i:
- Interaktioner i webgrænsefladen
- Skræddersyede integrationer
- Headless Odoo-løsninger
- Synkronisering med eksterne systemer
Når et JSON-RPC-kald fejler, sender Odoo typisk en fejlrespons, som ofte fremstår som:
RPC_ERROR: Odoo Server Error
Eller som en JSON-fejl i API-responsen.
Denne vejledning beskriver, hvad JSONRPC-fejl i Odoo betyder, og hvordan du fixer dem korrekt.
Hvad er JSON-RPC i Odoo?
JSON-RPC (JavaScript Object Notation Remote Procedure Call) gør det muligt for klienter at kalde Odoos metoder via HTTP med JSON-payloads.
Et typisk JSON-RPC-opkald indeholder:
{
"jsonrpc": "2.0",
"method": "call",
"params": {
"service": "object",
"method": "execute_kw",
"args": [
"database_name",
2,
"password",
"res.partner",
"search",
[[["is_company", "=", true]]]
]
},
"id": 1
}
Hvis backend rammer en undtagelse, returnerer Odoo en JSON-fejlrespons.
Almindelige årsager til Odoo JSONRPC-fejl
1. Godkendelsesfejl
Fejl opstår ofte når forespørgslen bruger:
- Ugyldige loginoplysninger
- Forkert database
- Udløbet session
Odoo afviser kaldet.
Godkendelsesproblemer er en af de hyppigste årsager til JSONRPC-fejl.
2. Forkert metodekald
Når JSON-payloaden peger på:
- En model der ikke findes
- En metode der ikke findes
- Forkerte metodeargumenter
Kaster backenden en undtagelse, som returneres som JSONRPC-fejl.
3. Manglende påkrævede felter
Hvis et create- eller write-kald udelader obligatoriske felter, rejser Odoo en valideringsfejl, der ses i JSON-responsen.
Eksempel:
{
"name": "Order 001"
}
Hvis partner_id er påkrævet → fejl.
4. Rettighedsbegrænsninger
Hvis API-brugeren mangler de nødvendige rettigheder, returnerer Odoo en adgangsrelateret JSON-fejl.
Dette ses ofte i produktion, når integrationsbrugere har for snævre tilladelser.
5. Ugyldige relationelle ID'er
Hvis et Many2one-felt får et ID, der ikke findes, kaster backenden en undtagelse.
Eksempel:
{
"partner_id": 99999
}
Hvis ID 99999 ikke findes → JSONRPC-fejl.
6. Databasekontraint-fejl
Fejl som:
- Duplikeret nøgle bryder unik-konstrain
- Foreign key-fejl
- Not null-konstrain
Kan dukke op i JSONRPC-responsen.
7. Servertimeout eller tunge operationer
Store payloads eller bulk-operationer kan overskride timeout, især ved høj trafik.
Sådan retter du en Odoo JSONRPC-fejl
Trin 1 – Undersøg JSON-fejlen
De fleste JSONRPC-svar indeholder:
- Fejltype
- Fejlmeddelelse
- Traceback
Læs backend-undtagelsen grundigt for at forstå årsagen.
Trin 2 – Tjek godkendelsen
Sørg for:
- Databasenavnet er korrekt
- Bruger-ID eller sessionstoken er gyldigt
- Adgangskode eller API-nøgle er korrekt
- Brugeren er aktiv
Trin 3 – Valider payload-strukturen
Før du sender anmodninger:
- Sikre at alle påkrævede felter er med
- Valider relationelle ID'er
- Undgå null-værdier i obligatoriske felter
- Sørg for korrekte datatyper
Struktureret validering før afsendelse forhindrer mange runtime-fejl.
Trin 4 – Gennemgå adgangsrettigheder
Tjek at integrationsbrugeren har:
- Læsningstilladelse
- Skrivningstilladelse
- Oprettelsestilladelse
- Slettetilladelse
afhængigt af handlingen.
Trin 5 – Test i Odoo UI
Genskab samme handling manuelt i Odoo.
Hvis det fejler i UI'en, er problemet sandsynligvis data- eller rettighedsrelateret.
Trin 6 – Tjek serverlogs
Ved generiske JSON-fejl, kig i Odoo-serverens logs for fuld traceback og detaljer.
Sådan forebygger du JSONRPC-fejl
- Brug dedikerede API-brugere
- Valider data før afsendelse
- Log request/response-payloads
- Implementer struktureret fejlhåndtering i integrationen
- Undgå at sende store bulk-operationer i en enkelt anmodning
- Test integrationsflow i et staging-miljø
I API-drevne Odoo-opsætninger minimerer et validerings- og transformationslag mellem eksterne systemer og Odoo kraftigt antallet af JSONRPC-fejl.
Hvordan Dasolo styrker JSONRPC-kommunikationen
Mange JSONRPC-fejl skyldes uens sessionhåndtering, forkert strukturerede forespørgsler eller manglende validering på serveren. Fordi JSONRPC driver størstedelen af webkommunikationen i Odoo, kan små fejl i konfigurationen give gentagne fejl i frontenden.
Hos Dasolo styrker vi JSONRPC-stabiliteten gennem:
- Struktureret validering af forespørgsler
- Kontrolleret sessionstyring
- Konsistente mønstre for undtagelseshåndtering
- Sikret eksponering af endpoints
- Omfattende logning af API-kald
Et ensartet kommunikationslag mindsker uventede runtime-fejl og øger platformens pålidelighed.
Konklusion
Odoo "JSONRPC Error" viser sig typisk, når en backend-undtagelse afbryder kommunikationen mellem klient og server. Fejlen virker ofte generisk, men peger som regel på problemer med forespørgselsformat, godkendelse eller serverlogik.
Ved at gennemgå API-strukturer, validere inddata og indføre forudsigelig fejlhåndtering kan udviklere undgå gentagne JSONRPC-afbrydelser. Et veludført kommunikationslag sikrer stabil og effektiv interaktion i Odoo-miljøer.