Wie man Flowable debuggt:
Ein Leitfaden für Modellierer und Entwickler
Flowable ist eine Low-Code-Plattform, die es Ihnen ermöglicht, Geschäftsprozesse zu entwickeln und in Ihre Anwendung zu integrieren, ohne signifikante Entwicklungsanstrengungen. Es verfügt über ein umfangreiches CMMN- und BPMN-Modellierungstool mit vielen integrierten Funktionen. Darüber hinaus bietet es ein beeindruckendes Webseitenerstellungs-Tool zur Entwicklung von Anwendungs-UIs.
Das Verstehen, warum Prozesse fehlschlagen oder falsch funktionieren, kann jedoch eine Herausforderung sein. Darüber hinaus kann es problematisch sein, Probleme zu untersuchen, wenn Sie kein Entwickler sind.
Hier werde ich meine Erfahrungen teilen, wie man während der BPMN/CMMN-Prozessentwicklung untersucht und debuggt, wenn Sie ein Modellierer oder Entwickler sind, der gerade erst damit begonnen hat, es zu verwenden.
Inhalte
Protokolle.
Debuggen des CMMN- oder BPMN-Prozesses.
Debuggen des Backend-Ausdrucks.
Debuggen des Frontend-Ausdrucks.
Finden des fehlerhaften Backend-Ausdrucks.
Überprüfen des REST-Button-/Aufgabenanforderungsproblems.
Debuggen eines ungültigen Formulars und des blockierten Abschluss-Buttons.
Weitere Debugging-Tipps.
Abschließende Gedanken.
Protokolle
Zunächst müssen Sie Zugang zur Flowable-Arbeitsprotokolldatei erhalten. Das Protokoll enthält Informationen über den Zustand der Anwendung und Fehlermeldungen. Wenn die Flowable-UI-Nachricht unklar ist, überprüfen Sie zuerst die Protokolldatei.
Die Standardkonfiguration von Flowable ermöglicht den Zugriff auf die Protokolldatei über diese URL:
https://your-flowable-work-url/actuator/logfile
Wenn Sie keinen Zugang haben, bitten Sie Ihre Entwickler, ihn zu konfigurieren oder eine andere Methode bereitzustellen, um auf die Protokolldatei zuzugreifen.
Der Zugriff auf die Protokolldatei ist entscheidend für die Flowable-Modellierung.
Debuggen des CMMN- oder BPMN-Prozesses
Manchmal schlägt der Prozess fehl. Die Fehlermeldung enthält nicht genügend Informationen, um zu verstehen, warum und wo sie fehlschlägt. In solchen Fällen müssen wir das Problem lokalisieren und die spezifische Aufgabe identifizieren, die fehlschlägt. Vorübergehendes Debuggen von Menschlichen Aufgaben kann helfen. Dies sind normale Menschliche Aufgaben ohne Formulare. Wir können sie verwenden, um vorübergehend anzuhalten und den aktuellen Zustand des Prozesses zu verstehen.
Beispiel für die Verwendung von Debugging-Menschenaufgaben
Angenommen, wir haben einen einfachen Prozess, um einen Artikel zu schreiben und zu veröffentlichen.

Es hat ein Formular, um einen Artikel zu schreiben, dann generiert es eine Artikelnr. und fügt sie dem Artikeltitel hinzu. Schließlich wird auf Plagiate überprüft. Wenn keine gefunden werden, wird der Artikel veröffentlicht.
Der Prozess wurde gestartet, aber ich kann die erste menschliche Aufgabe nicht abschließen. Die Protokolldatei hat keine nützlichen Informationen geliefert. Aber ich vermute, dass sie entweder in der 3. oder 4. Aufgabe fehlschlägt. Jetzt müssen wir eine Debugging-Menschenaufgabe zwischen der 3. und 4. Aufgabe hinzufügen und den Prozess erneut ausführen.

Wenn der Prozess an der Debugging-Aufgabe stoppt, weist das auf einen Fehler in den nachfolgenden Aufgaben hin. Darüber hinaus können wir überprüfen, welche Variablen wir vor der „Überprüfung durch LLM“ Aufgabe haben. Aber es ist immer noch nicht klar, wo das Problem auftritt. Wir müssen weitere Debugging-Menschenaufgaben hinzufügen, um das Problem besser zu lokalisieren. Zum Beispiel eine weitere nach dem LLM-Schritt hinzufügen und den Prozess erneut ausführen.

