Frage

Wir bauten einen Antrag auf Finanzhilfe System für einen Kunden. Sie haben jetzt einige einfache Workflow-Funktionalität (zwei Genehmigungen erforderlich, bevor der Antrag gestellt wird) gefragt.

ich einige Gedanken an das Datenbank-Design gegeben habe, die ich verwenden würde, die Workflow-Anforderungen in einer Art und Weise zu kodieren, die ein Höchstmaß an Flexibilität und Wiederverwendbarkeit bieten würden, und ich würde gerne wissen, ob es irgendwelche bestehenden Entwurfsmuster sind oder best Practices gibt für diese Art von System. Irgendwelche Vorschläge?

Hinweis: Dies ist eine benutzerdefinierte ASP.NET-Anwendung, und wir werden auf jeden Fall unsere eigene Workflow-Lösung rollen. Ich bin nicht daran interessiert, in eine Komponente zu kaufen, oder viel weniger die ganze Sache zu einer Plattform wie Sharepoint zu bewegen.

War es hilfreich?

Lösung

Um sich nicht auf der Windows Workflow Foundation wäre töricht . Es wurde genau das gemacht, was Sie benötigen.

Hier ist ein ASP.NET spezifische Verbindung .

Andere Tipps

Wenn die Workflow-Funktionalität so einfach ist, dann ist Ihr Ansatz genug. Aber wenn Sie möchten (oder wenn der Kunde später fragt nach) mehr Funktionalität wie:

  • Erinnerungen an Genehmiger
  • Benachrichtigungen an Administratoren
  • Eskalationen und Umverteilungen von Zuweisungen
  • Stornierungen von Aufträgen
  • Regelbasierte Zuweisungen
  • Tracking von Zuweisungen

dann können Sie eine Workflow-Komponente wie Workflow Foundation haben prüfen .

Eine akademische Ansatz Muster Workflow gefunden werden hier und sie sind gruppiert in vier Kategorien:

Ich denke, dass die interessantere Kategorie für Ihren Fall ist die Ressource Patterns.

eine Lösung, die in der Vergangenheit gut gearbeitet hat, ist genehmigungsGruppen mit Mitgliedern, Genehmigungs-Codes als einfache Lookup-Tabelle, und Soft-Code der Genehmigungsstatus-Maschine, so dass jeder Schritt ergibt sich aus der Zuordnung eines Genehmigungscodes zu erstellen ein Element von einem Gruppenmitglied. Auf diese Weise können die Gruppenmitgliedschaft ändern und die Genehmigungswege, ohne etwas zu ändern, neu zu Code. Sie können auch Code-Trigger und Endpunkte (über Reflexion, zum Beispiel Montage + Klassennamen + Methodennamen nennen) in Nebeneffekt auszuführen und zu begehen / notification Aktionen bei jedem Schritt

Ich habe eine ähnliche Abfrage. Es gibt eine Gruppe von Chargenprozessen mit Interdependenzen. Ich arbeite an einem Workflow-artigen System für diese Batch-Prozesse.

Welche der folgenden zwei Ausführungen ist besser:

  1. Datenbank driven Design, wo jeder Prozess aktualisiert seinen Status und andere Details in Datenbanktabellen und anderen Prozessen abfragen diese Tabellen oder

  2. Ein JMS oder Messaging-basierter Ansatz, bei dem Prozeß miteinander unter Verwendung von Messaging-Warteschlangen kommunizieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top