Lernprogramm: Erstellen einer Workflow-Erweiterung

In diesem Lernprogramm wird der Prozess gezeigt, um den Workflowdesigner zu erweitern, um benutzerdefinierte Aktivitäten und Logik unter Verwendung einer Workflow-Assembly hinzufügen, gelegentlich als Workflowaktivität bezeichnet. Die Erweiterungen, die Sie auf diese Weise erstellen, können innerhalb eines Workflows, eine benutzerdefinierten Aktion oder eines Dialogs verwendet werden.

In diesem Lernprogramm wird ein sehr einfaches Beispiel verwendet, den Fokus auf die Anforderungen und den Prozess zu konzentrieren, um:

  • Erstellen eines Visual Studio Klassenbibliotheksprojektes
  • Eine CodeActivity-Klasse hinzufügen
  • Ein- und Ausgabeparameter definieren
  • Fügen Sie Ihre Geschäftslogik hinzu
  • Die Assembly signieren und erstellen
  • Registrieren Ihrer Assembly
  • Testen Sie Ihre Assembly
  • Hinzufügen der Assembly zu einer Lösung

Voraussetzungen

  • Eine Microsoft Dataverse-Instanz und Administratorrechte
  • Verstehen, wie Workflows konfiguriert werden. Weitere Informationen: Klassische Dataverse-Workflows
  • Eine modellgesteuerte App, die es Ihnen ermöglicht, Firmen zu bearbeiten.

Ziel

Im folgenden Beispiel wird eine einfache benutzerdefinierte Workflowaktivität erstellt, die in einem Workflow, in einem Dialogfeld oder in einem Aktionsprozess verwendet werden kann. Weitere Informationen: Workflowphasen und Schritte konfigurieren

Diese benutzerdefinierte Workflowaktivität vergleicht die folgenden Anforderungen:

  1. Akzeptieren eines dezimalen Eingabeparameters
  2. Ausgeben eines Werts gleich dem Eingabeparameter plus 10.

In einem Workflow für die Firma-Entität kann er auf folgende Weise verwendet werden, um den Wert Kreditlimit mit zwei Schritte zu erhöhen:

Ziel des Tutorials.

Schritt 1 verwendet die benutzerdefinierte Workflowaktivität Beispiel: Erhöhung um 10, um den Wert Firmen-Kreditlimit zu akzeptieren und um 10 zu erhöhen. Schritt 2 verwendet die Aktion Datensatz aktualisieren, um den Wert Firmen-Kreditlimit mit dem erhöhten Wert zu aktualisieren.

Schritt 1:Erhöhten Firmen-Kreditlimit abrufen

Wenn der erste Schritt hinzugefügt wurde, ist die benutzerdefinierte Workflowaktivität in einer Probe-Gruppe verfügbar und trägt dem Namen Erhöhen um 10.

Der Schritt „Erhöhen um 10“.

Beim der Konfigurierung des ersten Schritts durch Klicken auf die Schaltfläche Eigenschaften festlegen, ist die Eigenschaft Decimal input erforderlich und akzeptiert nur einen Dezimalwert, wie das Attribut Kreditlimit der Entität Firma.

Festlegen der Dezimaleingabe.

Schritt 2: Festlegen eines neuen Firmen-Kreditlimits

Im zweiten Schritt weist die Aktion Datensatz aktualisieren die Ausgabe des Schritts Erhöhtes Firmen-Kreditlimit abrufen zu, um den Limitwert Firmen-Kredit mit dem erhöhten Wert zu aktualisieren.

Aktualisieren Sie das Kreditlimit.

Erstellen eines Visual Studio Klassenbibliotheksprojektes

