# Spezifikationsdokument Migrationstool ## Treeview Beim Doppelklick auf eine bereits migrierte Teilenummer dürfen die Formularfelder nicht befüllt werden. ## Formularfelder **Allgemeine Hinweise:** 1. Für jedes der nachfolgend aufgelisteten Feldnamen (z.B. "Teilenummer") soll ein Label-Widget in der 1. Spalte "Feld" der GUI erstellt werden. Labeltext ist jeweils der Feldname. Ausnahme ist das Feld "Baugruppennummer", bei dem das Label und ein Entry-Feld oberhalb des Treeviews liegen. 2. Die eingetragenen Feldwerte sollen in einer json-Datei gespeichert werden. Wird eine Teilenummer geöffnet/bearbeitet, für die bereits eine json-Datei exisitert, müssen die Felder mit den Werten aus dieser json-Datei befüllt werden. Nur beim erstmaligen Öffnen/Bearbeiten einer Teilenummer dürfen Felder geleert oder auf den Defaultwert umgestellt werden. Art und Umfang dieser initialen Feldanpassungen wird in den nachfolgenden Feldspezifikationen näher beschrieben. 3. Defaultwert bedeutet, dass beim Bearbeiten einer **neuen** Teilenummer, die noch keine json-Datei besitzt, ein bestimmter, voreingestellter Wert eingetragen / vorausgewählt ist 4. "state" beschreibt in den nachfolgenden Feldspezifikationen den Parameter "state" des tk-Widgets. Dieser Parameter definiert, in welchem Umfang ein User mit dem Widget interagieren kann 5. "from_siv.csv" beschreibt nachfolgend die CSV-Datei, welche die Teilestamminformationen zu einer Teilenummer enthält. Die CSV wird durch den Sivas-internen Prozess "ExcelUeb" von Hr. Jakob erzeugt (siehe auch [get_sivas_teilestamm.py](../lib/get_sivas_teilestamm.py)) --- ### Baugruppennummer >**Widgets:** Entry >**Typ 1:** Entry >**Zulässiger Datentyp:** Integer >**state:** keiner >**Position:** Oberhalb des Treeviews und unterhalb des zugehörigen Labels >**Typ 2:** Button >**Icon/Bild:** Lupe Im Feld "Baugruppennummer" wird die SIVAS-Teilenummer (die zusammen mit den Stücklistenpositionen) migriert werden soll. **Funktionsweise** Nach der Eingabe der Baugruppennummer und anschließendem Klick auf den Button mit Lupe soll die Stückliste der Teilenummer über das Sivas2json-Programm generiert und die aktuelle Version der RD_Teilenummer.csv in das [data-Verzeichnis](../data/) kopiert werden. Die Stücklistenstruktur der Teilenummer soll dann als Treeview abgebildet werden. Besitzt die eingetragenen Teilenummer keine Stückliste, soll im Treeview nur diese Nummer dargestellt werden / auswählbar sein. Zur Erstellung des Treeviews kann in diesem Fall keine json-Datei des sivas2json-Programms verwendet werden, da dieses bei Teilenummern ohne Stückliste keine Dateien generieren kann und stattdessen eine Fehlermeldung ausgibt. --- #### **Migration** >**Spaltenname Impfdatei:** Wird nicht in Impfdatei berücksichtigt --- ### Teilenummer >**Pflichtfeld:** Ja, immer --- #### **Spalte 2: SIVAS-Werte** >**Widget-Typ:** Entry >**state:** readonly >**Wert:** Aus Spalte "Teilenummer" in "from_siv.csv" Teilenummern, die nicht vom Datentyp Integer sind und nicht aus 9 Zahlen bestehen, sollen im Treeview orange eingefärbt werden. Beim Doppelklick auf diese Teilenummern im Treeview darf nichts passieren --- #### **Migration** >**Spaltenname Impfdatei:** Teilenummer --- ### Datenbank >**Pflichtfeld:** Ja, immer --- #### **Spalte 3: Überschriebene Werte** >**Widget:** >**Typ:** RadioButton >**Werte:** Produktiv, Schulung >**Defaultwert:** Produktiv Die Werte steuern das Zielverzeichnis (Spalte "New Path" in Impfdatei), aus dem RuleDesigner die CAD-Modelle zur Datensatzerstellung einliest. #### **Migration** >**Spaltenname Impfdatei:** keine eigene Spalte Wird zur Definierung des Wertes in der Spalte "New Path" benötigt, siehe [Impfdateierstellung - New Path](#new-path) --- ### PDM-Kategorie >**Pflichtfeld:** Ja, immer --- #### **Spalte 3: Überschriebene Werte** >**Widget-Typ:** ComboBox >**Werte:** Sektion "Kategorien" in [Allgemein.cfg](../cfg/Allgemein.cfg) >**Defaultwert:** Leer -> Kategoriefestlegung kann nicht automatisch erfolgen >**state:** readonly Aus ComboBox wählt User die RuleDesigner-Kategorie aus, der die Teilenummer zugeordnet werden soll. --- #### **Migration** >**Spaltenname Impfdatei:** KategorieNE --- ### Neuaufbau >**Pflichtfeld:** Nein --- >**Widget:** >**Typ:** CheckButton >**Defaultwert:** Haken nicht gesetzt **Logik, die steuert, welcher state im CheckButton gilt und welcher Wert bei state = disabled gilt:** IF PDM-Kategorie != "Einzelteil" OR "Kaufteil": state = disabled Wert = False (Haken nicht gesetzt) ELSE: state = keiner --- #### **Migration** >**Spaltenname Impfdatei:** Keine eigene Spalte Haken in CheckButton definiert je nach Situation den Pfad zum 3D-Modell. Dies ist im Feld [3D-Modell](#3d-modell) beschrieben. --- ### Aus Halbzeug >**Pflichtfeld:** Nein --- >**Widget:** >**Typ:** CheckButton >**Defaultwert:** False (Haken nicht gesetzt) **Logik, die state in CheckButton steuert und definiert, welcher Wert bei state = disabled gilt:** IF PDM-Kategorie == "Einzelteil": state = keiner ELSE IF PDM-Kategorie != "Einzelteil": state = disabled Wert = False (Haken nicht gesetzt) --- #### **Migration** >**Spaltenname Impfdatei:** HalbzeugInternAngabe - Der Feldwert (Haken gesetzt / Haken nicht gesetzt) muss vor dem Schreiben in die Spalte "HalbzeugInternAngabe" der Impfdatei gemappt werden, siehe [Impfdateierstellung - Aus Halbzeug](#aus-halbzeug-1) - Haken in CheckButton definiert je nach Situation den Pfad zum 3D-Modell. Dies ist im Feld [3D-Modell](#3d-modell) beschrieben. --- ### Halbzeugnummer >**Pflichtfeld:** Nein --- >**Widget:** >**Typ:** Entry >**Defaultwert:** "" (leer) **Logik, die Text in Entry steuert:** IF Aus Halbzeug == True (Haken gesetzt) AND Kind der aktuellen Teilenummer in RD_Teilenummern.csv: Text = Teilenummer des Kindes ELSE: Text = "" **Logik, die state im Entry steuert:** IF Aus Halbzeug == Haken gesetzt: state = keiner ELSE: state = disabled --- #### **Migration** >**Spaltenname Impfdatei:** HalbzeugIntern --- ### Halbzeuglänge >**Pflichtfeld:** Nein --- >**Widget:** >**Typ:** Entry >**Defaultwert:** "" (leer) **Logik, die Text in Entry steuert:** IF Aus Halbzeug == Haken gesetzt AND Kind der aktuellen Teilenummer in RD_Teilenummern.csv: Text = Wert aus json-Key "Länge" des Kindes ELSE: Text = "" **Logik, die state im Entry steuert:** IF Aus Halbzeug == Haken gesetzt: state = keiner ELSE: state = disabled --- #### **Migration** >**Spaltenname Impfdatei:** Kopiertes_Teil_1_y_Skalierung --- ### Halbzeugoberfläche >**Pflichtfeld:** Nein --- >**Widget:** >**Typ:** ComboBox >**Werte:** Sektion "Oberflaechenbehandlungen" aus [Oberflächenbehandlung.cfg](../cfg/Oberflächenbehandlung.cfg) >**Defaultwert:** "" (leer) **Logik, die steuert, welchen state die ComboBox aufweist und welcher Wert bei state = disabled in Textfeld der ComboBox gilt:** IF Aus Halbzeug == True (Haken gesetzt): state = readonly ELSE: state = disabled Wert = "" --- #### **Migration** >**Spaltenname Impfdatei:** Oberflaechenbehandlung --- ### Halbzeugfarbe **Logik, die steuert, wann es sich um ein Pflichtfeld handelt:** IF Halbzeugoberfläche == "eloxieren" OR "lackieren" OR "pulverbeschichten": Pflichtfeld = True ELSE: Pflichtfeld = False >**Widget:** >**Typ:** ComboBox >**Defaultwert:** Keiner **Logik, die steuert, welchen state die ComboBox aufweist und welcher Wert bei state = disabled in Textfeld der ComboBox gilt:** IF Aus Halbzeug == True (Haken gesetzt): IF Halbzeugoberfläche == "eloxieren" OR "lackieren" OR "pulverbeschichten": state = readonly ELSE: state = disabled Wert = "" ELSE: state = disabled Wert = "" **Logik, die steuert, welche Dropdownwerte in ComboBox auswählbar sind:** IF Halbzeugoberfläche == "eloxieren": Werte = Sektion "FarbeEloxieren" in Farben.cfg ELSE IF Halbzeugoberfläche == "lackieren" OR "pulverbeschichten": Werte = Sektion "Farbauswahl" in Farben.cfg ELSE: Werte = keine Dropdownwerte in ComboBox --- #### **Migration** >**Spaltenname Impfdatei:** Farbe --- ### Lebenszyklusstatus >**Pflichtfeld:** Ja, immer --- >**Widget:** >**Typ:** RadioButton >**Werte:** Prototyp, Serie >**Defaultwert:** Keiner --- #### **Migration** >**Spaltenname Impfdatei:** Serien-Status --- ### 3D-Modell >**Pflichtfeld:** Ja, immer --- >**Widgets:** >**Typen:** ComboBox, Button **Beispiel:** ![Modellsuche](../doc/Pictures/Open_3D_Model.jpg) **Auswählbare Dateitypen bei Klick auf Button "Durchsuchen":** Es sollen ausschließlich .par oder .asm-Dateien auswählbar sein: ![choosable_file_extensions](../doc/Pictures/3D-model_choosable_file_extensions.jpg) In tk wie folgt erzielbar: `filedialog.askopenfilename(filetypes=[("Part-Dokumente", ".par"), ("Assembly-Dokumente", ".asm")])` **Nachfolgende Logik definiert:** - state der ComboBox je nach Situation (readonly / disabled) - Defaultwert (Wert, der im Textfeld der ComboBox angezeigt werden soll, bevor ein Dropdownwert ausgewählt wurde) - Dropdownwerte (Quelle, wo die Dropdownwerte zu finden sind, bzw. direkt die Werte) IF PDM-Kategorie == "Baugruppe" OR "Schweissbaugruppe": Defaultwert = \\ssg.local\freigaben\Abteilungen\Entwicklung\CAD\Standards\SolidEdge\Template\DIN Metric\baugruppe.asm Dropdownwerte = keine state_ComboBox = disabled state_Button = disabled ELSE IF PDM-Kategorie == "Kaufteil": Defaultwert = \\ssg.local\freigaben\SIVAS_CAD_EDM\Migration\06_3D_Vorlagen\ET_mit_Volumen.par Dropdownwerte = keine state_ComboBox = disabled state_Button = disabled ELSE IF PDM-Kategorie == "Einzelteil": IF Aus Halbzeug == True (Haken gesetzt) OR Neuaufbau == True (Haken gesetzt): Defaultwert = \\ssg.local\freigaben\SIVAS_CAD_EDM\Migration\06_3D_Vorlagen\ET_mit_Volumen.par Dropdownwerte = keine state_ComboBox = disabled state_Button = disabled ELSE: Defaultwert = "" Dropdownwerte = Dateipfade von allen .par-Dateien, die die aktuelle Teilenummer im Dateinamen aufweisen und sich gleichzeitig in einem der rekursiv durchsuchten Pfade aus der Sektion "3D-Modelle" in "Zielpfade.cfg" befinden. state_ComboBox = readonly state_Button = keiner IF Button "Durchsuchen" geklickt und benutzerdefinierte Solid Edge-Datei gewählt: Defaultwert = Dateipfad der gewählten Solid Edge-Datei --- #### **Migration** **Spaltennamen Impfdatei:** keine eigene Spalte - Definiert Wert in Spalte "Path" der Impfdatei, siehe [Impfdateierstellung - Path](#path) - Definiert Wert in Spalte "Filename" der Impfdatei, siehe [Impfdateierstellung - Filename](#filename) --- ### Bezeichnung 1 >**Pflichtfeld:** Ja, immer --- #### **Spalte 2: SIVAS-Werte** >**Widget:** >**Typ:** Entry >**state:** readonly >**Wert:** Aus Spalte "Bezeichnung1" in "from_siv.csv" **Aufgaben beim Einlesen des Wertes 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* --- #### **Spalte 3: Überschriebene Werte** >**Widget** >**Typ:** Entry >**Defaultwert:** "" (leer) **Logik, die bestimmt, wie viele Zeichen in Entry eingetragen werden dürfen:** IF PDM-Kategorie == "Baugruppe" OR "Schweissbaugruppe": Längenbeschränkung = 45 Zeichen ELSE IF PDM-Kategorie == "Einzelteil" OR "Kaufteil": Längenbeschränkung = 50 Zeichen Wenn die Bezeichnungslänge in der Spalte "SIVAS-Werte" größer als die oben beschriebene Längenbeschränkung des Entry-Feldes ist, soll im Entry-Feld der Spalte "Überschriebene Werte" ein roter Platzhalter-Text erscheinen, solange sich kein Text vom User in das Entry-Feld eingetragen wurde. ![test](./Pictures/Laengenpruefung.gif) **Hinweis:** GIF dient nur zur kurzen Veranschaulichung, wie der Platzhaltertext aussehen könnte und wurde (mit abgewandeltem Text) durch Code aus folgender [Stackoverflow-Antwort](https://stackoverflow.com/a/47928390) erstellt -> muss ggf. angepasst werden, da in der Antwort kein ttk verwendet wurde! --- #### **Migration** >**Spaltenname in Impfdatei:** Bezeichnung2 - Es muss vor der Erstellung der Impfdatei eine Längenprüfung durchgeführt werden(siehe auch [Längenprüfung Bezeichnung](#bezeichnung-1-1)) - Bei PDM-Kategorie = "Baugruppe" und "Schweissbaugruppe" muss die Spalte "Bezeichnung4" in der Impfdatei mit "- BG" befüllt werden, siehe [Impfdateierstellung - Bezeichnung4](#bezeichnung4) - Die Bezeichnung muss in die Spalte "Title" der Impfdatei eingetragen werden, siehe [Impfdateierstellung - Title](#title) --- ### Bezeichnung 2 >**Pflichtfeld:** Nein --- #### **Spalte 2: SIVAS-Werte** >**Widget:** >**Typ:** Entry >**state:** readonly >**Wert:** Aus Spalte "Bezeichnung2" in "from_siv.csv" Feld dient lediglich zur informativen Darstellung des Wertes aus dem Sivas-Feld "Bezeichnung2". --- #### **Migration** >**Spaltenname Impfdatei:** Wird nicht in Impfdatei berücksichtigt --- ### Halbzeug ohne Sägeliste >**Pflichtfeld:** Ja, immer --- #### **Spalte 2: SIVAS-Werte** >**Widget:** >**Typ:** Entry >**state:** disabled >**Wert:** Aus Spalte "HzOhneSaegeliste" in "from_siv.csv" **Aufgaben beim Einlesen des Wertes aus "from_siv.csv":** Der Wert aus der Spalte "HzOhneSaegeliste" in "from_siv.csv" muss in gemappter / umgewandelter Form in das Entry-Feld der Spalte "SIVAS-Werte" eingetragen werden: |Wert in "from_siv.csv" |Neuer Wert in Spalte "SIVAS-Werte"| |:--------------------------------|:---------------------------------| |J |Sägeliste nicht benötigt | |N |Sägeliste benötigt | --- #### **Spalte 3: Überschriebene Werte** >**Widget-Typ:** ComboBox >**Defaultwert:** "" (leer) **Nachfolgende Logik definiert:** - state der ComboBox je nach Situation (readonly / disabled) - Dropdownwerte (Quelle, wo die Dropdownwerte zu finden sind, bzw. direkt die Werte) IF PDM-Kategorie == "Baugruppe": Dropdownwerte = None (keine Werte) state = disabled ELSE IF PDM-Kategorie != "Baugruppe": IF Rüstcode == "HZS Halbzeuge Sägeteile": Dropdownwerte = Sektion "HalbzeugOhneSaegeliste" aus Allgemein.cfg state = readonly ELSE IF Rüstcode == "SRC Standard Rüstcode": Dropdownwerte = None (keine Werte) state = disabled --- #### **Migration** >**Spaltenname Impfdatei:** HalbzeugOhneSaegeliste - Beim Klick auf den Button "Migrieren" muss der Feldwert geprüft werden, siehe [Feldprüfung Beschaffungsart](#halbzeug-ohne-sc3a4geliste-1) --- ### Rüstcode >**Pflichtfeld:** Ja, immer --- #### **Spalte 2: SIVAS-Werte** >**Widget:** >**Typ:** Entry >**state:** disabled >**Wert:** Aus Spalte "Ruestcode" in "from_siv.csv" --- #### **Spalte 3: Überschriebene Werte** >**Widget-Typ:** ComboBox >**state:** readonly **Nachfolgende Logik definiert:** - Dropdownwerte (Quelle, wo die Dropdownwerte zu finden sind, bzw. direkt die Werte) IF PDM-Kategorie == "Baugruppe": Dropdownwerte = Sektion "RuestcodeBaugruppe" in Allgemein.cfg ELSE IF PDM-Kategorie != "Baugruppe": Dropdownwerte = Sektion "RuestcodeStandard" in Allgemein.cfg **Nachfolgende Logik definiert:** - Defaultwert (Wert, der im Textfeld der ComboBox angezeigt wird, bevor ein Dropdownwert ausgewählt wurde) IF Wert aus Spalte "Ruestcode" in "from_siv.csv" == "" OR Wert aus Spalte "Truemmer" in from_siv.csv == "J": IF PDM-Kategorie == "Baugruppe": Defaultwert = "Trümmerbaugruppe" ELSE IF PDM-Kategorie != "Baugruppe": Defaultwert = "" (leer) + INFO-messagebox anzeigen, siehe nachfolgendes Bild: **messagebox-Text:** Bitte Rüstcode auswählen! ![info_ruestcode](../doc/Pictures/info_ruestcode.jpg) ELSE: Defaultwert = "" (leer) --- #### **Migration** >**Spaltenname Impfdatei:** RuestcodeAusw Es muss geprüft werden, ob ein zulässiger Rüstcode eingetragen ist, siehe [Feldprüfung Rüstcode](#ruestcode) --- ### Fertigungsart **Logik, die steuert, wann es sich um ein Pflichtfeld handelt:** IF PDM-Kategorie == "Einzelteil" OR "Schweissbaugruppe": Pflichtfeld = True ELSE IF PDM-Kategorie == "Baugruppe" OR "Kaufteil": Pflichtfeld = False --- #### **Spalte 2: SIVAS-Werte** >**Widget:** >**Typ:** Entry >**state:** disabled >**Wert:** Aus Spalte "Fertigungsart" in "from_siv.csv" --- #### **Spalte 3: Überschriebene Werte** >**Widget-Typ:** ComboBox **Nachfolgende Logik definiert:** - Dropdownwerte (Quelle, wo die Dropdownwerte zu finden sind, bzw. direkt die Werte) IF PDM-Kategorie == "Baugruppe": Dropdownwerte = Sektion "FertigungsartenBaugruppe" in Fertigungsarten.cfg ELSE IF PDM-Kategorie == "Einzelteil": Dropdownwerte = Schlüssel aus Sektion "Fertigungsarten" in Fertigungsarten.cfg ELSE IF PDM-Kategorie == "Kaufteil" OR "Schweissbaugruppe": Dropdownwerte = None (keine Werte) **Nachfolgende Logik definiert:** - Defaultwert (Wert, der im Textfeld der ComboBox angezeigt werden soll, bevor ein Dropdownwert ausgewählt wurde) IF PDM-Kategorie == "Schweissbaugruppe": IF Wert aus Spalte "Fertigungsart" in "from_siv.csv" == "" OR != "schweißen": Defaultwert = "schweißen" ELSE: Defaultwert = "" (leer) ELSE IF PDM-Kategorie != "Schweissbaugruppe": Defaultwert == "" (leer) **Nachfolgende Logik definiert:** - state der ComboBox je nach Situation (readonly / disabled) IF PDM-Kategorie == "Kaufteil" OR "Schweissbaugruppe": state = disabled ELSE IF PDM-Kategorie == "Baugruppe" OR "Einzelteil": state = readonly --- #### **Migration** >**Spaltenname Impfdatei:** Fertigungsart - Der Feldwert muss vor Erstellung der Impfdatei geprüft werden, siehe [Feldprüfung Fertigungsart](#fertigungsart-1) - Der Wert muss vor dem Eintragen in die Impfdatei gemappt / umgewandelt werden, siehe [Impfdateierstellung - Fertigungsart](#fertigungsart-2) --- ### Allgemeintoleranz **Logik, die steuert, wann es sich um ein Pflichtfeld handelt:** IF PDM-Kategorie == "Einzelteil" OR "Schweissbaugruppe": Pflichtfeld = True ELSE IF PDM-Kategorie == "Baugruppe" OR "Kaufteil": Pflichtfeld = False --- #### **Spalte 3: Überschriebene Werte** >**Widget-Typ:** ComboBox **Nachfolgende Logik definiert:** - Dropdownwerte (Quelle, wo die Dropdownwerte zu finden sind, bzw. direkt die Werte) IF PDM-Kategorie == "Baugruppe": Dropdownwerte = Sektion "AllgemeintoleranzBaugruppe" in Fertigungsarten.cfg ELSE IF PDM-Kategorie == "Kaufteil" OR "Schweissbaugruppe": Dropdownwerte = None (keine Werte) ELSE IF PDM-Kategorie == "Einzelteil": Dropdownwerte = siehe nachfolgende Tabelle **Hinweis:** Bei [PDM-Kategorie](#pdm-kategorie) "Einzelteil" hängt die Allgemeintoleranz von der [Fertigungsart](#fertigungsart) ab. In der nachfolgenden Tabelle ist aufgelistet, in welcher Sektion der Datei [Fertigungsarten.cfg](../cfg/Fertigungsarten.cfg) die Allgemeintoleranzwerte definiert sind, die bei den jeweiligen Fertigungsarten in der ComboBox auswählbar sein sollen: |Wert im Feld [Fertigungsart](#fertigungsart) |Sektion in [Fertigungsarten.cfg](../cfg/Fertigungsarten.cfg) | |---------------------------------------------|-------------------------------------------------------------| |3D - 3D drucken |Allgemeintoleranz3DDruck | |BI - biegen |AllgemeintoleranzSpanen | |DR - drehen |AllgemeintoleranzSpanen | |EX - extrudieren |AllgemeintoleranzExtrudieren | |FR - fräsen |AllgemeintoleranzSpanen | |GI - gießen |AllgemeintoleranzGiessen | |LW - laser- und wasserstrahlschneiden |AllgemeintoleranzSpanen | |PR - verpressen |AllgemeintoleranzVerpressen | |SA - sägen |AllgemeintoleranzSpanen | |SN - strangpressen |AllgemeintoleranzStrangpressen | |SP - spritzgießen |AllgemeintoleranzSpritzgiessen | |ST - stanzen |AllgemeintoleranzStanzen | **Nachfolgende Logik definiert:** - Defaultwert (Wert, der im Textfeld der ComboBox angezeigt werden soll, bevor ein Dropdownwert ausgewählt wurde) IF PDM-Kategorie == "Baugruppe" OR "Kaufteil": Defaultwert = "" (leer) ELSE IF PDM-Kategorie == "Schweissbaugruppe": Defaultwert = "EN ISO 13920-BF" ELSE IF PDM-Kategorie == "Einzelteil": Defaultwert = siehe nachfolgende Tabelle **Hinweis:** Bei der [PDM-Kategorie](#pdm-kategorie) "Einzelteil" soll abhängig von der gewählten [Fertigungsart](#fertigungsart) automatisch eine vordefinierte Allgemeintoleranzklasse eingetragen werden. Die entsprechenden Defaultwerte sind der rechten Tabellenspalte zu entnehmen: |Wert im Feld [Fertigungsart](#fertigungsart) |Defaultwert | |---------------------------------------------|---------------------| |3D - 3D drucken |ISO 2768:1991-mK | |BI - biegen |ISO 2768:1991-mK | |DR - drehen |ISO 2768:1991-mK | |EX - extrudieren |DIN 16941 - 3A | |FR - fräsen |ISO 2768:1991-mK | |GI - gießen |ISO 8062-3 - DCTG 10 | |LW - laser- und wasserstrahlschneiden |ISO 2768:1991-mK | |PR - verpressen |ISO 2768:1991-mK | |SA - sägen |ISO 2768:1991-mK | |SN - strangpressen |EN 12020-2 | |SP - spritzgießen |ISO 20457 - TG5 | |ST - stanzen |DIN 6930-2 - m | **Nachfolgende Logik definiert:** - state der ComboBox je nach Situation (readonly / disabled) IF PDM-Kategorie == "Kaufteil" OR "Schweissbaugruppe": state = disabled ELSE IF PDM-Kategorie == "Baugruppe" OR "Einzelteil": state = readonly --- #### **Migration** >**Spaltenname Impfdatei:** Allgemeintoleranz --- ### FOS-Gruppe >**Pflichtfeld:** Ja, immer --- #### **Spalte 2: SIVAS-Werte** >**Widget:** >**Typ:** Entry >**state:** disabled >**Wert:** Aus Spalte "FosGruppe" in "from_siv.csv" --- #### **Spalte 3: Überschriebene Werte** >**Widget-Typ:** ComboBox **Nachfolgende Logik definiert:** - Dropdownwerte (Quelle, wo die Dropdownwerte zu finden sind, bzw. direkt die Werte) - state der ComboBox je nach Situation (readonly / disabled) IF PDM-Kategorie == "Kaufteil": Dropdownwerte = Sektion "FOS_Gruppe" in Allgemein.cfg state = readonly ELSE IF PDM-Kategorie != "Kaufteil": Dropdownwerte = None (Keine) state = disabled **Nachfolgende Logik definiert:** - Defaultwert = Wert, der im Textfeld der ComboBox angezeigt werden soll, bevor ein Dropdownwert ausgewählt wurde IF PDM-Kategorie == "Baugruppe": IF Wert aus Spalte "FosGruppe" in "from_siv.csv" == "" (leer) OR "0 - Einzelteil": Defaultwert = "1 - Baugruppe" ELSE: Defaultwert = "" (leer) ELSE IF PDM-Kategorie != "Baugruppe": IF Wert aus Spalte "FosGruppe" in "from_siv.csv" == "" (leer) OR "1 - Baugruppe": Defaultwert = "0 - Einzelteil" ELSE: Defaultwert = "" (leer) --- #### **Migration** >**Spaltenname Impfdatei:** FOS-GruppeNE - Der Feldwert muss vor Erstellung der Impfdatei geprüft werden, siehe [Feldprüfung FOS-Gruppe](#fos-gruppe-1) - Der Feldwert muss in gemappter / umgewandelter Form in die Impfdatei eingetragen werden, siehe [Impfdateierstellung - FOS-Gruppe](#fos-gruppe-2) --- ### Kalkulationsart >**Pflichtfeld:** Ja, immer --- #### **Spalte 2: SIVAS-Werte** >**Widget:** >**Typ:** Entry >**state:** disabled >**Wert:** Aus Spalte "Kalkulationsart" in "from_siv.csv" --- #### **Spalte 3: Überschriebene Werte** >**Widget-Typ:** ComboBox **Nachfolgende Logik definiert:** - Dropdownwerte (Quelle, wo die Dropdownwerte zu finden sind, bzw. direkt die Werte) - state der ComboBox je nach Situation (readonly / disabled) IF PDM-Kategorie == "Baugruppe": Dropdownwerte = Sektion "Kalkulationsart" in Allgemein.cfg state = readonly ELSE IF PDM-Kategorie != "Baugruppe": Dropdownwerte = None (keine Werte) state = disabled **Nachfolgende Logik definiert:** - Defaultwert (Wert, der im Textfeld der ComboBox angezeigt werden soll, bevor ein Dropdownwert ausgewählt wurde) IF PDM-Kategorie == "Kaufteil": IF Wert aus Spalte "Kalkulationsart" in "from_siv.csv" == "" (leer) OR "Eigenbau": Defaultwert = "Kaufteil" ELSE: Defaultwert = "" (leer) ELSE IF PDM-Kategorie != "Kaufteil": IF Wert aus Spalte "Kalkulationsart" in "from_siv.csv" == "" (leer) OR "Kaufteil": Defaultwert = "Eigenbau" ELSE: Defaultwert = "" (leer) --- #### **Migration** >**Spaltenname Impfdatei:** KalkulationsartNE - Der Feldwert muss vor Erstellung der Impfdatei geprüft werden, siehe [Feldprüfung Kalkulationsart](#kalkulationsart-1) --- ### Beschaffungsart >**Pflichtfeld:** Ja, immer --- #### **Spalte 2: SIVAS-Werte** >**Widget:** >**Typ:** Entry >**state:** disabled >**Wert:** Aus Spalte "Beschaffungsart" in "from_siv.csv" **Aufgaben beim Einlesen des Wertes aus "from_siv.csv":** Der Wert "Eigenbaugruppe" aus der Spalte "Beschaffungsart" in "from_siv.csv" muss vor dem Eintragen ins Entry-Feld der Spalte "SIVAS-Werte" gemappt werden (der Wert "Kaufteil" hingegen nicht): |Wert in "from_siv.csv" |Neuer Wert in Spalte "SIVAS-Werte"| |:--------------------------------|:---------------------------------| |Eigenbaugruppe |Eigenbau | --- #### **Spalte 3: Überschriebene Werte** >**Widget-Typ:** ComboBox **Nachfolgende Logik definiert:** - Dropdownwerte (Quelle, wo die Dropdownwerte zu finden sind, bzw. direkt die Werte) - state der ComboBox je nach Situation (readonly / disabled) IF PDM-Kategorie == "Einzelteil": Dropdownwerte = Sektion "Beschaffungsart" in Allgemein.cfg state = readonly ELSE: Dropdownwerte = None (keine Werte) state = disabled **Nachfolgende Logik definiert:** - Defaultwert (Wert, der im Textfeld der ComboBox angezeigt werden soll, bevor ein Dropdownwert ausgewählt wurde) IF Wert aus Spalte "SIVAS-Werte" == "Eigenbau": IF PDM-Kategorie == "Kaufteil": Defaultwert = "Kaufteil" ELSE: Defaultwert = "" (leer) ELSE IF Wert aus Spalte "SIVAS-Werte" == "Kaufteil": IF PDM-Kategorie == "Baugruppe": Defaultwert = "Eigenbau" ELSE IF PDM-Kategorie == "Einzelteil" OR "Kaufteil": Defaultwert = "" (leer) ELSE IF PDM-Kategorie == "Schweissbaugruppe": Defaultwert = "Eigenbau" + INFO-messagebox anzeigen, siehe nachfolgendes Bild: ![info_beschaffungsart_schweissbaugruppe](../doc/Pictures/info_beschaffungsart_schweissbaugruppe.jpg) **messagebox-Text:** Komponenten der Schweißbaugruppe müssen eigene Teilenummern erhalten, falls diese aktuell als Underline-Nummern in der Creo-Baugruppe vorliegen, aber keine eigenen Teilenummern in SIVAS besitzen! --- #### **Migration** >**Spaltenname Impfdatei:** BeschaffungsartNE - Beim Klick auf den Button "Migrieren" muss die festgelegte Beschaffungsart geprüft werden, siehe [Feldprüfung Beschaffungsart](#beschaffungsart-1) --- ### Mengeneinheit >**Pflichtfeld:** Ja, immer --- #### **Spalte 2: SIVAS-Werte** >**Widget:** >**Typ:** Entry >**state:** disabled >**Wert:** Aus Spalte "Mengeneinheit" in "from_siv.csv" --- #### **Spalte 3: Überschriebene Werte** >**Widget-Typ:** ComboBox >**Defaultwert:** Keiner (leer) >**Read only:** Ja **Nachfolgende Logik definiert:** - Dropdownwerte (Quelle, wo die Dropdownwerte zu finden sind, bzw. direkt die Werte) - state der ComboBox je nach Situation (readonly / disabled) IF Rüstcode == "SRC Standard Rüstcode" OR "Trümmerbaugruppe": Dropdownwerte = None (keine Werte) state = disabled ELSE IF Rüstcode == "HZS Halbzeuge Sägeteile": IF PDM-Kategorie == "Einzelteil" OR "Kaufteil": Dropdownwerte = Sektion "EinheitAusw" in Allgemein.cfg state = readonly ELSE IF PDM-Kategorie == "Schweissbaugruppe": Dropdownwerte = None (keine Werte) state = disabled **Nachfolgende Logik definiert:** - Defaultwert (Wert, der im Textfeld der ComboBox angezeigt werden soll, bevor ein Dropdownwert ausgewählt wurde) IF Rüstcode == "SRC Standard Rüstcode": IF Wert aus Spalte "Mengeneinheit" in "from_siv.csv" != "Stck - Stück": Defaultwert = "Stck - Stück" ELSE: Defaultwert = "" (leer) ELSE IF Rüstcode == "HZS Halbzeuge Sägeteile": IF Wert aus Spalte "Mengeneinheit" in "from_siv.csv" != "M - Meter": IF PDM-Kategorie == "Schweissbaugruppe": Defaultwert = "M - Meter" ELSE IF PDM-Kategorie == "Einzelteil" OR "Kaufteil": Defaultwert = "" + INFO-messagebox anzeigen, siehe nachfolgendes Bild: ![info_mengeneinheit_hzs](../doc/Pictures/info_mengeneinheit_hzs.jpg) **messagebox-Text:** Bitte prüfen, ob Mengeneinheit ≠ "M - Meter" korrekt ist! --- #### **Migration** >**Spaltenname Impfdatei:** Mengeneinheit - Beim Klick auf den Button "Migrieren" muss die festgelegte Mengeneinheit geprüft werden, siehe [Feldprüfung Mengeneinheit](#mengeneinheit-1) - Der Feldwert muss in gemappter / umgewandelter Form in die Impfdatei eingetragen werden, siehe [Impfdateierstellung - Mengeneinheit](#mengeneinheit-2) --- ### Halbzeug >**Pflichtfeld:** Ja, immer --- #### **Spalte 2: SIVAS-Werte** >**Widget:** >**Typ:** Entry >**state:** disabled >**Wert:** Aus Spalte "Halbzeug" in "from_siv.csv" --- #### **Spalte 3: Überschriebene Werte** >**Widget:** >**Typ:** ComboBox **Nachfolgende Logik definiert:** - Dropdownwerte (Quelle, wo die Dropdownwerte zu finden sind, bzw. direkt die Werte) IF Rüstcode == "SRC Standard Rüstcode" OR "Trümmerbaugruppe": Dropdownwert = "FALSCH" ELSE IF Rüstcode == "HZS Halbzeuge Sägeteile": Dropdownwerte = Sektion "Halbzeug" in Allgemein.cfg **Nachfolgende Logik definiert:** - Defaultwert (Wert, der im Textfeld der ComboBox angezeigt werden soll, bevor ein Dropdownwert ausgewählt wurde) IF Wert aus Spalte "Halbzeug" in "from_siv.csv" == "WAHR": IF Rüstcode == "SRC Standard Rüstcode" OR "Trümmerbaugruppe": Defaultwert = "FALSCH" ELSE IF Rüstcode == "HZS Halbzeuge Sägeteile": Defaultwert = "" (leer) ELSE: Defaultwert = "" (leer) **Nachfolgende Logik definiert:** - state der ComboBox je nach Situation (readonly / disabled) IF Rüstcode == "SRC Standard Rüstcode" OR "Trümmerbaugruppe": state = disabled ELSE IF Rüstcode == "HZS Halbzeuge Sägeteile": state = readonly --- #### **Migration** >**Spaltenname Impfdatei:** Halbzeug - Beim Klick auf den Button "Migrieren" muss der eingetragene Wert geprüft werden, siehe [Feldprüfung Halbzeug](#halbzeug-1) - Beim Erstellen der Impfdatei müssen die eingetragenen Werte gemappt werden, siehe [Impfdateierstellung - Halbzeug](#halbzeug-2) --- ### TOS-Gruppe >**Pflichtfeld:** Ja, immer --- #### **Spalte 2: SIVAS-Werte** >**Widget:** >**Typ:** Entry >**state:** disabled >**Wert:** Aus Spalte "TOS_Gruppe" in "from_siv.csv" --- #### **Spalte 3: Überschriebene Werte** >**Widget:** >**Typ:** Entry >**state:** keiner >**Einschränkung:** nur Zahlen eintragbar **Nachfolgende Logik definiert:** - Defaultwert (Wert, der in Entry eingetragen wird, bevor der User eigene Eintragungen vornimmt) IF Wert aus Spalte "TOS_Gruppe" in "from_siv.csv" == "" (leer): Defaultwert == 6 ELSE: Defaultwert == "" (leer) --- #### **Migration** **Spaltennamen Impfdatei:** - Beim Klick auf den Button "Migrieren" muss die eingetragene Gruppennummer geprüft werden, siehe [Feldprüfung TOS-Gruppe](#tos-gruppe-1) - Alle Impfdateispalten, die sich aus der angegebenen Gruppennummer ergeben, müssen befüllt werden, siehe [Impfdateierstellung - TOS-Gruppe](#tos-gruppe-2) --- ### Dispogruppe >**Pflichtfeld:** Ja, immer --- #### **Spalte 2: SIVAS-Werte** >**Widget:** >**Typ:** Entry >**state:** disabled >**Wert:** Aus Spalte "Dispogruppe" in "from_siv.csv" --- #### **Spalte 3: Überschriebene Werte** >**Widget:** >**Typ:** ComboBox >**Dropdownwerte:** Sektion "Dispogruppe" in [Allgemein.cfg](../cfg/Allgemein.cfg) >**Defaultwert:** "" (leer) >**state:** readonly --- #### **Migration** >**Spaltenname Impfdatei:** Dispogruppe - Beim Klick auf den Button "Migrieren" muss die eingetragene Gruppennummer geprüft werden, siehe [Feldprüfung Dispogruppe](#dispogruppe-1) - Bei der Erstellung der Impfdatei muss ein Mapping der Dispogruppen durchgeführt werden, siehe [Impfdateierstellung - Dispogruppe](#dispogruppe-2) --- ### Dispolaufgruppe >**Pflichtfeld:** Ja, immer --- #### **Spalte 2: SIVAS-Werte** >**Widget:** >**Typ:** Entry >**state:** disabled --- #### **Spalte 3: Überschriebene Werte** >**Widget:** >**Typ:** ComboBox >**Dropdownwerte:** Sektion "Dispolaufgruppe" in [Allgemein.cfg](../cfg/Allgemein.cfg) >**Defaultwert:** "" (leer) >**state:** readonly --- #### **Migration** >**Spaltenname Impfdatei:** Dispolaufgruppe - Vor der Erstellung der Impfdatei muss geprüft werden, ob eine Dispolaufgruppe vorliegt, siehe [Feldprüfung Dispolaufgruppe](#dispolaufgruppe-1) - Bei der Erstellung der Impfdatei muss ein Mapping der Dispolaufgruppen durchgeführt werden, siehe [Impfdateierstellung - Dispolaufgruppe](#dispolaufgruppe-2) --- ### Ersatz für >**Pflichtfeld:** Nein --- #### **Spalte 2: SIVAS-Werte** >**Widget:** >**Typ:** Entry >**state:** readonly >**Wert:** Aus Spalte "ErsatzFuer" in "from_siv.csv" --- #### **Spalte 3: Überschriebene Werte** >**Widget:** >**Typ:** Entry >**state:** keiner --- #### **Migration** >**Spaltenname Impfdatei:** Wird nicht in Impfdatei berücksichtigt - Vor der Erstellung der Impfdatei soll geprüft werden, ob die ersetzte Teilenummer bereits in RuleDesigner migriert wurde, siehe [Feldprüfung Ersatz für](#ersatz-fc3bcr-1) --- ### Ersetzt durch >**Pflichtfeld:** Nein --- #### **Spalte 2: SIVAS-Werte** >**Widget:** >**Typ:** Entry >**state:** readonly >**Wert:** Aus Spalte "ErsetztDurch" in "from_siv.csv" --- #### **Spalte 3: Überschriebene Werte** >**Widget:** >**Typ:** Entry >**state:** keiner --- #### **Migration** >**Spaltenname Impfdatei:** Wird nicht in Impfdatei berücksichtigt - Vor der Erstellung der Impfdatei soll geprüft werden, ob die Ersatz-Teilenummer bereits in RuleDesigner migriert wurde, siehe [Feldprüfung Ersetzt durch](#ersetzt-durch-1) --- ### Hersteller >**Pflichtfeld:** Nein --- #### **Spalte 2: SIVAS-Werte** >**Widget:** >**Typ:** Entry >**state:** keiner >**Wert:** Aus Spalte "Hersteller" in "from_siv.csv" **Aufgaben beim Einlesen des Wertes aus "from_siv.csv":** Der Text vor dem Herstellernamen (besteht aus Herstellernummer + Zeichenkette " - ") muss entfernt werden **Beispiel:** |Wert aus "from_siv.csv" |Wert nach Kürzung | |------------------------|---------------------| |80312 - Rehau AG & Co. |Rehau AG & Co. | --- #### **Spalte 3: Überschriebene Werte** >**Widget:** >**Typ:** ComboBox >**Dropdownwerte:** Sektion "Hersteller" in [Hersteller.cfg](../cfg/Hersteller.cfg) >**Defaultwert:** Keiner (leer) **Nachfolgende Logik definiert:** - state der ComboBox je nach Situation (readonly / disabled) IF PDM-Kategorie == "Kaufteil": state = readonly ELSE: state = disabled --- #### **Migration** >**Spaltenname Impfdatei:** Hersteller - Vor der Erstellung der Impfdatei muss geprüft werden, ob der Hersteller in RuleDesigner angelegt wurde, siehe [Feldprüfung Hersteller](#hersteller-1) --- ### Hersteller Teilenummer >**Pflichtfeld:** Nein --- #### **Spalte 2: SIVAS-Werte** >**Widget:** >**Typ:** Entry >**state:** readonly >**Wert:** Aus Spalte "HerstellerTeilenummer" in "from_siv.csv" --- #### **Spalte 3: Überschriebene Werte** >**Widget-Typ:** Entry >**Defaultwert:** "" (keiner) **Nachfolgende Logik definiert:** - state des Entry-Feldes je nach Situation (keiner / disabled) IF PDM-Kategorie == "Kaufteil": state = keiner ELSE: state = disabled --- #### **Migration** >**Spaltenname Impfdatei:** HerstellerTeilenummer --- ### Werkstoffdiskrepanz >**Pflichtfeld:** Nein --- #### **Spalte 3: Überschriebene Werte** >**Widget:** >**Typ:** CheckButton >**Defaultwert:** False (Haken nicht gesetzt) **Nachfolgende Logik definiert:** - state des CheckButtons je nach Situation (keiner / disabled) IF Aus Halbzeug == True (Haken gesetzt): state = disabled ELSE: state = keiner --- #### **Migration** >**Spaltenname Impfdatei:** Wird nicht in Impfdatei berücksichtigt --- ### Werkstofftyp #### **Spalte 3: Überschriebene Werte** >**Widget:** >**Typ:** ComboBox **Nachfolgende Logik definiert:** - Pflichtfeld (in welchen Fällen ist es ein Pflichtfeld, in welchen nicht) - state der ComboBox je nach Situation (readonly / disabled) - Dropdownwerte (Quelle, wo die Dropdownwerte zu finden sind, bzw. direkt die Werte) IF PDM-Kategorie == "Einzelteil" IF Aus Halbzeug == True (Haken gesetzt): Pflichtfeld = False state = disabled Dropdownwerte = None (keine Werte) ELSE: Pflichtfeld = True state = readonly Dropdpownwerte = Sektion "Werkstofftyp" in Werkstoff.cfg ELSE IF PDM-Kategorie != "Einzelteil": Pflichtfeld = False state = disabled Dropdownwerte = None (keine Werte) --- **Nachfolgende Logik definiert:** - Defaultwert (Wert, der in Entry eingetragen wird, bevor der User eigene Eintragungen vornimmt) In den nachfolgenden Fällen darf **kein** Defaultwert eingetragen werden (selbst wenn in "from_siv.csv" ein Wert in der Spalte "Werkstoff" eingetragen sein sollte): - [PDM-Kategorie](#pdm-kategorie) != "Einzelteil" - [PDM-Kategorie](#pdm-kategorie) == "Einzelteil" + [Aus Halbzeug](#aus-halbzeug) == True (Haken gesetzt) - kein Wert in der Spalte "Werkstoff" in "from_siv.csv" In den nachfolgenden Fällen soll ggf. ein Defaultwert eingetragen werden: - Bei [PDM-Kategorie](#pdm-kategorie) == "Einzelteil + [Aus Halbzeug](#aus-halbzeug) == "False" (Haken nicht gesetzt), wird der Defaultwert wie folgt bestimmt (wenn in "from_siv.csv" in der Spalte "Werkstoff ein Wert vorliegt): Als erstes muss geprüft werden, ob der Werkstoff aus der Spalte "Werkstoff" in der Datei "from_siv.csv" zugleich als Objekt in der json-Datei [Materialübersetzung.json](../cfg/Materialübersetzung.json) existiert: **Beispiel:** In "from_siv.csv" ist in der Spalte "Werkstoff" der Wert "1.4301 (X5CrNi18-10)" eingetragen (siehe nachfolgendes Bild): ![material_from_siv_csv](../doc/Pictures/werkstoff_from_siv_csv.jpg) Dieses Material ist als Objekt in der json-Datei [Materialübersetzung.json](../cfg/Materialübersetzung.json) enthalten (siehe nachfolgendes Bild): ![material_materialuebersetzung_json](../doc/Pictures/material_materialuebersetzung_json.jpg) - Wenn das Material nicht als json-Objekt exisitert, soll eine Info-Messagebox erscheinen (vor Klick auf "Migrieren"): ![Material_fehlend](../doc/Pictures/info_Material_missing.jpg) **messagebox-Text:** Werkstoffvorschlag nicht möglich, da das Material nicht in der Mappingdatei "Materialübersetzung.json" enthalten ist.\nBitte Werkstoff in dieser Datei nachfpflegen und prüfen, ob der Werkstoff in den nachfolgenden Systemen vorhanden ist:\n- RuleDesigner\n- SIVAS-Produktiv- und Schulungsdatenbank\n- Solid Edge\nWenn nicht, bitte in diesen Systemen ebenfalls nachpflegen! - Wenn das Material als json-Objekt existiert, muss geprüft werden, ob das json-Objekt einen Key "Werkstofftyp" aufweist. - Wenn der Key "Werkstofftyp" exisitert, soll sein Wert als Defaultwert in das Textfeld der ComboBox eingetragen werden: **Beispiel:** Das json-Objekt "PA6 GF30" enthält den Key "Werkstofftyp". ![key_werkstofftyp_exists](../doc/Pictures/key_werkstofftyp_exists.jpg) Der Wert des Keys "Werkstofftyp" (in diesem Fall "Kunst-/ Verbundstoff") wird folglich als Defaultwert in das Textfeld der ComboBox eingetragen (siehe nachfolgendes Bild): ![Default_Werkstofftyp](../doc/Pictures/default_werkstofftyp.jpg) - Wenn der Key "Werkstofftyp" nicht exisitert, soll stattdessen der Wert des Keys "Message" als Platzhalter in roter Textfarbe eingetragen werden: **Beispiel:** Das json-Objekt "VA" enthält keinen Key "Werkstofftyp". Es wird folglich der Wert des Keys "Message" (in diesem Fall "*Bitte individuell wählen!*") als Defaultwert in das Textfeld der ComboBox eingetragen (siehe nachfolgende Bilder): ![key_werkstofftyp_missing](../doc/Pictures/key_werkstofftyp_missing.jpg) ![Individual_werkstofftyp_selection](../doc/Pictures/Material_message_placeholder.jpg) --- #### **Migration** >**Spaltenname Impfdatei:** WerkstofftypNE Vor der Erstellung der Impfdatei muss geprüft werden, ob ein gültiger Werkstofftyp eingetragen wurde, siehe [Feldprüfung Werkstofftyp](#werkstofftyp-1) --- ### Material **Nachfolgende Logik definiert:** - Pflichtfeld (in welchen Fällen ist es ein Pflichtfeld, in welchen nicht) IF PDM-Kategorie == "Einzelteil" IF Aus Halbzeug == True (Haken gesetzt): Pflichtfeld = False ELSE: Pflichtfeld = True ELSE IF PDM-Kategorie == "Kaufteil": Pflichtfeld = True ELSE IF PDM-Kategorie == "Baugruppe" OR "Schweissbaugruppe": Pflichtfeld = False --- #### **Spalte 2: SIVAS-Werte** >**Widget:** >**Typ:** Entry >**Wert:** Aus Spalte "Werkstoff" in "from_siv.csv" --- #### **Spalte 3: Überschriebene Werte** >**Widget-Typ:** ComboBox - state der ComboBox je nach Situation (readonly / disabled) IF PDM-Kategorie == "Einzelteil" IF Aus Halbzeug == True (Haken gesetzt): state = disabled ELSE: state = readonly ELSE IF PDM-Kategorie != "Einzelteil": state = disabled **Nachfolgende Logik definiert:** - Defaultwert (Wert, der in Entry eingetragen wird, bevor der User eigene Eintragungen vornimmt) In den nachfolgenden Fällen darf **kein** Defaultwert eingetragen werden (selbst wenn in from_siv.csv ein Wert in der Spalte "Werkstoff" eingetragen sein sollte): - [PDM-Kategorie](#pdm-kategorie) == "Baugruppe" - [PDM-Kategorie](#pdm-kategorie) == "Schweissbaugruppe" - [PDM-Kategorie](#pdm-kategorie) == "Einzelteil" + [Aus Halbzeug](#aus-halbzeug) == True (Haken gesetzt) - kein Wert in der Spalte "Werkstoff" in "from_siv.csv" In den nachfolgenden Fällen soll ggf. ein Defaultwert eingetragen werden: - [PDM-Kategorie](#pdm-kategorie) == "Kaufteil" -> Defaultwert = "siehe Hersteller" - Bei [PDM-Kategorie](#pdm-kategorie) == "Einzelteil" + [Aus Halbzeug](#aus-halbzeug) == False (Haken nicht gesetzt), wird der Defaultwert wie folgt bestimmt: Als erstes muss geprüft werden, ob der eingetragene Werkstoff aus der Spalte "Werkstoff " in der Datei "from_siv.csv" zugleich als Objekt in der json-Datei [Materialübersetzung.json](../cfg/Materialübersetzung.json) existiert: **Beispiel:** In "from_siv.csv" ist in der Spalte "Werkstoff" der Wert "1.4301 (X5CrNi18-10)" eingetragen (siehe nachfolgendes Bild): ![material_from_siv_csv](../doc/Pictures/werkstoff_from_siv_csv.jpg) Dieses Material ist als Objekt in der json-Datei [Materialübersetzung.json](../cfg/Materialübersetzung.json) enthalten (siehe nachfolgendes Bild): ![material_materialuebersetzung_json](../doc/Pictures/material_materialuebersetzung_json.jpg) - Wenn der Werkstoff nicht als json-Objekt exisitert, soll nichts passieren (erforderliche info-messagebox wird bereits durch das Feld [Werkstofftyp](#Werkstofftyp) generiert) - Wenn der Werkstoff als json-Objekt exisitert, muss geprüft werden, ob der Wert des Keys "Werkstoff" != "false" ist: - Wenn der Wert != "false" ist, soll der Wert des Keys "Werkstoff" als Defaultwert in das Textfeld der ComboBox eingetragen werden: **Beispiel:** Im json-Objekt "PA6 GF30" weist der Key "Werkstoff" den Wert "PA 6 GF 30", also nicht "false" auf (siehe nachfolgendes Bild): ![werkstoff_key_materialuebersetzung.json](../doc/Pictures/werkstoff_key_materialuebersetzung_json.jpg) Dieser Wert (PA 6 GF 30) wird dann als Defaultwert in das Textfeld der ComboBox eingetragen (siehe nachfolgendes Bild): ![Default_Werkstoff](../doc/Pictures/default_werkstoff.jpg) - Wenn der Wert == "false" ist, soll der Wert des Keys "Message" als Defaultwert in roter Textfarbe in das Textfeld der ComboBox eingetragen werden: **Beispiel:** Beim json-Objekt "VA" ist der Wert des Keys "Werkstoff" == "false" (siehe nachfolgendes Bild): ![key_werkstoff_false](../doc/Pictures/key_werkstoff_false.jpg) Es muss folglich der Wert des Keys "Message", also in diesem Fall "Bitte individuell wählen!" als Defaultwert in das Textfeld der ComboBox eingetragen werden (siehe nachfolgendes Bild): ![Individual_material_selection](../doc/Pictures/Material_message_placeholder.jpg) **Nachfolgende Logik definiert:** - Dropdownwerte (Quelle, wo die Dropdownwerte zu finden sind, bzw. direkt die Werte) Die Dropdownwerte hängen vom aktuellen Wert des Feldes [Werkstofftyp](#werkstofftyp) ab. Die Werkstofftyp-abhängigen Dropdownwerte sind in verschiedenen Sektionen der cfg-Datei [Werkstoff.cfg](../cfg/Werkstoff.cfg) enthalten. Welche Sektion bei welchem Werkstofftyp gilt, ist in der rechten Spalte der nachfolgenden Tabelle aufgelistet: |Wert im Feld [Werkstofftyp](#werkstofftyp) |Sektion in Werkstoff.cfg | |-------------------------------------------|-------------------------| |Stahl |Stahl | |Aluminium |Aluminium | |Kunst-/ Verbundstoff |Kunst-/ Verbundstoff | |Schwermetall |Schwermetall | |Festigkeitsklasse |Festigkeitsklasse | Wenn kein Wert im Feld [Werkstofftyp](#werkstofftyp) vorliegt, dürfen auch keine Dropdownwerte in der ComboBox wählbar sein. **Hinweis:** Wenn der Werkstofftyp geändert wird, soll der Wert in der ComboBox des Feldes "Material" entfernt werden. (Sofern in TK einstellbar soll zudem der Hintergrund der ComboBox solange rot eingefärbt werden, bis ein neues Material ausgewählt wurde.) --- #### **Migration** >**Spaltenname Impfdatei:** WerkstoffNE - Vor der Erstellung der Impfdatei müssen die Werkstoffeingaben geprüft werden, siehe [Feldprüfung Material](#material-1) --- ### Oberfläche **Nachfolgende Logik definiert:** - Pflichtfeld (in welchen Fällen ist es ein Pflichtfeld, in welchen nicht) IF PDM-Kategorie == "Einzelteil": IF Werkstofftyp == "Kunst-/ Verbundstoff" Pflichtfeld = True ELSE IF Werkstofftyp != "Kunst-/ Verbundstoff": Pflichtfeld = False ELSE IF PDM-Kategorie != "Einzelteil": Pflichtfeld = False --- #### **Spalte 3: Überschriebene Werte** >**Widget:** >**Typ:** ComboBox **Nachfolgende Logik definiert:** - state der ComboBox je nach Situation (readonly / disabled) IF PDM-Kategorie == "Einzelteil" IF Aus Halbzeug == True (Haken gesetzt): state = disabled ELSE: state = readonly ELSE IF PDM-Kategorie == "Schweissbaugruppe": state = readonly ELSE IF PDM-Kategorie == "Baugruppe" OR "Kaufteil": state = disabled **Nachfolgende Logik definiert:** - Defaultwert (Wert, der in Entry eingetragen wird, bevor der User eigene Eintragungen vornimmt) In den nachfolgenden Fällen darf **kein** Defaultwert in das Textfeld der ComboBox eingetragen werden (selbst wenn in from_siv.csv ein Wert in der Spalte "Werkstoff" eingetragen sein sollte): - [PDM-Kategorie](#pdm-kategorie) != "Einzelteil" - [PDM-Kategorie](#pdm-kategorie) == "Einzelteil" + [Aus Halbzeug](#aus-halbzeug) == True (Haken gesetzt) - kein Wert in der Spalte "Werkstoff" in "from_siv.csv" In den nachfolgenden Fällen soll ggf. ein Defaultwert eingetragen werden: - Gilt [PDM-Kategorie](#pdm-kategorie) == "Einzelteil" + [Aus Halbzeug](#aus-halbzeug) == False (kein Haken gesetzt), dann wird der Defaultwert wie folgt bestimmt: Als erstes muss geprüft werden, ob der eingetragene Werkstoff aus der Spalte "Werkstoff " in der Datei "from_siv.csv" zugleich als Objekt in der json-Datei [Materialübersetzung.json](../cfg/Materialübersetzung.json) existiert: **Beispiel:** In "from_siv.csv" ist in der Spalte "Werkstoff" der Wert "1.4301 (X5CrNi18-10)" eingetragen (siehe nachfolgendes Bild): ![material_from_siv_csv](../doc/Pictures/werkstoff_from_siv_csv.jpg) Dieses Material ist als Objekt in der json-Datei [Materialübersetzung.json](../cfg/Materialübersetzung.json) enthalten (siehe nachfolgendes Bild): ![material_materialuebersetzung_json](../doc/Pictures/material_materialuebersetzung_json.jpg) - Wenn der Werkstoff nicht als json-Objekt exisitert, soll nichts passieren (erforderliche info-messagebox wird bereits durch das Feld [Werkstofftyp](#Werkstofftyp) generiert) - Wenn das Material als json-Objekt existiert, muss geprüft werden, ob das json-Objekt einen Key "Oberfläche" aufweist. - Wenn der Key "Oberfläche" exisitert, soll sein Wert als Defaultwert in das Textfeld der ComboBox eingetragen werden: **Beispiel:** Das json-Objekt "PA6 GF30" enthält den Key "Oberfläche". ![werkstoff_key_materialuebersetzung.json](../doc/Pictures/key_oberflaeche_exists.jpg) Der Wert des Keys (Masterbatch (Grundfarbe)) wird dann als Defaultwert in das Textfeld der ComboBox eingetragen (siehe nachfolgendes Bild): ![Default_Oberflaeche](../doc/Pictures/default_oberflaeche.jpg) - Wenn der Key "Oberfläche" nicht exisitert, soll im Gegensatz zu den ComboBoxen der Felder [Werkstofftyp](#werkstofftyp) und [Material](#material) **nicht** der Wert des Keys "Message" als Defaultwert eingetragen werden. Stattdessen soll kein Defaultwert eingetragen werden. **Nachfolgende Logik definiert:** - Dropdownwerte (Quelle, wo die Dropdownwerte zu finden sind, bzw. direkt die Werte) Die Dropdownwerte hängen vom aktuellen Wert des Feldes [Werkstofftyp](#werkstofftyp) ab. Die Werkstofftyp-abhängigen Dropdownwerte sind in verschiedenen Sektionen der cfg-Datei [Oberflächenbehandlung.cfg](../cfg/Oberflächenbehandlung.cfg) enthalten. Welche Sektion bei welchem Werkstofftyp gilt, ist in der rechten Spalte der nachfolgenden Tabelle aufgelistet: |Wert in Feld [Werkstofftyp](#werkstofftyp) |Sektion in [Oberflächenbehandlung.cfg](../cfg/Oberflächenbehandlung.cfg) | |-------------------------------------- |-----------------------------------------------| |Stahl |OberflächenbehandlungStahl | |Aluminium |OberflächenbehandlungAluminium | |Kunst-/ Verbundstoff |OberflächenbehandlungKunsVerbund | |Schwermetall |OberflächenbehandlungSchwermetall | |Festigkeitsklasse |OberflaechenbehandlungNormteil | Wenn kein Wert im Feld [Werkstofftyp](#werkstofftyp) oder [Material](#material) vorliegt, dürfen auch keine Dropdownwerte in der ComboBox wählbar sein. **Veränderung Werkstofftyp:** Erfolgt eine Wertänderung im Feld [Werkstofftyp](#werkstofftyp), muss der Wert in der ComboBox des Feldes "Oberfläche" durch einen leeren Wert ersetzt werden. --- #### **Migration** >**Spaltenname Impfdatei:** Oberflaechenbehandlung --- ### Farbe **Nachfolgende Logik definiert:** - Pflichtfeld (in welchen Fällen ist es ein Pflichtfeld, in welchen nicht) IF Oberflaechenbehandlung == "eloxieren" OR "lackieren" OR "Masterbatch (Grundfarbe)" OR "pulverbeschichten": Pflichtfeld = True ELSE: Pflichtfeld = False --- #### **Spalte 3: Überschriebene Werte** >**Widget:** >**Typ:** ComboBox **Nachfolgende Logik definiert:** - state der ComboBox je nach Situation (readonly / disabled) IF Oberflaechenbehandlung == "eloxieren" OR "lackieren" OR "Masterbatch (Grundfarbe)" OR "pulverbeschichten": state = readonly ELSE: state = disabled **Nachfolgende Logik definiert:** - Defaultwert (Wert, der in Entry eingetragen wird, bevor der User eigene Eintragungen vornimmt) In den nachfolgenden Fällen darf **kein** Defaultwert eingetragen werden (selbst wenn in from_siv.csv ein Wert in der Spalte "Werkstoff" eingetragen sein sollte): - [PDM-Kategorie](#pdm-kategorie) != "Einzelteil" - [PDM-Kategorie](#pdm-kategorie) == "Einzelteil" + [Aus Halbzeug](#aus-halbzeug) == True (Haken gesetzt) - kein Wert in der Spalte "Werkstoff" in "from_siv.csv" In den nachfolgenden Fällen soll ggf. ein Defaultwert eingetragen werden: - Gilt [PDM-Kategorie](#pdm-kategorie) == "Einzelteil" + [Aus Halbzeug](#aus-halbzeug) == False (kein Haken gesetzt), dann wird der Defaultwert wie folgt bestimmt: Als erstes muss geprüft werden, ob der Werkstoff aus der Spalte "Werkstoff" in der Datei "from_siv.csv" zugleich als Objekt in der json-Datei [Materialübersetzung.json](../cfg/Materialübersetzung.json) existiert: **Beispiel:** In "from_siv.csv" ist in der Spalte "Werkstoff" der Wert "1.4301 (X5CrNi18-10)" eingetragen (siehe nachfolgendes Bild): ![material_from_siv_csv](../doc/Pictures/werkstoff_from_siv_csv.jpg) Dieses Material ist als Objekt in der json-Datei [Materialübersetzung.json](../cfg/Materialübersetzung.json) enthalten (siehe nachfolgendes Bild): ![material_materialuebersetzung_json](../doc/Pictures/material_materialuebersetzung_json.jpg) - Wenn der Werkstoff nicht als json-Objekt exisitert, soll nichts passieren (erforderliche info-messagebox wird bereits durch das Feld [Werkstofftyp](#Werkstofftyp) generiert) - Wenn das Material als json-Objekt existiert, muss geprüft werden, ob das json-Objekt einen Key "Farbe" aufweist. - Wenn der Key "Farbe" exisitert, soll sein Wert als Defaultwert in das Textfeld der ComboBox eingetragen werden: **Beispiel:** Das json-Objekt "PA6 GF30; Farbe ähnlich RAL 5015" enthält den Key "Farbe". ![key_farbe_exists](../doc/Pictures/key_Farbe_exists.jpg) Der Wert des Keys (in diesem Fall "RAL 5015") wird dann als Defaultwert in das Textfeld der ComboBox eingetragen (siehe nachfolgendes Bild): ![Default_Farbe](../doc/Pictures/default_farbe.jpg) - Wenn der Key "Farbe" nicht exisitert, soll im Gegensatz zu den ComboBoxen der Felder [Werkstofftyp](#werkstofftyp) und [Material](#material) **nicht** der Wert des Keys "Message" als Defaultwert eingetragen werden. Stattdessen soll kein Defaultwert eingetragen werden. **Nachfolgende Logik definiert:** - Dropdownwerte (Quelle, wo die Dropdownwerte zu finden sind, bzw. direkt die Werte) Die Dropdownwerte hängen vom aktuellen Wert des Feldes [Oberfläche](#oberfläche) ab. Die Oberflächen-abhängigen Dropdownwerte sind in verschiedenen Sektionen der cfg-Datei [Farben.cfg](../cfg/Farben.cfg) enthalten. Welche Sektion bei welcher Oberflächenbehandlung gilt, ist in der rechten Spalte der nachfolgenden Tabelle aufgelistet: |Wert im Feld [Oberfläche](#oberfläche) |Werte aus Sektion in [Farben.cfg](../cfg/Farben.cfg) | |---------------------------------------|--------------------------------| |eloxieren |FarbeEloxieren | |lackieren |Farbauswahl | |Masterbatch (Grunfarbe) |Farbauswahl | |pulverbeschichten |Farbauswahl | Wenn kein Wert im Feld [Werkstofftyp](#werkstofftyp), [Material](#material) oder [Oberfläche](#oberfläche) vorliegt, dürfen auch keine Dropdownwerte in der ComboBox wählbar sein. **Veränderung Werkstofftyp oder Oberfläche:** Erfolgt eine Wertänderung in der ComboBox des Feldes [Werkstofftyp](#werkstofftyp) oder [Oberfläche](#oberfläche) muss der Wert in der ComboBox des Feldes "Farbe" durch einen leeren Wert ersetzt werden. (Wenn in TK einstellbar soll zudem der Hintergrund der ComboBox bei rot eingefärbt werden, solange Oberfläche == "lackieren", "pulverbeschichten", "Masterbatch (Grundfarbe)" oder "eloxieren" gilt und die ComboBox im Feld "Farbe" leer ist) --- #### **Migration** >**Spaltenname Impfdatei:** Farbe - Vor der Erstellung der Impfdatei müssen die Feldeintragungen geprüft werden, siehe [Feldprüfung Farbe](#farbe-1) --- ### Version >**Pflichtfeld:** Nein --- #### **Spalte 2: SIVAS-Werte** >**Widget:** >**Typ:** Entry >**Wert:** Aus Spalte "Version" in "from_siv.csv" --- #### **Spalte 3: Überschriebene Werte** >**Widget:** >**Typ:** Entry #### **Migration** >**Spaltenname Impfdatei:** Wird nicht in Impfdatei berücksichtigt - Wird für die Bestimmung des [Freigabevermerks](#freigabevermerk) benötigt --- ### Änderungsindex >**Pflichtfeld:** Nein --- #### **Spalte 2: SIVAS-Werte** >**Widget:** >**Typ:** Entry >**Wert:** Aus Spalte "AktuellerIndex" in "from_siv.csv" --- #### **Spalte 3: Überschriebene Werte** >**Widget-Typ:** Entry #### **Migration** >**Spaltenname Impfdatei:** StartRevision Liegt kein Änderungsindex vor, muss "A" in die Impfdatei eingetragen werden (siehe [Impfdateierstellung](#tätigkeiten-im-rahmen-der-impfdateierstellung)) --- ### Änderungstext >**Pflichtfeld:** Ja, immer --- #### **Spalte 2: SIVAS-Werte** >**Widget:** >**Typ:** Text (mehrzeilig) >**Wert:** Aus Spalte "Aenderungstext" in "from_siv.csv" **Aufgaben beim Einlesen des Wertes aus "from_siv.csv":** - Semikolon (einschließlich vor- und nachgesetztem Leerzeichen) sollen durch ein Slash mit vor- und nachgesetztem Leerzeichen (" / ") ersetzt werden. Beispiel: - Änderungstext in "from_siv.csv": "Gewindebohrung auf M5 vergrößert (war M4); Fasen entfernt" - Änderungstext nach dem Einlesen: "Gewindebohrung auf M5 vergrößert (war M4) / Fasen entfernt" - Wenn die Spalte "Aenderungstext" in "from_siv.csv" einen Wert enthält, soll der Textbaustein "(von {Wert aus Spalte "Indexerfasser in 'from_siv.csv'})" angehängt werden, Beispiel: - Änderungstext in "from_siv.csv": "Biegeradius auf R5 vergrößert (war R4)" - Änderungstext nach dem Einlesen: "Biegeradius auf R5 vergrößert (war R4) (von M.SCHNEIDER)" --- #### **Spalte 3: Überschriebene Werte** >**Widget-Typ:** Text (mehrzeilig) >**Zeichenbegrenzung:** 400 **Bestimmung der Zeichenbegrenzung:** Wenn die Länge des Änderungstextes in der Spalte "SIVAS-Werte" die Zeichengrenze überschreitet, soll im Textfeld der Spalte "Überschriebene Werte" ein roter Platzhalter-Text erscheinen, solange kein kürzerer Änderungstext vom User in das Textfeld eingetragen wurde. Das Aussehen / Verhalten des Platzhalters soll identisch wie beim Feld [Bezeichnung 1](#bezeichnung-1) sein. **Logik, die steuert, welcher Defaultwert gilt:** IF Wert aus Spalte "Aenderungstext" in "from_siv.csv" == "": IF PDM-Kategorie == "Kaufteil": Defaultwert = "Erstanlage" ELSE: Defaultwert = "Erstanlage (von {Indexerfasser})" ELSE: Defaultwert = "" --- #### **Migration** >**Spaltenname in Impfdatei:** Änderungsbeschreibung Es muss vor Erstellung der Impfdatei eine Längenprüfung durchgeführt werden, siehe [Tätigkeiten vor Erstellung der Impfdatei](#tätigkeiten-vor-erstellung-der-impfdatei) --- ### Freigabevermerk >**Pflichtfeld:** Ja, immer --- #### **Spalte 2: SIVAS-Werte** >**Widget:** >**Typ:** Text (mehrzeilig) >**Wert:** Aus Spalte "Freigabevermerk" in "from_siv.csv" **Aufgaben beim Einlesen des Wertes aus "from_siv.csv":** - Semikolon (einschließlich vor- und nachgesetztem Leerzeichen) sollen durch ein Slash mit vor- und nachgesetztem Leerzeichen (" / ") ersetzt werden. Beispiel: - Freigabevermerk in "from_siv.csv": "Verringerte Rissgefahr durch größeren Biegeradius; Kostenreduktion durch geringere Blechstärke" - Freigabevermerk nach dem Einlesen: "Verringerte Rissgefahr durch größeren Biegeradius / Kostenreduktion durch geringere Blechstärke" --- #### **Spalte 3: Überschriebene Werte** >**Widget-Typ:** Text (mehrzeilig) >**Zeichenbegrenzung:** 400 **Bestimmung der Zeichenbegrenzung:** Wie beim Feld [Änderungstext](#änderungstext) **Logik, die steuert, welcher Defaultwert gilt:** IF Wert aus Spalte "Freigabevermerk" in "from_siv.csv" == "": IF PDM-Kategorie == "Kaufteil": Defaultwert = "" ELSE: IF Wert aus Spalte "Version" in "from_siv.csv" == 6 aufeinanderfolgende Zahlen: Freigabevermerk = "Anpassung an neues Indexsystem, Zeichnung mit Versionsnummer {Wert aus Feld 'Version'} weiterhin gültig" ELSE: Defaultwert = "" ELSE: Defaultwert = "" --- #### **Migration** >**Spaltenname in Impfdatei:** Freigabevermerk Es muss vor Erstellung der Impfdatei eine Längenprüfung durchgeführt werden, siehe [Tätigkeiten vor Erstellung der Impfdatei](#tätigkeiten-vor-erstellung-der-impfdatei) --- ### Automatische Zusatzinformationen >**Pflichtfeld:** Nein >**Widget:** >**Typ:** Text (mehrzeilig) >**Zeichenbegrenzung:** 400 >**disabled:** Ja **Logik, die steuert, welche vordefinierten Textblöcke je nach Situation in das Textfeld eingetragen werden sollen:** Hinweis: Die nachfolgend aufgeführten Sektionen "EinzelTextblöcke" und "ComboTextblöcke" sind in der cfg-Datei [Zusatzinformationen.cfg](../cfg/Zusatzinformationen.cfg) enthalten. IF Version == Kleinbuchstabe: IF Trümmer == True OR Rüstcode == "": Text = Sektion "ComboTextblöcke" -> Key "VersionTruemmer" IF Teilenummer in Blacklist: Text = Sektion "ComboTextblöcke" -> Key "VersionTruemmerBlacklist" ELSE IF Teilenummer in Blacklist: Text = Sektion "ComboTextblöcke" -> Key "VersionBlacklist" ELSE IF Werkstoffdiskrepanz == True: Text = Sektion "ComboTextblöcke" -> Key "VersionWerkstoffdiskrepanz" ELSE: Text = Sektion "EinzelTextblöcke" -> Key "Version" ELSE IF Trümmer == True OR "Rüstcode" == "": IF Teilenummer in Blacklist: Text = Sektion "ComboTextblöcke" -> Key "TruemmerBlacklist" ELSE IF Werkstoffdiskrepanz == True: Text = Sektion "ComboTextblöcke" -> Key "TruemmerWerkstoffdiskrepanz" ELSE: Text = Sektion "EinzelTextblöcke" -> Key "Truemmer" --- #### **Migration** >**Spaltenname Impfdatei:** keine eigene Spalte -> Wird zur Definierung des Wertes in der Spalte "ZusaetzlicheInformationen" benötigt, siehe [Impfdateierstellung](#tätigkeiten-im-rahmen-der-impfdateierstellung) ### Benutzerdefinierte Zusatzinformationen >**Pflichtfeld:** Nein >**Widget:** >**Typ:** Text (mehrzeilig) >**disabled:** Nein **Bestimmung der Zeichenbegrenzung:** Die Zeichenbegrenzung berechnet sich wie folgt: Zeichenbegrenzung = 400 - Aktuelle Anzahl an Zeichen im Textfeld [Automatische Zusatzinformationen](#automatische-zusatzinformationen) --- #### **Migration** >**Spaltenname Impfdatei:** keine eigene Spalte -> Wird zur Definierung des Wertes in der Spalte "ZusaetzlicheInformationen" benötigt, siehe [Impfdateierstellung](#tätigkeiten-im-rahmen-der-impfdateierstellung) ## Button Migrieren **Button soll in folgenden Fällen disabled sein:** - Keines der Felder in der Spalte "SIVAS-Werte" ist befüllt --- ### 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. ### Feldprüfungen #### Allgemeine Prüfungen: - Solange nicht alle Pflichtfelder einen Wert aufweisen, muss beim Klick auf den Button "Migrieren" eine ERROR-Messagebox erscheinen, in der alle Pflichtfelder aufgelistet sind, die keinen Wert aufweisen - Es muss bei allen Feldern geprüft werden, ob sie ein unzulässiges Zeichen enthalten. Die Zeichen sind in der ini-Datei [ERP_Item.ini](\\ruledesigner\RDF_Daten\Konfigurator\CustomVaulting\ERP_Item.ini) in Sektion "Settings" unter dem Key "InvalidCharacters" aufgelistet: ![invalid_characters](../doc/Pictures/Invalid_Characters.jpg) Sollten unzulässige Zeichen in den Feldern identifiziert werden, muss eine ERROR-Messagebox ausgegeben werden. In der Messagebox soll jeweils das unzulässige Zeichen und der zugehörige Feldname aufgeführt sein, z.B. wie folgt: ![messagebox_invalid_characters](../doc/Pictures/Messagebox_invalid_characters.jpg) **messagebox-Text:** Unzulässige Zeichen identifiziert: Zeichen: {Zeichentyp} -> Feld: {Feldname} ... - "{Zeichentyp}" muss durch das eigentliche, unzulässige Zeichen ersetzt werden, z.B. ";" - "{Feldname}" muss durch den individuellen Feldnamen ersetzt werden. - Falls mehrere unzulässige Zeichen gleichzeitig auftreten, sollen diese untereinander aufgelistet werden. --- #### Bezeichnung 1 Wenn die Anzahl der Zeichen im Feld [Bezeichnung 1](#bezeichnung-1) > 50 ist und im Feld der Spalte "Überschriebene Werte" keine kürzere Bezeichnung eingetragen wurde, soll beim Klick auf Button "Migrieren" eine ERROR-Messagebox erscheinen, z.B: ![messagebox_bezeichnung](../doc/Pictures/error_bezeichnung.jpg) **messagebox-Text:** Bezeichnung besitzt mehr als 50 Zeichen. Bitte verkürzen! --- #### Halbzeug ohne Sägeliste Wenn das Feld [Rüstcode](#rüstcode) den Wert "SRC Standard Rüstcode" aufweist und das Feld [Halbzeug ohne Sägeliste](#halbzeug-ohne-sägeliste) den Wert "Sägeliste nicht benötigt" besitzt, muss eine ERROR-Messagebox ausgegeben werden, z.B.: ![messagebox_halbzeug_ohne_saegeliste](../doc/Pictures/error_halbzeug_ohne_saegeliste.jpg) **messagebox-Text:** In Sivas prüfen, wieso Haken bei "Halbzeug ohne Sägeliste" trotz Rüstcode "SRC Standard Rüstcode" gesetzt ist. --- #### Ruestcode Wenn die [PDM-Kategorie](#pdm-kategorie) != "Baugruppe" ist und im Feld [Rüstcode](#rüstcode) kein Wert eingetragen ist, muss eine Error-Messagebox erscheinen, z.B.: ![messagebox_ruestcode](../doc/Pictures/error_ruestcode.jpg) **messagebox-Text:** Teilenummer darf nicht ohne Rüstcode migriert werden! --- #### Fertigungsart Tritt eine der nachfolgenden Kombinationen auf, muss eine ERROR-Messagebox erscheinen: - [PDM-Kategorie](#pdm-kategorie) == "Baugruppe" in Verbindung mit einer der nachfolgenden [Fertigungsarten](#fertigungsart): - "3D-drucken" - "extrudieren" - "gießen" - "verpressen" - "strangpressen" - "spritzgießen" - "schweißen" - [PDM-Kategorie](#pdm-kategorie) == "Kaufteil" in Verbindung mit einer der Fertigungsarten aus Sektion "Fertigungsarten" in [Fertigungsarten.cfg](../cfg/Fertigungsarten.cfg) - [PDM-Kategorie](#pdm-kategorie) == "Schweissbaugruppe" und [Fertigungsart](#fertigungsart) != "schweißen" **ERROR-Messagebox:** ![error_fertigungsart](../doc/Pictures/error_fertigungsart.jpeg) **messagebox-Text:** Fertigungsart falsch. Bitte berichtigen! --- #### FOS-Gruppe Tritt eine der nachfolgenden Kombinationen auf, muss eine ERROR-Messagebox erscheinen: - [PDM-Kategorie](#pdm-kategorie) == "Baugruppe" und [FOS-Gruppe](#fos-gruppe) == "0 - Einzelteil" - [PDM-Kategorie](#pdm-kategorie) == "Einzelteil" und [FOS-Gruppe](#fos-gruppe) == "1 - Baugruppe" - [PDM-Kategorie](#pdm-kategorie) == "Schweissbaugruppe" und [FOS-Gruppe](#fos-gruppe) == "1 - Baugruppe" **ERROR-Messagebox:** ![error_fosgruppe](../doc/Pictures/error_fosgruppe.jpg) **messagebox-Text:** FOS-Gruppe falsch. Bitte berichtigen! --- #### Kalkulationsart Tritt eine der nachfolgenden Kombinationen auf, muss eine ERROR-Messagebox erscheinen: - [PDM-Kategorie](#pdm-kategorie) == "Kaufteil" und [Kalkulationsart](#kalkulationsart) == "Eigenbau" - [PDM-Kategorie](#pdm-kategorie) == "Einzelteil" und [Kalkulationsart](#kalkulationsart) == "Kaufteil" - [PDM-Kategorie](#pdm-kategorie) == "Schweissbaugruppe" und [Kalkulationsart](#kalkulationsart) == "Kaufteil" **ERROR-Messagebox:** ![error_kalkulationsart](../doc/Pictures/error_kalkulationsart.jpg) **messagebox-Text:** Kalkulationsart falsch. Bitte berichtigen! --- #### Beschaffungsart Falls die nachfolgenden Kombinationen auftreten muss eine ERROR-Messagebox erscheinen: - [PDM-Kategorie](#pdm-kategorie) == "Baugruppe" und [Beschaffungsart](#beschaffungsart) == "Kaufteil" - [PDM-Kategorie](#pdm-kategorie) == "Schweissbaugruppe" und [Beschaffungsart](#beschaffungsart) == "Kaufteil" - [PDM-Kategorie](#pdm-kategorie) == "Kaufteil" und [Beschaffungsart](#beschaffungsart) == "Eigenbau" **ERROR-Messagebox:** ![error_beschaffungsart](../doc/Pictures/error_beschaffungsart.jpg) **messagebox-Text:** Beschaffungsart falsch. Bitte berichtigen! --- #### Mengeneinheit Tritt eine der nachfolgenden Kombinationen auf, muss eine ERROR-Messagebox erscheinen: - [Rüstcode](#rüstcode) == "SRC Standard Rüstcode" und [Mengeneinheit](#mengeneinheit) != "Stck - Stück" **ERROR-Messagebox:** ![error_mengeneinheit](../doc/Pictures/error_mengeneinheit.jpg) **messagebox-Text:** Mengeneinheit falsch. Bitte berichtigen! --- #### Halbzeug Tritt eine der nachfolgenden Kombinationen auf, muss eine ERROR-Messagebox erscheinen: - [Rüstcode](#rüstcode) == "SRC Standard Rüstcode" und [Halbzeug](#halbzeug) == "WAHR" - [Rüstcode](#rüstcode) == "Trümmerbaugruppe" und [Halbzeug](#halbzeug) == "WAHR" **ERROR-Messagebox:** ![error_halbzeug](../doc/Pictures/error_halbzeug.jpg) **messagebox-Text:** Teilenummer kann kein Halbzeug sein. Bitte berichtigen! --- #### TOS-Gruppe Wenn die eingetragene Zahl im Feld [TOS-Gruppe](#tos-gruppe) nicht als "reference-id"-Objekt in der json-Datei [TOS-Gruppen.json](../cfg/TOS-Gruppen.json) exisitert, muss eine ERROR-Messagebox erscheinen: **ERROR-Messagebox:** ![error_tosgruppe](../doc/Pictures/error_tosgruppe.jpg) **messagebox-Text:** TOS-Gruppe exisitert nicht. Bitte eingetragene Gruppennummer korrigieren oder ergänzen! --- #### Dispogruppe Wenn im Feld [Dispogruppe](#dispogruppe) keine Wert eingetragen ist, muss eine ERROR-Messagebox erscheinen: **ERROR-Messagebox:** ![error_dispogruppe](../doc/Pictures/error_dispogruppe.jpg) **messagebox-Text:** Datensatz kann nicht ohne Dispogruppe migriert werden. Bitte nachpflegen! --- #### Dispolaufgruppe Wenn im Feld [Dispolaufgruppe](#dispolaufgruppe) keine Wert eingetragen ist, muss eine ERROR-Messagebox erscheinen: ![error_dispolaufgruppe](../doc/Pictures/error_dispolaufgruppe.jpg) **messagebox-Text:** Datensatz kann nicht ohne Dispolaufgruppe migriert werden. Bitte nachpflegen! --- #### Ersatz für Wenn die ersetzte Teilenummer im Feld [Ersatz für](#ersatz-für) noch nicht in der Datei [RD_Teilenummern.csv](../data/RD_Teilenummern.csv) existiert, soll eine YESNO-Messagebox erscheinen: ![question_ersatz_fuer](../doc/Pictures/question_ersatz_fuer.jpg) **messagebox-Text:** Ersetzte Teilenummer {Ersetzte Teilenummer} exisitert noch nicht in RuleDesigner. Migration trotzdem durchführen? - Defaultmäßig soll "Nein" gehighlited werden. In tk erzielbar durch "default=no": `messagebox.yesno('Title', 'text', default='no')` - Beim Klick auf "Ja" soll die Migration durchgeführt werden, bei "Nein" nicht. --- #### Ersetzt durch Wenn die Ersatz-Teilenummer im Feld [Ersetzt durch](#ersetzt-durch) noch nicht in der Datei [RD_Teilenummern.csv](../data/RD_Teilenummern.csv) existiert, soll eine YESNO-Messagebox erscheinen: ![question_ersetzt_durch](../doc/Pictures/question_ersetzt_durch.jpg) **messagebox-Text:** Ersatz-Teilenummer {Ersatz-Teilenummer} exisitert noch nicht in RuleDesigner. Migration trotzdem durchführen? - Defaultmäßig soll "Nein" gehighlited werden. In tk erzielbar durch "default=no": `messagebox.yesno('Title', 'text', default='no')` - Beim Klick auf "Ja" soll die Migration durchgeführt werden, bei "Nein" nicht. --- #### Hersteller Wenn der angegebene [Hersteller](#hersteller) in der Spalte "SIVAS-Werte" nicht in der Datei [Hersteller.cfg](/cfg/Hersteller.cfg) existiert muss eine ERROR-Messagebox erscheinen: ![error_hersteller](../doc/pictures/error_hersteller.jpg) **messagebox-Text:** Hersteller nicht in RuleDesigner enthalten. Bitte nachpflegen! --- #### Werkstofftyp Wenn der eingetragene Wert im Feld [Werkstofftyp](#werkstofftyp) nicht in Sektion "Werkstofftyp" der cfg-Datei [Werkstoff.cfg](../cfg/Werkstoff.cfg) enthalten ist (z.B. wenn in ComboBox "*Bitte individuell auswählen*" steht), muss eine ERROR-Messagebox erscheinen: ![error_werkstofftyp](../doc/Pictures/error_werkstofftyp.jpg) **messagebox-Text:** Eingetragener Werkstofftyp exisitert nicht. Bitte korrigeren! --- #### Material Tritt eine der nachfolgenden aufgelisteten Fälle auf, soll eine ERROR-Messagebox (siehe nachfolgendes Bild) erscheinen: - [PDM-Kategorie](#pdm-kategorie) == "Baugruppe" + [Material](#material) != "" (leer) - [PDM-Kategorie](#pdm-kategorie) == "Einzelteil" + [Aus Halbzeug](#aus-halbzeug) == True + [Material](#material) != "" (leer) - [PDM-Kategorie](#pdm-kategorie) == "Kaufteil" + [Material](#material) != "siehe Hersteller" - [PDM-Kategorie](#pdm-kategorie) == "Schweissbaugruppe" + [Material](#material) != "" (leer) - Wenn der eingetragene Wert im Feld [Material](#werkstofftyp) nicht in einer der nachfolgenden Sektionen der cfg-Datei [Werkstoff.cfg](../cfg/Werkstoff.cfg) enthalten ist (z.B. wenn in ComboBox "*Bitte individuell auswählen*" steht): - Stahl - Aluminium - Kunst-/ Verbundstoff - Schwermetall - Festigkeitsklasse ![error_material](../doc/Pictures/error_material.jpg) **messagebox-Text:** Werkstoff falsch. Bitte korrigieren! --- #### Farbe Tritt eine der nachfolgenden aufgelisteten Fälle auf, soll eine ERROR-Messagebox (siehe nachfolgendes Bild) erscheinen: - [Farbe](#farbe) == "" (leer) + eine der nachfolgenden [Oberflächen](#oberfläche): - eloxieren - pulverbeschichten - Masterbatch (Grundfarbe) - lackieren ![error_farbe](../doc/Pictures/error_farbe.jpg) **messagebox-Text:** Teilenummer kann nicht ohne festgelegte Farbe migriert werden! --- #### Änderungstext und Freigabevermerk Wenn die Länge des Änderungstextes oder Freigabevermerks eine Länge von 400 Zeichen überschreitet und in der Spalte "Überschriebene Werte" kein kürzerer Änderungstext eingetragen wurde, muss beim Klick auf den Button "Migrieren" eine ERROR-Messagebox erscheinen. Beim Feld Änderungstext, z.B. mit Text "*Änderungstext weist {Länge Änderungstext in Spalte 'SIVAS-Werte'} auf. Bitte auf 400 Zeichen verkürzen!*". Beim Feld "Freigabevermerk, z.B. mit Text "*Freigabevermerk weist {Länge Freigabevermerk in Spalte 'SIVAS-Werte'} auf. Bitte auf 400 Zeichen verkürzen!*" erscheinen. Beispiel für Änderungstext: ![error_aenderungstext](../doc/Pictures/error_aenderungstext.jpg) ### 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. **Spaltenbefüllungen:** --- #### Path Path = Ursprungsverzeichnis, aus dem das Solid Edge-DataPrepUtility die CAD-Dateien in das Zielverzeichnis (Verzeichnis, aus dem RuleDesigner die CAD-Daten zum Erstellen der Datensätze einliest) kopiert. Der Wert in der Spalte "Path" ergibt sich, indem der Wert aus dem Feld [3D-Modell](#3d-modell) um nachfolgende Elemente verkürzt wird: - den Dateinamen - die Dateiendung - den Backslash vor dem Dateinamen **Beispiel:** Wert in [3D-Modell](#3d-modell) (vor Verkürzung): `\\ssg.local\freigaben\SIVAS_CAD_EDM\Migration\01_Rohdatenpool\4er\400000194.par` Resultierender Wert in Spalte "Path" : `\\ssg.local\freigaben\SIVAS_CAD_EDM\Migration\01_Rohdatenpool\4er` --- #### Filename Filename = Dateiname der Solid Edge-Datei im Ursprungsverzeichnis Der Wert in der Spalte Filename ergibt sich, indem der Wert aus dem Feld [3D-Modell](#3d-modell) bis zum Backslash vor dem Dateinamen gekürzt wird. **Beispiel:** Wert in [3D-Modell](#3d-modell) (vor Verkürzung): `\\ssg.local\freigaben\SIVAS_CAD_EDM\Migration\01_Rohdatenpool\4er\400000194.par` Resultierender Wert in Spalte "Filename": `400000194.par` --- #### New path >**Spaltenname Impfdatei:** New path New path = Zielverzeichnis, von dem aus RuleDesigner die Solid Edge-Dateien zum Erstellen des Datensatzes einliest. Der Pfad ergibt sich durch folgende Logik: IF Datenbank == "Produktiv": New_path = \\ssg.local\freigaben\SIVAS_CAD_EDM\Migration\02_Bedarfspool\ ELSE: New_path = \\ssg.local\freigaben\SIVAS_CAD_EDM\Schulung\Migration\02_Bedarfspool Wenn User, der migriert, noch keinen Ordner in `\\ssg.local\freigaben\SIVAS_CAD_EDM\Schulung\Migration\02_Bedarfspool` besitzt, soll dieser automatisch beim Klick auf "Migrieren" angelegt werden. --- #### 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. --- #### Delete, Document Number, Revision, Project Name, Teamcenter Item Type, Part Type, TC_ImportTime, Last Saved Version, Subject, Category, Keywords In der nachfolgenden Tabelle ist aufgelistet, welche Werte die entsprechenden Spalten in der Impfdatei erhalten sollen: |Spalte |Wert | |:--------------------|:----------| |Delete | "" (leer) | |Document Number | - | |Revision | - | |Project Name | - | |Teamcenter Item Type | - | |Part Type | - | |TC_ImportTime | - | |Last Saved Version | - | |Subject | - | |Category | - | |Keywords | - | --- #### Title Die Wert in der Spalte "Title" wird wie folgt festgelegt: IF PDM-Kategorie == "Baugruppe" OR "Schweissbaugruppe": Title = Wert aus Feld "Bezeichnung 1" + " - BG" ELSE: Title == Wert aus Feld "Bezeichnung 1" Beispiel: - **PDM-Kategorie:** Baugruppe - **Wert in Feld Bezeichnung 1:** Rahmen 1 Beladung Schliesser **Resultierender Wert in Spalte "Title":** Rahmen 1 Beladung Schliesser - BG --- #### Bezeichnung4 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 == "" --- #### Author In der Spalte "Author" soll der Wert aus der Windows-Systemumgebungsvariable `%USERNAME%` eingetragen werden --- #### StartRevision IF Wert in Spalte "AktuellerIndex" in "from_siv.csv" == "": StartRevision = "A" ELSE: StartRevision = Wert aus Spalte "AktuellerIndex" in "from_siv.csv" --- #### Aus Halbzeug Vor die Impfdatei geschrieben wird, müssen die CheckButton-Werte gemappt werden, siehe Tabelle: |Wert in Feld [Aus Halbzeug](#aus-halbzeug) |Wert in Impfdatei | |-------------------------------------------|------------------| |True (Haken gesetzt) |Ja | |False (Haken nicht gesetzt) |"" (kein Wert) | --- #### Fertigungsart Bevor die Fertigungsarten in die Impfdatei geschrieben werden, müssen die eingetragenen Werte gemappt werden, siehe Tabelle: |Wert in Feld [Fertigungsart](#fertigungsart) |Wert in Impfdatei | |---------------------------------------------|-----------------------------| |3D - 3D drucken |3D-drucken | |BI - biegen |biegen | |DR - drehen |drehen | |EX - extrudieren |extrudieren | |FR - fräsen |fräsen | |GI - gießen |gießen | |LW - laser- und wasserstrahlschneiden |laser-/wasserstrahlschneiden | |PR - verpressen |verpressen | |SA - sägen |sägen | |SN - strangpressen |strangpressen | |SP - spritzgießen |spritzgießen | |ST - stanzen |stanzen | |SW - schweißen |schweißen | --- #### FOS-Gruppe Der eingetragene Wert im Feld [FOS-Gruppe](#fos-gruppe) muss als gemappter Wert in die Impfdatei geschrieben werden, siehe rechte Tabellenspalte: |Wert in Feld [FOS-Gruppe](#fos-gruppe) |Wert in Impfdatei | |---------------------------------------|------------------| |0 - Einzelteil |Einzelteil | |1 - Baugruppe |Baugruppe | --- #### Mengeneinheit Der eingetragene Wert im Feld [Mengeneinheit](#mengeneinheit) muss als gemappter Wert in die Impfdatei geschrieben werden, siehe rechte Tabellenspalte: |Wert in Feld [Mengeneinheit](#mengeneinheit) |Wert in Impfdatei | |---------------------------------------------|------------------| |L - Liter |L | |mm - Millimeter |mm | |Stck - Stück |Stck | |M - Meter |m | |m2 - Quadratmeter |m² | |dm³ - Kubikdezimeter |dm³ | |m³ - Kubikmeter |m³ | --- #### Halbzeug Der eingetragene Wert im Feld [Halbzeug](#halbzeug) muss als gemappter Wert in die Impfdatei geschrieben werden, siehe rechte Tabellenspalte: |Wert in Feld [Halbzeug](#halbzeug) |Wert in Impfdatei | |-----------------------------------|------------------| |WAHR |Ja | |FALSCH |"" (leer) | --- #### TOS-Gruppe Die Zahlen der TOS-Gruppennummer bilden einen Pfad, d.h. die nächste Zahl in der Gruppennummer ist immer das Kind der aktuellen Gruppennummer. Die aktuelle Gruppennummer setzt sich dabei immer aus den vorherigen Zahlen zusammen. **Beispiel:** Bei Gruppennummer 1234 wäre: - "1" die erste Gruppennummer. Sie besitzt keine Eltern-Gruppennummer - "2" das Kind der Gruppennummer "1". Sie selbst besitzt die Gruppennummer "12" - "3" das Kind der Gruppennummer "12". Sie selbst besitzt die Gruppennummer "123" - "4" das Kind der Gruppennummer "123". Sie selbst besitzt die Gruppennummer "1234" Jeder Gruppennummer repräsentiert einen sprechenden Wert (siehe anhand Gruppennummer 3303): |Gruppennummer |Wert | |-------------:|-------------------------| |3 |Schönenberger Produkt | |33 |ILS IntraLogistikSystem | |330 |ILS 2.0 | |3303 |Laufprofil 2.0 | Die sprechenden Werte sind in der json-Datei [TOS-Gruppen.json](../cfg/TOS-Gruppen.json) jeweils unter den "children"-Objekten aufgelistet. Die Werte müssen in der Impfdatei in die Spalten der Eltern-Gruppennummern eingetragen werden: |Nr. |Spaltenname in Impfdatei |Wert in Impfdatei | |----:|---------------------------|-------------------------| |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 | Die Spaltennamen sind in der json-Datei [TOS-Gruppen.json](../cfg/TOS-Gruppen.json) jeweils unter den "reference-ids"-Objekten aufgelistet. --- #### Dispogruppe Der eingetragene Wert im Feld [Dispogruppe](#dispogruppe) muss als gemappter Wert in die Impfdatei geschrieben werden, siehe rechte Tabellenspalte: |Wert in Feld [Dispogruppe](#dispogruppe) |Wert in Impfdatei | |-----------------------------------------|----------------------| |10 - Fahrstrecke |Fahrstrecke | |20 - Förderer |Förderer | |30 - Gerüst |Gerüst | |40 - Betriebsmittel |Betriebsmittel | |50 - Automation |Automation | |60 - Kleinteile |Kleinteil | |70 - Rohmaterial |Rohmaterial | |80 - Sonstiges Intern |Sonstiges Intern | |90 - Baustelleneinrichtung |Baustelleneinrichtung | |100 - Sonderkonstruktionen |Sonderkonstruktionen | --- #### Dispolaufgruppe Der eingetragene Wert im Feld [Dispolaufgruppe](#dispolaufgruppe) muss als gemappter Wert in die Impfdatei geschrieben werden, siehe rechte Tabellenspalte: |Wert in Feld [Dispolaufgruppe](#dispolaufgruppe) |Wert in Impfdatei | |-------------------------------------------------|--------------------------------------| |10 - Omniflo |Omniflo | |20 - Intra Logistic System + Alt-HFS |Intra Logistic System + alt-HFS | |30 - Fremd-Transportsysteme + SSG-Anbauten |Fremd-Transportsysteme + SSG-Anbauten | |40 - Spinnereikomponenten |Spinnereikomponente | |45 - Automotiv |Automotiv | |50 - Nicht eindeutig, Sonder |Nicht eindeutig, Sonder | --- #### ZusaetzlicheInformationen Die Werte aus den Feldern [Automatische Zusatzinformationen](#automatische-zusatzinformationen) und [Benutzerdefinierte Zusatzinformationen](#benutzerdefinierte-zusatzinformationen) müssen vor dem Eintragen in die Impfdatei zusammengesetzt werden ### Tätigkeiten nach der Impfdateierstellung 1. Kopieren des aktuellen Standes der RuleDesigner-Datenbank (nachdem RDX-Prozess ausgeführt wurde). 2. Leerung der aktuellen Maske ## Button "Speichern" ## Button "Zurücksetzen" Beim Klick auf den Button "Zurücksetzen" soll die Datei "from_siv.csv" zur zugehörigen Teilenummer erneut abgeleitet werden. Hintergrund: Sollte sich in einem Feld der Spalte "SIVAS-Werte" ein Wert befinden, der in Sivas berichtigt werden muss, bevor die Migration durchgeführt werden kann