Partager via


Personnaliser les vues d’entité

 

Date de publication : novembre 2016

S’applique à : Dynamics CRM 2015

Les vues d’entités sont des requêtes enregistrées spéciales qui récupèrent des données à l’aide d’un filtre spécifique. Elles contiennent également des informations sur la façon dont les données de la vue doivent être affichées dans l’application. Les vues d’entités sont des enregistrements SavedQuery que vous pouvez créer par programme. Vous pouvez également les définir en tant que fichiers XML et les importer dans Microsoft Dynamics 365 avec une solution non gérée.

Une vue d’entité est différente de UserQuery. Une requête utilisateur, appelée Vue enregistrée dans l’application, appartient à un utilisateur particulier, peut être affectée et partagée avec d’autres utilisateurs, peut être affichée par d’autres utilisateurs selon les privilèges d’accès de la requête. Elle convient aux requêtes fréquemment utilisées qui présentent les types d’entités et les requêtes effectuant l’agrégation.Pour plus d'informations :Entité UserQuery (vue enregistrée)

Contenu de la rubrique

Types de vues

Affichage de tâches

  • Créer des vues

  • Mettre à jour les vues

  • Supprimer des vues

  • Extraire des vues

  • Désactiver des vues

  • Modifier les critères de filtre ou configurer le tri

  • Modifier les colonnes

  • Définir par défaut

Types de vues

Le tableau suivant répertorie les types de vues prises en charge pour la personnalisation. Le code de type d’une vue est enregistré dans l’attribut SavedQuery.QueryType. Notez qu’il existe des valeurs valides pour l’attribut QueryType non répertoriées ici car cette entité est également utilisée pour stocker les filtres et les modèles Microsoft Office Outlook. Pour plus d'informations, voir Filtres et modèles hors connexion et Outlook.

Lorsque des vues sont définies pour une entité spécifique, l’attribut SavedQuery.ReturnedTypeCode renvoie le nom logique de l’entité.

Type de vue

Code de type

Description

Public

0

  • Occurrence: Tous

  • Actions: Créer, supprimer, mettre à jour

  • Commentaires: Vous pouvez définir une de ces vues comme vue publique par défaut en attribuant à SavedQuery.IsDefault la valeur true.

Recherche avancée

1

  • Occurrence: 1

  • Actions: Mise à jour uniquement.

  • Commentaires: Par défaut, cette vue est affichée lorsque les résultats sont affichés dans Recherche avancée.

Vue associée

2

  • Occurrence: 1

  • Actions: Mise à jour uniquement,

  • Commentaires: Par défaut, cette vue est affichée lorsqu’une grille de l’enregistrement associé s’affiche dans le volet de navigation d’un enregistrement.

Recherche rapide

4

  • Occurrence: 1

  • Actions: Mise à jour uniquement.

  • Commentaires: Cette vue définit les colonnes qui font l’objet d’une recherche d’enregistrements en utilisant le champ de recherche dans la liste.

Recherche

64

  • Occurrence: 1

  • Actions: Mise à jour uniquement.

  • Commentaires: Il s’agit de la vue par défaut qui permet de rechercher un enregistrement lorsqu’aucune autre vue n’a été configurée pour le champ de recherche.

Affichage de tâches

Comme les vues sont des enregistrements SavedQuery, vous pouvez créer, mettre à jour, extraire, supprimer et désactiver ces enregistrements. En outre, vous pouvez modifier les critères de filtre ou configurer le tri, modifier les colonnes ou définir une vue en tant que vue par défaut.

Créer des vues

Pour créer une vue publique, spécifiez les propriétés suivantes :

  • SavedQuery.Name: Identificateur unique pour la requête enregistrée.

  • SavedQuery.ReturnedTypeCode: Correspond au nom logique de l’entité.

  • SavedQuery.FetchXml: Voir Utiliser FetchXML pour créer une requête.

  • SavedQuery.LayoutXml: Voir <layoutxml> (SavedQuery) pour les éléments valides.

  • SavedQuery.QueryType: Doit toujours correspondre à zéro (0).

