Monthly Archives: April 2011

#7 Sage Accpac GL Subledger Services

Date: 24/04/2011

Posting to General Ledger is an important task for all subledgers in the Sage Accpac ERP environment. However, it requires a significant amount of code and effort. To relieve the subledgers of this, accpac package provides a number of common services relating to the processing of General

Ledger transactions

The Subledger Services include:

• A facility for modifying General Ledger numbers via segment substitution.
• A standard interface that handles posting to either General Ledger or to an intermediate holding database.
• A database suitable for holding this data pending final posting through to General Ledger.
• A reporting service to list transactions held in the database.
• A transfer service to perform final posting through to General Ledger.
• Consolidation of ledger transactions.
• Additional speed in posting, if the client application selects deferred posting to General Ledger.

Subledger Services consist of three superviews and a callable VB UI program that provide these services. To call the superviews, use the standard routines for accessing and modifying data in other views.

The following table gives the Roto ID and description of each superview:

Roto ID View Name Description
GP0800 GPGLFMT Segment Substitution Superview
GP0930 GPGLPE Transaction Transfer Superview
GP0950 GPGLPO General Ledger Transaction Posting

Installation and Activation

Subledger Services installs with the System Manager. Activation occurs in one of two ways:

• Directly from Data Activation facility on the Administrative Services desktop.
• Invoked by the client application. In this case, no prompt to proceed with activation or meter box will appear.

Client applications that require Subledger Services should check that it is activated and activate it themselves if it is not. Subledger Services currently requires no other
applications. It will create export files if General Ledger is absent.
Integrity checking
Subledger Services has an integrity checker that appears on the Desktop. Users should run it as part of normal system testing.

Segment Substitution

General Ledger codes may have multiple segments. The account segment may not be modified. The other segments may differentiate locations, departments, or even separate corporations under a single management structure. In order to allow substitution, each General Ledger code has a “breakout ID” associated with it. This breakout ID indicates the order and kind of segments in the code. Substitution entails looking up the General Ledger number, getting the breakout ID, and then replacing the appropriate segments in the code with others. To format the General Ledger code, the resulting code is in turn looked up in the General Ledger database. General Ledger provides the database components necessary to deal with these segments, but does not provide the mechanism for taking a base General Ledger number and generating a segment-substituted one from it. The superview GPGLFMT supplies this service.

Usage Protocol

The substitution superview uses the following protocol to process the data:

Load and Open the view.
Put the base GL code and substitution values.
Process the view.
Get the resulting GL code and other information.
Close the view.
Unload the view.

Because this module does not modify data, it does not require transaction processing.

Substitution buffering

GPGLFMT buffers the results of previous segment substitution parameters for a given invocation (viewOpen … viewClose cycle). As a result, it does not go to General Ledger for every lookup, if the client is repeatedly substituting the same account codes. However, if you want to flush the buffers at any point, call CANCEL. Note that GPGLFMT does not retain results in a database, but merely caches them in the view handle; there are no leftovers from previous invocations to flush. There is currently no provision to adjust either the number of buffers or the caching scheme.

Error Codes and Messages

Process returns one of the following codes:

Code: Meaning:
0 Segment substitution was successful.
9901 A recoverable error occurred.
9902 An unrecoverable system resource error occurred.
9903 An unrecoverable internal error occurred.
9904 The base GL account does not exist.
9905 The result GL account does not exist.
9906 The GL data is inconsistent.

The client application can select error message reporting using the Browse entry point. Call Browse with bAscending set to TRUE to enable error messages or with bAscending set to FALSE to disable them. The system will return the error codes in either case to allow the client application to use its own error messages, or to continue processing in some other fashion.

For proper processing, both the base and result General Ledger numbers must exist. This is because the substitution pattern is a property of the General Ledger code.

However, because subledgers can add numbers at a later time, the substitution code will attempt to continue processing by providing reasonable values even if it cannot
find the General Ledger numbers.
If the base does not exist, the formatted number will be the base, and the unformatted result will be the base stripped ofits formatting characters. If the base exists but the result does not, both theformatted and unformatted results will be the substituted account number, built from the unformatted base.

If General Ledger is not installed, the calling protocol given above will work although GPGLFMT will not make substitutions. This allows applications to call GPGLFMT in the same way with or without General Ledger.

Field Descriptions

Name Type Size Description
GL Numbers (BASEGL) String 45 Base GL Number
Substitution values (SEGNUM1..9) String 6 Segment Number 1 to 9
SEGVAL1..9 String 15 Segment Value 1 to 9
SEGLENGTH1..9 Integer 2 Segment Length 1 to 9
SEGINSERT1..9 Integer 2 Segment Insert Point 1 to 9
RESULTGL String 45 Substituted GL Number
FORMATGL String 45 Formatted GL Number
OLDSEGVAL1..9 String 15 Old Segment Value 1 to 9
NEWSEGVAL1..9 String 15 New Segment Value 1 to 9

