| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für PTC CREO |
| |
 | TFH Technical Services B.V. wird Teil der MAIT Gruppe, eine Pressemitteilung
|
Autor
|
Thema: ModelManager: Nummern - Generator für Instanzname (1786 mal gelesen)
|
krambambulin Mitglied Konstrukteur

 Beiträge: 10 Registriert: 19.02.2002
|
erstellt am: 08. Apr. 2004 11:10 <-- editieren / zitieren --> Unities abgeben:         
Grüezi! Ich habe die Aufgabe, ModelManager bei uns einzuführen. Die Installation von ORACLE und ModelManager mit Hilfe der Anleitung in eSupportMarketplace und dem Telefon-Support von CoCreate ging hervorragend - läuft einwandfrei. Nun meine Anpassung/Frage: Im (Feinstanz-)Werkzeugbau hat jedes Werkzeug einen 'Stempel'. Da die Datenbank jedoch einen einmaligen (Instanz-)Namen verlangt, soll dieser nun mit einer Laufnummer eindeutig benennt werden. Mich in Lisp einzuarbeiten, trau ich mir zu. - Aber wo soll ich diese Zeilen einfügen, dass diese Laufnummern direkt beim ersten Speichern vergeben werden? Ich kann mir gut vorstellen, nicht der einzige mit diesem Problem zu sein. grüsse freundlich Daniel Abderhalden Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
JuergenG Mitglied
 Beiträge: 3 Registriert: 12.02.2003
|
erstellt am: 13. Apr. 2004 15:32 <-- editieren / zitieren --> Unities abgeben:          Nur für krambambulin
Für den ModelManagager gibt es einen Nummerngenarator. Es handelt sich hier um einen Servergesteuerten Nummerngenarator, der über eine Textdatei konnfiguriert werden kann. Es ist ein Standardprodukt, das vielseitig eingesetzt werden kann. Es gibt hier zu mehreren Systemen einen Client, darunter auch für den ModelManager. Gruß Jürgen Greiner Weitere Infos über jgreiner@inneo.de ------------------ Jürgen Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
fleischt Mitglied CAD/PDM Betreuer

 Beiträge: 35 Registriert: 13.02.2004
