AddNumberingScheme Method
Creates a new Numbering Scheme for Files, Items, or Change Orders.
Required Permissions
ManageNumberingSchemeSyntax
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 NumSchmParameters
| Name | Description |
|---|---|
| entityClassId | The entity class id that the Numbering Scheme will operate on. |
| schemeName | The name of the Numbering Scheme. |
| providerName | The name of the Numbering Provider that provides numbers for the Numbering Scheme. |
| fields | An array of fields that make up the scheme. Please note, do not pass in any NumSchmField objects. Instead, pass in objects derived from NumSchmField. |
| toUpperCase | If true, the characters in the Numbering Scheme should be displayed as upper case. |
| reuseNumbers | If 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.
Remarks
Please note, adding a new Numbering Scheme will not automatically activate it.
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