Will try to provide more detail related to the fields in my next blog post.



Tags: , , , , ,

#6 Sage ACCPAC Runtime Environment

Date: 17/04/2011

Today’s Blog gives an overview of the Sage Accpac ERP runtime environment, and describes how applications operate within that environment.

The System Manager
The System Manager is central to the runtime environment. It controls access to all accounting applications and manages information used by these applications. To the user, the System Manager visually presents itself as the company desktop, accessible locally or via the web:

Each icon on the company desktop is a selection, either to get to the next level of choices or to invoke a program.

The contents of the desktop are completely data-driven. An icon appears on the desktop if:
• The application is activated for the company.
• The signed on user has access rights.

Programs invoked from the desktop are separate executable that operates as independent program objects. A Sage Accpac ERP application is made up of a set of program objects. Users can start several objects and leave them active on the screen at the same time.

Program objects can be invoked by:
• A user selecting them from the desktop.
• Another object in the same application.
• Another object in another Sage Accpac ERP application.

This navigational independence allows for more flexibility in user operations. A set of System Manager programs works behind the scenes to provide the user interface, database connection and access, security validation, control of concurrent processes, and object management and communication support. These programs combine the desktop and the independent program objects into a seamlessly integrated business system.

Components of the Sage Accpac ERP Runtime Environment

The following diagram shows the key components of the runtime environment. The dotted boxes show the two parts of a program object: user interface and views (database access).

Company Orientation
There are two types of databases in Sage Accpac ERP:
• System
• Company

The system database contains common services data that is shared by several companies. For example, currency tables are centrally maintained in the system database and can be shared by all companies associated with that system database.

A company database contains data tables for all applications that have been activated for that company. There can be multiple system and company databases for each Sage Accpac ERP installation.

Shared Services

Besides providing the runtime support environment, the System Manager provides many common facilities that can greatly benefit application developers and save significant development effort.

These facilities include:
• Finder
• Criteria selection
• Import and export
• Macros
• Custom controls

Common Services
Common business application services like company information, fiscal calendar maintenance, currency rate maintenance, check reconciliation, and sales tax table maintenance are also part of the System Manager services. Here is an example of the Common Services window:

Centralizing these functions means better integration of applications. For example, the bank service maintains a centralized list of checks issued out of a bank account by any application.

Database Independence

Applications gain access to the database through a common application program interface (API) layer. The application deals with its data at the record level. The database access driver can be adapted to operate with different database platforms. Replacing database access drivers does not affect the application.

Integration with Crystal Reports
Reports are an important part of any business application. With Crystal Reports, you can design flexible, feature-rich reports from any supported Sage Accpac ERP data source. Use Crystal Reports to create your report, and then write a report UI or a macro to prompt the user for the report’s parameters, and invoke the report engine.
For more detail on crystal Report and Accpac see: Accpac & Crystal Report

Multi-language Support

Language-specific application files, such as UI resources, reports, and messages, are kept in separate language subdirectories in the application program directory. For example, for General Ledger 5.6A, English language specific files are installed in the GL56A/ENG subdirectory. One installation can have the same application in several different languages. A language code is recorded for each user.

Application Structure

Each Sage Accpac ERP application is made up of:
• A set of user interface programs.
• A set of view DLLs.

User interface programs are accessed in either the company or web desktop. These user interface programs gain access to views to perform accounting functions.

Views are DLLs (dynamic-link libraries) that access and process data, and make the result available to user interface programs, import or export functions, DDE (dynamic data exchange), macros, and other functions. Each view encapsulates data and processing logic related to a set of application data in a single program. For example, the General Ledger has a view for the account master and a view for journal entries.

A user interface program works with the data that a view encapsulates by accessing a standard set of entry points that the view exports. Through these entry points, the calling program:
• Obtains descriptions of the data the view encapsulates.
• Creates the related data table(s).
• Retrieves data from it.
• Asks it to verify new data or changes.
• Updates the database.

The view maintains the data integrity of that set of data. Once a view encapsulates a set of data, any program that wants to access the same set of data can simply access the view. Using views, the calling program needs to be concerned only about which data it wants and what it wants to do with the data. The view takes care of getting and maintaining the data. This approach eliminates code duplication and reduces development, testing, and maintenance time.


Leave a comment

Posted by on April 17, 2011 in Sage Accpac


Tags: ,

#5 Sage Accpac Support

Date: 10-04-2011

As continues support is a crucial part of any IT project, ERP is also not any exception. With the thousands of customers, end users and consultant working on Sage Accpac ERP all around the globe need continues support on the issues faced by them. In this blog posting I refer and highlight the support strategies of Sage and try to answer the question “How one can get quick and reliable support on Accpac issues?”

