Mit Geschäftsprozessflüssen mittels Code arbeiten

Ein Geschäftsprozessfluss ermöglicht es Ihnen, effizientere und optimierte Vertriebs-, Service- und andere Geschäftsprozesse zu erstellen. Erstellt eine Visualisierung des Geschäftsprozesses, indem spezielle Steuerelemente oben in den Entitätsformularen platziert werden. Benutzer werden durch verschiedene Phasen der Vertriebs-, Marketing- oder Serviceprozesse bis zum Abschluss geführt. Jeder Prozess unterstützt mehrere Phasen und Schritte. Sie können Schritte hinzufügen oder entfernen, um die Reihenfolge von Phasen zu ändern oder dem Geschäftsprozessfluss neue Entitäten hinzuzufügen.

Verschiedene Geschäftsprozessflussinstanzen können mit denselben Entitätsdatensatz gleichzeitig ausgeführt werden. Benutzer können zwischen gleichzeitigen Geschäftsprozessinstanzen wechseln und ihre Arbeit auf der aktuellen Stufe im Prozess fortsetzen.

In diesem Thema finden Sie Informationen dazu, wie Sie Geschäftsprozessflüsse programmgesteuert verwenden können.

Notiz

Sie müssen keinen Code zum Verwenden von Geschäftsprozessflüssen schreiben. Weitere Informationen zur Verwendung des Dynamics 365 Customer Engagement-Clients (Benutzeroberfläche) zum Erstellen und Verwalten von Geschäftsprozessflüssen finden Sie unter Geschäftsprozessflussübersicht

Voraussetzungen für Geschäftsprozessflüsse

Benutzerdefinierte Entitäten und Entitäten mit aktualisierten Benutzeroberflächenformularen können am Geschäftsprozessfluss teilnehmen. Für die aktualisierten Benutzeroberflächen-Entitäten ist die Eigenschaft IsAIRUpdated auf true festgelegt.

Um eine Entität für den Geschäftsprozessfluss zu aktivieren, legen Sie Eigenschaft IsBusinessProcessEnabled auf true fest.

Wichtig

Das Aktivieren einer Entität für den Geschäftsprozessfluss ist ein unidirektionaler Prozess. Sie können ihn nicht umkehren.

Geschäftsprozessfluss definieren

Verwenden Sie den visuellen Geschäftsprozessflussdesigner, um einen Geschäftsprozessfluss definieren. Weitere Informationen: Einen Geschäftsprozessfluss erstellen

Standardmäßig wird ein Geschäftsprozessflussdatensatz im Draft-Status erstellt.

Eine Geschäftsprozessflussdefinition wird in der Entität workflow gespeichert, und die Phaseninformationen für den Geschäftsprozessfluss werden in der Entität processstage gespeichert.

Geschäftsprozessfluss aktivieren

Bevor Sie den Prozessfluss verwenden können, müssen Sie ihn aktivieren. Um ihn zu aktivieren, müssen Sie über das Recht prvActivateBusinessProcessFlow für die Workflow-Entität verfügen. Verwenden Sie die UpdateRequest-Meldung, um den Status des Workflow-Datensatzes auf Activated festzulegen. Weitere Informationen: Durchführen spezieller Vorgänge mithilfe Update

Notiz

Sie können auch den visuellen Geschäftsprozessflussdesigner verwenden, um einen Geschäftsprozessfluss aktivieren.

Geschäftsprozessflussentität

Wenn Sie eine Geschäftsprozessflussdefinition aktivieren, indem Sie den Zustand des entsprechenden Workflow-Entitätsdatensatzes ändern oder den Geschäftsprozessflussdesigner verwenden, wird automatisch eine benutzerdefinierte Entität mit dem folgenden Namen angelegt, um die aktivierten Geschäftsprozessflussinstanzen zu speichern: <activesolutionprefix>_<uniquename>", wobei der "uniquename" von dem von Ihnen angegebenen Namen abgeleitet ist.

