mardi 27 juin 2017

#Tip25 Dynamics 365 : Créer une vue personnelle

En tant qu’utilisateur Dynamics 365 CE, il est possible de créer des vues personnalisées. Comme leurs noms l’indiquent, les vues personnelles sont créées, modifiées, partagées, supprimées par les utilisateurs.
En standard, Dynamics 365 CE propose des vues dites Systèmes.

Voici la différence entre es deux types :
  • Vues systèmes : Vues administrées par l’administrateur système. Ces vues sont disponibles pour l’ensemble des utilisateurs (Bien entendu, les utilisateurs doivent posséder des privilèges sur l’entité pour accéder à ces vues)
  • Vues personnelles : Comme cité plus haut, ces vues sont gérées par les utilisateurs de l’application. Tant qu’il a accès à l’entité, un utilisateur peut créer autant de vues qu’il le souhaite.
Comme pour une vue système, les options modifiables d’une vue personnelle sont les suivantes :
  • Le nom de la vue
  • Les critères de filtre
  • Les colonnes
  • Le tri par défaut des colonnes
En revanche, comme son nom l’indique, une vue personnelle reste personnelle si elle n’est pas partagée avec un autre utilisateur.Le partage d’une vue permet de donner accès à cette dernière à tous les utilisateurs potentiels de Dynamics 365 CE.
Tout d’abord, il faut commencer par créer une vue ! Se rendre dans le menu de Recherche avancée.

image
Sélectionner l’entité sur laquelle créer une nouvelle vue. (Ici je sélectionne l’entité Contact)

image

NOTE : Avant de décrire comment créer une nouvelle vue, voici une description de toutes les options de cette page (Par menu de la navigation) :
Afficher :

  • Requête : vous permet de modifier le filtre standard de votre vue.
  • Vue enregistrée : affiche toutes vos vues concernant l'entité que vous avez sélectionné dans la section "Rechercher"
  • Résultats : voir le résultat de la vue si vous ajoutez un filtre (Vous pouvez cliquer sur ce bouton sans filtre)
Vue :

  • Nouveau : il créera une "nouvelle" vue dans la liste "Utiliser la vue enregistrée"
  • Enregistrer : enregistrez votre travail fréquemment ;)
  • Enregistrer sous : vous pouvez copier une vue, donner un nom différent et changer les options que vous voulez
  • Modifier les colonnes : ajouter / Supprimer / Modifier les colonnes de votre vue. Modifier le tri des colonnes
  • Modifier les propriétés : vous permet de modifier le nom et la description de votre vue
Requête :

  • Effacer : supprimer tout votre filtre
  • Groupement : mettez un groupe de filtres ensemble et appliquez la règle "ET"
    Exemple : Je veux tous les contacts qui habitent à Paris et qui possèdent un courrier électronique
image
  • Groupe OU: Mettre un groupe de filtre ensemble et appliquer la règle "OU”
    Exemple : Je souhaite voir l’ensemble des contacts qui habitent Paris ou à Lyon
image
  • Détails: Cliquez pour activer ou non la gestion des filtres
Débogage :
  • Télécharger Fetch XML : Télécharge un fichier avec tous les critères de filtre de votre vue sous format Fetch
Pour créer une nouvelle vue, cliquer sur le bouton Nouveau puis sur Modifier les propriétés. Donner un nom à votre vue et une description (optionnelle), cliquer ensuite sur Enregistrer :

image

La vue est bien créée : (On peut voir qu’elle est bien séparée des vues systèmes)

image

Maintenant, il faut ajouter des critères de filtre à la vue nouvellement créée. Cliquer sur Sélectionner  en dessous de Rechercher. La liste des champs  et  des relations apparaît.

image

Dépendant du type de champ, les opérateurs ne vont pas être les mêmes.
Exemple : Pour un champ type date, un des opérateurs est Après le “[Date]”. Cet opérateur n’est pas disponible pour un champ texte.

Précision sur l’opérateur Est égal à l’utilisat. actuel, il n’est disponible que pour les champ Propriétaire. Il est malheureusement impossible d’utiliser cet opérateur sur un autre champ type Recherche.
Dans cet exemple, je vais choisir un champ texte. Je souhaite extraire uniquement les contacts qui habitent à Paris.
  1. Choisir le champ Adresse 1 : Ville
  2. Choisir l’opérateur égal à
  3. Ecrire Paris
Le résultat doit être le suivant :


image

Cliquer sur Enregistrer pour sauvegarder le critère de filtre pour votre vue.
CONSEIL : Avant de modifier les colonnes de la vue ou ajouter des filtres supplémentaires, je vous conseille de tester votre vue. Plus il y a de critère de filtre, plus le risque de ne trouver aucun enregistrement est grand. Il vaut mieux toujours avancer pas à pas.
 

Il est possible d’ajouter des critère de filtre concernant des relations d’entités.
Exemple : Je souhaite avoir la liste des contacts habitant à Paris et possédant au moins une opportunité ouverte.
Pour ajouter ce type de critère, cliquer à nouveau sur Sélectionner, puis choisir la relation avec Opportunité dans la partie Association :


image
image


Une fois ajoutée, l’association apparaît légèrement décalée par rapport aux critères concernant les champs de l’entité principale. Les champs dédiées à l’entité associée sont ensuite sélectionnables.
Dans notre exemple, voici le résultat attendu :


image


Enregistrer à nouveau votre vue.
Après avoir cliqué sur Résultat, voici le résultat obtenu :

image


Le contact possède bien une opportunité ouverte et habite à Paris.
Maintenant, il faut afficher la colonne de la ville du contact. Pour se faire, retourner dans la configuration de la vue et cliquer sur Modifier les colonnes. Une nouvelle fenêtre s’ouvre :

