Les documents de 4D Write Pro contiennent souvent des formules renvoyant des données ou des calculs dépendant de la base de données. Grâce à l’utilisation des contextes, associer ces données aux documents devient un jeu d’enfant !
Dans ce billet de blog, nous verrons comment la combinaison de documents 4D Write Pro avec des données récupérées par ORDA rend le code clair et facile à maintenir.
ORDA et 4D Write Pro en action
4D Write Pro et les données
Qu’il s’agisse de lettres, de campagnes d’e-mailing, de génération de catalogues, d’impression de factures, etc., les données affichées ou imprimées proviennent toujours de la base de données. Grâce à ORDA, l’accès à ces données est de plus en plus efficace, et le nouveau concept de contextes vous permettra d’exploiter efficacement les informations contenues dans vos documents.
Un contexte ? Qu’est-ce qu’un contexte ?
Un contexte est un objet : Une entité, une sélection d’entités, ou tout objet composé d’autant d’attributs que nécessaire. Une fois créé et associé à un document, ce contexte peut être utilisé directement dans le document à l’aide de la fonction This, que vous connaissez maintenant.
Un cas simple : Campagne de publipostage
Disons que vous avez une classe de données Personnes et que vous voulez envoyer des e-mails à une sélection de ces personnes. La première chose à faire est de créer le modèle de lettre avec les informations à communiquer, puis d’insérer les données de chaque personne (son nom, son adresse, etc.) dans ce modèle. Ce processus est bien connu, mais nous allons voir comment insérer ces informations une fois le contexte créé.
Pour chaque personne…
Avant d’imprimer votre lettre type, associez chaque entité de votre sélection au modèle.
Et le tour est joué !
For each ($person; $es_people)
WP SET DATA CONTEXT ($template; $person)
WP PRINT (
$template)
End for each
Mais que contient le modèle ?
Le contexte $person est accessible dans le modèle via la formule This.data.
Si l’entité $person possède un attribut lastname, cet attribut sera accessible via This.data.lastname.
Votre lettre type contiendra donc ce genre d’expressions :
Une fonction dans la classe PeopleSelection
Pour la beauté du code, vous pouvez créer une fonction qui recevra le modèle imprimé avec les données des entités.
Class extends EntitySelection
Function mailing($template: Object)
For each ($people; This)
WP SET DATA CONTEXT (
$template; $people)
WP PRINT (
$template)
End for each
L’appel de cette fonction se fera de la manière suivante de façon exquise :
// create entity selection
$es:=ds.People.all( )
// mailing based on 4D Write Pro template
$es . mailing($template)
Conclusion
Vous trouverez de plus amples informations dans la documentation. Et n’hésitez pas à nous faire part de vos commentaires et expériences sur le forum 4D.