Announcement

Collapse
No announcement yet.

Frage zu Workflows allgemein / ezComponents Workflow

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Frage zu Workflows allgemein / ezComponents Workflow

    Hallo,

    Ich spiele gerade mit dem Gedanken, eine Workflow-Komponente in eine Applikation (bzw. die Planung einer Applikation) aufzunehmen – bin mir jedoch bei einigen sehr grundlegenden Punkten und Gedankenspielen bzgl. der Workflow-Funktionalität noch sehr unsicher.

    Ich habe mir im Netz verschiedene Sachen zu Workflows durchgelesen und die eZ Components Workflows etwas getestet - jedoch bin ich mir bei einigen grundlegenden Sachen noch sehr unsicher.

    Folgender fiktiver Ablauf/Workflow skizziert mein Gedankenspiel:

    In einer Datenbanktabelle „profile“ wird eine Person gespeichert. Diese Person hat zunächst den Status neu (Int-Feld „status, Wert 1).

    Diese Person wird einem Mitarbeiter zur Einsicht betrachtet und anschließend (manuell nach der ersten Sichtung) mit einem zuständigen Mitarbeiter verknüpft. Zur Vereinfachung nehmen wir an, dass diese Verknüpfungs-Information auch in der „profile“-Tabelle im Feld „user_id“ gespeichert wird (Default = 0). Mit der ersten Sichtung wird der Status auf den Wert 2 (= angesehen) gesetzt, mit der Zuordnung zu einem Mitarbeiter auf den Wert 3 (=zugeordnet). Im Rahmen der Zuordnung an einen Mitarbeiter soll an eben diesen Mitarbeiter eine Mail mit dem Hinweis zur neuen Person gesendet werden.

    Der Mitarbeiter hat nun die Möglichkeit, die Person abzulehnen oder anzunehmen. Hierfür kann er ebenfalls den Status ändern (Wert 4 = abgelehnt, Wert 5 = angenommen). Im Falle der Ablehnung soll eine Mail an die Person gesendet werden, im Falle der Annahme soll nichts weiter geschehen.

    Die „Abarbeitung“ der verschiedenen Schritte erfolgt in einer formularbasierten Applikation über eine einfache Status-Selectbox, dessen Wert in der „profile“-Tabelle gespeichert wird. In Abhängigkeit vom gewählten bzw. gespeicherten Status wird (z.B. über ein Switch-Case-Konstrukt) die entsprechende Aktion aufgerufen, also z.B. der Mail-Versand.

    Auch wenn ich es jetzt noch nicht gemacht habe, aber die Definition des Workflows in eZ Components sollte nicht das größte Problem sein.

    Vielmehr bin ich mir unsicher darüber, wie mit den „Instanzen“ eines Workflows gearbeitet werden muss, denn der grundlegende Workflow ist in diesem Beispiel ja eigentlich bei allen Personen gleich. Muss ich also den Workflow einmal definieren und als „BasicWorkflow“ speichern, um ihn dann beim Speichern einer Person/des Datensatzes zu laden und z.B. mit der Id der Person als neuen Workflow (bzw. Instanz des Workflows) zu speichern? Oder wie funktioniert es, wenn ich den gleichen Workflow für mehrere „Datensätze“ (auf die dann ja in der Applikation die Aktionen ausgeführt werden) führen muss?

    Zudem bin ich mir unsicher darüber, wie die Applikation mit der Workflow-Funktionalität verknüpft werden könnte und sollte. Wäre es der richtige Ansatz, den Versand der E-Mails über den Workflow abwickeln zu lassen, also z.B. den Status an ein WorkflowServiceObject zu übergeben und in der execute-Methode dieses ServiceObjects dann in Abhängigkeit vom gewählten Status den Mailversand vorzunehmen? Oder sollte in dem genannten Switch-Case-Konstrukt der Workflow einfach auf die nächste „Stufe“ gesetzt bzw. verschoben werden?

    Ich hoffe, dass mein geschildertes Gedankenspiel halbwegs verständlich ist und wäre für Anregungen, Ideen und Hilfestellungen dankbar!

    MfG

    Timo
Working...
X