Stephen Smith's Blog

Musings on Machine Learning…

Archive for November 2009

SData in Sage ERP Accpac 6

with 62 comments

One of the big features in Accpac 6 is SData support. What is SData? SData is a web services protocol based on REST. What is REST? REST is a web services protocol that is very popular among Internet companies. There are basically two main competing standards for web services. One is SOAP which is promoted by Microsoft, Oracle and IBM; this is a fairly heavy duty protocol which requires a fair bit of infrastructure (which is provided by the companies promoting this protocol). The other is REST which was invented as a University Research project and basically uses existing Web Technologies such as HTTP and RSS to implement a web services protocol. The nice thing about REST is that it doesn’t require any extra middleware. You are basically doing everything via standard web URLs. The infrastructure that supports this is basically just the standard Internet. SData is just an extension to REST, similar to Google’s GData which is also based on REST. REST protocols are used by Google, Amazon, eBay, Yahoo and all the main Internet companies. Gartner estimates that 75% of web services in use on the Internet are REST based. REST/SData also provides a standard mechanism for performing CRUD (create, read, update, delete) on all records.

From Accpac, every Accpac View (or Business Logic Object) will be exposed via SData. This provides third party ISVs a complete, efficient Web Services interface to communicate to Accpac with. Also all Sage applications are being made SData aware, meaning that all Sage applications can manipulate SData Web Services (or feeds). For instance here is some Accpac A/R Customer and G/L Account data displayed within a Sage CRM Dashboard using SData.

From a simple wizard you can select any Accpac SData feed and once you’ve chosen a feed, you can select which columns you wish to display. Additionally Sage CRM and Accpac will be converting to use SData for our integration needs, this transition will occur over several versions of both products. In the same way you will be able to access CRM data from Accpac using SData.

All the new Sage ERP Accpac 6 screens are written entirely using SData. This means the screen can access any Accpac Views via SData, but additionally they can access any SData feeds from any product. In Accpac 5.x, the screen controls were mapped via datasource controls to views and view fields. This was great, but it limited you to only connecting our standard controls to fields in Views developed in our SDK. Now that the controls are mapped to a standards based SData fields, it means they will be able to be connected easily to much more data than just Accapc data. Look for other Sage products to start providing SData interfaces in their coming versions.

Sage is publishing SData as a publicly available standard. You can read all about it at: http://sdata.sage.com/.

Written by smist08

November 24, 2009 at 3:29 pm

Posted in SData, Software Architecture

Tagged with , , , ,

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

On Agile Sprint Reviews

with one comment

On part of the agile scrum development process I like are the regular sprint reviews. Basically in Scrum, you operate on a really short mini-release cycle called a sprint. Our sprints are 3 weeks long and on the last day of the sprint we hold a sprint review, which is a presentation on what was accomplished during the sprint. We have seven agile teams which all operate on the same sprint calendar. At each sprint review meeting, each team gets 15 minutes to present what they accomplished in the sprint. Attendance of this meeting tends to be quite high and diverse including all the sprint team members, people from Product Management, Support, Sales, etc. It is a really good way for everyone in the company to get a view to how development of the next release is going and provide feedback.

The best demos in the sprint review are of running the real product and accomplishing real user tasks (or stories). But sometime the demos can be of low-level processing as seen from the debugger or SQL analyzer, user centered designs, test cases, etc. The sprint review is a great motivator for the teams to finish stories and to be able to present them. There is a lot of competition between the teams to show the most progress and to present the most amazing demos.

The sprint review is just one small aspect of Agile programming, but it acts as a true focusing force to bring the product back together at the end of each sprint and to motivate the teams to finish their stories in time for the sprint review. The couple of days before the sprint review can be quite stressful for the teams as they try to finish things up. Remember Agile development has quite a strong “doneness” criteria which must be met before something can be demo’ed in the review. Any story that is demo’ed must be “done”, that means it must be fully finished, meaning fully tested and accepted by the product owner. If the story isn’t “done”, then it isn’t finished and can’t be demo’ed. It must be left to the next sprint and the team won’t get credit for that story until it meets the full “doneness” criteria.

Written by smist08

November 8, 2009 at 3:53 am