|
<< Click to Display Table of Contents >> Navigation: Developers' Guide > How to Create UDT and UDFs |
Navigation: Developers' Guide >
How to Create UDT and UDFs
This section explains how to create User Defined Field (UDF) and User Defined Table (UDT) using iVend AddOn Framework.
UDT and UDFs in iVend Retail are those custom fields which are created to cater different business requirement. iVend Retail 6.6 - Extensibility Package allows developers to create UDT and UDFs using iVend Retail Add-On Framework.
Follow the below mentioned steps to create UDT and UDFs on the start of an Add-On:
1.Create a new project by choosing "Class Library" as project type and and open it.
2.Add the CXS.Retail.Extensibility; and CXS.Framework.Core; and refer in the namespace.
3.Inherit BasePlugin class and override with Start() method.
4.Define and create UDT in the Start method.
5.Create an object of UserDefinedTable type.
6.Now define table properties such as name, description, and other attributes depending on business requirements.
7.Use "UserDefinedField m_Field1 = m_SampleTable.CreateField();" to create table fields and define fields' attribute.
8.Create, define, and add the properties in UDF then add them in the UDT.
9.Save the UDT to database using instance of CommitUserDefinedFields() method of UDFHelperClass class.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using CXS.Retail.Extensibility; using CXS.Framework.Core; using System.Windows.Forms; namespace SampleAddOnForUDT { //Details about Add on public class iVendAddOn:BasePlugin { UserDefinedTable m_SampleTable; public override string CompanyName { get { return "Company Name"; } }
public override string Description { get { return "Sample Add-On for UDT and UDF"; } }
public override string Name { get { return "TestUDT "; } }
public override Version VersionInfo { get { return new Version("1.0.0.0"); } }
//Create UDT on start of Add on. public override void Start() { base.Start(); CreateUDT(); }
//Create user defined table private void CreateUDT() { // No need to check table name with "u_" m_SampleTable = UserDefinedTableSubSystem.Instance.Load("SampleTable"); if (m_SampleTable == null) { //for creating new UDT m_SampleTable = new UserDefinedTable(); m_SampleTable.TableName = "SampleTable"; m_SampleTable.Description = "Sample user defined Table"; m_SampleTable.IsHistoryTracked = true;
//for creating fields for user defined table --varchar type UserDefinedField m_Field1 = m_SampleTable.CreateField(); m_Field1.FieldName = "Name"; m_Field1.Description = "Name of sample item"; m_Field1.DataType = UserDefinedFieldDataType.String; m_Field1.DataLength = 50; m_SampleTable.AddField(m_Field1); UserDefinedField m_Field2 = m_SampleTable.CreateField(); m_Field2.FieldName = "Code"; m_Field2.Description = "Code of sample item"; m_Field2.DataType = UserDefinedFieldDataType.Decimal; m_Field2.DataLength = 10; m_SampleTable.AddField(m_Field2); UserDefinedField m_Field3 = m_SampleTable.CreateField(); m_Field3.FieldName = "DateofIssue"; m_Field3.Description = "Issue date of sample item"; m_Field3.DataType = UserDefinedFieldDataType.DateTime; m_SampleTable.AddField(m_Field3); CXS.Retail.BusinessLogic.UDFHelperClass.CommitUserDefinedFields(m_SampleTable); } else { //for adding fields to existing UDT MessageBox.Show("U_SampleTable UDT already exist.");
//for adding valid values field for custom UDT. ExtendedBindingList<UserDefinedFieldValidValue> m_UserDefinedFieldValidValueList; UserDefinedField m_FieldRow = m_SampleTable.Fields.FirstOrDefault(d => d.FieldName == "U_ValidValueFieldColor"); if (m_FieldRow == null) { UserDefinedField m_Field4 = m_SampleTable.CreateField(); m_Field4.FieldName = "U_ValidValueFieldColor"; m_Field4.DataType = UserDefinedFieldDataType.ValidValues; m_UserDefinedFieldValidValueList = m_Field4.UserDefinedFieldValidValueList;
UserDefinedFieldValidValue m_ValidValues1 = UserDefinedFieldValidValueSubSystem.Instance.Create(); m_ValidValues1.Id = "Red"; m_ValidValues1.Description = "Red Description"; m_UserDefinedFieldValidValueList.Add(m_ValidValues1);
UserDefinedFieldValidValue m_ValidValues2 = UserDefinedFieldValidValueSubSystem.Instance.Create(); m_ValidValues2.Id = "Yellow"; m_ValidValues2.Description = "Yellow Description"; m_UserDefinedFieldValidValueList.Add(m_ValidValues2);
UserDefinedFieldValidValue m_ValidValues3 = UserDefinedFieldValidValueSubSystem.Instance.Create(); m_ValidValues3.Id = "Green"; m_ValidValues3.Description = "Green Description"; m_UserDefinedFieldValidValueList.Add(m_ValidValues3);
m_SampleTable.AddField(m_Field4); m_Field4.IsSearchable = true; m_Field4.IsMandatory = true; m_Field4.DisplayOnly = false;
//updating UDT. CXS.Retail.BusinessLogic.UDFHelperClass.CommitUserDefinedFields(m_SampleTable); } else { MessageBox.Show(" U_ValidValueFieldColor Field already exist."); } } } } } |
UserDefinedField m_Field1 = m_SampleTable.CreateField(); m_Field1.FieldName = "Name"; m_Field1.Description = "Name of sample item"; m_Field1.DataType = UserDefinedFieldDataType.String; m_Field1.DataLength = 50; m_SampleTable.AddField(m_Field1); |