|
erstellt am: 14. Apr. 2004 11:48 <-- editieren / zitieren --> Unities abgeben:          Nur für krambambulin
Ich hab meinen Nummerngenerator in Java programmiert. In der Business-Objekt-Klasse für dein Datenbank-Objekt überschreibst du einfach die preApply-Methode, die wird unmittelbar vor dem Speichern des Objekts in die Datenbank aufgerufen. In etwa so: public void preApply(boolean keepOpen) throws WMException { super.preApply(keepOpen); if (isNew()) { // prüfen, ob es sich um ein neues Element handelt setValue("Nummer",meinNummernGenerator.nächsteNummer()); } } Gruß Thomas PS: Fände ich cool, wenn hier langsam mal auch fachliche Diskussion über MM anfangen und nicht nur immer "Gibt es überhaupt jemanden, der MM einsetzen will?" :-) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ch34 Mitglied

 Beiträge: 12 Registriert: 03.03.2004 OSDD 12.01d OSDM 12.01d Drawing- ModelManager 12.01c
|
erstellt am: 15. Apr. 2004 11:06 <-- editieren / zitieren --> Unities abgeben:          Nur für krambambulin
Hallo Thomas, ist ja Interessant, muss wohl ein Programmiere oder Java Spezialist sein um einen Nummergenerator einzubauen? Ist das von einem Nichtprogrammierer (nur ME10 u. bisschen Lisp) überhaupt möglich? Kannst du mir den Generator zur Verfügung stellen und das ganze genauer erklären? Grüße Christian ------------------ Grüße Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
fleischt Mitglied CAD/PDM Betreuer

 Beiträge: 35 Registriert: 13.02.2004
|
erstellt am: 16. Apr. 2004 10:38 <-- editieren / zitieren --> Unities abgeben:          Nur für krambambulin
Hallo Christian, zur Verfügung kann ich meinen Nummerngenerator leider nicht so einfach stellen. In Wahrheit ist er nämlich deutlich komplizierter, als ich in meinem kleinen Beispiel beschrieben habe. Aber ich kann das Prinzip mal kurz beschreiben: Wir haben das über eine eigene WorkManager-Tabelle geregelt, in der die verschiedenen Nummerkreise aufgezählt sind. Jeder Nummernkreis hat ein Attribut, in dem der aktuelle Index drin steht. Jedes Mal, wenn ein Benutzer eine Nummer zieht, wird dieser Wert erhöht. Noch komplizierter wurde die Sache dann bei mir, weil diese Nummernkreis-Funktion schon als Makro programmiert war, und ich dieses Makro dann von Java aus aufrufe, um nicht die ganze Logik noch mal neu schreiben zu müssen.... Zum Thema "Programmierer / Java-Spezialist": Ja, Java ist schon etwas schwieriger zu erlernen als Makro-Programmierung. (Wobei: Wer sich im Klammer-Dschungle von Lisp zurechtfindet, der wird auch Java lernen können *g*). Und: es lohnt sich! Java ist mal echt ne richtig schöne Programmiersprache, während die Makrosprache halt doch nur ne Krankheit war. Ich habe aber auch das Glück, dass ich von Haus aus Informatiker bin, und 90% meiner Zeit der OSM-Programmierung widmen kann. Für CAD-Leute, die nebenher noch den WorkManager betreuen sollen, ist es sicherlich recht schwierig, sich da richtig einzuarbeiten. Gruß Thomas Fleischmann [Diese Nachricht wurde von fleischt am 16. Apr. 2004 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ch34 Mitglied

 Beiträge: 12 Registriert: 03.03.2004 OSDD 12.01d OSDM 12.01d Drawing- ModelManager 12.01c
|
erstellt am: 16. Apr. 2004 12:04 <-- editieren / zitieren --> Unities abgeben:          Nur für krambambulin
Hallo Thomas, das Ganze scheint mir zu Komplex zu sein. Wie gesagt meine Programmierkenntnisse sind nicht die besten. Trotzdem danke für deine Bemühungen. Schönen Tag Christian ------------------ Grüße Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
krambambulin Mitglied Konstrukteur

 Beiträge: 10 Registriert: 19.02.2002
|
erstellt am: 30. Apr. 2004 14:53 <-- editieren / zitieren --> Unities abgeben:         
hallo! vielen dank erstmal für die antworten. thomas, wenn du denkst, dass dein nummern-generator für mein problem ausreichend funktionalität verfügt, würde ich ihn gerne bei uns einsetzen. wäre es möglich, dein modul 'telefonisch' zu implantieren? wieviel kostenbeitrag bräuchtet ihr dafür? grüsse freundlich daniel abderhalden Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
fleischt Mitglied CAD/PDM Betreuer

 Beiträge: 35 Registriert: 13.02.2004
|
erstellt am: 05. Mai. 2004 17:03 <-- editieren / zitieren --> Unities abgeben:          Nur für krambambulin
Hallo Daniel, wie ich schon oben geschrieben habe, unsere Nummerngenerator ist recht kompliziert. (als Makro geschrieben, wird dann von Java aus aufgerufen; verschiedene Nummernkreise mit verschiedenen Berechtigungen; negativ laufende Nummernkreise; Verändern der Nummer bei schon existierenden Dokumenten; ...) Ich glaube nicht, dass das für euch die richtige Lösung wäre. Die müsstet ihr sowieso noch mal an eure Bedürfnisse anpassen. Da unser Code auch ziemlich verzweigt ist, und verschiedene Hilfsfunktionen untereinander aufgerufen werden, kann man den Nummerngenerator auch nicht so einfach isolieren und herauslösen, sorry. Je nachdem, wieviel ihr sonst noch alles anpassen müsst, ist es evtl. sowieso ratsam, ein bisschen Java zu lernen, und den Nummerngenerator selbst als Extension zu implementieren. Ist meiner Meinung nach ganz gut zum Einstieg in das Thema geeignet. Wenn du dich dazu entscheidest, kann ich sicher noch ein paar Tips nebenher geben, aber den Gehirn-Schmalz "wie sieht die Logik in meiner Firma aus" kann dir leider niemand abnehmen. *g* Gruß Thomas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
fleischt Mitglied CAD/PDM Betreuer

 Beiträge: 35 Registriert: 13.02.2004
|
erstellt am: 13. Mai. 2004 13:40 <-- editieren / zitieren --> Unities abgeben:          Nur für krambambulin
ich hab mir gerade den Java-Quellcode von ModelManager 12.01C angeschaut, und da gibt es auch schon einen Nummerngenerator drin. Im Package com.lbnl.biz gibt es eine Klasse PartNumberFactory (den Nummerngenerator) und eine Modell- und eine Zeichnungsklasse, die diesen Nummergenerator verwenden. Die Klassen sind scheinbar speziell für die Firma Berkeley geschrieben, aber wenn sie schon im OSM mitverteilt werden, kann man sie ja auch für die eigenen Zwecke gebrauchen. Gruß Thomas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |