Crear documento dinámico
Da de alta un documento en FlexHub, añade una pregunta de texto y escribe su respuesta en la página con el primer bloque de DinaScript.
El documento más pequeño posible: una página que escribe «Hola» y el texto que responde quien lo abre. Sirve para ver dónde va cada pieza antes de copiar una plantilla real.
Antes de empezar
- Acceso a FlexHub → Documentos en Play. Cada pestaña de la ventana está descrita en Documentos.
- Una sección desde la que se imprime. Este ejemplo no lee ningún campo de ella.
Las plantillas
Un documento nuevo se crea a partir de una plantilla. La ventana Nuevo documento las ofrece en tres grupos, con Impresión marcada por defecto:
| Grupo | Plantilla | Contenido de partida |
|---|---|---|
| Para imprimir | Impresión | Una hoja A4 con la cabecera de la empresa, el cuerpo y el pie con la fecha. |
| Para imprimir | Factura | La hoja anterior con emisor y cliente, tabla de conceptos y totales con IVA. |
| Para enviar | Plantilla de correo | El cuerpo de un email, con el asunto y el destinatario en los metadatos. |
| Para enviar | Documento para firmar | Un contrato con su bloque de firmas y el metadato que lo envía a Dinaup Sign. |
| Empezar de cero | JSON + Vue | Solo la cabecera de bibliotecas: jQuery, Vue, Bootstrap y el div#app. |
| Empezar de cero | Documento en blanco | El esqueleto HTML mínimo que escribe el servidor. Sin nada dentro. |
Todas crean el mismo tipo de documento: la plantilla solo cambia el contenido de partida. Mientras el documento no se ha creado, Cambiar plantilla, junto al editor de Contenido, vuelve a abrir la lista y sustituye lo escrito.
Crea el documento
Nuevo
En FlexHub → Documentos, o en Contenido → Documentos dentro de la ventana de la sección, pulsa Nuevo. En Nuevo documento elige Documento en blanco. Si has entrado desde FlexHub → Documentos, la ventana siguiente pide la sección de la que se imprime el documento.
Nombre y categoría
La ventana del documento abre en la pestaña General. Escribe el Nombre encima de las pestañas (mínimo 3 caracteres) y deja la Categoría en Documentos. La casilla Se imprime viene marcada: con ella, el documento sale en el menú de impresión de la ficha. Pulsa Aceptar: el servidor crea el documento en unos 11 segundos y la ventana se cierra.
Una pregunta de texto
Abre el documento con Editar en su fila: la pestaña Preguntas sale con el documento ya creado. Ya hay una, de tipo Relación: el servidor la pone al crear y apunta a la sección. El documento no se puede quedar sin una pregunta de tipo Relación, porque es la que dice de qué sección se imprime.
Pulsa Añadir pregunta y escribe la Etiqueta «Nombre». La Keyword se rellena sola con Nombre: es como la llama el código, v.nombre, y una vez guardada no se cambia. Elige Texto en Tipo de respuesta y pulsa Aceptar. La tarjeta es la misma que en los informes.
El contenido
En la pestaña Contenido, sustituye el HTML de partida por este cuerpo. El código va entre <!--: y :--> y la pregunta se lee con el prefijo v.:
<!doctype html>
<html>
<body>
<p>Hola <!--: F.WriteText(v.nombre) :--></p>
</body>
</html>El editor comprueba el código medio segundo después de dejar de escribir. Pulsa Aceptar: nombre, contenido y preguntas se guardan a la vez.
El editor de Contenido
| Botón | Qué hace |
|---|---|
| Ayuda | Abre Ayuda del editor de documentos: la forma de cada línea, las funciones del motor y los datos de la sección, para pegarlos en el cursor. |
| Metadatos | Abre la misma ayuda en su pestaña Metadatos: las claves para enviar por correo o enviar a firmar, listas para pegar. |
| Comprobar | Comprueba los bloques de código sin guardar nada. |
| Cambiar plantilla | Solo antes de crear el documento. Sustituye el contenido por el de otra plantilla. |
| Releer | Solo con el documento creado. Lo vuelve a leer del servidor. |
Los fallos salen en el panel de debajo del editor: al pulsar uno, el cursor salta a su línea. El botón del final de la barra de estado pone el editor en pantalla completa; se vuelve con Esc o con el mismo botón.
Ejecuta el documento
Desde la ficha de un registro de la sección, el documento aparece en el menú de impresión y abre el visor con las preguntas por responder.
Por la API pública, con una clave API y la URL de tu empresa, la de Tu endpoint base en Desarrollo → Inicio:
curl -X POST "https://<clave-de-conexion>.dinaup.io/api/dynamicdocuments?id=<id-del-documento>" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{ "<pregunta-de-la-seccion>": "<id-del-registro>", "nombre": "Ana" }'El cuerpo es un diccionario clave: valor con una respuesta por pregunta; la clave es su nombre interno, sin v.. El de la primera pregunta sale de la etiqueta singular de la sección, sin espacios: «Pedido de venta» da PedidoDeVenta. La respuesta es 200 con el documento como texto. Si falta la respuesta de alguna pregunta, el documento no se ejecuta: el cuerpo llega vacío y, en el SDK, Status vale 3. Un id que no es GUID devuelve 400.
Desde el SDK .NET:
var respuesta = await client.DynamicDocuments_ExecuteAsync(
"<id-del-documento>",
new Dictionary<string, string> { ["<pregunta-de-la-seccion>"] = "<id-del-registro>", ["nombre"] = "Ana" });
string html = respuesta.Content;
string fichero = respuesta.FileName;DynamicDocumentsGetResponse trae Content (el HTML), Name, FileName, Status, URL y Metadata.
Siguiente: Mostrar e imprimir. Plantilla completa: Plantilla de impresión de facturas.