Freigeben über


Schreiben von Skripts für Geschäftsprozessflüsse

 

Veröffentlicht: Januar 2017

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

In Microsoft Dynamics 365 (online und lokal) gibt es ein clientseitiges Objekt, das Sie verwenden können, um mit Geschäftsprozessflüssen in Ihren Skripts zu interagieren. Der Xrm.Page.data-Namespace wurde erweitert und enthält Methoden unter Xrm.Page.data.process. Der Xrm.Page.ui-Namespace wurde erweitert und enthält Methoden unter Xrm.Page.ui.process.

In diesem Thema

Struktur des Geschäftsprozessflusses

Aktionen, die automatisiert werden können

Ereignisse für Geschäftsprozessflüsse

Struktur des Geschäftsprozessflusses

Geschäftsprozessflüsse bestehen aus einer Serie von Phasen, die jeweils einige Schritte enthalten. Nur eine Phase ist die aktive Phase. Wenn die erforderlichen Schritte in einer Phase vollständig sind, kann der Prozess in die nächste Phase übergehen und diese wird zur aktiven Phase. Welche Phase die nächste ist, kann auf Grundlage des Geschäftsprozessflusses festgelegt werden, wie im folgenden Diagramm gezeigt.

Geschäftsprozessfluss-Objekte

Phasen können bestimmten verknüpften Entitäten zugeordnet werden, sodass ein Geschäftsprozessfluss mehrere Entitäten umfassen kann. Der Geschäftsprozess bleibt der gleiche führt den Benutzer zu dem gewünschten Abschluss.

Ab Update für Dynamics 365 (online und lokal), Dezember 2016 können verschiedene Geschäftsprozessflussdefinitionen mit verschiedenen Rollen zugeordnet werden und die Instanzen können gleichzeitig gegen denselben Entitätsdatensatz ausgeführt werden. Benutzer können zwischen gleichzeitigen Geschäftsprozessinstanzen wechseln und ihre Arbeit auf der aktuellen Stufe im Prozess fortsetzen.

Weitere Informationen:TechNet: Geschäftsprozessflüsse

Aktionen, die automatisiert werden können

Normalerweise hängt der Fortgang der Geschäftsprozesse von der Benutzereingabe ab. Als Entwickler können Sie dieselben Aktionen programmgesteuert in Foremularskripten ausführen.

  • Ändern Sie den Prozess, wenn mehr als ein Prozess für die Entität verfügbar ist.
    Verwenden Sie Xrm.Page.data.process.getEnabledProcesses, um Informationen zu aktivierten Prozessen zu erhalten, die der Benutzer für die Entität auswählen kann. Verwenden Sie dann Xrm.Page.data.process.setActiveProcess, um eine der aktivierten Prozessinstanzen zur aktivierten zu machen oder eine neue Prozessinstanz zu erstellen.

  • Ändern der Prozessinstanz für einen Entitätsdatensatz
    Verwenden Sie getProcessInstances, um Informationen zu allen Prozessinstanzen für einen Entitätsdatensatz abzurufen und setActiveProcessInstance, um eine Prozessinstanz als aktive Instanz festzulegen.

  • Gehen Sie zur nächsten Phase über, wenn alle erforderlichen Schritte ausgeführt wurden, um sie zur aktuellen aktiven Phase zu machen.
    Verwenden von Xrm.Page.data.process.moveNext.

  • Gehen Sie zur vorherigen Phase und machen Sie sie zur aktuelle aktiven Phase.
    Verwenden von Xrm.Page.data.process.movePrevious.

  • Wählen Sie eine Phase aus, um den Fortschritt der Schritte in der Phase anzuzeigen.
    Verwenden Sie Xrm.Page.data.process.getActivePath, um Informationen zu den Phasen abzurufen, die abgeschlossen wurden, zur aktuellen aktiven Phase und zu gültigen Phasen, die von der aktuellen aktiven Phase aus verfügbar sind. Überprüfen Sie die Schritte, die in dieser Phase enthalten sind, und vergleichen Sie die entsprechenden Formularattributwerte, um zu bestimmen, ob sie abgeschlossen sind.

  • Einen Schritt abschließen
    Schritte werden ausgeführt, wenn die entsprechenden Daten im Formular eingegeben sind. Sie können den Typ eines Attributs feststellen, indem Sie die Schritt getAttribute-Methode verwenden. Dadurch wird der logische Name des Attributs zurückgegeben. Verwenden Sie Xrm.Page.getAttribute, um das Attribut aus der Xrm.Page.data.entity.attributes-Sammlung abzurufen, und verwenden Sie dann die Attribut 6881e99b-45e4-4552-8355-2eef296f2cd8#BKMK_setValue-Methode, um den Wert festzulegen.

  • Herausfinden, ob ein Schritt erforderlich ist
    Verwenden Sie die Schritt isRequired-Methode, um zu bestimmen, ob ein Schritt vom Geschäftsprozessfluss erfordert wird.

  • Erweitern oder Reduzieren der Geschäftsprozessflusssteuerung
    Verwenden von Xrm.Page.ui.process.setDisplayState.

  • Überspringen zu einer gültigen Phase.
    Verwenden Sie Xrm.Page.data.process.setActiveStage um eine der gültigen Phasen für die aktuelle Entität festzulegen.

