Files
CreoMigrate/doc/spezifikation.md
T

92 KiB

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 in den nachfolgenden Feldspezifikationen, dass beim Doppelklick auf eine Teilenummer im Treeview, die zum ersten mal bearbeitet wird (also noch keine json-Speicherdatei im work-Ordner exisitiert (siehe oben Punkt 2)), ein bestimmter, voreingestellter Wert in das Feld eingetragen / vorausgewählt wird
  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. Beispiel: bei einem Eingabefeld (Entry) sorgt der state "readonly" dafür, dass kein Text in das Eingabefeld eingetragen, aber der Text daraus kopiert werden kann. Hingegen kann beim state "disabled" weder Text eingetragen, noch kopiert werden. Wird überhaupt kein state vorgegeben, kann der User wiederum sowohl Text eingeben, als auch Text kopieren.
  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 (der Aufruf des Prozesses erfolgt im Pythonprogramm 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 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


PDM-Kategorie

Pflichtfeld: Ja, immer


Spalte 3: Überschriebene Werte

Widget:
Typ: ComboBox
Werte: Sektion "Kategorien" in 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 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

  • Haken in CheckButton definiert je nach Situation den Pfad zum 3D-Modell. Dies ist im Feld 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
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

Auswählbare Dateitypen bei Klick auf Button "Durchsuchen":
Es sollen ausschließlich .par oder .asm-Dateien auswählbar sein:
choosable_file_extensions

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


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

Hinweis:
GIF dient nur zur kurzen Veranschaulichung, wie der Platzhaltertext aussehen könnte und wurde (mit abgewandeltem Text) durch Code aus folgender Stackoverflow-Antwort erstellt -> muss ggf. angepasst werden, da in der Antwort kein ttk verwendet wurde!


Migration

Spaltenname in Impfdatei: Bezeichnung2


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


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

      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


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


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 "Einzelteil" hängt die Allgemeintoleranz von der Fertigungsart ab. In der nachfolgenden Tabelle ist aufgelistet, in welcher Sektion der Datei Fertigungsarten.cfg die Allgemeintoleranzwerte definiert sind, die bei den jeweiligen Fertigungsarten in der ComboBox auswählbar sein sollen:

    Wert im Feld Fertigungsart Sektion in 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 "Einzelteil" soll abhängig von der gewählten Fertigungsart automatisch eine vordefinierte Allgemeintoleranzklasse eingetragen werden. Die entsprechenden Defaultwerte sind der rechten Tabellenspalte zu entnehmen:

    Wert im Feld 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


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


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

    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


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

    messagebox-Text:

     Bitte prüfen, ob Mengeneinheit ≠ "M - Meter" korrekt ist!
    

Migration

Spaltenname Impfdatei: Mengeneinheit


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


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:


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
Defaultwert: "" (leer) state: readonly


Migration

Spaltenname Impfdatei: Dispogruppe


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
Defaultwert: "" (leer)
state: readonly


Migration

Spaltenname Impfdatei: Dispolaufgruppe


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

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

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
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 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):

In den nachfolgenden Fällen soll ggf. ein Defaultwert eingetragen werden:

  • Bei PDM-Kategorie == "Einzelteil + 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 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

    Dieses Material ist als Objekt in der json-Datei Materialübersetzung.json enthalten (siehe nachfolgendes Bild):

    material_materialuebersetzung_json

    • Wenn das Material nicht als json-Objekt exisitert, soll eine Info-Messagebox erscheinen (vor Klick auf "Migrieren"):

      Material_fehlend

      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

        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

      • 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

        Individual_werkstofftyp_selection


Migration

Spaltenname Impfdatei: WerkstofftypNE

Vor der Erstellung der Impfdatei muss geprüft werden, ob ein gültiger Werkstofftyp eingetragen wurde, siehe Feldprüfung Werkstofftyp


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):

In den nachfolgenden Fällen soll ggf. ein Defaultwert eingetragen werden:

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 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

Dieses Material ist als Objekt in der json-Datei Materialübersetzung.json enthalten (siehe nachfolgendes Bild):

