Complex application software systems, like ERP systems, are subject to continuous change. Both the discovery of programming errors and new technical as well as legal requirements call for modifications of the ERP system software. In addition, various parts of the standard software have to be customized for supporting country-, branch- and company-specific business processes. In order to be able to perform all these changes in a systematic way, different versions of software components (notably tables and sessions) can be maintained and configured into customized versions of a BaanERP system. Therefore, all components exist on a logical naming level and on the level of special instances or versions, like shown in Figure 1.
Figure 1: Version management in BaanERP:
Package Versions (PVRCs)
Version management in BaanERP is hierarchical: a new version of a package can be derived from an already existing one. The new version has only to contain modified and newly created components. All other components are automatically executed from the predecessor version. The actual version of an application program (i.e. a session) is determined by the package combination selected by the login. For instance, the version of the session Maintain Item Data (tiitm0101m000) to be run is determined by the version of the ti-package contained in the package combination selected by the login. A package version is also called Package VRC, or 'PVRC' in short, where 'VRC' stands for Version-Release-Customization. This naming reflects the different levels of versioning in BaanERP. Through the continuous improvement and extension of the Baan ERP software, new upgrade versions are provided by Baan at regular time intervals. They are named using the two-level Version-Release schema. For instance, from the version name B40S and the release name c3 the Package VRC tiB40Sc3 is formed for the ti package within release c3 of the standard version B40S of Baan IV.
The two-level versioning of the BaanERP standard software is supplemented by a third version naming level for enterprise-specific modifications (or customization) of a standard BaanERP version. For instance, the particular version of the ti-package derived from the Baan IV standard version c3 and customized for Wagner World-Wide Enterprises could be named tiB40Cc3wag. Baan strongly recommends that all customizations comply with its 'coding standards', a set of naming conventions. One such convention requires that the version code of an enterprise-specific customization of BaanERP be B40C instead of B40S, thus indicating the customization by the letter 'C'. The version indicators to be used are:
||update version (service pack)
Baan has to provide many country-specific additions/modifications of its standard system in order sell BaanERP to countries all over the world (see Table 1).
A specific package version (called "current PVRC") is assigned to each Baan developer as her current programming environment. It can be changed on the fly if the developer has the general developer authorization.
Derivation of Package Versions
A new package version (PVRC) can be derived from an already existing one. This mechanism allows to put only those components that are new or that deviate from their predecessor versions in the new PVRC. All other unchanged components do not have to be duplicated in the new PVRC, but are automatically executed from the first predecessor PVRC in the derivation chain where they are found. A PVRC derivation chain represents a kind of specialization hierarchy where the most specific (or most recent) versions of software components are found at the end of the chain.
Table 1: Examples of country-specific customization.
||central invoicing, Argentinean VAT
||central invoicing, fiscal receipts, receipt schedule
||Libro Giornale, withholding tax, LIFO by Year, BAM, VAT book
||statement of accounts, customer approvals flow
||flow for interest invoice
||excise invoice, MODVAT, personal ledger account, tax deduction at source
||sales tax, prescribed payments system
A package combination is a specific configuration of various PVRCs, forming a comprehensive application software package. Each package combination is associated with a specific database schema, called data dictionary, that defines the structure of all involved tables.
Each BaanERP user is assigned a package combination that determines the application programs available to her. Since these programs work only for a particular database schema, the user can only access tables from clients that are associated with the same package combination.
Figure 2: How different versions are derived: