GX90KBConversion

Unofficial Content

GeneXus 9.0 Knowledge Base Conversion Process

Introduction

Knowledge Bases created with GeneXus versions older than 9.0 need to be converted.
This conversion process is automatically executed, after the user confirms it, when opening a KB created with previous versions.

Important: the values of the preferences Date Format, Time Format and Decimal Separator are not converted so you need to backup this values. More information...

Once converted, KBs can't be opened with previous GeneXus versions. For this reason, we recommend that you back up these KBs before they are converted.
 

Description

If you try to open a non-converted KB with GeneXus 9.0, you will see a dialog box similar to the following:
 

 

To convert a KB, click the OK button to start the conversion.
During the process a progress bar is displayed.
If the conversion is successful, you won't see any message and the KB will simply open.

Basically, the conversion process opens each object and resaves it while adding certain information.
In this sense, a KB will always be converted. However, sometimes an object can create problems during the process, in which case a dialog box will appear:
 

 

There you can view the problem details and save them to an XML file (see File Format below) to be analyzed later. To do so, click the Details button.

The objects with problems can't be converted to GeneXus 9.0, that's why we recommend that you examine them and fix the problem.

TIP: Whenever an object gives an error during conversion, an XML file is saved (see File Format below) under the name ConvertTo90Log .XML

File Format
The file containing the results of the objects that gave errors during conversion is an XML file with the following format:
 

 

Considerations & FAQ

It is not backwards compatible
The conversion process implies that a converted KB can't be opened with older GeneXus versions. For this reason, we highly recommend that you previously back up the KB. Possible backups

Message "File 'c:....gxvfpcspropert.def' could not be opened"
This message means you're trying to convert a KB which includes a VFP model and you hadn't installed the VFP C/S generator.
The conversion process implies each object of the KB is opened, changed and saved. When an object is opened the properties (from the .DEF file) need to be loaded. So, if you hadn't installed the corresponding generator the .DEF cannot be opened.

Solutions:
You can choose one of the following:

  • install the corresponding generator, if it's available
  • remove the corresponding model from the kb being converted
  • copy a propert.def file from another installation of GX 9.0 version (from GeneratorName directory, as appears in the message)
  • create a .TXT file with .DEF extension. This file must be greater than zero bytes.
 

Dialog boxes displayed when trying to open a converted KB with previous GeneXus versions
If you try to open a KB converted to the 9.0 version with an older GeneXus version, you will see the following dialog box twice:
 

 

NOTE: The 2120 code may vary.

If you click Yes in these dialog boxes, you will see the following:
 

 

 

NOTE: KBs converted to 9.0 can't be reopened with older versions. An upgrade to the GeneXus 8.0 Development Environment will be released to avoid those messages and display only the last one.
 

Specification Warnings

After converting the KB, the first Build All may report warnings about potential problems that were not detected by previous versions of GeneXus . We recommend reading about this in Conversion to GX9.0 - Common errors and recommendations
 

More information about KB Conversion

The document Conversion to GX9.0 - Common errors and recommendations has been created in order to document known issues and smooth the conversion path. It's open to feedback from those who convert their KBs.
 

Comments & Collaboration

How long does the conversion process take?

The process depends on many factors such as number of objects in the KB, number of models, synchronization of those objects in all models, computer power, and so on. Therefore, it's difficult to give a time estimate.
For instance, a KB with more than 8,300 objects in a Pentium M (1600 Mhz and 512 Mb RAM) took 2 hours to convert.
 

Conversion Test Results

The conversion process has been tested in tens of KBs and no problems have been detected.

However, it's worth noting that in certain situations the original KB already has problems, which are evidenced in the conversion process.

Small experience converting a small KB

guscarr2 07/26/06 18:24 I'd converted a small kb (it's about 60 objects) developed by a friend. The KB was quite small, so I did not expect any kind of errors nor a big "experience". And I was right. However I found a "detail", which I'm describing here because, could be useful for someone else.
The KB was converted from 8.0 to 9.0, specifically to 9.0 Dev Env U1 (build 740, Winte Build 77) y .NET U1 (build 567).

When I tried to compile the main object (Webp:HMundial) I received this error:

haccesoa.cs(490,13): error CS0117: 'GeneXus.Programs.haccesoa' no contiene una definición para 'refresh'/doesn't contains a definition for "refresh"
haccesoa.cs(511,16): error CS0117: 'GeneXus.Programs.haccesoa' no contiene una definición para 'refresh'/doesn't contains a definition for "refresh"

The problem was a "form.refresh()" method included in an event. Something like:

    If &UsrExists = 'N'
        &Msg = 'User not valid.'
        Form.Refresh()
    Else
        If &PwdOK = 'Y'
        ....
    endif


I never used this method before, seems to have no sense to use it in a webpanel, so I just removed it because the code is a "login event" which includes a "refresh" itself.
I don't know why it was included that method and I don't know why this "method" is available to be used in webpanels, anyway I trust It'll be removed to avoid this kind of problems