Jetzt können wir die Debugging-Aufgabe nicht abschließen. Das bedeutet, dass das Problem innerhalb der LLM-Aufgabe liegt, und wir müssen alle ihre Eigenschaften überprüfen, um es zu beheben.
Wenn das Problem gefunden und behoben wurde, denken Sie daran, die Debugging-Menschenaufgaben zu entfernen.
Debugging von Backend-Ausdrücken
Im vorherigen Kapitel haben wir gelernt, wie man Probleme lokalisiert. Typischerweise schlagen Prozesse aufgrund falscher Aufgabenattribute oder eines fehlerhaften Backend-Ausdrucks (BE) fehl.
Wenn es mit einem fehlerhaften Ausdruck verbunden ist, helfen Ihnen die nächsten Schritte beim Debuggen.
Fügen Sie die Debugging-Menschenaufgabe vor der fehlgeschlagenen Aufgabe hinzu.
Führen Sie den Prozess aus und stoppen Sie an der Debugging-Aufgabe.
Öffnen Sie das Browser-Entwicklertool (F12), Tab Netzwerk. (optional Schritt)
Öffnen Sie Flowable Work Inspect, Tab Inspektion.
Wählen Sie Variablen im Dropdown-Menü.
Klicken Sie auf Jetzt Ausdruck auswerten.
Geben Sie Ihren fehlerhaften Ausdruck ein und klicken Sie auf validieren.

Wenn der Ausdruck korrekt ist, wird der Wert im unteren Bereich angezeigt. Wenn er ein Problem hat, schlägt er fehl und zeigt die Fehlermeldung an. Wenn die Fehlermeldung nicht klar ist, überprüfen Sie das letzte Anforderungsobjekt im Entwicklertool, Tab Netzwerk, Tab Antwort.

Wenn es immer noch unklar ist, warum es fehlschlägt, gehen Sie zur Protokolldatei, wie im ersten Kapitel beschrieben.
Debuggen des Frontend-Ausdrucks
Der schwierigste Teil des Flowable-Debuggings ist das Debuggen von Frontend (FE) Ausdrücken. Es gibt keinen einfachen Weg, es wie einen Backend-Ausdruck auszuführen, und der Geltungsbereich der Variablen ist oft unklar.
Aber es gibt einen Trick, um jeden Ausdruck direkt von Ihrem Browser aus auszuführen. Öffnen Sie den Komponententab des Formular-Debugging-Tools und fügen Sie vorübergehend unseren FE-Ausdruck hinzu.
Wie öffne ich das Formular-Debugging-Tool?
Wenn Sie eine alte Flowable-Version haben, sind die Fall-/Formularintegrationen oder die Inspektion deaktiviert, dann müssen Sie das Browser-Entwicklertool öffnen (oder F12 drücken), den Konsolentab öffnen und den nächsten Ausdruck in die Konsole schreiben. Schließlich wird das Formular-Debugging-Tool ausgeführt.

Wenn Sie eine neue Flowable-Version haben, öffnen Sie Flowable Inspect, Tab Aktuelles Formular.

Wie debuggen Sie FE-Ausdrücke?
Das Formular-Debugging-Tool hat einen Tab Komponente. Der Tab ermöglicht es, Formulareigenschaften unterwegs zu ändern. Aktualisierungen werden sofort angewendet. Wir können es verwenden, um FE-Ausdrücke in Eigenschaften zu debuggen, die Ausdrücke unterstützen, z.B. Label oder Wert.
Beispiel, wie man einen benutzerdefinierten FE-Ausdruck ausführt.
Angenommen, wir haben einen benutzerdefinierten FE-Ausdruck wie…
… und wir möchten ihn in unserem Formular ausführen und das Ergebnis sehen. Diese Schritte zeigen, wie man das Formular-Debugging-Tool verwendet, um einen benutzerdefinierten FE-Ausdruck auszuführen.
Öffnen Sie das Formular-Debugging-Tool, dann Tab Komponente.
Finden Sie ein beliebiges Formularelement, wo wir den Testausdruck wollten, und klicken Sie darauf. Es ist das erste Textelement im folgenden Beispiel.
Setzen Sie dann Ihren FE-Ausdruck auf die Eigenschaft label oder value. Ich verwende normalerweise das Label.
Das Ergebnis des Ausdrucks wird sofort im Formular angezeigt. Sehen Sie sich das Label des ersten Textelements an.

Benutzerdefinierter FE-Ausdruck im Label des Title-Elements.
Überprüfen Sie den JSON-Variablen- oder speziellen Schlüsselwortwert.
Wir können den oben beschriebenen Ansatz erweitern, um den Wert einer Variablen zu überprüfen, die den JSON-Wert von speziellen Schlüsselwörtern wie self, $payload, $item usw. enthält.
Dazu müssen wir die Funktion flw.JSON.stringify verwenden, um den JSON-Wert in einen String zu transformieren und ihn in der Label-Eigenschaft zu verwenden.
Zum Beispiel enthält unser Formular ein Unterformular für Co-Autoren des Artikels. Das Unterformular ist mehrfach, sodass wir viele Co-Autoren haben können. Der nächste Ausdruck gibt alle Co-Autoren des Artikels zurück.

