Changes made in the Obsydian V3.00 Class Libraries.

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


General new features:

Java variant for server functions

Obsydian 3.0 introduces a generator for Java servers using a Windows client. OBASE, OBDATE, OBCAL and OBSEC class libraries now have a Java variant:

Change to OBDATE variants

The OBDATE library functions can be called by both client and server functions in an application. This is not a problem for AS/400 and UNIX variants, since the date functions are defined as internal and generated as in-line code for these variants. For Windows NT and Java variants, the functions need to be generated and built using the server language, but can also be called from client functions. Therefore, a change has been made to the variants in the OBDATE class library.
For release 3.0, OBDATE has a variant for each server platform, along with a variant for Windows client. Unless you want to generate and build date functions for a specific server platform, always choose the Windows client variant. For AS/400 5250 applications, always choose the AS400 server variant.
To generate the date functions for a specific server platform, choose the server variant for the target platform, then generate and build the date functions. The pre-built libraries supplied with Obsydian include the date functions for each platform.

New toolbar bitmaps

Class library panels now have a new look. The toolbar buttons have been updated to match the new Obsydian toolbars. Or, if you choose, you can have your panels use the same toolbar buttons as before.

To use the new toolbar buttons, point your bitmap resource directory to Obsydian\Bmp3, and then regenerate and rebuild.
To continue using the original toolbar buttons, leave your bitmap resource directory pointed to Obsydian\Bmp.

New National Language

Obsydian's class libraries now have a Flemish version in addition to all of the existing languages.


Enhancements to OBASE:

ODBC server functions now external

The function type for server functions in the ODBC variant of OBASE has been changed from Internal to External. This change will enable applications to run these functions on a remote server. This change lets you use dynamic application partitioning (ODAP) for ODBC applications.

The following functions have been changed:

  1. Business Entity.All Attributes.Get One Instance
  2. Business Entity.List Attributes.Get Sequential
  3. Business Entity.List Attributes.Get Sequential Wrapper
  4. Business Entity.List Attributes.Process Some Instances
  5. Business Entity.Real Attributes.Change Instance
  6. Business Entity.Real Attributes.Create Instance
  7. Business Entity.Real Attributes.Delete Instance
  8. Entity With Logical Delete.Real Attributes.Delete Instance
  9. Enumerated Entity.Get Next Numerator
  10. Referenced Entity.Real Attributes.Check Existence

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

The About box has been enhanced to display an additional copyright notice for applications that use ActiveX controls, VBScript, or JScript. To make this possible, a variable and a label both called Script and a name object, ActiveX, have been added. For example:

To use the new copyright notice, add the following triple to a function that inherits from Information:

My Information Function option ActiveX ...value Yes

This notice is required for any application using VBScript or JScript. By default, the copyright text is not displayed. The copyright text is hidden on AS400 5250 panels.

Business Entity.List Attributes.Get Sequential
Grid Maintained Entity.Grid Maintenance Suite.Edit Grid User Interface

In Edit Grid User Interface, Get Sequential was being called an extra time when using multiple-occurrence variables with a single database record. This problem has been resolved.

Business Entity.Standard Functions.Change User Interface

When a change was not permitted, this function was displaying message Call To [Function]- Failed, which was not as informative as the message that had previously been called in this situation. The message Instance Changed By Another User has been restored for this function.

Business Entity.Standard Functions.Create User Interface.Create Panel
Grid Maintained Entity.Grid Maintenance Suite.Edit Grid User Interface.List Panel

Static overlap has been fixed for AS/400 5250 panels.

Spanish translation has been corrected for Create Panel.

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

Selection fields using displayed as now display correctly when you re-enter the filter selection panel.

Clear processing has been corrected on Filter Panel.

Business Entity.Standard Functions.List Instances User Interface

Edit points have been added to the Set Internal/External Values subroutines.

Business Entity.Standard Functions.Print Tabular Report

