home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 29 Fixes_o
/
29-Fixes_o.zip
/
fp6hints.zip
/
FP6HINTS.TXT
Wrap
Text File
|
1995-12-14
|
101KB
|
1,235 lines
These files contain useful product information about new function
delivered with the Version 2.0 Refresh. Some of this information
is not contained in the product documentation. A list of the
files and a brief summary of their contents is shown in the table below.
The files in their entirety follow the table.
BIDI.TXT - Bi-directional language attribute conversion
DATAJOIN.TXT - VisualGen interfaces with DataJoiner
DBCS400.TXT - OS/400 DBCS Support
ERADINT.TXT - Using VisualGen with TeamConnection
EZEUSRID.TXT - EZEUSRID can now be set in the Test General
Preferences Profile
EZExCCS.TXT - DLL has been replaced
FILEIO.TXT - File I/O options available from WorkGroup Services
GUINEWS.TXT - Describes new function available in GUI definition
HINTS400.TXT - OS/400 Performance Hints and Tips
IBMCOBOL.TXT - VisualGen generates VisualAge COBOL for OS/2
ITFFONT.TXT - Support added for Simplified Chinese fonts from ITF
ITFGUI.TXT - ITF and GUI runtime consistencies
MSGHELPS.TXT - Easier access to message helps is provided
PN78808.TXT - EZERRUN_SRV_LUW environment variable
REFFP6.TXT - What is the Refresh verses what is FixPack 6?
RESOURCE.TXT - CICS OS/2 resource table entries for 32-bit CICS
SAMPLE.TXT - Sample utility for establishing build environments
SQLID.TXT - Implicit SET CURRENT SQLID function
TABLE.TXT - Filling a VG table with data
TCNEEDS.TXT - Level of TeamConnection needed to work with Library
MSLs
***********************************************************************
bidi.txt
Bidirectional Attribute Conversion in VisualGen
-----------------------------------------------
1.0 BIDIRECTIONAL LANGUAGE ATTRIBUTE CONVERSION
________________________________________________
Arabic and Hebrew are bidirectional (BIDI) languages in which national
language characters are displayed right to left and Latin characters
are displayed left to right. BIDI language attributes describe the
way in which different types of characters (national language, Latin,
numeric, and special characters) are stored and displayed in character
string variables.
VisualGen(*) supports conversion of BIDI character strings from one
attribute specification to another. This conversion is supported on
OS/2(*) and AIX(*) systems. BIDI attribute conversion can be performed
in conjunction with or independently of code-page character conversion
or numeric item data format conversion. You can convert the character
strings in a record using an EZECONV special function call from the
test facility and generated C++(1) applications, or you can request
that character string parameters be converted on client/server calls
to remote server applications from test facility, GUI clients, and
generated C++ applications.
To request BIDI attribute conversion, the developer:
o Defines a conversion table that contains source and target BIDI
attribute specifications in addition to code page and system
type information
o Specifies the conversion table name on the EZECONV call or on
the CONTABLE option for the generation linkage table entry that
defines how a server application is called.
1.1 DEFINING CONVERSION TABLES FOR BIDIRECTIONAL ATTRIBUTES
____________________________________________________________
To build a conversion table with BIDI attribute specifications, use
the EZEBLDBF.EXE utility shipped with VisualGen Developer. Use the
following command to create a conversion table:
EZEBLDBF tname ct st csbcscp ssbcscp cBIDI sbidi
where:
TNAME Output file name with a file extension of CTB.
CT Client (source) system type
AI ASCII Intel(2), (Windows(3), OS/2)
AX ASCII UNIX(4) (AIX)
E EBCDIC
ST Server (target) system type
AI ASCII Intel (Windows, OS/2)
AX ASCII Unix (AIX)
E EBCDIC
CSBCSCP Client (source) system code page number. The code page
number is a 1- to 4-digit number of a code page for a
conversion table that is to be used to perform conver-
sion on an OS/2 system, or the AIX code page name of a
table to be used on an AIX system.
SSBCSCP Server (target) system code page number. The code page
number is a 1- to 4-digit number of a code page for a
conversion table that is to be used to perform conver-
sion on an OS/2 system, or the AIX code page name of a
table to be used on an AIX system.
CBIDI Client (source) BIDI attributes (8-digit hexadecimal
number)
A description of each digit in the BIDI attribute string,
starting from the left, follows:
DIGIT: DESCRIPTION:
1 Text manipulation. This attribute does not
affect BIDI string conversion. Set the value
to 8.
2 Text type
0 - Visual
1 - Implicit
3 Window orientation. This attribute does not
affect BIDI string conversion.
0 - Left to right
1 - Right to left
4 Text orientation
0 - Left to right
1 - Right to left
2 - Contextual
5 Numerals
0 - Nominal
1 - Passthru
2 - National
3 - Contextual
6 Symmetric swapping
0 - Off
1 - On
7-8 Character shape
00 - Display shaped
01 - Save shaped
10 - Nominal
11 - Initial
12 - middle
13 - final
14 - isolated
SBIDI Server (target) BIDI attributes (8-digit hexadecimal
number)
See the previous option, cbidi, for a description of
each digit in the BIDI attribute string.
The system types control the conversion of the numeric item format.
The code page numbers control code page translation for character
items when conversion is performed. The BIDI attributes control
BIDI attribute conversion for character items.
The following command builds a conversion table that supports Arabic
ASCII-to-EBCDIC conversion with BIDI attribute conversion for an
OS/2 client calling an MVS server:
EZEBLDBF CNAE1ARA AI E 864 420 81110000 80110000
The following command builds a conversion table that supports BIDI
attribute conversion on OS/2. Code page and numeric items conver-
sions are not performed because the same system type and code page
is specified for both source and target systems.
EZEBLDBF CNAA1ARA AI AI 864 864 81110000 80112000
1.2 USING CONVERSION TABLES WITH EZECONV
_________________________________________
The following example illustrates how to code the EZECONV special
function in an application:
MOVE "CNAA1ARA" TO CONVTAB;
CALL EZECONV MYRECORD,'L',CONVTAB;
EZECONV converts the data items in record MYRECORD from local (client)
format to remote (server) format as specified in conversion table
CNAA1ARA.CTB. To convert in the opposite direction, specify 'R'
instead of 'L' on the EZECONV call.
1.3 USING CONVERSION TABLES ON CALLS TO SERVER APPLICATIONS
____________________________________________________________
The following example illustrates a call to application MYSERVER as
coded in a client application. Two parameter records are passed on
the call.
CALL MYSERVER MYRECORD1, MYRECORD2
A linkage table entry for MYSERVER indicates to test, generation, and
workgroup services that MYSERVER is a remote server application. The
CONTABLE option on the entry specifies the conversion table to use to
convert the data in the parameter records on the call. The data is
converted from local (client) to remote (server) format before the
server is called, and again from remote to local format after the
server returns.
The following example of a linkage table entry specifies that MYSERVER
is a remote application called using the CICS client ECI middleware.
Parameter conversion is done as specified in conversion table CNAE1ARA.
:calllink applname=MYSERVER linktype=REMOTE remotecomtype=CICSCLIENT
contable=CNAE1ARA.
This example is applicable for the following client/server middleware
as well:
CICS OS/2 ECI (remotecomtype=CICS)
CICS Client ECI on OS/2 (remotecomtype=CICSCLIENT)
CICS/6000 DPL (remotecomtype=CICS)
Client Access/400 (remotecomtype=CA400)
APPC to IMS servers (remotecomtype=APPCIMS)
Refer to the description of linkage tables in the "Developing
VisualGen Client/Server Applications" manual for more information
on linkage specification.
1.4 SPECIAL CONSIDERATIONS USING CLIENT/SERVER MIDDLEWARE
__________________________________________________________
VisualGen client/server middleware contains licensed code format
conversion routines that do not support BIDI languages or attribute
conversion. VisualGen middleware is used when you specify one of
the following values for the remotecomtype option in the linkage
table: VG, LU2, APPC, NPIPE, TCPIP.
However, by following these guidelines, you can use VisualGen middle-
ware with BIDI conversion for test facility and C++ clients on OS/2
calling OS/2, MVS, or AIX servers:
o Specify English code page numbers (437 for OS/2; 850 for AIX;
037 for MVS systems) in the DNA.INI file and routing tables to
let the middleware convert the server name.
o Specify the conversion table name in the CONTABLE option in
the linkage table.
The parameter data is converted on the client system from local
(client) to remote (server) format before the server is called,
and again from remote to local format after the server returns.
---------------
(*) Trademark of IBM.
(1) Trademark of American Telephone & Telegraph Company.
(2) Trademark of Intel Corporation.
(3) Trademark of Microsoft Corporation.
(4) UNIX is a registered trademark in the United States and
other countries, licensed exclusively through X/Open
Company Limited.
***********************************************************************
datajoin.txt
Open Database Support
---------------------
DataJoiner is an IBM product that provides access to third party
databases and the ability to join unlike tables. It resides on
a RISC/6000 machine. It accepts SQL/6000 requests and directs the
requests to the appropriate system and database, intercepts the
response and returns to the requesting module as if the request
had been completely processed on the original machine. VisualGen
V2.0 interfaces to DataJoiner to gain access to third party data-
bases such as ORACLE and SYBASE.
***********************************************************************
dbcs400.txt
OS/400 DBCS Support
-------------------
The VisualGen DBCS data type is now enabled for the OS/400 target
environment.
Customers can now define VisualGen applications that contain DBCS
data item definitions (pure DBCS graphic type), and generate these
applications for the OS/400 target environment. Previously, double
byte customers were restricted to SBCS or MIXED data types for the
OS/400 target environment.
Customers will be able to define DBCS data types in records, maps,
and print maps. Customers will also be able to associate DBCS data
items in SQL records to the graphic data type in SQL table columns.
In addition, customers will be able to create 400 database files
that contain DBCS fields from DDS that VisualGen generates for the
OS/400 target environment.
Customers must use either the VisualGen V2.0 Refresh or VisualGen
V2.0 Fix Pack 6 in order to get MIXED and DBCS data type support.
Double byte customers who use this version of VisualGen can only
generate for OS/400 V3R6, because the design of the MIXED and DBCS
support requires the graphic COBOL datatype which is not avail-
able until RISC V3R6. Non-double byte customers will be able to
generate for OS/400 V3R1.
***********************************************************************
eradint.txt
LIBRARY INTEGRATION FUNCTIONS AVAILABLE WITH V2.0 REFRESH
_________________________________________________________
The following library integration functions are available
with the V2.0 Refresh:
o Enablement of the VisualGen Developer and VisualGen
Generator products to the TeamConnection product for
purposes of versioning, change control, and config-
uration management of VisualGen application compo-
nents.
VisualGen members defined in Developer Version 2.0
may be stored in and managed by TeamConnection, which
provides versioning and change control.
In the VisualGen Generator Version 2.0 product,
VisualGen application, GUI application, table, and
map group members may be generated using the config-
uration management (also known as build) facility of
TeamConnection. The outputs of generation are placed
under TeamConnection versioning and change control,
and are prepared for execution by the configuration
management facilities of TeamConnection.
o Option of using a common data definition for multiple
global data items.
When you save a global data item in the
TeamConnection database, the global data item's data
characteristics are stored in a way that allows them
to be shared by other global data items. A change to
the shared data characteristics then changes the data
characteristics of all global data items sharing
them.
When other announced IBM data definition products
become available, data definitions they store in the
TeamConnection database can be used by VisualGen
Developer instead of having to redundantly define
them in VisualGen Developer, or vice versa. In par-
ticular, definitions of data elements used in concep-
tual data modeling, physical database definition, and
higher level language data structure definition can
be used in the specification of VisualGen global data
items. Data characteristics of global data items
specified in VisualGen Developer are stored in the
TeamConnection database for use by other tools
enabled to TeamConnection.
TEAMCONNECTION ENABLEMENT
o A new MSL type is defined that is associated with a
TeamConnection version rather than with an OS/2 sub-
directory on a High Performance File System (HPFS)
drive. VisualGen members are directly stored as
objects within a specified version rather than as
files of the OS/2 subdirectory. The TeamConnection
parameters defining a TeamConnection version are used
to specify the "location" of the new MSL type.
Internal MSL member services are enhanced so that
VisualGen definition, test, and generation facilities
use the same interface to access members stored in
TeamConnection as is used to access members stored as
OS/2 files. However, the implementation of the
interface used within MSL member services will depend
on the type of MSL being accessed.
Since in the TeamConnection versioning mechanism, all
objects for a release are logically (but not neces-
sarily physically) contained in a version for that
release, it is not necessary to concatenate
TeamConnection versions. Thus, the new MSL type
cannot be contained in a named MSL concatenation
sequence.
Since TeamConnection MSLs cannot be concatenated, the
Advance utility/command would not be applicable to a
TeamConnection MSLs members. The promotion facili-
ties of TeamConnection would be used to perform the
same function.
o VisualGen applications, GUI applications, tables, and
map group members can be generated within the config-
uration management framework of TeamConnection. This
means that these members may be built (generated) in
a manner consistent with the way that 3GL source pro-
grams can be built (compiled and linked).
When invoked as part of a TeamConnection build,
VisualGen Generator Version 2.0 informs
TeamConnection of all inputs used for the generation,
of all of the outputs produced, and of what further
processing is required for each of the outputs
produced. TeamConnection uses this information to
prepare the outputs for execution and to determine
whether changes have been made that cause a previous
build to become out of sync.
This has the following consequences:
1. A developer can use the build function of
TeamConnection to cause generation of VisualGen
applications, GUI applications, tables, and map
group members if those members or the members on
which they are dependent have changed since last
built. The build function will also cause the
outputs of generation to be placed under
TeamConnection control, and to be prepared as
necessary for execution using TeamConnection
build facilities for those outputs. (The build
can also be started from the generator user
interface as it is in the current product.)
The mechanism for preparation of the outputs is
the same as if they were directly produced within
TeamConnection by the developer, rather than the
VisualGen mechanisms for preparing the generated
outputs for execution. Thus when preparation of
the outputs of generation must be performed on a
remote machine from where TeamConnection is
running, TeamConnection takes care of sending the
data required to the remote machine and of
placing the outputs of the preparation under
TeamConnection control.
There will not be any TeamConnection remote build
support for AIX, VSE or AS/400 until after the
first release of TeamConnection, so the current
VisualGen mechanism of preparation is used for
these target execution environments. This mech-
anism does not provide the capability for placing
the outputs of preparation under TeamConnection
control. However, the outputs of generation are
placed under TeamConnection control for all envi-
ronments. For a preparation request, they are
extracted from TeamConnection, then VisualGen
facilities are used to send them to the prepara-
tion environment and start the preparation tasks.
2. A developer may group VisualGen applications, GUI
applications, tables, map groups and other
non-VisualGen components (for example, all the
VisualGen applications and COBOL source programs
for a particular system) and build that group.
Groups may be nested within other groups. When a
build request is received for a group, only those
components of the group that changed, or had
dependencies that changed, will actually get
built.
A TEMPORARY RESTRICTION ON SAVING PARTS LINKED TO MULTIPLE VERSIONS
TeamConnection provides functions that cause a part to
have the same data in more than one version. These func-
tions are:
o Part link
o Work area refresh
o Add workarea to driver
o Integrate work area
o Link Releases
In VisualGen Developer, on the General Preferences Profile,
the Break Links Variable has been set on and cannot be
changed. The result of this is that all links to multiple
versions will be broken when a member is interactively
saved, renamed, changed, or deleted. This restriction
is temporary and will be removed in a future fixpack.
DATA INTEGRATION
When TeamConnection is used for management of VisualGen
members, global data items are stored using the format
specified by the TeamConnection database. The
TeamConnection database defines formats for the specifi-
cation of data elements that will be used to define rela-
tional and hierarchical databases and hierarchical data
access paths, once data definition tools enabled to
TeamConnection are available. VisualGen defines parts
of the TeamConnection database for extensions to these
specifications that are particular to VisualGen. Since
the generic portions of the TeamConnection database are
shared by the data definition tools and VisualGen, equiv-
alent data definitions will not have to be redundantly
specified and controlled/tracked for data definitions
meeting VisualGen constraints. When other tools change
these definitions, the changes will be picked up by
VisualGen Developer and will be recognized as changes
when determining whether a previous build needs to be
redone.
DOCUMENTATION OF NEW FUNCTION
_____________________________
Documentation of how to use the new functions is included
in the online helps and in the "Generating VisualGen
Applications" and "Commands and Utilities" online books.
You will also need to make considerable use of
TeamConnection interfaces and commands that are docu-
mented in the "TeamConnection Users Guide".
TEAMCONNECTION USERS GUIDE
The "TeamConnection Users Guide" should be read by
TeamConnection administrators for details on:
o Setting up the TeamConnection environment - family
server, build servers, clients
o Creating
- Users
- Authorization and notification lists
- Releases, drivers, workareas
- Drivers
- Development process
- Builders
o Moving parts through development phases
The "TeamConnection Users Guide" should be read by devel-
opers for details on:
o Creating workareas
o Freezing workareas
o Linking parts
o Processing defects and features
o Building parts and subsystems
GENERATING VISUALGEN APPLICATIONS BOOK
The "Generating VisualGen Applications" book has new
sections on using the build function of TeamConnection.
These new sections must be read by anyone who generates
or prepares applications in TeamConnection.
KEY INDICES FOR HELPS CONCERNING TEAMCONNECTION ENABLEMENT
1. library MSL
2. library MSLs, working with
3. New MSL
4. Library MSL Component of General Preferences Profile
5. importing into a library MSL
6. locking/unlocking a member (use help search)
KEY INDICES FOR HELPS CONCERNING GENERATION WITHIN
TEAMCONNECTION BUILD
1. validate library member
2. generate library member
3. Default options file for validate library member
4. Default options file for generate library member
5. Options file for validate library member
6. Options file for generate library member
7. Library search mask specification
KEY INDICES FOR HELPS CONCERNING SHARING DATA DEFINITIONS
1. global data items and shared data elements, working with
2. Data Item with Association
3. Change member association (Data Item)
4. Copy member
5. Delete member
6. Rename member
***********************************************************************
ezeusrid.txt
EZEUSRID added to the Test General Preferences Profile
------------------------------------------------------
EZEUSRID is now on the Test General Preferences Profile dialog.
Specifying EZEUSRID there will allow you to have it initialized
in ITF for the test run. See the help for Test General Preferences
Profile for more information.
***********************************************************************
ezexccs.txt
EZExCCS.DLL has been replaced
-----------------------------
The EZExCCS.DLL has gone away. This DLL needed to be available
to CICS OS/2 for ITF to do ECI calls to CICS OS/2. This DLL is
now called EZE2ECI.DLL.
***********************************************************************
fileio.txt
File I/O Options for Native OS/2 and CICS/6000 Applications
-----------------------------------------------------------
The WorkGroup Services for OS/2 and AIX provide support for file
I/O in the native OS/2 and CICS/6000 environments. The following
file I/O is supported:
Native OS/2
- Btrieve files with serial, relative, or indexed records
- VSAM2 files with serial, relative, or indexed records
CICS/6000
- Temporary Storage with serial or relative records
- Transient Data Queues with serial records
- VSAM files with serial, relative, or indexed records
Access to these files is through the normal VisualGen process
options.
***********************************************************************
guinews.txt
What's new in VisualGen GUI since Version 2.0
---------------------------------------------
This document is intended for advanced GUI users. It attempts
to explain some of the new GUI features that have been added
between Version 2.0 (available in July) and the Version 2.0
Refresh (or Fix Pack 6).
Most of these new functions are covered in the online helps.
You can get to the online helps for these new features and
other parts on the palette by selecting the Parts Palette link
from the General help for the GUI definition window.
1. Container Details View
This is a new visual part on the GUI palette in the lists
category. It's a very functional matrix control similar
to a spreadsheet and is designed to replace the old Table
part with the following additional functions:
- Support of data packets (or pages of data)
- Multiple row and column selection
- Various selection modes including Extended and Cell
Single select
- Horizontal scrolling and anchored scrolling support
(locked columns)
- Control over scrolling and feedback about scroll events
- Notification of user input conversion errors
Note that doing a quickform on an array item from a record
will now create a Container Details View instead of a Table
part. If you wish to still use the old Table part, you can
drop a Table part and rebuild its columns using the connec-
tion to the rows attribute.
2. Object Factory
This is a new non-visual part on the GUI palette in the models
category. It allows you to manufacture object instances at
runtime. This can be especially useful for manufacturing
predefined GUI applications on the fly. It means that you
can choose at runtime what GUI application to invoke without
having to hardcode your GUI application flow statically.
Please refer to the helps for recommended usage advice. Some
other classes that may be useful to manufacture are:
Point (Coordinate used by container details and
tables)
Rectangle (The initWidgetSize attribute of a window
is one of these)
AbtPushButtonView (Push button part)
Note that currently there is no way to add visual parts to
another visual part (such as a window or a menu) at runtime,
so manufacturing push buttons in the hopes that they can be
added to a menu on the fly is still not supported.
Example - multiple details views:
A very typical GUI application presents a list of records
from a database and allows you to double click on an item
and edit it using a details GUI.
If you wanted to open details GUIs on multiple records at the
same time, you had to create several copies of the GUI on
the free form surface with different part names for each since
each copy would translate into one instance of the window at
runtime. This way you could have as many details GUIs up
as you had created on the free form surface.
Here's how this can be done with the Object Factory:
- Drop an Object Factory part onto the free form surface of
the list GUI.
- Bring up the settings for the Object Factory and type in
the name of the details GUI in the instance class field.
- Tearoff the instance attribute of the Object Factory.
- Connect the defaultActionRequested event from the list to
the new action of the Object Factory.
- Connect any data you need to the promoted details item of
the instance tear off. Use an event to action connection
if possible since you don't want the data to be refreshed.
- You might want to add this instance of the details GUI to
an OrderedCollection so you can manage it or close it when
you're closing the list window.
Parent GUI and Logical Unit of Work considerations
GUIs that are on the free form surface of another GUI are
considered child GUIs of the GUI that invoked them. When a
top level GUI closes it closes all of its descendants. GUIs
that are manufactured using the Object Factory have no parent
and are considered top level GUIs.
Since the inheritsCommunicationsSession setting is based on
the parentage relationship, GUIs that were manufactured using
Object Factory would have always had to create their own
communications session. For that reason, the definition of
inheritsCommunicationsSession was extended to apply to GUIs
that where manufactured using Object Factory. That means that
they will use the communications session of the GUI that is the
parent of the Object Factory part even though they don't really
have a parent of their own from which to inherit the session.
Note that you are responsible for closing the manufactured GUIs
by sending them a closeWidget action if you want them to go away
when the GUI that manufactured them goes away.
3. Asynchronous processing
There is a new action that logic member parts (Callable Function,
Process and Statement Group) support. This action is called
executeDeferred: and it allows you to implement a polling loop
so you can periodically check the availability of resources such
as a message queue or the status of a server.
You can find documentation for this function under the Actions
link for each of the above parts in the Logic Member Parts
category on the palette.
Example - Invoke a credit check while entering transaction
information
Say you want to update the account of a certain customer. You'd
like to enter the customer name, retrieve the information about
this customer from the database, and while this information is
being retrieved, you'd like to key in the amount of the transaction.
Previously, this all had to happen serially which meant you had
to wait until you got the account information and then you could
enter the transaction amount.
Here's how you'd do it asynchronously using this new function:
- Get the customer ID
- Invoke a logic member to create an MQ message to do a credit
check
- Invoke a statement group using the executeDeferred: with a
5000 interval (5 seconds) to check to see if there is a
message that arrived for you on the message queue.
- In the statement group, you check the message queue and if
the message hasn't arrived, you invoke the statement group
again using a perform request structure (please refer to
GUI documentation on how to use this function) with the
statement group and the executeDeferred: as the action.
The argument would still be 5000 to indicate a 5 second
interval.
- You'll be free to continue entering your transaction infor-
mation but you should gray out your OK button so that you
can't commit the data until the credit check has returned.
- The statement group will wake up every 5 seconds to see if
a message has been received. If not, it can schedule itself
to run again. When the message is received, the statement
group can ungray the OK push button by using a flag or a
perform request structure.
4. Visibility attribute for GUI visual parts
You can now set the visible state of a window or any other
visual part prior to the window being created. The name of
the visibility attribute is mappedWhenManaged (this is the
X/MOTIF name) and it is available on all visual parts. Prior
to this change, you could invoke the hide and show actions
after the window was created but that was all the control you
had.
You also get notifications when the window is getting ready
to be hidden or shown and when it has completed being hidden
or shown. These notification events are called aboutToUnmapWidget,
aboutToMapWidget, unmappedWidget and mappedWidget respectively.
Example - Performance tip for re-opening complex GUIs
Complex GUIs take a while to open. This is due to the fact
that a lot of parts have to be created and connected properly.
However, some of the time is spent on creating the various
Operating System GUI controls that represent all the visual
parts on the GUI.
When you do a closeWidget action on the GUI, these OS controls
are destroyed and will need to be created again the next time
the GUI is opened.
You still need an event that would clear the data in the GUI
so the next time it comes up it has fresh data. This used to
be the aboutToCloseWidget event if you had done a closeWidget
on the GUI. However, due to the performance hit associated
with using that mechanism, you can choose to use the hide
and show actions instead of closeWidget and openWidget.
The aboutToUnmapWidget notification can be used in place of
the aboutToCloseWidget processing you've done before to clear
out the data. The aboutToMapWidget event should then be used
to do any startup setting of the data which would have been
done during aboutToOpenWidget.
5. Message boxes with translated button labels
The message:title:iconType:buttonType: action on GUI members
now uses the standard operating system message box which
should handle proper NLS translation of the push button labels.
The message:title:iconType:buttonType:helpFile:helpTopic:
action still uses a non-translated dialog box, so avoid using
it if you need the buttons to be translated.
6. GUI runtime connection trace facility
You can now turn on a connection trace in the GUI runtime envi-
ronment. The output of this trace is equivalent to what you'd
see in the test facility Trace Monitor window if you turned on
the GUI connections filter. The GUI runtime connection trace
output goes to the TSCRIPT.LOG file which is usually found in
the directory pointed to by your EZERTEMP environment variable.
Turn on the connection trace by typing the following command
at an OS/2 command prompt after the GUI runtime environment
is running:
EZE2RUN PROFILE ON
Turn off the trace using:
EZE2RUN PROFILE OFF
You should exercise good judgement on when you want to start
and stop tracing since you're likely to get more entries than
you care to look at.
That's all for now but be on the lookout for more information on
new GUI functions and advanced techniques coming soon.
***********************************************************************
hints400.txt
OS/400 Performance Hints and Tips
---------------------------------
This file describes how to reduce the amount of memory required
by Client Access/400 Optimized for OS/2 and still allow the
Distributed Program Call APIs to function such as when VisualGen
VisualGen uses it during VG/Client runtime. When these recommend-
ations are applied, VisualGen Clients and Client Access/400 run
well on an OS/2 16meg 486/33 system.
1. Modify CONFIG.SYS
- Remove or REM out the following lines: (Note the // are
comments describing the function of these lines. They
do not appear in CONFIG.SYS)
- CALL=F:\CAOS2\PRPP2.EXE F:\CAOS2 // Update locked file processor
- RUN=F:\CAOS2\DMISL.EXE // DMI Service Layer
- IFS=F:\CAOS2\CWBBS.IFS // Network drive file system
- DEVICE=F:\CAOS2\CWBNPRDR.SYS // Network printer redirector
- IFS=F:\CAOS2\CWBNPFS.IFS // Network printer file system
- RUN=F:\CAOS2\CWBDAEMN.EXE // Network daemon
- IFS=F:\CAOS2\EHNSFL0.DLL // V2 network drive file system
- DEVICE=F:\CAOS2\EHNPCPDD.SYS // DOS/Windows comm support
- DEVICE=F:\CAOS2\EHNPCVDD.SYS // DOS/Windows comm support
- It is highly recommended to add the following statement:
SET RESTARTOBJECTS=STARTUPFOLDERSONLY
- You'll need to reboot after step 1.
2. Modify CASERV.CMD file located in the CAOS2 directory
- Remove or REM out the following lines: (Note the // are
comments describing the function of these lines. They
do not appear in CASERV.CMD)
- CWBLOG.EXE START // Service history logging
- STARTRTR.EXE /G // 16-bit router
- VDMSERV.EXE /Z // DOS/Windows box communication server
- CWBBSTRT.EXE // Network drives daemon
- DETACH CWBMGD.EXE // Client Management daemon
3. Stop CM Attach Manager
- Go to the Client Access Folder -> Client Access/400
Components folder -> Communications Manager -> Subsystem
Management. Select APPC attach Manager, select Service
from the action bar, select Stop Normal
- Deactivate unneeded links to other systems
4. Other possible changes
- Remove any unnecessary device drivers from CONFIG.SYS
- Use LAPS or MPTS configuration to remove unneeded protocol
stacks. DPC only requires 802.2 for SNA connections.
- Remove DOS/Windows box device drivers from CONFIG.SYS, if
DOS or Windows support is not required. You can also re-
move this by using OS/2 selective install feature. Also,
Also, you can set PROTECTONLY=YES. This will return about
a 1M to OS/2 instead of reserving it for DOS applications.
rem // DOS stuff not needed if PROTECTONLY=YES...
PROTECTONLY=YES
rem SHELL=D:\OS2\MDOS\COMMAND.COM D:\OS2\MDOS /P
rem FCBS=16,8
RMSIZE=0
rem DEVICE=D:\OS2\MDOS\VW32S.SYS
rem DEVICE=D:\OS2\MDOS\VWIN.SYS
rem DEVICE=D:\OS2\MDOS\VW32S.SYS
rem DEVICE=D:\OS2\MDOS\VVGA.SYS
rem DEVICE=D:\OS2\MDOS\VXGA.SYS
- Preallocate the SWAP file:
The initial size of the OS/2 swap file can be set in the
CONFIG.SYS file. It has a default of 2048. Depending on
the amount of memory on your system and the number of appli-
cations you normally run, the final size of the swap file
will be considerably larger. Setting the initial size so
that it is relatively close to the final setting prevents
resizing the swap file.
Action: Find the swap file entry in your CONFIG.SYS file
SWAPPATH=d:\OS2\SYSTEM 2048 2048
and change it to your final setting, for example
SWAPPATH=d:\OS2\SYSTEM 2048 16048
- Minimize some OS/2 settings: (Note the // are comments
describing the function of these lines they do not appear in
CONFIG.SYS)
IFS=D:\OS2\HPFS.IFS /CACHE:64 //minimize disk cache to 64K
BUFFERS=30 //minimize file buffers
rem DISKCACHE=D,LW //DISKCACHE is a FAT only setting
rem BASEDEV=IBM1FLPY.ADD //not needed on PS/2 micro channel PC
- Remove or REM Network protocols and device drivers that aren't
needed.
For example...
rem // NetBios
rem DEVICE=D:\IBMCOM\PROTOCOL\NETBEUI.OS2
rem DEVICE=D:\IBMCOM\PROTOCOL\NETBIOS.OS2
rem // Lan Requester
rem DEVICE=D:\IBMLAN\NETPROG\RDRHELP.200
rem IFS=D:\IBMLAN\NETPROG\NETWKSTA.200 /I:D:\IBMLAN /N
rem RUN=D:\IBMLAN\NETPROG\LSDAEMON.EXE
rem // CID install
rem DEVICE=E:\ODDCS\SRVIFS.SYS
rem IFS=E:\ODDCS\SRVIFSC.IFS *
rem // TCP/IP
rem RUN=E:\TCPIP\BIN\CNTRL.EXE
rem IFS=E:\TCPIP\BIN\NFS200.IFS
rem DEVICE=E:\TCPIP\BIN\VDOSTCP.VDD
rem DEVICE=E:\TCPIP\BIN\VDOSTCP.SYS
rem RUN=E:\TCPIP\BIN\VDOSCTL.EXE
rem DEVICE=E:\TCPIP\BIN\SNACKETS.SYS
rem DEVICE=E:\TCPIP\BIN\SXIFNDIS.SYS
- You'll need to reboot after step 4 changes are applied.
- There's a good book available called Performance Plus Version 3,
which describes performance tuning for OS/2 Warp. It is available
as an IBM publication via SLSS, pub order number SR28-4641-01.
- For additional VisualGen performance tuning information refer
Performance Techniques in the "Designing and Developing
VisualGen Applications" manual.
***********************************************************************
ibmcobol.txt
Generation of VisualAge COBOL for OS/2
--------------------------------------
VisualGen now provides the option of generating VisualAge COBOL for
OS/2 instead of MicroFocus COBOL for execution in the CICS OS/2
environment. VisualAge COBOL is 32-bit COBOL and therefore provides
performance improvements over the 16-bit MicroFocus COBOL. 32-bit
COBOL will run with 32-bit CICS for OS/2 when it becomes available.
***********************************************************************
itffont.txt
ITF support added for Simplified Chinese fonts
----------------------------------------------
In the past, the Interactive Test Facility (ITF) default DBCS
monospaced font was always Mincho. However, on certain DBCS
systems, the Mincho font is not available. This was especially
a problem for VisualGen support of Simplified Chinese.
So, ITF has been enhanced to read the EZERFIXEDFONT environment
variable on DBCS machines when determining what monospaced font
to use. If the environment variable is not set, then Mincho is
still assumed to be the default DBCS font.
VisualGen Developer editors already used the EZERFIXEDFONT envi-
ronment variable to specify the face name of a monospaced font.
This enhancement added ITF to the list of places that this envi-
ronment variable is used within VisualGen.
If the user sets the EZERFIXEDFONT variable correctly to the
face name of a monospaced font (on Simplified Chinese systems,
it should be set to the DBCS equivalent of 'SONGTI1' font), then
ITF will allow the user to choose between several sizes of that
font on the Test Monitor font pull-down and the Set Testpoints
dialog font pull-down. Thus, DBCS characters will be displayed
appropriately.
This environment variable is intended to be used when the default
font is not installed on the machine. It is not intended to over-
ride the default with a preferred font.
***********************************************************************
itfgui.txt
ITF/GUI runtime consistency
---------------------------
In order to make ITF and GUI runtimes consistent, control of the
execution in ITF has changed. Break on event entry and the use
Alt SysRq has been added. See the help for controlling the test
run for further detail on the new options.
***********************************************************************
msghelps.txt
Easier Access to Message Helps
------------------------------
You can now get to the online help for any EZE, CSO, or FCE message,
without needing to have the message actually be issued. To do this,
select Help from the menu bar, and then select Help contents. Scroll
to the bottom of the help contents, and you will see an entry for
each of the message prefixes. Just click on the '+' to expand the
full list of messages.
This function is available from any Definition panel that has a
monochrome product icon in the upper left corner. It is NOT avail-
able from ITF, GUI definition, or the generation notebook.
***********************************************************************
pn78808.txt
APAR PN78808 - EZERRUN_SRV_LUW environment variable
---------------------------------------------------
PN78808 adds support for dropping the VisualGen middleware
communications connection via the EZERRUN_SRV_LUW environment
variable. This environment variable is only applicable to
remote client/server calls via the VisualGen middleware
(remotecomtype = VG,APPC,TCPIP, or NPIPE).
USAGE: Set the environment variable EZERRUN_SRV_LUW=1 prior
to starting GUI Runtime, ITF, or Workgroup Services application.
RESULTS: IMMEDIATELY after EVERY remote call using the VisualGen
middleware, a COMMIT is issued and the communications connection
is terminated. The commit takes place before returning control
to the client application. Therefore, NO ROLLBACK capability is
possible from the client. Do not use with UPDATE processing or
with client unit of work control.
***********************************************************************
readme.txt
These files contain useful product information about new function
delivered with the Version 2.0 Refresh. Some of this information
is not contained in the product documentation. A list of the
files and a brief summary of their contents follows:
BIDI.TXT - Bi-directional language attribute conversion
DATAJOIN.TXT - VisualGen interfaces with DataJoiner
DBCS400.TXT - OS/400 DBCS Support
ERADINT.TXT - Using VisualGen with TeamConnection
EZEUSRID.TXT - EZEUSRID can now be set in the Test General
Preferences Profile
EZExCCS.TXT - DLL has been replaced
FILEIO.TXT - File I/O options available from WorkGroup Services
GUINEWS.TXT - Describes new function available in GUI definition
HINTS400.TXT - OS/400 Performance Hints and Tips
IBMCOBOL.TXT - VisualGen generates VisualAge COBOL for OS/2
ITFFONT.TXT - Support added for Simplified Chinese fonts from ITF
ITFGUI.TXT - ITF and GUI runtime consistencies
MSGHELPS.TXT - Easier access to message helps is provided
PN78808.TXT - EZERRUN_SRV_LUW environment variable
REFFP6.TXT - What is the Refresh verses what is FixPack 6?
SAMPLE.TXT - Sample utility for establishing build environments
SQLID.TXT - Implicit SET CURRENT SQLID function
TABLE.TXT - Filling a VG table with data
TCNEEDS.TXT - Level of TeamConnection needed to work with Library
MSLs
***********************************************************************
reffp6.txt
What is the Refresh verses what is Fix Pack 6?
----------------------------------------------
The function delivered via this media is being delivered to customers
in two different ways. Those customers who have already purchased
VisualGen V2.0 are receiving Fix Pack 6. New purchases of VisualGen
V2.0 are fulfilled with the VisualGen V2.0 Refresh. What is the
difference? The only difference is the delivery mechanism. The
resulting functional content of the product is identical. Customers
receiving the V2.0 Refresh CD do not have any need to install Fix
Pack 6. Customers installing Fix Pack 6 do not have any need to
obtain the V2.0 Refresh CD. Future fix packs, beginning with fix
pack 7 will be able to be applied to your copy of the product indep-
endent of which of these mechanisms you used to obtain your copy.
***********************************************************************
resource.txt
CICS OS/2 resource table entries for 32-bit CICS
------------------------------------------------
CICS OS/2 resource table entries vary between 16-bit CICS and
32-bit CICS. Therefore, an update is required to the "Installation
Guide for VisualGen WorkGroup Services for OS/2" manual. Chapter
5 contains a section called "Preparing to Import VisualGen Work-
Group Services for OS/2 Table Entries". That section should be
replaced with the following. Note that there are only minor changes.
The changes are flagged with the vertical bar (|).
Preparing to Import VisualGen Workgroup Services for OS/2 Table Enries
CICS OS/2 reads and writes import and export files from the
file resource FAAAEFIE, which is an entry in the file control
table (FCT).
To import the CICS OS/2 resource table entries for VisualGen
Workgroup Services for OS/2, do the following:
1. Back up the contents of the current import file by doing
the following:
a. Switch to or start an OS/2 window or and OS/2 full
screen.
b. Change directories to your CICS data directory.
c. Copy the file by entering the following command at
the OS/2 command prompt:
COPY FAAAEFIE.BTR FAAAEFIE.BAK
Where FAAAEFIE.BAK can be any name you choose.
2. Replace the contents of the current import file with the
file containing the VisualGen Workgroup Services for OS/2
| resource table entries by typing one of the following
commands at the OS/2 command prompt:
| For 16-bit CICS versions:
COPY C:\VGWGS2\ELAEXOS2.BTR FAAAEFIE.BTR
| For 32-bit CICS versions:
| COPY C:\VGWGS2\ELAEX300.BTR FAAAEFIE.BTR
***********************************************************************
sample.txt
Sample Utility for establishing build environments
--------------------------------------------------
The sample utility, ezebdenv.cmd, can be used to establish build
environments for a list of members. This allows you to create
build environments from a batch command without going through
the Generation user interface for each member. ezebdenv.cmd is
installed in the samples directory of the VisualGen Developer
product. Type ezebdenv without any arguments for syntax and more
information.
***********************************************************************
sqlid.txt
Set Current SQL ID function
---------------------------
In order to aid in defining, testing and generating applications
with unqualified table names, the set current sqlid function has
been added. Before each test run, application validation, applic-
ation generation, SQL record retrieve or compare a 'SET CURRENT SQLID'
statement will be issued against the database to set the current
ID being used. This in turn will set the implicit qualifier.
This statement is currently only honored by DB2 MVS. If the data-
base you are connected to does not allow the SET CURRENT SQLID
statement, you will receive an informational message telling you
that it is not supported.
The ID used in the SET CURRENT SQLID statement comes from either
the Database Preferences Profile or the environment variable
EZERSQLID (also displayed on the Database Preferences Profile).
Note that if your DB2 system does not allow the SET CURRENT SQLID
function, you can also set the table qualifier by connecting with
a userid and password, if the DB2 system allows it.
For more information see the help for the Database Preferences
Profile.
***********************************************************************
table.txt
Filling with data a VG table
----------------------------
There are two types of table contents. Definition contents and
runtime contents. The definition contents can only be modified
through the table definition facility.
The runtime contents work differently between ITF and GUI run-
time. In ITF, a copy is created for each application and the
contents are not visible by another application.
In GUI runtime, the contents are shared between all the running
GUI applications. This means that any change you make in one GUI
application will show up in another. However, no signalling will
happen so you won't automatically see the new contents of the data
in another application unless you force the window to refresh the
display from the table contents.
***********************************************************************
tcneeds.txt
TeamConnection pre-req for Library MSLs
---------------------------------------
In order for Library MSLs to work properly within VisualGen,
Fix package 1 of TeamConnection must be applied.