iVend Retail - Object Relationship Hierarchy

iVend Retail - Object Relationship Hierarchy

Who should be reading this document?

This document is intended for partners who have signed-up with CitiXsys under the ‘Open Source License Program’. Partners willing to undertake source code modifications under license from CitiXsys to pursue customizations should be reading this document.


This document illustrates the complete object hierarchy of a business entity i.e. the Subsystem within the iVend Retail framework. The Subsystem is logically divided into two (2) parts:

  • The user interface part consisting of the ‘AddEditView’ and the ‘SearchView’

  • The business entity part consisting of the attributes and business logic


User Interface (View) Object Hierarchy

The user interface representation of a business entity is composed of two (2) views sitting right at the bottom of the hierarchy:


AddEditView: This is a user control which provides CRUD capabilities to a business object such as a Country.


SearchView:  This is another user control which allows search capabilities on the attributes of a business object. For example, Name of a Country

 

The description of each class is listed in the following table below in the descending order of the hierarchy:


Namespace

Class

Purpose

System.Windows.Forms

UserControl

WinForms Control class that is used to create all other controls.

DevXpress.XtraEditors

XtraUserControl

Rich Editor class from DevXpress that specialises the UserControlClass

CXS.Platform.UIComponents

CXSBaseView

Provides iVend Retail specific base methods of controlling the view of a business entity

CXS.Retail.UIComponents

BaseRetailView

Provides implementation of properties that can be browsed in the designer files of the user control

CXS.Retail.UIComponents

BaseAddEditView

Provides implementation of important events and their handlers

CXS.Retail.UIComponents

BaseSearchView

Provides implementation of important events and their handlers

CXS.Retail.UIComponents

CountryAddEditView

Actual implementation class for a specific business entity to provide CRUD capabilities

CXS.Retail.UIComponents

CountrySearchView

Actual implementation class for a specific business entity to provide search capabilities

CXS.Retail.UIComponents

RetailPOSViewManager

Class that loads, initialises and registers all the views for final rendering on the user interface

 

 

Business Entity (Subsystem) Object Hierarchy

The code logic and the data part of each entity is denoted by two logical classes sitting right at the bottom of the hierarchy:


Business Object (e.g. Customer): This represents the attributes of a business entity including the getter-setter properties for the entity.


Business Object Subsystem (e.g. CustomerSubSystem):  This class holds the data part of an entity (including access controlled based CRUD methods).

 

The description of each class is listed in the following table below in the descending order of the hierarchy:


Namespace

Class

Purpose

System.ComponentModel

INotifyPropertyChanged

Notifies clients that a property value of a business entity attribute has changed.

CXS.Framework.Core

BindableBase

Implements INotifyPropertyChanged interface and acts as the ultimate base class for notifying a change occurring in in the contents of the collection

CXS.Framework.Core

UndoableBase

Handles most of the work for an n-level undo at an object instance level. It takes a snapshot of the business object fields before a user interacts with the application. The object is restored to its original state if a Cancel/Undo event is triggered by the user

CXS.Framework.Core

BusinessObjectBase

Inherits from UndoableBase and implements IBusinessObject and ICloneable interfaces to provide object cloning at the base level

CXS.Framework.Core

BusinessObject

This is a non-generic base class that inherits from BusinessObjectBase. All business objects are derived from this class. The basic state management functionality is implemented as virtual methods and properties of this class such is IsNew, IsValid, IsDirty and IsDeleted to flag the state of each object in the application instance. Object level validation rules and provision for specifying custom business rules for the derived classes are also implemented here.

CXS.Framework.Core

IBusinessObjectSubSystem

Provides interface based inheritance constraints on the ‘BusinessObjectSubSystem’ concrete class

CXS.Framework.Core

MasterBusinessObject

Derives from BusinessObject and provides the basic structure of any class that is instantiated within the application. Each derived object is uniquely identified by a unique identifier (Id) and a description of the object. While assigning an identifier basic authorisation and automatic n-level undo routines are automatically performed

CXS.Framework.Core

BusinessObjectSubsystem<MBO>

This has the complete implementation of NHibernate connection and transaction management routines where MBO represents a BusinessObject type. It uses the BusinessObjectFactory class internally to instantiate and load smart objects i.e. objects with data that can be serialised across network or machine boundaries. The entire subsystem for iVend Retail is encapsulated by this class which implements the IBusinessObjectSubSystem interface

CXS.SubSystem

Customer

Houses a collection of all base objects within the assembly that are representations of real time objects found in the retail domain. Some of the objects are country, state and zip code

CXS.SubSystem

CustomerSubSystem

Has the domain code for each business object defined in the business objects segment and is prefixed with the ‘object.subsystem’ convention where the object is the name of the object such as country. Thus, a country object will have a subsystem class named as ‘Customer.SubSystem’. This is true for all other objects. These subsystem classes are responsible for populating the objects with the actual data from the database which is then serialised (and cached) as a ‘smart’ object in the framework

 


    • Related Articles

    • General Settings in SAP Business One

      Introduction The iVend Add-on helps in setting up some configurations required for integrating iVend with SAP Business One. The following sections of this document capture the functionality of the new screens created and new fields added to the SAP ...
    • Merchandise Hierarchy

      Introduction iVend retail enables a retailer to analyse their sales data through various tools. By using Merchandise Hierarchies, the retailer can easily organse their products and items in various categories and sub-categories, that further helps ...
    • Bonus Buys Hierarchy

      Bonus Buys Hierarchy iVend Retail allows retailers to create multiple promotions and set the priority of the promotion on a hierarchy basis. Business case Let’s consider a case where a retailer is planning to create a set of promotions as below. 1. ...
    • iVend Integration : SAPB1 Object Types

      Environment: iVend 6.6 7989 with SAP B1 9.2 PL 08 Problem Statement: iVend Integration : SAPB1 Object Types Symptoms: NA Recommendations /Suggestion: There are various objects available in SAPB1 i.e. documents type. So Integration service process ...
    • iVend Retail Audit Log

      iVend Retail Audit Log The Audit log is one of the most important features that comes with iVend versions 6.5 and above. It allows for the tracking of all users’ data changes in the application. All operations such as Add, Update, and Soft Deletes ...