Sage Accpac have its presence in most parts of the world and increasing day by day. Sage is doing business through channel partners. Sage does not have any direct relation with clients in terms of Accpac Implementation and Support. Here comes the channel partners to implement and support there customers. Although any Sage Accpac customer can directly write to Sage if they have some real issue and Sage also consider it for new development in next release if they found it necessary and important. As far as day to day support is concern there are three level of support.

1. End user’s first level of support is the IT team and Accpac specialist in their company itself.

2. Second level of support brings the sage partners in picture. These Sage certified consultants and specialists resolves almost all the issues and problems faced by the end users.

3. Third level of support is provided by Sage itself. For some major issues or data corruption sage comes in to picture and any kind of problem will be resolved by them.

For resolving issues it is important to analyze and know what the issue is. For the same reason Sage Accpac provide couple of tools i.e RVSPS and DBSPY. RVSPY is useful to analyze if the issue is from any application side whereas DBSPY is useful to get the detail regarding issues that cause by database interaction. One can get more detail on RVSPY and DBSPY on the following link: More about RVSPY & DBSPY

Above I explained the standard process to go for if any Accpac user or consultant face any problem but in real time scenario this might take time and one is in need to resolve the issue quickly. At this time I think there are some very good online Accpac communities comes in to picture. One can get quick response from these communities and most of the time it is very useful and reliable because the reply comes from the consultants and solution providers that are in the business from years. Some of the top Accpac communities are as follows:

1. Sage Accpac Community

2. Plus Community

3. Tek Tips Community

4. Tool box Community

Phone support, of course, is always an option. Sage Accpac support can be reached at-1-800-253-1372 and-1-604-207-3601 if you live outside of North America. They do charge a per-incident fee, although the fee is waived if you’re a Priority Software Support subscriber. After all there is no such problem that can’t be resolved if you are working with experts.


Leave a comment

Posted by on April 10, 2011 in Accpac Support


Tags: , , , ,

#4 Sage Accpac and VBA Macros

Date: 03/04/2011

Although the accounting standards and financial practices are same all around the world but its nature of business and regional obligation that make people follow their own way to reach the same destination. In the era of globalization its became important for a company to adopt for a ERP for it wide range of operations. This will help them to better control over the business and further growth, But the rigidity of each industry and there functional flow makes it almost impossible for the ERP to be 100% standard and Implemented with 0% customization.

Every globally recognized ERP software, has its own mechanism for making the Standard ERP localize and to cater all individual business need. Sage Accpac also provide the couple of mechanism to bridge the gap between Standard Accpac application and specific client requirement. One among them is writing a macro to fulfill the specific client requirement that is not possible to do with standard application. So let’s discuss about Macro and how its working inside Accpac as a part of standard ERP.

In the words of WIKIPEDIA Macro is “to the programmer a sequence of computing instructions as a single program statement, making the programming task less tedious and less error-prone”. In context of Accpac Macro is set of instructions written in VB language. As VBA (Macro) file is platform dependent it runs from inside Accpac and will give look and feel as a part of the standard application.

Writing a new macro is as simple as writing a new VB application. Macro is precompiled and we just need to create a short cut on Accpac desktop to run it. Writing a macro has its pro and cons over writing another application.

Advantage of writing a Macro in Sage Accpac ERP:

  1. As a Macro precompile and run inside Accpac it works as per the Accpac session. The macro will automatically pick the session of the company from which it is executing. Hence we do not need to worry about handling the session.
  2. As it runs on the Accpac platform the code length will also be reduced.
  3. We can use standard Accpac controls and there features. It will allows us to do the changes in any Accpac screen or any Accpac standard functionality, although least recommendable (See point #2 and #3 of disadvantage for more details).

Disadvantage of writing a Macro in Sage Accpac ERP:

  1. Accpac Macro cannot execute if session is not open on the PC where we need to run the macro. We need Accpac session open on the same PC to make macro run. Therefore even if the user wants only to run a macro we need to install Accpac workstation or Accpac application on the client’s PC.
  2. If we are using the macro to fulfill the client’s requirement then we need to pay extra care at the time of Accpac upgrade. At the time of upgrade we need to check each macro with the new version of Accpac and might need changes accordingly.
  3. If we are using some Accpac controls in our macro for changing its functionality it will not work once we upgrade Accpac to the new version. In that case we need to link the macro to the new control, by refreshing references.

Further, one may face problem after upgrade and macro stops working with error “Object not found”. In that case we can check by deleting all .box and .exd files, mainly in the folder “C:/Document and Setting/Computer name/ApplicationData/Microsoft/forms”.

Once after considering pro and cons of Accpac macro we have to decide to write a macro or a VB executable to fulfill client requirements. It is always recommendable to reduce the customizations of the standard product as much as possible.



Posted by on April 3, 2011 in Accpac Macro


Tags: , , , ,

%d bloggers like this: