Contents
Obsydian 2.20 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, beginning with version 2.20.

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


Obsydian 2.01 updates

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

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

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

Version 2.2   September 26, 1996

This document contains information not available elsewhere in the printed documentation or online help.

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 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.

•	Previously empty edit points in the User Maintained Entity functions have been used.  If you had added code in these edit points, it will appear in a new section of the action diagram reserved for code that cannot be loaded into the required location.  You will need to move it 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.