Cet article décrit la structure de la base de données Voozanoo 4 sur laquelle est construit MailMerge.

Edit me

Schéma des relations entre les tables métiers

Schéma base de données MailMerge

Exemple de création et de suppression de tâche

J’ajoute une nouvelle tâche

  • Nouvelle entrée dans saqd_mailingmodel_data AS mm :
    • Nom -> mm.name
    • Mots clés -> mm.tags
    • Utilisation d’un provider -> mm.use_provider
    • Type du provider -> mm.provider_type (id_data dans sys_dico_data)
    • Si “Service web Voozanoo 4” :
      • Connexion -> mm.ws_vzn4_id_wsauth (id_data dans saqd_wsauth_data)
      • Requête données -> mm.ws_vzn4_dataquery_id
      • Dico format -> mm.ws_vzn4_dico_format
      • Remplacer les retours chariots -> mm.ws_vzn4_remove_line_ending
      • Type de modèle -> mm.origin (id_data dans saqd_dico_data)
      • Si “En ligne” :
        • Le html du fichier est stocké dans mm.html_model
      • Si “Fichier externe” :
        • “Sélectionner un modèle de document” -> 2 nouvelles entrées (le fichier sélectionné et son fichier de configuration) dans saqd_file_data AS file, 2 nouvelles entrées dans saqd_mailingmodel_file_data AS mm_file
        • “Sélectionner un fond de page si nécessaire” -> 1 nouvelle entrée dans saqd_file_data AS file, 1 nouvelle entrée dans saqd_mailingmodel_backgr_data AS mm_backgr

Calibrage du document, à chaque mise à jour

  • Suppression de la ligne correspondante dans saqd_file_data AS file
  • Suppression de la ligne correspondante dans saqd_mailingmodel_file_data AS mm_file
  • Création d’une nouvelle ligne dans saqd_file_data AS file
  • Création d’une nouvelle ligne dans saqd_mailingmodel_file_data AS mm_file

Supression de l’image de fond :

  • Suppression de la ligne correspondant au fichier de fond de page dans saqd_mailingmodel_backgr_data AS mm_backgr
  • Conservation de la ligne correspondant au fichier de fond de page dans saqd_file_data AS file

Supression du fichier de modèle

  • Suppression de la ligne correspondant au fichier de modèle de page dans saqd_mailingmodel_file_data AS mm_file
  • Conservation de la ligne correspondant au fichier de configuration dans saqd_mailingmodel_file_data AS mm_file (n’est supprimée que lorsqu’un autre fichier est sélectionnée ou si l’utilisateur fait le choix d’un modèle en ligne)
  • Suppression de la ligne correspondant au fichier de modèle de page dans saqd_file_data AS file
  • Conservation de la ligne correspondant au fichier de configuration dans saqd_file_data AS file (n’est supprimée que lorsqu’un autre fichier est sélectionnée ou si l’utilisateur fait le choix d’un modèle en ligne)

Je génère un document

  • Création d’une nouvelle ligne dans saqd_mailing_data AS mailing
    • Création d’une nouvelle ligne dans saqd_templatesrendering_data AS tr
      • Si la tâche échoue :
        • tr.failed = 1
        • tr.id_mailing = NULL
      • Si la tâche réussit :
        • tr.failed = NULL
        • tr.id_mailing = mailing.id_data
        • Création de mailing.datasource_row_count nouvelles lignes dans saqd_individualmailing_data AS ind_mailing
        • Création de 2 nouvelles lignes (fichier csv de données + pdf final) dans saqd_mailing_file_data AS mailing_file
        • Création de mailing.datasource_row_count + 2 nouvelles lignes dans saqd_file_data AS file

Je supprime la tâche

  • Suppression de la ligne dans saqd_mailingmodel_data AS mm
  • Suppression des 2 lignes dans saqd_mailingmodel_file_data AS mm_file correspondant au fichier de modèle et au fichier de paramétrage
  • Supression de toutes les lignes faisant référence à la tâche dans saqd_templatesrendering_data AS tr
  • Supression de toutes les lignes faisant référence à la tâche dans saqd_mailing_data AS mailing
  • Supression de toutes les lignes faisant référence au mailing dans saqd_mailing_file_data AS mailing_file
  • Supression de toutes les lignes faisant référence au fichiers générés par la tâche dans saqd_file_data AS file, à l’exception du fichier correspondant à l’image de fond

Description détaillée des tables métier

