Conoce paso a paso como integrar Trackline con Holded
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 Holded para recuperar documentos y datos de procesos, sigue estos pasos utilizando autenticación con Token JWT.
Paso 1: Obtener el token de autenticación
Holded 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 Holded (HTTP Request)
http
POST /login HTTP/1.1
Host: api.codecontractplattform.com
Content-Type: application/json
{
"email": "holded_integration_user",
"password": "holded_secure_password"
}
Respuesta esperada
http
HTTP/1.1 200 OK
Content-Type: application/json
{
"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJmcmV..."
}
El valor del token deberá almacenarse en Holded 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 Holded
Consultar datos adicionales de un proceso
Holded puede obtener información sobre un proceso específico usando el process_id o process_name.
Petición desde Holded
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 Holded",
"status": "En Proceso",
"created_at": "2024-02-09T10:30:00Z",
"documents": [
{
"doc_id": "98765",
"doc_name": "Factura_001.pdf",
"doc_type": "Factura"
}
]
}
Holded puede utilizar esta información para gestionar procesos y documentos de manera automatizada.
Descargar un archivo adjunto
Una vez obtenidos los metadatos, Holded puede descargar un archivo adjunto por su attachment_id.
Petición desde Holded
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 Holded podrá almacenar o procesar.
Integración en Holded (Ejemplo en JavaScript con Node.js)
Si se necesita integrar esta funcionalidad en Holded usando JavaScript (Node.js), se puede utilizar el siguiente código:
javascript
const axios = require('axios');
async function integrateTracklineWithHolded() {
try {
// Paso 1: Obtener el Token JWT
const loginResponse = await axios.post('https://api.codecontractplattform.com/api/login', {
email: "holded_integration_user",
password: "holded_secure_password"
});
const token = loginResponse.data.token;
// Paso 2: Consultar Metadatos del Proceso en Trackline
const headers = {
Authorization: `Bearer ${token}`
};
const metadataResponse = await axios.get(
'https://api.codecontractplattform.com/api/track-line/ext/track-path/metadata?process_id=12345',
{ headers }
);
console.log("Metadatos obtenidos:", metadataResponse.data);
// Paso 3: Descargar archivo adjunto
const attachmentId = metadataResponse.data.documents[0].doc_id;
const attachmentResponse = await axios.get(
`https://api.codecontractplattform.com/api/track-line/ext/attachment/file?attachment_id=${attachmentId}`,
{ headers, responseType: 'arraybuffer' }
);
const fs = require('fs');
fs.writeFileSync("Factura_001.pdf", attachmentResponse.data);
console.log("Archivo descargado correctamente.");
} catch (error) {
console.error("Error en la integración:", error.message);
}
}
// Ejecutar la integración
integrateTracklineWithHolded();
Resumen
✔️ Paso 1: Holded obtiene el Token JWT mediante autenticación.
✔️ Paso 2: Holded consulta metadatos de procesos con process_id.
✔️ Paso 3: Holded descarga archivos adjuntos mediante attachment_id.
✔️ Paso 4: Holded puede automatizar estos procesos usando JavaScript (Node.js), Python o un conector de API.
Si necesitas más información o soporte, contacta con el equipo de Code Contract. 🚀
