Odoo, un système ERP open source, offre une flexibilité considérable pour personnaliser et étendre ses fonctionnalités. L'une des manières de communiquer avec Odoo est via JSON-RPC (Remote Procedure Call), un protocole léger qui permet d'appeler des fonctions distantes. Dans cet article, nous allons explorer comment utiliser JSON-RPC en JavaScript dans le contexte d'un module Odoo.
Prérequis
Avant de commencer, assurez-vous d'avoir un environnement de développement Odoo configuré et un module en cours de développement.
Étape 1 : Configuration de JSON-RPC
Pour commencer, vous devez connaître l'URL JSON-RPC de votre instance Odoo. Elle ressemble généralement à quelque chose comme http://localhost:8069/jsonrpc
.
Étape 2 : Utilisation de Fetch API
JavaScript moderne utilise généralement l'API Fetch pour effectuer des requêtes HTTP. Créez une fonction pour encapsuler la logique de la requête JSON-RPC :
async function callJsonRpc(method, params = {}) {
const url = 'http://localhost:8069/jsonrpc';
const response = await fetch(url, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
jsonrpc: '2.0',
method: method,
params: params,
id: 1,
}),
});
const data = await response.json();
if (data.error) {
console.error('Error:', data.error);
throw new Error('JSON-RPC request failed');
}
return data.result;
}
Cette fonction encapsule la logique de base pour effectuer des requêtes JSON-RPC à l'instance Odoo.
Étape 3 : Appel de Fonctions Odoo
Utilisons maintenant notre fonction callJsonRpc
pour appeler une fonction spécifique d'Odoo. Supposons que vous souhaitiez appeler la fonction search
du modèle res.partner
. Vous pouvez le faire de la manière suivante :
async function searchPartners() {
try {
const result = await callJsonRpc('execute_kw', {
model: 'res.partner',
method: 'search',
args: [[]],
kwargs: {},
});
console.log('Partners:', result);
} catch (error) {
console.error('Error:', error.message);
}
}
// Appel de la fonction
searchPartners();
Conclusion
En utilisant JSON-RPC en JavaScript dans un module Odoo, vous pouvez étendre les fonctionnalités d'Odoo en effectuant des appels distants de manière simple et efficace. Assurez-vous de personnaliser les exemples en fonction de vos besoins spécifiques.
Cet article offre un aperçu de base pour vous aider à démarrer, mais n'hésitez pas à consulter la documentation officielle d'Odoo et de JSON-RPC pour des fonctionnalités plus avancées et des détails spécifiques à votre cas d'utilisation.l