Johdanto
Odoo JSONRPC -virhe syntyy, kun Odoolle lähetetty pyyntö JSON-RPC-protokollaa käyttäen ei mene läpi. JSON-RPC on tyypillinen viestintäkerros Odoon web-asiakasohjelmassa ja useissa integraatioissa.
Toisin kuin vanhempi XML-RPC, JSON-RPC on yleinen seuraavissa tilanteissa:
- Verkkokäyttöliittymän ja selaimen yhteydet
- Räätälöidyt integraatiot
- Headless-tilassa toimivat Odoo-ratkaisut
- Ulkoisten järjestelmien synkronointi
Kun JSON-RPC-kutsu epäonnistuu, Odoo vastaa virheobjektilla, joka näkyy usein muodossa:
RPC_ERROR: Odoo Server Error
Tai API-vastauksessa JSON-muotoisena virheobjektina.
Tässä oppaassa käydään läpi, mitä JSONRPC-virheet tarkoittavat Odoossa ja miten ne korjataan kestävästi.
Mikä on JSON-RPC Odoossa?
JSON-RPC (JavaScript Object Notation Remote Procedure Call) mahdollistaa sen, että ulkoinen palvelin tai selain kutsuu Odoon metodeja HTTP:n yli JSON-muotoisilla viesteillä.
Tyypillinen JSON-RPC-pyyntö sisältää kentät kuten jsonrpc-versio, metodi (esim. call), params-objektin palvelun ja metodin tiedoilla sekä uniikin id:n.
{
"jsonrpc": "2.0",
"method": "call",
"params": {
"service": "object",
"method": "execute_kw",
"args": [
"database_name",
2,
"password",
"res.partner",
"search",
[[["is_company", "=", true]]]
]
},
"id": 1
}
Jos taustapalvelin kohtaa poikkeuksen, Odoo palauttaa virhetiedot JSON-muodossa vastauksena.
Yleisimmät syyt Odoo JSONRPC -virheisiin
1. Autentikointi epäonnistuu
Jos pyyntö sisältää jonkin seuraavista ongelmista:
- Virheelliset tunnistetiedot
- Väärä tietokanta
- Vanhentunut istunto
Odoo kieltäytyy suorittamasta kutsua.
Autentikointivirheet ovat yksi yleisimmistä JSONRPC-epäonnistumisten syistä.
2. Virheellinen metodikutsu
Jos JSON-viestissä viitataan esimerkiksi:
- Malliin, jota ei ole olemassa
- Metodiin, jota ei löydy
- Vääränlaisiin argumentteihin
Taustajärjestelmä heittää poikkeuksen, joka näkyy JSONRPC-virheenä.
3. Puuttuvat pakolliset kentät
Jos create- tai write-kutsu jättää vaaditut kentät pois, Odoo palauttaa validointivirheen JSON-vastauksessa.
Esimerkki:
{
"name": "Order 001"
}
Jos partner_id on pakollinen → virheilmoitus.
4. Käyttöoikeusrajoitukset
Jos integraatiokäyttäjällä ei ole oikeuksia pyydettyyn toimintaan, Odoo antaa käyttöoikeuksiin liittyvän virheen JSON-muodossa.
Tätä näkee usein tuotantoympäristöissä, joissa integraatiokäyttäjien oikeudet on rajattu.
5. Virheelliset relaatiotunnisteet
Jos Many2one-kenttään lähetetään tunniste, jota ei ole olemassa, taustajärjestelmä nostaa poikkeuksen.
Esimerkki:
{
"partner_id": 99999
}
Jos ID 99999 ei ole olemassa → JSONRPC-virhe.
6. Tietokantarajoitteiden rikkominen
Seuraavat virheet voivat näkyä JSONRPC-vastauksissa:
- Duplikaattiarvo, joka rikkoo uniikkiutta
- Vieraavainrajoitteen epäonnistuminen
- Not null -rajoitteen rikkomus
Nämä johtuvat usein datan eheysongelmista tai virheellisestä datansiirrosta.
7. Palvelimen aikakatkaisu tai raskas operaatio
Isot kuormat tai massatoiminnot voivat ylittää aikarajat, erityisesti kovassa kuormituksessa toimivissa integraatioissa.
Miten korjata Odoo JSONRPC -virhe
Vaihe 1 – Tutki JSON-virhevastaus
Useimmissa JSONRPC-vastauksissa on mukana:
- Virheen tyyppi
- Virheilmoitus
- Traceback tai pinonkaavio
Lue backendin poikkeustiedot huolellisesti, ne kertovat usein juurisyyn.
Vaihe 2 – Varmista autentikointi
Tarkista että:
- Tietokannan nimi on oikein
- Käyttäjä-ID tai istuntotunnus on voimassa
- Salasana tai API-avain on oikea
- Käyttäjä on aktiivinen järjestelmässä
Vaihe 3 – Vahvista pyynnön rakenne
Ennen pyyntöjen lähettämistä:
- Varmista, että vaaditut kentät ovat mukana
- Tarkista relaatiotunnisteiden olemassaolo
- Vältä null-arvoja pakollisissa kentissä
- Varmista kenttien datatyypit
Rakenteellinen validointi ennen lähettämistä estää monia ajonaikaisia virheitä.
Vaihe 4 – Tarkista käyttöoikeudet
Varmista, että integraatiokäyttäjällä on tarvittavat oikeudet:
- Lukuoikeus
- Kirjoitusoikeus
- Luontioikeus
- Poisto-oikeus
riippuen kutsutusta toiminnosta.
Vaihe 5 – Testaa Odoon käyttöliittymässä
Yritä toistaa sama toiminto manuaalisesti Odoon UI:ssa.
Jos toiminto epäonnistuu käyttöliittymässä, ongelma liittyy todennäköisesti dataan tai oikeuksiin.
Vaihe 6 – Tarkista palvelinlokit
Jos JSON-vastaus on yleisluontoinen, tutki Odoo-palvelimen lokit saadaksesi täydellisen tracebackin.
Miten estää JSONRPC-virheitä
- Käytä omistettuja API-käyttäjiä
- Validoi data ennen lähettämistä
- Kirjaa pyyntö- ja vastauskuormat lokiin
- Ota käyttöön jäsennelty virheenkäsittely integraatiossa
- Vältä lähettämästä massatoimintoja yhdessä pyynnössä
- Testaa integraatiotyönkulut staging-ympäristössä ennen tuotantoon siirtämistä
API-vetoisissa Odoo-järjestelmissä välikerros, joka validoi ja muuntaa ulkoisten järjestelmien datan ennen Odoo-kutsuja, vähentää merkittävästi JSONRPC-ongelmia.
Miten Dasolo vahvistaa JSONRPC-yhteyksiä
JSONRPC-ongelmat johtuvat usein epäyhtenäisistä istunnoista, virheellisesti muodostetuista pyynnöistä tai palvelinpuolen validoimattomasta logiikasta. Koska JSONRPC vastaa suurimmasta osasta web-käyttöä Odoossa, pienetkin konfiguraatioviat näkyvät nopeasti toistuvina käyttöliittymävirheinä.
Dasololla vahvistamme JSONRPC:n luotettavuutta seuraavilla keinoilla:
- Jäsennelty pyyntövalidointi
- Hallittu istuntokäytäntö
- Selkeät poikkeuskäsittelytavat
- Turvattu päätepisteiden näkyvyys
- Kattava API-kutsujen lokitus
Yhtenäinen viestintäkehys vähentää odottamattomia ajonaikaisia virheitä ja parantaa alustan yleistä luotettavuutta.
Yhteenveto
Odoo “JSONRPC Error” ilmenee yleensä, kun backendin poikkeus katkaisee asiakas- ja palvelinvälisen kommunikaation. Vaikka virheilmoitus voi näyttää yleisluontoiselta, se paljastaa usein syvempiä ongelmia pyynnön formaatissa, autentikoinnissa tai palvelinlogiikassa.
Kun API-rakenteita tarkastellaan huolellisesti, syötteet validoidaan ja virheenkäsittely suunnitellaan ennakoivasti, toistuvat JSONRPC-häiriöt voidaan ehkäistä. Hyvin rakennettu viestintäkerros takaa vakaamman ja tehokkaamman Odoo-ympäristön.