Los documentos de 4D Write Pro contienen a menudo fórmulas que devuelven datos o cálculos en función de la base de datos. Gracias al uso de contextos, asociar esos datos con los documentos es ahora un juego de niños.
En esta entrada del blog, veremos cómo la combinación de documentos de 4D Write Pro con datos recuperados usando ORDA hace que el código sea claro y fácil de mantener.
4D Write Pro y los datos
Tanto si se trata de cartas, campañas de correo electrónico, generación de catálogos, impresión de facturas, etc., los datos que se muestran o imprimen provienen siempre de la base de datos. Gracias a ORDA, el acceso a esos datos es cada vez más eficaz, y el nuevo concepto de contextos le permitirá explotar eficazmente la información de sus documentos.
¿Un contexto? ¿Qué es un contexto?
Un contexto es un objeto: Una entidad, una selección de entidades o cualquier objeto compuesto por tantos atributos como sea necesario. Una vez creado y asociado a un documento, este contexto puede utilizarse directamente dentro del documento mediante la función This, que ya conoce.
Un caso sencillo: CAMPAÑA DE CORREO
Supongamos que tiene una clase de datos Personas y quiere enviar correos electrónicos a una selección de estas personas. Lo primero que hay que hacer es crear la plantilla de carta con la información a comunicar, y luego insertar los datos de cada persona (su nombre, dirección, etc.) en esa plantilla. Este proceso es bien conocido, pero vamos a ver cómo insertar esta información una vez creado el contexto.
Para cada persona…
Antes de imprimir su carta modelo, asocie cada entidad de su selección a la plantilla.
Y ya está.
For each ($person; $es_people)
WP SET DATA CONTEXT ($template; $person)
WP PRINT (
$template)
End for each
Pero, ¿qué contiene el modelo?
El contexto $person es accesible en el modelo a través de la fórmula This.data.
Si la entidad $person tiene un atributo lastname, este atributo será accesible a través de This.data.lastname.
Su carta modelo contendrá, por tanto, este tipo de expresiones:
Una función en la clase PeopleSelection
Para la belleza del código, puede crear una función que recibirá el modelo impreso con los datos de las entidades.
Class extends EntitySelection
Function mailing($template: Object)
For each ($people; This)
WP SET DATA CONTEXT (
$template; $people)
WP PRINT (
$template)
End for each
La llamada de esta función se hará de la siguiente manera exquisita:
// create entity selection
$es:=ds.People.all()
// mailing based on 4D Write Pro template
$es . mailing
($template)
Conclusión
Puedes encontrar más información en la documentación. Y no dude en compartir con nosotros sus comentarios y experiencias en el foro de 4D.