Angenommen, Sie geben den eindeutigen Namen der Geschäftsprozessflussdefinition als "My Custom BPF" an, und nutzen dann den Standardherausgeber (neu) für die aktive Lösung, dann ist der Name der angepassten Entität, die zum Speichern von Prozessinstanzen erstellt wird, "new_mycustombpf".

Wenn der Wert uniquename für eine Business Process Flow-Definition nicht verfügbar ist, z.B. wenn der Business Process Flow als Teil einer Lösung aus einer früheren Version importiert wurde, lautet der Standardname der angepassten Entität „<activesolutionprefix>_bpf_<GUID_BPF_Definition>:

Wichtig

Die in Dynamics 365 verfügbaren Beispiel-Datensätze für Geschäftsprozess-Flows verwenden System-Entitäten, um die entsprechenden Datensätze für die Geschäftsprozess-Flows zu speichern. Ein Paar von Beispielgeschäftsprozessflussentitätsdatensätzen sind OpportunitySalesProcess-Entität und LeadToOpportunitySalesProcess-Entität.

Jedoch verwenden alle von Ihnenneu ertellten Geschäftsprozessflussdefinitionen benutzerdefinierte Entitäten, um die Instanzdatensätze zu speichern, wie oben bereits erläutert.

Sie können den Namen Ihrer Geschäftsprozessflussentität auf eine der folgenden Arten abrufen:

  • Mithilfe der Benutzeroberfläche: Verwenden Sie die angepasste Benutzeroberfläche, um zu Ihrer Geschäftsprozessflussentität zu navigieren:

    BPF-Entitätsname.

  • Mit der Web-API: Verwenden Sie die folgende Anfrage:

    Anfordern

    GET [Organization URI]/api/data/v9.1/workflows?$filter=name eq 'My Custom BPF'&$select=uniquename HTTP/1.1
    

    Antwort

    {  
    "@odata.context":"[Organization URI]/api/data/v9.1/$metadata#workflows(uniquename)",
    "value":[  
         {  
             "@odata.etag":"W/\"1084677\"",
             "uniquename":"new_mycustombpf",
             "workflowid":"2669927e-8ad6-4f95-8a9a-f1008af6956f"
         }
      ]
    }
    
    
  • Über den Organisationsdienst: Verwenden Sie das folgende Codebeispiel:

    QueryExpression query = new QueryExpression
    {
        EntityName = "workflow",
        ColumnSet = new ColumnSet("uniquename"),
        Criteria = new FilterExpression
        {
            Conditions =
            {
                new ConditionExpression
                {
                    AttributeName = "name",
                    Operator = ConditionOperator.Equal,
                    Values = { "My Custom BPF" }
                }
            }
        }
    };
    Workflow Bpf = (Workflow)_serviceProxy.RetrieveMultiple(query).Entities[0]; 
    
    

Notiz

Die Eigenschaft IsBPFEntity ist true für Geschäftsprozessfluss-Entitäten. Sie können alle Geschäftsprozessfluss-Entitäten in Ihrer Instanz abrufen, indem Sie die folgende Web-API-Anforderung ausführen:

GET [Organization URI]/api/data/v9.1/EntityDefinitions?$select=SchemaName,LogicalName,DisplayName&$filter=IsBPFEntity eq true HTTP/1.1

Verwalten der Sicherheit für Geschäftsprozessflüsse

Die angepasste Entität, die bei der Aktivierung eines Business Process Flows automatisch erstellt wird, um Geschäftsprozess-Flows zu speichern, entspricht dem Standard-Sicherheitsmodell wie jede andere angepasste Entität in Customer Engagement. Dies bedeutet, dass die Rechte, die in diesen Entitäten gewährt werden, die Ablaufberechtigungen für Benutzer für Geschäftsprozessflüsse definieren.