L’exemple suivant crée une nouvelle vue publique pour l’entité opportunité :


                    System.String layoutXml =
@"<grid name='resultset' object='3' jump='name' select='1' 
    preview='1' icon='1'>
    <row name='result' id='opportunityid'>
    <cell name='name' width='150' /> 
    <cell name='customerid' width='150' /> 
    <cell name='estimatedclosedate' width='150' /> 
    <cell name='estimatedvalue' width='150' /> 
    <cell name='closeprobability' width='150' /> 
    <cell name='opportunityratingcode' width='150' /> 
    <cell name='opportunitycustomeridcontactcontactid.emailaddress1' 
        width='150' disableSorting='1' /> 
    </row>
</grid>";

                    System.String fetchXml =
                    @"<fetch version='1.0' output-format='xml-platform' 
    mapping='logical' distinct='false'>
    <entity name='opportunity'>
    <order attribute='estimatedvalue' descending='false' /> 
    <filter type='and'>
        <condition attribute='statecode' operator='eq' 
        value='0' /> 
    </filter>
    <attribute name='name' /> 
    <attribute name='estimatedvalue' /> 
    <attribute name='estimatedclosedate' /> 
    <attribute name='customerid' /> 
    <attribute name='opportunityratingcode' /> 
    <attribute name='closeprobability' /> 
    <link-entity alias='opportunitycustomeridcontactcontactid' 
        name='contact' from='contactid' to='customerid' 
        link-type='outer' visible='false'>
        <attribute name='emailaddress1' /> 
    </link-entity>
    <attribute name='opportunityid' /> 
    </entity>
</fetch>";

                    SavedQuery sq = new SavedQuery
                    {
                        Name = "A New Custom Public View",
                        Description = "A Saved Query created in code",
                        ReturnedTypeCode = "opportunity",
                        FetchXml = fetchXml,
                        LayoutXml = layoutXml,
                        QueryType = 0
                    };

                    _customViewId = _serviceProxy.Create(sq);
                    Console.WriteLine("A new view with the name {0} was created.", sq.Name);

Mettre à jour les vues

Si la propriété gérée SavedQuery.IsCustomizable permet de mettre à jour la vue, vous pouvez utiliser la méthode IOrganizationService.Update ou le message UpdateRequest pour actualiser la vue.

Supprimer des vues

Vous ne devez supprimer que les requêtes enregistrées que vous avez créées. Un composant de solution ou partie de l’application peut dépendre d’une requête enregistrée spécifiques. Si vous ne souhaitez pas voir apparaître certaines requêtes dans l’application, désactivez-les.

Extraire des vues

Utilisez RetrieveMultipleRequest ou IOrganizationService.RetrieveMultiple pour extraire des enregistrements de requête enregistrés.

L’exemple suivant extrait toutes les vues publiques pour l’entité opportunité :


        QueryExpression mySavedQuery = new QueryExpression
        {
            ColumnSet = new ColumnSet("savedqueryid", "name", "querytype", "isdefault", "returnedtypecode", "isquickfindquery"),
            EntityName = SavedQuery.EntityLogicalName,
            Criteria = new FilterExpression
            {
                Conditions =
{
    new ConditionExpression
    {
        AttributeName = "querytype",
        Operator = ConditionOperator.Equal,
        Values = {0}
    },
    new ConditionExpression
    {
        AttributeName = "returnedtypecode",
        Operator = ConditionOperator.Equal,
        Values = {Opportunity.EntityTypeCode}
    }
}
            }
        };
        RetrieveMultipleRequest retrieveSavedQueriesRequest = new RetrieveMultipleRequest { Query = mySavedQuery };

        RetrieveMultipleResponse retrieveSavedQueriesResponse = (RetrieveMultipleResponse)_serviceProxy.Execute(retrieveSavedQueriesRequest);

        DataCollection<Entity> savedQueries = retrieveSavedQueriesResponse.EntityCollection.Entities;

        //Display the Retrieved views
        foreach (Entity ent in savedQueries)
        {
            SavedQuery rsq = (SavedQuery)ent;
            Console.WriteLine("{0} : {1} : {2} : {3} : {4} : {5},", rsq.SavedQueryId, rsq.Name, rsq.QueryType, rsq.IsDefault, rsq.ReturnedTypeCode, rsq.IsQuickFindQuery);
        }

