Freigeben über


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. Er erstellt eine Visualisierung des Geschäftsprozesses, indem er spezielle Steuerelemente oben in den Tabellenformularen platziert. 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 Tabellen hinzuzufügen.

Verschiedene Geschäftsprozessflussinstanzen können mit denselben Tabellenzeile 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. Informationen zur Verwendung der Benutzeroberfläche zum Erstellen und Verwalten von Geschäftsprozessflüssen finden Sie unter Geschäftsprozessfluss – Übersicht

Voraussetzungen für Geschäftsprozessflüsse

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

Um eine Tabelle für den Geschäftsprozess-Flow zu aktivieren, legen Sie die Eigenschaft IsBusinessProcessEnabled auf true fest.

Wichtig

Das Aktivieren einer Tabelle für den Geschäftsprozess-Flow ist ein einseitiger 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 eine Geschäftsprozessflusszeile im Draft-Status erstellt.

Eine Geschäftsprozess-Flow-Definition wird in der Tabelle workflow gespeichert, und die Stufeninformationen für den Geschäftsprozess-Flow werden in der Tabelle processstage gespeichert.

Geschäftsprozessfluss aktivieren

Bevor Sie den Prozessfluss verwenden können, müssen Sie ihn aktivieren. Um ihn zu aktivieren, müssen Sie das prvActivateBusinessProcessFlow-Recht für die Workflow-Tabelle haben. Verwenden Sie die UpdateRequest-Meldung, um den Status der Workflow-Tabellenzeile 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äftsprozessflusstabelle

Wenn Sie eine Geschäftsprozessflussdefinition aktivieren, indem Sie den Zustand der entsprechenden Workflow-Tabellenzeile ändern oder den Geschäftsprozessflussdesigner verwenden, wird automatisch eine benutzerdefinierte Tabelle mit dem folgenden Namen angelegt, um die aktivierten Geschäftsprozessflussinstanzen zu speichern: „<activesolutionprefix>_<uniquename>“, wobei der eindeutige Name 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 Tabelle, die zum Speichern von Prozessinstanzen erstellt wird, „new_mycustombpf“.

Wenn der Wert uniquename für eine Geschäftsprozessflussdefinition nicht verfügbar ist, z. B. wenn der Geschäftsprozessfluss als Teil der Projektmappe aus einer früheren Version importiert wurde, lautet der Standardname der benutzerdefinierten Tabelle \<activesolutionprefix>_bpf_<GUID_BPF_Definition>:

Wichtig

Die Beispieldatensätze von Geschäftsprozessflusszeilen verwenden Systemtabellen, um die entsprechenden Zeilen der Geschäftsprozessflussinstanzen zu speichern.

