Code:
Public Function Document_Copyfile(ByVal ObjectID As String, ByVal ClassID As String) As Boolean
'-------------------------------------------------------------------------------
' generates a copy file of the defined item (without SmarTeam Information)
'-------------------------------------------------------------------------------
Dim oWorkObject As SmApplic.ISmObject
Dim strFilename As String
Dim strPath As String
Dim bCopied As Boolean = True
Try
oWorkObject = SmSessionIntern.ObjectStore.RetrieveObject(ClassID, ObjectID)
strFilename = oWorkObject.Data.ValueAsString("CAD_REF_FILE_NAME")
strPath = WorkFolder
oWorkObject.CopyFileFromVaultPermission(strFilename, strPath, SmApplic.FileModeEnum.modReadOnly)
bCopied = Product_Copyfile_Structure(oWorkObject, ObjectID)
oWorkObject = Nothing
Application.DoEvents()
Return bCopied
Catch ex As Exception
WriteLog(GlobalLogFileErr, "Error in ""Product_Copyfile"" ObjectID: " & ObjectID)
Return False
End Try
End Function
Public Function Product_Copyfile_Structure(ByVal Workobject As SmApplic.ISmObject, ByVal ObjectID As String) As Boolean
'-------------------------------------------------------------------------------
' searches for linked components
'-------------------------------------------------------------------------------
Dim oQueryDefinition As SmApplic.ISmQueryDefinition
Dim oChildrens As SmApplic.ISmObjects
Dim oChildrenInProgress As SmApplic.ISmObject
Dim bCopied As Boolean = True
Dim strClassID As String
Dim strObjectID As String
Dim i As Integer
Try
oQueryDefinition = Nothing
oChildrenInProgress = Nothing
oChildrens = Workobject.RetrieveChildren(oQueryDefinition)
If oChildrens.Count > 0 Then
For i = 0 To oChildrens.Count - 1
oChildrenInProgress = oChildrens.Item(i)
strClassID = oChildrenInProgress.ClassId
strObjectID = oChildrenInProgress.ObjectId
If strClassID = "595" Or strClassID = "596" Then
bCopied = Document_Copyfile(strObjectID, strClassID)
End If
If bCopied = False Then Exit For
Application.DoEvents()
Next
End If
oQueryDefinition = Nothing
Application.DoEvents()
Return bCopied
Catch ex As Exception
WriteLog(GlobalLogFileErr, "Error in ""Product_Copyfile"" ObjectID: " & ObjectID)
Return False
End Try
End Function