An edit point, Before Print, has been added after the meta calls so that information provided by the meta calls is available when loading fields for printing.

This function now calls Set External Non-view Fields instead of the equivalent hard-coded meta code.

Business Entity.Standard Functions.Print Key Break Report

To correct the behavior of printed key break reports, the final Return statement has been changed to Terminate, to be consistent with Print Entity Listing.

Business Entity.Standard Functions.Print Tabular Report
Business Entity.Standard Functions.Print Key Break Report
Set Printed Fields By View
Set Printed Non-view Fields

Two new meta functions have been added to provide support for FLD printed as FLD triples.

Business Entity.Standard Functions.List Instances User Interface
RPG Set Subfile Position
Base Source Code

On AS/400 5250 panels it was necessary to press PAGE DOWN twice to scroll a grid the first time the panel displayed. A new source code object, RPG Set Subfile Position, and a corresponding subject area, Base Source Code, have been added to OBASE to correct this problem.

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

The meta code has been fixed to correctly initialize the Based On variable for an Add event.

Edit points have been added to the Process Grid Changes subroutine (in Additional Subroutines).

The new edit points are 1 Pre Modified Row Processing, 1 Post Modified Row Processing, 1 Grid Errors Found, and 1 End Of Grid Changes.

User Maintained Entity.Maintenance Suite.Delete User Interface

The translation of the Cancel All button has been corrected for German.

Entity With Alias

Selecting a grid row and clicking the Add Alias button created an alias with no primary key, rather than using the value in the selected row. To prevent an Alias from being added without a primary key, this entity now inherits from Referenced Entity in addition to User Maintained Entity.

Entity With Tab Dialog.Tab Dialog Edit

Initial focus is now set correctly to the Common region for Add mode. A new edit point, Set Initial Focus, has also been added.

Fields from non-displayed tab regions are now hidden correctly during the validation process.

Entity With Text.Additional Text.Real Attributes.Delete Instance

A language triple has been added to this function for the Windows NT variant.

Entity With User Filter.Filter Attributes.Filter Selection
Entity With User Filter.Filter Attributes.Get Sequential

Support for structure fields in defining filter criteria has been added.

You can now use the same field to define more than one filter criterion.

The Restrictor variable is no longer cleared for Child entities.

Filtering on more than one field now works correctly. Selection fields are now properly cleared in meta code.

Enumerated Entity.Get Next Numerator

Incorrect parameter mapping has been fixed. This eliminates reported problems with Date and Time fields.

Two Parent Child.Edit Child User Interface

Clicking Add to add a new instance, then clicking Cancel without adding anything now works as it did before no change is made to your entity, and no error message appears.

Virtual fields now display correctly on the second parent grid when adding or deleting instances. A new meta field, +Virtual Fields, was added to make this possible.

The Second Parent grid is now mapped to the Mapped variable on the call to Create Child User Interface. If you populate the Mapped variable with virtual fields on your Second Parent entity, they will now appear on the panel.

Control Names have been added to both grids, to eliminate irregular display effects.

Two Parent Child.By Second Parent Key

To correct a parameter mismatch in the function Process Second Parent Deletion, the contains triple for this view has been changed from Keys to Real.

Three Level Transaction.Sub Detail.Edit Details User Interface

A replacement triple has been added to this function so that it calls the proper Change Header User Interface function.

Get Current Date And Time

In AS/400 variants, this function now calls a CL program to get the correct date and time. In addition, the following changes have been made:

In OBAS400: A new function, Get Current Date And Time, has been added to get the current system date and time, rather than the job start date and time.

Set External Non-view Fields
Set Internal Non-view Fields

Checking for Each Field Component has been added to these meta functions for consistency with similar functions.


Enhancements to OBWIN:

New APIs have been added to OBWIN, the Windows APIs class library to support ODAP (Obsydian dynamic application partitioning), ActiveX controls, grid sorting, and grid selection.

