Contents
Obsydian 2.50 class library changes

Welcome to Obsydian's class libraries. This document describes the updates and changes to Obsydian's class libraries for each of the recent releases.

For more information, visit Dr. O's Surgery in the Lava Lounge.

Upgrading to the new class libraries

Obsydian 2.50 updates

Overall changes
Changes to specific library objects
Further information and late breaking news

Obsydian 2.20 updates

Overall changes
Important information
Changes to specific library objects

Obsydian 2.14 updates

Overall changes
Important information
Changes to specific library objects

Obsydian 2.10 updates

Overall changes
Important information
Changes to the Class Libraries Guide
Changes to specific library objects

Obsydian 2.01 updates

Overall changes
Compatibility
Changes to specific library objects
Class libraries and national languages
Date processing


Upgrading to the new class libraries

In your group model:

1.	Log in to the group model as Admin.

2.	With the focus on host choose Libraries from the Configuration menu.

3.	Remove each of the Obsydian class libraries from your group model.

4.	Add each of the Obsydian class libraries back into your group model, providing the pathname of the class library directory in your new installation:

5.	Save and close your group model.

In your local model:

1.	Open your local model with the new version of Obsydian.

2.	Login to your updated group model and extract from each of the new class libraries.

3.	With all editor windows closed, choose Configuration from the File menu.

4.	For each class library, select the latest version and level, to take advantage of all updates and new features, then click OK.

5.	Save and close your local model.


Obsydian 2.01 updates

This document contains information that supplements the printed documentation and the online help.

Version 2.0.1 February 23, 1996

Overall changes

•	Class libraries have now utilized versions and levels for changes and additions where appropriate; by specifying which version and level you want to use, you can use previous versions of the class libraries or upgrade to the latest release.  Select version "Obsydian 2.01" and level "Obsydian 2.01 changes" to use the 2.0.1 class libraries.

•	There is now a separate <all> sub-model for each class library, found in the library's group model directory.  See WHATSNEW.HLP in the Obsydian directory for more information. (6436)

•	A new user "Guest" has been added to all class libraries. No password is required.  This ID may be used to create and change local models, but will not be able to update the group model itself.

Compatibility

•	You cannot use the 2.0.1 class libraries with Obsydian 2.0.0, though you can use the 2.0.0 class libraries with Obsydian 2.0.1.

•	If you want to use Obsydian 2.0.1 and retain the functionality of the 2.0.0 class libraries, a better choice is to install the 2.0.1 class libraries and select the Base version and level.

Changes to specific library objects

OBASE/Default Objects.Dialog

•	Closing a Change User Interface panel by double-clicking on the window's system menu or pressing Escape now works correctly. (6004/ITS 90453)

•	Visible property has been set to No for all appropriate elements in the Hidden control state in Control Defaults. (6176)

OBASE/All Messages
OBASE/All Source Code
OBDATE/All Source Code
OBJECTS/All Source Code
OBWIN/All Source Code
OBODBC/All Source Code

•	Substitution parameters now appear in the form &(1:) rather than %s. This has been changed in all national language variants. (5380/ITS 89341)

OBASE/Business Entity.Standard Functions.List Instances User Interface

•	Filter processing has been fixed so that the number of instances returned matches the number of instances requested by the Instances To Filter field. (5923/ITS 90265)

•	The grid is now only refreshed if instances have been added on grid load.

•	Scrolling forward in a grid now paints grid lines only once. (6352)

•	Meta code now generates correctly. (6345)

OBASE/Business Entity.Standard Functions.List Instances User Interface.List Panel

•	The "1=Select" literal has been hidden on the 5250 version of the list panel. This change affects the panels listed below. (3104)

−	Grid Maintained Entity.Grid Maintenance Suite.Edit Grid User Interface.List Panel

−	User Maintained Entity.Maintenance Suite.Maintenance UI.List Panel

−	Referenced Entity.Select Instance User Interface.List Panel

−	Entity With Text.Additional Text.Edit Additional Text.List Panel

−	Entity With Alias.Maintenance Suite.Maintenance UI.List Panel

−	Simple Transaction.Transaction Processing.Display Transaction Headers.List Panel

−	Simple Transaction.Detail.Edit Details User Interface.List Panel

−	Bill Of Materials.Assembly.Maintenance Suite.Maintenance UI.List Panel

−	Two Parent Child.Select First Parent.List Panel

•	Date and time positions have been standardized and fixed for the 5250 screen layout. This also affects Business Entity.Standard Functions.Create User Interface.Create Panel and OBASE/Default Objects.MDI Child. (6468)

OBASE/Report Date
OBASE/Report Time

•	These fields are now of type ISO Date and ISO Time. Set Current Date and Time has been changed to accommodate ISO dates.  This affects the date and time display on 5250 screens in the following objects:

−	OBASE/Default Objects.Dialog

−	OBASE/Default Objects.Common Menu

−	OBASE/Default Objects.MDI Template.MDI Frame Processing.MDI Frame

−	OBASE/Business Entity.Standard Functions.Print Tabular Report

−	OBASE/Audited Entity.Set Audit Fields

−	OBASE/Two Parent Child.Edit Child User Interface

OBASE/Business Entity.Standard Functions.Create User Interface
OBASE/Business Entity.Standard Functions.Change User Interface

•	It is now possible to override default prompt processing for referenced entities.  Calls to prompt processing are dependent on the value of the newly-added OBASE/Prompt field.  To turn off prompt processing, set the value of Prompt to *No in the Prompt Request edit point, and specify the processing you would like to use. (986)

•	Testing for Field Modified now occurs only once. Two new fields, OBASE/Events and OBWIN/Event State, and one source code object, OBWIN/Set Event State, have been added to make this possible. This only affects Windows client functions with panels. (5953/ITS 90229)

OBASE/Business Entity.Standard Functions.Create User Interface.Create Panel
OBASE/Business Entity.Standard Functions.Change User Interface.Change Panel

•	The label of the OK button has been corrected in the Validate state. (6361)

OBASE/Business Entity.Standard Functions.Print Tabular Report

•	Overflow processing has been added for the End Of Report region. (6237/ITS 91165)

•	Date and time now print properly on 5250-generated reports. (6116/ITS 90823)

•	The Selections region has been set to external values. (6349)

•	The Set To External call after getting the instance has been corrected. (6350)

OBASE/Business Entity.Real Attributes.Process Some Instances

•	Function now checks for End Of View status and no longer loops endlessly when a user wants to process all records. (6155)

OBASE/Grid Maintained Entity.Grid Maintenance Suite.Edit Grid User Interface

•	Grid is now correctly set to External values after validating changes. (6347)

OBASE/Grid Maintained Entity.Grid Maintenance Suite.Edit Grid User Interface
OBASE/Grid Maintained Entity.Grid Maintenance Suite.Create User Interface

•	Database failures as a result of a system error are now correctly reported. Errors of this type are most likely to occur when using an ODBC database with generated constraints on field values. (4365, 4366)

OBASE/Grid Maintained Entity.Grid Maintenance Suite.Edit Grid User Interface.List Panel

•	Menu options are now in the order File, Select, Process, View, Window, Help, for consistency with other panels. (6126)

OBASE/User Maintained Entity.Maintenance Suite.Maintenance UI

•	When Delete Dialog is set to Yes, code for confirming delete via message is no longer generated. (6183/ITS 91039)

User Maintained Entity.Maintenance Suite.Print Selection User Interface

•	"Instances have been printed" message has been removed, as the confirmation is provided by the report viewer. (5328)

OBASE/User Maintained Entity.Maintenance Suite.Print Selection User Interface.Print Entity Listing.Report Layout

•	A new edit point, Additional Subroutines, has been added.

•	A minor change was made in the Japanese national language.

OBASE/Entity With Alias.Alias.Real Attributes.Delete Dependent Aliases

•	*Returning Status is now set correctly after deleting a record that has several aliases. The message "unable to delete record" no longer appears. (5996)

OBASE/Simple Transaction.Detail.Edit Details User Interface

•	The view has been changed for validation. Owner keys are now Protected, not Hidden. (5823)

OBASE/Simple Transaction.Detail.Edit Details User Interface.List Panel

