Sage ERP Accpac 6 Customization
With the next generation of Accpac’s Web based screens, we wanted to greatly improve the customizability of Accpac. We have a User Centered Design team that is working hard to improve the general usability of the product with the hope that fewer customizations are required. But as a mid market product we know that in most cases the 80 – 20 rule still applies, to ensure we deliver at least 80% of the customer’s required functionality, but be flexible enough that the remaining 20% can be filled by ISV partners and customizations.
With-in Accpac 6 there are three categories of screen customization:
- In product. Basically screens and dialogs that allow users to customize their own screens and workspace. This includes things like adding shortcuts to the shortcuts bar and choosing their Data Portlets for their Portal home page. Configuring the Data Portlets to display what the customer requires.
- Codeless customization. These are customization that can be performed exclusively inside the screen/form designer. These customizations don’t require any Java programming.
- Coded customization. Here you are writing Java code to extend and modify the shipped forms.
For any customization we want to ensure that the user can easily upgrade to the next version without having to re-create the customizations from scratch. Ideally this should be handled transparently via the upgrade process. But once coding is involved then there is quite a bit of room to break this, we will publish best practices, so your code will just need to be re-compiled on the new version, but it’s up to the partner performing the customizations to follow these guidelines.
For codeless customizations, all the User Interface screens are saved on the server as XML files separate from the UI program. This means you can edit/customize these XML files without needing to use programming code or development tools. However we do provide a screen designer to edit these XML files in a friendlier manner. In Sage ERP Accpac 6.0, this tool will be available for developers via the SDK, and in 6.1 will be part of the standard product for use by anyone with sufficient security rights. Below is a screen shot of the UI designer editing the A/R Billing Cycles form. You can see some of the controls you can select as well as some of the control properties that can be set.
Some typical customization you can do here include:
- Changing text. The form will automatically resize as you change text lengths.
- Adding controls. Controls are controlled via layout, hence you can’t put a control on top of another control. The controls will move out of the way to allow you to insert an new control. You can attach the control to fields in the SData feeds.
- Adding data sources. You can add SData feeds to the form.
- Re-arrange all the control. Change the layout.
- Remove unwanted elements from the form.
- Change the tab order.
- Change existing control properties and CSS styles.
- Change the columns in list controls.
- Assign actions (like button presses) to standard actions provided by the system.
On the server we have classes that receive the SData requests from the clients, and translate these requests into Accpac View (Business Logic) calls. There are a number of classes that do this in a standard manner. However applications can extend the default class for this to do things like add extra fields to the feed. These extra fields may be to provide additional database fields from other places or to perform calculations on the server rather than the client. These classes can also change things like the read-only status of a field. ISV’s or sophisticated customizers can also added classes that extend the existing classes to add additional fields, say for their customizations or change the behavior/values of the existing fields. Since Java fully supports object oriented class inheritance, creating these classes is far easier than creating View subclasses (which you can still do).
On the client, you can extend the classes that comprise the User Interface program that runs in the browser. This is very much like how you wrap our current ActiveX VB UIs. You basically extend the main UI class and get access to a collection of all the controls and SData feeds. You can also add listeners to receive any event you are interested in. Then programming is very similar to how you customize the current UIs. The difference being that you now program in Java rather than VB or VBA, and you have to feed your program through the GWT Compiler to generate a new extended UI.
Hopefully this gives an overview of how customizations work in the new Sage ERP Accpac 6 Web-based world. Generally we are looking to continuously improve our customization model to make it easier to accomplish the customizations that customers require.