logo ctop
Download area direct access
trav shim
Your migration review – the BDS / Genero check-list
Are you ready for Genero?

‘C’ functions
If ‘C’ functions are used in the I4GL application, they will need to be updated. ‘C’ functions that interact with the user will need to be rewritten in BDL. In the same manner, ‘C’ functions using libcurses features cannot be used. They will need to be rewritten using BDL. Other functions can be maintained in the first migration step. By using ‘C’ functions in an application, the portability of this application is reduced. It is recommended to reduce calls to ‘C’ functions to their strict minimum.

FGL_LASTKEY / FGL_KEYVAL / FGL_GETKEY functions
FGL_LASTKEY, FGL_KEYVAL and FGL_GETKEY functions are supported for compatibility reasons and can be used in BDL applications. It is highly recommended to review parts of code that call these functions.

Using INPUT ARRAY to display arrays
In many I4GL applications, developers have used INPUT ARRAY statements with hidden fields to work around DISPLAY ARRAY statement defects. By using such workarounds, developers were forced to write a lot of unproductive code and emulate all permutations of end-users actions, hiding the INPUT ARRAY features to make it resemble a DISPLAY ARRAY. Four J’s has corrected and enhanced the DISPLAY ARRAY statement so that workarounds like this are no longer needed. To get the right graphical output, any such workarounds will need to be reworked.

Menus
I4GL menus may look good in ASCII mode but will look less attractive in graphical mode. Most of the time, menu functions need to be rewritten for this reason. This is purely an aesthetic consideration and if acceptable as such, needs no particular treatment.

FUNCTION definitions
The I4GL compiler allows the developer to define a function with the same name several times. Depending on the I4GL version, the first or the last FUNCTION definition in the stack will be used. The result cannot be guaranteed. Four J’s imposes a stricter regime and does not allow loose coding of this nature. The compiler generates an error when a FUNCTION is defined more than once.
ERROR(-6203):Module : The function has already been defined in module

FUNCTION arguments definitions
The I4GL compiler does not take into consideration how many arguments are passed to a function and how many returning arguments are defined. Four J’s linker generates an error.
ERROR(-6200):Module 'Module Name': The function .(,) will be called as (,).
External file management
I4GL does not include external file management commands. To work around this defect, C functions are used. The BDL language now includes channel commands that can be used to read, write or append data from/to external files. ‘C’ functions can be maintained in the first migration step but the update of these ‘C’ functions to BDL functions need to be scheduled.

P-Code / C-Code
I4GL allows developers to choose between generating P-Code and C-Code. Four J’s compilers generate P-code only and performance testing proves it to provide equivalent performance to I4GL C-code.

Informix only
With Four J’s products, the database engine is no longer restricted to Informix. If you plan to run your application against other database engines, then be sure to verify against Informix specific SQL statements and functions.

FORM files (.per files)
To enable the support of heterogeneous client devices from a single source code, FORM file logic will need to be revisited. I4GL FORM formats are still supported, but they have limited graphic capabilities. Not every FORM has to be revisited though. Choose the most important data entry forms for ergonomic rework first. Less significant FORM files can be compiled ‘as is’ to save time.

FGL_GETKEY
The FGL_GETKEY function is no longer supported in Genero. Code segments calling this function need to be rewritten in a more abstract way.

DISPLAY … AT … statement
The DISPLAY AT statement displays a variable at a given position. This given position is defined on a character-by-character grid. As Genero forms are no longer defined on a character-by-character mode, this command can no longer be used. The command is still supported for compatibility reasons but the position on the display is no longer ensured. DISPLAY AT commands must be replaced by other commands like DISPLAY TO.

ON KEY statements / MENU COMMAND KEY statements
The ON KEY statement defines a shortcut key in a dialog. Genero introduces the MVC (Model/View/Controller) concept in 4GL. The ON KEY command is still supported and can be kept during the first phase of the migration. But the ON KEY and the COMMAND KEY must be replaced by the ON ACTION statement.

Graphical Menus
‘Beauty is in the eye of the beholder’ as the saying goes. Genero offers new ways of displaying menus and by using style sheets; changing the look of a menu has never been easier.

- 8005 Error number
The -8005 error number is displayed at compilation time when features that are no longer supported (deprecated) are used. This tip helps you to find out the last deprecated features that are still in the code after the migration.


PROBLEM WITH PRE-REQUISITES?
FULFILL PRE-REQUISITES?
IN DOUBT?
   |    Send2Friend  Send2Friend    |    My account  My account    |    Employment    |    Intranet    |    Contact us    |    Site map    |    Legal    |    Home