•	The name of the Edit menu has been changed to Process for consistency with other panels. (6126)

•	The view has been changed in the Editing region to contain virtuals.

OBASE/Page Number

•	An edited by triple has been added for this field.  Also an Additional Subroutines edit point has been added in the print function. (6294/ITS 91288)

OBASE/Confirm Deletions

•	Parameters in message have been fixed for French translation. (6223/ITS 82603)

OBASE/Relation & View Validation

•	Meta code has been added to allow for shared optional keys .  Two new fields, +Attribute Relation and +Current Relation, have been added, both as meta variables, to make this possible. (6060)

OBASE/Field Validation

•	The meta code has been rearranged for more efficient generation.

•	Field defaulting has been removed.  As a result, field defaulting has been added to the following objects:

−	OBASE/Business Entity.Standard Functions.Create User Interface

−	OBASE/Business Entity.Real Attributes.Change Instance

−	OBASE/Entity With Tab Dialog.Tab Dialog Edit

OBDATE/Time Field Hierarchy

•	Diagram error on load has been fixed. (6497)

OBWIN/Panel Size

•	Show No Active value literal fixed.

OBWIN/Event State

•	Field length corrected. (6440)

OBWIN/Make Window Not On Top
OBWIN/Make Window Stay On Top

•	Erroneous & has been removed. (6395)

OBWIN/Get INI Entry
OBWIN/Set INI Entry

•	The Windows INI API calls have been changed to deal with numeric and character fields separately.  As a result, the name changes and additions listed below have been made.  (6235)

−	OBWIN/Get INI Entry has been renamed to Get Character INI Entry

−	OBWIN/Set INI Entry has been renamed to  Set Character INI Entry

−	OBWIN/INI Default Value has been renamed to  INI Default Character Value

−	OBWIN/INI Value has been renamed to  INI Character Value

−	OBWIN/Get Numeric INI Entry has been added

−	OBWIN/Set Numeric INI Entry has been added

−	OBWIN/INI Numeric Value has been added

−	OBWIN/INI Default Numeric Value has been added

Class libraries and national languages

•	Obsydian class libraries include National Language configurations, which contain translations for objects such as panels, reports, labels, and messages.  For an application built in Obsydian, these objects represent the text that the end-user sees at runtime. In addition to these translated objects, a few of the messages appearing at runtime for a Windows application are supplied by Obsydian, rather than from the class libraries.  These messages have also been translated and are supplied in the Obsydian national language DLLs. See Chapter 9 in the new Installation Guide for more information on running multi-language applications.

Date processing

Many Obsydian functions require special Obsydian class library date and time functions.  The compiler resolves references to these date/time functions at link time, during the compilation process.  If these date/time functions have not been generated and compiled, then the functions which access them will not compile properly.

Following the procedure outlined below will enable Obsydian to resolve date/time function references correctly.

1.	Generate and build the missing date/time functions into your local model.  Start with the list of functions below. This places them in a .LIB file called <model name>.lib which you can use to compile your functions.

−	OBASE/Set Current Date And Time    (ob00001f.cpp)

−	OBDATE/Convert ISO Date To Date 8    (odvf.cpp)

−	OBDATE/Convert ISO Date To Str date    (odwf.cpp)

−	OBDATE/Convert Str Date To Date 8    (odzf.cpp)

−	OBDATE/Convert ISO time to time 6    (od19f.cpp)

−	OBDATE/Check If Leap Year    (od4f.cpp)

−	OBDATE/Validate ISO Date    (od1hf.cpp)

−	OBDATE/Validate Structure Date    (od1jf.cpp)

2.	If a function does not compile after including these functions (if the <function name>.lst file says that it cannot resolve the external function 'ob000...' or 'od...' ), then you can use the Object Browser to identify the missing function(s), as the following steps describe.

3.	In the Object Browser, show all library objects, and view objects by Name.  In the input box, type name of the function that could not be resolved, between asterisks, such as *od1hf*, and press Enter.  Drag this function to the Generate and Build window and generate and compile it into the <model name>.LIB file.  Repeat this for all of the date/time functions needed.

4.	Rebuild the original function. If it still does not build properly, go back and do the previous step again.  Once you have identified all of the necessary functions, you have a library you can use again.  Remember the name of the new library and where it resides, C:\<model name>\<gen directory>.

5.	Now open the file called OBMSVC.MAK in the OBSYDIAN\LIB directory.  Modify the User Libraries section to include the new date and time library:

# -------------------------------------------------------------------------
# Follow the steps below to add in your own code libraries (Plug Ins):
# -------------------------------------------------------------------------

# 2. Set the USER_LIBDIRS variable to the location(s) of your libraries
USER_LIBDIRS = c:\<model name>\<gen directory>

# 3. Set the USER_LIBS variable to the name(s) of your libraries
USER_LIBS = <model name>.lib

6.	Save the OBMSVC.MAK file.  When you build any function (in any local model on your C drive) that needs a date or time function, the date/time functions will be linked in automatically.


Obsydian 2.10 updates

This document contains information that supplements the printed documentation and the online help.

Version 2.1.0   May 8, 1996

Overall changes

•	Two new class libraries have been added:

The Calendar Processing Framework class library (OBCAL) contains calendar processing functions and a small stand-alone application for you to enter vacation and holiday information.

The AS/400 APIs class library (OBAS400) contains API calls to standard AS/400 server functions.

One function (Get Remote Job Identifier), two source code objects (RPG Clear Message Log and RPG Execute A Command), and one message (CMD Claim Resources), have been moved from the System Objects class library (OBJECTS) to OBAS400.

As a result of this move, the original objects are still in OBJECTS, with ??? in their names. You can scan for ??? and replace the old objects with the new ones in OBAS400. The OBJECTS versions will be deleted in a future release.

•	The Windows APIs class library (OBWIN) now contains API calls to VBX functions.

•	Traditional Chinese is now a National Language choice in the Configurations of OBASE, OBATCH, OBSEC, and OBCAL.

•	Class libraries now utilize versions and levels for changes and additions where appropriate; by specifying which version and level you want to use, you can use previous versions of the class libraries or upgrade to the latest release.  Select version "Obsydian 2.10" and level "Obsydian 2.10 changes" to use the 2.10 class libraries.

Important information

•	Obsolete functions have been removed from the Abstract Business Objects class library (OBASE):

−	OBASE/Referenced Entity.Select Instance

−	OBASE/Simple Transaction.Details.Edit Transaction Details.

This change also affects OBASE/Dual Detail Transaction and OBASE/Three Level Transaction.

Any of your entities that inherited from Referenced Entity, Simple Transaction, Dual Detail Transaction, or Three Level Transaction may still have versions of the deleted functions. You can now delete the obsolete functions from those entities.

•	OBASE/Entity With Tab Dialog has a new function, Tab Dialog Display, from which Tab Dialog Edit now inherits.  The previous version of Tab Dialog Edit has been renamed to Old Tab Dialog Edit.  This function now contains only edit points.  You need to move any action diagram code from the modified Tab Dialog Edit to the new one.  (6749)

•	Two source code objects in the Windows API's class library (OBWIN), Add List Item and Clear List Control, have been temporarily disabled and are not currently supported in run-time.  They will be supported in the next release.

•	If you use the OBASE library, you need to extract from both the OBAS400 library and the OBWIN library, regardless of which variant you use for your model.  The Class Libraries Guide shows which libraries are needed for each class library.

Changes to the Class Libraries Guide

•	New chapters have been added for the new class libraries.

•	The Batch Processing Framework class library (OBATCH) and Security Framework class library (OBSEC) chapters now include instructions for running the small stand-alone applications supplied with those libraries.

Changes to specific library objects

OBASE/Default Objects.MDI Template.Information
OBASE/Default Objects.MDI Template.Information.Information Panel
OBASE/Default Objects.MDI Template.MDI Frame Processing
OBASE/Business Entity.Standard Functions.Change User Interface
OBASE/Business Entity.Standard Functions.Create User Interface
OBASE/Business Entity.Standard Functions.Display User Interface
OBASE/Business Entity.Standard Functions.Process User Interface
OBASE/Business Entity.Standard Functions.List Instances User Interface
OBASE/Entity With Tab Dialog.Tab Dialog Edit
OBASE/Two Parent Child.Edit Child User Interface

