Personalizzare visualizzazioni entità

 

Data di pubblicazione: novembre 2016

Si applica a: Dynamics CRM 2015

Le visualizzazioni delle entità sono query salvate speciali che recuperano i dati utilizzando un filtro specifico. Contengono anche informazioni sui come devono essere visualizzati i dati della visualizzazione nell'applicazione. Le visualizzazioni delle entità sono record SavedQuery che possono essere creati a livello di programmazione. È inoltre possibile definirle come XML e importarle in Microsoft Dynamics 365 con una soluzione non gestita.

Una visualizzazione di entità è differente rispetto a una UserQuery. Una query utente, chiamata visualizzazione salvata nell'applicazione, è di proprietà di un singolo utente, può essere assegnata e condivisa con altri utenti e può essere visualizzata da altri utenti a seconda dei privilegi di accesso della query. Ciò è appropriato per query utilizzate frequentemente che interessano tipi di entità e query che eseguono aggregazioni.Ulteriori informazioni:Entità UserQuery (visualizzazione salvata)

In questo argomento

Tipi di visualizzazioni

Visualizzare le attività

  • Creare visualizzazioni

  • Aggiornare le visualizzazioni

  • Eliminare le visualizzazioni

  • Recuperare le visualizzazioni

  • Disattivare le visualizzazioni

  • Modificare i criteri di filtro o configurare l'ordinamento

  • Modificare le colonne

  • Imposta come predefinito

Tipi di visualizzazioni

Nella tabella seguente sono elencati i cinque tipi di visualizzazioni che sono supportati per la personalizzazione. Il codice del tipo di una visualizzazione è archiviato nell'attributo SavedQuery.QueryType. Si noti che sono presenti altri valori validi per l'attributo QueryType non elencati qui perché l'entità viene utilizzata anche per archiviare i filtri e i modelli di Microsoft Office Outlook. Per ulteriori informazioni, vedere Filtri e modelli offline e di Outlook.

Quando le visualizzazioni sono definite per un'entità specifica, l'attributo SavedQuery.ReturnedTypeCode restituisce il nome logico dell'entità.

Tipo di visualizzazione

Codice tipo

Descrizione

Pubblico

0

  • Occorrenze: Molti

  • Azioni: Creazione, Aggiornamento, Eliminazione

  • Commenti: È possibile impostare una di queste visualizzazioni come visualizzazione pubblica predefinita impostando SavedQuery.IsDefault su true.

Ricerca avanzata

1

  • Occorrenze: 1

  • Azioni: Solo aggiornamento.

  • Commenti: Per impostazione predefinita, questa visualizzazione viene visualizzata quando i risultati vengono visualizzati nella Ricerca avanzata.

Associata

2

  • Occorrenze: 1

  • Azioni: Solo aggiornamento,

  • Commenti: Per impostazione predefinita, questa visualizzazione viene visualizzata quando una griglia di record correlati viene visualizzata nel riquadro di spostamento di un record.

Ricerca rapida

4

  • Occorrenze: 1

  • Azioni: Solo aggiornamento.

  • Commenti: Questa visualizzazione definisce le colonne che verranno controllate quando si effettuerà una ricerca di record utilizzando il campo di ricerca in una visualizzazione elenco.

Ricerca

64

  • Occorrenze: 1

  • Azioni: Solo aggiornamento.

  • Commenti: Si tratta della visualizzazione predefinita che verrà utilizzata per trovare un record quando non è stata configurata un'altra visualizzazione per il campo di ricerca.

Visualizzare le attività

Poiché le visualizzazioni sono record SavedQuery, è possibile crearle, aggiornarle, recuperarle, eliminarle e disattivarle. È possibile inoltre modificare i criteri di filtro o configurare l'ordinamento, modificare le colonne o impostare una visualizzazione come visualizzazione predefinita.

Creare visualizzazioni

Per creare una visualizzazione pubblica, specificare le proprietà seguenti:

  • SavedQuery.Name: Un identificatore univoco per la query salvata.

  • SavedQuery.ReturnedTypeCode: Corrisponde al nome logico dell'entità.

  • SavedQuery.FetchXml: Vedere Utilizzare FetchXML per costruire una query.

  • SavedQuery.LayoutXml: Vedere <layoutxml> (SavedQuery) per gli elementi validi.

  • SavedQuery.QueryType: Deve essere sempre zero (0).

Il seguente esempio creare una nuova visualizzazione pubblica per 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);

Aggiornare le visualizzazioni

Se la proprietà gestita SavedQuery.IsCustomizable consente di aggiornare la visualizzazione, è possibile utilizzare il metodo IOrganizationService.Update o il messaggio UpdateRequest per aggiornare la visualizzazione.

Eliminare le visualizzazioni

È consigliabile eliminare solo le query salvate che sono state create dall'utente. Un componente di soluzione o una parte dell'applicazione può dipendere da una query salvata specifica. Se esistono query che non si desidera visualizzare nell'applicazione, è consigliabile disattivarle.

Recuperare le visualizzazioni

Utilizzare RetrieveMultipleRequest o IOrganizationService.RetrieveMultiple per recuperare i record della query salvate.

Il seguente esempio recupera tutte le visualizzazioni pubbliche per 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);
        }

Disattivare le visualizzazioni

Se non si desidera visualizzare una visualizzazione pubblica nell'applicazione, è possibile disattivarla. Non è possibile disattivare una visualizzazione pubblica impostata come visualizzazione predefinita. Il seguente esempio disattiva la visualizzazione Opportunità chiuse anno fiscale corrente per 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);

Modificare i criteri di filtro o configurare l'ordinamento

Per modificare il filtro o modificare le modalità di ordinamento dei dati, è necessario impostare l'attributo SavedQuery.FetchXml. Per ulteriori informazioni, vedere Creare query con FetchXML.

Suggerimento

Se non si ha familiarità con FetchXML, i messaggi seguenti possono essere utilizzati per convertire tra QueryExpression e FetchXML:QueryExpressionToFetchXmlRequest e FetchXmlToQueryExpressionRequest.

Modificare le colonne

Le colonne che si desidera visualizzare nelle visualizzazioni possono essere prese dalle entità o dalle entità correlate. Per ulteriori informazioni su come specificare le colonne da visualizzare, vedere <layoutxml> (SavedQuery).

Imposta come predefinito

È possibile impostare come visualizzazione predefinita solo una visualizzazione pubblica. Per rendere una visualizzazione la visualizzazione predefinita, impostare la proprietà IsDefault su true.

Vedere anche

Esempio: Utilizzare le visualizzazioni
Metodi e messaggi dell'entità SavedQuery (visualizzazione)
Saved query XML reference
Creare query con FetchXML
Estendere il modello dei metadati
Personalizzare moduli di entità
Personalizzare set di opzioni globali
Guida per sviluppatori sulla personalizzazione per Microsoft Dynamics CRM 2015

© 2017 Microsoft. Tutti i diritti sono riservati. Copyright