Del via


Brug meddelelser (anmodnings- og svarklasser) med metoden Execute

 

Udgivet: januar 2017

Gælder for: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online

Du kan bruge metoderne i IOrganizationService til at udføre almindelige handlinger. Ud over de almindelige metoder, du kan bruge IOrganizationService.Execute metoden til afvikling af meddelelser, der ikke vises som metoder.Execute-metoden tager en meddelelsesanmodningsklasse som parameter og returnerer en meddelelsessvarklasse. Anmodningsmeddelelsesklassers navne slutter med "Anmodning", og svarmeddelelsesklassers navne slutter med "Svar". Du kan finde flere oplysninger om alle meddelelser, der understøttes af Execute-metoden, under xRM-meddelelser i organisationstjenesten, Dynamics 365-meddelelser i organisationstjenesten Webtjenesterne IDiscoveryService og IDeploymentService bruger et lignende kørselsanmodnings- og -svarmønster.

Udfør meddelelsesflow

OrganizationRequest er den grundlæggende klasse for alle meddelelsesanmodninger. Du kan bruge denne grundlæggende klasse til at udføre alle meddelelser, idet du angiver meddelelsesnavn og parametersamlingen for anmodningen. Men når du bruger en afledt klasse som AssociateRequest, udfyldes parametersamlingen, når du bruger egenskaberne i anmodningsklassen.

Execute-metoden returnerer den tilsvarende svarklasse for anmodningen, en klasse, der er afledt af klassen OrganizationResponse. Som med anmodningsklassen indeholder den afledte klasse en egenskab for hver værdi i den resulterende parametersamling. Alle meddelelser har et svar, men mange har ikke nogen egenskaber for svaret. .

Meddelelser foruddefineres i metadata og gemmes som poster i SDK-meddelelsesobjekter. For hver meddelelse kan du afgøre, om den fungerer, mens der er forbindelse til serveren, eller fra Microsoft Dynamics 365 til Microsoft Office Outlook med offlineadgang. Disse oplysninger findes i attributten SdkMessage.Availability. Du kan finde flere oplysninger under Registreringsobjekter for plug-in.

Dette emne indeholder

Overfør valgfrie parametre i meddelelser

Udfør meddelelser i en enkelt databasetransaktion

Udfør meddelelser i baggrunden (asynkront)

Overfør valgfrie parametre i meddelelser

Du kan overføre valgfrie parametre til meddelelsesanmodninger ved at føje en værdi til egenskaben Parameters. Nogle parametre er ikke eksponerede egenskaber i anmodningsklasser. Hvis du vil indstille disse parametre, skal de indstilles i Parameters-samlingen i klassen Request.

I følgende tabel vises en oversigt over disse parametre.

Parameter

Beskrivelse

Meddelelser

SolutionUniqueName

En String, der angiver det entydige navn på den løsning, som handlingen gælder for. Du kan finde flere oplysninger under Afhængighedssporing for for løsningskomponenter.

AddPrivilegesRoleRequest
CreateRequest
DeleteRequest
MakeAvailableToOrganizationTemplateRequest
UpdateRequest

CalculateMatchCodeSynchronously

Dette er ikke længere påkrævet at angive denne parameter. De matchkoder, der bruges til at registrere dubletter, beregnes synkront uanset den overførte værdi i parameteren. Du kan finde flere oplysninger under Køre registrering af dubletter.

CreateRequest
UpdateRequest

SuppressDuplicateDetection

En Boolean-parameter bruges til at deaktivere registrering af dubletter i en oprettelses- eller opdateringshandling. Du kan finde flere oplysninger under Køre registrering af dubletter.

CreateRequest
UpdateRequest

I følgende eksempel kan du se, hvordan du overfører en valgfri parameter:

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

Udfør meddelelser i en enkelt databasetransaktion

Det er et almindeligt krav i virksomhedsprogrammer at koordinere ændringer af flere poster i systemet, så enten alle dataændringer lykkes, eller ingen af dem gør. I databaseterminologi er dette kendt som at udføre flere handlinger i en enkelt transaktion med mulighed for at annullere alle ændringer, hvis én handling mislykkes.