Dies Projekt erstellt eine einfache Workflow-Assembly, die einen Dezimalwert um 10 erhöht.

  1. Starten Sie Visual Studio.

  2. Klicken Sie im Menü Datei auf Neu und dann auf Projekt.

  3. Suchen Sie nach Klassenbibliothek und wählen Sie Klassenbibliothek (.NET Framework).

    Suche nach Klassenbibliothek (.NET Framework).

  4. Klicken Sie auf Weiter.

  5. Geben Sie einen Namen und einen Ort für die Lösung an.

    Konfigurieren Sie Ihren neuen Projektdialog in Visual Studio 2019.

    Hinweis

    Wählen Sie einen Projektnamen, der für Ihr Projekt sinnvoll ist. In diesem Beispiel verwenden wir SampleWorkflowActivity.

  6. Klicken Sie auf Erstellen.

  7. Klicken Sie im Lösungs-Explorer mit der rechten Maustaste auf das Projekt und wählen Sie Eigenschaften. Überprüfen Sie auf der Registerkarte Anwendung, ob .NET Framework 4.6.2 als Zielframework eingestellt ist.

    Projekteigenschaften festlegen.

  8. Klicken Sie im Lösungs-Explorer mit der rechten Maustaste auf das Projekt und wählen Sie Verwalten von NuGet Paketen ... ,

    NuGet-Package verwalten.

  9. Suchen Sie nach dem Microsoft.CrmSdk.Workflow-NuGet-Paket und installieren Sie es.

    Workflow NuGet-Paket Microsoft.CrmSdk.Workflow installieren.

    Hinweis

    Stellen Sie sicher, dass das Paket, das Sie installieren im Besitz von crmsdk ist. Dieses Paket enthält Microsoft.Xrm.Workflow.dll, einer Abhängigkeit des Microsoft.CrmSdk.CoreAssemblies-Pakets, sodass die erforderliche Microsoft.Xrm.Sdk.dll-Assembly auch enthalten ist.

  10. Sie müssen auf Ich akzeptiere im Dialog Lizenz annehmen klicken.

    Lizenzvertrag akzeptieren.

Umbenennen der Klassendatei

  1. Klicken Sie im Lösungs-Explorer mit der rechten Maustaste auf die Standard Class1.cs-Datei und wählen Sie Umbenennen.

    Umbenennen der Class1.cs-Datei.

    Hinweis

    Wählen Sie einen Klassennamen aus, der für die Aktivität sinnvoll ist. In diesem Beispiel nennen wir die Klasse IncrementByTen.

  2. Wählen Sie Ja im Dialogfenster, das Sie fragt, ob Sie die Klasse ebenfalls umbenennen möchten.

    Wählen Sie „Ja“, um die Klasse ebenfalls umzubenennen.

  3. Öffnen Sie die Datei "IncrementByTen.cs", und fügen Sie die folgenden Verwendungsanweisungen hinzu:

    using System.Activities;
    using Microsoft.Xrm.Sdk;
    using Microsoft.Xrm.Sdk.Workflow;
    
  4. Legen Sie fest, dass die Klasse von der CodeActivity-Klasse erbt und weisen Sie ihr einen öffentlichen Zugriffs-Modifizierer wie nachfolgend gezeigt zu:

    public class IncrementByTen: CodeActivity
        {
    
        }
    
  5. Fügen Sie die Ausführen-Methode aus der CodeActivity-Klasse mit Visual Studio-Schnellaktionen oder manuell hinzu:

    Codeaktivitätsschnittstelle implementieren.

  6. Diese Klasse sieht nun wie folgt aus:

    public class IncrementByTen : CodeActivity
    {
        protected override void Execute(CodeActivityContext context)
        {
            throw new NotImplementedException();
        }
    }
    

Ein- und Ausgabeparameter definieren

  1. Fügen Sie einen Satz von Ein- und Ausgabeparameter hinzu, wobei der Wert des Ausgabeparameters der Wert des Eingabeparameters ist, der um 10 erhöht wurde.

    public class IncrementByTen : CodeActivity
    {
        [RequiredArgument]
        [Input("Decimal input")]
        public InArgument<decimal> DecInput { get; set; }
    
        [Output("Decimal output")]
        public OutArgument<decimal> DecOutput { get; set; }
    
        protected override void Execute(CodeActivityContext context)
        {
    
        }
    }
    

    Hinweis

    Beachten Sie, wie .NET-Attribute verwendet werden, um Metadaten zu den Parametern in der Assembly bereitzustellen. Weitere Informationen: Parameter hinzufügen

