Stephen Smith's Blog

Musings on Machine Learning…

To SDK or Not to SDK

with 7 comments

That is the question. With Sage ERP Accpac there is a lot of customization capabilities and programming APIs built in including VBA macros and the Accpac COM API, but then there is the Software Development Kit or SDK ( A common question is: Do I need the SDK to do this or that? In this blog posting we will see what you can do without the SDK and what you require the SDK to do.

The core Accpac System Manager contains many components and tools that are installed as part of the regular product. These are all required for the normal use of Accpac. For instance all our User Interface Forms use our COM API to communicate with the Business Logic, so this interface must be installed with System Manager and as a result if fully usable from any COM aware programming system (like VB) without anything else being required. In the same way, the VBA macro system is installed as part of System Manager.

Although there is an SDK installation that you install and use on your computer, we don’t sell that as a product. What we sell is an ISV program that includes the SDK, along with access to online resources like a Wiki, programming support calls and other programs like discounts for trade show booths. So even if you don’t need the SDK installation part, you might still want to sign up for the ISV program for some of the other benefits. Especially the support, since this is the only way you can get support on programming type problems.

Without the SDK


The Accpac macro language is VBA ( You can use this to automate processes and customize UIs. It is a very powerful feature of the core Accpac System Manager. From VBA you have access to all the Accpac Business Logic.

External APIs

These are APIs that are built into the core Accpac System Manager that allow external programs to connect to Accpac and use the Accpac Business Logic. These APIs include the Accpac COM API (also used by VBA) and the .Net Interface. In the forthcoming Accpac 6.0 there will also be a Java Native Interface (JNI, and the SData RESTful web services interface (

Crystal Reports

Crystal Reports ( is not part of the SDK. If you want to customize reports in Accpac, you need the Crystal Reports Designer (available separately). With this you can open and customize any report in Accpac (except Financial Reports which are done in Excel). When customizing reports, consider putting them in a customization directory (see administrative services) rather than just customizing the report Accpac installed in place, since it might get overwritten by a product update later.


System Manager includes a number of useful tools under the Tools folder of its start menu entry. Many of these like RVSpy are very useful when developing macros or programming the external interfaces. Below is the U.I. Info tool that is included with System Manager.

With the SDK

The goal of the SDK is to let third parties write accounting modules just like Sage writes Accpac accounting modules like Accounts Receivable or Order Entry. In fact our own developers of these products use the same SDK that we make available. Some examples of third party applications developed this way are Technisoft Service Manager (, Norming Asset Management (, Peresoft Cashbooks ( or AutoSimply (

The SDK gives you all the header files and libraries to develop with C/C++. It gives you templates for create Accpac User Interface Forms and Views (Business Logic Objects). It gives you a large set of tools to help you develop with. Many of these tools are added to Accpac as a regular Accpac application see below.

If you look in an accounting application directory such as AR56A you will see a number of small files like roto.dat or eng\grp.dat. The SDK contains command line tools to create these files. Basically it is everything you need to develop a complete Accpac application.

When you create your application with the SDK you get all the functionality of a full Accpac application with very little extra work. For instance your application will:

  • Fully support VBA – you are as customizable as any other Accpac application
  • Your Business Logic will be available through all the external APIs
  • Will use  the standard Accpac Import/Export
  • Your UIs will look, feel and behave like any other Accpac screen – you will use the same controls like Finders, grids and navigation controls
  • Runs from the Sage Accpac desktop, and the Sage Accpac Web-desktop
  • Will participate in data activation, database dump/load and all other Accpac database operations like database transactions


Add-ins are developed in the same manner as full SDK modules. However their goal isn’t to be a standalone application. Their goal is to add to or change the functionality of existing Accpac modules. They can alter the behavior of the business logic, as well as add their own business logic, UIs and reports.

The key feature add-ins are using is that the Accpac business logic can be “subclassed”. That means you can create a new business logic object that sits in front of the Accpac one and process all the calls first. These subclasses are chained, so there could be several add-ins all subclassing the same Accpac business logic object. This is a very powerful form of customization, in that it customizes the behavior for everything that uses the business logic including import/export, macros, external programs as well as UIs. Whereas UI customization only affects the customized UI.

An example of an Add-in is the Accpac SageCRM integration module. This module, once activated has a few UIs, but its main purpose is to subclass a number of Accpac business logic object and when they are called, make corresponding changes in SageCRM. For instance when you update a customer’s information in Accpac, the SageCRM’s subclass Views sees the changes and calls SageCRM’s API to make the corresponding change there.


As you can see, you can develop quite a few powerful customizations and integrations without using the SDK at all. So how do you choose when to use the SDK? Main reasons to use the SDK:

  • Create a full Accpac accounting module
  • Create an add-in with subclass business logic objects
  • Want to get the 12 free developer support calls per year
  • Want the full Accpac SKD documentation to better understand the workings of Accpac

Some of the main things that you don’t need the SDK for:

  • Create a macro to customize a UI
  • Create a macro to import data
  • Create an integration via the COM API or .Net interface to an external program

This is a guide, as with anything in computing there are always exceptions, but hopefully this gives some guidance.

Written by smist08

October 30, 2010 at 9:01 pm

Posted in sage 300

Tagged with ,

7 Responses

Subscribe to comments with RSS.

  1. […] This post was mentioned on Twitter by smist08, Geek Fetch. Geek Fetch said: ACCPAC To SDK or Not to SDK: That is the question. With Sage ERP Accpac there is a lot of customization capabiliti… […]

  2. I wrote a 3d party package for Accpac, when I install the 3 d party software I also install the sdk locally.
    When installing the SDK do I need a local install of Accpac or will it work with a workstation installation.


    March 4, 2016 at 6:38 am

    • You don’t need to install the SDK, just workstation setup should be fine. Note that your program needs to be installed under the Sage 300 programs folder which could be either local or on a server.


      March 4, 2016 at 4:47 pm

  3. If I don’t want to use SDK and use Macro, can I recreate a module or only the SDK can recreate the modules?


    August 24, 2017 at 7:03 am

    • The SDK is for creating new modules. Macros are for customizing existing modules. You don’t need the SDK for macros. Macros are a bit limited in customizing business logic, for heavy duty business logic customization you need the SDK (subclassing views which is very technical).


      August 24, 2017 at 11:06 pm

      • This SDK, is it available for Sage 300 Desktop version? I actually not really understand about this SDK, found a few blogs about SageNADev and I think it’s only for the web version right? Where exactly can I do my research about this SDK for Desktop?


        August 25, 2017 at 1:35 am

      • The SDK has what you need for all Sage 300’s various versions and APIs. It includes everything for the desktop version as well as the web version.


        August 25, 2017 at 1:44 am

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: