Entiteit Zoekdefinitie opnieuw gebruiken in uw aangepaste code

 

Gepubliceerd: november 2016

Is van toepassing op: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2013, Dynamics CRM 2015, Dynamics CRM 2016

Entiteitszoekopdracht in Unified Service Desk is beschikbaar als een service voor ontwikkelaars zodat ze via programmeren in hun aangepaste code een bestaande entiteitzoekactie kunnen gebruiken om Microsoft Dynamics 365-gegevens te zoeken. Entiteitzoekopdrachten in Unified Service Desk gebruiken FetchXML om aan de Dynamics 365-webservices te vragen gegevens te retourneren. Voor informatie over het definiëren van entiteitzoekopdrachten raadpleegt u Gegevens zoeken met entiteitzoekacties in Volledige servicedesk.

Wanneer u een entiteitzoekopdracht instelt, kunt u kiezen of u een volledig zoekresultaat wilt retourneren of de FetchXML-resultaten voor grote gegevenssets wilt doorbladeren door gebruik te maken van een paging-cookie voor snellere prestaties. Voor meer informatie over het gebruik van paging-cookies met FetchXML raadpleegt u Door grote resultatenreeksen met FetchXML bladeren.

Aangezien u een entiteitzoekopdrachtnaam in uw code gebruikt om gegevens te retourneren en niet de FetchXML-definitie, zorgt het bijwerken van de onderliggende FetchXML-querydefinitie van de entiteitzoekopdracht in Unified Service Desk zonder het wijzigen van de naam van de entiteitzoekopdracht ervoor dat u uw aangepaste besturingselementcode niet moet bijwerken, opnieuw compileren en opnieuw distribueren op de clientcomputers.

Gebruik het nieuwe bericht EntitySearchRequest om een aanvraag te construeren, en geef de aanvraag vervolgens als parameter door aan de methode EntitySearchService.GetEntitySearchResults om de respons (EntitySearchResponse) te verkrijgen.

In dit onderwerp

Een EntitySearchRequest-object maken

Het aanvraagobject uitvoeren

Een EntitySearchRequest-object maken

Het bericht EntitySearchRequest is overbelast en u moet een van de volgende drie constructors gebruiken om een aanvraagobject te maken, afhankelijk van hoe u wilt dat de records worden geretourneerd. Het maken van een aanvraagobject zonder gebruik van een van de volgende drie constructors wordt niet ondersteund. Voordat u in het aanvraagobject een naam van de entiteitzoekopdracht gebruikt, moet u ervoor zorgen dat de entiteitzoekopdracht al is bepaald in Unified Service Desk op uw Dynamics 365-exemplaar.

  • Maak een aanvraagobject met alleen de naam van de entiteitzoekopdracht. Gebruik deze constructor om alle records als een resultaat van de entiteitzoekopdracht te retourneren.

    EntitySearchRequest mySearchRequest = new EntitySearchRequest(string entitySearchName);
    
  • Maak een aanvraagobject met de naam van de entiteitzoekopdracht en het maximumaantal van de records die moeten worden geretourneerd. Gebruik deze constructor om het aantal records die als een resultaat van de entiteitzoekopdracht moeten worden geretourneerd te beperken.

    EntitySearchRequest mySearchRequest = new EntitySearchRequest(string entitySearchName, int maxCount);
    

    Tip

    Geef 0 op voor de maxCount-parameter om alle records te retourneren.

  • Maak een aanvraagobject met de naam van de entiteitzoekopdracht, de paginatelling, het paginanummer en de paging-cookie. Gebruik deze constructor om grote gegevenssets in pagina's te retourneren voor snellere prestaties.

    De pageCount-parameter bepaalt het aantal records dat per pagina wordt geretourneerd. De pageNumber-parameter bepaalt het paginanummer van de zoekresultaten om de gegevens te retourneren. Als uw query bijvoorbeeld 500 records retourneert, kunt u pageCount opgeven als 50 om 50 records op een pagina weer te geven. Dit impliceert dat u 10 pagina's gegevens krijgt (50 records * 10 pagina's = 500). Als u nu records 100-150 wilt retourneren, geeft u 3 op als waarde voor pageNumber. U moet pageCookie opgeven als empty om de eerste pagina van de zoekresultaten op te halen.

    EntitySearchRequest mySearchRequest = new EntitySearchRequest(string entitySearchName, int pageCount, int pageNumber, string pageCookie);
    

    Notitie

    Als u het aanvraagobject met deze constructor uitvoert om resultaten in pagina's op te halen, geeft de EntitySearchResponseHasMoreRecords-eigenschap van het responsobject aan dat er meer records zijn (waarde = 1). Bovendien is de waarde van EntitySearchResponse.PageCookie ingesteld op de paging-cookie die uit de huidige resultaten wordt geretourneerd.

Het aanvraagobject uitvoeren

Gebruik de EntitySearchService.GetEntitySearchResults-methode om het aanvraagobject uit te voeren dat u hebt gemaakt zoals beschreven in de vorige sectie. Deze methode voert het EntitySearchRequest-object uit en retourneert een EntitySearchResponse-object met de resultaten van de entiteitzoekopdracht.

Het volgende codevoorbeeld toont aan hoe u een bestaande entiteitzoekopdracht opnieuw kunt gebruiken om de resultaten in pagina's te verkrijgen.

// 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;
      }
   });
}

Zie ook

Gegevens zoeken met entiteitzoekacties in Volledige servicedesk
DoSearch

Unified Service Desk 2.0

© 2017 Microsoft. Alle rechten voorbehouden. Auteursrecht