From ac71e8818adc4bbfb83c23a269c5d57d5a745210 Mon Sep 17 00:00:00 2001 From: "s.steuer" Date: Tue, 16 Jan 2024 09:55:22 +0100 Subject: [PATCH] Arbeitsstand des Spezifikationsdokuments eingecheckt --- doc/Pictures/Beschaffungsart_1.jpg | Bin 0 -> 20295 bytes doc/Pictures/Beschaffungsart_2.jpg | Bin 0 -> 22693 bytes doc/Pictures/Laengenpruefung.gif | Bin 0 -> 13217 bytes doc/Pictures/Open_3D_Model.jpg | Bin 0 -> 15524 bytes doc/spezifikation.md | 791 +++++++++++++++++++++++++++++ 5 files changed, 791 insertions(+) create mode 100644 doc/Pictures/Beschaffungsart_1.jpg create mode 100644 doc/Pictures/Beschaffungsart_2.jpg create mode 100644 doc/Pictures/Laengenpruefung.gif create mode 100644 doc/Pictures/Open_3D_Model.jpg create mode 100644 doc/spezifikation.md diff --git a/doc/Pictures/Beschaffungsart_1.jpg b/doc/Pictures/Beschaffungsart_1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4a8c93db66f9b031778620923b6604815b4556ff GIT binary patch literal 20295 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%0Ae6z86OLGj0YilY4FXM!?OBrGMDq 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 literal 0 HcmV?d00001 diff --git a/doc/Pictures/Beschaffungsart_2.jpg b/doc/Pictures/Beschaffungsart_2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0283620ce519eb5cd07267e4586aea60525e7041 GIT binary patch literal 22693 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 B#RdQX literal 0 HcmV?d00001 diff --git a/doc/Pictures/Open_3D_Model.jpg b/doc/Pictures/Open_3D_Model.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ecb3d609a4804b2a7a4df00c824bb7934aee837b GIT binary patch literal 15524 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:** Entry +>**Zulässiger Datentyp:** Integer +>**Read only:** Nein +>**Position:** Oberhalb des Treeviews und unterhalb des zugehörigen Labels + +Im Feld "Baugruppennummer" wird die SIVAS-Teilenummer der Baugruppe / des bearbeiteten Halbzeugs eingetragen, das zusammen mit den Stücklistenpositionen migriert werden soll. + +**Funktionsweise** +Nach der Eingabe der Baugruppennummer und anschließendes Drücken der Enter-Taste soll die Stückliste der Teilenummer über das Sivas2json-Programm generiert und daraus die Stücklistenstruktur als Treeview zur Baugruppennummer erstellt werden. + +Wird im Entry-Feld eine Teilenummer eingetragen, die über keine Stückliste verfügt, ist im Treeview nur diese Nummer enthalten / auswählbar. + +#### **Migration** +>**Spaltenname Impfdatei:** Feld wird nicht in Impfdatei berücksichtigt + + + +### Teilenummer +#### **Spalte 2: SIVAS-Werte** +>**Widget-Typ:** Entry +>**Zulässiger Datentyp:** Integer +>**Zeichenbegrenzung:** 9 +>**Read only:** Ja + +>**Daten:** +>**Spaltenname in "from_siv.csv":** Teilenummer + +**Aufgaben beim Einlesen des Feldes aus "from_siv.csv":** +1. Teilenummerprüfung +Erfüllt eine Teilenummer nicht die Anforderungen hinsichtlich Datentyp und Zeichbegrenzung soll eine ERROR-Messagebox erscheinen +- *Soll die Fehlermeldung bereits beim Laden des Treeviews erscheinen?* +- *Soll die Teilenummer im Treeview speziell eingefärbt werden und die Fehlermeldung beim Versuch, die Teilenummer über den Treeview zu öffnen, erscheinen?* + +Wenn die Teilenummerprüfung keinen Fehler generiert, soll Wert "Teilenummer" aus "from_siv.csv" in Entry-Feld eingetragen werden + +#### **Migration** +>**Spaltenname Impfdatei:** Teilenummer + + + +### Datenbank +#### **Spalte 3: Überschriebene Werte** +>**Widget:** +>**Typ:** RadioButton +>**Werte:** Schulung, Produktiv +>**Defaultwert:** Produktiv +>**Buttonpositionen:** übereinander (Produktiv oben, Schulung unten) +>**Read only:** Nein + +Die Optionswerte legen das Zielverzeichnis (Spalte "New Path" in Impfdatei) fest, aus dem RuleDesigner die CAD-Modelle zur Datensatzerstellung einliest. + +#### **Migration** +>**Spaltenname Impfdatei:** Wird zur Definierung des Wertes der Spalte "New Path" benötigt, besitzt aber keine eigene Spalte + +Die Pfadfestlegung in der Spalte ist unter [Tätigkeiten Impfdateierstellung](#tätigkeiten-im-rahmen-der-impfdateierstellung) beschrieben. + + +### PDM-Kategorie + +#### **Spalte 3: Überschriebene Werte** +>**Widget-Typ:** ComboBox +>**Read only:** Ja +>**Defaultwert:** Leer, da Kategoriefestlegung nicht automatisch erfolgen kann + +Im Dropdownfeld "PDM-Kategorie" sollen die Werte der Sektion "Kategorien" aus der Datei [Allgemein.cfg](../cfg/Allgemein.cfg) auswählbar sein. + + +*Aus [Allgemein.cfg](../cfg/Allgemein.cfg) muss noch Wert "Normteil" und "NichtSivas" entfernt werden* + +#### **Migration** +>**Spaltenname Impfdatei:** KategorieNE + + + +### Neuaufbau +>**Widget-Typ:** CheckButton +>**Defaultwert:** False (Haken nicht gesetzt) + +Button wird immer dann aktiviert, wenn Teil in Solid Edge neu aufgebaut werden soll. + +**Read only und Wert (Haken gesetzt / nicht gesetzt):** + + IF PDM-Kategorie != "Einzelteil" OR "Kaufteil": + Read only = True + Haken gesetzt = False + ELSE: + Read only = False + +#### **Migration** +>**Spaltenname Impfdatei:** Wird für Definierung des des Wertes der Spalte "Path" benötigt, besitzt aber keine eigene Spalte + + +Die Pfadfestlegung in der Spalte ist unter [Tätigkeiten Impfdateierstellung](#tätigkeiten-im-rahmen-der-impfdateierstellung) beschrieben. + + + +### Halbzeugbearbeitung +>**Widget-Typ:** CheckButton +>**Defaultwert:** False (Haken nicht gesetzt) + +Button wird immer dann aktiviert, wenn ein Einzelteil aus einem Halbzeug gefertigt wird. + +**Read only und Wert (Haken gesetzt / nicht gesetzt):** + + IF PDM-Kategorie != "Einzelteil": + Read only = True + Haken gesetzt = False + ELSE: + Read only = False + +Ja, machen wir, wenn mit vernünftigem Aufwand realisierbar +Man könnte sich überlegen evtl. doch zusätzlich ein Entry-Feld für die Halbzeugnummer einzubauen -> Wenn Haken bei "Aus Halbzeug" gesetzt ist, wird geschaut, ob das Halbzeug in RD vorhanden ist -> wenn ja, wird die Artikelnummer in das Entryfeld eingetragen. Indem das Feld nicht schreibgeschützt wird, könnte man dem User dabei weiterhin die Möglichkeit geben, den Text ggf. zu entfernen und später händisch in RD ein passendes Halbzeug hinzuzufügen, z.B. wenn bearbeitetes Halbzeug vor Halbzeug selbst migriert wird. Falls diese Variante gewählt wird, muss die Impfdatei um weitere Spalten ergänzt werden und das Mapping der CheckButton-Werte beachtet werden. + + +#### **Migration** +>**Spaltenname Impfdatei:** HalbzeugInternAngabe + Wird für Definierung des Spaltewertes "Path" benötigt, besitzt aber keine eigene Spalte + +HalbzeugBearbeitung muss auf "Ja" gesetzt werden + + +Die Pfadfestlegung in der Spalte ist unter [Tätigkeiten Impfdateierstellung](#tätigkeiten-im-rahmen-der-impfdateierstellung) beschrieben. + + +### Lebenszyklusstatus +### Spalte +>**Widget:** +>**Typ:** RadioButton +>**Werte:** Prototyp, Serie +>**Defaultwert:** Keiner +>**Buttonpositionen:** übereinander (oben "Prototyp", unten "Serie") +>**Read only:** Nein + +#### **Migration** +>**Spaltenname Impfdatei:** Serien-Status + + + +### Zusätzliche Informationen +>**Widget:** +>**Typ:** Entry +>**Einschränkungen:** max. 400 Zeichen +>**Read only:** Nein + +**Fallabhängiger Defaultwert:** + +- Falls mehrere der nachfolgenden Fälle gleichzeitig zutreffen, sollen die jeweiligen Texte miteinander verkettet werden. Was soll passieren, wenn zusammengesetzter Text > 400 Zeichen hat (Evtl. Kombo-Textblöcke festlegen)? Config ergänzen für Textblöcke + + IF Version == Kleinbuchstabe: + Text = ACHTUNG Index in Sivas mit Kleinbuchstaben. Nach Freigabe der Teilenummer den großen Index in SIVAS löschen und auf kleinen verlinken. Sobald die Revision höher als '{"Version"}' ist kann Information gelöscht werden. + + ELSE IF Trümmer == True OR "Rüstcode" == None: + Text = ACHTUNG Trümmerbaugruppe. Nach einer Revision oder Bagatelländerung muss der Rüstcode in der Stücklisten bei allen Stücklistenpositionen manuell in "TR - Trümmerteile" geändert werden. + + ELSE IF Teilenummer in Blacklist: + Text = ACHTUNG BG mit Beistellungen. Es wird keine Stückliste übergeben. Diese muss bei einer Änderung händisch angelegt und archiviert werden. Hierfür die Verantwortlichen für den Teilestamm informieren. + + ELSE IF Werkstoffdiskrepanz == True: + Text = ACHTUNG Materialdiskrepanz. SIVAS-Material und/oder Zeichnungsmaterial / geliefertes Material unterschiedlich. Muss abgeklärt werden. Näheres siehe JIRA. + + ELSE: + Text = "" + + +#### **Migration** +>**Spaltenname Impfdatei:** ZusaetzlicheInformationen + +Textblöcke erst bei Erstellung der Migrationsliste in ZusaetzlicheInformationen einfügen. In Entry-Feld wird nur eingetragen, was zusätzlich zu Textblöcken definiert wird. + +Muss auf unzulässige Zeichen geprüft werden + + +### 3D-Modell +#### **Spalte 2: SIVAS-Werte** +>**Widgets:** +>**Typ:** ComboBox +>**Read only:** Ja + +**Werte:** +In der ComboBox sollen alle Dateien angezeigt werden, die im Dateinamen die aktuelle Teilenummer aufweisen und in bestimmten, vordefinierten Verzeichnissen abgelegt sind. + +**Vordefinierte Verzeichnisse:** + + \\ssg.local\freigaben\SIVAS_CAD_EDM\Migration\01_Rohdatenpool + +Per Config soll der User zudem eigene Verzeichnisse definieren können, die bei der Suche mitberücksichtigt werden. + +Wenn Vorlagendatei gilt, soll in ComboBox Pfad eingetragen werden + +Schreibschutz, wenn Schweissbaugruppe oder Baugruppe oder wenn Einzelteilvorlagen gezogen werden + +#### **Spalte 3: Überschriebene Werte** +>**Widgets:** +>**Typ:** Button +>**Text:** Durchsuchen... +>**Position** Rechts neben Combobox + +Sofern die gewünschte Datei nicht unter den Dateien der ComboBox enthalten ist, soll der User auf den Button "Durchsuchen" klicken können, um über ein Popup-Fenster (tkinter.filedialog.askopenfile()) die gewünschte Solid Edge-Datei auswählen zu können. Der Dateipfad soll dann in die ComboBox eingetragen und später ausgelesen werden. + +**Fallabhängiger Schreibschutz** + + IF PDM-Kategorie == "Einzelteil" OR "Kaufteil": + IF Aus Halbzeug == True OR "Neuaufbau" == True: + Read only = True + ELSE: + Read only = False + ELSE: + Read only = False + +Beispiel, wie es aussehen könnte: + +![Modellsuche](../doc/Pictures/Open_3D_Model.jpg) + +#### **Migration** +**Spaltennamen Impfdatei:** +Das Feld "3D-Modell" besitzt keine direkte Spalte in der Impfdatei, wird jedoch fallabhängig für die Spalten "Path" und "Filename" benötigt (siehe [Tätigkeiten Impfdateierstellung](#tätigkeiten-im-rahmen-der-impfdateierstellung)) + + + +### Bezeichnung 1 + +#### **Spalte 2: SIVAS-Werte** + +>**Widget:** +>**Typ:** Entry +>**Read only:** Ja + +>**Daten:** +>**Spaltenname in "from_siv.csv":** Bezeichnung1 + + +**Aufgaben beim Einlesen des Feldes aus "from_siv.csv":** +- Das Kürzel "kpl" (klein- oder großgeschrieben) in einer der nachfolgenden Varianten (oder bestehend aus der Kombination dieser Varianten) soll aus der Bezeichnung entfernt werden: + + - Leerzeichen vor (und ggf. nach) "kpl", z.B. " kpl " ; " kpl" + - Satzzeichen nach (und ggf. vor) "kpl", z.B. "kpl." ; ", KPL." ; " kpl," + + Befindest sich das Kürzel nicht am Bezeichnungsende, muss es durch ein Leerzeichen ersetzt werden, z.B. + *WEICHE S 22,5° -R- KPL. MIT SEILZUGSCHALTUNG* ---wird zu---> *WEICHE S 22,5° -R- MIT SEILZUGSCHALTUNG* + +- Prüfung, ob Bezeichnungslänge > 50 Zeichen + +Nach Abarbeitung der obigen Aufgaben soll der Wert in das Entry-Feld eingetragen werden + +#### **Spalte 3: Überschriebene Werte** +>**Widget** +>**Typ:** Entry +>**Einschränkungen:** max. 50 Zeichen +>**Read only:** Nein + +**Aufgaben vor/während der Befüllung des Feldes:** +1. Längenprüfung + + Wenn die Bezeichnung in der Spalte "SIVAS-Werte" > 50 Zeichen aufweist (siehe "Aufgaben beim Einlesen des Feldes aus "from_siv.csv" oben), soll im Entry ein roter Platzhalter-Text erscheinen, bis User in das Entryfeld klickt und Text eingibt: + + ![test](./Pictures/Laengenpruefung.gif) + + **Hinweis:** + GIF dient nur zur kurzen Veranschaulichung und wurde (mit abgewandeltem Text) durch Code aus folgender [Antwort](https://stackoverflow.com/a/47928390) erstellt -> muss ggf. angepasst werden, da in Antwort kein ttk verwendet! + +#### **Migration** +>**Spaltenname Impfdatei:** Bezeichnung2 + +Wurde trotz zu langer Bezeichnung keine kürzere Bezeichnung eingegeben muss beim Klick auf Button "Migrieren" eine Fehlermeldung erscheinen, die die Migration verhindert (siehe auch [Tätigkeiten vor Erstellung der Impfdatei](#tätigkeiten-vor-erstellung-der-impfdatei)) + +Bei (Schweiss-)Baugruppen muss die Spalte "Bezeichnung4" in der Impfdatei mit "- BG" befüllt werden (siehe [Tätigkeiten Impfdateierstellung](#tätigkeiten-im-rahmen-der-impfdateierstellung)) + + +### Bezeichnung 2 +#### **Spalte 2: SIVAS-Werte** +>**Widget:** +>**Typ:** Entry +>**Read only:** Ja + +>**Daten:** +>**Spaltenname in "from_siv.csv":** Bezeichnung2 + +In diesem Feld soll informativ der Spaltenwert "Bezeichnung2" aus "from_siv.csv" eingetragen werden. Das Feld erfüllt ansonsten keine weiteren Funktionen und wir nicht in der Impfdatei berücksichtigt. + +#### **Migration** +>**Spaltenname Impfdatei:** Nicht in Impfdatei enthalten + + +### Beschaffungsart +>**Widget:** +>**Typ:** RadioButton +>**Werte:** Eigenbau, Kaufteil +>**Buttonpositionen:** Nebeneinander (1x in Spalte "SIVAS-Werte", 1x in Spalte "Überschriebene Werte) +>**Read only:** Nein + +>**Daten:** +>**Spaltenname in "from_siv.csv":** Beschaffungsart + +**Fallabhängiger Defaultwert:** +Als Text des Buttons in der Spalte "SIVAS-Werte", wird der Spaltenwert "Beschaffungsart" aus "from_siv.csv" eingetragen. Der Text des Buttons in der Spalte "Überschriebene Werte" weist dann folglich den anderen Wert auf. + +**Beispiel:** +- Beschaffungsart laut Sivas = Eigenbau: + + ![Beschaffungsart1](../doc/Pictures/Beschaffungsart_1.jpg) + +- Beschaffungsart laut Sivas = Kaufteil: + + ![Beschaffungsart2](../doc/Pictures/Beschaffungsart_2.jpg) + +#### **Migration** +>**Spaltenname Impfdatei:** Beschaffungsart + +Beim Klick auf den Button "Migrieren" muss die festgelegte Beschaffungsart geprüft werden, siehe [Tätigkeiten vor Erstellung der Impfdatei](#tätigkeiten-vor-erstellung-der-impfdatei) + + + +### Mengeneinheit +#### **Spalte 2: SIVAS-Werte** +>**Widget:** +>**Typ:** Entry +>**Read only:** Ja + +>**Daten:** +>**Spaltenname in "from_siv.csv":** Mengeneinheit + +**Aufgaben beim Einlesen des Wertes aus "from_siv.csv":** +1. Es muss der Wert ab " - " entfernt werden. Beispiel: +"Stck - Stück" ---wird zu---> "Stck" + +2. Nach Entfernung muss das Kürzel in das Entry-Feld eingetragen werden + +#### **Spalte 3: Überschriebene Werte** +>**Widget-Typ:** ComboBox +>**Read only:** Ja +>**Defaultwert:** Keiner (leer) + +**Auswählbare Dropdownwerte:** + + IF Rüstcode == "SRC Standard Rüstcode" OR "Trümmerbaugruppe": + Dropdownwerte = "Stck" + ELSE IF Rüstcode == "HZS Halbzeuge Sägeteile": + IF PDM-Kategorie == "Einzelteil" OR "Kaufteil": + Dropdownwerte = alle Werte der Sektion "EinheitAusw" aus Allgemein.cfg + ELSE IF PDM-Kategorie == "Schweissbaugruppe": + Dropdownwerte = "m" + +#### **Migration** +>**Spaltenname Impfdatei:** Mengeneinheit + +Beim Klick auf den Button "Migrieren" muss die festgelegte Mengeneinheit geprüft werden, siehe [Tätigkeiten vor Erstellung der Impfdatei](#tätigkeiten-vor-erstellung-der-impfdatei) + + + +### Halbzeug +#### **Spalte 2: SIVAS-Werte** +>**Widget:** +>**Typ:** CheckButton +>**Read only:** Ja + +>**Daten:** +>**Spaltenname in "from_siv.csv":** Halbzeug + +**Aufgaben beim Einlesen des Wertes aus "from_siv.csv":** +- Der Wert "WAHR" muss in "True" (Haken gesetzt), bzw. der Wert "FALSCH" in "False" (Haken nicht gesetzt) umgewandelt werden + + +#### **Spalte 3: Überschriebene Werte** +>**Widget:** +>**Typ:** CheckButton +>**Defaultwert:** Identisch wie in Spalte "SIVAS-Werte" + +**Fallabhängiger Schreibschutz:** + + IF PDM-Kategorie == "Baugruppe" (OR "Normteil"): + Read only = True + ELSE: + Read only = False + +#### **Migration** +>**Spaltenname Impfdatei:** Halbzeug + +Beim Erstellen der Impfdatei müssen die CheckButton-Werte gemappt werden (siehe [Tätigkeiten Impfdateierstellung](#tätigkeiten-im-rahmen-der-impfdateierstellung)) + + + +### TOS-Gruppe +#### **Spalte 2: SIVAS-Werte** +>**Widget:** +>**Typ:** Entry +>**Read only:** Ja + +>**Daten:** +>**Spaltenname in "from_siv.csv":** TOS_Gruppe + +Im Entry-Feld muss der Spaltenwert "TOS_Gruppe" aus "from_siv.csv" eingetragen werden + +#### **Spalte 3: Überschriebene Werte** +>**Widget-Typ:** Entry +>**Read only:** Nein + +**Defaultwert:** + + IF TOS-Gruppe in Spalte "SIVAS-Werte" == "": + Defaultwert == 6 + ELSE: + Defaultwert == "" + +#### **Migration** +**Spaltennamen Impfdatei:** +Die zu befüllenden Spalten in der Impfdatei ergeben sich aus der angegebenen TOS-Gruppennummer. Beim Erstellen der Impfdatei müssen daher alle Felder, die Bestandteil der TOS-Gruppennummer sind, extrahiert und mit Werten befüllt werden (siehe [Tätigkeiten Impfdateierstellung](#tätigkeiten-im-rahmen-der-impfdateierstellung)) + + + +### Dispogruppe +#### **Spalte 2: SIVAS-Werte** +>**Widget:** +>**Typ:** Entry +>**Read only:** Ja + +>**Daten:** +>**Spaltenname in "from_siv.csv":** Dispogruppe + +Im Entry-Feld muss der Spaltenwert "Dispogruppe" aus "from_siv.csv" eingetragen werden + +*Aktuell ist es so vorgesehen, dass das Mapping erst bei Erstellung der Impfdatei erfolgt, während im Programm die tatsächlichen Dropdownwerte aus SIVAS angezeigt werden (z.B. 20 - Förderer +). Oder soll das Mapping bereits beim Einlesen der Werte aus "Dispogruppe erfolgen"? Gleiches gilt dann auch für das Feld "Dispolaufgruppe"* + +#### **Spalte 3: Überschriebene Werte** +>**Widget-Typ:** ComboBox +>**Read only:** Ja +>**Werte:** siehe Kommentar unten. Ansonsten Schlüssel der Sektion "Dispogruppe" in Allgemein.cfg +>**Defaultwert:** Keiner (leer) + +*Es fehlen aktuell in einer der .cfg-Dateien die SIVAS-Werte für die Dispogruppen vor dem Mapping, falls das Mapping wie im Kommentar oben beschrieben erst bei Erstellung der Impfdatei erfolgen soll* + +Wenn kein Wert im Entry-Feld der Spalte "SIVAS-Werte" eingetragen ist, soll der Hintergrund der ComboBox solange rot eingefärbt sein, bis ein Wert ausgewählt wurde. + +#### **Migration** +>**Spaltenname Impfdatei:** Dispogruppe + +Vor der Erstellung der Impfdatei muss geprüft werden, ob eine Dispogruppe vorliegt (siehe [Tätigkeiten vor Impfdateierstellung](#tätigkeiten-vor-erstellung-der-impfdatei)) + +Bei der Erstellung der Impfdatei muss ein Mapping der Dispogruppen durchgeführt werden (siehe [Tätigkeiten Impfdateierstellung](#tätigkeiten-im-rahmen-der-impfdateierstellung)) + + + +### Dispolaufgruppe +#### **Spalte 2: SIVAS-Werte** +>**Widget:** +>**Typ:** Entry +>**Read only:** Ja + +Im Entry-Feld muss der Spaltenwert "Dispolaufgruppe" aus "from_siv.csv" eingetragen werden. + +*Siehe Kommentar bei Feld "Dispogruppe"* + +#### **Spalte 3: Überschriebene Werte** +>**Widget-Typ:** ComboBox +>**Read only:** Ja +>**Werte:** siehe Kommentar unten. Ansonsten Schlüssel der Sektion "Dispolaufgruppe" in Allgemein.cfg +>**Defaultwert:** Keiner (leer) + +*Es fehlen aktuell in einer der .cfg-Dateien die SIVAS-Werte für die Dispolaufgruppen vor dem Mapping, falls das Mapping wie im Kommentar des Feldes "Dispogruppe" beschrieben erst bei Erstellung der Impfdatei erfolgen soll* + +Wenn kein Wert im Entry-Feld der Spalte "SIVAS-Werte" eingetragen ist, soll der Hintergrund der ComboBox solange rot eingefärbt sein, bis ein Wert ausgewählt wurde. + +#### **Migration** +>**Spaltenname Impfdatei:** Dispolaufgruppe + +Vor der Erstellung der Impfdatei muss geprüft werden, ob eine Dispolaufgruppe vorliegt (siehe [Tätigkeiten vor Impfdateierstellung](#tätigkeiten-vor-erstellung-der-impfdatei)) + +Bei der Erstellung der Impfdatei muss ein Mapping der Dispolaufgruppen durchgeführt werden (siehe [Tätigkeiten Impfdateierstellung](#tätigkeiten-im-rahmen-der-impfdateierstellung)) + + + +### Ersatz für +#### **Spalte 2: SIVAS-Werte** +>**Widget:** +>**Typ:** Entry +>**Read only:** Ja + +>**Daten:** +>**Spaltenname in "from_siv.csv":** ErsatzFuer + +In diesem Feld soll informativ der Spaltenwert "ErsatzFuer" aus "from_siv.csv" eingetragen werden. + +*Soll das Feld eingefärbt werden oder ein automatischer Text im Feld "Zusätzliche Informationen" erscheinen, wenn "Ersatz für" einen Wert aufweist? Wird in der Spalte "Überschriebene Werte" überhaupt ein Feld benötigt?* + +#### **Migration** +>**Spaltenname Impfdatei:** Nicht in Impfdatei enthalten + +Vor der Erstellung der Impfdatei soll zu Informationszwecken geprüft werden, ob die ersetzte Teilenummer bereits in RuleDesigner vorliegt (siehe [Tätigkeiten vor Impfdateierstellung](#tätigkeiten-vor-erstellung-der-impfdatei)) + + + +### Ersetzt durch +#### **Spalte 2: SIVAS-Werte** +>**Widget:** +>**Typ:** Entry +>**Read only:** Ja + +>**Daten:** +>**Spaltenname in "from_siv.csv":** ErsetztDurch + +In diesem Feld soll informativ der Spaltenwert "ErsetztDurch" aus "from_siv.csv" eingetragen werden. + +*Soll das Feld eingefärbt werden, oder ein automatischer Text im Feld "Zusätzliche Informationen" erscheinen, wenn "Ersetzt durch" einen Wert aufweist? Wird in der Spalte "Überschriebene Werte" überhaupt ein Feld benötigt?* + +#### **Migration** +>**Spaltenname Impfdatei:** Nicht in Impfdatei enthalten + +Vor der Erstellung der Impfdatei soll zu Informationszwecken geprüft werden, ob die Ersatz-Teilenummer bereits in RuleDesigner vorliegt (siehe [Tätigkeiten vor Impfdateierstellung](#tätigkeiten-vor-erstellung-der-impfdatei)) + + +### Hersteller +#### **Spalte 2: SIVAS-Werte** +>**Widget:** +>**Typ:** Entry +>**Read only:** Ja + +>**Daten:** +>**Spaltenname in "from_siv.csv":** Hersteller + +In diesem Feld soll der Spaltenwert "Hersteller" aus "from_siv.csv" eingetragen werden. + +#### **Spalte 3: Überschriebene Werte** +>**Widget-Typ:** ComboBox +>**Werte:** Werte aus Sektion "Hersteller" in [Hersteller.cfg](/cfg/Hersteller.cfg) +>**Defaultwert:** Keiner (leer) + +**Fallabhängiger Schreibschutz:** + + IF PDM-Kategorie == "Kaufteil": + Read only = False + ELSE: + Read only = True + +#### **Migration** +>**Spaltenname Impfdatei:** HerstellerTeilenummer + +Vor der Erstellung der Impfdatei muss geprüft werden, ob der Hersteller in RuleDesigner angelegt wurde (siehe [Tätigkeiten vor Impfdateierstellung](#tätigkeiten-vor-erstellung-der-impfdatei)) + + + +### Hersteller Teilenummer +#### **Spalte 2: SIVAS-Werte** +>**Widget:** +>**Typ:** Entry +>**Read only:** Ja + +>**Daten:** +>**Spaltenname in "from_siv.csv":** HerstellerTeilenummer + +In diesem Feld soll der Spaltenwert "HerstellerTeilenummer" aus "from_siv.csv" eingetragen werden. + +#### **Spalte 3: Überschriebene Werte** +>**Widget-Typ:** ComboBox +>**Werte:** Werte aus Sektion "Hersteller" in [Hersteller.cfg](/cfg/Hersteller.cfg) +>**Defaultwert:** Keiner (leer) + +**Fallabhängiger Schreibschutz:** + + IF PDM-Kategorie == "Kaufteil": + Read only = False + ELSE: + Read only = True + +#### **Migration** +>**Spaltenname Impfdatei:** HerstellerTeilenummer + +Vor der Erstellung der Impfdatei muss geprüft werden, ob der Hersteller in RuleDesigner angelegt wurde (siehe [Tätigkeiten vor Impfdateierstellung](#tätigkeiten-vor-erstellung-der-impfdatei)) + + + +### Werkstoffdiskrepanz +>**Widget-Typ:** CheckButton +>**Defaultwert:** False (Haken nicht gesetzt) +### Werkstofftyp +### Material +### Alternativwerkstoff +### Oberfläche +### Farbe +### Alternativfarbe +### Halbzeug ohne Sägeliste +**Allgemeiner Hinweis:** +Beachte Mapping der CheckButton-Werte bei Erstellung der Impfdatei (siehe [Tätigkeiten-Impfdateierstellung](#tätigkeiten-im-rahmen-der-impfdateierstellung)) + +#### **Spalte 2: SIVAS-Werte** +Wertfestlegung, siehe CheckButton-Mapping in [Initialisierung SIVAS-Teilestammwerte](#initialisierung-sivas-teilestammwerte) +### Rüstcode +### Fertigungsart +### FOS-Gruppe +### Kalkulationsart +### Version +### Änderungsindex +### Änderungstext +### Freigabevermerk + + +## Button Migrieren + +### Tätigkeiten vor Erstellung der Impfdatei + +**Allgemeine Hinweise:** +Wenn die Migration nicht abgeschlossen werden darf, bevor fehlende oder fehlerhafte Feldeintragungen behoben wurden, soll beim Klick auf den Button "Migrieren" eine ERROR-Messagebox erscheinen. Mehrere, gleichzeitig auftretende Fehler sind in einer Messagebox zusammenzufassen. Sollten Neben ERROR-Messageboxen gleichzeitig weitere Messagebox-Typen (z.B. YESNO) auftreten sind diese jeweils als separate Messageboxen auszugeben. + +1. Feldprüfungen + + **Bezeichnung** + Wenn Länge der Sivas-Bezeichnung > 50 ist und im Feld der Spalte "Überschriebene Werte" keine kürzere Bezeichnung eingetragen wurde soll beim Klick auf Button "Migrieren" eine ERROR-Messagebox, z.B. mit Text: *"Bezeichnung besitzt mehr als 50 Zeichen. Bitte verkürzen."* erscheinen. Die Migration darf nicht abgeschlossen werden, bevor eine kürzere Bezeichnung eingetragen wurde + + **Mengeneinheit** + Wenn in der Spalte "Überschriebene Werte" nur ein Dropdownwert (z.B. "Stck") zulässig ist und in der Spalte "SIVAS-Werte" ein davon abweichender Wert eingetragen ist, soll eine Fehlermeldung ausgegeben werden, z.B. mit Text *"Mengeneinheit in SIVAS prüfen"* + *Passt eine solche Fehlermeldung? Kann die Mengeneinheit in Sivas nachträglich geändert werden? Soll die Fehlermeldung überspringbar sein?* + + **Beschaffungsart** + Falls die nachfolgenden Fälle zutreffen muss eine Fehlermeldung, z.B. mit Text "Bitte Beschaffungsart in Sivas korrigieren": + + IF PDM-Kategorie == "Baugruppe" OR "Schweissbaugruppe": + IF Beschaffungsart == "Kaufteil" + Fehlermeldung = True + ELSE: + Fehlermeldung = False + ELSE IF PDM-Kategorie == "Kaufteil": + IF Beschaffungsart == "Eigenbau" + Fehlermeldung = True + ELSE: + Fehlermeldung = False + + **Dispogruppe und Dispolaufgruppe** + Wenn das Feld Dispogruppe oder Dispolaufgruppe in der Spalte "SIVAS-Werte" leer ist und in der Spalte "Überschriebene Werte" kein neuer Wert ausgewählt wurde soll eine Fehlermeldung, z.B. mit Text "Bitte Dispogruppe auswählen", bzw. "Bitte Dispolaufgruppe wählen" erscheinen, die eine Migration verhindert. + + **Ersatz für und Ersetzt durch** + Wenn die ersetzte Teilenummer (Wenn "Ersatz für" befüllt), bzw. die Ersatz-Teilenummer (wenn "Ersetzt durch" befüllt) noch nicht in der Datei "RD_Teilenummern.csv" existieren, soll eine YESNO-Messagebox, z.B. mit Text *"Ersetzte Teilenummer {Teilenummer in Feld "Ersatz für"} existiert noch nicht in RuleDesigner. Migration trotzdem durchführen?"*, bzw. *"Ersatz-Teilenummer {Teilenummer in "Ersetzt durch"} exisitert noch nicht in RuleDesigner. Migration trotzdem durchführen?"* erscheinen. Beim Klick auf "Ja" soll die Migration durchgeführt werden, bei "Nein" nicht. + + **Hersteller** + Wenn der angegebene Hersteller in der Spalte "SIVAS-Werte" nicht in der Datei [Hersteller.cfg](/cfg/Hersteller.cfg) existiert muss eine ERROR-Messagebox, z.B. mit Text "Hersteller nicht in RuleDesigner enthalten. Bitte nachpflegen" erscheinen, die eine Migration verhindert. + *Theoretisch müsste bevor die Fehlermeldung kommt eine Datei gezogen werden, in der alle Hersteller aufgelistet sind. Wir haben aktuell aber keine solche Datei, da die Werte direkt im RD-CodeDesigner definiert sind. Wenn wir die Fehlermeldung aber nicht bringen, wird ein Wert migriert, der nicht in RuleDesigner exisitert, was auch nicht gut ist* + + + +### Tätigkeiten im Rahmen der Impfdateierstellung + +**Allgemeine Hinweise:** +- Die Spalte "überschriebene Werte" gewinnt, d.h. wenn sich sowohl in der Spalte "SIVAS-Werte" als auch in der Spalte "Überschriebene Werte" Werte befinden, wird immer der Wert aus der Spalte "Überschriebene Werte" in die Impfdatei geschrieben / migriert. + +**Tätigkeiten:** + +1. Ergänzung Wert in Spalte "Path" der Impfdatei: + + >**Spaltenname Impfdatei:** Path + + Path = Ursprungsverzeichnis, aus dem das Solid Edge-DataPrepUtility die CAD-Dateien in das Zielverzeichnis kopiert + + **Hinweis:** + Im anschließenden Pseudocode gelten die nachfolgend aufgelisteten Umgebungsvariablen. + + %ASSEMBLY_TEMPLATE% = \\\ssg.local\freigaben\Abteilungen\Entwicklung\CAD\Standards\SolidEdge\Template\DIN Metric + %PART_TEMPLATE% = \\\ssg.local\freigaben\SIVAS_CAD_EDM\Migration\06_3D_Vorlagen + + Der Pfad ergibt sich durch folgende Logik: + + IF PDM-Kategorie == "Baugruppe" OR "Schweissbaugruppe": + Path = %ASSEMBLY_TEMPLATE% + + ELSE IF PDM-Kategorie == "Einzelteil" OR "Kaufteil": + + IF Aus Halbzeug == True OR "Neuaufbau" == True: + Path = %PART_TEMPLATE% + + ELSE: + Path = Pfad aus Feld "3D-Modell" ohne Dateiname + -endung + +2. Ergänzung Wert in Spalte "Filename" der Impfdatei: + + >**Spaltenname Impfdatei:** Filename + + Filename = Dateiname der Solid Edge-Datei im Ursprungsverzeichnis (siehe Wert in Spalte "Path") + + Der Filename ergibt sich durch folgende Logik: + + IF PDM-Kategorie == "Baugruppe" OR "Schweissbaugruppe": + Filename = "baugruppe.asm" + + ELSE IF PDM-Kategorie == "Einzelteil" OR "Kaufteil": + + IF Aus Halbzeug == True OR Neuaufbau == True: + Filename = "ET_mit_Volumen.par" + + ELSE: + Filename = Dateiname + Dateiendung aus Pfad im Feld "3D-Modell" + +3. Ergänzung Wert in Spalte "New path" der Impfdatei: + + >**Spaltenname Impfdatei:** New path + + New path = Zielverzeichnis, von dem aus RuleDesigner die Solid Edge-Dateien zum Erstellen des Datensatzes einliest. + + **Hinweis:** + Im anschließenden Pseudocode gelten die nachfolgend aufgelisteten Umgebungsvariablen. Alle anderen sind Windows-Umgebungsvariablen + + %PRODUKTIV% = \\ssg.local\freigaben\SIVAS_CAD_EDM\Migration\02_Bedarfspool\ + %SCHULUNG% = \\ssg.local\freigaben\SIVAS_CAD_EDM\Schulung\Migration\02_Bedarfspool + + Der Pfad ergibt sich durch folgende Logik: + + IF Datenbank == "Produktiv": + New_path = %PRODUKTIV%\%USERNAME% + ELSE: + New_path = %SCHULUNG% + + Wenn User, der migriert, noch keinen Ordner in %PRODUKTIV% besitzt, muss dieser automatisch angelegt werden. + *Wann soll das passieren? Bei Programmstart oder bei Klick auf "Migrieren"?* + +4. Ergänzung Wert in Spalte "New Filename" der Impfdatei: + + >**Spaltenname Impfdatei:** New Filename + + New Filename = Dateiname der Solid Edge-Datei im Zielverzeichnis (siehe Wert in Spalte "New path") + + Der Dateiname setzt sich aus dem Wert im Feld "Teilenummer" und der Dateiendung der Solid Edge-Datei, die im Wert des Feldes "3D-Modell" enthalten ist, zusammen. + +5. Mapping von CheckButton-Werten: + Bei allen Feldern, die als CheckButton vorliegen (z.B. "Halbzeug" und "Halbzeug ohne Sägeliste") muss der Wert "True" (Haken gesetzt) in "Ja" und der Wert "False" (Haken nicht gesetzt) als leerer String "" in die Impfdatei geschrieben werden. + +6. Ergänzung Wert in Spalte "Bezeichnung4" der Impfdatei + In den nachfolgend aufgeführten Fällen muss die Spalte "Bezeichnung4" der Impfdatei mit dem Kürzel "- BG" befüllt werden: + + IF PDM-Kategorie == "Baugruppe" OR "Schweissbaugruppe": + Bezeichnung4 == "- BG" + ELSE: + Bezeichnung4 == "" + +7. Ergänzung Werte in den Spalten "Document Number", "Revision", Project Name, Teamcenter Item Type, Part Type, TC_ImportTime, Last Saved Version, Subject, Category, Keywords + +7. Aufschlüsselung der TOS-Gruppennummer: + + Die Zahlen der TOS-Gruppennummer beschreiben einen Pfad, d.h. die nächste Zahl/Gruppe ist immer das Kind der aktuellen Zahl/Gruppe. Jede Zahl/Gruppe verfügt über ein eigenes RuleDesigner-Feld, das in der Impfliste befüllt werden muss. + + Nachfolgende Tabelle beschreibt anhand der Gruppennummer 3303, welche Felder (siehe Feldnamen) jeweils welche Werte erhalten müssten: + + |Nr. |Feldname |Wert | + |----:|---------------------------|-------------------------| + |3 |TOS-Gruppe | Schönenberger Produkt | + |33 |TOS_Schoenenberger_Produkt | ILS IntraLogistikSystem | + |330 |TOS_ILS | ILS 2.0 | + |3303 |TOS_ILS_2 | Laufprofil 2.0 | + + Eine Auflistung mit allen Gruppen und deren Werten / Kindern befindet sich in der Datei [TOS-Gruppen.json](../cfg/TOS-Gruppen.json). + + **Anmerkung:** + Felder, die nicht Teil der angegebenen TOS-Gruppennummer sind, dürfen trotzdem in der Impfdatei vorhanden sein, solange sie keinen Wert aufweisen. Grund: + Das Solid Edge "DataPrepUtility" berücksichtigt beim Schreiben der Paramter in die Solid Edge-Dateien keine leeren Spalten/Werte. + +8. Mapping Dispogruppen-Werte + + Der festgelegte Wert im Feld "Dispogruppe" muss bis einschließlich " - " gekürzt werden. Beispiel: + "20 - Förderer" ---wird zu---> "Förderer" + + **Sonderfall:** + - "60 - Kleinteile" ---wird zu---> "Kleinteil" ("e" am Ende von "Kleinteile" entfällt) + +9. Mapping Dispolaufgruppen-Werte + + Der festgelegte Wert des Feldes "Dispolaufgruppe" muss bis einschließlich " - " gekürzt werden. Beispiel: + "20 - Intra Logistic System + Alt-HFS" ---wird zu---> "Intra Logistic System + alt-HFS" + + **Sonderfälle** + - "40 - Spinnereikomponenten" ---wird zu---> "Spinnereikomponente" ("n" am Ende von "Spinnereikomponenten" entfällt) + - "20 - Intra Logistic System + Alt-HFS" ---wird zu---> "Intra Logistic System + alt-HFS" ("a" in "alt" wird kleingeschrieben) + + +### Tätigkeiten nach der Impfdateierstellung + +1. Kopieren des aktuellen Standes der RuleDesigner-Datenbank (nachdem RDX-Prozess ausgeführt wurde). + + +## Button "Zurücksetzen" +## Button ""