------------------------------------------------------------------- VisualAge Generator Templates V3.1 Fixpak 3 ------------------------------------------------------------------- System Self-extractible files References OS/2 mdl31v32.exe MD 310 OS2 V03 W/NT mdl31v3n.exe MD 310 WNT V03 ------------------------------------------------------------------- MDLREAD.TXT Topics ------ - What's new - Procedures - Notes, Limitations and Known Problems ------------------------------------------------------------------- WHAT'S NEW ------------------------------------------------------------------- Before installing VisualAge Generator Templates 3.1 fixpak 3: - You should have installed VisualAge Generator 3.1 fixpak 3 (which includes VisualAge Generator Templates 'Standard Functions' feature), but it is not necessary to load VisualAge Generator Templates 'Standard Functions' feature in your image. - You should have installed VisualAge Generator Templates 3.1, but it is not necessary to load the installed feature in your image. Main Enhancements and Fixed Bugs in Fixpak 3 ------------------------------------------------------------------- - Relational Import . DB2/VSE support . DB2/Sun-Solaris support . DB2/400: The AS/400 physical and logical files can be imported. . Escape characters ('_', '%') in DB2 names are properly managed. - Information Model and User Interface . Business Object definition: It is now allowed to create several join conditions based on the same 'source' and 'target' column names, provided that their source tables and/or target tables are different. . Data Element definition: Authorized values for capacity and precision now go from 0 to 99,999,999,999 . DBCS: SBCS values are now processed as SBCS strings, even coming from DBCS-enabled attributes and parameters. . It is now allowed to map a concurrency management column (same behaviour in the generated app as for a read-only field). - Generated Servers . The atomic servers are not called by the umbrella when the corresponding option cannot be performed (3-tier generation). . The numeric value of the empty rows that are returned by a list are set to 0 . Update process exits when an error is detected in the server control hook. . DBCS High and Low Value are generated properly. . Concurrency management on the Insert atomic server: The timestamp are read after a successful insert . The record that contains the key of the target table of a join condition is generated, even for n-column keys . The message table is now generated as 'RAD' . ROWID type is taken into account and generated as CHAR(18) . New hooks after the SQL Process to process/cancel a SQL error - Generated Smalltalk Gui Client . Business Object, Resource Object and List Manager are generated with a different icon . The error handling field description includes a new attribute: isReadOnly That allows to dynamically turn a field updatable or read-only. . key: method is renamed isKey: (key: method becomes obsolete). . Timestamp are displayed and stored correctly. . Updatable list: The collection of all the read items and the collection of the items in the current page are 2 separate ones and their contents are updated correctly. . Instance Register: The existence of the object was checked before retrieving it in the collection. In some cases, the object could be removed between the 2 subsequent calls. Now we try to retrieve it, then test if it's here or not. . Zoom method: Becomes customizable ('HOOK'). . Help List: The client classes take into account the additionalHelpField parameter. The corresponding collections, getter and setter are generated. . MdlIsUpdated flag is properly managed when filling a list. . The 'Control Location' is taken into account appropriately (it makes it possible not to generate checks on the client). - Generated Layout . The New action is always laid-out . System error view: The "application name" label is renamed "program name". . The releaseWidget method becomes generic to include all user-added menu items. . DBCS characters in menu labels are ignored when computing mnemonics. - Generated TUI . 'Top' invokes correctly SETINQ1 (instead of SETINQ). - Generation . The assignments of sub-parts to instance variables are preserved when the part is re-generated. - Customization . The Information Model convenience API is now embedded in the generators: this allows its customization (for example: in order to generate customized help list). Main Enhancements already Included in Previoux Fixpak ------------------------------------------------------------------- - New parameters and new functions in the generated applications See HTML file : 'V31fix.htm' (installed in the 'mdlbooks' sub-directory) - Relational database import via IXF files See HTML file : 'V31fix.htm' (installed in the 'mdlbooks' sub-directory) - Relational database import function . The import window allows you to create a new application . Import from DBCS Database: strings are imported and stored in the appropriate format (SBCS or DBCS) . Following SQL types are now imported and taken into account at generation time: RAW, LONG RAW, LONG VARGRAPHIC, LONG VARG . The REAL SQL type (Oracle) is now imported but is not taken into account at generation time - VAGT UI: . New menuitems about VAGT workspace: 'Load' and 'Editions...' (same functions as for VAGT entities) . New menuitem about VAGT entities and workspace : 'Move...' (in another application) . BusinessObject mapping: the Column Name is now displayed . Error management: "*** error ***" displayed in erroneous fields . Error messages: each message has an associated code, which is displayed in the transcript window - QuickStart . Takes into account the DBMS corresponding to VAGen preferences . Checks the workspace identifier ------------------------------------------------------------------- PROCEDURES ------------------------------------------------------------------- 1. Installation ------------------------------------------------------------------- To install VisualAge Generator Templates fix: a) Set the current directory to the directory that contains the product installation files corresponding to your operating system. b) Run 'setup' (for Windows/NT) or 'install' (for OS/2). On Windows/NT: if you have previously set the MDLROOT variable as a user variable, you should remove it, as it is now initialized automatically as a system variable: - Open the "Control Panel" - Open the "System" icon - In the opened "System Properties" notebook, select the "Environment" page - In the "User Variables" list, select MDLROOT - Activate the appropriate push-button to delete it. 2. Load and start VisualAge Generator Templates fixpak feature ------------------------------------------------------------------- Load VAG Templates in your environment by selecting Visual Age Organizer -> Options -> Load/Unload Features and choosing 'VAGTemplates with Customizing Support + Fixpak 3' The load function will ensure loading of the prerequisites: VisualAge ODBC Database and DB2 CLI Database. 3. Upgrading VAGT 2.2 Refresh to VAGT version 3.x ------------------------------------------------------------------- The VAGT 3.x repository is stored in VAG library. A migration tool allows you to upgrade VAGT 2.2 Refresh (and 3.0 alpha), with specifications stored in files, to VAGT 3.x (with specifications stored in VAG library). Procedure : - Ensure that the VAGT 2.2 configuration file, MDL.CNF, is located in the VASTROOT directory: if it is located elsewhere, copy it into the VASTROOT directory - Launch the Migration tool: VA Organizer -> Tools -> VAGT Tools -> Migrate Workspace CAUTION: - If you migrate several workspaces that contain instances with the same identifier but identifiying different objects, and if you want to preserve each description, you must after migration of the first workspace in an application, make a version of this application and unload it. Then, you can migrate the second workspace specifying a new application. 4. Parameterizing DB2 Database Import ------------------------------------------------------------------- a) Use of SYSSCHEMA keyword (DB2CLI.INI in your DB2 directory) SYSSCHEMA = sysschema This keyword indicates an alternative schema to be searched in place of the SYSIBM (or SYSTEM, QSYS2) schemas when the DB2 CLI and ODBC Catalog Function calls are issued to obtain system catalog information. Using this schema name, the system administrator can define a set of views consisting of a subset of the rows for each of the following system catalog tables: +----------------------------------------------------------------+ |DB2 for |DB2 for |DB2 for | |DB2 for | |common server|MVS/ESA |VSE and VM |OS/400 |OS/400 | |-------------+----------------+-----------+----------+----------| |SYSTABLES |SYSTABLES |SYSCATALOG |SYSTABLES |SYSTABLES | |SYSCOLUMNS |SYSCOLUMNS |SYSCOLUMNS |SYSCOLUMNS|SYSCOLUMNS| |SYSINDEXES |SYSINDEXES |SYSINDEXES |SYSINDEXES|SYSINDEXES| |SYSTABAUTH |SYSTABAUTH |SYSTABAUTH | |SYSCST | |SYSRELS |SYSRELS |SYSKEYCOLS | |SYSKEYCST | |SYSDATATYPES |SYSSYNONYMS |SYSSYNONYMS| |SYSCSTCOL | | |SYSKEYS |SYSKEYS | |SYSKEYS | | |SYSCOLAUTH |SYSCOLAUTH | |SYSREFCST | | |SYSFOREIGNKEYS | | | | | |SYSPROCEDURES(1)| | | | | |SYSDATABASE | | | | +----------------------------------------------------------------+ Note: (1) DB2 for MVS/ESA 4.1 only. For example, if the set of views for the system catalog tables are in the ACME schema, then the view for SYSIBM.SYSTABLES is ACME.SYSTABLES; and SYSSCHEMA should then be set to ACME. Defining and using limited views of the system catalog tables reduces the number of tables listed by the application, which reduces the time it takes for the application to query table information. If no value is specified, the default is: - SYSCAT or SYSIBM on version 2.1 of DB2 for common server - SYSIBM on versions prior to 2.1 of DB2 for common server, DB2 for MVS/ESA and OS/400 - SYSTEM on DB2 for VSE and VM - QSYS2 on DB2 for OS/400. b) Use of VAGTSys variable (DB2 for MVS/ESA only) DB2 for MVS/ESA allows you to create views for system tables with a parameterized table name (e.g. DSNCOLUMNS in place of SYSCOLUMNS). The VAGT Relational Import function is able to use such parameterized names: you just have to initialize VAGTSys variable in the DB2CLI.INI file, according to your parameterization (e.g. VAGTSys = DSN). If no value is specified, the default is: SYS ------------------------------------------------------------------- NOTES, LIMITATIONS AND KNOWN PROBLEMS ------------------------------------------------------------------- - Installation: After the load of the VAGT feature, the VisualAge Organizer may have lost the current user. Ensure to set a current user before using VAGT feature (otherwise the menu items of the VAGT Tools menu will stay disabled). - BiDi: Although VAGT is able to provide right-to-left organized views and subviews, it depends on the abilities of VisualAge Smalltalk BiDi feature for internal positionings: . menus inside a menu bar . columns inside a container . tabs inside a notebook. - Generators: The '4GL' Client Logic Style (Workspace parameter) is not implemented in Smalltalk-oriented generators. - Database management: When connecting to database, you may have database connections left open (an error -1445 appears), you should clean up SQL database connections so you can execute the following code to clean up the SQL interface: SQLRequester disconnectAll (Be aware that this will also roll back all units of work.)