Les tables principales

  • storage : Informations sur stockage des fichiers sur le serveur
    • path : Chemin vers les dossiers
  • file : Informations sur les fichiers stockés (modèles, fichiers xml contenant le parmétrage des modèles, les csv contenant les données utilisées pour le publipostage, les documents finaux)
    • id_storage : id_data correspondant dans la table storage
    • status : statut du fichier 1 si la tâche est sauvegardée, 0 sinon
    • original_name : nom d’origine fichier
    • generated_name : nom généré pour le stockage du fichier
    • size : taille du fichier en octet ?
    • hash : hash du fichier
    • content-type : type de fichier (application/rtf, application/msword, application/pdf, text/csv, etc.)
    • ext : extension du fichier
    • path : chemin / sous-dossiers à l’intérieur du dossier de stockage, où est stocké le fichier
  • mailing : Informations sur le résultat d’une tâche
    • id_mailingmodel : id_data de la tâche correspondante dans la table mailingmodel
    • token : token du mailing
    • datasource_row_count : nombre d’élément du publipostage
    • id_externe : colonne non utilisée (0 ou NULL)
  • templatesrendering : Informations sur les publipostage en cours et terminés
    • id_mailingmodel : id_data de la tâche dans la table saqd_mailingmodel_data
    • id_mailing : id_data du mailing correspondant dans la table saqd_mailing_data
    • start-date : timestamp de début de la tâche
    • update_date : timestamp de la tâche
    • total_chunk_count : ? Vaut 1 ou NULL
    • current_chunk_count : ? Vaut 1 ou 0
    • total_file_count : nombre de fichier de type “individualmailing” générés
    • current_file_count : nombre de fichier de type “individualmailing” générés
    • failed : indique si la tâche a échoué (1) ou non (NULL)
    • current_file_finalisation_count : nombre de documents générés
  • mailingmodel : Informations concernant la tâche de publipostage
    • name : nom de la tâche
    • provider_type : type de source de données (application voozanoo4 ou autre webservice). Id_data d’un item du dico “provider_type” dans la table sys_dico_data.
    • ws_username : login si provider_type = autre webservice
    • ws_pwd : mot de passe si provider_type = autre webservice
    • ws_pwd_vector : vecteur du mot de passe si provider_type = autre webservice
    • ws_csv_url : URL de connexion si provider_type = autre webservice et si la source de données est un CSV
    • ws_dataset_url : URL de connexion si provider_type = autre webservice et si la source de données est un XML décrivant une structure de données
    • ws_posthandle_url : si provider_type = autre webservice, URL pour poster les IDs des neregistrements que MailMerge a déjà utilisé lors de l’exécution d’une tâche de publipostage
    • ws_vzn4_dataquery_id : si provider_type = application Voo4, id_data du dataquery utilisé comme source de données
    • ws_vzn4_id_wsauth : identifiants renvoyant aux informations pour l’authentification de la requête stockées dans la table wsauth.
    • ws_vzn4_dico_format : si provider_type = application Voo4, indique quelles informations relatives aux dictionnaires l’utliisateur souhaite récupérer dans le publipostage : l’id_data de l’item de dico, le libellé, le libellé court ou le code. Correspond à l’id_data d’un item du dico “dico_format” dans la tabble sys_dico_data.
    • ws_vzn4_remove_line_ending : si provider_type = application Voo4, indique si les retours chariot sont remplacé par des espace ou non.
    • tags : mots-clés rattachés à la tâche
    • use_provider : inque si la tâche utilise un webservice (voo4 ou autre) ou non
    • origin : type de modèle utilisé (pdf ou online), id d’un item du dico “origin_model” stocké dans la table saqd_dico_data
    • html_model : code html du modèle si origin = Online
    • html_margin_top : valeur de la marge supérieure du model html si origin = Online
    • html_margin_bottom : valeur de la marge inférieure du model html si origin = Online
    • html_margin_left : valeur de la marge à gauche du model html si origin = Online
    • html_margin_right : valeur de la marge à droite du model html si origin = Online
    • id_externe : colonne non utilisée (0 ou NULL)
  • wsauth : cnotient les informations de connexion aux webservices de type application Voo4
    • username : login
    • pwd : mot de passe
    • pwd_vector : vecteur du mot de passe
    • app_url : vhost du projet
    • posthandle : indique si les id_data des enregistrements traités par MailMerge doivent être renvoyés à l’application ou non.

Les tables de liaison

  • mailing_file : liaison entre le publipostage et le fichier stockant le résultat du publipostage (pdf) et le fichier stockant les données ayant servies au publipostage (csv)
    • id_mailing : id_data correspondant dans la table mailing
    • id_file : id_data correspondant dans la table file
    • type : type de fichier (publipostage/Mailing ou données/Datasource). Id_data de l’item du dico “mailing_file_type” dans la table saqd_dico_data.
  • individualmailing : liaison entre le publipostage et le résultat pour chaque enregistrement
    • id_mailing : id_data correspondant dans la table mailing
    • id_file : id_data correspondant dans la table file
    • id_provider_data : id_data de l’enregistrement dans la source de données
  • mailingmodel_file : liaison entre la tâche et les fichiers contenant le modèle et les éventuels paramétrages
    • id_mailingmodel : id_data correspondant dans la table mailingmodel
    • id_file : id_data correspondant dans la table file
  • mailingmodel_backgr : liaison entre la tâche et son éventuel fichier de background
    • id_mailingmodel : id_data correspondant dans la table mailingmodel
    • id_file : id_data correspondant dans la table file