material_materialuebersetzung_json

  • Wenn der Werkstoff nicht als json-Objekt exisitert, soll nichts passieren (erforderliche info-messagebox wird bereits durch das Feld 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

      Dieser Wert (PA 6 GF 30) wird dann als Defaultwert in das Textfeld der ComboBox eingetragen (siehe nachfolgendes Bild):

      Default_Werkstoff

    • 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

      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

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 ab.
Die Werkstofftyp-abhängigen Dropdownwerte sind in verschiedenen Sektionen der cfg-Datei Werkstoff.cfg enthalten.
Welche Sektion bei welchem Werkstofftyp gilt, ist in der rechten Spalte der nachfolgenden Tabelle aufgelistet:

Wert im Feld Werkstofftyp Sektion in Werkstoff.cfg
Stahl Stahl
Aluminium Aluminium
Kunst-/ Verbundstoff Kunst-/ Verbundstoff
Schwermetall Schwermetall
Festigkeitsklasse Festigkeitsklasse

Wenn kein Wert im Feld 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

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):

In den nachfolgenden Fällen soll ggf. ein Defaultwert eingetragen werden:

  • Gilt PDM-Kategorie == "Einzelteil" + 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 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

Dieses Material ist als Objekt in der json-Datei Materialübersetzung.json enthalten (siehe nachfolgendes Bild):

material_materialuebersetzung_json

  • Wenn der Werkstoff nicht als json-Objekt exisitert, soll nichts passieren (erforderliche info-messagebox wird bereits durch das Feld 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

      Der Wert des Keys (Masterbatch (Grundfarbe)) wird dann als Defaultwert in das Textfeld der ComboBox eingetragen (siehe nachfolgendes Bild):

      Default_Oberflaeche

    • Wenn der Key "Oberfläche" nicht exisitert, soll im Gegensatz zu den ComboBoxen der Felder Werkstofftyp und 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 ab.
Die Werkstofftyp-abhängigen Dropdownwerte sind in verschiedenen Sektionen der cfg-Datei Oberflächenbehandlung.cfg enthalten.
Welche Sektion bei welchem Werkstofftyp gilt, ist in der rechten Spalte der nachfolgenden Tabelle aufgelistet:

Wert in Feld Werkstofftyp Sektion in Oberflächenbehandlung.cfg
Stahl OberflächenbehandlungStahl
Aluminium OberflächenbehandlungAluminium
Kunst-/ Verbundstoff OberflächenbehandlungKunsVerbund
Schwermetall OberflächenbehandlungSchwermetall
Festigkeitsklasse OberflaechenbehandlungNormteil

Wenn kein Wert im Feld Werkstofftyp oder Material vorliegt, dürfen auch keine Dropdownwerte in der ComboBox wählbar sein.

Veränderung Werkstofftyp:
Erfolgt eine Wertänderung im Feld 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):

