Alias de répertoires dans les fichiers SQL

0000002929     -      20/01/2020

Mercator permet de sauvegarder des fichiers dans la base de données SQL. Ces fichiers sont visibles dans différents endroits du programme (documents de la gestion commerciale, écritures comptables, actions du CRM, fiches de signalétiques, menu "Gestion > Fichiers SQL", ...) Dans certains cas, il est intéressant de pouvoir disposer de fichiers SQL à différents emplacements du programme, sans pour autant dupliquer ce contenu.

Par exemple : 

  • fichiers dans plusieurs actions en chaîne du CRM
  • fichiers du document client dans le document fournisseur associé
  • fichiers dans une écriture comptable d'achat et dans la fiche de l'immobilisé correspondant
  • ...

Depuis la version 10.6 de Mercator, il est aisé de mettre cela en place grâce à la notion d'alias. Ainsi, sur chaque dossier de chaque explorateur de fichiers SQL, le menu contextuel montre un élément "Copier Alias" :

Ensuite, il est possible de coller cet alias sur n'importe quel autre répertoire SQL dans tout autre explorateur de fichiers SQL; ceci en utilisant l'élément de menu contextuel juste en dessous.

Il n'est possible de "Copier Alias" que sur un répertoire qui existe déjà dans la base de données SQL. Dès lors, un répertoire nouvellement créé doit être au préalable sauvegardé et un dossier "Racine" n'est aliassable que si cette racine contient un ou plusieurs éléments.

Il n'est pas autorisé de coller un alias dans son explorateur de fichiers d'origine.

Un répertoire avec le statut "Alias" se reconnaît par sa couleur bleue.

      

Le contenu d'un dossier alias est toujours en lecture seule. Par contre, les fichiers sont téléchargeables. Le nom du répertoire d'alias est toutefois modifiable. Il est initialisé par Mercator avec une valeur qui permet de comprendre directement l'origine du répertoire. Dans l'exemple ci-dessus : depuis une fiche client, dont l'id vaut KINGMER et pour un répertoire nommé "Dossier d'origine".


Il est possible d'ajouter par code SQL un répertoire aliasé. Ceci peut se faire avec un script SQL tel que celui repris ci-dessous. L'exemple est donné ici pour l'ajout d'un alias dans les fichiers SQL du client dont l'id vaut XYZ.

/* sélectionner le nœud du dossier d'origine */
declare @id uniqueidentifier 
select @id=id from FILES where (filepath like '%Dossier d''origine\') and (filename is null)

/* créer si nécessaire le nœud racine dans la fiche du client */
if not exists(select * from FILES where (filepath='<Files\CLI\XYZ\') and (filename is null))
insert into FILES (id,filepath) values (newid(),'<Files\CLI\XYZ\')

/* ajouter l'alias */
insert into FILES (id,filepath,filename,filecontent) values (newid(),'<Files\CLI\XYZ\','Répertoire alias.sqlfilealias',@id)

Le nœud ainsi créé se présentera de cette façon :