•	Windows-AS/400 and 5250 variants now point to OBAS400/Get Remote Job Identifier.  (6255)

OBASE/Default Objects.MDI Template.Information
OBASE/Default Objects.MDI Template.MDI Frame Processing
OBASE/Business Entity.Standard Functions.Create User Interface
OBASE/Business Entity.Standard Functions.List Instances User Interface
OBASE/Business Entity.Standard Functions.Process User Interface
OBASE/Two Parent Child.Edit Child User Interface

•	A Post Display edit point has been added.  (6338/ITS 91423)

OBASE/Default Objects.MDI Template.Information.Information Panel

•	The static type has been corrected for "Continue" on the About... panel.  (6271)

OBASE/Business Entity.Standard Functions.Change User Interface
OBASE/Business Entity.Standard Functions.Create User Interface

•	The panel now refreshes virtual attributes correctly when confirmation is required.  (6569)

•	A call to Set External Fields By Variable has been added after required confirmation.  (6875)

•	OK button is properly activated when field is filled in by prompting.  (6696)

•	Initialization edit points have been rearranged.  (6877)

•	The Validate button now appears correctly for confirmation of the change or create.  (6361)

OBASE/Business Entity.Standard Functions.Change User Interface
OBASE/Business Entity.Standard Functions.Create User Interface
OBASE/Business Entity.Standard Functions.Process User Interface
OBASE/Grid Maintained Entity.Grid Maintenance Suite.Edit Grid User Interface
OBASE/Simple Transaction.Detail.Edit Details User Interface
OBASE/Entity With Tab Dialog.Tab Dialog Edit
OBASE/Prompt Processing