ODAP APIs

The ODAP APIs let you specify the server on which a function should run, and determine which server a function is actually running on. The new APIs are:

  1. Get Function Location returns the server on which a function is running
  2. Set Function Location specifies which server you want a function to run on
  3. Set Default Location sets the default server type for functions in your application: AS400, Windows NT, or UNIX

ActiveX APIs

The ActiveX APIs let you add ActiveX controls to your panels and work with the properties of the controls. The new APIs are:

  1. Get ActiveX Character Property returns a character-valued property from an ActiveX control
  2. Get ActiveX Numeric Property returns a numeric-valued property from an ActiveX control
  3. Get ActiveX Char Event Param returns a character-valued parameter resulting from a logical event on an ActiveX control
  4. Get ActiveX Event Param Count returns the number of parameters resulting from a logical event on an ActiveX control
  5. Get ActiveX Numeric Event Param returns a numeric-valued parameter resulting from a logical event on an ActiveX control
  6. Set ActiveX Character Property sets a character-valued property on an ActiveX control to a value you specify
  7. Set ActiveX Numeric Property sets a numeric-valued property on an ActiveX control to a value you specify

Note: These OBWIN calls are C++ APIs; you also have the option to access ActiveX properties using VBScripting APIs.

Grid Sorting APIs

The grid sorting APIs let you sort the rows of a grid. You can sort based on up to three columns, in either ascending or descending order for each sort key. The grid sorting APIs are:

  1. Enable Grid Sort enables sorting for a specified grid control
  2. Sort Grid sorts a grid based on selected columns
  3. Re-sort Grid reverses the order of a grid; in other words, changes the sort order from ascending to descending, or vice versa

Grid Selection APIs

The grid selection APIs let you control which rows of a grid are marked as selected. The grid selection APIs are:

  1. Select Grid Row marks a specified row of a grid control as selected
  2. De-select Grid Row marks a specified row of a grid control as not selected
  3. Reverse Grid Row Selection inverts the selected rows of a grid control; in other words, marks all unselected rows as selected, and selects all unselected rows

Shell Execute API

An additional API has been added to OBWIN, Open An Application File. This API implements the Windows ShellExecute API. This API lets you open a file by launching the application associated with that file. For example, if you specify a file called numbers.xls, this API starts Microsoft Excel to open the file.


Enhancements to OBDATE:

Get Absolute Days For Date
Get Date For Absolute Days
Date Year
Number Of Years
Absolute Day Multiplier

The date calculation algorithm has been corrected to account properly for century years that are not leap years, such as 1900 and 2100. To accomplish this, a new value, *1753 (the first year of the Gregorian calendar), has been added to the field Date Year. In addition, two new values, 100 Year Cutoff and 400 Year Cutoff, have been added to the field Number Of Years; and 11 new values have been added to the field Absolute Day Multiplier for the number of days to the beginning of each month from February through December.

JAVA Source Code

A new subject area has been added, with the following source code APIs:

  1. JAVA Get Current Date
  2. JAVA Get Current Time
  3. JAVA Get Current Timestamp

ISO Displayed Numeric Date 6
ISO Displayed Numeric Date 7
ISO Displayed Numeric Date 8

Support for printed as triples has been added to these fields.

RPG Get Current Date
RPG Get Current Time

These source code API's have been renamed to RPG Get Job Start Date and RPG Get Job Start Time.


Enhancements to OBWIN:

Set Increment Value
Set Minimum Value
Set Maximum Value

The parameter sequence for these APIs has been corrected.

Pane

The scoped values of this field have been renamed from One, Two, Three to Left, Middle, Right for clarity. This field is used by Set Status Bar Text.

Property Name

This field has new values, corresponding to common property names for panel controls.

Get VBX Character Property
Get VBX Floating Point Property
Get VBX Numeric Property
Set VBX Character Property
Set VBX Floating Point Property
Set VBX Numeric Property
Set VBX Picture Property
Clear VBX List Control
Refresh VBX Control