Fügen Sie Ihre Geschäftslogik hinzu

Fügen Sie innerhalb der Ausführungsmethode Logik hinzu, um die Logik anwenden, um den Eingabewert um 10 zu erhöhen.

    protected override void Execute(CodeActivityContext context)
    {
      decimal input = DecInput.Get(context);
      DecOutput.Set(context, input + 10);
    }

Die Assembly signieren und erstellen

  1. Die benutzerdefinierten Workflowaktivitäts- (und Plug-In)-Assemblys müssen signiert sein. Wählen Sie in den Projekteigenschaften unter der Registerkarte Signieren Assemby signieren. Wählen Sie unter Starker Name für Schlüsseldatei wählen Sie die Option <Neu...>. Sie müssen im Rahmen dieses Lernprogramms kein Kennwort festlegen. In diesem Beispiel haben wir eine neue Schlüsseldatei namens SampleWorkflowActivity.snk erstellt

    Assembly signieren.

  2. Erstellen Sie die Lösung im Debugmodus und überprüfen Sie, dass sich die SampleWorkflowActivity.dll-Assembly im Ordner /bin/Debug befindet.

Hinweis

Bei der Entwicklung einer Assembly ist es in Ordnung, die Debug Build-Konfiguration zu verwenden. Wenn Sie Ihre Assembly auf einem Produktionsserver oder in einer Lösung bereitstellen, sollten Sie die Build-Konfiguration Release verwenden.

Registrieren Ihrer Assembly

Benutzerdefinierte Workflowaktivitätsassemblys werden mithilfe des Plug-In-Registrierungs-Tools registriert. Dieses Tool stellt eine grafische Benutzeroberfläche bereit und unterstützt das Registrieren Assemblys, die Plug-Ins oder benutzerdefinierte Workflowaktivitäten enthalten. Informationen zum Abrufen des Plug-in-Registrierungs-Tools finden Sie unter Dataverse-Bereitstellungtools

Verbindung mithilfe des Plugin Registration Tool herstellen

  1. Nachdem Sie das Plugin Registration Tool heruntergeladen haben, öffnen Sie es durch Klicken auf PluginRegistration.exe.

  2. Stellen Sie mit Neue Verbindung erstellen eine Verbindung zu Ihrer Instanz her.

  3. Stellen Sie sicher, dass Office 365 ausgewählt ist.

  4. Wenn Sie die Verbindung mit einem anderen Microsoft-Konto als dem derzeit verwendeten herstellen, klicken Sie auf Erweitert anzeigen und geben Sie Ihre Zugangsdaten ein. Ansonsten lassen Sie Melden Sie sich als aktueller Benutzer an ausgewählt.

  5. Wenn Ihr Microsoft-Konto Zugriff auf mehrere Umgebungen bietet, wählen Sie Liste der verfügbaren Organisationen anzeigen aus.

    Anmelden mithilfe des Plugin Registration Tool.

  6. Klicken Sie auf Anmeldung.

  7. Wenn Sie Liste verfügbarer Organisationen anzeigen, wählen Sie die Organisation aus, die Sie verbinden möchten und klicken Sie auf Anmeldung.

  8. Nachdem Sie verbunden sind, sehen Sie alle vorhandenen registrierten Plug-Ins, benutzerdefinierten Workflow-Aktivitäten und Datenanbieter.

    Anzeigen bestehender Plug-Ins und benutzerdefinierter Workflowaktivitäten.

