![]() |
Datenbank: Firebird • Version: 2.5 • Zugriff über: egal
Prozessablauf in einem Datenbankmodell hinterlegen
Folgende Aufgabe liegt an:
Der Prozessablauf einer Produktion soll in einem Datenbankmodell gespeichert werden. Dieser Ablauf soll dynamisch sein und ist ständigen Veränderungen ausgesetzt. Mein erster Ansatz war eine Baumstruktur. Das klappt aber nur, wenn der Prozess in einer Richtung verläuft. In diesem Fall gibt es aber Rücksprünge, der dann auch noch neue Zweig eröffnet in denen der Prozess parallel weiter verläuft und sich dann wieder verbindet. Vielleicht so ähnlich wie beim Programmablaufplan in der Programmierung. Meine Frage, gibt es Erfahrungen oder auch bekannte Modelle mit denen man das in einer Datenbankstruktur einfach und flexibel abdecken kann. Vielleicht kennt jemand hierzu auch eine passenden Komponente zum visualisieren. Das ist aber erst mal sekundär. Schon mal vielen Danke Gruß Borwin Viele Bausteine ergeben ein fertiges Haus |
AW: Prozessablauf in einem Datenbankmodell hinterlegen
Wie speicherintensiv wird denn das Ganze und wie schnell soll das sein?`
Vielleicht wäre der Einsatz eines ORM zweckmäßig? Du könntest Die gesamte Logik in Objekten verarbeiten und diese unteranander über Id´s referenzieren. Die DB würde letztlich nur als Datenlager dienen. Der Zugriff würde über Objekte erfolgen. Natürlich bringt das einen gewissen Aufwand mit sich (sowohl in der Programmierung als auch zur Laufzeit), sollte aber eine Übverlegung Wert sein. |
AW: Prozessablauf in einem Datenbankmodell hinterlegen
Eine fertige Komponente(nsammlung) bzw. Framework gibt es von TMS:
![]() Zitat:
Ist aber bei dieser Materie auch eher ungünstig - eine Vektorgrafik würde ich auch nicht unbedingt in Pfade zerlegen und diese dann in Tabellenspalten speichern, höchstens bei einem 3D Actionspiel :) |
AW: Prozessablauf in einem Datenbankmodell hinterlegen
Ich habe Prozessabläufe über Zustandsübergänge definiert.
Der Tabellenaufbau ist selbsterklärend:
Code:
Damit sind jedoch die Sonderprozessketten, etwa bei Reklamationen, Versuchen, Iterationen oder Nachbearbeitungen nicht abgedeckt. Dies müsste durch eine Funktion definiert werden, die prüft, in welchen Prozessschritt ein Produkt in Abhängigkeit seines Zustandes wechseln darf.
ProduktID | VonProzessID | NachProzessID
Als gerichteter Graph taugen die Zustandsübergänge allemal. Baumstrukturen sind wegen der fehlenden zyklischen Abbildungsmöglichkeiten jedoch nicht geeignet. |
AW: Prozessablauf in einem Datenbankmodell hinterlegen
Erst mal vielen Dank für die Antworten. Wird mir weiterhelfen.
stahli Der Vorschlag mit den Objekten hört sich gut an aber ist für diese wohl Aufgabe nicht geeignet. An den Prozessen werden noch weitere Daten aus der Datenbank angehangen. Da wird es dann doch schwierig bei den Abfragen. mjustin Das WorkflowStudio von TMS ist ein guter Ansatz. Ich muss es mir jetzt noch in der Praxis anschauen ob alle Kriterien erfüllt werden. Das DB-Model ist übersichtlich und für meine Zwecke wohl ausreichend. Leider kann der Zugriff für die Visualisierungskomponente nur über ADO erfolgen. Furtbichler Ist auch eine Variante und denke drüber nach ob ich die Prozesse damit alle abbilden kann. Eine andere Komponente als die von TMS habe ich nicht gefunden. Da gibt es wohl nicht sehr viele. Gruß Borwin |
AW: Prozessablauf in einem Datenbankmodell hinterlegen
Warum ist die Baumstruktur so problematisch? Aus (Vor-)Produkt Perspektive ergibt sich zwangsläufig ein linearer Ablauf, wie er von Furtbichler dargestellt wurde.
Betrachtet man den Baum als Menge der möglichen Wege, muss sich am Ende je "Prozess" ein linearer Ablauf ergeben. In einer konkreten Produktionsplanung kommen natürlich Kapazitätsfragen dazu (Prozesszeiten versus Arbeitsplatz-/ Maschinenkapazitäten), aber das ist glaub ich nicht gemeint? Oder doch: Zitat:
|
AW: Prozessablauf in einem Datenbankmodell hinterlegen
Zitat:
jobo Das hört sich interessant an. Habe ich aber nicht ganz verstanden. Kannst Du das näher erklären? So ganz linear geht es nicht. Wenn sich der Herstellungsprozess zeitweilig aufspaltet und dann wieder zusammenführt sehe ich keine Möglichkeit das mit einer Baumstruktur darzustellen. Lasse mich aber gerne überzeugen. Gruss Borwin |
AW: Prozessablauf in einem Datenbankmodell hinterlegen
Zitat:
|
AW: Prozessablauf in einem Datenbankmodell hinterlegen
Ich behaupte einfach, man kann den Baum als Präsentation aller möglichen Prozessknoten verwenden. Ein konkreter Prozess für ein konkretes Teil wäre ein definierter Pfad durch den Baum. Der konkrete Pfad würde auch Iteration (Zyklen) beinhalten, Aufspaltung kann ich mir allerdings real nicht vorstellen (Kenn das Thema nur aus 2. Hand).
Vielleicht nennst Du einfach mal ein reales Beispiel, das hilft sicher mehr, als dass ich rumfantasiere. |
AW: Prozessablauf in einem Datenbankmodell hinterlegen
Schritt 1:
Überlegen die der Graph des Prozessablauf aussehen kann (gerichteter Graph, sind Mehrfachkanten erlaubt?,... ). Welche Zusatzdaten werden innerhalb des Graph benötigt? Gibt es Inputdaten von Aussen, die den Prozessablauf beeinflussen? Wie flexibel muss das Modell sein? Geht es eher in Richtung eines Scripts mit Kontrollstrukturen (if, while, for, break)? Schritt 2: Überlegen, wie das Modell in einer relationalen Datenbank abgespeichert werden könnte. Macht es wirklich Sinn jede Kante des Graphs als einzelnen Datensatz abzuspeichern oder reicht es nicht aus das gesamte Model als Blob abzulegen? Ganz offensichtlich muss man Schritt 1 vor Schritt 2 vornehmen! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:42 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz