1 Reply Latest reply on Dec 19, 2018 8:19 AM by Heinz Navratil

    IEdmFile7.NeedsRegneration Seems to be Inaccurate

    John Raffensperger

      We have instances where a user will create (either manually, or as an event of a Workflow) a PDF of a drawing, but the PDF file will be inaccurate or incomplete.


      We have found the reason for this to be that the model(s) may have been changed, but the Drawing File itself has not been rebuilt.  While this represents an obvious flaw in our Workflow (we are working on that and related issues), I wanted to prevent this from happening.


      I added a test to the script that does the Conversion or "Save As" to the PDF, that looks like this at the beginning of the "Convert" sub:


         If NeedsRegen(docFileName) Then

              Log "PDF Not Created!  File " & docFileName & " needs to be Rebuilt!"

              Exit Sub

          End If


      The function NeedsRegen has this code:


      Private Function NeedsRegen(filePath) As Boolean

      On Error GoTo ErrHand

          Dim File As Object


          'Get the interface of the file (and its parent folder)

          Dim Folder As Object

          Set File = vault.GetFileFromPath(filePath, Folder)


          'Return the NeedsRegeneration value

          NeedsRegen = File.NeedsRegeneration(0, Folder.ID)


          Exit Function




          Dim ename As String

          Dim edesc As String


          vault.GetErrorString Err.Number, ename, edesc

          Log "NeedsRegen error" & vbCrLf & ename & vbCrLf & errdesc

      End Function


      This should do the trick, as if the file needs a Regeneration, we log the error, and then exit the Convert Sub.  The problem is that the call to NeedsReneration (highlighted in red) returns False, for at least some some files that need to be rebuilt.  For the test file I'm using, the "Preview" in the EPDM Vault even indicates "The file needs to be rebuilt in SolidWorks", but the function still returns False.


      I have also tried using this: NeedsRegen = File.NeedsRefeneration(File.CurrentVersion, Folder.ID), and gotten the same results.


      Does anyone have any suggestions or insights?