Du kan udføre to eller flere organisationstjenesteanmodninger i en enkelt databasetransaktion ved hjælp af ExecuteTransactionRequest-meddelelsesanmodningen. Når du vil bruge denne meddelelse, skal du udfylde Requests-samlingen med to eller flere organisationsanmodninger, som skal udføres i transaktionen. Indstil ReturnResponses til true, hvis du vil vende tilbage til en samling af svar, ét for hver meddelelsesanmodning, der er udført, i Responses-samlingen. Meddelelsesanmodninger Requests-samlingen udføres i den rækkefølge, som de vises i samlingen, hvor elementet ved indeks 0 afvikles først. Denne samme rækkefølge bevares i Responses-samlingen.

Hvis en af anmodningerne ikke kan afvikles, og transaktionen rulles tilbage, annulleres alle ændringer af data, der er udført under transaktionen. Der returneres desuden en ExecuteTransactionFault, som identificerer indekset i anmodningssamlingen for den anmodningsmeddelelse, der forårsagede fejlen.

En ExecuteMultipleRequest kan indeholde en eller flere ExecuteTransactionRequest forekomster. En ExecuteTransactionRequest forekomst må ikke indeholde en ExecuteMultipleRequest eller ExecuteTransactionRequest. Du kan finde flere oplysninger om ExecuteMultipleRequest under Bruge ExecuteMultiple til at forbedre ydelsen for massedatabelastninger.

For eksempelkode, der viser ExecuteTransactionRequest se Sample: Execute multiple requests in transaction.

Udfør meddelelser i baggrunden (asynkront)

Ud over at udføre meddelelsesanmodninger med det samme, som det er tilfældet ved kald af Execute og ved overførsel af en meddelelsesanmodning, kan du også vælge at udføre en meddelelsesanmodning (asynkront) i baggrunden. Dette forbedrer systemets ydeevne ved at udsætte udførelse af meddelelser til et senere tidspunkt, når serverbelastningen kan være mindre. Interaktive brugere behøver ikke at vente på, at destinationsmeddelelsen udføres, før de kan fortsætte. Dette er især nyttigt ved behandling af meddelelser, der tager et par minutter eller mere til at udføre.

Bemærk

På nuværende tidspunkt kan kun ImportSolutionRequest-meddelelsen bruges sammen med ExecuteAsync-meddelelsen.

Brug ExecuteAsyncRequest-meddelelsen til at udføre en meddelelse asynkront. Du kan konfigurere anmodningen og sende anmodningsforekomsten som argument til Execute.ExecuteAsyncResponse returnerer med id'et for det asynkrone job. Du kan forespørge på jobbet (valgfrit) ved hjælp af id'et for få oplysninger om den aktuelle tilstand.

Du kan også udføre flere meddelelser på en gang ved hjælp af meddelelsen ExecuteMultipleRequest. For at gøre dette skal du føje en eller flere ExecuteAsync-meddelelsesanmodninger til en ExecuteMultiple-meddelelsesanmodning. På grund af begrænsninger, der kan forbedrer den overordnede systemydeevne, må kun én meddelelse udføres asynkront ad gangen for hver organisation. Du kan ikke udføre en ExecuteMultiple-meddelelsesanmodning fra en ExecuteAsync-meddelelsesanmodning. Du kan finde flere oplysninger om ExecuteMultiple-meddelelsesanmodningen under Bruge ExecuteMultiple til at forbedre ydelsen for massedatabelastninger.

Se også

Execute
OrganizationRequest
OrganizationResponse
ExecuteAsyncMaxConnectionsPerServer
ExecuteAsyncPerOrgMaxConnectionsPerServer
Bruge organisationstjenesten til at læse og skrive data eller metadata
Bruge ExecuteMultiple til at forbedre ydelsen for massedatabelastninger
Brug meddelelser (anmodnings- og svarklasser) med metoden ExecuteCrmOrganizationRequest
Meddelelser i registreringstjenesten
xRM-meddelelser i organisationstjenesten
Dynamics 365-meddelelser i organisationstjenesten
ExecuteAsync message privileges

Microsoft Dynamics 365

© 2017 Microsoft. Alle rettigheder forbeholdes. Ophavsret