Documentos dinámicos

Qué es un documento dinámico de Flex, los cinco tipos que distingue el servidor, sus preguntas, su código y por dónde sale el resultado.

Un documento dinámico es una plantilla HTML, JSON o XML con bloques de DinaScript entre <!--: y :-->. El servidor ejecuta el código con los datos de un registro y devuelve el texto ya relleno.

Antes de empezar

  • Licencia con Flex y acceso a FlexHub → Documentos en Play. Las pantallas están en Documentos.
  • Una sección desde la que se imprime: la primera pregunta de tipo Relación apunta a ella y no se puede cambiar después.

Las piezas

PiezaQué esDónde se edita
ContenidoEl HTML con los bloques <!--: ... :-->. Fuera de las marcas, el texto sale tal cual; dentro va DinaScript.Pestaña Contenido
PreguntasLas variables que el documento pide antes de ejecutarse. En el código se leen con v.: la pregunta factura es v.Factura.Pestaña Preguntas
MetadatosClaves que el código fija con F.MetaData_Set(clave, valor) y que el visor lee al terminar: nombre del fichero, correo, firma.Código
Nombre, categoría y Se imprimeLos datos de archivo. Sin categoría el documento no aparece en el menú de impresión de la ficha.El Nombre, encima de las pestañas; el resto, en la pestaña General
<!--: F.MetaData_Set('titulo', F.Concat('Factura ', v.Factura.NumeroDeFacturaCompleto)) :-->
<!doctype html>
<html>
<body>
  <h1><!--: F.Write(v.Factura.NumeroDeFacturaCompleto) :--></h1>
  <p><!--: F.WriteText(v.Factura.DenominacionRazonSocialCliente) :--></p>
</body>
</html>

Tipos

FlexHub crea los documentos como Documento - Libre y no ofrece cambiar el tipo desde su ventana. Por la Flex API, la clave tipodoc del alta elige otro.

ValorNombreQué produce
1Diseño InformeEl diseño de impresión de un informe.
3API Lectura - LibreDatos para otro sistema, en JSON o XML, sin escribir en el ERP.
5API EscrituraUn documento que recibe datos y crea o modifica registros.
7Documento - LibreUna página HTML: impresión, correo, firma o panel. Es el tipo por defecto.
8Documento - ContableDocumentos con acceso a las funciones de contabilidad.

La casilla Se imprime (Es_Impresion) determina si el documento sale en el menú de impresión de la ficha. La API la devuelve como esimpresion.

Por dónde sale el resultado

SalidaCómoPágina
El visor de PlayMenú de impresión de la ficha. Botones Imprimir, Enviar por email o Enviar a firmar y Cerrar.Mostrar e imprimir
CorreoLos metadatos email_* rellenan la vista previa del correo. Con email_body el documento viaja como PDF adjunto.Envío de emails
Firmaemail_sign cambia el botón de correo por Enviar a firmar y propone los firmantes.Documentos para firmar
API públicaPOST /api/dynamicdocuments?id=<guid> con las respuestas en el cuerpo JSON.API REST
SDK .NETDynamicDocuments_ExecuteAsync(documentId, params) devuelve DynamicDocumentsGetResponse con Content, Name y Metadata.SDK .NET

La API REST devuelve el documento como texto. El SDK recibe además Name (el metadato titulo), Metadata (todas las claves fijadas con F.MetaData_Set) y Status.

Metadatos que lee el servidor

ClaveEfecto
tituloNombre del fichero. El SDK lo devuelve en Name, y el visor lo usa para el PDF si no hay email_attachment_name.
enurlCon 1, el servidor sube el resultado a un fichero temporal y devuelve su URL en vez del contenido.
seguridad_ip, seguridad_ip1 a seguridad_ip100Lista de IP autorizadas. Con alguna rellena, cualquier otra IP recibe 401.
seguridad_encriptacionClave AES. El contenido vuelve cifrado y en Base64.
email_*Correo y firma. Tabla completa en Envío de emails.

Por dónde empezar

Crea el documento

Crear documento dinámico: alta, una pregunta y un F.Write.

Copia una plantilla real

Ejemplos: la factura y el libro registro que trae DemoUp.

Rellena los metadatos

Fija titulo y las claves email_* para que el visor tenga el nombre del PDF, el destinatario y el asunto.

Siguiente: Crear documento dinámico. Pantallas: FlexHub → Documentos.

En esta página