Genero 2.21 – Early Access Program now open

Irving, Texas – October 23, 2009Four Js Development Tools is pleased to announce the Genero 2.21 Early Access Program (EAP) today October 23, 2009. See “How to subscribe” section. This important release brings significant improvements to the Graphical User Interface and the application server, and includes the support of the 42m module specification with the IMPORT instruction.

Genero 2.21

New features

  • Modules
    Modules are the major feature in Genero 2.21.  Modules are a straightforward way to define dependencies, allowing program compilation without a link phase. They support the 42m module specification via the IMPORT instruction. So as of Genero BDL 2.21, it will be possible to define module dependencies with the IMPORT FGL instruction enabling elements such as functions, variables, user types and constants to be shared.

    IMPORT FGL myutils
    IMPORT FGL account
      CALL myutils.init()
      CALL set_account("CFX4559")
  • New database drivers
    The following database drivers are now supported with the Genero 2.21 version:

    • dbmads380 for a Genero db 3.81 client.
    • dbmesmA0 for an Easysoft 1.2.3 client to connect from Unix to Microsoft SQL Server.
    • dbmpgs84X for a PostgreSQL 8.4 client supporting the INTERVAL datatype.
  • Widgets management
    • Some new style attributes have been added for
      • the window : actionPanelButtonTextAlign, ringMenuButtonTextAlign.
      • the image : alignment.
    • Support for SpinEdit new attributes: valueMin and valueMax to set a range on the SpinEdit.
  • Numeric keypad decimal separator
    The decimal separator key of the numeric keypad now follows the application settings for numeric data formatting defined by DBMONEY  or DBFORMAT. The decimal separator defined by one of these environment variables will be used when the dot key of the numeric keypad is pressed.
  • Automatic display of BYTE images
    Image data contained in a BYTE variable can now be displayed automatically by Genero when you use a simple DISPLAY BY NAME, DISPLAY TO, or when the BYTE variable is used by a dialog instruction.
  • Paged DISPLAY ARRAY supports undefined initial row count
    When using a Paged DISPLAY ARRAY, it was mandatory to provide the total number of rows in the result set, requiring a SELECT COUNT(*) before executing the dialog instruction. The dialog now supports an undefined number of rows, by using the value -1 in the COUNT dialog attribute.

                id INTEGER,
                fname CHAR(30),
                lname CHAR(30)
            END RECORD
      DATABASE stores7
      OPEN FORM f1 FROM "custlist"
              SELECT customer_num, fname, lname FROM customer
      OPEN c1
  • Static SQL column definition supports DEFAULT clause
    The syntax of the CREATE TABLE and ALTER TABLE Static SQL statements allows the DEFAULT clause in column definitions.

    CREATE TABLE item ( num SERIAL, name VARCHAR(50) DEFAULT '' 
    NOT NULL )
  • PostgreSQL supports TEXT/BYTE
    It is now possible to use TEXT/BYTE data with PostgreSQL with the dbmpgs (PostgreSQL) drivers.
  • Define the initial size of the MDI container
      CALL ui.Interface.setName("main1")
      CALL ui.Interface.setText("This is the MDI container")
      CALL ui.Interface.setType("container")
      CALL ui.Interface.setSize("600px","600px")
      CALL ui.Interface.loadStartMenu("appmenu")
      MENU "Main"
        COMMAND "Help" CALL help()
        COMMAND "About" CALL aboutbox()
        COMMAND "Exit"
           EXIT MENU
      END MENU
  • New INSERT syntax to avoid SERIAL column usage
    A new Static SQL syntax has been implemented for the INSERT statement, which removes the record member defined as SERIAL, SERIAL8 or BIGSERIAL in the schema file:

    SCHEMA mydb
    DEFINE record RECORD LIKE table.*
    INSERT INTO table VALUES record.*
  • Support for C1 Ming Guo date format modifier
    You can enable the digit-based Ming Guo date format by adding the C1 modifier at the end of the value set for the DBDATE environment variable:

    $ DBDATE="Y3MD/C1"
    $ export DBDATE

Genero Web Services 2.21

  • Support of HTTPS in the fglwsdl tool
    The fglwsdl tool supports HTTPS requests to retrieve a WSDL or an XSD on the network.
  • Support of authentication in the fglwsdl tool
    The fglwsdl tool allows http authentication and proxy authentication when requesting a WSDL or an XSD on the network, and supports basic and digest authentication.
  • Client stub based on the DOM API and using callback functions
    The fglwsdl tool provides a new option that generates:

      • a client stub entirely based on the DOM API
      • calls to a request, response and fault callback function per service

    This option is especially useful when you have to communicate with another web service that requires additional information on the XML request, or when it returns additional information that was not specified in the WSDL. For instance, this is the case if you have to communicate with web services using WS-Security. You can manipulate the XML document in the generated client stub using the XML-Signature or XML-Encryption  API to perform the security part by hand before it is sent to the network.

  • Mixing low-level and high-level services
    The COM library is enhanced by a new function called HandleRequest to allow low-level and high-level web services on the same server.
  • Automatic HTTP GET request reply
    The COM library is enhanced to perform automatic reply on an HTTP GET request when the server requires HTTP authentication, proxy authentication, or returns an HTTP redirect.
  • Option to serialize BDL date and datetime in UTC format The XML library supports a new option to serialize any BDL DATE and DATETIME using the UTC format requested in most WS-Security exchanges.
  • Support for key derivation Due to security issues, the usage of a direct shared symmetric or HMAC key is not recommended; most secured operations should use a key derived from a common shared key instead. The XML library has been enhanced with two APIs in the CryptoKey class:
    • Constructor CreateDerivedKey()
    • Method deriveKey()
  • Digest computation and random string generation
    In most Web Service security exchanges, computing digest passwords and using random binary data is required, to detect reply attacks for instance. The COM library has therefore been enhanced with two helper APIs in a new Util class:

    • Static method CreateDigestString()
    • Static method CreateRandomString()