…
Finden Sie den fehlerhaften Backend-Ausdruck
Manchmal schlägt Ihr Prozess wegen eines falschen Backend-Ausdrucks fehl, und Sie wissen nicht, wo der Ausdruck verwendet wird. Dieser Leitfaden hilft Ihnen, herauszufinden, wo der fehlerhafte Ausdruck verwendet wird.
Exportieren Sie die App oder den Prozess mit dem fehlgeschlagenen Ausdruck.
Öffnen Sie die heruntergeladene Exportdatei in einem beliebigen Texteditor. Durchsuchen Sie die Ausdruckszeichenfolge.
Lesen Sie dann die XML-Tags in der Nähe des fehlgeschlagenen Ausdrucks.
In der Regel ist offensichtlich, wo er verwendet wird.
Im Beispiel unten ist mein falscher Ausdruck in der Dienstaufgabe mit dem Namen Artikel veröffentlichen in der Eigenschaft Ausdruck platziert.

Jetzt muss ich diese Aufgabe im Prozess finden und die Ausdruckseigenschaft beheben.

Überprüfen Sie das REST-Button-/Aufgabenanforderungsproblem
Wenn Ihr Prozess eine REST/HTTP-Aufgabe hat, die fehlschlägt oder einen unerwarteten Wert zurückgibt, müssen Sie die nächsten Schritte befolgen, um diese Art von Aufgaben zu debuggen.
Überprüfen Sie die Protokolldatei.
Wenn der Grund für den Fehler immer noch nicht klar ist, müssen wir vorübergehend die Eigenschaften Anforderungsvariablen speichern und Antwortdetails speichern der REST/HTTP-Aufgaben aktivieren. Vergessen Sie nicht, Ergebnisvariablenpräfix festzulegen. Jetzt beginnt Flowable, alle technischen Details der Anfrage in Variablen mit dem Präfix debug_ zu speichern.
Führen Sie den Prozess noch einmal aus und überprüfen Sie die Prozessvariablen. Sie sollten viele Variablen mit dem Präfix debug_. sehen. Überprüfen Sie sie, um zu verstehen, was schief läuft.


Sie können feststellen, dass meine Aufgabe fehlschlägt, weil die HTTP-Anforderung einen 404-Fehlercode zurückgibt. Es sieht so aus, als ob die Anfrage an die falsche URL gesendet wurde.
Debuggen eines ungültigen Formulars und blockierter Abschluss-Button
Manchmal ist es nicht offensichtlich, warum das Formular der menschlichen Aufgabe ungültig ist. Ein spezifischer Frontend-Ausdruck hilft, die Formularvalidierung zu erzwingen und den Grund für die Ungültigkeit zu verstehen.
Der Ausdruck führt eine Formularvalidierung durch und gibt eine Liste der ungültigen Formularelemente zurück, falls vorhanden. Sie können den Ausdruck in der Formulareigenschaft wie im Abschnitt Debugging des Frontend-Ausdrucks oder im temporären Formulareindruck-Button ausführen.
Dies ist eine Anleitung, wie man einen temporären Ausdruck-Button hinzufügt.
Fügen Sie einen Ausdruck-Button zum Formular hinzu.
Setzen Sie formValidation in die Variable Eigenschaft des Buttons.
Setzen Sie den FE-Ausdruck {{flw.validate()}} in die Ausdruckseigenschaft des Buttons. Weitere Informationen https://documentation.flowable.com/latest/model/forms/concept/work-form-expressions#validation-and-validation-errors
Veröffentlichen und erstellen Sie eine neue Instanz des Formulars/Prozesses/Falls mit der Formularaufgabe.
Öffnen Sie Inspect/Aktuelles Formular/Payload.
Klicken Sie auf den Ausdrucks-Button.
Suchen Sie nach der Zeichenfolge formValidation. Schließlich sehen Sie alle Validierungsfehler, Nachrichten und ungültigen Formularelement-IDs.
Weitere Debugging-Tipps
Alle Flowable-Netzwerkommunikationen finden Sie im Browser-Entwicklertool (F12) unter dem Tab Netzwerk.
Aktuelle Informationen über den authentifizierten Benutzer finden Sie unter folgendem Link https://your-flowable-work-url/idm-api/current-user
Abschließende Gedanken
Flowable ist ein komplexes Tool, und manchmal kann das Debuggen davon eine Herausforderung sein. Ich hoffe, dieser Artikel hilft Ihnen bei Ihrer Modellierung und Problemuntersuchung. Wenn Sie weiterhin Hilfe benötigen, konsultieren Sie Ihre Entwickler, besuchen Sie das Flowable-Forum oder kontaktieren Sie mich. Ich habe noch nie ein Problem getroffen, das nicht gelöst werden kann.