Berichten (aanvraag- en responsklassen) gebruiken met de methode Execute
Gepubliceerd: november 2016
Is van toepassing op: Dynamics CRM 2015
U kunt de methoden in de IOrganizationService gebruiken om algemene bewerkingen uit te voeren. Naast de gebruikelijke methoden kunt u de methode IOrganizationService.Execute gebruiken voor het uitvoeren van berichten die niet beschikbaar worden gesteld als methoden. De methode Execute gebruikt een berichtaanvraagklasse als parameter en retourneert een berichtresponsklasse. Namen van aanvraagberichtklassen eindigen met "Request" en namen van de responsberichtklassen eindigen met "Response". Voor meer informatie over alle berichten die door de methode Execute worden ondersteund, raadpleegt u xRM-berichten in de organisatieservice, CRM-berichten in de organisatieservice. De webservices IDiscoveryService en IDeploymentService gebruiken een soortgelijk patroon van uitvoeringsaanvragen en responsen.
OrganizationRequest is de basisklasse voor alle berichtaanvragen. U kunt deze basisklasse gebruiken om eventuele berichten uit te voeren en de berichtnaam en de parameterverzameling voor de aanvraag op te geven. Wanneer u echter een afgeleide klasse gebruikt, zoals AssociateRequest, wordt de parameterverzameling gevuld wanneer u de eigenschappen in de aanvraagklasse gebruikt.
De methode Execute retourneert de corresponderende responsklasse voor de aanvraag, een afgeleide klasse van de klasse OrganizationResponse. Net als de aanvraagklasse bevat de afgeleide klasse een eigenschap voor elke waarde in de verzameling met resultatenparameters. Alle berichten hebben een respons, maar veel berichten hebben geen eigenschappen in de respons. .
Berichten zijn voorgedefinieerd in metagegevens en opgeslagen als records in de SDK-berichtentiteiten. U kunt voor elk bericht bepalen of het werkt terwijl u met de server bent verbonden of vanuit Microsoft Dynamics CRM voor Microsoft Office Outlook met offlinetoegang. Deze informatie kan in het kenmerk SdkMessage.Availability worden gevonden. Zie Plug-inregistratie entiteiten voor meer informatie.
In dit onderwerp
Optionele parameters doorgeven n berichten
Berichten uitvoeren in één databasetransactie
Berichten op de achtergrond uitvoeren (asynchroon)
Optionele parameters doorgeven n berichten
U kunt optionele parameters aan elke berichtaanvraag doorgeven door een waarde toe te voegen aan de eigenschap Parameters. Sommige parameters zijn geen zichtbare eigenschappen in aanvraagklassen. Als u deze parameters wilt instellen, moeten ze worden ingesteld in de Parameters-verzameling van de Request-klasse.
Deze parameters staan in de volgende tabel.
Parameter |
Beschrijving |
Berichten |
---|---|---|
SolutionUniqueName |
Een String die de unieke naam opgeeft van de oplossing waarop de bewerking van toepassing is. Zie Afhankelijkheden van oplossingsonderdelen bijhouden voor meer informatie. |
AddPrivilegesRoleRequest |
CalculateMatchCodeSynchronously |
Het opgeven van deze parameter is niet meer vereist. De matchcodes worden gebruikt om duplicaten te detecteren die synchroon worden berekend ongeacht de waarde die in deze parameter wordt doorgegeven. Zie Duplicatendetectie uitvoeren voor meer informatie. |
|
SuppressDuplicateDetection |
Een Boolean wordt gebruikt om duplicatendetectie uit te uitschakelen in een maak- of bijwerkbewerking. Zie Duplicatendetectie uitvoeren voor meer informatie. |
In het volgende voorbeeld ziet u hoe u een optionele parameter doorgeeft:
Account target = new Account();
target.Name = "Fabrikam";
CreateRequest req = new CreateRequest();
req.Target = target;
req["SuppressDuplicateDetection"] = true;
req["CalculateMatchCodeSynchronously"] = true;
req["SolutionUniqueName"] = "MySolutionName";
CreateResponse response = (CreateResponse)_service.Execute(req);
Berichten uitvoeren in één databasetransactie
Het is een veelvoorkomende vereiste in bedrijfstoepassingen om wijzigingen van meerdere records in het systeem te coördineren, zodat ofwel alle gegevenswijzigingen slagen of ze allemaal mislukken. In databasetermen heet dit het uitvoeren van meerdere bewerkingen in één transactie met de mogelijkheid alle gegevenswijzigingen terug te draaien als één bewerking mislukt.
Notitie
Dit bericht werd geïntroduceerd met Update 1 voor Microsoft Dynamics CRM Online 2015.
U kunt twee of meer organisatieserviceaanvragen in één databasetransactie uitvoeren met de berichtaanvraag ExecuteTransactionRequest. Als u dit bericht wilt gebruiken, vult u de verzameling Requests met twee of meer organisatieaanvragen die moeten worden uitgevoerd in de transactie. Stel ReturnResponses in op true als u een verzameling van antwoorden terug wilt ontvangen (één voor elke uitgevoerde berichtaanvraag) in de verzameling Responses. Berichtaanvragen in de verzameling Requests worden uitgevoerd in de volgorde waarin zij voorkomen in de verzameling, waarbij het element bij index 0 als eerste wordt uitgevoerd. Dezelfde volgorde wordt aangehouden in de verzameling Responses.
Als een van de aanvragen mislukt en de transactie wordt teruggedraaid, worden alle gegevenswijzigingen die zijn uitgevoerd tijdens de transactie ongedaan gemaakt. Bovendien wordt een ExecuteTransactionFault geretourneerd die de index in de aanvraagverzameling identificeert van het aanvraagbericht dat de fout heeft veroorzaakt.
Een ExecuteMultipleRequest kan een of meer exemplaren van ExecuteTransactionRequest bevatten. Een exemplaar van ExecuteTransactionRequest kan geen ExecuteMultipleRequest of ExecuteTransactionRequest bevatten. Zie ExecuteMultiple gebruiken om de prestaties voor bulkgegevenslading te verbeteren voor meer informatie over ExecuteMultipleRequest.
Berichten op de achtergrond uitvoeren (asynchroon)
Naast berichtaanvragen direct uitvoeren, zoals wanneer u Execute aanroept en een berichtaanvraag doorgeeft, kunt u ook ervoor kiezen om een berichtaanvraag op de achtergrond (asynchroon) uit te voeren. Dit verbetert de systeemprestaties doordat de berichtuitvoering tot later wordt uitgesteld wanneer de belasting van de server wellicht geringer is. Interactieve gebruikers hoeven niet te wachten op het doelbericht voordat zij kunnen doorgaan. Dit is met name nuttig wanneer berichten worden verwerkt waarvan de uitvoering enkele minuten duurt.
Notitie
Momenteel kan alleen het ImportSolutionRequest-bericht met het ExecuteAsync-bericht worden gebruikt.
Gebruik het ExecuteAsyncRequest-bericht om een bericht asynchroon uit te voeren. U configureert de aanvraag en geeft het aanvraagexemplaar door als argument aan ExecuteExecuteAsyncResponse retourneert de id van de asynchrone taak. U kunt (optioneel) de taak opvragen met de id om de huidige staat ervan te bepalen.
U kunt ook meerdere berichten tegelijk uitvoeren met het ExecuteMultipleRequest-bericht. Als u dit wilt doen, voegt u een of meer ExecuteAsync-berichtaanvragen aan een ExecuteMultiple-berichtaanvraag toe. Door bandbreedtebeperkingen die algemene de systeemprestaties verbeteren is slechts asynchrone uitvoering van één bericht tegelijk toegestaan voor elke organisatie. U kunt geen ExecuteMultiple-berichtaanvraag uitvoeren vanuit een ExecuteAsync-berichtaanvraag. Voor meer informatie over de ExecuteMultiple-berichtaanvraag raadpleegt u ExecuteMultiple gebruiken om de prestaties voor bulkgegevenslading te verbeteren.
Zie ook
Execute
OrganizationRequest
OrganizationResponse
ExecuteAsyncMaxConnectionsPerServer
ExecuteAsyncPerOrgMaxConnectionsPerServer
Gebruik de IOrganizationService-webservice om metagegevens of gegevens te lezen en schrijven
ExecuteMultiple gebruiken om de prestaties voor bulkgegevenslading te verbeteren
Berichten (aanvraag- en responsklassen) gebruiken met de methode ExecuteCrmOrganizationRequest
Berichten in de discovery-service
xRM-berichten in de organisatieservice
CRM-berichten in de organisatieservice
ExecuteAsync message privileges
© 2017 Microsoft. Alle rechten voorbehouden. Auteursrecht