Registrieren Ihrer Assembly

  1. Wählen Sie Registrieren > Neue Assembly registrieren aus.

    Assemblybefehl registrieren.

  2. Klicken Sie im Dialogfeld Neue Assembly registrieren auf die Schaltfläche mit den Auslassungspunkten (...) und navigieren Sie zu SampleWorkflowActivity.dll im Ordner /bin/Debug.

    Assembly-Dialog registrieren.

    Hinweis

    Hinweis: Bei Dataverse werden die gültigen Optionen für die Schritte 3 und 4 ausgewählt und ungültige Optionen deaktiviert.

  3. Wählen Sie Ausgewählte Plug-ins registrieren aus. Es sollte ein Bestätigungsdialogfeld angezeigt werden.

    Plug-In-Dialog registriert.

  4. Klicken Sie auf OK, um das Dialogfeld Neue Assembly registrieren zu schließen.

Konfigurieren von Aktivitätsnamen

  1. Suchen Sie in der Liste Registrierte Plug-Ins und benutzerdefinierter Workflowaktivitäten nach (Assembly) SampleWorkflowActivity und erweitern Sie diese, um (Workflowaktivität) SampleWorkflow.Activity.IncrementByTen - Isolatable anzuzeigen.

  2. Wählen Sie (Workflowaktivität) SampleWorkflow.Activity.IncrementByTen - Isolatable aus, und bearbeiten Sie im Bereich Eigenschaften die Bearbeitbaren Eigenschaften mit den Werten in der folgenden Tabelle:

    Bearbeitbares Feld Ursprünglicher Wert Neuer Wert Beschreibung
    Beschreibung Gibt den Wert des Eingabeparameters plus 10 zurück. Wird in der Benutzeroberfläche des Prozessdesigners nicht angezeigt, kann aber bei der Erstellung der Dokumentation von Daten aus der PluginType-Entität hilfreich sein, in der diese Informationen gespeichert werden.
    FriendlyName ein GUID-Wert IncrementByTen Anzeigename des Benutzers für das Plug-In.
    Name SampleWorkflowActivity.IncrementByTen Erhöhen um 10 Der Name des dargestellten Menüs.
    WorkflowActivityGroupName SampleWorkflowActivity (1.0.0.0) Beispiel Der Name des Untermenüs, das dem Hauptmenü im Dataverse-Prozessdesigner hinzugefügt wurde.

    Hinweis

    Wenn Name und WorkflowActivityGroupName auf null festgelegt sind, wird die benutzerdefinierte Aktivität nicht im Prozessdesigner angezeigt.

  3. Klicken Sie auf Speichern (Symbol), um die Änderungen zu speichern.

    Speichern der Workflowaktivitätseigenschaften.

Testen Sie Ihre Assembly

