0

PDM システムの動作に関する会社のポリシーにより、ユーザーがファイルをチェックインすると、ローカル コピーがユーザーのキャッシュから削除されます。私のマクロは、ファイルをチェックアウトして編集し、再度チェックインします。編集したばかりのファイルを編集しようとすると、「ファイルが見つかりません」というエラーが表示されます (キャッシュから削除されたため)。私はこれを回避するために、ファイルを編集する直前にファイルの最新のコピーを取得するサブを作成して、常にファイルが存在するようにしましたが、コードはファイルを取得していないようです。サブは以下の通り。

Sub GetLatest(fName As String)

Dim vaultName As String
Dim eVault As IEdmVault13
Dim eFile As IEdmFile8
Dim BG As IEdmBatchGet
Dim files(1) As EdmSelItem

'log into the vault
vaultName = Config.ReadXMLElement(pathConfig, "vaultname")
Set eVault = New EdmVault5
If Not eVault.IsLoggedIn Then
    Call eVault.LoginAuto(vaultName, 0)
End If

'get the file to get lastest
Set eFile = eVault.GetFileFromPath(fName)
'put the file in an array
files(0).mlDocID = 0
files(0).mlProjID = eFile.ID

Set BG = eVault.CreateUtility(EdmUtil_BatchGet)

Call BG.AddSelection(eVault, files())
Call BG.CreateTree(0, EdmGetCmdFlags.Egcf_SkipExisting)
Call BG.GetFiles(0, Nothing)

End Sub

ファイルを編集する前に EPDM ブラウザで手動で「最新のものを取得」すると、マクロはファイルを正常に読み取ります。このコードは、Michael Dekoning がhttps://forum.solidworks.com/thread/51105に投稿したものからわずかに変更されています。

4

1 に答える 1