Autodesk Vault ProfessionalVault API

AddNumberingScheme Method

Autodesk.Connectivity.WebServicesNumberingService

Creates a new Numbering Scheme for Files, Items, or Change Orders.

Required Permissions

ManageNumberingScheme

Syntax

public NumSchm AddNumberingScheme(
   System.string entityClassId,
   System.string schemeName,
   System.string providerName,
   NumSchmField[] fields,
   System.bool toUpperCase,
   System.bool reuseNumbers
)
Public Function AddNumberingScheme( _
   ByVal entityClassId As System.String, _
   ByVal schemeName As System.String, _
   ByVal providerName As System.String, _
   ByVal fields() As NumSchmField, _
   ByVal toUpperCase As System.Boolean, _
   ByVal reuseNumbers As System.Boolean _
) As NumSchm

Parameters

NameDescription
entityClassIdThe entity class id that the Numbering Scheme will operate on.
schemeNameThe name of the Numbering Scheme.
providerNameThe name of the Numbering Provider that provides numbers for the Numbering Scheme.
fieldsAn array of fields that make up the scheme. Please note, do not pass in any NumSchmField objects. Instead, pass in objects derived from NumSchmField.
toUpperCaseIf true, the characters in the Numbering Scheme should be displayed as upper case.
reuseNumbersIf true, Item Numbering Schemes will recycle numbers that were generated, but not in use. If false, once a number is created it can no longer be re-used.

Return Value

The Numbering Scheme object.

Example

using Autodesk.Connectivity.WebServices;
using Autodesk.Connectivity.WebServicesTools;
using Autodesk.DataManagement.Client.Framework.Vault.Currency.Entities;

class VaultSDKSample
{
    public static void AddNumberingSchemeSample(WebServiceManager serviceManager)
    {
        // Get the entity class ID we're working with
        string entityClassId = EntityClassIds.Items;

        // Get the default Numbering Provider for our Numbering Scheme
        NumProv defaultProvider = serviceManager.NumberingService.GetNumberingProviders()[0];

        // Add a numbering scheme that can be either "Part-######" or "Assembly-######"
        string schemeName = "TestScheme";
        bool toUpperCase = false;
        bool reuseNumbers = false;

        // create the predefined list field
        CodeWord partWord = new CodeWord();
        partWord.Code = "Part";
        CodeWord assemblyWord = new CodeWord();
        assemblyWord.Code = "Assembly";
        PredefListField listField = new PredefListField();
        listField.Name = "Type";
        listField.CodeArray = new CodeWord[] { partWord, assemblyWord };
        listField.DfltVal = partWord.Code;

        // create a delimiter field
        DelimField delimiterField = new DelimField();
        delimiterField.DelimVal = '-';

        // create an autodenerated field
        AutogenField autogenField = new AutogenField();
        autogenField.Name = "Number";
        autogenField.Len = 4;
        autogenField.From = 1;
        autogenField.To = 9999;
        autogenField.StepSize = 1;
        autogenField.ZeroPadding = true;

        NumSchmField[] fieldArray = new NumSchmField[] { listField, delimiterField, autogenField };

        serviceManager.NumberingService.AddNumberingScheme(entityClassId, schemeName, defaultProvider.SysName, fieldArray, toUpperCase, reuseNumbers);
    }
}
Imports Autodesk.Connectivity.WebServices
Imports Autodesk.Connectivity.WebServicesTools
Imports Autodesk.DataManagement.Client.Framework.Vault.Currency.Entities

Public Class VaultSDKSample
    Public Shared Sub AddNumberingSchemeSample(serviceManager As WebServiceManager)
        ' Get the entity class ID we're working with
        Dim entityClassId As String = EntityClassIds.Items

        ' Get the default Numbering Provider for our Numbering Scheme
        Dim defaultProvider As NumProv
        defaultProvider = serviceManager.NumberingService.GetNumberingProviders()(0)

        ' Add a Numbering Scheme that can be either "Part-######" or "Assembly-######"
        Dim schemeName As String = "TestScheme"
        Dim toUpperCase As Boolean = False
        Dim reuseNumbers As Boolean = False

        ' create the predefined list field
        Dim partWord As New CodeWord()
        partWord.Code = "Part"
        Dim assemblyWord As New CodeWord()
        assemblyWord.Code = "Assembly"
        Dim listField As New PredefListField()
        listField.Name = "Type"
        listField.CodeArray = New CodeWord() {partWord, assemblyWord}
        listField.DfltVal = partWord.Code

        ' create a delimiter field
        Dim delimiterField As New DelimField()
        delimiterField.DelimVal = "-"c

        ' create an autodenerated field
        Dim autogenField As New AutogenField()
        autogenField.Name = "Number"
        autogenField.Len = 4
        autogenField.From = 1
        autogenField.[To] = 9999
        autogenField.StepSize = 1
        autogenField.ZeroPadding = True

        Dim fieldArray As NumSchmField()
        fieldArray = New NumSchmField() {listField, delimiterField, autogenField}

        serviceManager.NumberingService.AddNumberingScheme(entityClassId, schemeName, defaultProvider.SysName, fieldArray, toUpperCase, reuseNumbers)
    End Sub
End Class

See Also