Entitätssuchdefinition in Ihrem benutzerdefinierten Code wiederverwenden
Veröffentlicht: November 2016
Gilt für: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2013, Dynamics CRM 2015, Dynamics CRM 2016
Entitätssuche in Unified Service Desk ist als Dienst für Entwickler verfügbar, sodass sie eine vorhandene Entitätssuchdefinition in ihrem benutzerdefinierten Code programmgesteuert verwenden können, um Microsoft Dynamics 365-Daten zu suchen. Entitätssuchen in Unified Service Desk verwenden FetchXML, um Webdaten von Dynamics 365-Webdiensten abzufragen. Informationen zum Definieren von Entitätssuchen finden Sie unter Suchen von Daten mithilfe von Entitätssuchen in Unified Service Desk.
Wenn Sie eine Entitätssuche einrichten, können Sie auswählen, ob die gesamten Suchergebnisse zurückgegeben werden oder die FetchXML Ergebnisse umfangreicher Datasets auf Seiten angezeigt werden, indem Sie ein Auslagerungscookie zur Verbesserung der Leistung verwenden. Weitere Informationen zur Verwendung des Auslagerungscookies mit FetchXML finden Sie unter Auslagern umfangreicher Ergebnissätze mit FetchXML.
Da Sie einen Entitätssuchbegriff in Ihrem Code verwenden, um Daten zurückzugeben, und nicht die FetchXML-Definition, wird mit der Aktualisierung der zugrunde liegenden FetchXML-Abfragedefinition der Entitätssuche in Unified Service Desk ohne Änderung des Entitätssuchbegriffs sichergestellt, dass Sie nicht den benutzerdefinierten Steuerungscode aktualisieren, neu kompilieren und anschließend auf die Clientcomputer verteilen müssen.
Verwenden Sie die neue EntitySearchRequest-Nachricht, um eine Anforderung zu erstellen, und übergeben Sie dann die Anforderung als Parameter an die Methode EntitySearchService.GetEntitySearchResults, um die Antwort (EntitySearchResponse) abrufen.
In diesem Thema
Erstellen eines EntitySearchRequest-Objekts
Führen Sie das Anforderungsobjekt aus.
Erstellen eines EntitySearchRequest-Objekts
Die Nachricht wird EntitySearchRequest überladen, und Sie benötigen die folgenden drei Konstruktoren, um ein Anforderungsobjekt zu erstellen, davon abhängig, wie die Datensätze zurückgegeben werden sollen. Das Erstellen eines Anforderungsobjekts ohne Verwendung eines dieser drei Konstruktoren wird nicht unterstützt. Bevor Sie einen Entitätssuchbegriff im Anforderungsobjekt verwenden, sollten Sie sicherstellen, dass die Entitätssuche bereits in Unified Service Desk in Ihrer Dynamics 365-Instanz aktiviert ist.
Erstellen eines Anforderungsobjekts nur mithilfe des Entitätssuchbegriffs. Auf dieser Konstruktor, um alle Datensätze zurückzugeben, die als Ergebnis der Entitätssuche zurückgegeben werden.
EntitySearchRequest mySearchRequest = new EntitySearchRequest(string entitySearchName);
Erstellen eines Anforderungsobjekts mithilfe des Entitätssuchbegriffs und der maximalen Anzahl der zurückzugebenden Datensätze. Auf dieser Konstruktor, um die Anzahl der Datensätze zu beschränken, die als Ergebnis der Entitätssuche zurückgegeben werden.
EntitySearchRequest mySearchRequest = new EntitySearchRequest(string entitySearchName, int maxCount);
Tipp
Geben Sie für den Parameter 0 maxCount an, um alle Datensätze zurückzugeben.
Erstellen eines Anforderungsobjekts mithilfe des Entitätssuchbegriffs, des Seitenzählers, der Seitenzahl und dem Auslagerungscookie. Verwenden diesen Konstruktor, um große Datensätze in Seiten für eine schnellere Leistung zurückzugeben.
Der pageCount Parameter definiert die Anzahl der Datensätze, die pro Seite zurückzukehren. Der Parameter pageNumber definiert die Seitennummer des Ergebnissets, um die Daten zurückzugeben. Wenn Ihre Abfrage beispielsweise 500 Datensätze zurückgibt, können Sie für pageCount50 angeben, um 50 Datensätze auf einer Seite anzuzeigen. Dies bedeutet, dass Sie die 10 Seiten mit Daten erhalten (50 Datensätze * 10 Seiten = 500). Wenn Sie die 100-150 Datensätze zurückgeben möchten, geben Sie den pageNumber-Wert mit 3 an. Sie müssen pageCookie mit empty angeben, um die erste Seite des Ergebnissatzes abzurufen.
EntitySearchRequest mySearchRequest = new EntitySearchRequest(string entitySearchName, int pageCount, int pageNumber, string pageCookie);
Hinweis
Wenn Sie das Anforderungsobjekt mithilfe dieses Konstruktors ausführen, um die Ergebnisse auf den Seiten abzurufen, gibt EntitySearchResponse-HasMoreRecords Eigenschaft des Warteobjekts an, ob mehr Datensätze vorhanden sind (value=1). Entsprechend wird der Wert der Eigenschaft EntitySearchResponse.PageCookie auf das Auslagerungscookie festgelegt, das von den aktuellen Ergebnisse zurückgegeben wird.
Führen Sie das Anforderungsobjekt aus.
Verwenden Sie EntitySearchService. GetEntitySearchResults-Methode, um das Anforderungsobjekts wie im vorherigen Abschnitt beschrieben auszuführen. Diese Methode führt das EntitySearchRequest Objekt aus und gibt ein EntitySearchResponse Objekt mit den Entitätssuchergebnissen zurück.
Das folgende Codebeispiel zeigt, wie Sie eine vorhandene Entitätssuche wiederverwenden können, um Ergebnisse auf Seiten abzurufen.
// Define parameters for the entity search request object.
string entitySearchName = "Sample Entity Search"; // Name of the entity search record defined in Unified Service Desk
int pageCount = 10; // Retrieve 10 records per page.
int pageNumber = 0;
string pageCookie = String.Empty; // Retrieve the first page of the result set.
var entityService = AifServiceContainer.Instance.GetService<IEntitySearchService>();
// Create a request object.
EntitySearchRequest entitySearchRequest = new EntitySearchRequest(searchName, pageCount, pageNumber, pageCookie);
bool hasMoreRecords = true;
while (hasMoreRecords)
{
entityService.GetEntitySearchResults(entitySearchRequest, (entitySearchResponse) =>
{
foreach (Entity e in entitySearchResponse.Entities)
{
Console.WriteLine("Entity with id:\"{0}\" retrieved", e.Id);
}
if (entitySearchResponse.HasMoreRecords)
{
pageNumber++;
pageCookie = entitySearchResponse.PageCookie;
entitySearchRequest = new EntitySearchRequest(searchName, pageCount, pageNumber, pageCookie);
}
else
{
hasMoreRecords = false;
}
});
}
Siehe auch
Suchen von Daten mithilfe von Entitätssuchen in Unified Service Desk
DoSearch
Unified Service Desk 2.0
© 2017 Microsoft. Alle Rechte vorbehalten. Copyright