Die benutzerdefinierte Geschäftsprozessflussentität hat Organisationsumfang. Die regulären Rechte für diese Entität zum Erstellen, Abrufen, Aktualisieren und Löschen definieren die Berechtigung, die Benutzende basierend auf ihren zugewiesenen Rollen besitzen würden. Standardmäßig, wenn die benutzerdefinierte Geschäftsprozessfluss-Entität erstellt wird, wird nur Systemadministrator- und Systemanpasser-Sicherheitsrollen der Zugriff darauf gewährt, und Sie müssen der neuen Geschäftsprozessfluss-Entität (zum Beispiel My Custom BPF) Berechtigungen für andere Sicherheitsrollen nach Bedarf gewähren.

BPF-Berechtigungen.

Erstellen, Abrufen, Aktualisieren und Löschen von Geschäftsprozessfluss-Entitätsdatensätzen (Prozessinstanzen)

Die benutzerdefinierte Entität, die automatisch für beim Aktivieren einer Geschäftsprozessflussdefinition erstellt wird, speichert alle Prozessinstanzen für die Geschäftsprozessflussdefinition. Die benutzerdefinierte Entität unterstützt die standardmäßige programmatische Erstellung und Verwaltung von Datensätzen (Prozessinstanzen) über die Web-API und den CRM 2011-Endpunkt.

Wichtig

Der Wechsel zu einer anderen Prozessinstanz für einen Entitätsdatensatz wird nur über die Benutzeroberfläche (Client) oder programmgesteuert unter Verwendung der Informationen in diesem Abschnitt unterstützt. Sie können die Nachricht SetProcess (SetProcess Aktion oder SetProcessRequest) nicht mehr verwenden, um programmatisch Prozesse zu wechseln (einen anderen Geschäftsprozess-Flow als aktive Prozessinstanz festzulegen) für den Datensatz der Zielentität.

Betrachten wir das folgende Beispiel mit einem entitätsübergreifenden Geschäftsprozessfluss, mein benutzerdefinierter GFP mit drei Phasen: Phase 1:Konto, Phase 2:Konto und Phase 3:Kontakt.

Beispiel-BPF.

Abrufen aller Datensätze (Instanzen) einer Geschäftsprozessfluss-Entität

Wenn der Name Ihrer Geschäftsprozessfluss-Entität „new_mycustombpf“ lautet, verwenden Sie die folgende Abfrage zum Abrufen aller Datensätze (Prozessinstanzen) für Ihre Geschäftsprozessfluss-Entität:

GET [Organization URI]/api/data/v9.1/new_mycustombpfs HTTP/1.1 

Zu diesem Zeitpunkt erhalten Sie möglicherweise keine Instanzen in Ihrer Antwort, da es keine gibt. Führen Sie diesen Anfrage aus, nachdem Sie später in diesem Thema eine Instanz Ihrer Geschäftsprozessflussdefinition angelegt haben.

Notiz

Wie Sie den Namen Ihrer Geschäftsprozessflussentität ermitteln können, erfahren Sie im vorherigen Abschnitt, Geschäftsprozessflussentität.

Anlegen eines Geschäftsprozessflussentitätsdatensatzes (Prozessinstanz)

Legen Sie einen Geschäftsprozessflussentitätsdatensatz (Prozessinstanz) programmgesteuert an, wenn Sie ohne Verwendung der Benutzeroberfläche zu einem anderen Geschäftsprozessfluss für einen Entitätsdatensatz wechseln wollen.

