Prozessbaum
Der Prozessbaum ist eine Datenbanktabelle (process), die die vollständige Hierarchie aller Fertigungsprozesse in WSi definiert. Er steuert gleichzeitig zwei Dinge:
- Welche Prozesse in der WSi-Benutzeroberfläche sichtbar und auswählbar sind.
- Welchem Arbeitsgang-Typ jeder Prozess zur Laufzeit zugeordnet wird — die Kategorie, anhand derer WSi bestimmt, welche Symbolleisten- und Menübefehle verfügbar sind.
Was die Tabelle enthält
Jede Zeile in der process-Tabelle ist ein Prozess. Die Spalten sind:
| Spalte | Typ | Beschreibung |
|---|---|---|
identifier | String | Eindeutige ID für den Prozess (wird als Elternreferenz verwendet) |
parentIdentifier | String | ID des übergeordneten Prozesses; leer für Stammknoten |
type | Wert aus der Prozesstyp-Liste | Welcher der 73 verfügbaren Prozesstypen dieser Eintrag darstellt |
name | String | Anzeigename in Fenstern |
costCenter | String | Kostenstelle für die Kostenzuordnung |
priority | int | Priorität, die bei der automatischen Auswahl zwischen Prozessen verwendet wird |
active | bool | Prozess-Level-Ein-/Ausblenden. Wenn false, ist der Prozess vollständig aus der Benutzeroberfläche ausgeblendet |
childrenActive | bool | Unterbaum-Ein-/Ausblenden. Wenn false, werden dieser Prozess und alle seine Kinder ausgeblendet |
description | String | Optionale Beschreibung |
Ein Prozess ist vollständig verfügbar, wenn sowohl active = true ALS AUCH childrenActive = true gilt UND alle übergeordneten Prozesse ebenfalls beide Flags auf true gesetzt haben. Wenn ein Vorfahre childrenActive = false hat, wird der gesamte Unterbaum ausgeblendet.
Wie der Baum aufgebaut wird
WSi liest beim Start jede Zeile aus der process-Tabelle und ordnet sie anhand von parentIdentifier in die im Prozessbaum gezeigte Hierarchie ein. Einige Regeln halten diese Hierarchie konsistent:
- Keine Zyklen. Ein Prozess kann niemals sein eigener Vorfahre werden.
- Nur ein übergeordneter Prozess. Jeder Prozess hat höchstens einen übergeordneten Prozess — es ist ein strenger Baum, kein Netzwerk mit mehreren Eltern pro Zeile.
- Stammprozesse haben keinen eigenen Typ. Ein Prozess mit leerem
parentIdentifier(ein Eintrag der obersten Ebene) musstypeaufundefinedgesetzt haben. - Kindtypen müssen zum übergeordneten Prozess passen. Der Typ eines Prozesses muss einer sein, den WSi als gültiges Kind des Typs seines übergeordneten Prozesses erkennt — die gültigen Eltern-Kind-Kombinationen sind softwareseitig festgelegt, nicht pro Zeile konfigurierbar.
Verstößt eine Zeile gegen diese Regeln, protokolliert WSi beim Start einen Fehler und verweigert das Öffnen der Datenbank, bis die Zeile korrigiert ist.
Wie Arbeitsgang-Typen verfügbar werden
Jeder Prozesstyp gehört zu einem von 11 Arbeitsgang-Typen — breiten Fertigungskategorien wie Blechschneiden oder Fügen (siehe Zuordnungstabelle unten). Beim Start durchsucht WSi den aktiven Teil des Prozessbaums und ermittelt, welche dieser 11 Arbeitsgang-Typen aktuell erreichbar sind. Dieses Ergebnis bestimmt, welche Symbolleisten- und Menübefehle angezeigt werden.
Ein Arbeitsgang-Typ gilt als verfügbar, wenn:
- Mindestens ein Prozess dieses Typs
activeist - Dieser Prozess sich in einem aktiven Unterbaum befindet — keiner seiner Vorfahren hat
childrenActive = false - Der
typedes Prozesses auf diesen Arbeitsgang-Typ abgebildet wird (siehe Zuordnungstabelle unten)
Prozesstypen und Arbeitsgang-Typen
WSi definiert insgesamt 73 Prozesstypen, gruppiert sie aber zur Laufzeit in nur 11 Arbeitsgang-Typen:
| Arbeitsgang-Typ | Enthaltene Prozesstypen |
|---|---|
sheet | sheet |
sheetCutting | laserSheetCutting, laserSheetCuttingN2, laserSheetCuttingO2, plasmaSheetCutting, waterJetSheetCutting |
sheetBending | dieBending, sheetMetalFolding |
tube | tube |
tubeCutting | tubeCutting |
joining | joining, assembling, forceFitting, joiningByWelding, joiningByBrazing, bonding, plus alle Schweißuntertypen |
packaging | packaging |
transform | coating, sprayPainting, powderCoating, hotDipGalvanizing, cathodicDipPainting, electroGalvanizing, anodizing, countersinking |
userDefined | manufacturing, forming, bendForming, bendingWithoutTool, cutting, removalOperation, machining, milling, turning, drilling, threading, userDefinedMachining, mechanicalDeburring, automaticMechanicalDeburring, manualMechanicalDeburring, cleaning, slideGrinding, tapping, sheetTapping, transport, usw. |
userDefinedBase | externalPart, userDefinedTube, userDefinedBaseType |
undefined | undefined, semiManufactured, alle Zwischen-/abstrakten Elterntypen |
Prozesse aktivieren und deaktivieren
Um einen Prozess vor Benutzern ausblenden, ohne ihn aus der Datenbank zu löschen:
- Öffnen Sie Einstellungen → Datenbank (Datenbankverwaltungsfenster).
- Suchen Sie die Tabelle process.
- Setzen Sie
active = falsefür den Prozess, den Sie ausblenden möchten. Oder setzen SiechildrenActive = false, um einen gesamten Unterbaum auszublenden.
Zum Wiederherstellen setzen Sie beide Flags wieder auf true.
WARNUNG
Wenn Sie childrenActive = false auf einem übergeordneten Prozess setzen, werden alle seine Kinder ausgeblendet, einschließlich Prozesse, die mehrere Ebenen tief sind. Verwenden Sie dies, um gesamte Fertigungskategorien auf einmal zu deaktivieren.
HINWEIS
Wenn Sie einen übergeordneten Prozess deaktivieren und dann wieder aktivieren, werden alle Kinder in ihren vorherigen Zustand zurückversetzt — das Flag ist zeilenbasiert, nicht nach unten propagiert.
Einen benutzerdefinierten Prozess hinzufügen
Benutzerdefinierte Prozesse können zur process-Tabelle hinzugefügt werden, aber:
- Der
typemuss einer der 73 vorhandenen Prozesstypen sein (Sie können keine neuen Typen erfinden, ohne eine Codeänderung) - Der
parentIdentifiermuss auf einen vorhandenen Prozess-Bezeichner verweisen - Die neue Zeile muss allen oben beschriebenen Konsistenzprüfungen standhalten
Für Benutzerdefinierte Prozesse, die benutzerdefinierte Skripte ausführen, verwenden Sie manufacturing oder forming als Typ. Beide werden auf den Arbeitsgang-Typ userDefined abgebildet — einen manuellen Arbeitsgang, der beliebige Parameter akzeptiert.
Für eine vollständige Anleitung zum Schreiben von benutzerdefinierten Kosten- und Zeitformeln für solche Prozesse, siehe Benutzerdefinierte Berechnungen.
Beziehung zu den Datenbanktabellen
Viele untergeordnete Prozesse haben dedizierte Parametertabellen. Zum Beispiel:
laserSheetCutting→laserSheetCuttingGas,laserSheetCuttingSpeed, usw.tubeCutting→ Rohrschneiden - Prozess,tubeCuttingSpeed, usw.dieBending→bendDeduction,upperDie,lowerDie, usw.
Wenn ein Prozess im Baum aktiv ist, sind seine Parametertabellen für die Kosten- und Zeitberechnung verfügbar. Wenn sie deaktiviert sind, bleiben die Parameterzeilen in der Datenbank, werden aber nicht verwendet.