Vous consultez une page technique concernant le logiciel de gestion Mercator. Celle-ci contient des informations spécifiques destinées aux professionnels de Mercator. Souhaitez-vous être redirigés vers des informations plus générales ?


   Ne plus poser cette question

Fonctionnement du composant SqlFileView

0000002112     -      03/07/2013

Le composant SqlFileView de Mercator 8.1 permet de stocker dans la base de données SQL des fichiers habituellement stockés sur un volume partagé et présentés par le composant FileView, par exemple dans le pied d’un document, dans l’onglet "Fichiers" d’une fiche de signalétique ou dans les fichiers joints à une action.

sqlfileview_1

Les avantages de ce composant par rapport au stockage classique sur disque sont les suivants :

  • Meilleure centralisation des données : tout est dans la base de données SQL qui devient pratiquement le seul élément à sauvegarder.
  • Dans le cas d’un accès à un Mercator dont les données sont "distantes", une visualisation d’un volume partagé est très pénalisante sur le plan de performances.
  • Un accès à un volume partagé distant peut être difficile à mettre en place en termes de sécurité voire refusé par un fournisseur de stockage de données "cloud".
  • Le composant SqlFileView répond à la même logique de gestion des droits d’accès que les autres objets de Mercator. Dès lors, il sera possible de mettre ce composant en "read-only".
  • La sauvegarde des modifications apportées dans le SqlFileView se fait dans la même transaction SQL que la sauvegarde des autres données. Les fichiers font donc partie intégrante des données gérées.
    Exemple : dans une fiche client, les champs clients et les fichiers associés à ce client, sont modifiés dans une même et unique transaction SQL.
  • Ce composant permet de stocker plusieurs fichiers portant le même nom dans le même dossier.
Ce système n’est accessible que si Mercator dispose d’un serveur SQL 2005 ou ultérieur. La base de données ne peut non plus être en mode de compatibilité SQL 2000.

La taille maximale des fichiers est de 2 Gb (capacité maximale d’un varbinary(max)).


Fonctionnement

Par défaut, le composant SqlFileView montre toujours un dossier "Racine". Il s’agit du dossier de base. Il est possible d’ajouter un nouveau dossier, soit via "clic-droit / Nouveau Dossier", soit en déposant un dossier tiré par "drag & drop" à partir de l’explorateur de fichiers.

De même, on peut ajouter un fichier dans un dossier en le tirant à partir de l’explorateur de fichiers.

Remarques :

  • Les opérations de "drag & drop" vers SqlFileView peuvent concerner plusieurs fichiers et/ou dossiers.
  • Quand on tire vers SqlFileView un dossier, les fichiers qu’il contient sont bien insérés mais pas les sous-dossiers éventuels.
Quand un SqlFileView contient des fichiers, ceux-ci auront l’un des 2 statuts suivants :
  • sqlfileview_5 : le fichier est présent dans la base de données et aucune copie locale n’a été téléchargée
  • sqlfileview_6 : le fichier dispose d’une copie locale, soit parce que ce fichier n’a pas encore été uploadé vers le serveur SQL, soit parce que ce fichier a fait l’objet d’un téléchargement requis par une des opérations possibles sur ce fichier (Ouvrir, Propriétés, …)
Lors de la sauvegarde, Mercator détecte si la copie locale éventuelle a été modifiée. Dans ce cas, il propose de mettre à jour automatiquement la version de ce fichier sur le serveur SQL.

Les fichiers peuvent être récupérés à partir du SqlFileView :

  • soit en tirant un fichier vers l’explorateur de fichiers de Windows.
  • soit via "clic-droit / Enregistrer sous …".
  • soit via "clic-droit / Copier".
  • soit sur un dossier, via "clic-droit / Télécharger".

Adaptation de l’API de Mercator

La classe MercatorApi.Api contenue dans MercatorTunnel.dll a été adaptée afin de permettre une manipulation de tout type de fichiers, qu’ils soient présents sur disque ou stockés dans la base de données SQL.

