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 |
|
Ricerca avanzata |
1 |
|
Associata |
2 |
|
Ricerca rapida |
4 |
|
Ricerca |
64 |
|
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