Stephen Smith's Blog

Musings on Machine Learning…

Declarative Programming in Sage ERP Accpac 6.0A

with 7 comments


In the Sage ERP Accpac 5.x series of product, all screen definitions were part of the Visual Basic programs that made up each user screen. The only way to get at these screen definitions was to embed the OCX for that screen in a VB program or VBA macro and then manipulate the screen programatically. With Accpac 6.0, we wanted to make many screen customizations way easier. The solution was to separate the screen definition from the User Interface program. In Accpac 6.0 each screen is defined in an XML file that contains all the layout information. This screen can be edited in a Visual Screen Designer that is part of the product, or since XML is just a text file, it can be edited in a standard text or XML editor. For that matter the screen can be generated from another program. The definition of the screen layout file (xsd file) is available and the format is completely open.

In Accpac 5.x, we saved a lot of programming time by binding the individual UI elements to datasources. This meant that an edit control was actually attached to a View field via its properties in the VB form designer. Then the control would be data aware and handle setting its data into the view and retrieving updated data from the View. In this way, no programming was required for most of the forms on the screen. We have exactly the same concept in Sage ERP Accpac 6.x. Only each control is bound to a field with in an SData feed and that SData feed could theoretically come from any Sage application that provides SData feeds or from any other application that has adopted the open SData format. Thus again no programming is required for most fields on the form.

Then we have gone one step further and provided standard actions that can be attached to controls in the layout. In Accpac 5.x you had to code all the logic that happened when a button was pressed. In Accpac 6.x we provide standard actions, so for instance you can attach a save action to the save button which will perform the save operation on the configured SData feed. This way we can develop simple forms with navigation, save, new and delete operations, with no programming. The declarative layout actually produces a complete running program can run with no additional code. Many of the Accpac setup and other simple screens can be developed this way, greatly speeding the development of Accpac 6.x.

The layouts for Accpac 6 are quite different from the screens in Accpac 5.x. For one thing all controls were placed on 5.x screens at specific x,y co-ordinates. In Accpac 6, all layout is handled by browser document object model layout nodes. Nothing is specified in x,y coordinates, you just specify which controls line up and how and then the process is dynamic depending on the length and size of the text. This is a great benefit when translating into languages that take more space like Spanish since the form will automatically adjust to the longer text. When running a right to left language like Arabic, it’s even smart enough to be able to re-arrange all the controls into a right to left ordering. All this is just functionality built into every browser and something we gladly don’t have to worry about.

These are just some of the new things that declarative layouts are bringing to Sage ERP Accpac 6.0A. This will really be a strong and flexible foundation to develop on.

Written by smist08

November 19, 2009 at 3:38 am

7 Responses

Subscribe to comments with RSS.

  1. Stephen,

    I think this is a long waited wishlist which is now coming to us. It’s really good to note the developments happening in Sage Accpac world and yes, this will be a leap forward in the product design.

    Wish, we can now take up calls on screen customizations from our clients, without hessitation.

    Sundaresan Ramanathan

    November 19, 2009 at 8:19 pm

  2. I worked with another accounting package that leveraged Microsoft’s Digital Dashboards to web enable their software. They built AJAX functionality before it was called AJAX and used XML for the screens. All of the business logic was run on the server. A field that had a relationship with another table such as the customer number field on an order header would automatically be rendered with a lookup button. No coding necessary. Unfortunately DDB went the way of the Dodo due to security problems and IE. It had some limitations but it was fast and better than anything that I’d seen to date.

    Django Dunn

    November 20, 2009 at 9:44 pm

  3. One more concern that would come up now is “how best & quick the partners (DP) can adopt their modules to the new design? Hope the technology is well shared among the DPs and they also have started on working with Sdata.

    What are the plans on the integration sides of Sage Accpac ERP with other suites of Sage Accpac ?

    Sundaresan Ramanathan

    November 22, 2009 at 1:11 am

  4. We’ve been giving training to DPs, including at Insights and TPAC. Plus we are developing tools to help port VB screens to the new framework. Certainly SageCRM is integrating into the SData framework. Hopefully we’ll be seeing Abra join shortly after.

    smist08

    December 1, 2009 at 2:56 am

  5. […] Declarative Programming in Sage ERP Accpac 6.0A Sage ERP Accpac 6 Performance Testing Sage ERP Accpac 6 Security Sage ERP Accpac 6.x Mobility Automated Testing in Sage ERP Accpac Development How to Layout Forms in Sage ERP Accpac 6 Creating a Web Form for Accpac 6 Client Logic for an Accpac 6 Web Form Writing Server Side Code for Accpac 6 Web UIs Preparing for the Sage ERP Accpac 6.0A Launch […]

  6. […] which will read VB projects and interpret their screen layouts and then generate an Accpac 6 declarative layout based on the original VB screen, but trying to follow as many of the porting guidelines from the […]

  7. […] View part of MVC is the declarative layout. This is the XML file that defines the form layout. This file defines all the controls, their […]


Leave a reply to Sundaresan Ramanathan Cancel reply

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