OdooWiki OCA HUB

Base External System Odoo-rpc

base_external_system_odoorpc folder_open OCA/server-backend open_in_new
Base Licencia: AGPL-3

============================ Base External System OdooRPC

Este módulo añade un adaptador de sistema externo para conectarse a otra instancia de Odoo usando el cliente Python odoorpc (JSON-RPC).

Está construido sobre base_external_system e implementa un nuevo modelo de adaptador:

  • external.system.odoo (System Type: External System RPC)

El adaptador soporta:

  • Validar los parámetros de conexión requeridos (host, port, database, username, password)
  • Transporte SSL opcional (JSON-RPC sobre SSL)
  • Un ciclo de vida del cliente gestionado por contexto a través del contrato del adaptador base_external_system (abrir cliente, realizar llamadas, logout/cleanup)

Los casos de uso típicos incluyen:

  • Leer datos de un Odoo heredado (p. ej. Odoo 8/9/10) hacia un Odoo más reciente (p. ej. Odoo 16)
  • Sincronizaciones, migraciones o herramientas de importación que deben consultar modelos remotos (p. ej. stock.production.lot, stock.move, res.partner) vía RPC

Traducción automática al español (DeepSeek) de la descripción original de OCA, que está en inglés.

auto_awesome Qué hace este módulo

Generado por IA a partir del código · Odoo 16.0

Añade un nuevo tipo de sistema externo que permite a Odoo conectarse a otra instancia de Odoo mediante RPC. Los usuarios configuran la base de datos, el host, el puerto, las credenciales y SSL del servidor remoto, y luego prueban la conexión desde el formulario.

Este módulo amplía la configuración del sistema externo para que un Odoo pueda comunicarse con otro servidor Odoo mediante la librería odoorpc.

En el formulario de sistema externo, cuando el tipo de sistema se establece en la nueva opción RPC, aparecen dos campos adicionales: Database (el nombre de la base de datos remota) y SSL (para cambiar a una conexión JSON-RPC segura). El campo estándar de ruta remota se oculta para este tipo.

  • Ajustes de conexión requeridos: host, port, database, username y password. Si falta alguno, se genera un error de validación.
  • Una acción Test Connection comprueba el servidor remoto buscando el registro del usuario admin; informa de éxito o de un mensaje de fallo detallado.
  • La conexión utiliza JSON-RPC, o JSON-RPC sobre SSL cuando la opción SSL está habilitada.
  • Cuando se cierra la conexión, el módulo cierra la sesión en el servidor remoto y limpia el cliente.

El acceso al nuevo modelo adaptador está restringido al grupo System administrator. Se proporciona un registro de demostración que muestra una conexión RPC de ejemplo a localhost.

Este es un bloque de construcción técnico: no añade menús ni informes propios, pero permite que otras herramientas (tareas de sincronización, migración o importación) lean datos de una instancia de Odoo remota.

Modelos y campos (2)
  • external.system · amplía un modelo existenteis_ssl (SSL), db_name (Database)
  • external.system.odoo · modelo nuevo

Texto generado por IA (DeepSeek) al leer el código de la versión 16.0 en GitHub; puede contener errores, así que verifícalo en el código antes de decidir. Ver el código en GitHub

Disponibilidad por versión

Revisado: 2026-11-03
Confirmado (verificado en repositorio y rama) Estimado (sin verificar) Sin información

Estado de confirmación: 1 confirmada, 8 sin información de 9 versiones.

Fuentes · Odoo 16.0

Confirmado el 2026-11-03 en la rama 16.0 de OCA/server-backend.

terminal Instalación y uso

Documentación de OCA · Odoo 16.0

Este módulo requiere que el paquete Python odoorpc esté instalado en el mismo entorno que tu servidor Odoo.

Instálalo con pip, por ejemplo:

pip install odoorpc

Después, instala el módulo de Odoo en el menú Aplicaciones como de costumbre.

Si ejecutas Odoo en Docker u otra configuración en contenedores, asegúrate de que la dependencia esté presente en la imagen que ejecuta el servidor Odoo.

  • Vaya a Ajustes → Sistemas externos (menú proporcionado por base_external_system).
  • Cree un nuevo registro.
  • Establezca Tipo de sistema en External System RPC (external.system.odoo).
  • Complete los parámetros de conexión:
  • Host (p. ej. odoo-test.odoo.org)
  • Puerto (p. ej. 443 o 8069)
  • Nombre de la base de datos
  • Nombre de usuario
  • Contraseña
  • Interruptor SSL (si corresponde)
  • Guarde el registro.

Después de guardar, el registro de la interfaz del adaptador se crea automáticamente mediante base_external_system y está disponible a través del campo interface.

Probar conexión (UI)

Abra un registro de sistema externo configurado con System Type External System RPC y haga clic en el botón Test Connection.

Si tiene éxito, el adaptador informará de éxito (utilizando el mecanismo de éxito proporcionado por base_external_system).

Uso del cliente en código

Utilice el gestor de contexto estándar de base_external_system:

system = self.env.ref("your_module.external_system_odoo_remote")
with system.client() as odoo:
    partner_model = odoo.env["res.partner"]
    ids = partner_model.search([("is_company", "=", True)], limit=10)
    data = partner_model.read(ids, ["name"])

El objeto generado es una instancia de cliente odoorpc.ODOO, por lo que se puede acceder a cualquier modelo remoto mediante odoo.env["model.name"].

Helper heredado (opcional)

Algunos proyectos llamaban históricamente a un helper directamente en el registro del adaptador:

odoo = system.interface._connect()

Si su adaptador conserva ese helper por compatibilidad hacia atrás, devuelve el mismo objeto de cliente que external_get_client().

Traducción automática al español (DeepSeek) de la documentación original de OCA; los comandos y el código no se traducen.

info

Datos importados de GitHub: esta ficha refleja la última revisión del catálogo, no una consulta en directo. Verifica siempre en la documentación del módulo y en staging antes de instalar en producción.