Frage:
Ist es möglich mit Dispatch für vorhandene Datei eine neue Seriennummer zu erstellen, welche aus von dem PDM Seriennummerngenerator kommt?
Antwort:
Es gibt im Dispatch keine integrierte Funktion die eine Seriennummer erzeugen kann.
Allerdings ist es mit etwas tricksen möglich dennoch Seriennummern zu erzeugen.
Folgende Grundvoraussetzungen sind nötig:
Es muss einen Ordner geben, auf den alle die eine neue Seriennummer erzeugen wollen die Rechte haben „Datei hinzufügen/umbenennen“, „Datei löschen“, „Datei einchecken“, „Datei auschecken“
Wir legen uns für unser Beispiel einen Ordner unter:
C:\PDM\Vorlagen\Temp\
an und setzen für die Gruppe Konstruktion die o.g. Rechte
Danach erstellen wir uns eine neue Datenkarte für den Dateityp .txt
Auf dieser Karte erstellen wir genau ein Feld, welches mit einer Variablen verknüpft wird. Welche das ist, ist erstmal egal. Am besten eine Hilfsvariable.
Für dieses Eingabefeld stellen wir einen Standardwert auf Seriennummer (1) ein und wählen uns die gewünschte Seriennummer (2) aus.
Diese Karte speichern wir in den eben erstellten Ordner C:\PDM\Vorlagen\Temp\ ab und stellen ein das sie für den Dateityp txt gilt.
Nun muss noch ein neuer Regestrieschlüssel erstellt werden, den wir verwenden um uns die neue Seriennummer zu merken.
Hinweis: Nehmen Sie nur Änderungen an ihrer Registry vor wenn Sie wissen was Sie tun.
Starten Sie den Registrieeditor: Windowstaste -> regedit
Legen Sie den neuen Schlüssel: HKEY_CURRENT_USER\TEMPPDM an.
Erstellen Sie einen neuen Wert vom Typ Zeichenfolgen mit dem Namen SN.
Nun erstellen wir die 2 notwendigen Dispatch-Skripte
Skript1 – Get New Serial Number
Dieses Skript wird später aufgerufen um die Nummer zu erzeugen
Wir benötigen eine Block für alle Dokument
Innerhalb dieses Blockes erstellen wir folgende Befehle:
Datei kopieren -> Quelle: %TempPath%template.txt; Ziel: %TempPath%temp.txt
Datei löschen -> %TempPath%template.txt (auch Dateien im Tresor löschen markieren)
Datei umbenennen -> Pfad zur Datei: %TempPath%temp.txt;
Neuer Dateiname: %TempPath%template.txt
Datei einchecken -> %TempPath%template.txt
Datenkartenvariable setzen -> ausgewählte Datei oder Ordner; Zielvariable: Artikelnummer; Wert: Benutzervariable „NewSN“
Weiterhin benötigen wir noch folgende Benutzervariablen:
NewSN -> Typ: Wert aus Registry, Wert: HKEY_CURRENT_USER\TEMPPDM\SN
TempPath -> Typ: Text, Wert: Rootordnerpdm\Vorlagen\Temp\
Skript2 – Add New SN to Registry on add file command
Dieses Skript reagiert auf das hinzufügen einer neuen Datei temp.txt innerhalb des vorgegebenen Ordners:
E:\DPSStandarddatenbank\Test\Seriennummern via Dispatch\temp\temp.txt
Hier wird nur ein Befehl benötigt, der den Registriewert schreibt
Registriewert schreiben -> Schlüssel: HKEY_CURRENT_USER\TEMPPDM\SN; Wert: %SNfromCard%
Typ: String
Die Benutzerdefiniertevariable SNfromCard muss noch erstellt werden.
SNfromCard -> Typ: Variable von ausgewählter Datenkarte; Datenkartenvariable: Die Variable die wir auf unsere neu „Minidatenkarte gesetzt haben“ x_HilfsVariable
Wenn wir nun eine Datei auswählen die die Eigenschaftsvariable Artikelnummern enthält, diese auschecke und mit RMB im Kontextmenü „Get new SN“ wählen, wird für diese Datei eine neue Seriennummer generiert und in das Feld Artikelnummer eingetragen.