Auto populate the Document Number property

Valued Contributor
Valued Contributor

Hello all,

 

    We're in the process of changing over our ERP system and now the filename needs to be assigned to the Document Number property on the Project tab.  Managemenet has concerns about designers forgetting to populate it and causing issues downstream.

 

    I'm curious if anyone has done a program to retrieve the filename of a part or assembly and auto-populate the same name into the Document Number property (less the extension)?  I'm guessing it would have to be an add-in to be able to capture the "after-save" event.  I would have to add logic to it because some of our customers have goofy filenaming practices that would need parsed.

 

Any thoughts, ideas, or points in the right direction would be appreciated

Thanks,

Russ

 

 

3 REPLIES

Re: Auto populate the Document Number property

Solution Partner Genius Solution Partner Genius
Solution Partner Genius

Making this is not difficult.

You can perform the action with this :

 

    Public Sub Populate_DocumentNumber()
        Dim objApp As SolidEdgeFramework.Application = Nothing
        Dim ObjDoc As SolidEdgeFramework.SolidEdgeDocument = Nothing
        Dim ObjProps As SolidEdgeFramework.Properties = Nothing
        Try
            objApp = CType(Marshal.GetActiveObject("SolidEdge.Application"), SolidEdgeFramework.Application)

        Catch ex As Exception
            If Not (objApp Is Nothing) Then
                Marshal.ReleaseComObject(objApp)
                objApp = Nothing
            End If
            Return
        End Try

        If Not (objApp Is Nothing) Then

            ObjDoc = objApp.ActiveDocument
            Dim FileName As String = System.IO.Path.GetFileNameWithoutExtension(ObjDoc.FullName)
            'You can Parse the Filename there
            ObjProps = ObjDoc.Properties.Item("ProjectInformation")
            ObjProps.Item("Document Number").Value = FileName

        End If
        If Not (objApp Is Nothing) Then
            Marshal.ReleaseComObject(objApp)
            objApp = Nothing
        End If
        If Not (ObjDoc Is Nothing) Then ObjDoc = Nothing
        If Not (ObjProps Is Nothing) Then ObjProps = Nothing

    End Sub

 

I think of two methods to perform this action :

On save event for the new document - You can perform this using the Addin sample from Jason.

With OpenSave from the existing data - You can modify the OpenSave program installed in the Custom folder of Solid Edge installation.

 

Hope that would help.


Romuald BERTIN

Re: Auto populate the Document Number property

Solution Partner Phenom Solution Partner Phenom
Solution Partner Phenom

For sure an addin is where you want the functionality to enforce business practices like this. I do similar things at my company. The only tricky part with your requirement is that the filename does not exist until AFTER the document is saved. You then take the filename (minus extension) and assign it to the document number. That will cause the Document.Dirty flag to get set and require ANOTHER save. That workflow is not ideal (I don't have another suggestion) and may cause confusion to a user. The user will be thinking "I just saved the file, why do I have to save it again?". Keep in mind that they could decline the 2nd save and your document number would not be saved. Could just be a training issue but something to keep in mind.

 

Regarding existing documents that need to be updated, I would recommend using the Solid Edge File Properties API to process these documents.

 

Just my random thoughts.

Jason Newell
Applications Architect
www.jasonnewell.net

Re: Auto populate the Document Number property

Valued Contributor
Valued Contributor

Thanks Romuald and Jason,

Great stuff.  I hadn't even considered the fact that setting the property would trigger the need for another file save.  This will definately take some more discussions on our end to decide if we want to go down that road.

Best regards,

Russ