(!HINWEIS) Wenn Sie einen Datensatz in Einheitliche Oberfläche erstellen und dem Datensatz kein Geschäftsprozessfluss zugeordnet haben möchten, erstellen Sie ein Onload-Skript, das setActiveProcess aufruft und eine leere Prozess-ID (GUID) übergibt. Codebeispiel formcontext.data.process.setActiveProcess('00000000-0000-0000-0000-000000000000', (a)=>{Warnung("geändert -- „ + a)})

Um einen Geschäftsprozessflussentitätsdatensatz anzulegen, müssen Sie die folgenden Werte angeben:

  • Verknüpfen Sie den Geschäftsprozessflussentitätsdatensatz mit einem primären Entitätsdatensatz, indem Sie die Single-Value-Navigationseigenschaft mit der Annotation @odata.bind festlegen. Um den Namen der Navigationseigenschaft herauszufinden, die auf den primären Entitätsdatensatz für Ihre Geschäftsprozessflussdefinition verweist, verwenden Sie CSDL $metadata document.

  • Ordnen Sie den Geschäftsprozessflussentitätsdatensatz einer gültigen Phase zu, die in der Geschäftsprozessflussdefinition angegeben ist, indem Sie die Single-Value-Navigationseigenschaft mit der Annotation @odata.bind festlegen. Um den Namen der Navigationseigenschaft herauszufinden (normalerweise activestageid), die auf den Phasendatensatz für Ihre Geschäftsprozessflussdefinition verweist, verwenden Sie CSDL $metadata document.

    Außerdem können Sie Informationen über alle Phasen einer Geschäftsprozessflussdefinition abrufen, indem Sie die folgende Web-API-Anforderung verwenden, vorausgesetzt, dass die ID Ihrer Geschäftsprozessflussdefinition 2669927e-8ad6-4f95-8a9a-f1008af6956f ist:

    Anforderung

    GET [Organization URI]/api/data/v9.1/processstages?$select=stagename&$filter=processid/workflowid eq 2669927e-8ad6-4f95-8a9a-f1008af6956f HTTP/1.1
    

    Antwort

    {
        "@odata.context": "[Organization URI]/api/data/v9.1/$metadata#processstages(stagename)",
        "value": [
            {
                "@odata.etag": "W/\"858240\"",
                "stagename": "S1",
                "processstageid": "9a9185f5-b75b-4bbb-9c2b-a6626683b99b"
            },
            {
                "@odata.etag": "W/\"858239\"",
                "stagename": "S3",
                "processstageid": "a107e2fd-7543-4c1a-b6b4-b8060ecb1a1a"
            },
            {
                "@odata.etag": "W/\"858238\"",
                "stagename": "S2",
                "processstageid": "19a11fc0-3398-4214-8522-cb2a97f66e4b"
            }
        ]
    }
    

Als nächstes erstellen Sie mit der folgenden Anforderung eine Instanz Ihrer Geschäftsprozessflussdefinition für einen Kontodatensatz (ID=a176be9e-9a68-e711-80e7-00155d41e206) und die aktive Phase als erste Phase der Prozessinstanz S1 (ID=9a9185f5-b75b-4bbb-9c2b-a6626683b99b):

Anforderung

POST [Organization URI]/api/data/v9.1/new_mycustombpfs HTTP/1.1 
Content-Type: application/json; charset=utf-8 
OData-MaxVersion: 4.0 
OData-Version: 4.0 
Accept: application/json 

{
    "bpf_accountid@odata.bind": "/accounts(a176be9e-9a68-e711-80e7-00155d41e206)",
    "activestageid@odata.bind": "/processstages(9a9185f5-b75b-4bbb-9c2b-a6626683b99b)"    
}

Antwort

HTTP/1.1 204 No Content
OData-Version: 4.0
OData-EntityId: [Organization URI]/api/data/v9.1/new_mycustombpfs(cc3f721b-026e-e811-80ff-00155d513100)

Beachten Sie, dass wenn Sie eine Instanz Ihrer Geschäftsprozessflussdefinition mit einer anderen Phase als die erste Phase als aktiver Phasen-Satz anlegen wollen, in Ihrer Anforderung auch traversedpath angeben müssen. Durchlaufener Pfad ist die durch Komma getrennte Zeichenkette von Prozessstufen-IDs, die besuchte Phasen der Geschäftsprozessflussinstanz darstellen. Die folgende Anforderung erstellt eine Instanz für einen Firmendatensatz (ID=679b2464-71b5-e711-80f5-00155d513100) und der aktiven Phase, als die zweite Etappe, S2 (ID=19a11fc0-3398-4214-8522-cb2a97f66e4b).

POST [Organization URI]/api/data/v9.1/new_mycustombpfs HTTP/1.1 
Content-Type: application/json; charset=utf-8 
OData-MaxVersion: 4.0 
OData-Version: 4.0 
Accept: application/json 

{
    "bpf_accountid@odata.bind": "/accounts(679b2464-71b5-e711-80f5-00155d513100)",
    "activestageid@odata.bind": "/processstages(19a11fc0-3398-4214-8522-cb2a97f66e4b)",
    "traversedpath":"9a9185f5-b75b-4bbb-9c2b-a6626683b99b,19a11fc0-3398-4214-8522-cb2a97f66e4b"   
}

Aktualisieren eines Geschäftsprozessflussentitätsdatensatzes (Prozessinstanz)

Sie können eine Prozessinstanz aktualisieren, um zur nächsten oder vorherigen Phase zu wechseln, eine Prozessinstanz zu verlassen, eine Prozessinstanz zu reaktivieren oder eine Prozessinstanz zu beenden.

Phasennavigation

Um zu einer anderen Phase zu navigieren, müssen Sie einen Prozessinstanzdatensatz aktualisieren, um seine aktive Phasen-ID zu ändern und den durchlaufenen Pfad entsprechend zu aktualisieren. Beachten Sie, dass Sie bei der Aktualisierung einer Geschäftsprozessflussinstanz nur zum nächsten oder vorherigen Schritt wechseln müssen.

Zur Durchführung der Phasennavigation benötigen Sie die ID der Geschäftsprozessflussinstanz, die Sie aktualisieren möchten. Um alle Instanzen Ihres Geschäftsprozessflusses abzurufen, siehe Alle Datensätze (Instanzen) einer Geschäftsprozessflussentität abrufen weiter oben.

Angenommen, die ID der Prozessinstanz, die Sie aktualisieren möchten, ist dc2ab599-306d-e811-80ff-00155d513100, dann verwenden Sie die folgende Anfrage, um die aktive Phase von S1 auf S2 zu aktualisieren:

PATCH [Organization URI]/api/data/v9.1/new_mycustombpfs(dc2ab599-306d-e811-80ff-00155d513100) HTTP/1.1
Content-Type: application/json
OData-MaxVersion: 4.0
OData-Version: 4.0

{
    "activestageid@odata.bind": "/processstages(19a11fc0-3398-4214-8522-cb2a97f66e4b)",
    "traversedpath": "9a9185f5-b75b-4bbb-9c2b-a6626683b99b,19a11fc0-3398-4214-8522-cb2a97f66e4b"
}

Ändern Sie den Zustand einer Prozessinstanz: Abbrechen, Reaktivieren oder Beenden

Eine Prozessinstanz kann einen der folgenden Zustände haben: Aktiv, Abgeschlossen oder Abgebrochen. Der Status wird durch die folgenden Attribute im Prozessinstanzdatensatz bestimmt:

  • Statecode: Zeigt den Status der Prozessinstanz an.

    Value Bezeichnung
    0 Active
    1 Inaktiv
  • Statuscode: Zeigt Informationen über den Status der Prozessinstanz an.

    Value Bezeichnung
    1 Active
    2 Fertig
    3 Abgebrochen

Um eine Prozessinstanz abzubrechen, verwenden Sie die folgende Anfrage setzen Sie die Werte statecode und statuscode entsprechend:

PATCH [Organization URI]/api/data/v9.1/new_mycustombpfs(dc2ab599-306d-e811-80ff-00155d513100) HTTP/1.1   
Content-Type: application/json   
OData-MaxVersion: 4.0   
OData-Version: 4.0 
  
{ 
    "statecode" : "1", 
    "statuscode": "3" 
}

Notiz

Sie können eine Prozessinstanz jederzeit abbrechen.

Um eine Prozessinstanz zu reaktivieren, ersetzen Sie die Werte statecode und statuscode im obigen Code durch 0 bzw. 1.

Um schließlich einen Prozessinstanzstatus auf Abgeschlossen zu setzen, was nur in der letzten Phase einer Prozessinstanz möglich ist, ersetzen Sie die Werte statecode und statuscode im obigen Code durch 0 bzw. 2.

Entitätsübergreifende Navigation

Für die entitätsübergreifende Navigation in diesem Beispiel müssen Sie die aktive Phase der Prozessinstanz auf die letzte Phase S3 (ID=a107e2fd-7543-4c1a-b6b4-b8060ecb1a1a) setzen, den durchlaufenen Pfad entsprechend aktualisieren und einen Kontaktdatensatz als primären Entitätsdatensatz gemäß der Geschäftsprozessflussdefinition setzen.

PATCH [Organization URI]/api/data/v9.1/new_mycustombpfs(dc2ab599-306d-e811-80ff-00155d513100) HTTP/1.1   
Content-Type: application/json   
OData-MaxVersion: 4.0   
OData-Version: 4.0 
  
{
    "activestageid@odata.bind": "/processstages(a107e2fd-7543-4c1a-b6b4-b8060ecb1a1a)",
    "traversedpath":"9a9185f5-b75b-4bbb-9c2b-a6626683b99b,19a11fc0-3398-4214-8522-cb2a97f66e4b,a107e2fd-7543-4c1a-b6b4-b8060ecb1a1a",
    "bpf_contactid@odata.bind": "/contacts(0e3f10b0-da33-e811-80fc-00155d513100)"
}

Löschen eines Geschäftsprozessflussentitätsdatensatzes (Prozessinstanz)

Verwenden Sie die folgende Web-API-Anfrage:

Anforderung

DELETE [Organization URI]/api/data/v9.1/new_mycustombpfs(dc2ab599-306d-e811-80ff-00155d513100) HTTP/1.1

Antwort

Wenn der Datensatz existiert, erhalten Sie eine normale Antwort mit Status 204, um anzuzeigen, dass die Löschung erfolgreich war. Wenn die Entität nicht gefunden wird, erhalten Sie eine Antwort mit Status 404.

Verwendung von RetrieveProcessInstances und RetrieveActivePath-Meldungen

Verwenden Sie die Nachricht RetrieveProcessInstances (RetrieveActivePath Function oder RetrieveProcessInstancesRequest), um alle Business Process Flow-Instanzen für einen Datensatz einer Entität über alle Geschäftsprozess-Definitionen hinweg abzurufen. Die Geschäftsprozessflussinstanzen, die für eine Entität zurückgegeben werden, werden basierend auf dem modifiedon Attribut für die Instanz zurückgegeben. Die zuletzt geänderte Instanz des Business Process Flows ist beispielsweise der erste Datensatz in der zurückgegebenen Sammlung. Die zuletzt geänderte Geschäftsprozessflussinstanz ist jene, die auf der Benutzeroberfläche für den Entitätsdatensatz aktiv ist.

Jeder Geschäftsprozessfluss-Instanzdatensatz, der für einen Entitätendatensatz als Ergebnis der Verwendung der RetrieveProcessInstances-Nachricht zurückgegeben wird, speichert die ID der aktiven Phase im Attribut processstageid, das verwendet werden kann, um die aktive Phase zu finden, und dann zur vorherigen oder nächsten Phase zu wechseln. Dazu müssen Sie zunächst den aktiven Pfad einer Geschäftsprozess-Flow-Instanz und die in der Prozess-Flow-Instanz verfügbaren Stufen mit Hilfe der Nachricht RetrieveActivePath (RetrieveActivePath Function oder RetrieveActivePathRequest) finden.

Sobald Sie die aktive Phase und die aktiven Pfadinformationen für eine Geschäftsprozessflussinstanz haben, können Sie die Informationen verwenden, um zu einer vorhergehenden oder nächsten Phase im aktiven Pfad zu gehen. Vorwärtsnavigation von Phasen muss nacheinander erfolgen, d. h. Sie sollten zur nächsten Phase im aktiven Pfad nur nach vorne gehen.

Für das vollständige Beispiel, das die Verwendung dieser beiden Methoden und die Phasen-Navigation unter Verwendung des Organisationsdienstes demonstriert, siehe Beispiel: Arbeiten mit Geschäftsprozessen.

Geschäftsprozessfluss beim Erstellen eines Entitätsdatensatzes übernehmen

Dieser Abschnitt enthält Informationen zum standardmäßigen Verhalten für das automatische Übernehmen von Geschäftsprozessflüsse für neue Entitätsdatensätze, die in Customer Engagement erstellt werden, und wie sie diese überschreiben können, um einen Geschäftsprozessfluss Ihrer Wahl für neue Entitätsdatensätze anzuwenden.

Standardmäßig wendet das System für eine Entität, für die mehrere Geschäftsprozessflüsse definiert sind, einen Geschäftsprozessfluss auf den neuen Entitätsdatensatz an, unter Verwendung der folgenden Mehrstufenlogik:

  1. Ermitteln aller Geschäftsprozessflüsse, die für den neuen Entitätsdatensatz anwendbar sind, basierend auf dem Workflow.PrimaryEntity-Attribut der Geschäftsprozessfluss-Definitionsdatensätze.
  2. Ermitteln der Geschäftsprozessflussdefinitionen, auf die der aktuelle Benutzer Zugriff besitzt. Informationen darüber, wie Sie darauf zugreifen können , wie ein Geschäftsprozessfluss bestimmt und verwaltet wird, finden Sie unter Verwalten der Sicherheit für Geschäftsprozessfluss weiter oben in diesem Thema.
  3. Alle Geschäftsprozessflussdefinitionen im System unterliegen einem globalen Auftrag pro Entität. Der Auftrag des Geschäftsprozessflusses wird im Workflow.ProcessOrder-Attribut gespeichert. Die Geschäftsprozessflussdefinitionen für eine Entität werden auf Grundlage dieser Reihenfolge sortiert, und der mit dem geringsten Auftragswert wird aktiviert.
  4. Zuletzt wird, wenn der Datensatz von einer Unternehmens-App (App-Modul) erstellt wird, eine weitere Filterebene angewendet, um den auf die neue Entität automatisch anzuwendenden Geschäftsprozessfluss auszuwählen. Wenn Benutzer in einer App arbeiten, können sie nur auf relevante Entitäten, Geschäftsprozessflüsse, Ansichten und Formulare zugreifen, auf die sie aufgrund der Sicherheitsrollen, die der Unternehmens-App zugewiesen sind, Zugriff haben.
    • Wenn die Unternehmens-App keinen Geschäftsprozessfluss enthält, dann wird der Geschäftsprozessfluss angewendet, wie in Schritt 3 beschrieben.
    • Wenn die Unternehmens-App über mindestens einen Geschäftsprozessfluss verfügt, ist nur der Geschäftsprozessfluss anwendbar, der in der App vorhanden ist. In diesem Fall wird, wenn der Benutzer innerhalb eines Unternehmens-App-Kontexts arbeitet, die Liste der Geschäftsprozessfluss aus Schritt 3 weiter gefiltert nach denen, die Teil der Unternehmens-App sind, das in dem App-Modul vorhanden sind, und sie werden nach der Prozessreihenfolge sortiert.
    • Wenn kein Geschäftsprozessfluss in einer Unternehmens-App für die Entität verfügbar ist, oder derjenige, auf den der Benutzer Zugriff hat, wird kein Geschäftsprozessfluss für den neuen Entitätsdatensatz angewendet.

Sie können die Standardlogik von Geschäftsprozessflüssen überschreiben, die automatisch für neue Entitätsdatensätze angewendet werden. Dafür legen Sie das ProcessId-Attribut der Entität beim Erstellen eines neuen Entitätsdatensatzes auf einen der folgenden Werte festgelegt:

  • Legen Sie zu Guid.Empty fest, um das Festlegen eines Geschäftsprozessfluss für neue Entitätsdatensätze zu überspringen. Sie sollten dies tun, wenn Sie Entitätsdatensätze massenweise erstellen, aber nicht wollen, dass Geschäftsprozessfluss auf sie angewendet werden.
  • Legen Sie ihn in eine bestimmte Geschäftsprozessflussentität fest (als Entitätsreferenz). In diesem Fall wird das System den angegebenen Geschäftsprozessfluss anstelle der Standardlogik anwenden.

Wenn Sie beim Erstellen eines neuen Entitätsdatensatzes keinen Wert für das ProcessId-Attribut festlegen, wendet das System die Standardlogik an, wie weiter oben erläutert.

Notiz

Das Überschreiben der Standardlogik von Geschäftsprozessflüssen, die automatisch für neue Entitätsdatensätze angewendet werden, wird nur programmgesteuert unterstützt. Dies ist mit der UI nicht möglich.

Die alten prozessbezogenen Attribute (wie ProcessId, StageId und TraversedPath) für Entitäten, die für Geschäftsprozessflüsse aktiviert sind, sowie die setProcess-Client-API sind bereits veraltet. Die Manipulation dieser alten prozessbezogenen Attribute für Zielentitätsdatensätze oder die Verwendung der alten setProcess-Client-API garantiert keine Statuskonsistenz beim Geschäftsprozessflusss und wird als Szenario nicht unterstützt. Es wird empfohlen, die Attribute der Geschäftsprozzessfluss-Entität zu verwenden, wie bereits im Abschnitt Geschäftsprozzessfluss-Entitätsdatensätze (Prozessinstanzen) anlegen, abrufen, aktualisieren und löschen beschrieben.

Die einzige Ausnahme ist die programmatische Änderung des Attributs ProcessId beim Anlegen eines Entitätsdatensatzes, um die Standardanwendung des Geschäftsprozessflusses auf den neuen Datensatz zu überschreiben, wie im vorherigen Abschnitt beschrieben: Geschäftsprozessfluss beim Anlegen eines Entitätsdatensatzes anwenden.

Clientseitiger Programmierbarkeitssupport für Geschäftsprozessflüsse

Mit Dynamics 365 gibt es ein Client-seitiges Objekt, das Sie zur Interaktion mit Geschäftsprozess-Flows in Ihren Formular-Skripten verwenden können. Der Geschäftsprozessfluss löst jedes Mal clientseitige Ereignisse aus, wenn ein Prozess auf einen Datensatz angewendet, der Status geändert wird, oder der Status auf Active, Finished oder Aborted geändert wird. Weitere Informationen: formContext.data.process (Client-API-Referenz).

Maximale Anzahl der Prozesse, Phasen und Schritte

Pro Entität ist der Standardwert für die maximale Anzahl von aktivierten Geschäftsprozessflüssen 10. Sie können einen anderen Wert angeben, indem Sie das Attribut Organization.MaximumActiveBusinessProcessFlowsAllowedPerEntity nutzen. Wenn der Wert jedoch größer als 10 ist, stellen Sie möglicherweise eine Abnahme der Systemleistung fest, wenn Sie Prozesse wechseln oder einen Datensatz öffnen, der einen zugeordneten Geschäftsprozessfluss besitzt. Das ist möglicherweise besonders spürbar, wenn Prozesse mehrere Entitäten umfassen.

Die folgenden Einstellungen können nicht angepasst werden:

  • Die maximale Anzahl von Phasen pro Entität im Prozess ist 30.

  • Die maximale Anzahl der Schritte in einer Phase ist 30.

  • Die maximale Anzahl von Entitäten, die am Prozessfluss teilnehmen können, ist 5.

Siehe auch