Freigeben über


Beispiel: Nutzung der optimistischen Parallelität mit Aktualisierungs- und Löschaktivitäten

 

Veröffentlicht: Januar 2017

Gilt für: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online

Zeigt, wie sie die Funktion für optimistische Parallelität verwenden, die in Microsoft Dynamics CRM Online 2015-Update 1 eingeführt werden um mögliche Datenverluste bei einem Update oder dem löschen von Entitäten zu vermeiden. Weitere Details zu der verwendete Technik, lesen in Verringern von möglichem Datenverlust mithilfe der optimistischen Parallelität.

Das vollständige Beispiel kann hier heruntergeladen werden: MSDN: Nutzung der optimistischen Parallelität mit Update- und Löschvorgängen.

Voraussetzungen

Für die Ausführung diese Beispiels benötigen Sie:

  • Zugriff auf eine Microsoft Dynamics CRM Online 2016 Update- oder eine lokale Microsoft Dynamics 365-Organisation.

  • Microsoft .NET Framework 4.5.2, das auf dem Entwicklungscomputer installiert ist.

  • Eine aktive Internetverbindung für die erforderlichen NuGet-Pakete, die bei der Erstellung des Beispiels automatisch heruntergeladen werden.

In diesem Thema

Funktionsweise:

Installieren von NuGet-Paketen

Ausführen des Beispiels

Funktionsweise:

Dieses Beispiel zeigt die Nutzung der optimistischen Parallelität mit Aktualisierungs- und Löschaktivitäten. Die Codeausschnitte zeigen nur die wichtigen Abschnitte des vollständigen Beispiels. In diesem Beispiel wird das Parallelitätsverhalten auf den Löschungs- und Aktualisierungsanforderungen angewandt. Der Server prüft die Anforderungen auf eine bestimmte Version eines Firmendatensatzes. Wenn das die Aktualisierungs- oder Löschvorgänge mithilfe eines Datensatzes mit einer anderen Zeilenversion versucht werden, kommt es zu einer Ausnahme. Andernfalls ist der Vorgang erfolgreich.


// Connect to the Organization service. 
// The using statement assures that the service proxy will be properly disposed.
using (_serviceProxy = new OrganizationServiceProxy(serverConfig.OrganizationUri, serverConfig.HomeRealmUri,
    serverConfig.Credentials, serverConfig.DeviceCredentials))
{
    CreateRequiredRecords();

    // Retrieve an account.
    var account = _serviceProxy.Retrieve("account", _accountId, new ColumnSet("name","creditlimit"));
    Console.WriteLine("\tThe row version of the created account is {0}", account.RowVersion);

    if (account != null)
    {
        // Create an in-memory account object from the retrieved account.
        Entity updatedAccount = new Entity()
        {
            LogicalName = account.LogicalName,
            Id = account.Id,
            RowVersion = account.RowVersion
        };

        // Update just the credit limit.
        updatedAccount["creditlimit"] = new Money(1000000);

        // Set the request's concurrency behavour to check for a row version match.
        UpdateRequest accountUpdate = new UpdateRequest()
        {
            Target = updatedAccount,
            ConcurrencyBehavior = ConcurrencyBehavior.IfRowVersionMatches
        };

        // Do the update.
        UpdateResponse accountUpdateResponse = (UpdateResponse) _serviceProxy.Execute(accountUpdate);
        Console.WriteLine("Account '{0}' updated with a credit limit of {1}.", account["name"], 
            ((Money)updatedAccount["creditlimit"]).Value);

        account = _serviceProxy.Retrieve("account", updatedAccount.Id, new ColumnSet());
        Console.WriteLine("\tThe row version of the updated account is {0}", account.RowVersion);
        _accountRowVersion = account.RowVersion;
    }

    DeleteRequiredRecords(promptforDelete);
}

// Delete the account record only if the row version matches.
EntityReference accountToDelete = new EntityReference("account", _accountId);
accountToDelete.RowVersion = _accountRowVersion;

DeleteRequest request = new DeleteRequest()
{
    Target = accountToDelete,
    ConcurrencyBehavior = ConcurrencyBehavior.IfRowVersionMatches
};

_serviceProxy.Execute(request);

Installieren von NuGet-Paketen

  1. Laden Sie das Beispiel herunter und extrahieren Sie die Dateien.

  2. Navigieren Sie zum C#-Ordner, und öffnen Sie die Lösungsdatei in Microsoft Visual Studio.

  3. Klicken Sie in Lösungs-Explorer mit der rechten Maustaste auf das Projekt, und wählen Sie NuGet-Pakete verwalten aus.

  4. Wenn Sie eine Microsoft Dynamics 365 (online)-Vorschauorganisation nutzen, klicken Sie in der Dropdownliste oben im Dialogfeld auf Prerelease einbeziehen. Wählen Sie andernfalls Nur Stabil aus.

  5. Schließen Sie das Dialogfeld.

Die erforderlichen Pakete werden automatisch installiert, wenn Sie die Lösung erstellen.

Ausführen des Beispiels

  1. Drücken Sie in Visual Studio die Taste F5, um das Beispiel zu erstellen und auszuführen. Sie werden aufgefordert, die Anzahl der Lizenzen für die zu installierenden NuGet-Pakete anzunehmen .

  2. Wenn Sie zuvor noch keines der Microsoft Dynamics 365-Managed-Code-Beispiele ausgeführt haben, müssen Sie Informationen eingeben, um den Code auszuführen. Andernfalls geben Sie die Zahl für einen der Dynamics 365-Server ein, die Sie bereits eingerichtet haben.

    Eingabeaufforderung

    Beschreibung

    Geben Sie einen Dynamics 365-Servernamen und -Port ein [crm.dynamics.com]

    Geben Sie den Namen Ihres Microsoft Dynamics 365-Servers ein. Die Standardeinstellung ist in Nordamerika (crm.dynamics.comMicrosoft Dynamics 365 (online) ).

    Beispiel:
    crm5.dynamics.com

    Fügen Sie nicht den Namen Ihrer Organisation oder das Internetprotokoll (http oder https) ein. Sie werden später dazu aufgefordert.

    Ist diese Organisation in Microsoft Online Services bereitgestellt? (y/n) [n]

    Geben Sie y ein, falls dies eine Microsoft Online Services-bereitgestellte Organisation ist. Andernfalls geben Sie n ein.

    Domäne\Benutzernamen eingeben

    Geben Sie für Microsoft Dynamics 365 (online) Ihre Microsoft-Konto ein. Beispiel: someone@mydomain.onmicrosoft.com.

    Kennwort eingeben

    Geben Sie Ihr Kennwort ein. Ihr Kennwort wird sicher im Windows-Anmeldeinformationsverwaltungzur späteren Wiederverwendung gespeichert.

    Organisationsnummer angeben (1-n) [1]

    Geben Sie aus der Liste der angezeigten Organisationen, zu denen Sie gehören, die entsprechende Nummer ein. Die Standardeinstellung ist 1 für die erste Organisation in der Liste.

  3. Das Beispiel führt die Vorgänge aus, die unter Funktionsweise: beschreiben werden, und fordert Sie möglicherweise zur Angabe weiterer Optionen auf.

  4. Wenn das Beispiel abgeschlossen ist, drücken Sie die EINGABETASTE, um das Konsolenfenster zu schließen.

Siehe auch

Verringern von möglichem Datenverlust mithilfe der optimistischen Parallelität

Microsoft Dynamics 365

© 2017 Microsoft. Alle Rechte vorbehalten. Copyright