Changes made in the Obsydian V2.51 Class Libraries.

Note: Changes that may make an existing application behave or look different are indicated by the symbol.


Enhancements to OBASE:

Message substitution.

The validation meta functions in OBASE have been enhanced to check for the ‘Sends message’ set of verbs introduced into the product in V2.5

To take advantage of this new feature you need to add a ‘XXX sends MSG’ triple to appropriate objects – fields, entity-to-entity relations & views – using the following pre-defined names on the ‘when’ continuation triple:
Validation failed for messages to be sent when the field or relation failed validation
Value required for messages to be sent when mandatory fields do not have a value
Invalid value for messages to be sent when a status field has a value not defined in the model

The target message can be any message, scoped or unscoped, local or library, but cannot have any substitution parameters.

If the above triples and values are not found, the current message from the class library is sent.

Previous image check on update.

The Change instance function has been enhanced to allow you to specify that it should not check if the row being changed has already been changed by another user since they read the row.
This is achieved by checking to see if any fields other than the keys are present in the ‘Previous values’ variable which is input to the ‘Change instance’ function. If any other fields are found, the function behaves as it did in previous releases – it does check for changes. This is the default behavior if the you do nothing and so any current applications you have developed should not change.
To activate the new feature, all you need to do is add triples to the function so that the ‘Previous values’ variable only contains keys. The function detects this and bypasses the previous image check. No action diagram coding is required.

The keys are still required to be present in the ‘Previous values’ variable since they are used to check that the row being updated exists on the database.


General enhancements & fixes.

OBASE:

Two Parent Child.

The Two parent child.By second parent keys view has been made no-unique.

Panel controls.

Any fields or their elements set to the 'Protected' control state now have their 'Disabled' property set to 'Yes'. This means they will not be part of the tab sequence as a user navigates around a panel. If you want a field or element to be included in the tab sequence, change the 'Disabled' property to 'No' for the 'Protected' state on the panel.

Data transfer entity.

The Data transfer entity.Transfer function has a new '0 Additional subroutines' edit point.

Get sequential function.

The 'Position GE' instruction in the Business entity.List attributes.Get sequential function is now only executed when the Use position instruction field is set to 'Yes'. This is the default setting and so the function will continue to behave as before if no changes are made. This feature allows you to specify your own code to do the initial file positioning, either with standard action diagram instruction, or using an SQL statement with the Exec SQL instruction.

Print key break report.

The processing for printing Total 3 was missing the call to the overflow subroutine. This has been added.

Referenced entity.Select instance user interface.List panel.

This panel has been brought into line with the other class library panels by having its background color removed. This has been done in the BASE level. It will now pick up the color defined in the Windows color scheme.

All top level user interface functions.

A new edit point - '0 Pre event processing' - has been added to all the top level user interface functions, at the beginning of the Event handler, before any events are processed.

OBWIN:

Event status.

The Event status.Not found value has been corrected to match the actual value returned when the Trigger event API fails.

OBSEC:

All By second parent key views.

All the scoped By second parent key views have had implementation names added.

All Process second parent deletion functions.

All the scoped Process second parent deletion functions have had implementation names added.

OBCAL:

Descending key view.

This view has been given a DDS language triple for the 5250 variant.