Anpassen von Entitätsansichten
Veröffentlicht: November 2016
Gilt für: Dynamics CRM 2015
Entitätsansichten sind spezielle gespeicherte Abfragen, die Daten mithilfe eines spezifischen Filters abrufen. Sie enthalten auch Informationen dazu, wie die Daten in der Ansicht in der Anwendung angezeigt werden sollen. Entitätsansichten sind SavedQuery-Datensätze, die Sie programmgesteuert erstellen können. Sie können sie auch als XML definieren und in Microsoft Dynamics 365 mit einer nicht verwalteten Lösung importieren.
Eine Entitätsansicht unterscheidet sich von einer UserQuery. Eine Benutzerabfrage, die in der Anwendung als gespeicherte Ansicht bezeichnet wird, befindet sich im Besitz eines einzelnen Benutzers, kann anderen Benutzern zugewiesen und für andere Benutzer freigegeben werden und kann von anderen Benutzern abhängig von den Zugriffsrechten der Abfrage angezeigt werden. Dies ist für häufig verwendete Abfragen, die sich über mehrere Entitätstypen erstrecken, und Abfragen, die eine Aggregation ausführen, geeignet.Weitere Informationen:UserQuery (gespeicherte Ansicht)-Entität
In diesem Thema
Typen von Ansichten
Ansichtsaufgaben
Erstellen von Ansichten
Aktualisieren von Ansichten
Löschen von Ansichten
Abrufen von Ansichten
Deaktivieren von Ansichten
Bearbeiten von Filterkriterien oder Konfigurieren der Sortierung
Bearbeiten von Spalten
Als Standard festlegen
Typen von Ansichten
In der folgenden Tabelle werden die fünf Ansichtstypen aufgeführt, die für die Anpassung unterstützt werden. Der Typcode einer Ansicht wird im SavedQuery.QueryType-Attribut gespeichert. Beachten Sie, dass es andere gültige Werte für das QueryType-Attribut gibt, die hier nicht aufgeführt sind, da diese Entität auch zum Speichern von Microsoft Office Outlook-Filtern und -Vorlagen verwendet wird. Weitere Informationen finden Sie unter Offline- und Outlook-Filter und -Vorlagen.
Wenn Ansichten für eine bestimmte Entität definiert werden, gibt das SavedQuery.ReturnedTypeCode-Attribut den logischen Namen der Entität zurück.
Ansichtstyp |
Typcode |
Beschreibung |
---|---|---|
Öffentlich |
0 |
|
Erweiterte Suche |
1 |
|
Zugeordnet |
2 |
|
Schnellsuche |
4 |
|
Suche |
64 |
|
Ansichtsaufgaben
Da Ansichten SavedQuery-Datensätze sind, können Sie sie erstellen, aktualisieren, abrufen, löschen und deaktivieren. Darüber hinaus können Sie Filterkriterien bearbeiten oder die Sortierreihenfolge konfigurieren, Spalten bearbeiten oder eine Ansicht als Standardansicht festlegen.
Erstellen von Ansichten
Wenn Sie eine öffentliche Ansicht erstellen, geben Sie die folgenden Eigenschaften an:
SavedQuery.Name: ein eindeutiger Bezeichner für die gespeicherte Abfrage.
SavedQuery.ReturnedTypeCode: stimmt mit dem logischen Name der Entität überein.
SavedQuery.FetchXml: vgl. Verwenden von FetchXML zum Erstellen einerAbfrage.
SavedQuery.LayoutXml: vgl. <layoutxml> (SavedQuery) hinsichtlich der gültigen Elemente.
SavedQuery.QueryType: muss immer Null (0) sein.
Das folgende Bespiel erstellt eine neue öffentliche Ansicht für die Verkaufschancenentität:
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);
Aktualisieren von Ansichten
Wenn die verwaltete SavedQuery.IsCustomizable-Eigenschaft das Aktualisieren der Ansicht zulässt, können Sie die IOrganizationService.Update-Methode oder die UpdateRequest-Meldung verwenden, um die Ansicht zu aktualisieren.
Löschen von Ansichten
Sie sollten nur gespeicherte Abfragen löschen, die Sie erstellt haben. Eine Lösungskomponente oder ein Teil der Anwendung ist möglicherweise von einer spezifischen gespeicherten Abfrage abhängig. Wenn Abfragen vorhanden sind, die nicht in der Anwendung angezeigt werden sollen, sollten Sie sie deaktivieren.
Abrufen von Ansichten
Verwenden Sie RetrieveMultipleRequest oder IOrganizationService.RetrieveMultiple, um gespeicherte Abfragedatensätze abzurufen.
Das folgende Bespiel ruft alle öffentlichen Ansichten für die Verkaufschancenentität ab:
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);
}
Deaktivieren von Ansichten
Wenn eine öffentliche Ansicht nicht in der Anwendung angezeigt werden soll, können Sie sie deaktivieren. Sie können eine öffentliche Ansicht nicht deaktivieren, die als Standardansicht festgelegt ist. Das folgende Beispiel deaktiviert die Ansicht Abgeschlossene Verkaufschancen im aktuellen Geschäftsjahr für die Verkaufschancenentität:
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);
Bearbeiten von Filterkriterien oder Konfigurieren der Sortierung
Wenn Sie den Filter bearbeiten oder die Sortierung der Daten bearbeiten möchten, müssen Sie das Attribut SavedQuery.FetchXml festlegen. Weitere Informationen finden Sie unter Abfragen erstellen mit FetchXML.
Tipp
Wenn Sie mit FetchXML nicht vertraut sind, können die folgenden Meldungen verwendet werden, um QueryExpression in FetchXML zu konvertieren und umgekehrt: QueryExpressionToFetchXmlRequest und FetchXmlToQueryExpressionRequest.
Bearbeiten von Spalten
Die Spalten, die in den Ansichten angezeigt werden sollen, können von der Entität oder von verknüpften Entitäten übernommen werden. Weitere Informationen zum Angeben der anzuzeigenden Spalten finden Sie unter <layoutxml> (SavedQuery).
Als Standard festlegen
Nur eine aktive öffentliche Ansicht kann als Standardansicht festgelegt werden. Um eine Ansicht als Standardansicht festzulegen, legen Sie die Eigenschaft IsDefault auf "true" fest.
Siehe auch
Beispiel: Arbeiten mit Ansichten
SavedQuery (Ansicht)-Entitätsmeldungen und -methoden
Saved query XML reference
Abfragen erstellen mit FetchXML
Erweitern des Metadatenmodells
Anpassen von Entitätsformularen
Anpassen von globalen Optionssätzen
Entwicklerhandbuch zur Anpassung von Microsoft Dynamics CRM 2015
© 2017 Microsoft. Alle Rechte vorbehalten. Copyright