Les méthodes suivantes fonctionnent parfaitement avec les 2 types de fichiers et adaptent automatiquement leur comportement en tenant compte de la nature du chemin vers le fichier transmis. Les chemins SQL se reconnaissent car ils débutent avec le caractère < et sont suivis de MainDir, RepData, Files ou Other. (cfr. Api. SqlFilePathRoots)

  • FileExists
  • FileDelete
  • DirectoryExists
  • DirectoryCreate
  • FileToStr
  • StrToFile (hormis l’implémentation qui permet de faire un append à un fichier)
  • GetFiles
  • GetDirectories
  • DataTableToXmlFile
  • DataSetToXmlFile
  • DataRowToXmlFile
  • DataSetFromXmlFile
  • DataTableFromDbf
  • FileMove
  • FileCopy
  • CopyFolder
  • MoveFolder
Les 4 dernières méthodes permettent, de surcroît, des échanges de fichiers entre disque et base de données SQL.
Exemples :
  • Upload d’un fichier vers la base données SQL :
    Api.FileMove(@"C:\Test\test.xml", @"<Other\TestSqlFileView\Coda\text.xml");
  • Download d’un fichier avec maintien de celui-ci dans la base de données SQL :
    Api.FileCopy(@"<Other\TestSqlFileView\Coda\text3.xml", @"C:\Test\test21.xml")
  • Déplacement virtuel d’un répertoire de la base de données vers un disque :
    Api.MoveFolder(@"<Other\TestSqlFileView\SqlFiles3", @"C:\Test\SqlFiles3");
Les commandes de création ou d’exécution de rapports Aruba (repx) permettent aussi de façon transparente de gérer le stockage sur la base de données SQL. De même, les outils présents dans MercatorTunnel permettant de zipper un fichier gèrent correctement le zippage vers un fichier stocké sur la base de données SQL.


Visualisation des fichiers SQL à partir de Mercator

sqlfileview_2
Le menu "Gestion / Fichiers SQL" offre la possibilité de parcourir les fichiers stockés sur la base de données SQL et ce, pour 3 racines différentes :
  1. Principal : racine destinée à recevoir les fichiers habituellement stockés dans le répertoire principal de Mercator. (Exemple : des rapports standards modifiables par l’utilisateur)
  2. Données : racine destinée à recevoir des fichiers habituellement stockés dans le répertoire des données de Mercator. (Exemple : des fichiers de TVA)
  3. Autres : racine libre
attention Mercator gère en interne une 4ème racine qui correspond aux fichiers des objets "Explorateurs de fichiers SQL". Il ne faut pas mettre ces fichiers dans un dossier "Files" de la racine "Données". En effet, le nombre de ces fichiers peut être très important et Mercator gère cela de façon distincte dans chaque objet "Explorateurs de fichiers SQL".

Ces 3 racines sont protégées par des droits d’accès utilisateurs qui, par défaut, empêchent l’accès à ces 3 explorateurs de fichiers SQL.

sqlfileview_3


Changement du comportement standard de Mercator

Dans "Outils / Options", Mercator présente 6 nouvelles options qui ont été regroupées dans un nouveau noeud "Fichiers".

sqlfileview_4

Ces options permettent de déterminer si, à certains endroits du programme, Mercator doit utiliser le stockage classique sur disque ou dans la base de données SQL. Par défaut, toutes ces options sont à DISK.

  • Stockage des fichiers de rapport : permet de déterminer où Mercator stocke les rapports standards modifiables par l’utilisateur (Ex. HistoryV.repx). Cela modifie donc notamment le comportement de "Outils / Modèles Documents".
  • Stockage des fichiers de signalétiques : uniquement utilisée lors de la sauvegarde des archives de rappels (gestion de débiteurs).
  • Stockage des fichiers de TVA : utilisée lors de la création de fichiers Intervat, eTVA et de déclaration annuelle luxembourgeoise.
  • Stockage des fichiers de comptes annuels : uniquement utilisée lors de la sauvegarde de fichiers eCDF (législation luxembourgeoise).

Divers

Les fichiers SQL sont aussi pris en compte lors du transfert de fiches de signalétique (exemple : création d’un client à partir d’un prospect) ainsi que lors de la génération automatique d’actions contenant des fichiers.

Exemple :