•	Conditioning is now prompted by the Prompt field.  A new value, *Prompted, was added to OBJECTS/*Panel Status.  (7129/EPS 83785)

OBASE/Business Entity.Standard Functions.List Instances User Interface

•	The grid is no longer disabled in Inactive state.  (6146)

OBASE/Business Entity.Standard Functions.Print Tabular Report

•	An additional check for view I/O failure during grid load has been added.  (6775)

•	Action diagram code has been corrected.  (6306/ITS 91307)

•	Meta code has been added to calculate non-view fields on a report.  (7238)

OBASE/Business Entity.Real Attributes.Delete Valid Instance

•	The meta code that checks the TBL dependencies SYS triple has been corrected.  Two meta-variables, OBASE/+Table and OBASE/+Triple have been added.  (6605)

OBASE/Business Entity.Real Attributes.Change Instance

•	Record lock is now released on change failure.

OBASE/Business Entity.Real Attributes.Delete Instance

•	Record lock is now released on delete failure.

OBASE/Grid Maintained Entity.Grid Maintenance Suite.Edit Grid User Interface

•	The edit point Set Initial Grid Field States has been repositioned so that you can override control states of the grid fields.  (6317/ITS 82030)

•	Error checking logic has been fixed for multiple rows.  A new field, OBASE/Error On Grid, has been added.  (7082)

OBASE/Referenced Entity.Check And Return Virtuals

•	Function now returns virtuals correctly to a panel.  (6275/ITS 91182)

OBASE/Referenced Entity.Select Instance User Interface

•	Search position for prompting is now correctly initialized.  (6310/ITS 82019)

OBASE/Entity With Alias.Maintenance Suite.Maintenance UI

•	The Alias grid is now reloaded after deleting instances.  (5996)

OBASE/Two Parent Child.Edit Child User Interface

•	The function reference in the "Call to delete failed" message has been corrected.  (6793)

•	The parameter mapping on calls to Get Sequential has been changed to allow common owners.  (6810)

OBASE/Two Parent Child.Edit Child User Interface
OBASE/Two Parent Child.Edit Child User Interface.Edit Panel

•	The grid for the second parent entity now takes its values from the All Attributes view.  Two new variables, Second Parent Keys and Child Keys were added to make this possible.  (6731)

•	The OK button has been hidden on the edit child panel.  (6841)

OBASE/Simple Transaction.Detail.Edit Details User Interface

•	The first row of the grid is now selected correctly for processing.  (6059/ITS 90654)

•	Virtual fields on a child file now display correctly after an add.  (5823)

OBASE/Entity With Tab Dialog.Tab Dialog Edit

•	Validation now works correctly for mandatory fields.  (6517)

OBASE/Bill Of Materials.Parts List.Maintenance Suite.Maintenance User Interface

•	This function has been fixed so that it no longer causes a GPF at generation time.  (6850/ITS 92700)

OBASE/Relation & View Validation

•	The attribute contents check has been removed when checking mandatory file-to-file relations.  (6554)

•	Validation messages are now only sent if the calling function has a panel.  A new meta-variable, OBASE/+UI Function, has been added to make this possible.  (6720/ITS 84124)

OBASE/Set Calculated Fields

•	Function has been renamed to Set Derived By Attributes.  (6863)

OBASE/Character

•	New literal value, *Blank, has been added.  (7128/EPS 85229)

OBASE/Percentage
OBASE/Price
OBASE/Value

•	Edit code has been changed to J for edit masks for AS/400 5250 variants.  The edited by triple for OBASE/Numeric has been moved to the Base variant.  (6991)

OBASE/Object Name

•	Field length has been changed to 128.  (7039)

OBDATE/Time Hour.Valid Hour

•	Set condition has been changed to GE *zero from *one.

OBWIN/Get Drop Effect
OBWIN/Set Drop Effect
OBWIN/Set Drag Effect
OBWIN/Drop Effect

•	The value "Copy Or Move"  has been added to the Drop Effect field and API code that uses this field has been changed to process the new value.  (6601)

OBWIN/Function

•	The length of this field has been changed to 128.  (7259)

OBWIN/Get Character INI Entry
OBWIN/Set Character INI Entry
OBWIN/Get Numeric INI Entry
OBWIN/Set Numeric INI Entry

•	Windows API calls have been modified to change the in-memory copy of the .INI file.  The source code objects and fields listed below have been added to make this possible. (6094/ITS 90745)

−	OBWIN/Get INI System Boolean

−	OBWIN/Set INI System Boolean

−	OBWIN/Get INI System Value

−	OBWIN/Set INI System Value

−	OBWIN/INI System Boolean

−	OBWIN/INI System Default Boolean

−	OBWIN/INI System Value

−	OBWIN/INI System Default Value

−	OBWIN/INI System Index

−	OBWIN/INI System Key

−	OBWIN/INI System Section

OBWIN/Show Message Log

•	A new API call has been added to allow users to control display of the message log.

OBODBC/Information Type

•	Constant definitions for values SQL_OWNER_TERM and SQL_OUTER_JOINS have been corrected.  (6514/ITS 91830)

OBATCH/Submit Job Parameter Entry.Parameter Panel

•	The BMP references have been corrected so that they no longer contain absolute path names.  (6870; 6535/EPS 83620)

•	Slashes have been removed from left labels and the layout has been fixed.  (6787)

OBSEC/Grid Maintained And Audited.Edit Grid User Interface
OBSEC/Grid Maintained And Audited.Real Attributes.Change Instance

•	Edit Grid User Interface now returns the change date and time to the grid.  Change Instance outputs the change date and time.  (5958)


Obsydian 2.14 updates

This document contains information that supplements the printed documentation and the online help.

Version 2.14   August 26, 1996

Overall changes

•	New fields have been added to the Abstract Business Objects class library (OBASE) to support the fixed decimal data type; see Chapter 3 of the Class Libraries Guide for details.

•	The OBASE function Get Sequential, along with functions that call it such as List Instances User Interface, now use multiple occurrence variables for database retrieval.  The parameter interface for Get Sequential has changed as a result.  Also, Get Sequential now supports server-side filtering, in addition to the existing client-side filtering.  See the details in the first few points of the following section, "Changes to specific library objects."

•	New objects have been added to the Windows APIs class library (OBWIN), primarily in the area of VBX support; see Chapter 5 of the Class Libraries Guide for details.

•	New objects have been added to the AS/400 APIs class library (OBAS400), for retrieving information from the OS/400 operating system; see Chapter 6 of the Class Libraries Guide for details.

•	A new chapter has been added to the Class Libraries Guide, describing the UNIX APIs Technology class library (OBUNIX). This chapter describes API calls to standard UNIX functions.

HP-UX & Oracle7 variants have been added for all libraries.  Variant triples have also been added for the appropriate OBASE objects.

The HP-UX & Oracle7 is still a beta product; the OBUNIX class library has only been shipped to beta customers.  If you would like to participate in the HP-UX & Oracle7 beta program, contact your local Synon representative.

•	Class libraries utilize versions and levels for changes and additions where appropriate; by specifying which version and level you want to use, you can use previous versions of the class libraries or upgrade to the latest release.  Select version "Obsydian 2.14" and level "Obsydian 2.14 changes" in the Configuration dialog box from the File menu to use the 2.14 class libraries.

Important information

•	The following edit points have been used in the class libraries where they were previously empty:

−	Two Parent Child.Create Child User Interface:
Edit Point 0 Description
Edit Point 0 Post Update

−	Two Parent Child.Real Attributes.Create Instance:
Edit Point 0 Description
Edit Point 0 Instance Created

−	User Maintained Entity.Maintenance Suite.Print Entity Listing
Edit Point 0 Description

Remove any user code you have put in any of these edit points before extracting the new class libraries and replace it after the extract in the new equivalent edit points with the same name but with a number 1 in place of the 0.

•	OBASE/Business Entity.Standard Functions has a new function, Print Key Break Report, that scopes a report template for a level break report.  See Chapter 3 of the Class Libraries Guide for more information.

•	If you use the OBASE library, you need to extract from both the OBAS400 library and the OBWIN library, regardless of which variant you use for your model.  The Class Libraries Guide shows which libraries are needed for each class library.

•	The obsolete OBASE subject area Base Modified Functions has been removed.  A new subject area, Base Generation, which contains objects that need to be generated and built, has been added.

Changes to specific library objects

OBASE/Business Entity.List Attributes.Get Sequential
OBASE/Business Entity.Standard Functions.List Instances User Interface
OBASE/Business Entity.Standard Functions.Print Tabular Report
OBASE/Child.Edit Child User Interface

•	Block fetch support has been added, allowing multiple rows to be passed during a single communications request.  By default, 12 rows are returned for each call. To support this, four fields (Current Occurrence, Maximum Occurrence, Instances In Buffer, and +Number) and a variable (Control) have been added to OBASE.  (5534/ITS 89252)

If any of your functions call Get Sequential, you need to change the code to make the call only when all of the returned rows have been used.  You can use the Instances Fetched parameter to do this. You also need to use the Use instruction for the output variable to move it onto the next occurrence to use.  The code in the Call Fetch Function subroutine in List Instances User Interface shows one way to do this.  For more information about the Use statement, see the Obsydian online help.

If you have replaced any Get Sequential function in your application, you need to update the replacing function's parameter interface to match the modified parameter interface for Get Sequential.

To retain the pre-Obsydian 2.14 behavior (retrieving one record at a time), set the value of the ...occurs continuation triple on the Output variable to 1.  For more information see the entry for Get Sequential in Chapter 3 of the Class Libraries Guide.

OBASE/Business Entity.List Attributes.Get Sequential

•	Server-side filter processing has been added.  To use this, populate the local variables (Greater Than, Equal To, and so on) with the selection criteria you want.  Filtering occurs on the server first, then the selected records are returned to the client where additional filtering can occur.  If you have defined filter criteria in both places, beware of potential conflicts. For more information see the entry for Get Sequential in Chapter 3 of the Class Libraries Guide.  (951)

Warning:  Moving filtering from the client side (List Instances User Interface) to the server side (Get Sequential), gives you common filtering for all client functions that call the same Get Sequential function.  To avoid this, you will need to have separate Get Sequential functions for each instance of filtering you define.

•	Instances To Filter now works correctly.  (7743)

•	The functions Data Transfer Entity.Transfer Data and Two Parent Child.Edit Child User Interface do not set default values for the Selections variable when they call Get Sequential.  If you want to use server-based filter processing from either of these functions, you must set it up yourself.  For more information, see Chapter 3 of the Class Libraries Guide.  (8223, 8213)

OBASE/Default Objects.MDI Template.Common Menu
OBASE/Default Objects.Dialog

•	Region defaults have been adjusted so that Page=24, Height=20, and Border=Indented.

OBASE/Default Objects.MDI Template.MDI Frame Processing

•	The size of the Menu Selector field has been fixed, for French language only.

OBASE/Default Objects.MDI Template.Information

•	A meta field has been defined to control display of AS/400 information.

OBASE/Business Entity.Standard Functions.Change User Interface
OBASE/Business Entity.Standard Functions.Create User Interface
OBASE/Grid Maintained Entity.Grid Maintenance Suite.Edit Grid User Interface
OBASE/Simple Transaction.Detail.Edit Details User Interface
OBASE/Entity With Tab Dialog.Tab Dialog Edit
OBASE/Relation & View Validation

•	Focus processing in grids with errors has been fixed.  (8185)

OBASE/Business Entity.Standard Functions.Print Tabular Report

•	Secured function support has been added.

•	Unnecessary Print details have been removed from the overflow subroutine.

OBASE/Business Entity.Standard Functions.Print Tabular Report
OBASE/User Maintained Entity.Maintenance Suite.Print Entity Listing
OBASE/User Maintained Entity.Maintenance Suite.Print Selection User Interface.Process Panel

•	Print option support has been added.  This gives end-users the option to have a print preview before printing.  A new field, Print Option, has been added for this feature.  On the Process Panel, the Print button now says OK.

OBASE/Business Entity.Standard Functions.List Instances User Interface.Filter Selection

•	Field defaulting has been suppressed in filter functions, so that the Clear button clears fields with default values.  (8166/ITS 94175)

OBASE/Business Entity.List Attributes.Process Some Instances

•	A check for initial read and an edit point, Initial Instance Not Found, have been added.

OBASE/Business Entity.Real Attributes.Delete Valid Instance
OBASE/Child.Real Attributes.Process Parent Deletion

•	Record lock is now released if delete of children fails or is not permitted.

OBASE/Grid Maintained Entity.Grid Maintenance Suite.Edit Grid User Interface

•	Reset to Default state has been fixed after errors.  (8268)

OBASE/Two Parent Child.Create Child User Interface
OBASE/Two Parent Child.Real Attributes.Create Instance

•	Values are returned to the caller after creating a child instance.  (7749/ITS 93741)

OBASE/Two Parent Child.Edit Child User Interface

•	Two edit points, Additional Child Grid Events, and Additional Second Parent Grid Events, have been added.  (7287)

•	The grid is now correctly updated after a child instance is created.  (7749/ITS 93741)

OBASE/Simple Transaction.Detail.Edit Details User Interface

•	Calls have been added to internal and external conversion for the Editing region.

OBASE/Simple Transaction.Transaction Processing.Display Transaction Headers

•	The grid has been updated with Header changes returned from Details. In addition, in the function Simple Transaction.Detail.Edit Details User Interface, header changes are returned to the caller.  (7381 and 7792/ITS 93743)

OBASE/Simple Transaction.Transaction Processing.Delete Header User Interface

•	Panel size now uses inherited values.  (7762/ITS 93369)

OBASE/Entity With Text.Additional Text.Edit Additional Text

•	The refresh problem has been fixed.  (7380)

OBASE/Entity With Tab Dialog.Tab Dialog Edit

•	A Change SYS Yes triple has been added. In addition, output values are now set after a change is made.  (7683/ITS 93544)

•	The focus has been set to the appropriate region in both add and change modes.  (7747)

OBASE/Referenced Entity.Select Instance User Interface.List Panel

•	A "More" button has been added to enable loading of additional instances after filtering does not fill the grid.  Properties have been reset in the ODBC variant.  (7572)

OBASE/Default Objects.MDI Template.MDI Frame Processing
OBASE/Default Objects.MDI Template.Information
OBASE/Business Entity.Standard Functions.Create User Interface
OBASE/Business Entity.Standard Functions.Change User Interface
OBASE/Business Entity.Standard Functions.Display User Interface
OBASE/Business Entity.Standard Functions.List Instances User Interface
OBASE/Business Entity.Standard Functions.Process User Interface
OBASE/Grid Maintained Entity.Grid Maintenance Suite.Edit Grid User Interface
OBASE/User Maintained Entity.Maintenance Suite.Display User Interface
OBASE/User Maintained Entity.Maintenance Suite.Maintenance UI
OBASE/User Maintained Entity.Maintenance Suite.Print Selection User Interface
OBASE/Entity With Alias.Maintenance Suite.Maintenance UI
OBASE/Entity With Tab Dialog.Tab Dialog Display
OBASE/Entity With Tab Dialog.Tab Dialog Edit
OBASE/Two Parent Child.Edit Child User Interface
OBASE/Two Parent Child.Select First Parent
OBASE/Simple Transaction.Detail.Edit Details User Interface
OBASE/Simple Transaction.Transaction Processing.Display Transaction Headers
OBASE/Dual Detail Transaction.Transaction Processing.Display Transaction Headers
OBASE/Three Level Transaction.Detail.Edit Details User Interface
OBASE/Field Validation
OBASE/Relation & View Validation

•	A language preference has been added to the Name instruction.

OBASE/Business Entity.Standard Functions.Create User Interface
OBASE/Business Entity.Standard Functions.Change User Interface
OBASE/Business Entity.Standard Functions.Display User Interface
OBASE/Business Entity.Standard Functions.List Instances User Interface
OBASE/Business Entity.Standard Functions.List Instances User Interface.Filter Selection
OBASE/Business Entity.Standard Functions.Print Tabular Report
OBASE/Business Entity.Standard Functions.Process User Interface
OBASE/Business Entity.All Attributes.Get One Instance
OBASE/Business Entity.List Attributes.Get Sequential
OBASE/Business Entity.List Attributes.Process Some Instances
OBASE/Business Entity.Real Attributes.Change Instance
OBASE/Business Entity.Real Attributes.Create Instance
OBASE/Grid Maintained Entity.Grid Maintenance Suite.Edit Grid User Interface
OBASE/User Maintained Entity.Maintenance Suite.Maintenance UI
OBASE/Child.Real Attributes.Process Parent Deletion
OBASE/Two Parent Child.Edit Child User Interface
OBASE/Simple Transaction.Detail.Edit Details User Interface
OBASE/Audited Entity.Set Audit Fields
OBASE/Entity With Text.Additional Text.Edit Additional Text
OBASE/Entity With Tab Dialog.Tab Dialog Display
OBASE/Entity With Tab Dialog.Tab Dialog Edit
OBASE/Referenced Entity.Check And Return Virtuals
OBASE/Relation & View Validation
OBASE/Set External Fields By View

•	NULL/LOVAL support has been added.  In addition, the field OBASE/Double Byte Enabled now has the value *Low Value.  For more information about null/low value support, see the Obsydian online help.  (6534/EPS 84343)

OBASE/Instances To Filter

•	The initial Filter Limit value has been changed to 500.

OBASE/Unconfirmed Changes

•	The text of this message has been modified so that the question mark no longer appears on a line by itself.  (7152/ITS 92757)

OBASE/&Clear

•	The position of the & has been moved so that the 'L' is underlined rather than the 'C' to avoid conflicts with Cancel buttons on panels.  (7597)

OBDATE/Get Days In Week To Date
OBCAL/Calendar.Get Days In Week To Date

•	The calculation has been fixed.  (8197)

OBDATE/Get Date For Absolute Days

•	The calculation for the last day of leap years has been fixed.

OBDATE/ISO Date
OBDATE/ISO Time
OBDATE/ISO Timestamp

•	Large property contents have been deleted from the Null value.  (5634/EPS 84343)

OBDATE/Time Hour.Valid Hour

•	The condition for this state has been changed to LT 24.  (7637)

OBDATE/WIN Set Date To A Format

•	This source code API has been renamed Set Date To Format for consistency.

OBWIN/Add List Item
OBWIN/Clear List Control

•	These source code APIs have been re-enabled and work as documented.

OBWIN/WIN Set Time To Format
OBWIN/WIN Set Timestamp To Format
OBWIN/Set Date To Format

•	These source code APIs now compile correctly.  (7365)

OBAS400/Reclaim Resources Command

•	The implementation name for this message has been fixed to prevent errors.  (7650/EPS 86926)

OBATCH/Message Block

•	A new field has been added; it scopes three other fields: Message Returned, Message Id, and Message Text.

OBATCH/Get Last Message

•	A new function has been added.

OBATCH/Submit Job Parameter Entry.Parameter Panel

•	The BMP references have been corrected so that they no longer contain absolute path names.  (6870; 6535/EPS 83620)

OBATCH/Prepare And Submit Job

•	The Submitted For output parameters have been deleted.

OBATCH/Job Submitted Successfully

•	The message text has been changed.

OBATCH/Message Text

•	This field now inherits from the new field OBAS400/Message Block.Message Text.

OBSEC/User Functions.Create Child User Interface
OBSEC/User Functions.Change Child User Interface

•	An Implement=No triple has been added.

OBSEC/Security Check
OBSEC/Security Maintenance

•	These functions now compile correctly.  (6735

OBCAL/Date Included

•	A default value of *Yes has been added.  (7293)

OBODBC/<all>

•	All occurrences of '&&' have been changed to '&' for parameter substitution.  (8391)


Obsydian 2.20 updates

This document contains information that supplements the printed documentation and the online help.

Version 2.2   January 21, 1997

For more information, see Dr. O's updates in the Lava Lounge.

Overall changes

•	The Class Libraries Guide has been divided into two volumes:  Volume I describes the Base class libraries and the Application Framework class libraries; Volume II describes the Technology class libraries.

•	Two new Technology class libraries have been added:  the Windows MAPI class library (OBMAPI) and the Windows NT Server APIs class library (OBNT).

•	Windows NT variants have been added for all libraries.  Variant triples have also been added for the appropriate OBASE, OBDATE, OBSEC, and OBCAL objects.

•	New objects have been added to the AS/400 APIs class library (OBAS400), for retrieving information from the OS/400 operating system; see Chapter 4 of Volume II of the Class Libraries Guide for details.

•	A new entity, Entity With Logical Delete, has been added to OBASE.  This entity allows "soft deletion" of instances.  For more information, see Chapter 3 of Volume I of the Class Libraries Guide.

•	A new national language choice, Icelandic, is now available for the Obsydian class libraries.

•	Certain class library functions, including retrieval of the current date and time from Windows and OBDATE date functions, need to be generated in WinC before some inherited class library functions can link.  These functions have now been generated and compiled into a library of functions that is shipped with Obsydian.  Use library OBCLASS.LIB for normal compiles and OBCLASSD.LIB for compiles for debugging.  To use either of these libraries, add its name to the list of pre-built libraries in the Windows and C++ build options on the Generate and Build Options dialog box.  Make sure you use the library that matches your debug setting.  (5586)

Important information

•	Class libraries utilize versions and levels for changes and additions where appropriate; by specifying which version and level you want to use, you can use previous versions of the class libraries or upgrade to the latest release. Select version "Obsydian 2.2" and level "Obsydian 2.2 changes" in the Configuration dialog box from the File menu to use the 2.2 class libraries.

•	If you use the OBASE class library, you need to extract from both the OBAS400 class library and the OBWIN class library, regardless of which variant you use for your model.  The Class Libraries Guide shows which libraries are needed for each class library.

•	Previously empty edit points in the User Maintained Entity functions have been used. If you had added code in these edit points, it will override any changes made to class library objects. To use the new class library code:

1.	Move your changes to an empty edit point.

2.	Save your changes and close the action diagram.

3.	Re-open the action diagram. You will see the new class library code in the edit points you moved your code from.

4.	Move your changes from their temporary locations to the newly provided edit points.

Changes to specific library objects

OBASE/Business Entity.Standard Functions.List Instances User Interface

•	A Process Grid Event Request edit point has been added.

•	A new Load Grid Request edit point has been added.  The new OBASE field, Load Grid, determines whether to reload the grid.

OBASE/Business Entity.Standard Functions.Create User Interface
OBASE/Business Entity.Standard Functions.Change User Interface

•	The '0' has been removed from both the Function Options and the Additional Events edit points.  (9386)

OBASE/Business Entity.Standard Functions.Create User Interface
OBASE/Business Entity.Standard Functions.Change User Interface
OBASE/Business Entity.Standard Functions.Display User Interface
OBASE/Business Entity.Standard Functions.List Instances User Interface
OBASE/Business Entity.Standard Functions.Process User Interface
OBASE/Two Parent Child.Edit Child User Interface
OBASE/Entity With Tab Dialog.Tab Dialog Display

•	The Additional Events edit point has been moved inside an 'Any' event.

OBASE/Business Entity.Real Attributes.Create Instance
OBASE/Business Entity.Real Attributes.Change Instance
OBASE/Apply Late Defaults

•	A meta function has been added to apply default values just before updating a database.  This processing has been moved from Create Instance and Change Instance.  (8662)

OBASE/Business Entity.List Attributes.Get Sequential
OBASE/Business Entity.List Attributes.Process Some Instances

•	Support has been added for last descending keys.  A new field, +Descending Key, indicates whether fields are sorted by ascending or descending keys.  (6269)

OBASE/User Maintained Entity.Maintenance Suite.Maintenance Suite

•	Support has been added for Cancel All functionality for multiple rows selected for changing or deletion.  (8397)

OBASE/User Maintained Entity.Maintenance Suite.Change User Interface

•	A Cancel All event has been added, along with a dual parameter, Changes Selected, to support the Cancel All event.  (8397)

OBASE/User Maintained Entity.Maintenance Suite.Delete User Interface

•	A Cancel All event has been added, along with a dual parameter, Deletes Selected, to support the Cancel All event.  (8397)

OBASE/User Maintained Entity.Maintenance Suite.Change User Interface.Change Panel
OBASE/User Maintained Entity.Maintenance Suite.Delete User Interface.Display Panel

•	A Cancel All button has been added, along with a label, &Cancel All.  (8397)

OBASE/Two Parent Child.By Second Parent Key.Process Second Parent Deletion
OBASE/Child.Real Attributes.Process Parent Deletion

•	Cascade delete processing has been added to the Second Parent entity of a Two Parent Child entity.  To support this, a new view, By Second Parent Key, was added.  The contents of the input views of Child.Real Attributes.Process Parent Deletion have been modified to contain keys only.  (4279)

•	Cascade deletion has been fixed for SQL databases.  (9035)

OBASE/Child.List Attributes.Process Some Instances

•	The contents of input views have been modified to contain keys only.  (4279)

OBASE/Entity With Tab Dialog.Tab Dialog Edit
OBASE/Entity With Tab Dialog.Tab Dialog Edit.Tab Dialog

•	Delete processing has been enabled.

OBASE/Entity With Tab Dialog.Tab Dialog Display.Tab Dialog

•	The contents of tab regions have been modified to contain non-keys only.

•	The Function Options edit point has been renamed.

OBASE/Data Transfer Entity

•	Block fetch bug has been fixed.  (9236/ITS 95558

OBASE/Field Validation
OBASE/Relation &View Validation

•	Support for displayed as fields has been added.

OBASE/Set Current Date And Time

•	A language triple has been added for the UNIX variant.  (9367)

OBASE/Delete This Instance

•	A new message has been added.

OBASE/&Cancel

•	The & representing a key shortcut has been removed from both the default and the Cancel button.  (8885)

OBDATE/ISO Displayed Numeric Date
OBDATE/ISO Displayed Numeric Date 6
OBDATE/ISO Displayed Numeric Date 7
OBDATE/ISO Displayed Numeric Date 8
OBDATE/ISO Displayed Numeric Time

•	Fields have been added to convert from database format date and time fields to ISO date and time fields for display.  These fields scope functions that contain processing for automatic conversion of date and time formats, so that derived by triples are no longer needed.

OBDATE/Get Selected Days For Month

•	The calculation has been fixed for leap years.  (9240)

OBDATE/Get Date For Absolute Days
OBDATE/Get Absolute Days For Date

•	The base date for calculations has been changed to January 1, 0000.  (8756)

OBDATE/Leap Days

•	A new field has been added.

OBSEC/Security Check

•	This function now supports ODBC applications.  (8271)

OBSEC/Function.Grid Maintenance Suite.Edit Grid User Interface

•	This function now allows filtering by security status.

OBSEC/Security User Id

•	A new field has been added, with a length of 32, replacing OBJECTS/User Id in OBSEC.  This allows OBSEC to support ODBC.

OBWIN/Get Windows User Id
OBWIN/Windows User Id

•	A new API has been added that returns the login id of the current Windows user.  A new field, Windows User Id, has been added to support this.  (8271)

OBAS400/Entity With User Space.List Attributes.Get Sequential
OBAS400/Get File Fields.List Attributes.Get Sequential
OBAS400/Get File Formats.List Attributes.Get Sequential
OBAS400/Get File Members.List Attributes.Get Sequential
OBAS400/Get Jobs.List Attributes.Get Sequential
OBAS400/Get Objects.List Attributes.Get Sequential
OBAS400/Get Signed-on Users.List Attributes.Get Sequential
OBAS400/Get Spooled Files.List Attributes.Get Sequential

•	Block fetch support has been added, allowing multiple rows to be passed during a single communications request.  By default, 12 rows are returned for each call.  The parameter interface has changed as a result.  For more information, Chapter 4 of Volume II of the Class Libraries Guide.

If any of your functions call Get Sequential, you need to change the code to make the call only when all of the returned rows have been used.  You can use the Instances Fetched parameter to do this. You also need to use the Use instruction for the output variable to move it onto the next occurrence to use.  The code in the Call Fetch Function subroutine in List Instances User Interface shows one way to do this.  For more information about the Use statement, see the Obsydian online help.

To retain the previous behavior (retrieving one record at a time), set the value of the ...occurs continuation triple on the Output variable to 1.

OBAS400/Character
OBAS400/Field
OBAS400/Numeric
OBAS400/Object Name
OBAS400/Status
OBAS400/Text

•	Field names have been changed to AS400 Character, AS400 Field, AS400 Numeric, AS400 Object Name, AS400 Status, and AS400 Text, respectively, to avoid name conflicts.

OBAS400/Get Objects.Entity
OBAS400/List Attributes.View
OBAS400/Get Sequential.Function

•	Fixed parameter initialization.

OBAS400/OS400 Control
OBAS400/OS400 Create
OBAS400/OS400 Filter
OBAS400/OS400 Generic Header
OBAS400/OS400 Header
OBAS400/OS400 List
OBAS400/OS400 Populate
OBAS400/OS400 Retrieve

•	Variable names have been changed to Control, Create, Filter, Generic Header, Header, List, Populate, and Retrieve, respectively.


Obsydian 2.50 updates

This document contains information that supplements the printed documentation and the online help.

Version 2.5   January 20, 1997

For more information, see Dr. O's updates in the Lava Lounge.

Overall changes

•	Context-sensitive online help is now available for all three Base class libraries and two of the Technology class libraries. To get help about an object in any of the following libraries, select the object in the Object Browser, click the right mouse button, and choose Object Help. Help is available for:

⇒	OBJECTS, the System Objects class library

⇒	OBASE, the Abstract Business Objects class library

⇒	OBDATE, the Date Processing class library

⇒	OBMAPI, the Windows MAPI class library

⇒	OBAS400, the AS/400 APIs class library

•	A new Service entity, Entity With User Filter, has been added to the OBASE class library. This entity allows an end-user to enter, save, and load filter criteria appropriate to the view used to populate a grid. The entered criteria are passed to the server function to perform the filtering so that only selected rows are passed back to the client function. Several fields, variables, and labels have been added to OBASE to support this new entity.

Note: The load and save options are only available in Windows client implementations.

•	A new function, Get Sequential Wrapper, scoped by Business Entity.List Attributes has been added to allow faster implementation of alternate views in the grid functions. It has the same parameters as the existing Get Sequential, including the multiple occurrence Output variable. You can use this function to replace the call to Get Sequential in your grid functions and you can call any data retrieval function from within the wrapper function. The grid functions still expect multiple rows to be returned, but you can set the Instances Fetched field to One if required.

•	The Child entity has a new view, Parent Keys, that populates the Restrictor variable for database access functions.

•	Functions in the OBASE and OBDATE class libraries have been generated and compiled into libraries that are shipped with Obsydian. To use any of these libraries, add its name to the list of pre-built libraries in the Generate and Build Options dialog box. You can find them in the class libraries directory. Use the version that corresponds to your work environment:

Use library:	For:
obcl16.lib	16-bit retail applications
obcl16d.lib	16-bit debug applications
obcl32.lib	32-bit retail applications
obcl32d.lib	32-bit debug applications
•	The copyright date has been changed to 1997 for all class library functions.

Changes to specific library objects

OBASE/Code

•	The Code field has been set to accept uppercase characters only. To reset the field so that it accepts mixed case characters, add a case Mixed triple.  (9319)

OBASE/Default Objects.Dialog

•	The Save Placement property has been set to No for all dialog panels. This is consistent with Windows behavior.  (10344)

•	The background color for these panels has been set to 'No value' to allow the panel to pick up the user's Windows color scheme.  (8454)

Note:  this change was made in the Base level.

OBASE/Default Objects.MDI Template.Common Menu
OBASE/Default Objects.Dialog

•	The Key Code element of Control Defaults has been set to Disabled=Yes in the Inactive state on these panels.  (10142)

•	The default color for edit and list controls has been changed to the panel color when in the Protected state.

OBASE/Default Objects.MDI Template.Common Menu
OBASE/Default Objects.MDI Template.MDI Frame Processing.MDI Frame

•	An Exit option has been added to the File menu on the Common Menu panel. The MDI Frame panel defines processing for this new menu item. The toolbar button and the Close menu option continue to close the current window. If there are no child windows open, then both the Exit and Close menu options have the same effect of closing the application..  (10064)

OBASE/Default Objects.MDI Template.Information

•	The Information Panel has been modified to look more like a Windows 95 panel.  (9994)

OBASE/Default Objects.MDI Template.MDI Frame Processing
OBASE/Default Objects.MDI Template.Information
OBASE/Business Entity.Standard Functions.Change User Interface
OBASE/Business Entity.Standard Functions.Create User Interface
OBASE/Business Entity.Standard Functions.Display User Interface
OBASE/Business Entity.Standard Functions.List Instances User Interface
OBASE/Business Entity.Standard Functions.Process User Interface
OBASE/Business Entity.Standard Functions.Print Tabular Report
OBASE/Business Entity.Standard Functions.Print Key Break Report
OBASE/Two Parent Child.Edit Child User Interface
OBASE/Entity With Tab Dialog.Tab Dialog Display

•	The preceding functions, which call Security Check, have been modified in the following ways:

⇒	The implementation name of the function is now always available. Previously it was only available if the function had a secured Yes triple.

⇒	The meta code used to determine the name of the current function has been fixed so that the correct name is obtained in all cases of templating and inheritance.  (9311/EPS 90237)

⇒	The exit function processing is now conditioned with the Exit Function field, so that you can continue processing even if the security check fails. The default behavior is to exit the function with a message to the user.  (10022)

OBASE/Business Entity.Standard Functions.Change User Interface
OBASE/Business Entity.Standard Functions.Create User Interface
OBASE/Business Entity.Standard Functions.Display User Interface
OBASE/Business Entity.Standard Functions.Print Tabular Report
OBASE/Business Entity.Standard Functions.Print Key Break Report
OBASE/Grid Maintained Entity.Grid Maintenance Suite.Edit Grid User Interface
OBASE/User Maintained Entity.Maintenance Suite.Delete User Interface
OBASE/User Maintained Entity.Maintenance Suite.Maintenance UI
OBASE/User Maintained Entity.Maintenance Suite.Print Selection User Interface
OBASE/Entity With Alias.Maintenance Suite.Maintenance UI
OBASE/Child.Standard Functions.Create User Interface
OBASE/Simple Transaction.Detail.Edit Details User Interface
OBASE/Simple Transaction.Transaction Processing.Delete Header User Interface
OBASE/Simple Transaction.Transaction Processing.Display Transaction Headers
OBASE/Dual Detail Transaction.Transaction Processing.Display Transaction Headers
OBASE/Referenced Entity.Check And Return Virtuals
OBASE/Entity With Tab Dialog.Tab Dialog Display
OBASE/Entity With Tab Dialog.Tab Dialog Edit
OBASE/Call To [Function] Failed

•	The new message has been enhanced to display the *Returned Status and *Call Status environment fields to assist in problem solving. The class library functions have been modified to use the new form of the message. The old version of the message has been renamed "Old Call To [Function] Failed" to allow existing code to execute as before.  (9648)

OBASE/Business Entity.Standard Functions.Change User Interface
OBASE/Business Entity.Standard Functions.Create User Interface
OBASE/Business Entity.Standard Functions.Display User Interface
OBASE/Business Entity.Standard Functions.List Instances User Interface
OBASE/Business Entity.Standard Functions.Process User Interface
OBASE/Two Parent Child.Edit Child User Interface
OBASE/Entity With Tab Dialog.Tab Dialog Display

•	All event processing code in top level functions has been moved to corresponding subroutines. This allows you to add an Exit Sub action diagram instruction to prevent any code after the edit point from executing.

OBASE/Business Entity.Standard Functions.Change User Interface
OBASE/Business Entity.Standard Functions.Create User Interface
OBASE/Business Entity.Standard Functions.Display User Interface
OBASE/Business Entity.Standard Functions.Process User Interface

•	A ...contains Key triple has been added to the input view for keys.

OBASE/Business Entity.Standard Functions.List Instances User Interface

•	The Grid Positioned field used to determine if the first row in a grid needs to be selected is now reset in the Reload Grid processing.  (9931)

•	A new edit point has been added after a successful call to the fetch function.

•	The call to the Filter Selection function and the associated event, menu item, and toolbar button are now not generated if the filter function has an implement No triple.

•	Non-view meta fields are now externalized. Two new functions, Set External Non-view Fields, and Set Internal Non-view Fields, have been created to contain this processing.  (9867)

•	Code to highlight the first row on a grid has been removed, since this now happens automatically.  (11035)

OBASE/Business Entity.Standard Functions.Create User Interface

•	The redundant replaces VW triple has been removed.  (9864)

Note:  this change was made in the Base level.

OBASE/Business Entity.Standard Functions.Display User Interface

•	The call to the Set Internal Values meta function has been removed.  (8640)

OBASE/Business Entity.Standard Functions.Print Tabular Report

•	The meta code for displayed as processing has been fixed. Meta code has been added to handle the Selections region.

OBASE/Business Entity.Standard Functions.Print Key Break Report

•	Overflow processing has been added for headers and totals.  (10949)

OBASE/Business Entity.All Attributes.Get One Instance

•	The input view is has been changed to All Attributes, restricted to keys only, rather than Key Attributes.   (9642)

OBASE/Business Entity.List Attributes.Process Some Instances

•	In the 5250 variant, language and implement No triples have been added.

OBASE/Grid Maintained Entity.Grid Maintenance Suite.Edit Grid User Interface

•	New message, "Delete Not Allowed" has been added.  (9864)

•	The primary keys of the entity, rather than the view keys, are now protected in the grid. This prevents changes to the primary keys that could compromise referential integrity.

•	A Break has been added when prompting for a row.  (10816)

OBASE/User Maintained Entity.Maintenance Suite.Change User Interface
OBASE/User Maintained Entity.Maintenance Suite.Delete User Interface

•	Version 2.20 introduced a new Cancel All button on the panels scoped to these two functions. In V2.20 the button was hidden if the action was not available. Now the button is made Inactive and is still visible. This gives panels a better look without odd gaps where hidden buttons are.  (10169/EPS 91480)

OBASE/User Maintained Entity.Maintenance Suite.Maintenance UI

•	The fields Changes Selected and Deletes Selected fields are now correctly reset on any event.  (10328)

OBASE/Child.Parent Keys
OBASE/Child.Standard Functions.Create User Interface
OBASE/Child.Standard Functions.List Instances User Interface
OBASE/Child.Standard Functions.Process User Interface
OBASE/Child.Standard Functions.Print Tabular Report
OBASE/Child.List Attributes.Get Sequential
OBASE/Child.List Attributes.Process Some Instances
OBASE/Child.Real Attributes.Process Parent Deletion
OBASE/Two Parent Child.Edit Child User Interface
OBASE/Two Parent Child.By Second Parent Key.Process Second Parent Deletion

•	A new view, Parent Keys, has been added to Child entities. This view replaces Parent.Key Attributes as an input view in the preceding functions. This allows superordinate key replacement for Two Parent Child entities.  (10906)

OBASE/Child.Real Attributes.Process Parent Deletion

•	An implement Yes triple has been added.

OBASE/Two Parent Child.Edit Child User Interface

•	A better check for the existence of a related child row has been added to the routine used to load the second parent grid.  (10213)

OBASE/Audited Entity.Set Audit Fields

•	The language has been corrected for the NT variant.  (10125)

OBASE/Entity With Tab Dialog.Tab Dialog Edit

•	An edit point, 1 Instance Not Found, has been added after the call to detect if a row was found for the input values. This function also now sets the focus to the selected tab when a tab button is pressed, assuming the tab that was being displayed passes the validation.

•	The focus is now set to the selected tab region rather than the common region. It is no longer necessary to go into the action diagram and set the focus there.  (10210)

•	Extraneous meta code has been removed.  (10925)

OBASE/Entity With Tab Dialog.Tab Dialog Display

•	The input view now contains only keys.  (10211)

OBASE/Entity With Text/Additional Text.Edit Additional Text

•	An edit point has been added in the Confirm event.

OBASE/Function Options
OBASE/Set Current Date And Time
OBASE/+WinNTC

•	WinNTC has been enabled as a language for Function Options, and a meta field has been added. The +WinNTC meta variable is now defined if the function is being generated in WinNTC. This meta variable is used to call the appropriate API's in the Set Current Date And Time function.  (9942/ITS 96269)

OBASE/Prompt Processing

•	The focus is now set back to the prompting field on return from prompt processing in 5250 panels.  (9438)

OBASE/Prompt With Displayed As

•	A new meta function has been added; use this function to replace Prompt Processing when a foreign key field has a displayed as triple.

OBASE/Client External Function
OBASE/Client Internal Function
OBASE/Server External Function
OBASE/Server Internal Function

•	Four new "shell" functions have been added to allow you to inherit language and type information for the current configuration. They have no action diagram; therefore, you can add them as inheritance targets to other inherited functions.  (9439)

OBASE/Code

•	The Code field has been set to accept uppercase characters only.  To reset the field so that it accepts mixed case characters, add a case Mixed triple.  (9319)

OBASE/Row

•	The length of this field has been changed to 7 for national language translations.

OBASE/Transaction Number

•	An edit mode Read Only triple has been added. If you want to edit any field inheriting from Transaction Number, you can add a FLD edit mode Edit triple, or change the mode property on the appropriate panels.  (5599)

OBCAL/Date List Detail.Real Attributes.Get List Days Between Dates

•	An implement Yes triple has been added.  (10925)

OBATCH/Submit Job Parameter Entry

•	The Save option has been enabled for Windows clients.  (10152)

OBSEC/all varianted objects

•	WinNT variant triples have been added.  (10292)

OBDATE/ISO Displayed Numeric Date
OBDATE/ISO Displayed Numeric Time

•	Labels have been added to these fields for use by external ISO date and time fields.  (10396)

OBDATE/Number Of Leap Years

•	The decimal places triple has been removed from this field.  (10566)

OBDATE/Get Day Of Week

•	The day of week has been fixed for Jan 1, 0000, the first absolute date.  (10939)

OBDATE/Get Absolute Days For Date
OBDATE/Get Date For Absolute Days

•	These functions now check for leap century as well as leap year.  (9451)

OBDATE/Date Field Heirarchy
OBDATE/Time Field Heirarchy

•	The spelling has been corrected to "hierarchy" on the names of these diagrams.  (10241)

OBWIN/Get Char INI Entry From File
OBWIN/Get Numeric INI Entry From File
OBWIN/Set Character INI Entry In File
OBWIN/Set Numeric INI Entry In File
OBWIN/INI File Name

•	New source code objects and a supporting field have been added for reading and writing entries to an .INI file.  You can use these APIs to write to any .INI file; you specify the full path of the file as an input parameter.  (9364)

OBWIN/Get Windows User Id

•	This source code object now uses the Obsydian run-time API GetLoginName.  (8506)

OBWIN/Get Maximum Value
OBWIN/Get Minimum Value
OBWIN/Get Increment Value
OBWIN/Set Maximum Value
OBWIN/Set Minimum Value
OBWIN/Set Increment Value
OBWIN/Increment Value
OBWIN/Maximum Value

•	New source code objects and supporting fields have been added to set minimum, maximum, and increment values for spin control objects.  (9263)

OBMAPI/Send Mail To Recipient
OBMAPI/Show Address Book

•	Two wrapper functions have been added to allow more direct access to API functions.  (10623)

OBAS400/Copy Back Messages

•	A new source code object has been added that allow you to copy back messages from the program message queue of a called RPG program to the calling program. This only applies to programs running on an AS/400. It is similar to the behavior of the 'Copy back message' function option for Synon/2 generated programs.  (9003)

OBAS400/Entity With User Space.List Attributes.Get Sequential

•	Filter fields have been set to their default values if they are blank.  (10536)

•	The name of the user space is now set to the function's implementation name.  (10428)

OBAS400/Get Spooled Files.List Attributes.Get Sequential

•	The library name is set to blank if the output queue has the value *All.  (10537)

OBAS400/Retrieve User Space
OBAS400/User Space.Error Code

•	User Space.Error Code has been added as a dual parameter to the function API Support.Retrieve User Space, to provide additional error handling capabilities in OBAS400/Entity With User Space.List Attributes.Get Sequential. To facilitate this, the positions of the fields Bytes Available and Bytes Provided have been swapped in the Error Code field. If you have used the Retrieve User Space function explicitly, you will need to update the parameter mappings.  (10737, 10728)

OBAS400/Binary-4

•	The C format for this field has been changed to Long.  (10693)

OBAS400/Bytes Available

•	A default value of *Zero has been set for this field.

OBAS400/Current Occurrence
OBAS400/Function Name
OBAS400/Instances Fetched
OBAS400/Maximum Occurrences
OBAS400/Number
OBAS400/Yes & No

•	Field names have been changed to AS400 Current Occurrence, AS400 Function Name, AS400 Instances Fetched, AS400 Maximum Occurrences, AS400 Number, and AS400 Yes & No to avoid conflicts with OBASE fields that have the same names.

OBAS400/OS400 Job Number

•	A new value, *Blank, has been added for this field.  (10551)

OBAS400/Spooled File Name

•	A new value, *INT, has been added for this field.  (10551)

OBODBC/Start Commitment Control
OBODBC/End Commitment Control

•	New source code objects have been added to allow you to start and end explicit commitment control. Normally an ODBC database will commit changes after each row update. These APIs give you better control of this feature.


New fields
New fields for Entity With User Filter

OBASE/Field Implementation Name

OBASE/Field Length

OBASE/Field Type

OBASE/Filter Criteria Name

OBASE/Filter INI Key

OBASE/Filter INI Section

OBASE/Load

OBASE/Operator

OBASE/Selection

OBASE/Selection Date

OBASE/Selection Numeric

OBASE/Selection Time

OBASE/Selection Value

OBASE/Source Field

OBASE/View Implementation Name

OBASE/View Key


New variables
New variables for Entity With User Filter

OBASE/Compare

OBASE/Field Grid

OBASE/Filter Criteria


New labels
New labels for Entity With User Filter

OBASE/&Load

OBASE/&Save

OBASE/Save As

OBASE/Selection Value