Jedoch verwenden alle von Ihnen neu erstellten Geschäftsprozessflussdefinitionen benutzerdefinierte Tabellen, um die Instanzzeilen zu speichern, wie oben bereits erläutert.

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

  • Benutzung der Benutzeroberfläche: Verwenden Sie die angepasste Benutzeroberfläche, um zu Ihrer Tabelle für den Geschäftsprozess-Flow zu blättern:

    Durchsuchen Sie Ihre Geschäftsprozess-Flowtabelle mithilfe von UI.

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

    Anforderung

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

    Response

    {  
    "@odata.context":"[Organization URI]/api/data/v9.0/$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
                {
                    ColumnName = "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äftsprozessflusstabellen. Sie können alle Geschäftsprozessflusstabellen in Ihrer Instanz abrufen, indem Sie die folgende Web-API-Anforderung ausführen:

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

Verwalten der Sicherheit für Geschäftsprozessflüsse

Die benutzerdefinierte Tabelle, die beim Aktivieren eines Geschäftsprozessflusses zum Speichern von Geschäftsprozessflussinstanzen automatisch erstellt wird, entspricht dem Standardsicherheitsmodell wie bei anderen benutzerdefinierten Tabellen in Microsoft Dataverse. Das bedeutet, dass die Rechte, die diesen Tabellen gewährt werden, die Laufzeitberechtigungen für Benutzer für Geschäftsprozessflüsse definieren.

Die benutzerdefinierte Geschäftsprozessflusstabelle verfügt über einen Organisationsbereich. Die regulären Rechte für diese Tabelle zum Erstellen, Abrufen, Aktualisieren und Löschen definieren die Berechtigung, die Benutzer basierend auf ihren zugewiesenen Rollen besitzen würden. Standardmäßig werden beim Erstellen der benutzerdefinierten Geschäftsprozessflusstabelle nur den Sicherheitsrollen Systemadministrator und Systemanpasser Zugriff darauf gewährt. Sie müssen der neuen Geschäftsprozessflusstabelle (z. B. Mein benutzerdefinierter Geschäftsprozessfluss) ggf. explizit Berechtigungen für andere Sicherheitsrollen erteilen.

Sicherheitsrollenverwaltung.

Erstellen, Abrufen, Aktualisieren und Löschen von Geschäftsprozessflusstabellenzeilen (Prozessinstanzen)

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

Wichtig

Der Wechsel zu einer anderen Prozessinstanz für eine Tabellenzeile wird nur über die Benutzeroberfläche (Client) oder programmgesteuert unter Verwendung der Informationen in diesem Abschnitt unterstützt. Sie können mit der SetProcess-Nachricht (SetProcess Action oder SetProcessRequest) nicht mehr Prozesse programmgesteuert wechseln (d. h. einen anderen Geschäftsprozessfluss als aktive Prozessinstanz festlegen) für den Zieltabellenzeile.

Betrachten wir das folgende Beispiel, in dem wir einen tabellenübergreifenden Geschäftsprozess-Flow, „My Custom BPF“, mit 3 Stufen haben: S1:Konto, S2:Konto und S3:Kontakt.

Benutzerdefinierter Geschäftsprozessfluss.

Abrufen aller Zeilen (Instanzen) für eine Geschäftsprozess-Flow-Tabelle

Wenn der Name Ihrer Geschäftsprozess-Flow-Tabelle „new_mycustombpf“ lautet, verwenden Sie die folgende Abfrage, um alle Zeilen (Prozessinstanzen) für Ihre Geschäftsprozess-Flow-Tabelle abzurufen:

GET [Organization URI]/api/data/v9.0/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

Um zu erfahren, wie Sie den Namen Ihrer Geschäftsprozess-Flow-Tabelle abrufen, lesen Sie den früheren Abschnitt, Geschäftsprozess-Flow-Tabelle.

Anlegen eines Geschäftsprozessflusstabellenzeile (Prozessinstanz)

Legen Sie eine Geschäftsprozessflusstabellenzeile (Prozessinstanz) programmgesteuert an, wenn Sie ohne Verwendung der Benutzeroberfläche zu einem anderen Geschäftsprozessfluss für eine Tabellenzeile wechseln wollen.

Um eine Geschäftsprozessflusstabellenzeile anzulegen, müssen Sie die folgenden Werte angeben:

  • Verknüpfen Sie die Geschäftsprozessflusstabellenzeile mit einer primären Tabellenzeile, indem Sie die Navigationseigenschaft mit nur einem Wert mit der Annotation @odata.bind festlegen. Um den Namen der Navigationseigenschaft herauszufinden, die auf die primären Tabellenzeile für Ihre Geschäftsprozessflussdefinition verweist, verwenden Sie CSDL $metadata document.

  • Ordnen Sie den Geschäftsprozessflusstabellenzeile einer gültigen Phase zu, die in der Geschäftsprozessflussdefinition angegeben ist, indem Sie die Navigationseigenschaft mit einem einzigen Wert mit der Annotation @odata.bind festlegen. Um den Namen der Navigationseigenschaft herauszufinden (normalerweise activestageid), die auf die Phasenzeile 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.0/processstages?$select=stagename&$filter=processid/workflowid eq 2669927e-8ad6-4f95-8a9a-f1008af6956f HTTP/1.1
    

    Antwort

    {
        "@odata.context": "[Organization URI]/api/data/v9.0/$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 eine Kontozeile (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.0/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.0/new_mycustombpfs(00aa00aa-bb11-cc22-dd33-44ee44ee44ee)

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 eine Kontozeile (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.0/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 einer Geschäftsprozessflusstabellenzeile (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 eine Prozessinstanzzeile 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äftsprozess-Flows abzurufen, siehe Alle Zeilen (Instanzen) für eine Geschäftsprozess-Flow-Tabelle 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.0/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 Spalten der Prozessinstanzzeile bestimmt:

  • Statecode: Zeigt den Status der Prozessinstanz an.

    Wert 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.0/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.

Tabellenübergreifende Navigation

Für die tabellenübergreifende Navigation in diesem Beispiel müssen Sie die aktive Stufe der Prozessinstanz auf die letzte Stufe S3 (ID=a107e2fd-7543-4c1a-b6b4-b8060ecb1a1a) festlegen, den durchlaufenen Pfad entsprechend aktualisieren und eine Kontaktzeile als primäre Tabellenzeile gemäß der Geschäftsprozess-Flow-Definition festlegen.

PATCH [Organization URI]/api/data/v9.0/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 einer Geschäftsprozessflusstabellenzeile (Prozessinstanz)

Verwenden Sie die folgende Web-API-Anfrage:

Anforderung

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

Response

Wenn die Zeile existiert, erhalten Sie eine normale Antwort mit Status 204, um anzuzeigen, dass die Löschung erfolgreich war. Wenn die Tabelle nicht gefunden wird, erhalten Sie eine Antwort mit Status 404.

Verwendung von RetrieveProcessInstances und RetrieveActivePath-Meldungen

Nutzen Sie die RetrieveProcessInstances-Nachricht (RetrieveActivePath Function oder RetrieveProcessInstancesRequest), um alle Geschäftsprozessflussinstanzen nach einer Tabellenzeile über alle Geschäftsprozessdefinitionen abzurufen. Die Geschäftsprozessflussinstanzen, die für eine Tabelle zurückgegeben werden, werden basierend auf der modifiedon-Spalte für die Instanz zurückgegeben. So ist beispielsweise die letzte geänderte Geschäftsprozessflussinstanz die erste Zeile in der zurückgegebenen Sammlung. Die zuletzt geänderte Geschäftsprozessflussinstanz ist jene, die auf der Benutzeroberfläche für die Tabellenzeile aktiv ist.

Jede Geschäftsprozessflussinstanzzeile, der für eine Tabellenzeile als Ergebnis der Verwendung der RetrieveProcessInstances-Nachricht zurückgegeben wird, speichert die ID der aktiven Phase in der Spalte 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 einer Tabellenzeile übernehmen

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

Standardmäßig wendet das System für eine Tabelle, für die mehrere Geschäftsprozessflüsse definiert sind, einen Geschäftsprozessfluss auf die neue Tabellenzeile an, unter Verwendung der folgenden Mehrstufenlogik:

  1. Ermitteln aller Geschäftsprozessflüsse, die für die neue Tabellenzeile anwendbar sind, basierend auf der Workflow.PrimaryEntity-Spalte der Geschäftsprozessflussdefinitionszeilen.
  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äftsprozess-Flow-Definitionen im System unterliegen einer globalen Ordnung pro Tabelle. Der Auftrag des Geschäftsprozessflusses wird in der Workflow.ProcessOrder-Spalte gespeichert. Die Geschäftsprozessflussdefinitionen für eine Tabelle werden auf Grundlage dieser Reihenfolge sortiert, und der mit dem geringsten Auftragswert wird aktiviert.
  4. Zuletzt wird, wenn die Tabellenzeile von einer Unternehmens-App (App-Modul) erstellt wird, eine weitere Filterebene angewendet, um den auf die neue Tabellenzeile automatisch anzuwendenden Geschäftsprozessfluss auszuwählen. Wenn Benutzer in einer App arbeiten, können sie nur auf relevante Tabellen, 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 Tabelle verfügbar ist, oder derjenige, auf den der Benutzer Zugriff hat, wird kein Geschäftsprozessfluss für die neue Tabellenzeile angewendet.

Sie können die Standardlogik von Geschäftsprozessflüssen überschreiben, die automatisch für neue Tabellenzeilen angewendet werden. Dafür legen Sie die ProcessId-Spalte der Tabelle beim Erstellen eine neue Tabellenzeile auf einen der folgenden Werte festgelegt:

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

Wenn Sie beim Erstellen einer neuen Tabellenzeile keinen Wert für die ProcessId-Spalte 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 Tabellenzeilen angewendet werden, wird nur programmgesteuert unterstützt. Dies ist mit der UI nicht möglich.

Die prozessbezogenen Legacyspalten (z. B. ProcessId, StageId, und TraversedPath) von für Geschäftsprozessflüsse aktivierte Tabellen sind bereits veraltet. Die Manipulation dieser prozessbezogenen Legacyspalten für Zieltabellenzeilen garantiert keine Konsistenz des Geschäftsprozessflusszustands und stellt kein unterstütztes Szenario dar. Es wird empfohlen, die Spalten der Geschäftsprozzessflusstabelle zu verwenden, wie bereits im Abschnitt Geschäftsprozzessfluss-Tabellenzeilen (Prozessinstanzen) anlegen, abrufen, aktualisieren und löschen beschrieben.

Die einzige Ausnahme ist die programmatische Änderung der Spalte ProcessId beim Anlegen einer Tabellenzeile, um die Standardanwendung des Geschäftsprozessflusses auf die neue Zeile zu überschreiben, wie im vorherigen Abschnitt beschrieben: Geschäftsprozessfluss beim Anlegen einer Tabellenzeile anwenden.

Clientseitiger Programmierbarkeitssupport für Geschäftsprozessflüsse

Es gibt ein clientseitiges Objekt, das Sie für die Interaktion mit Geschäftsprozessflüssen in Ihren Formularskripts verwenden können. Der Geschäftsprozessfluss löst jedes Mal clientseitige Ereignisse aus, wenn ein Prozess auf eine Zeile angewendet, die Phase geändert 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 Tabelle ist der Standardwert für die maximale Anzahl von aktivierten Geschäftsprozess-Flows 10. Sie können einen anderen Wert angeben, indem Sie das Spalte 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 eine Zeile öffnen, der einen zugeordneten Geschäftsprozessfluss besitzt. Das ist möglicherweise besonders spürbar, wenn Prozesse mehrere Tabellen umfassen.

Die folgenden Einstellungen können nicht angepasst werden:

  • Die maximale Anzahl von Phasen pro Tabelle im Prozess ist 30.

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

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