Désactiver des vues

Si vous ne souhaitez pas voir apparaître une vue publique dans l’application, vous pouvez la désactiver. Vous ne pouvez pas désactiver une vue publique qui est définie comme vue par défaut. L’exemple suivant désactive la vue Opportunités fermées au cours de l’exercice actuel pour l’entité opportunité :


System.String SavedQueryName = "Closed Opportunities in Current Fiscal Year";
QueryExpression ClosedOpportunitiesViewQuery = new QueryExpression
{
    ColumnSet = new ColumnSet("savedqueryid", "statecode", "statuscode"),
    EntityName = SavedQuery.EntityLogicalName,
    Criteria = new FilterExpression
    {
        Conditions =
        {
            new ConditionExpression
            {
                AttributeName = "querytype",
                Operator = ConditionOperator.Equal,
                Values = {0}
            },
            new ConditionExpression
            {
                AttributeName = "returnedtypecode",
                Operator = ConditionOperator.Equal,
                Values = {Opportunity.EntityTypeCode}
            },
                            new ConditionExpression
            {
                AttributeName = "name",
                Operator = ConditionOperator.Equal,
                Values = {SavedQueryName}
            }
        }
    }
};

RetrieveMultipleRequest retrieveOpportuntiesViewRequest = new RetrieveMultipleRequest { Query = ClosedOpportunitiesViewQuery };

RetrieveMultipleResponse retrieveOpportuntiesViewResponse = (RetrieveMultipleResponse)_serviceProxy.Execute(retrieveOpportuntiesViewRequest);

SavedQuery OpportunityView = (SavedQuery)retrieveOpportuntiesViewResponse.EntityCollection.Entities[0];
_viewOriginalState = (SavedQueryState)OpportunityView.StateCode;
_viewOriginalStatus = OpportunityView.StatusCode;


SetStateRequest ssreq = new SetStateRequest
{
    EntityMoniker = new EntityReference(SavedQuery.EntityLogicalName, (Guid)OpportunityView.SavedQueryId),
    State = new OptionSetValue((int)SavedQueryState.Inactive),
    Status = new OptionSetValue(2)
};
_serviceProxy.Execute(ssreq);

Modifier les critères de filtre ou configurer le tri

Pour modifier le filtre ou modifier le mode de tri des données, vous devez définir l’attribut SavedQuery.FetchXml. Pour plus d'informations, voir Générer des requêtes avec FetchXML.

Conseil

Si vous n’êtes pas familiarisé avec FetchXML, les messages suivants peuvent être utilisés pour convertir entre QueryExpression et FetchXML :QueryExpressionToFetchXmlRequest et FetchXmlToQueryExpressionRequest.

Modifier les colonnes

Les colonnes à afficher dans les vues peuvent être prises de l’entité ou des entités associées. Pour plus d’informations sur la manière de spécifier les colonnes à afficher, voir <layoutxml> (SavedQuery).

Définir par défaut

Une seule vue publique active peut être définie en tant que vue par défaut. Pour faire d’une vue la vue par défaut, définissez la propriété IsDefault sur true.

Voir aussi

Exemple : utiliser les vues
Messages et méthodes de l’entité SavedQuery (vue)
Saved query XML reference
Générer des requêtes avec FetchXML
Étendre le modèle de métadonnées
Personnaliser les formulaires d’entités
Personnaliser les groupes d’options généraux
Guide destiné aux développeurs chargés de la personnalisation de Microsoft Dynamics CRM 2015

© 2017 Microsoft. Tous droits réservés. Copyright