Sie können Ihre neue Workflowaktivität testen, indem Sie einen Prozess erstellen, der sie verwendet. Führen Sie diese Schritte aus, um den Workflowprozess zu erstellen, der im obigen Abschnitt Ziel beschrieben wird:

  1. Power Apps öffnen

  2. Wählen Sie Lösungen aus.

  3. Öffnen Sie die Lösung CDS Default Publisher.

  4. Erweitern Sie im Menü die Option ... und wählen Sie Wechsel zu klassisch.

    Wechseln Sie zur klassischen Benutzeroberfläche.

  5. Wählen Sie Prozesse in der Liste Komponenten aus.

  6. Wählen Sie Neu aus, und geben Sie im Dialogfeld Prozess erstellen Folgendes ein:

    Feld Value
    Prozessname Test von SampleWorkflowActivity.IncrementByTen
    Kateg. Workflow
    Entität Firma
    Diesen Workflow im Hintergrund ausführen (empfohlen) Auswahl aufgehoben

    Hinweis

    Die Auswahl der Option Diesen Workflow im Hintergrund ausführen wurde aufgehoben, um einen Echtzeit-Workflow (synchron) zu erstellen. Dies erleichtert das Testen.

    Erstellen eines Prozesses.

  7. Wählen Sie OK aus.

  8. Übernehmen Sie die folgenden Änderungen:

    Feld Wert
    Geltungsbereich Organisation
    Starten wenn: Datensatzfelder geändert werden ausgewählt und name-Feld im Dialogfeld angegeben.

    Konfiguration eines Testworkflows.

    Hinweis

    Das Festlegen von Bereich auf Organisation erzeugt einen Workflow, der von jedem in der Organisation angewendet werden kann.

  9. Fügen Sie den folgenden Schritt hinzu:

    Fügen Sie den Schritt „SampleWorkflowActivity.IncrementByTen“ hinzu.

  10. Legen Sie den Schritt Beschreibung auf Erhöhten Firmen-Kreditlimit abrufen fest, und klicken Sie auf Eigenschaften festlegen.

  11. Legen Sie den Wert der Eigenschaft Decimal input auf mit dem Standardwert 0 das Kreditlimit der Firma fest.

    Die Dezimaleingabe-Eigenschaft festlegen.

  12. Klicken Sie auf Speichern und schließen.

  13. Fügen Sie einen Datensatz erstellen-Schritt hinzu:

    Hinzufügen eines „Datensatz aktualisieren“-Schritts.

  14. Klicken Sie auf Eigenschaften festlegen, und legen Sie den Wert Kreditlimit auf den Wert des Schritts Erhöhtes Firmen-Kreditlimit fest.

    Den Wert des Kreditlimits festlegen.

    Die Workflowschritte sollten ungefähr wie folgt aussehen:

    Das vollständige Workflow.

  15. Klicken Sie auf Speichern und schließen.

  16. Aktivieren Sie das Workflows, indem Sie im Menü auf Aktivieren klicken...

    Workflowbefehl aktivieren.

  17. Und klicken Sie im Dialogfeld Bestätigung der Prozessaktivierung auf Aktivieren.

    Dialog „Bestätigung der Prozessaktivierung“.

  18. Navigieren Sie zu einer modellgesteuerten App und zeigen Sie eine Liste der Firmen an.

  19. Auswahl einer Firma.

  20. Bearbeiten Sie den Feldwert Firmenname.

  21. Speichern Sie den Firmendatensatz.

  22. Stellen Sie sicher, dass die Firma, die Sie bearbeitetet haben den Wert Kreditlimit um 10 erhöht hat.

    Firmen-Kreditlimiterhöhung bestätigen.

Hinzufügen der Assembly zu einer Lösung

Um eine benutzerdefinierte Workflowaktivität in einer Lösung zu verteilen, müssen Sie die registrierte Assembly, die sie enthält, einer nicht verwalteten Lösung hinzufügen.

  1. Öffnen Sie die nicht verwaltete Lösung, der Sie die Assembly hinzufügen möchten, mit Power Apps

  2. Wählen Sie Bestehendes hinzufügen > Weitere > Plugin-Assembly.

    Vorhandenes Plugin-Assembly hinzufügen.

  3. Suchen Sie nach dem Plugin-Assembly mit dem Namen - in diesem Fall 'SampleWorkflowActivity'.

  4. Wählen Sie das Plugin-Assembly aus und wählen Sie Hinzufügen.

Siehe auch

Workflowerweiterungen
Beispiel: Eine benutzerdefinierte Workflowaktivität erstellen
Beispiel: Aktualisieren des nächsten Geburtstags mithilfe einer benutzerdefinierten Workflowaktivität
Beispiel: Berechnen Sie mit einer benutzerdefinierten Workflowaktivität einen Kreditscore

Hinweis

Können Sie uns Ihre Präferenzen für die Dokumentationssprache mitteilen? Nehmen Sie an einer kurzen Umfrage teil. (Beachten Sie, dass diese Umfrage auf Englisch ist.)

Die Umfrage dauert etwa sieben Minuten. Es werden keine personenbezogenen Daten erhoben. (Datenschutzbestimmungen).