Ebenso gibt es einige Aufgaben, die Sie als Entwickler ausführen können, die ein Benutzer nicht ausführen kann.

  • Die Prozesssteuerung ausblenden
    Mit Xrm.Page.ui.process.setVisible können Sie steuern, ob die Geschäftsprozessflusssteuerung angezeigt wird.

  • Die Prozessdefinition einschließlich der aktuell nicht sichtbaren Phasen abfragen
    Verwenden Sie Xrm.Page.data.process.getActiveProcess, um die Definition des Geschäftsprozessflusses abzufragen, einschließlich der Phasen, die möglicherweise aufgrund der Verzweigungslogik im Prozess nicht sichtbar sind.

Ereignisse für Geschäftsprozessflüsse

Sie können mit jedem Ereignis interagieren, das aus dem Formular mit Geschäftsprozessflüssen bereitgestellt wird, aber die folgenden neuen Ereignisse ermöglichen es, Code basierend auf Ereignissen nur für die Geschäftsprozessflusssteuerung auszuführen.

  • Sie können Code ausführen, wenn die aktive Phase eines Geschäftsprozessflusses sich ändert (d88d5f21-6385-443b-91f2-0ec0c16b1324#BKMK_OnStageChange), oder wenn eine Phase ausgewählt wird (d88d5f21-6385-443b-91f2-0ec0c16b1324#BKMK_OnStageSelected).

  • Sie können Code ausführen wenn sich der Status einer Geschäftsprozessflussinstanz ändert (d88d5f21-6385-443b-91f2-0ec0c16b1324#BKMK_OnProcessStatusChange). Eine Unternehmensprozessflussinstanz kann einen der folgenden Statuswerte aufweisen: Active, Finished oder Aborted.

Keines dieser neuen Ereignisse stellt eine Benutzeroberfläche zum Registrieren von Ereignishandlern bereit. Sie müssen bereitgestellte Methoden verwenden, um Handler für diese Ereignisse im Formular OnLoad-Ereignis hinzuzufügen und zu entfernen.Weitere Informationen:f451f339-bcee-4260-9904-abc8c0efa153#BKMK_BPFControl

Siehe auch

Verwenden des Xrm.Page-Objektmodells
Xrm.Page.data.process (clientseitige Referenz)
Beispiel: Xrm.Page.data.process.getEnabledProcesses
Beispiel: Xrm.Page.data.process.getActivePath
f451f339-bcee-4260-9904-abc8c0efa153#BKMK_BPFControl
TechNet: Geschäftsprozessflüsse

Microsoft Dynamics 365

© 2017 Microsoft. Alle Rechte vorbehalten. Copyright