Genero 2.11 Compatibility

GDC and GWC 2.21 are compatible with FGL 2.11 Runtime.
You can now run your 2.11 application with GDC or GWC 2.21, using a FGL 2.11 runtime. This can be useful if you need to mix FGL 2.11 and 2.2x installations: you only need to install the 2.21 client.

Genero Desktop Client 2.21

New features

  • General

    • HTTP Stack Review.
      The Internal HTTP stack has been rewritten. This enables pre-2.20 features like Kerberos Support, NTLM single Sign-on or Client certificate that were lost. GDC is also able to retry when network errors occur. This was already the case in previous (late MR) versions, but now it may retry in more situations (ex: in case of HTTP error 500). This can be useful if your network is not too reliable and sometimes messages may be discarded before reaching GAS or returning to GDC. You can now configure how GDC will retry.
      GDC now shows some information in the systray icon when there is an HTTP connection issue:

  • Windows

    • Automatic scrollbars when forms are larger than the desktop size
      In 2.20, maximized windows show scrollbars around the form if the window is larger than the desktop’s available size.

      This old feature has been revised to work also when the window is not maximized. When the window is larger, GDC will automatically fit the size of the window to the desktop size (height or width) and display scrollbars around the form. The following screenshots show the same application running on two different desktop sizes.
      On a 1920×1200 desktop:

      No scrollbar is visible. Now, the same application on a 1024×768 Screen:

      You can see that the height of the form is now bigger than the screen size. A vertical scrollbar is added to allow the display of the bottom of the screen.

      • Navigation buttons are different if you are on the first or last row.
      • A “plus” button has been added to display in one click all remaining items.
      • A little animation shows scroll direction.
    • Toolbars: configure if dockable or not
    • Window state minimized
  • Monitor

    • Connection tab displays application title and windows list
      Previous versions only displayed the application name (usually 42r name) ; now the tab shows the text (if set using ui.interface.setText()). Each application will also show in the tooltip the list of all open windows.
    • “User limit exceeded” as default Terminal String
      “User Limit exceeded” is now a default terminal string so the end user has feedback if his application can’t start because of a license issue.
    • Show debug information when starting shortcuts
      Debugging information has been added to the debug console when starting a shortcut.
    • Support for Windows Seven
    • Support for WinSSHd 5
  • Frontend function call

    • Standard: hardcopy
      “Hardcopy” is now available as a frontcall. It allows you to print a screenshot of the current window.
    • Standard: launchurl update
  • Miscellaneous

    • Hard copy available in system menu of MDI Child window.
    • MSI Installer for windows and Desktop integration
    • Improved Desktop integration:
      • .gdc files are associated with GDC to be run directly in your favorite explorer (windows, linux)
      • Linux installer creates entries in your desktop start menu.

Genero Application Server 2.21

  • Layout enhancement

    The layout of the AJAX output driver has been enhanced in several ways.

    • When there is empty space below table elements, the table grows by adding new rows. The following picture shows the effect on a table,

      compared to the same application executed by GAS 2.20, after

    • Empty space around elements like groups and textedits is filled by growing that element.
  • Picture deployment enhancements

    • The list of file system paths which are searched for pictures can be configured according to the user agent type.
    • Pictures that are not found on the GAS file system are requested from the DVM. The ResourceURI has been enhanced to support it.
  • Table picture flow style support
  • Internet Explorer 8 support
  • Authenticated user and remote IP address
    The authenticated user and the remote IP address from the client is accessible to the 4GL application through environment variables.
  • SBRE Path list
    The list of supported snippet-based rendering engine template paths is accessible through a specific URL.
  • Template Element Identifiers
    The Template Element Identifiers feature provides a mean to customize the template element identifier name used to reference elements during the incremental update of the page, according to the target markup language.
  • Configuration application description
    Applications tags in configuration files support a short and a long description.

How to subscribe

If you want to subscribe to the Early Access Program  you must have a Four Js web site account (“My Account”) that enables access to privileged technical information.

  • Go to our website
  • Log in to “My Account”
  • Go to the Support Section
  • Click on “Early Access Programs”
  • Choose the Genero 2.21 EAP
  • Click on “Subscribe”

Four Js will send you an acknowledgment of your subscription in 24 hours (Monday -> Friday).
Upon approval, you will get access to the download section and the associated mailing list.

If you need a valid license for using this version, you can ask for a demo license by filling out thisDemo Software Request Form and sending it to the specified fax numbert. Add the comment “EAP 2.21” on the form.

We appreciate your interest in pre-release access to our products, and value your feedback. Thank you for your participation in this important phase of our product development.

Best Regards,

The Four Js Development Team