| | | Wütschner Technologie-Tage, Veranstaltung am 17.10.2024 |
Autor
|
Thema: API - geöffnete Zeichnung mit Schreibrechten auschecken (1950 / mal gelesen)
|
Andi Beck Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 2577 Registriert: 02.10.2006
|
erstellt am: 14. Okt. 2020 13:58 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich bastele gerade an einem Makro, welches bei einer bereits geöffnete Zeichnung zunächst den Status auf "in Bearbeitung" setzt und diese anschließend mit Schreibrechten auschecked. Momentan funktioniert fast alles, nur behält die Zeichnung den Status "Schreibgeschützt". Ich finde zu wenige passende Schnippsel oder Hilfethemen. Einen habe ich von hier. https://www.codestack.net/solidworks-pdm-api/files/check-out-active-model/ Hier ein Teil des Codes: Code:
Sub CheckOutModel(model As SldWorks.ModelDoc2, vault As IEdmVault5) Dim modelPath As String modelPath = model.GetPathName() Dim swPdmFile As IEdmFile5 Set swPdmFile = vault.GetFileFromPath(modelPath) If Not swPdmFile Is Nothing Then On Error GoTo catch Dim res As Boolean Dim swPdmFolder As IEdmFolder5 Set swPdmFolder = vault.GetFolderFromPath(Left(modelPath, InStrRev(modelPath, "\"))) try: 'model.ForceReleaseLocks swPdmFile.LockFile swPdmFolder.ID, 0 'hier wird ausgechecked res = True GoTo finally catch: Debug.Print Err.Number & ": "; Err.Description res = False GoTo finally finally: 'model.ReloadOrReplace Not res, modelPath, Not res Else Err.Raise vbError, "", "Specified model doesn't exist in the vault" End If End Sub
Mit diesem Befehl wird unter meinem Usernamen ausgechecked. swPdmFile.LockFile swPdmFolder.ID, 0 Hat mir jemand passende Ratschläge hierzu? Grüße, Andi
------------------ Hast du kein Problem? Such dir eins. ( Und löse es ) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ad_man Mitglied freiberuflicher Entwicklungsing. (Fahrzeugtechnik, CSWP, CPPA))
Beiträge: 1378 Registriert: 20.12.2003 SolidWorks 2023 SP5 mit Enterprise PDM , Windows 11, Dell Precision 3660, i7-12700K, 96 GB DDR-Ram, Quadro RTX A4000
|
erstellt am: 14. Okt. 2020 16:46 <-- editieren / zitieren --> Unities abgeben: Nur für Andi Beck
|
Andi Beck Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 2577 Registriert: 02.10.2006
|
erstellt am: 15. Okt. 2020 13:22 <-- editieren / zitieren --> Unities abgeben:
Hallo Andreas, besten Dank für deinen Ratschlag. Ich habe mir das jetzt einmal näher angeschaut und bin noch nicht zufrieden. Der folgende Befehl löst zwar das Schreibproblem, checkt aber das Dokument nicht aus dem Tresor aus. Code: Status = swApp.CloseAndReopen(swModel, opt, swNewDoc)
Ich müsste weiterhin mit folgendem Befehl auschecken. Code: swPdmFile.LockFile swPdmFolder.ID, 0
Dieser Befehl funktioniert aber nur, wenn ich vorher diesen Befehl ausführe. Code: model.ForceReleaseLocks
Dieser Befehl soll aber nicht für Zeichnungen verwendet werden und er trennt die Datei vom Dateisystem. In der Historie wird das auschecken nicht dokumentiert. Keine Ahnung was da noch mit dem Dateisystem dann im Argen liegt. Ich suche also immer noch nach einem geeigneten Befehl, der mir die geöffnete Zeichnung mit Schreibrechten auscheckt, und zwar ohne die Zeichnung erneut laden zu müssen, da sonst bereits getätigte Änderungen verworfen werden. Dies könnte ich nur verhindern, wenn die Zeichnung zunächst gespeichert wird. Mit dem manuellen Befehl per Maus funktioniert das doch auch. Grüße, Andi
------------------ Hast du kein Problem? Such dir eins. ( Und löse es ) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CAD-Maler Mitglied Konstrukteur / CAD-Admin / Mädchen für alles
Beiträge: 723 Registriert: 17.01.2007 SWX 2023 SP5 DraftSight 2023 Win 11 Enterprise Intel i7-13700 64GB RAM Nvidia RTX A2000 SWx EPDM AP+
|
erstellt am: 16. Okt. 2020 09:28 <-- editieren / zitieren --> Unities abgeben: Nur für Andi Beck
Zitat: Original erstellt von Andi Beck: Mit dem manuellen Befehl per Maus funktioniert das doch auch.
Den Befehl fürs Auschecken auf eine Tastenkombination legen und diesen dann per SendKeys ausführen. Bitte poste eine etwaige Lösung auch hier. Sowas suchen wir auch schon länger, auch zusammen mit unserem Reseller. Gruß, Jens Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andi Beck Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 2577 Registriert: 02.10.2006
|
erstellt am: 16. Okt. 2020 09:40 <-- editieren / zitieren --> Unities abgeben:
Hallo, jetzt habe ich noch einen Befehl gefunden. Mit dieser Reihenfolge bekomme ich die Zeichnung mit Schreibrechten ausgecheckt. Code: model.ForceReleaseLocks swPdmFile.LockFile swPdmFolder.ID, 0 model.SetReadOnlyState False
Allerdings wird das Auschecken nicht in der Historie erwähnt. Ich kann die Zeichnung dann ganz normal bearbeiten und wieder einchecken und freigeben. Dies wird dann in der Historie dokumentiert. (Schaut euch die Bilder an) Also, die Frage lautet jetzt, was passiert hier und mache ich mir im Dateimanagement was kaputt? Grüße, Andi ------------------ Hast du kein Problem? Such dir eins. ( Und löse es ) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andi Beck Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 2577 Registriert: 02.10.2006 Firma: SW 2023-5.0 + PDM Prof. Windows 10 Pro 64bit, i9-11900 32 GbRAM, Quadro P2200 Home: SW 2023-5.0 Passungstabelle von Heinz Windows 11 Pro 64bit, i7-12700K, 32 GbRAM, GeForce GTX 1050Ti Samsung C34H892, 3440x1440 Pixel
|
erstellt am: 16. Okt. 2020 10:49 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von CAD-Maler:
Bitte poste eine etwaige Lösung auch hier. Sowas suchen wir auch schon länger, auch zusammen mit unserem Reseller.
Hallo Jens, anbei mal das momentane Makro. Du musst halt deine Tresoranmeldung und bei den Zeichnungen die Statusnamen anpassen. Würde mich freuen, wenn du da mal drüber schauen würdest und evtl. Verbesserungen machen könntest. Grüße, Andi Ps.: ich habe den Download aktualisiert ------------------ Hast du kein Problem? Such dir eins. ( Und löse es ) [Diese Nachricht wurde von Andi Beck am 21. Okt. 2020 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CAD-Maler Mitglied Konstrukteur / CAD-Admin / Mädchen für alles
Beiträge: 723 Registriert: 17.01.2007 SWX 2023 SP5 DraftSight 2023 Win 11 Enterprise Intel i7-13700 64GB RAM Nvidia RTX A2000 SWx EPDM AP+
|
erstellt am: 16. Okt. 2020 11:29 <-- editieren / zitieren --> Unities abgeben: Nur für Andi Beck
Zitat: Original erstellt von Andi Beck: Würde mich freuen, wenn du da mal drüber schauen würdest und evtl. Verbesserungen machen könntest.Grüße, Andi
Hab es mal bei versch. Teilen und Zeichnungen durchlaufen lassen, funktioniert wie erwartet. Auch die provozierten Fehler werden abgefangen (virtuelles Teil und fehlende Berechtigung für Statuswechsel). Verbesserungen habe ich keine, nur 2 Hinweise: 1. Die Anzeige des neuen Status in der SWX-Taskpane erfogt erst, nachdem man irgendwas aktualisert bzw. ein anders Teil ausgewählt hat. Direkt nach Makro-Ausführung steht noch der alte Status drin. Kann zur Verwirrung beim geneigten Endanwender führen. 2. Falls in euerm Workflow beim Statuswechsel automatisch ein Task ausgeführt wird, kann es passieren, dass dieser nicht gestartet wird. (SPR 1040215) Ansonsten: Fettes Daumen hoch! Gruß, Jens Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andi Beck Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 2577 Registriert: 02.10.2006
|
erstellt am: 16. Okt. 2020 11:59 <-- editieren / zitieren --> Unities abgeben:
Hallo Jens, danke für die Rückmeldung. Zu 1. Was verstehst du unter SW-Taskpane? Also bei mir wird sowohl innerhalb von SW im rechten Fenster als auch im Explorerfenster des Tresors mit etwas Verspätung der Status richtig angezeigt. Ich muss keine Aktion dafür auslösen. Zu 2. Bei uns gibt es keine automatischen Tasks beim Statuswechsel, also für uns kein Problem. Was sagst du zum Thema Historie? Grüße, Andi ------------------ Hast du kein Problem? Such dir eins. ( Und löse es ) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CAD-Maler Mitglied Konstrukteur / CAD-Admin / Mädchen für alles
Beiträge: 723 Registriert: 17.01.2007 SWX 2023 SP5 DraftSight 2023 Win 11 Enterprise Intel i7-13700 64GB RAM Nvidia RTX A2000 SWx EPDM AP+
|
erstellt am: 16. Okt. 2020 12:29 <-- editieren / zitieren --> Unities abgeben: Nur für Andi Beck
Zitat: Original erstellt von Andi Beck: Zu 1. Was verstehst du unter SW-Taskpane? Also bei mir wird sowohl innerhalb von SW im rechten Fenster als auch im Explorerfenster des Tresors mit etwas Verspätung der Status richtig angezeigt. Ich muss keine Aktion dafür auslösen.
Ja, ich meine den "Task-Fensterbereich" rechts. Taskpane ist nur kürzer.
Zitat: Was sagst du zum Thema Historie?
Ich verstehe dein Problem noch nicht so ganz. In der Historie wird bei uns nicht angezeigt, ob die Datei ausgecheckt wurde, auch nicht, wenn ich die von Hand auschecke. Ist das bei euch anders? Gruß, Jens Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ad_man Mitglied freiberuflicher Entwicklungsing. (Fahrzeugtechnik, CSWP, CPPA))
Beiträge: 1378 Registriert: 20.12.2003
|
erstellt am: 16. Okt. 2020 12:41 <-- editieren / zitieren --> Unities abgeben: Nur für Andi Beck
|
Andi Beck Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 2577 Registriert: 02.10.2006 Firma: SW 2023-5.0 + PDM Prof. Windows 10 Pro 64bit, i9-11900 32 GbRAM, Quadro P2200 Home: SW 2023-5.0 Passungstabelle von Heinz Windows 11 Pro 64bit, i7-12700K, 32 GbRAM, GeForce GTX 1050Ti Samsung C34H892, 3440x1440 Pixel
|
erstellt am: 16. Okt. 2020 12:58 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von CAD-Maler:
Ich verstehe dein Problem noch nicht so ganz. In der Historie wird bei uns nicht angezeigt, ob die Datei ausgecheckt wurde, auch nicht, wenn ich die von Hand auschecke. Ist das bei euch anders?
Hallo Jens, boah, stimmt tatsächlich, das auschecken wird ja gar nicht protokolliert, auch das händische nicht. Dann ist ja alles gut, das WE kann kommen. Habe ich mich doch tatsächlich umsonst kirre gemacht. Grüße, Andi ------------------ Hast du kein Problem? Such dir eins. ( Und löse es ) [Diese Nachricht wurde von Andi Beck am 18. Nov. 2020 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andi Beck Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 2577 Registriert: 02.10.2006
|
erstellt am: 27. Okt. 2021 09:34 <-- editieren / zitieren --> Unities abgeben:
|
| Mitarbeiter Fachabteilung Elektrotechnik (m/w/d) | Wir denken über Grenzen hinaus Über 1.200 Mitarbeitenden tragen heute in unserem inhabergeführten Familienunternehmen weltweit dazu bei, dass wir einer der führenden Qualitätsanbieter von Industrielösungen sind. Darauf sind wir sehr stolz und arbeiten daran, uns weiter zu verbessern. Wir leben eine Arbeitskultur des Vertrauens, des Respekts und der Wertschätzung.... | Anzeige ansehen | Feste Anstellung |
|
riesi Mitglied CAD-Admin
Beiträge: 1078 Registriert: 06.05.2002 SWX Office Pre. 2023-Sp5
|
erstellt am: 28. Okt. 2021 11:30 <-- editieren / zitieren --> Unities abgeben: Nur für Andi Beck
Vielen Dank für das Makro, wird bestimmt bei uns auch gut ankommen. Ich habe es noch etwas überarbeitet:
- Die Error-Fallen sind weg, bis auf loginauto, da geht es nicht anders. (Ich mag keine On Errors, etc.)
- Der aktuelle Status und ein Übergang kann jetzt weit oben eingetragen werden
- Beim Status-Übergang nutze ich jetzt BatchChangeState3, ist ohne Passwort und mit möglichen Tasks gibt es keine Probleme
- Aufrufe von Subs mit Call und einige Sub durch Function ersetzt, ist mein bevorzugter Stil.
- Oben das new Edmvault5 entfernt, einmal bei Anmeldung im Tresor genügt
- Bei Baugruppen und Einzelteilen wird die PDM Taskleiste durch ReloadOrReplace aktualisiert
Bei Zeichnungen soll ForceReleaseLocks eigentlich nicht genommen werden, die Alternative CloseAndReopen ist leider in VBA keine Option, da in VBA das FileCloseNotify nicht ab gefangen werden kann. Hier kann man nur Schließen und erneut Öffnen. Gruß, Klaus. [Diese Nachricht wurde von riesi am 28. Okt. 2021 editiert.] Update: Events gehen doch mit VBA, daraufhin habe ich das Makro angepasst und für Zeichnungen die empfohlene Methode eingesetzt. Für Zeichnungen aktualisiert sich das PDM-Fenster, bei Eaugrupppen- und Einzelteilen schicke ein save hinterher, damit wird auch die PDM Taskleiste aktualisiert. [Diese Nachricht wurde von riesi am 29. Okt. 2021 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|