User Guide

Understanding the Benefits of the Sage Accpac ERP Architecture
12
Sage Accpac ERP
Technology
Easy and Safe Customization. In an object-oriented design, objects inherit functionality from
one another by “sub-classing” functionality and modifying part of the behavior. This means that
customization is easy, as a wide range of development and customization tools can be used to
manipulate objects. Availability of third-party software products that modify the core behavior in Sage
Accpac is an important form of customization. The inheritance model Sage Accpac uses allows
multiple third-party products to modify the core behavior of Sage Accpac objects, with each third-
party product behaving as though it is the only third-party product present. The customizations are
also safe, because none of the code of the original object has changed.
Figure 6 illustrates inheritance to two levels. Core Object 1 is part of a program and communicates
with other objects through four messages—a, b, c, and d. When another object, Customization Object
2, subclasses Core Object 1, it modifies the behavior of two of Core Object 1’s messages, a and b.
A third object, Customization Object 3, can sub-class Core Object 1 and Customization Object 2,
modifying messages a and d.
b
1
a
1
d
1
c
1
a
3
b
2
d
3
c
1
Core Object 1
Core Object 1
Customization Object 3
Customization Object 2
Figure 6—Sage Accpac business logic objects support multilevel inheritance, providing customization options
without jeopardizing the integrity of the core business logic.
Large Objects Are Ready to Deploy Anywhere. What does it mean for an object-oriented design
to be implemented at the right scale? It means that objects are the right size. For analogy, a real-
world object like a car is thought of as its major components: An engine, a chassis, a transmission,
axles, and so on. Smaller objects like bolts, washers, and wiring are less functionally significant in the
overall design. Sage Accpac has millions of lines of code, but only slightly more than 600 objects.
Competitive products that use object-oriented tools, but have thousands of small objects, take more
effort to manipulate, because each high-level task involves patching together ten or more small objects
with snippets of code.
When large business logic objects are used, these large objects represent real, high-level application
tasks, such as posting to a general ledger. This high-level functionality is available to any user or third-
party developer who wants to customize—without the need to modify the actual business logic code.