Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks Enterprise PDM
  Api / Einchecken (Lockfile)

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
  
Risiko Cyberangriff - Sicherheit ohne Kompromisse: Mit 3DEXPERIENCE® SOLIDWORKS haben Hacker keine Chance
Autor Thema:  Api / Einchecken (Lockfile) (992 / mal gelesen)
defreez
Mitglied
Staatlich geprüfter Techniker


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

Beiträge: 23
Registriert: 23.07.2015

Xeon
16Gb
Quadro 4000
SW 2013<P>Corei5
8Gb
Geforce 630M
Win 7 64
Sw2014

erstellt am: 21. Aug. 2016 21:17    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

Ich möchte ein Programmteil schreiben das das aktuelle Dokument eincheckt, wenn es bei Ausführung noch ausgechekt ist.

Der Teil dafür extrahiert habe ich eingefügt.
Das Problem ist der Lockfile Befehl.

Kann mir jemand sagen was daran falsch ist ?
Es fehlt das Objekt,ich hab viel probiert aber er will nicht.

Danke !

*****************************************************
Dim swApp As SldWorks.SldWorks
Dim ModelDoc As SldWorks.ModelDoc2
Dim SwModel As SldWorks.ModelDoc2


Dim Vault As EdmVault5
Dim BatchUpdate As IEdmBatchUpdate2
Dim File As IEdmFile10
Dim Verz5 As IEdmFolder8
Dim Errors() As EdmBatchError2
Dim FoID As Integer

Sub main()
Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc

Set Vault = New EdmVault5
Call Vault.LoginAuto("Meinevault", 0)
Set BatchUpdate = Vault.CreateUtility(EdmUtil_BatchUpdate)


Set File = Vault.GetFileFromPath(Part.GetPathName, Verz5)
    FoID = Verz5.id
        Debug.Print (FoID)

If File.IsLocked = False Then
    Debug.Print ("Dokument eingecheckt")

Else
'Sub LockFile(ByVal lParentFolderID As System.Integer, ByVal lParentWnd As System.Integer, Optional ByVal lEdmLockFlags As System.Integer)
File.LockFile(Verz5.ID,0)

End If

End Sub

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

defreez
Mitglied
Staatlich geprüfter Techniker


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

Beiträge: 23
Registriert: 23.07.2015

Xeon
16Gb
Quadro 4000
SW 2013<P>Corei5
8Gb
Geforce 630M
Win 7 64
Sw2014

erstellt am: 22. Aug. 2016 14:25    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

Ich bin soweit das er die Befehle ausführt

Wenn das geöffnete Dokument ausgecheckt ist, wird es eingecheckt.
Allerdings schreibt er  das BSComment "Api Check in" nicht mit !?


Wenn es  eingecheckt ist  versucht er es auszuchecken.
Es kommt aber die Fehlermeldung :
"Es wurde versucht eine Datei zu öffnen die von einer anderen Anwendung geöffnet ist"

BTW das islocked werde ich noch,  nach Nützlichkeit, in byuser oder on Computer ändern.

Kann mir jemand etwas dazu sagen ?


*******************************************************************************************************

Dim swApp As SldWorks.SldWorks
Dim ModelDoc As SldWorks.ModelDoc2
Dim SwModel As SldWorks.ModelDoc2


Dim Vault As EdmVault5
Dim BatchUpdate As IEdmBatchUpdate2
Dim efile As IEdmFile10
Dim Verz5 As IEdmFolder8
Dim VarMgr As IEdmVariableMgr5
Dim Var As IEdmVariable5
Dim Errors() As EdmBatchError2
Dim Filepath As String
Dim FoID As Long
Dim FiID As Integer
'Dim Doc As IEdmObject5
Dim part As Object

Sub main()
Set swApp = Application.SldWorks
Set part = swApp.ActiveDoc

Set Vault = New EdmVault5
Call Vault.LoginAuto("AMF PDM", 0)
Set BatchUpdate = Vault.CreateUtility(EdmUtil_BatchUpdate)


Set efile = Vault.GetFileFromPath(part.GetPathName, Verz5)
FoID = Verz5.ID
Debug.Print (FoID)
Debug.Print (efile.ID)

If efile.IsLocked = False Then                  ' ist eingecheckt
Debug.Print ("Das Dokument ist eingechekt")
Call efile.LockFile(FoID, 0) 'auschecken


Else
Debug.Print ("Das Dokument ist ausgechekt")
Call efile.UnlockFile(0, "API Check in")  'einchecken

End If

End Sub


[Diese Nachricht wurde von defreez am 22. Aug. 2016 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)2024 CAD.de | Impressum | Datenschutz