Recents
GXflow X Conversion ProcessUnofficial Content

To migrate your GXflow Application you need to know the following:

Requirements

To be able to migrate you need GXflow 9.0 Upgrade 1.

Steps to follow

First of all you must follow the steps provided in the article titled GeneXus X Knowledge Base Conversion Process to migrate your Knowledge Base.

If you are using data view objects associated to GXflow 9.0 tables to access data from the engine, make sure to delete all these references before starting the conversion process. Otherwise an error similar to the following one will occur:

Failed processing object properties  
'GXflowTableName' invalid value for property 'DVAssocTable' : Associated table was not found.
It does not exist or it has not been imported (because an error has ocurred or it wasn't exported).

Then, when running the conversion process from the IDE you will see the following dialog after the Knowledge Base Source Analysis:

Convertion_Dialog_wkf

Through this dialog you will be able to choose a GXPM Project to be converted or you can skip this step and import your project later. For more information about importing projects see Workflow Tools (X Evolution 1).

Once you do it you will see the following tasks in the Conversion Dialog:

"Convert workflow objects"
The process starts importing the GXflow API, the GXPM project (if you choose one) and for each object in the Knowledge Base that uses the old workflow API, its variables and source code are converted to use the new API. See the section below "Considerations" where you can see what is not going to be migrated.

"Delete workflow runtime objects"
During this process, the workflow's runtime objects will be deleted if they are not referenced by user objects. If there are objects in this situation you will see a warning in the output.

The GeneXus standard conversion process will be ejecuted; you can check a detailed description for Errors and Warnings related to GeneXus here and GXFlow specific warnings here.

Note: Important!

We don't recommend calling workflow runtime objects directly.

Considerations

Knowledge Base

Some of the following cases will be commented during the conversion process and a warning message will be shown.

  • If you have objects with call commands that refer to workflow runtime objects, the calls are not going to be migrated and you will see a specification error in those objects.
  • "For each" commands over workflow runtime tables won't be migrated so you will get an error when specifying these objects.
  • Web Panels and Transactions with typical workflow parm rules will be commented. This parm rule has 3 parameters of types WApiProcessDefinition, WApiProcessInstance and WApiWorkitem, respectively. It was required in older versions of GXflow for all objects associated with activities. This is no longer used and will be commented because it will cause specification errors; workflow data types cannot be used as parameters in transactions and web panels. If you have a specific case where a transaction or web panel receives workflow data types as parameters you need to change it. The alternative is to receive only IDs of the workflow entities as parameters and load the corresponding workflow variables in the Start event. As an example, suppose that you have a transaction that receives a workitem as a parameter. In this case, you must receive the workitem's ID as a parameter (which is a N(10)) and add the following line in the Start event: 

&Workitem.Load (&WorkItemId)

where &Workitem is a variable of type WorkflowWorkitem and &WorkItemId is the workitem's ID received as a parameter.

  • Properties and methods that are deprecated:
    • Find Methods of workflowCollection data type are no longer supported so they will be commented and you will see a warning in the output.
    • WorkflowWebApplication data type it is no longer supported but the most relevant properties and methods are migrated automatically. They are as follows:
      • Active Session Property: a WebSession variable  is defined  and  the workflow session is obtained by writing: &Activesession = &WebSession.Get(WorkflowSession.SessionHandle)
      • Language Property: a WebSession variable  is defined  and  the workflow session is obtained by writing: &Activesession = &WebSession.Get(WorkflowSession.Language)
      • ConnectedUser Property: a WebSession variable and a WorkflowServer variable are defined and the connected user is obtained with: &WFServer.Load(&WebSession.Get(WorkflowWebSession.SessionHandle)

        &ConnectedUser = &WFServer.ConnectedUser
      • Close method changes to "Return"
      • CloseAndComplete changes to  &Workitem.Complete() followed by  "Return"

        The other methods are not supported.
  • The procedure WFCleanHistory now it is a web panel, if you have a call to this procedure like this:

PWFCleanHistory.Call(&Date) will be Link('wfcleanhistory.aspx').

GXPM Project

  • Disconnected edges will not be imported
  • Task Dimension will be converted to Loop Type Property.

Compatibility

  • If you had deadlines with the zero value assigned now you need to assign a high value instead.

Note:

If you import an xpz file that was exported with a previous GeneXus version, the objects that use the Workflow API will be converted.

In general, to disable the workflow conversion process of a Knowledge Base, you need to create the file “wfignore.conversion” at the root of the Knowledge Base.

iSeries native models using GXFlow

To convert an iSeries GXflow application make sure you have installed GeneXus X Evolution 1 Upgrade 3 or higher, otherwise the following error (SAC#27320) will occur.

In case the 9.0 workflow tables are truncated (short names), a conversion process must be executed to convert the tables to the Xev1 standard format.
Follow these steps to reorganize the workflow tables within the database (only if your workflow tables are truncated):

  • Create a 9.0 Knowledge Base with just the GXFlow tables and configure design and prototype properties as the production\test environment.
  • Modify the folowing properties:
    • Significant attribute name length: 10
    • Significant table name length: 8
    • Significant object name length: 30
  • Execute a Copy Model to synchronize the prototype model.
  • Modify the folowing properties and reorganize; GeneXus will enlarge the gxflow tables in your database.
    • Significant attribute name length: 30
    • Significant table name length: 30
    • Significant object name length: 30
  • The reorganization will convert the table to the standard format used in GeneXus Xev1.
  • Convert the Knowledge Base to Xev1 and follow the standard process; download the associated GXFlow Client for your platform
  • Continue the conversion process. The first execution of an object will trigger the gxflow processs to convert the internal table from 9.0.1 to the Xev1 format definition.

Known Issues Fixed

  • SAC #28561:"Invalid Workitem" error sending a task that was converted form GXflow 9.0
  • SAC #28559: Converting Workflow knlowledge bases, conditional values are not available at the history dialog
  • SAC #27983: After converting a workflow knowledge base the "Html Application" activity property is not converted
  • SAC #27829: The task property "Take deadline from relevant data" is not converted
  • SAC #27640: Error: Guid should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)
  • SAC #27389: The context is not migrated when converting a workflow Knowledge Base to Evolution