The VBX APIs above now call the equivalent ActiveX method in 32-bit applications, wherever this is possible.


Enhancements to OBAS400:

Entity With User Space.List Attributes.Get Sequential

Better error checking has been added to this function.

Get File Formats
File Creation Date And Time
File Text Description CCSID
Record Text Description CCSID

The file structure for the entity Get File Formats has been corrected, and three new fields were created to make this possible. The fields File Creation Date And Time and File Text Description CCSID have been added to the Header Attributes view. The field Record Text Description CCSID has been added to the List Attributes view.

Get File Member Description.All Attributes

The fields Member Name and File Attribute have been added to this view to correct the layout.

Get File Members.List Attributes.Get Sequential

The file format has been corrected to MBRL0200

Get AS400 User Id

This function now uses MOVEL to correctly return long User Id's.

Extended Object Attributes

This field has new values for enhanced filtering capabilities.


Enhancements to OBMAPI:

OBMAPI field lengths

Lengths have been changed for the following fields:

Field   New Length
Message ID   512
Message ID Filter   512
Message Text   varying
Message Type   512
Subject   256

OBMAPI field values

To fix APIs Read A Message and Return A Message Identifier, values have been added or renamed for the following fields:

Message ID - a new default value Null has been added

Message ID Filter - the value First Message has been renamed to Null and made the default value

Message Type - the value Interpersonal Message has been renamed to Null and made the default value

Retrieve Message Component

A new source code API has been added that returns all of the components of an e-mail message.

Mapi Text

The C format of this field was changed to allow for varying length fields. If you inherit from this field and want to have a fixed length for your field, add a C format Char triple to the field.


Enhancements to OBODBC:

API Bind Input Parameter
API Bind Input Parameter Char
API Column Attributes
API Extended Fetch
API Get Parameter Count
API More Results
Get Native Statement
API Parameter Data

The source code for these objects has been modified so that they now compile correctly.

ODBC Null Check

A new field, Null Check, with a scoped source code object, Check If Null, has been added. Inherit from this field to test whether a field has a null value. This field and its scoped source code API replace the older API calls Set Character Field To Null and Set Numeric Field To Null.


Enhancements to OBSEC:

Function Id
Function Group Code
User Group Code

These fields have been modified to accept mixed-case input so that Create User Interface for the Function, Function Group, and User Group entities work correctly with the AS/400.

User.Grid Maintenance Suite.Create User Interface

An edit point, 1 Post Update, has been added to this function.

User.Grid Maintenance Suite.Create User Interface.Create Panel

In the Add User panel, the User Id region overlapped the Add button. This region has been moved for a cleaner panel layout.

Function Group Set.By Second Parent Key
User Function Group.By Second Parent Key
User Functions.By Second Parent Key
User Group Function Groups.By Second Parent Key
User Group Functions.By Second Parent Key
User Group Set.By Second Parent Key

The virtual keys have been dropped from all By Second Parent Key views to make the Security Framework application build correctly.

Security Check

With pre-start jobs running on an AS/400, the Security Check function failed because QUSER, rather than the user id of the current user, was being used. This has been fixed so that Security checking works correctly whether pre-start jobs are running or not. Security Check now recognizes the correct user id.

User Function Group.Real Attributes.Security Check
User Group Function Groups.List Attributes.Copy User Group
Security Check

Language triples have been added to all of these functions for WinNTC.


Enhancements to OBATCH:

Title
Function Key Text

The names of these variables have been changed to Batch Title and Batch Function Key Text to avoid conflicts with names of regions on OBASE panels.

Format Job Details
Format Message Logging Parameter
Format Qualfied Name
Format Submit AS400 Command A
Format Submit AS400 Command B
Format Submit AS400 Command C

Syntax and spelling errors have been corrected; batch jobs now submit correctly.