Skip to main content
Version: Next

Distinction nom court(CN)/nom complet (DN) dans les vues

Dans le cas où il existe une distinction entre les noms complets (DN) et les noms courts (CN), le lien entre ces deux informations est fait dans la base Directory. Pour éviter de lire directement les informations dans cette base, il est nécessaire de réaliser les étapes suivantes :

  1. Mettre en place un agent permettant de ramener les informations de la base Directory vers la base applicative.
  2. Modifier les vues afin d’afficher le nom court de la ressource.

INFORMATION :

I. Mise en place de l'agent de réplication

Il est nécessaire de créer un agent de type « Avanteam.Application.Directory.ReplicationAgent ».

Cet agent va dupliquer le contenu de la table « DirectoryResources » présent dans la base Directory et injecter le contenu dans la table du même nom dans la base applicative.

image.png

Une fois que l’agent est créé, n’oubliez pas de l’activer en cliquant sur le bouton image.png dans la liste des agents.

Que contient la base DirectoryResources ?

II. Modifications des vues

II.a. Sans distinction CN/DN

Avant la version .Net 2014, il n’était pas possible de faire une distinction entre nom court (CN) et nom complet (DN).

On a donc, pour un utilisateur par exemple, le paramétrage suivant :

image.png

Pour afficher le nom de la personne qui a créé le document, il faut chercher l’information dans Documents.Created_by. L’information stockée dans cette colonne est le nom complet (DN) qui est le même que le nom court (CN).

Exemple de requête affichant le créateur du document :

SELECT
Documents.id as id,
Documents.reference as reference,
Documents.title as title,
Documents.created_by as created_by
FROM
Documents

II.b. Avec distinction CN/DN

Dans le cas d’un nom court différent d’un nom complet, et le souhait d’afficher la valeur du nom court dans la vue concernant le nom du créateur, il est nécessaire de modifier la requête de la façon suivante :

SELECT
Documents.id as id,
Documents.reference as reference,
Documents.title as title,
DirectoryResources.cn_name as created_by
FROM
Documents
Inner join DirectoryResources on DirectoryResources.dn_name = documents.created_by

Dans le cas de l’utilisateur suivant :

image.png

Si le paramétrage de la vue est dans une version précédente à .Net 2014, l’affichage sera le suivant :

image.png

Si le paramétrage de la vue est en version .Net 2014 avec distinction CN/DN, l’affichage sera le suivant :

image.png

2 - Prise en compte de la distinction CN/DN dans les vues pour des champs multi-valués

Dans le cas de l'affichage de champs multi-valués contenant des ressources de l'annuaire pour lesquels la distinction CN/DN est effective dans une vue, un complément de paramétrage SQL est nécessaire :

SELECT  
D.id as id,
D.title as title,
D.reference as reference,

case (select cn_name from directoryResources where dn_name = de.ChampDRMonoValue) when '' then de.ChampDRMonoValue else (select cn_name from directoryResources where dn_name = de.ChampDRMonoValue) end as ChampDRMonoValue,

ChampDRMultiValue = STUFF(
(SELECT ',' + cn_name
FROM FRM_Formulaire_FLD_ChampDRChampValue t1
left join directoryResources dr on dr.dn_name = t1.value
WHERE t1.id_document = de.id_document
FOR XML PATH (''))
, 1, 1, ''),
FROM
Documents D
inner join frm_Formulaire de on de.Id_document = D.Id
WHERE
D.id in (SELECT id_document FROM DocumentAccessView WHERE resource_name {0})