# SOLIDWORKS PDM Professional API Help

# Creating Serial Numbers (VB.NET)

This sample shows how to generate serial numbers for file data cards using an add-in written in VB.NET.

NOTES:

- Because SOLIDWORKS PDM Professional cannot force a reload of add-ins if they are written in .NET, all client machines must be restarted to ensure that the latest version of the add-in is used.

- SOLIDWORKS PDM Professional recommends that serial numbers be generated using the built-in format strings or lists. They provide better performance than serial numbers generated by add-ins or serial numbers from files. Only write an add-in to generate the serial number if built-in format strings or lists are insufficient.

- The differences between serial number generation and other types of hooks are:

  - Hook you register in your IEdmAddIn5::GetAddInInfo method.

  - Contents of your IEdmAddIn5::OnCmd method.

1. Follow Creating Menu Commands (VB.NET) to create a basic add-in.

2. Register a hook to notify your add-in when a serial number needs to be generated. Implement IEdmAddIn5::GetAddInInfo as follows:

> Public Sub GetAddInInfo(ByRef poInfo As EdmAddInInfo, ByVal poVault As IEdmVault5, ByVal poCmdMgr As IEdmCmdMgr5) Implements IEdmAddIn5.GetAddInInfo
> 'Specify add-in information
> poInfo.mbsAddInName = "My serial number generator"
> poInfo.mbsCompany = "The name of my company"
> poInfo.mbsDescription = "Implements serial numbers"
> poInfo.mlAddInVersion = 1
> poInfo.mlRequiredVersionMajor = 5
> poInfo.mlRequiredVersionMinor = 2
> 'Register that a serial number needs to be generated
> poCmdMgr.AddHook(EdmCmdType.EdmCmd_SerialNo)
> End Sub

3. Implement IEdmAddIn5::OnCmd as follows:

> Public Sub OnCmd(ByRef poCmd As EdmCmd, ByRef ppoData As EdmCmdData[]) Implements IEdmAddIn5.OnCmd
> 'Check the upper and lower bounds of the array
> Dim index As Long index = LBound(ppoData)
> Dim last As Long last = UBound(ppoData)
> If index <= last Then
> Dim cnt As Integer
> cnt = last - index + 1
> 'Create a temporary array to which you have full access
> Dim tmpArr(cnt) As EdmCmdData
> tmpArr = ppoData
> 'Generate serial numbers for all of the affected files
> Dim CounterVal As String
> While index <= last
> CounterVal = tmpArr(index).mlLongData1
> Dim s As String
> s = "My serno(" + CounterVal + ")"
> tmpArr(index).mbsStrData1 = s
> index = index + 1
> End While
> 'Return the updated data
> ppoData = tmpArr
> End If
> End Sub
> The second argument to OnCmd is an array of EdmCmdData structures. There is one element in the array for each file that is affected by the call. See EdmCmdData for a complete list of members and their descriptions.

4. Click Build > Build Solution to build the add-in.

5. Install the add-in through the SOLIDWORKS PDM Professional Administration tool:
   1. Open the SOLIDWORKS PDM Professional Administration tool.
   2. Expand the vault where you want to install this add-in and log in as Admin.
   3. Right-click Add-ins and click New Add-in.
   4. Browse to project_path\project_name\project_name\bin\Debug, click project_name.dll and EPDM.Interop.epdm.dll.
   5. Click Open.
   6. Click OK.
   7. Click OK.

6. Right-click the Serial Numbers node in the tree and click New Serial Number.

7. Create a new serial number in the Name field and select Serial number from add-in in the Type dropdown.

   The name of your add-in is displayed in Name of add-in.

8. After ensuring that your add-in is selected, click OK.

   Now you can connect the add-in serial number to controls in your file data cards.

9. Click Cards > File Cards, double-click Text Card, and click the Title control.

10. In the Default value group box on the Edit-box properties panel, click Serial number and select the serial number that you created in step 7.

11. Save the card and exit the Card Editor.

12. C reate a new text file by right-clicking in a File Explorer vault view and clicking New > Text Document.
    The file data card displays a serial number in Title of the newly added file.