image

Comme cité au début de l’article, les options sont les suivantes :
  • Configurer le tri des colonnes (Jusqu’à deux colonnes)
  • Ajouter des colonnes
  • Modifier les propriétés
  • Retirer (Retirer une colonne de la vue)
Dans notre cas, i faut cliquer sur Ajouter des colonnes. Une nouvelle fenêtre s’ouvre. Sélectionner le champ Adresse 1 : Ville puis cliquer sur Ajouter.
Note : Il est possible de rajouter des colonnes d’une entité parent de l’entité actuelle (Exemple : Nom du Compte parent). En revanche, il est impossible d’ajouter des colonnes d’entités filles.
La colonne est joutée à votre vue :

image

Pour augmenter la taille de la colonne, il faut double cliquer dessus et choisir une largeur de colonne plus grande :

image

Cliquer sur OK. Cliquer à nouveau sur ok pour quitter le menu de configuration des colonnes de la vue. Enregistrer votre vue.
Voici le résultat définitif de votre vue :

image

Maintenant, il faut partager cette vue pour qu’elle puisse être accessible par un autre utilisateur. Pour réaliser cela, cliquer sur Vues enregistrées

image

Sélectionner la vue à partager. Cliquer sur Partager :

image

Une nouvelle fenêtre s’ouvre et il est possible d’ajouter des utilisateurs (ou des équipes) du CRM. Cliquer sur Ajouter un utilisateur/une équipe :

image

Sélectionner les utilisateurs et cliquer sur Ajouter :

image

Les privilèges suivants sont applicables pour cet utilisateur :

  • Lire : L'utilisateur / L'équipe verra la vue dans sa liste de vue personnelle
  • Ecrire : Modifiez le filtre / colonne / etc...
  • Supprimer : Supprimer la vue
  • Ajouter : Non disponible
  • Affecter : Modifier le propriétaire de la vue
  • Partager : les autres utilisateurs peuvent partager avec d'autres utilisateurs, etc…
Une fois les privilèges attribués, cliquer sur Partager.

image

Une fois la vue partagée, elle est disponible pour l’autre utilisateur.


mardi 20 juin 2017

#Tip23 Dynamics 365 : Verrouiller des champs dans une sous-grille éditable

Dans Dynamics 365 CE, la modification des données d’une entité dite Enfant est disponible. Cette fonctionnalité permet d’éditer des valeurs directement dans les sous-grilles d’un formulaire ou bien depuis la vue principale de l’entité (navigation principale).

Sur un récent projet Dynamics 365 CE, ils nous a été demandé de verrouiller certaines colonnes disponibles à la modification. La volonté était de rendre modifiable une partie des champs de la vue mais en verrouiller certains.
Pour verrouiller une partie des champs d’une sous-grille modifiable, il est possible de créer une règle métier contenant des règles de verrouillage.
Mais pour verrouiller un champ sans condition spécifique, la règle métier doit être au niveau Entité, il est impossible de mettre la règle métier au niveau d’une vue ou d’une sous-grille directement...
En activant cette règle, les champs concernés sont bien verrouillés dans la sous-grille mais sur l’ensemble des formulaires également… 

image

Pour contourner ce “problème”, il est possible de mettre une fonction Javascript qui verrouille les champs à la sélection d’une ligne de la sous-grille.

Pour démontrer le fonctionnement de cette fonction, je vais activer à la modification la sous-grille “opportunité récente” sur l’entité Contact. L’objectif est de bloquer le champ Sujet de la vue "Opportunité récente".

Après avoir activé la grille comme grille modifiable, le champ sujet est disponible à la modification :

image

Pour verrouiller le champ, il faut déclarer une fonction Javascipt sur l’évènement OnRecordSelect, cet évènement est disponible dans le paramétrage de la sous-grille dans le formulaire Contact.

Note : J’ai préalablement créé une webressource Javascript contenant le fonction suivante :

function onrowselect(executionContext){
    var entityObject = executionContext.getFormContext().data.entity;
    var subject = entityObject.attributes.getByName("name");
     subject.controls.get(0).setDisabled(true);
  }


Pour ajouter un appel à cette fonction, ouvrir le formulaire Contact puis double cliquer dans la sous-grille éditable. Se rendre dans l’onglet Évènements.

image


Ajouter la librairie Javascript contenant la fonction ci-dessus.

image

Sur l’évènement OnRecordSelect, déclarer la fonction onrowselect. Sélectionner OnRecordSelect puis Ajouter.

image

Dans la fenêtre qui s’ouvre, ajouter le nom de la fonction et cocher la case Transmettre le contexte d’exécution comme premier paramètre.

image

Cliquer sur OK, sauvegarder et publier votre formulaire.
Après avoir effectué un rafraîchissement de votre page web (Vider le cache peut être nécessaire), ouvrir le formulaire contact et cliquer sur une ligne de la sous-grille Opportunité récente.

image

Le champ est maintenant verrouillé !

Beaucoup d’autres options concernant les sous-grilles sont disponibles, vous pouvez consulter ci-dessous  :
  • Supporter tous les types de champs sauf:
    • Statut
    • Type client
    • Composite
    • groupe d'activité
    • Recherche
  • Respecte la lecture seule pour les metadata
  • Supporte les évènements Jvascript ci-dessous:
    • OnRecordSelect
    • OnSave
    • OnChange
  • Supporte les niveaux de règles métier ci-dessous:
    • Montrer une message d'erreur
    • Mettre une valeur par défaut
    • Rendre obligatoire ou non
    • Affecter une valeur
    • Verrouiller ou non un champ