Aprende a usar Code Contract de forma sencilla
🤖 Trackline - Automatización proactiva
🔎 SmartCheck - Evidencias digitales
🚀 Ejemplos de uso por sector
Sector alimentario
Sector construcción
Sector industrial
Sector logístico
Sector Legal
👤 Ejemplos de uso por rol
📊 Ejemplos de uso por funcionalidad
🤝🏻 Partners
Integración de Trackline con Odoo
Exportar documentos y datos adicionales de Trackline a Odoo mediante consultas API

Conoce paso a paso como integrar Trackline con Odoo

Trackline es una funcionalidad de la plataforma Code Contract que permite automatizar la recopilación de información sin modificar los procesos de trabajo y sin necesidad de registros manuales.

 

Si deseas integrar Trackline con Odoo para recuperar documentos y datos de procesos, sigue estos pasos utilizando autenticación con Token JWT.

 

Paso 1: Obtener el token de autenticación

Odoo debe autenticarse en la API de Trackline mediante una solicitud POST para obtener un token JWT. Este token será utilizado en las siguientes peticiones.

 

Petición desde Odoo (HTTP Request)

http
POST /login HTTP/1.1
Host: api.codecontractplattform.com
Content-Type: application/json

{
"email": "odoo_integration_user",
"password": "odoo_secure_password"
}

 

Respuesta esperada

http
CopyEditHTTP/1.1 200 OK
Content-Type: application/json

{
"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJmcmV..."
}

 

El valor del token deberá almacenarse en Odoo y enviarse en cada petición como Bearer Token en la cabecera de autorización.

Paso 2: Consultar datos adicionales y archivos en Trackline desde Odoo

Consultar datos adicionales de un proceso

Odoo puede obtener información sobre un proceso específico usando el process_id o process_name.

Petición desde Odoo

http
GET /track-line/ext/track-path/metadata?process_id=12345 HTTP/1.1
Host: api.codecontractplattform.com
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJmcmV...

Respuesta esperada

json
{
"process_id": "12345",
"name": "Proceso de Facturación Odoo",
"status": "En Proceso",
"created_at": "2024-02-09T10:30:00Z",
"documents": [
{
"doc_id": "98765",
"doc_name": "Factura_001.pdf",
"doc_type": "Factura"
}
]
}

 

Odoo puede utilizar esta información para gestionar procesos y documentos de manera automatizada.

Descargar un archivo adjunto

Una vez obtenidos los metadatos, Odoo puede descargar un archivo adjunto por su attachment_id.

Petición desde Odoo

http
GET /track-line/ext/attachment/file?attachment_id=98765 HTTP/1.1
Host: api.codecontractplattform.com
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJmcmV...

Respuesta esperada (Archivo)

El servidor responderá con un archivo PDF, XML o el formato correspondiente, el cual Odoo podrá almacenar o procesar.

Integración en Odoo (Ejemplo en Python con Odoo)

Si se necesita integrar esta funcionalidad en Odoo usando Python y Odoo API, se puede utilizar el siguiente código en un módulo personalizado:

 

python
import requests
from odoo import models, fields, api

class TracklineIntegration(models.Model):
_name = 'trackline.integration'
_description = 'Integración de Trackline con Odoo'

token = fields.Char(string="Token de Autenticación")

@api.model
def get_token(self):
""" Obtiene el Token JWT para autenticar las peticiones. """
url = "https://api.codecontractplattform.com/api/login"
credentials = {
"email": "odoo_integration_user",
"password": "odoo_secure_password"
}
response = requests.post(url, json=credentials)
if response.status_code == 200:
self.token = response.json().get("token")
return self.token
else:
return False

@api.model
def get_process_metadata(self, process_id):
""" Consulta metadatos del proceso en Trackline """
if not self.token:
self.get_token()

headers = {
"Authorization": f"Bearer {self.token}"
}
url = f"https://api.codecontractplattform.com/api/track-line/ext/track-path/metadata?process_id={process_id}"
response = requests.get(url, headers=headers)
if response.status_code == 200:
return response.json()
else:
return {}

@api.model
def download_attachment(self, attachment_id):
""" Descarga un archivo adjunto de Trackline """
if not self.token:
self.get_token()

headers = {
"Authorization": f"Bearer {self.token}"
}
url = f"https://api.codecontractplattform.com/api/track-line/ext/attachment/file?attachment_id={attachment_id}"
response = requests.get(url, headers=headers)

if response.status_code == 200:
file_name = f"/tmp/attachment_{attachment_id}.pdf"
with open(file_name, "wb") as file:
file.write(response.content)
return file_name
else:
return None

 

Este código permite a Odoo:

  1. Obtener el token de autenticación.
  2. Consultar metadatos de un proceso específico en Trackline.
  3. Descargar un archivo adjunto asociado al proceso.

 

El código puede ser ejecutado desde un botón de acción en un modelo de Odoo para integrarlo en la interfaz de usuario.

Resumen

✔️ Paso 1: Odoo obtiene el Token JWT mediante autenticación.
✔️ Paso 2: Odoo consulta metadatos de procesos con process_id.
✔️ Paso 3: Odoo descarga archivos adjuntos mediante attachment_id.
✔️ Paso 4: Odoo puede automatizar estos procesos usando Python y la API de Odoo.

 

Si necesitas más información o soporte, contacta con el equipo de Code Contract. 🚀