Añadir el orquestador PDF a tu workfloo
Añadir el orquestador PDF
Haz clic en el nodo en el que quieres añadir el orquestador. Observarás la pantalla con los orquestadores y conectores de workfloo; elige PDF y haz clic en siguiente.
Se mostrará una ventana modal en la que deberás insertar HTML y código JavaScript, mediante los cuales podrás obtener y utilizar datos de pasos anteriores de la ejecución de tu workfloo.
A continuación te compartimos un ejemplo de un html para el orquestado PDF
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>TÍTULO DE TU PDF</title>
<style>
body {
font-family: 'Times New Roman', Times, serif;
line-height: 1.6;
margin: 50px;
max-width: 800px;
margin-left: auto;
margin-right: auto;
}
.contrato {
border: 1px solid #ccc;
padding: 40px;
}
.firma {
margin-top: 80px;
text-align: center;
}
.linea-firma {
border-bottom: 1px solid #000;
width: 300px;
margin: 0 auto 10px;
}
h1 {
text-align: center;
margin-bottom: 40px;
}
h2 {
margin-top: 30px;
border-bottom: 1px solid #000;
padding-bottom: 5px;
}
.resumen-section {
margin-top: 15px;
margin-bottom: 25px;
padding-left: 10px;
}
.resumen-linea {
margin-bottom: 6px;
}
</style>
</head>
<body>
<script>
document.addEventListener("DOMContentLoaded", function () {
if (typeof workfloo === "undefined") {
console.error("No se encontró la variable global 'workfloo'");
return;
}
// ✅ Corrección robusta: normaliza el nombre a minúsculas y quita acentos
const normalize = (str) => str
?.toLowerCase()
.normalize("NFD")
.replace(/[\u0300-\u036f]/g, ""); // elimina tildes
// Buscar el nodo que contenga la palabra "buro"
const buroNode = workfloo.nodes?.find(n => normalize(n.name || "").includes("buro"));
if (!buroNode) {
console.warn("⚠️ No se encontró un nodo de buró en workfloo.nodes");
console.log("Nodos disponibles:", workfloo.nodes?.map(n => n.name));
}
const resumen = buroNode?.response?.resumenReporte?.[0] || {};
console.log("Nodo encontrado:", buroNode?.name);
console.log("Resumen obtenido:", resumen);
// Extraer los tres campos solicitados
const fechaAntigua = resumen.fechaAperturaCuentaMasAntigua ?? "No disponible";
const fechaReciente = resumen.fechaAperturaCuentaMasReciente ?? "No disponible";
const fechaIngresoBD = resumen.fechaIngresoBD ?? "No disponible";
// Reemplazos
const replacements = {
fechaGeneracion: new Date().toLocaleDateString("es-MX"),
idReporte: workfloo.id ?? "",
estado: workfloo.status ?? "",
origen: workfloo.origin ?? "",
fechaAperturaCuentaMasAntigua: fechaAntigua,
fechaAperturaCuentaMasReciente: fechaReciente,
fechaIngresoBD: fechaIngresoBD
};
// Aplicar reemplazos al documento
const contratoDiv = document.getElementById("documento");
let contenidoHtml = contratoDiv.innerHTML;
for (const key in replacements) {
const regex = new RegExp(`{{${key}}}`, "g");
contenidoHtml = contenidoHtml.replace(regex, replacements[key]);
}
contratoDiv.innerHTML = contenidoHtml;
});
</script>
<div class="contrato" id="documento">
<h1>Descripción del título del documento</h1>
<p>
texto para el documento
</p>
<h2>sección del documento</h2>
<p>
Ejemplo de texto para el documento con datos del workfloo: De acuerdo con los datos obtenidos en el flujo de verificación, el reporte con ID
<strong>{{idReporte}}</strong>, de origen <strong>{{origen}}</strong> y estado <strong>{{estado}}</strong>,
presenta la siguiente información relevante:
</p>
<div class="resumen-section">
<div class="resumen-linea"><strong>Fecha apertura cuenta más antigua:</strong> {{fechaAperturaCuentaMasAntigua}}</div>
<div class="resumen-linea"><strong>Fecha apertura cuenta más reciente:</strong> {{fechaAperturaCuentaMasReciente}}</div>
<div class="resumen-linea"><strong>Fecha ingreso BD:</strong> {{fechaIngresoBD}}</div>
</div>
<p>
<strong>Otra sección del documento.</strong> Texto para dicha sección.
</p>
<div class="firma">
<p>Más texto para el documento</p>
<br><br>
<div class="linea-firma"></div>
<p>Más texto para el documento</p>
</div>
</div>
</body>
</html>
Updated about 1 month ago