In den nachfolgenden Fällen soll ggf. ein Defaultwert eingetragen werden:

  • Gilt PDM-Kategorie == "Einzelteil" + 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 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

    Dieses Material ist als Objekt in der json-Datei Materialübersetzung.json enthalten (siehe nachfolgendes Bild):

    material_materialuebersetzung_json

    • Wenn der Werkstoff nicht als json-Objekt exisitert, soll nichts passieren (erforderliche info-messagebox wird bereits durch das Feld 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

        Der Wert des Keys (in diesem Fall "RAL 5015") wird dann als Defaultwert in das Textfeld der ComboBox eingetragen (siehe nachfolgendes Bild):

        Default_Farbe

      • Wenn der Key "Farbe" nicht exisitert, soll im Gegensatz zu den ComboBoxen der Felder Werkstofftyp und 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 ab.
Die Oberflächen-abhängigen Dropdownwerte sind in verschiedenen Sektionen der cfg-Datei Farben.cfg enthalten.
Welche Sektion bei welcher Oberflächenbehandlung gilt, ist in der rechten Spalte der nachfolgenden Tabelle aufgelistet:

Wert im Feld Oberfläche Werte aus Sektion in Farben.cfg
eloxieren FarbeEloxieren
lackieren Farbauswahl
Masterbatch (Grunfarbe) Farbauswahl
pulverbeschichten Farbauswahl

Wenn kein Wert im Feld Werkstofftyp, Material oder 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 oder 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

Version

Pflichtfeld: Nein


Spalte 2: SIVAS-Werte

Widget:
Typ: Entry

Wert: Aus Spalte "Version" in "from_siv.csv"

In diesem Feld soll informativ der Wert aus dem SIVAS-Feld "Version" dargestellt werden. Der Feldwert wird für die Bestimmung des Freigabevermerks benötigt


Änderungsindex

Pflichtfeld: Ja


Spalte 2: SIVAS-Werte

Widget: Typ: Entry

Wert: Aus Spalte "AktuellerIndex" in "from_siv.csv"


Spalte 3: Überschriebene Werte

Widget:
Typ: Entry
state: disabled

Logik, die steuert, welcher Defaultwert gilt:

IF Wert in Spalte "AktuellerIndex" in "from_siv.csv" == "" (leer):
    Defaultwert = "A"

ELSE IF Wert in Spalte "AktuellerIndex" in "from_siv.csv" == Kleinbuchstabe:
    Defaultwert = Großbuchstabe (des Buchstabens, der in Spalte "AktuellerIndex" steht)

    Beispiel für diesen Fall:
    In Spalte "AktuellerIndex" steht der Kleinbuchstabe "b". Dann soll in das Entry-Feld der Großbuchstabe "B" eingetragen werden

ELSE:
    Defaultwert = "" (leer)

Migration

Spaltenname Impfdatei: StartRevision


Ä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 gegebenenfalls 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 sein.

Logik, die steuert, welcher Defaultwert gilt:

IF Wert aus Spalte "Aenderungstext" in "from_siv.csv" == "" (leer):

    IF Wert aus Spalte "AktuellerIndex" in "from_siv.csv" == "" (leer):
        Defaultwert = "Erstanlage"

    ELSE:
        Defaultwert = "Erstanlage (von {Wert aus Spalte "Indexerfasser" in "from_siv.csv"})"

ELSE:
    Defaultwert = "" (leer)

Migration

Spaltenname in Impfdatei: Änderungsbeschreibung

Es muss vor Erstellung der Impfdatei eine Längenprüfung durchgeführt werden, siehe Feldprüfung Änderungstext


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 gegebenenfalls 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

Logik, die steuert, welcher Defaultwert gilt:

IF Wert aus Spalte "Freigabevermerk" in "from_siv.csv" == "":

    IF PDM-Kategorie == "Kaufteil":
        Defaultwert = "" (leer)

    ELSE:

        IF Wert aus Spalte "Version" in "from_siv.csv" == genau 6 aufeinanderfolgende Zahlen:
            Freigabevermerk = "Anpassung an neues Indexsystem, Zeichnung mit Versionsnummer {Wert aus Spalte 'Version' in "from_siv.csv"} weiterhin gültig"

        ELSE:
            Defaultwert = "" (leer)

ELSE:
    Defaultwert = "" (leer)

Migration

Spaltenname in Impfdatei: Freigabevermerk

Es muss vor Erstellung der Impfdatei eine Längenprüfung durchgeführt werden, siehe Feldprüfung Freigabevermerk


Automatische Zusatzinformationen

Pflichtfeld: Nein

Widget:
Typ: Text (mehrzeilig) Zeichenbegrenzung: 400
state: readonly

Logik, die steuert, welcher vordefinierte Textblock je nach Situation in das Textfeld eingetragen werden soll:

  • Die nachfolgend aufgeführten Sektionen "EinzelTextblöcke" und "ComboTextblöcke" sind in der cfg-Datei Zusatzinformationen.cfg enthalten.

  • Wenn in den nachfolgenden aufgelisteten Fällen der Fall "Text = Sektion "EinzelTextblöcke" -> Key "Kleinbuchstabe" gilt, muss der Text "{"Änderungsindex"}", der sich innerhalb des zutreffenden Textblockes in Zusatzinformationen.cfg befindet, durch den Wert aus "self.aenderungsindex_neu" ersetzt werden (also den Wert aus dem Feld Änderungsindex in der GUI-Spalte "Überschrieberne Werte")

    IF Änderungsindex == Kleinbuchstabe:
    
        IF Trümmer == True OR Rüstcode == "":
            Text = Sektion "ComboTextblöcke" -> Key "KleinbuchstabeTruemmer"
    
            IF Teilenummer in Blacklist:
                Text = Sektion "ComboTextblöcke" -> Key "KleinbuchstabeTruemmerBlacklist"
    
        ELSE IF Teilenummer in Blacklist:
            Text = Sektion "ComboTextblöcke" -> Key "KleinbuchstabeBlacklist"
    
        ELSE IF Werkstoffdiskrepanz == True:
            Text = Sektion "ComboTextblöcke" -> Key "KleinbuchstabeWerkstoffdiskrepanz"
    
        ELSE:
            Text = Sektion "EinzelTextblöcke" -> Key "Kleinbuchstabe"
    
    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 - Zusätzliche Informationen

Benutzerdefinierte Zusatzinformationen

Pflichtfeld: Nein

Widget:
Typ: Text (mehrzeilig) state: keiner

Bestimmung der Zeichenbegrenzung:
Die Zeichenbegrenzung berechnet sich wie folgt:

Zeichenbegrenzung = 400 - Aktuelle Anzahl an Zeichen im Textfeld Automatische Zusatzinformationen

Sobald die Zeichenbegrenzung erreicht ist soll der User keine weiteren Zeichen eintippen können, bzw. wenn der User weitere Zeichen eintippt, sollen diese nicht mehr dargestellt werden.


Migration

Spaltenname Impfdatei: keine eigene Spalte -> Wird zur Definierung des Wertes in der Spalte "ZusaetzlicheInformationen" benötigt, siehe Impfdateierstellung - Zusätzliche Informationen

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 (unabhängig davon, ob es sich um ein Pflichtfeld handelt oder nicht) geprüft werden, ob sie unzulässgie Zeichen enthalten. Die unzulässigen Zeichen sind in der ini-Datei ERP_Item.ini in Sektion "Settings" unter dem Key "InvalidCharacters" aufgelistet:

    invalid_characters

    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

    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, können diese entweder untereinander in einer Messagebox aufgelistet werden. Alternativ (falls einfacher implementierbar) kann auch für jedes Feld, in dem ein unzulässiges Zeichen festgestellt wurde, eine eigene Messagebox ausgegeben werden

Bezeichnung 1

Wenn die Anzahl der Zeichen im Feld 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

messagebox-Text:

Bezeichnung besitzt mehr als 50 Zeichen. Bitte verkürzen!

Halbzeug ohne Sägeliste

Wenn das Feld Rüstcode den Wert "SRC Standard Rüstcode" aufweist und das Feld Halbzeug ohne Sägeliste den Wert "Sägeliste nicht benötigt" besitzt, muss eine ERROR-Messagebox ausgegeben werden, z.B.:

messagebox_halbzeug_ohne_saegeliste

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 != "Baugruppe" ist und im Feld Rüstcode kein Wert eingetragen ist, muss eine Error-Messagebox erscheinen, z.B.:

messagebox_ruestcode

messagebox-Text:

Teilenummer darf nicht ohne Rüstcode migriert werden!

Fertigungsart

Tritt eine der nachfolgenden Kombinationen auf, muss eine ERROR-Messagebox erscheinen:

ERROR-Messagebox:

error_fertigungsart

messagebox-Text:

Fertigungsart falsch. Bitte berichtigen!

FOS-Gruppe

Tritt eine der nachfolgenden Kombinationen auf, muss eine ERROR-Messagebox erscheinen:

ERROR-Messagebox:

error_fosgruppe

messagebox-Text:

FOS-Gruppe falsch. Bitte berichtigen!

Kalkulationsart

Tritt eine der nachfolgenden Kombinationen auf, muss eine ERROR-Messagebox erscheinen:

ERROR-Messagebox:

error_kalkulationsart

messagebox-Text:

Kalkulationsart falsch. Bitte berichtigen!

Beschaffungsart

Falls die nachfolgenden Kombinationen auftreten muss eine ERROR-Messagebox erscheinen:

ERROR-Messagebox:

error_beschaffungsart

messagebox-Text:

Beschaffungsart falsch. Bitte berichtigen!

Mengeneinheit

Tritt eine der nachfolgenden Kombinationen auf, muss eine ERROR-Messagebox erscheinen:

ERROR-Messagebox:

error_mengeneinheit

messagebox-Text:

Mengeneinheit falsch. Bitte berichtigen!

Halbzeug

Tritt eine der nachfolgenden Kombinationen auf, muss eine ERROR-Messagebox erscheinen:

ERROR-Messagebox:

error_halbzeug

messagebox-Text:

Teilenummer kann kein Halbzeug sein. Bitte berichtigen!

TOS-Gruppe

Wenn die eingetragene Zahl im Feld TOS-Gruppe nicht als "reference-id"-Objekt in der json-Datei TOS-Gruppen.json exisitert, muss eine ERROR-Messagebox erscheinen:

ERROR-Messagebox:

error_tosgruppe

messagebox-Text:

TOS-Gruppe exisitert nicht. Bitte eingetragene Gruppennummer korrigieren oder ergänzen!

Dispogruppe

Wenn im Feld Dispogruppe keine Wert eingetragen ist, muss eine ERROR-Messagebox erscheinen:

ERROR-Messagebox:

error_dispogruppe

messagebox-Text:

Datensatz kann nicht ohne Dispogruppe migriert werden. Bitte nachpflegen!

Dispolaufgruppe

Wenn im Feld Dispolaufgruppe keine Wert eingetragen ist, muss eine ERROR-Messagebox erscheinen:

error_dispolaufgruppe

messagebox-Text:

Datensatz kann nicht ohne Dispolaufgruppe migriert werden. Bitte nachpflegen!

Ersatz für

Wenn die ersetzte Teilenummer im Feld Ersatz für noch nicht in der Datei RD_Teilenummern.csv existiert, soll eine YESNO-Messagebox erscheinen:

question_ersatz_fuer

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 noch nicht in der Datei RD_Teilenummern.csv existiert, soll eine YESNO-Messagebox erscheinen:

question_ersetzt_durch

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 in der Spalte "SIVAS-Werte" nicht in der Datei Hersteller.cfg existiert muss eine ERROR-Messagebox erscheinen:

error_hersteller

messagebox-Text:

Hersteller nicht in RuleDesigner enthalten. Bitte nachpflegen!

Werkstofftyp

Wenn der eingetragene Wert im Feld Werkstofftyp nicht in Sektion "Werkstofftyp" der cfg-Datei Werkstoff.cfg enthalten ist (z.B. wenn in ComboBox "Bitte individuell auswählen" steht), muss eine ERROR-Messagebox erscheinen:

error_werkstofftyp

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:

error_material

messagebox-Text:

Werkstoff falsch. Bitte korrigieren!

Farbe

Tritt eine der nachfolgenden aufgelisteten Fälle auf, soll eine ERROR-Messagebox (siehe nachfolgendes Bild) erscheinen:

  • Farbe == "" (leer) + eine der nachfolgenden Oberflächen:
    • eloxieren
    • pulverbeschichten
    • Masterbatch (Grundfarbe)
    • lackieren

error_farbe

messagebox-Text:

Teilenummer kann nicht ohne festgelegte Farbe migriert werden!

Aenderungstext

Wenn die Länge des Textes im Feld Änderungstext 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 (siehe nachfolgendes Bild) erscheinen:

error_aenderungstext

messagebox-Text:

Änderungstext bitte auf 400 Zeichen verkürzen!

Freigabevermerk

Wenn die Länge des Textes im Feld Freigabevermerk eine Länge von 400 Zeichen überschreitet und in der Spalte "Überschriebene Werte" kein kürzerer Freigabevermerk eingetragen wurde, muss beim Klick auf den Button "Migrieren" eine ERROR-Messagebox (siehe nachfolgendes Bild) erscheinen:

error_aenderungstext

messagebox-Text:

Freigabevermerk bitte auf 400 Zeichen verkürzen!

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 um nachfolgende Elemente verkürzt wird:

  • den Dateinamen
  • die Dateiendung
  • den Backslash vor dem Dateinamen

Beispiel:
Wert in 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 bis zum Backslash vor dem Dateinamen gekürzt wird.

Beispiel:
Wert in 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 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 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 muss als gemappter Wert in die Impfdatei geschrieben werden, siehe rechte Tabellenspalte:

Wert in Feld FOS-Gruppe Wert in Impfdatei
0 - Einzelteil Einzelteil
1 - Baugruppe Baugruppe

Mengeneinheit

Der eingetragene Wert im Feld Mengeneinheit muss als gemappter Wert in die Impfdatei geschrieben werden, siehe rechte Tabellenspalte:

Wert in Feld Mengeneinheit Wert in Impfdatei
L - Liter L
mm - Millimeter mm
Stck - Stück Stck
M - Meter m
m2 - Quadratmeter
dm³ - Kubikdezimeter dm³
m³ - Kubikmeter

Halbzeug

Der eingetragene Wert im Feld Halbzeug muss als gemappter Wert in die Impfdatei geschrieben werden, siehe rechte Tabellenspalte:

Wert in Feld 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 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 jeweils unter den "reference-ids"-Objekten aufgelistet.


Dispogruppe

Der eingetragene Wert im Feld Dispogruppe muss als gemappter Wert in die Impfdatei geschrieben werden, siehe rechte Tabellenspalte:

Wert in Feld 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 muss als gemappter Wert in die Impfdatei geschrieben werden, siehe rechte Tabellenspalte:

Wert in Feld 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 und 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