Hot News aus dem CAD.de-Newsletter:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks Workgroup PDM
  API: Aktualisierung von Datensätzen

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:   API: Aktualisierung von Datensätzen (616 mal gelesen)
THSEFA
Mitglied
Konstrukteur/CAD-Admin


Sehen Sie sich das Profil von THSEFA an!   Senden Sie eine Private Message an THSEFA  Schreiben Sie einen Gästebucheintrag für THSEFA

Beiträge: 1120
Registriert: 27.11.2002

SWX 2019 SP2.0 Premium
Windows 10 Pro 64Bit
HP Z4
Intel XEON W-2135
Quadro P4000
32 GB Ram
Windows 10 Pro 64Bit
HP ZBook 17 G5
Intel Core i7-8850H vPro
Quadro P3200
16 GB Ram

erstellt am: 22. Okt. 2015 16:54    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


CT-Aktualisierung-CAD.de.zip

 
Hallo Freunde des WorkgroupPDM,
wie im SolidWorks-Brett angekündigt möchte ich euch mein neues Makro nicht vorenthalten. Auch wenn WorkgroupPDM vor dem Aussterben steht, werden einige sicher die nächsten Jahre noch damit arbeiten. Für all jene, die sich wie wir auch immer über die unzureichende Funktionalität des WorkgroupPDM ärgern, habe ich hier ein Makro gebastelt, welches euch beim Aktualisieren der Daten unterstützen soll.

Hinweis: Anpassungen an eure Umgebung sind vor dem ersten Start vorzunehmen! 

Was macht es?
Zuerst mal sind die Anmeldedaten des Users am PDM-Tresor einzutragen. Das Makro erwartet eine geöffnete BG, geht dann über alles in der BG drüber und schreibt die "veralteten" Daten in eine Liste. Dann kann man dort auswählen, welche Daten man aktualisieren möchte. Bei den ausgewählten Datensätzen wird im Tresor der Status geändert ("In Entwicklung") und danach das Besitzrecht an den angemeldeten User übertragen. Danach wird die Datei mit der neuen SWX-Version gespeichert.

Das Einchecken muss leider von Hand erfolgen, es gibt da wohl ein unlösbares Problem. Zwar ist in der API-Hilfe eine Funktion beschrieben, leider funktioniert diese nur nicht. 

So, nun viel Spaß beim ausprobieren!

------------------
Viele Grüße, THSEFA

"Nichts ist so hart wie das Leben! Wenn man sagt, was man denkt, muss man mehr als alles geben!..."

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Winston Wolf
Mitglied
Braucht der Mensch einen Beruf?


Sehen Sie sich das Profil von Winston Wolf an!   Senden Sie eine Private Message an Winston Wolf  Schreiben Sie einen Gästebucheintrag für Winston Wolf

Beiträge: 531
Registriert: 12.08.2003

A post each day keeps the doctor away

erstellt am: 22. Okt. 2015 18:38    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für THSEFA 10 Unities + Antwort hilfreich

Hallo THSEFA,

bei mir funktioniert das Einchecken mit folgendem

Code:
Option Explicit
Sub main()
    Dim PDMWConnection As Object
    Dim myConnection As PDMWConnection
    Dim mwcadlogin As Long
    Set myConnection = CreateObject("PDMWorks.PDMWConnection")
'   Anmeldung am Tresor
    mwcadlogin = myConnection.Login("Name", "Pass", "PDM-Server")
'   Dokument, Dateiname und Pfadname definieren
    Dim myDoc As PDMWDocument
    Dim myFileName As String
    Dim myPathName As String
    Dim myAllDocs As PDMWDocuments
    Dim myProject As String
    Set myAllDocs = myConnection.Documents
'   Refresh aktualisiert die Tresoransicht
    myConnection.Refresh

    myProject = "sample"
    myFileName = "13-03-196-4020_TestBaugruppe Kupplung.SLDDRW"
    myPathName = "C:\pdmlokal\PDM-test\"
   
'   Es wird ein spezifisches Dokument ausgewählt
    Set myDoc = myConnection.GetSpecificDocument(myFileName)

'   Die Besitzrechte des Dokumentes holen
    myDoc.TakeOwnership

'   Datei im SolidWorks öffnen
    Dim swApp As Object
    Dim myPart As Object
    Dim boolstatus As Boolean
    Dim longstatus As Long, longwarnings As Long
   
    Set swApp = Application.SldWorks
    Set myPart = swApp.OpenDoc6(myPathName + myFileName, 3, 0, "", longstatus, longwarnings)
    ' Strg+q
    myPart.ForceRebuild
    'Zeichnung speichern
    boolstatus = myPart.Save2(True)
    'Zeichnung schliessen
    swApp.CloseDoc (myPart.GetTitle)

'   Datei einchecken
    Dim myDocRevision As String
    Dim RevOptionType As String
    myDocRevision = ""
    RevOptionType = 1
    myConnection.CheckIn myPathName & myFileName, _
            myProject, _
            myDoc.Number, _
            myDoc.Description, _
            "Mit Macro eingecheckt, damit PDF erzeugt wird 03", _
            RevOptionType, _
            myDocRevision, _
            myDoc.GetStatus, _
            True, _
            Nothing

   
'   Die Besitzrechte des Dokumentes abgeben
    myDoc.ReleaseOwnership

'   Refresh aktualisiert die Tresoransicht
    myConnection.Refresh

'   Abmeldung vom Tresor
    myConnection.Logout

End Sub


Ich sehe aber keinen Unterschied zu Deinem code.
Die .dll hat die Version 21.4.0.70  

Was dabei leider nicht klappt ist das erzeugen/aktualisieren des PDFs  

WW

Edit 1: Die Clients laufen alle unter Win7 64Bit, der PDM-Server und der SolidWorks Lizenzserver laufen auf einem (nicht unterstützten    ) virtuellen Win 2008R2 SP1 Server.

WW

Edit 2: Wenn man "Von Datei lesen" (RevOptionType = 1) umstellt auf "Standard" (RevOptionType = 0) und die Version erhöht, dann wird ein vorher durch manuelles einchecken erzeugtes PDF gelöscht. Jemand dazu vielleicht eine Idee? 

Edit 3: Die Idee das "manuelle Einchecken" mit SendKeys zu lösen gelingt mir im Moment auch nicht...
------------------

[Diese Nachricht wurde von Winston Wolf am 27. Okt. 2015 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2020 CAD.de | Impressum | Datenschutz