In a wide and complex software as AIS is, it happens that changes are required to an already released product – for example, adding some special access mode to a driver, or possibly introducing a means of changing some behavior to better handle a certain environment.

In the old days, we made the required software modification and then used environment variables in order to let AIS know that the user wants to enable that modification (obviously other users in production generally prefer not to have such changes made in the underlying product unless it is a part of a new version they can test). This practice proved hard to use both in the setup and in maintaining and management these changes. The changes were done in platform specific scripts outside of the control of AIS and its design utilities.

Starting with AIS version 4.1, we’ve added a standard mechanism for dynamically providing option setting via the environment definition. To enable such a feature, Attunity provides a feature name and valid values and the user can use either Studio or NAV_UTIL EDIT to enable that feature. For example, the temp feature zeroBasedDateAsEmptyString can be set by modifying the environment definition to something like:

PHP Code:
<?xml version='1.0' encoding='UTF-8'?>
<navobj version='5.1.0.99'>
    <environment name='NAV'>
        ...
        <tempFeatures>
            <tempFeature id='zeroBasedDateAsEmptyString' value='true'/>
        </tempFeatures>
    </environment>
</navobj>
This setting affects the display of based-dates with a value of zero. It was added to deal with some customer scenario.

Attunity manages a document of all active temp features. When working on a new release, all temp features undergo an evaluation. Features that are deemed useful for a wide audience are replaced with standard environment or configuration settings (with a note in the release notes if they were published). Features that are no longer relevant are removed and other features are generally kept as is.

It is important to note that this Temp Feature mechanism is very efficient so temp features can be added freely without impacting performance. There is some setup cost associated with features that are defined in the environment but that is only for startup and is minimal.

Attunity generally publishes information on Temp Features only as part of support. The goal is to avoid cases where later change (as described above) break behavior for customers.