| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für EPLAN |
| |
| Rittal und Eplan auf der „The Smarter E Europe“ 2024: Mit Industry Standards schneller zur All Electric Society, eine Pressemitteilung
|
Autor
|
Thema: Scripting Multiuser-Betrieb feststellen (3004 / mal gelesen)
|
A.Robert Mitglied staatl. gepr. Techniker
Beiträge: 478 Registriert: 09.03.2015 EPLAN Electric P8 - Select Version: 2.6 HF4 2.8 HF4 / SQL 2.9 SP1 Update 14 / ProPanel
|
erstellt am: 24. Jan. 2017 11:19 <-- editieren / zitieren --> Unities abgeben:
|
A.Robert Mitglied staatl. gepr. Techniker
Beiträge: 478 Registriert: 09.03.2015 EPLAN Electric P8 - Select Version: 2.6 HF4 2.8 HF4 / SQL 2.9 SP1 Update 14 / ProPanel
|
erstellt am: 25. Jan. 2017 12:50 <-- editieren / zitieren --> Unities abgeben:
|
EplanAndi Mitglied
Beiträge: 348 Registriert: 17.02.2010 P8 - Professional Version 2022 Update 4
|
erstellt am: 25. Jan. 2017 13:15 <-- editieren / zitieren --> Unities abgeben: Nur für A.Robert
|
Wie-Waldi Mitglied E-Waldi
Beiträge: 2 Registriert: 25.01.2017
|
erstellt am: 25. Jan. 2017 14:24 <-- editieren / zitieren --> Unities abgeben: Nur für A.Robert
Script nicht, aber vielleicht hilft dir der "EPLAN License Manager - Monitor" weiter. Dort hast du eine Userübersicht. Netzwerker in Viewer erkennst du jedoch nicht. Frag beim Support nach ELM-Monitor. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
A.Robert Mitglied staatl. gepr. Techniker
Beiträge: 478 Registriert: 09.03.2015 EPLAN Electric P8 - Select Version: 2.6 HF4 2.8 HF4 / SQL 2.9 SP1 Update 14 / ProPanel
|
erstellt am: 25. Jan. 2017 15:17 <-- editieren / zitieren --> Unities abgeben:
Hi, eigentlich würde mir der EPLAN License Manager nicht helfen ... Habe das Script BackupOnClosingProject von Johann Weiher an uns angepasst und in eine Form umgeschrieben mit zusätzlichen Informationen bzw. Auswahlmöglichkeit. Screen=> Nur macht mir das Multiuser ein kleines Problem. Hier möchte ich einfach diesen abfangen und als Text ausgeben "Sicherung nicht möglich. Multiuser Konflikt!" ------------------ Gruß Robert Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
F.S. Moderator
Beiträge: 1881 Registriert: 23.04.2003 EPLAN Electric P8 2024 Prof.
|
erstellt am: 25. Jan. 2017 16:12 <-- editieren / zitieren --> Unities abgeben: Nur für A.Robert
|
A.Robert Mitglied staatl. gepr. Techniker
Beiträge: 478 Registriert: 09.03.2015 EPLAN Electric P8 - Select Version: 2.6 HF4 2.8 HF4 / SQL 2.9 SP1 Update 14 / ProPanel
|
erstellt am: 26. Jan. 2017 10:42 <-- editieren / zitieren --> Unities abgeben:
|
A.Robert Mitglied staatl. gepr. Techniker
Beiträge: 478 Registriert: 09.03.2015 EPLAN Electric P8 - Select Version: 2.6 HF4 2.8 HF4 / SQL 2.9 SP1 Update 14 / ProPanel
|
erstellt am: 31. Jan. 2017 10:10 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von F.S.: Hallo, kann mann doch bestimmt per "try" und "catch" abfangen?
So noch mal ich, habe jetzt das Script angepasst und auch keine weiteren Bugs gefunden Um die try/catch habe ich das Script auch erweitert, leider ohne Erfolg. Bei Multiuserkonflikt wird keine Sicherung erstellt und keine Meldung von / aus catch ausgegeben Jemand eine andere oder habe ich hier bei der Benutzung was falsch gemacht? Hier noch kurze Info zu dem Script. (Falls es jemand ausprobieren möchte) Das original Script ist von Jonny. Habe es in eine Form umgeschrieben und Auswahlmöglichkeiten für den Benutzer erzeugt: EDIT: 0. Sichrung nur mit dem Projektnamen (ohne Datum oder Uhrzeit) 1. Sicherung mit Datum 2. Sicherung mit Datum und Uhrzeit 3. Überschreiben von vorhandenen Sicherungen erlauben JA/NEIN Die Ablage (Sicherung) erfolgt im Ordner /Tagessicherungen_zw1, dieser wird bei der ersten Benutzung im EPLAN_DATA (da, wo die Ordner für Bilder, Dokumente, Artikel usw sind) erstellt. Würde mich über Feedback und einen Ansatz für das Problem Multiuser freuen. ------------------ Gruß Robert [Diese Nachricht wurde von A.Robert am 31. Jan. 2017 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Alex 82 Mitglied Elektrotechniker
Beiträge: 179 Registriert: 04.01.2010 P8- Professional Version: 2.9 und alles davor
|
erstellt am: 31. Jan. 2017 11:38 <-- editieren / zitieren --> Unities abgeben: Nur für A.Robert
Moin, ich weiß nicht, ob es dir hilft. Aber in der Projektverwaltung, kann man sich die Benutzer anzeigen lassen. Last called action from (context)menu : PrjManagementGUIIGfWindPrjShowUsers Ich habe allerdings keine Ahnung, ob du so an die Daten kommst. ------------------ MfG Alex Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
F.S. Moderator
Beiträge: 1881 Registriert: 23.04.2003 EPLAN Electric P8 2024 Prof.
|
erstellt am: 01. Feb. 2017 08:37 <-- editieren / zitieren --> Unities abgeben: Nur für A.Robert
Hallo Robert, ich habe jetzt mal was rum probiert, mit try /catch habe ich auch keinen Erfolg gehabt, obwohl es laut API-Hilde eigentlich so gehen müßte:
Code:
try { ... } catch (BaseException exc) { ... }
Das einzige was mir noch einfällt, und auch funktioniert, ist das du den Rückgabewert des CommandLineInterpreter auswertest.
Code:
bool bRetVal = new CommandLineInterpreter().Execute("backup", backupContext); if (!bRetVal) { MessageBox.Show("P8 command does not work", "backup"); }
------------------ grüße FrankS Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
A.Robert Mitglied staatl. gepr. Techniker
Beiträge: 478 Registriert: 09.03.2015 EPLAN Electric P8 - Select Version: 2.6 HF4 2.8 HF4 / SQL 2.9 SP1 Update 14 / ProPanel
|
erstellt am: 01. Feb. 2017 10:18 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von F.S.: Das einzige was mir noch einfällt, und auch funktioniert, ist das du den Rückgabewert des CommandLineInterpreter auswertest.
Code:
bool bRetVal = new CommandLineInterpreter().Execute("backup", backupContext); if (!bRetVal) { MessageBox.Show("P8 command does not work", "backup"); }
Läuft ... Script mit der Ergänzung im Anhang ------------------ Gruß Robert Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ranti Mitglied Techniker
Beiträge: 2 Registriert: 04.03.2017 EPLAN Electric P8 - Professional Version 2.6 HF2
|
erstellt am: 04. Mrz. 2017 22:02 <-- editieren / zitieren --> Unities abgeben: Nur für A.Robert
Hallo, ich habe zur Zeit ähnliche Probleme. Wir wollen per Script drei Aufgaben erledigen: - Stückliste erzeugen - Projekt kopieren - Projekt archivieren Das Script funktioniert bei mir zu Hause am Einzelplatz soweit gut. Auf Arbeit im Netz kommt es ab und zu zu seltsamen Ergebnissen. Mehrfach waren die kopierten als auch die archivierten Projekte völlig zerschossen und unbrauchbar. Beim nächsten Versuch war dann wiederum alles ok. Mein erster Gedanke: Projekt wird noch kopiert und über das Script wird währenddessen schon die Archivierung gestartet. Keine Ahnung ob das so zutrifft. Bisher hatte ich alle Aktionen bei geöffnetem Projekt ausgeführt. Sollte ja laut Hilfe eigentlich auch funktionieren. Zwei Dinge hab ich im Script jetzt mal geändert: 1.) Projekt wird als erstes geschlossen 2.) Kopie des Projekts erfolgt auf Dateiebene (vorher über die Aktion:"projectmanagement") Die ersten Versuche sahen gut aus. Bin mir allerdings noch nicht sicher ob das auch immer so läuft, da der Fehler ja vorher auch immer nur ab und an auftauchte. Unabhängig davon konnte ich wie Robert feststellen das rein garnix passiert wenn ein anderer User das Projekt geöffnet hat. Keine Meldung, keine Archivierung, einfach nix. Die Auswertung des Rückgabewerts vom Commandlineinterpreter ist eine Möglichkeit. Hilft mir aber beim kopieren auch nicht weiter. Es muss doch beim Scripting eine Möglichkeit geben vorab zu prüfen ob ein Projekt anderweitig geöffnet ist. In der API Hilfe hab ich folgendes gefunden: "Project::CurrentUsers Property", Namespace Eplan.EplApi.DataModel Returns the current users working at this project. So wie ich das sehe kann das wohl nur mit einer API Lizenz genutzt werden ? Gruß
Wolfgang Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
A.Robert Mitglied staatl. gepr. Techniker
Beiträge: 478 Registriert: 09.03.2015 EPLAN Electric P8 - Select Version: 2.6 HF4 2.8 HF4 / SQL 2.9 SP1 Update 14 / ProPanel
|
erstellt am: 07. Mrz. 2017 16:06 <-- editieren / zitieren --> Unities abgeben:
Zitat: Die Auswertung des Rückgabewerts vom Commandlineinterpreter ist eine Möglichkeit. Hilft mir aber beim kopieren auch nicht weiter. Es muss doch beim Scripting eine Möglichkeit geben vorab zu prüfen ob ein Projekt anderweitig geöffnet ist.
Wieso hilft dir das nicht weiter?! Du bzw. der User weiß, dass er das Projekt nicht archivieren kann! Ist doch eine Info. Bezüglich dem Fehler, ohne Code ist schwierig mit der Hilfe... Reine Neugier warum kopiert ihr die Projekte, was habt ihr davon?! ------------------ Gruß Robert Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ranti Mitglied Techniker
Beiträge: 2 Registriert: 04.03.2017 EPLAN Electric P8 - Professional Version 2.6 HF2
|
erstellt am: 07. Mrz. 2017 20:29 <-- editieren / zitieren --> Unities abgeben: Nur für A.Robert
Hallo Robert, wir haben bei uns, ähnlich wie der Artikelverwendungsnachweis vom Johann Weiher, ein Tool zum finden von eingesetzten Artikeln in sämtlichen Projekten im Einsatz. (Größenordnung ca. 1000 Projekte) Projekte können vom gefundenen Artikel direkt mit Sprung auf die Seite geöffnet werden. Das ganze hat uns schon sehr viel Zeit erspart beim suchen nach bereits eingesetzten Brocken. Da der Kunde teuren Speicherplatz sparen will müssen wir die Projekte jetzt nach der Bearbeitung archivieren. Das hat zur Folge, dass wir natürlich auch nicht mehr direkt ins Projekt springen können. Aus diesem Grund hab ich nun das Script geschrieben. 1. Artieklexport für den Verwendungsnachweis 2. Projekt auf lokale Platte kopieren damit ich den archivierten Kram nicht extra nochmal dearchivieren muss 3. Projekt archivieren Was ich halt nicht verstehe: Wenn ich ein bereits geöffnetes Projekt über die Verwaltung kopieren oder archivieren will bekomme ich einen Multiuserkonflikt gemeldet. Löse ich diese Aktion über ein Script aus dann passiert rein garnix. Ich muss dann entweder im Nachgang alles kontrollieren oder im Vorfeld in der Projektverwaltung schauen ob jemand anderes das Projekt geöffnet hat. Irgendwie macht ein Script dann keinen Sinn mehr. Da wäre es sicher sinvoller alle Aktionen nacheinander händisch aus der Eplanoberfläche heraus auszuführen. Die Auswertung des Rückgabewerts vom Commandlineinterpreter hilft mir nicht weiter, da diese Auswertung erst beim archivieren erfolgt. Die Prüfung auf einen Multiuserkonflikt muss am Anfang des Scriptes stattfinden, noch bevor die Stückliste exportiert wird. Ansonsten hab ich evtl unvollständige Stücklisten, nicht lauffähige Projektkopien und nicht archivierte Projekte. Gruß Wolfgang Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |