May 19, 2008 What you want... When you want it Volume 08.3
May 19, 2008: No, we're not starting a business as a pawnbroker, but our latest release can help you make money with objects. Version 8.01 of PxPlus incorporates a new Object Class Cache Manager (OCCM) that can dramatically improve the performance of object loading and creation.


All objects in the system are defined by their associated class definition. Typically, these are loaded dynamically from a class definition file (a .PVC file). This file contains a declaration of all the object properties, methods, and inheritance options. In addition, the class definition files usually include the code associated with the object methods.

ProvideX normally does the loading of the class definition automatically whenever the first instance of an object is created. During the creation process, if an object's class definition is not known, its class definition file is read and the class structure is created in memory. When this class definition is no longer needed (i.e. when there are no longer any instances of that class in the system), it is removed from the system.

The Problem:

While all of this sounds great and works well, problems often develop when objects are frequently created and destroyed. If an application uses objects in any significant way, the overhead of class structure creation can have a significant impact on system performance.

Take for instance an application where data items are managed by objects. When reading and accessing the data elements, it is quite common to have objects defined for each record accessed. As an application processes the data, each new record may cause the deletion of all instances of a sub-ordinate class requiring fresh reloads of the class structure with each record processed. For example, if invoice detail items are accessed as a collection of objects, changing invoices can cause all instances of the detail object to be deleted resulting in the need to re-create the object class on the next record.

The Solution:

The PxPlus Object Class Cache Manager (OCCM) solves this problem by maintaining copies of previously used class structures in memory. This means that when a new instance of an object is created, it class definition will not have to be read from PVC file. When this feature is enabled, class definition structures and associated program logic are maintained within the system instead of being discarded.

A new system parameter '+J' has been added to the system that controls the number of object classes that will be cached. By default, this is set to ten (10) resulting in the system preserving the last 10 Class definitions no longer in use by the system. Setting this to zero will disable the Class cache mechanism.

What it means to you:

In short, PERFORMANCE. By eliminating the reloading and recreation of class structure information, you will see better performance in your object oriented applications. Actual performance improvement will depend on the design of your application and the number of objects you utilize.

If you are using objects or are considering using objects then the Object Class Cache Manager is something you need to consider.

Object Cache --- A smart reason to switch to PxPlus

OOPS - We did it again

That’s right! We've made a bigger and better OOPS with release v8.01 of PxPlus. Never content to sit on our laurels, we have researched numerous other object oriented programming languages to see what else we could add to PxPlus. As a result, we have come up with a great new capability – dynamic properties.

Not only can objects now dynamically add new properties on the fly internally within the object but this is also allowed from external application code. Up until now, PxPlus objects had static property lists--- that is the list of properties in the object were obtained from the object class definition and could not be altered. Unfortunately, in the real world things change constantly, so why shouldn't our objects? Well, now they can.

Internal Dynamic Property Creation:

To create new properties within an object, PxPlus has added a new directive "ADD PROPERTY". This new directive allows an instance of object to add to its own property list. The directive functions very much like the STATIC directive; however, instead of the properties only being accessible from within the object, the properties are accessible externally.

This new capability allows you to create objects that can take their property list from dynamic information, such as, the file dictionary. For example, you could create a generic file IO object that opens a data file using its internal data dictionary then dynamically adds the files data fields as properties; as in:

   Enter File_name$
   Open object (hfn,IOL=*) File_name$
   Static _fileno
   _Fileno = lfo
   Add Property IOL=IOL(_Fileno)

External Dynamic Property Creation:

Taking this one-step farther is PxPlus new ACCEPT PROPERTIES clause on the DEF CLASS directive. When this clause is present, external applications can dynamically create properties within an object simply by assigning them a value. This allows objects to be created to serve as simple storehouses of application data, simplifying the passing and access to an ever-changing list of values.

For example, an object could be created to hold values to pass between programs. By using dynamic properties, the application simply assigns whatever properties it wants to the object then passes the object handle, as in:

0020 END DEF


->a'company$="Joes Crabs"
->a'City$="Any town"
->print a'city$
Any town

To make it easier to determine if a property exists within an object, we have enhanced the MAX and MIN function to allow not only numeric values but also string values. So to test if a property exists, it's simply a matter of issuing MAX(property, ERR=xxxx). If the property does not exist, the error branch will be taken.

These new enhancements increase the flexibility and functionality of OOPS in PxPlus dramatically and once you start using them you'll wonder how you ever lived without them or all the other great features exclusive to PxPlus.

As always, PxPlus has what you want and what you need.

VERSION 8 has arrived

To all our loyal customers, after many delays we are happy to report that Version 8 of PxPlus is now available. Rest assured that this is not a change in our philosophy of providing you with timely version updates. We apologize for these delays but during our QA process, we encountered a critical problem with the initial release of the product. Once we identified and corrected the issue, we worked with Sage to make sure that the fixes were compatible with ProvideX and available to everyone in the community. Unfortunately, this process took longer than we had expected. However, the good news to you and to the ProvideX community as a whole, is that not only are these corrections available in PxPlus but they will also be available in the next interim release of Sage’s ProvideX.

Furthermore, our delay is your gain. In the interim, to compensate our customers we have continued making interim releases to version 7, which would have normally required a v8 upgrade key. Our way of saying thank you for your patience and continued support.

Please Note:
Version 8 is a major release and as such is subject to an upgrade fee.
Customers on our maintenance plan, CCP, are automatically eligible for free updates.
New licenses purchased on or after August 1, 2007, are also entitled to a free upgrade to version 8.
The V8 executable may be used with level 6 or 7 activation keys, but without access to any new features.
For more information on how you can get the latest version, please contact our sales department.

Included in v8.01 of PxPlus

  • Object Class Cache Manager for improved object performance
  • New dynamic property creation
  • Window Hide/show animation
  • Version 8 Sage ProvideX features and functionality

For more great reasons to upgrade to
V8.01 PxPlus

Click here

PVX Plus Technologies
Leaders in innovative solutions for the Business Basic community

PVX Plus Technologies, Ltd.
4261 Hwy #7 East, Unit A14
Suite 364
Unionville, Ontario L3R 9W6

    2008 PVX Plus Technologies Ltd. All rights reserved.
  ProvideX is a registered trademark of Sage Software Canada Ltd.
The Plus is published by PVX Plus Technologies on a regular basis.
To change your subscription to this newsletter visit us at