release notes

Release notes Thinkwise Upcycler 2022.2

Related products: Upcycler
Release notes Thinkwise Upcycler 2022.2

Hello everyone,

In this release, we have added steps to enrich your upcycled project, new technical Upcyclers, and extractors for Oracle and MySQL. In addition, it is now mandatory to enter a reason when you add a step or a variation to a technology or application. We have also added a default value for the application database server and name, made some changes and solved some issues.

You can download the latest version of the Upcycler in TCP

 

Contents

 

Requirements

  • Software Factory 2022.2 or higher is required.

 

New

 

Enrich your upcycled project

After you have created your application and imported data, you can now enhance your application with several enrichments, if necessary.

To support you in this step, Enrichment runs are available.
Enrichments are a way to automatically enhance an application.
Some examples are to put an EMAIL control on all columns containing an email address, add a row count to the first column in a grid, or set main screen types
for tables.
These and many more enrichments are available by default.
If they do not suffice, you can create variations on existing ones at the technology or application level or create your own.

The enrichment process consists of two phases.

  • First, you need to execute an analysis run. This run inspects both the model and data and produces a list of proposed actions.
    The proposed actions can contain updates to both the model and the data.
  • Next, you can review the list, select the actions you wish to apply and execute the action run.
The analysis run in the enrichment proces
The action run in the enrichment proces

 

Upcyclers and extractors for Oracle and MySQL

In this version, we have added Upcyclers and extractors for Oracle and MySQL.

 

Mandatory reason for creating (variation on) a step

When you add a step or a variation on a step to a technology or application, it is now mandatory to enter a Reason. This will highly improve the reporting of your Upcyclers.

When upgrading your Upcycler with this version, the new field is filled with a default value.

You can find the Reason fields in:

  • menu Upcycle > Upcycle runs > tab Application upcycle steps > tab Form
  • menu Upcycle > Data import runs > tab Application data import steps > tab Form
  • menu Definition > Technology Upcyclers > tab Technology upcycle steps > tab Form
  • menu Definition > Technology Upcyclers > tab Technology data import steps > tab Form.

 

Default values for the application database server and name

We have added default values for the application database server and name.

  • The default value for the application database server is the current server (menu Upcycle > Applications > tab Form > field Application database server).
  • The default value for the application database name is the application's name, in uppercase, with the illegal characters replaced (menu Upcycle > Applications > tab Form > field Application database server).

 

Changed

 

Fields and tabs hidden when irrelevant

To make it easier to find what you are looking for, some fields and tabs are now hidden when they are irrelevant. An example is the Transfer code.

 

DB2 Upcycler and extractor enhanced

  • The DB2 Upcycler has been enhanced. It now generates descriptions and translations for tables and columns, and it no longer creates Views for DB2 Logicals.
  • The DB2 Extractor has been enhanced to extract translations for tables and columns.

 

Minor fixes and tasks

  • The default value for encoding model and data files when adding a new technology was UTF-16. Since the Extractor produces UTF-8 BOM files, the default has been changed to UTF-8 BOM.
  • In the Technology Upcyclers, the encoding of model and data files was UTF-16. This has been changed to UTF-8 (already available in a hotfix).
  • The Transfer code tab was editable (menu Upcycler > Data import runs > tab Application > tab Executed data import steps > tab Transfer code). This has been fixed.
  • Data import runs would not start. The flow `system_execute_import_data_run` was not set to active in IAM (already available in a hotfix).

 

New and changed in Upcycle steps

 

Upcycle step 2000 Source model loader

We have added loading of the extracted translations for DB2.

Step New or changed
Generic step Unchanged
Variation for DB2 for iSeries Added: loading translations
Variation for PostgreSQL Generic
Variation for Progress OpenEdge Unchanged
Variation for SQL Server Generic
Variation for Uniface Unchanged

 

Upcycle step 3000 Cleaner: Remove logicals

We have added a specific step for DB2.

Step New or changed
Generic step Not applicable
Variation for DB2 for iSeries Specific. Stop DB2 Logicals from becoming Views
Variation for PostgreSQL Not applicable
Variation for Progress OpenEdge Not applicable
Variation for SQL Server Not applicable
Variation for Uniface Not applicable

 

Upcycle step 3400 Cleaner: Object identifiers

In Software Factory release 2022.2, the maximum length for an object name (for example, a table or a column) has been increased to 128.

Step New or changed
Generic step Changed
Variation for DB2 for iSeries Generic
Variation for PostgreSQL Generic
Variation for Progress OpenEdge Added
Variation for SQL Server Changed
Variation for Uniface Changed

 

Upcycle step 3500 Cleaner: Expression defaults

In MS SQL Server, the built-in functions newid()newsequentialid()rand() and textprt() are not allowed in a user-defined function. The Software Factory generates user-defined functions for expression defaults. Therefore, table creation will fail when column defaults that contain these built-in functions have been upcycled.

As of Software Factory release 2022.2, an expression default that contains the function newid() is generated as default on the column, instead of a user-defined function, so the creation of the table does not fail. This used to be a Generic step, but it was for MS SQL Server specifically. This has been rectified.
The Upcyclers have been updated accordingly.

Step New or changed
Generic step Removed
Variation for DB2 for iSeries Implicitly removed
Variation for PostgreSQL Implicitly removed
Variation for Progress OpenEdge Was deactivated, now removed
Variation for SQL Server Updated and now a Technology specific step
Variation for Uniface Was deactivated, now removed

 

Upcycle step 4500 Pre-processor: Assign new domains

We have made a small improvement to the coding of this step.

Step New or changed
Generic step Changed
Variation for DB2 for iSeries Generic
Variation for PostgreSQL Generic
Variation for Progress OpenEdge Still deactivated
Variation for SQL Server Generic
Variation for Uniface Still deactivated

 

Upcycle step 5110 Transform Check constraints

In Software Factory release 2022.2, the maximum length for a check constraint has been removed. It used to be 4000. The check on that length in this step has been removed.

In MS SQL Server, the code of a check constraint is in round brackets. This is specific to this technology.

Step New or changed
Generic step Changed
Variation for DB2 for iSeries Removed
Variation for PostgreSQL Changed
Variation for Progress OpenEdge Generic
Variation for SQL Server Added
Variation for Uniface Still deactivated

 

Upcycle step 5260 Fix: Code for changed table names

The Upcycler changes the name of a table if it contains illegal characters, is too long, or when it occurs in multiple schemas. These changes are also made in all the upcycled code as a 'best effort' action.

This step is now slightly more ‘aggressive’ to get a better balance between automatic changes and manual corrections. It now also processes the check constraints.

Step New or changed
Generic step Changed
Variation for DB2 for iSeries Still deactivated
Variation for PostgreSQL Generic
Variation for Progress OpenEdge Still deactivated
Variation for SQL Server Generic
Variation for Uniface Still deactivated

 

Upcycle step 5261 Fix: Code for changed column names

The Upcycler changes the column name if it contains illegal characters or if it is too long. Now, the column name is also changed in all the upcycled code as a 'best effort' action. This new step processes the control procedure templates and the check constraints.

Step New or changed
Generic step Added
Variation for DB2 for iSeries Still deactivated
Variation for PostgreSQL Generic
Variation for Progress OpenEdge Still deactivated
Variation for SQL Server Generic
Variation for Uniface Still deactivated

 

Upcycle step 5050 Transform Domains

For MS SQL Server, we have added the transformation of datatype rowversion.

Step New or changed
Generic step Unchanged
Variation for DB2 for iSeries Unchanged
Variation for PostgreSQL Unchanged
Variation for Progress OpenEdge Still deactivated
Variation for SQL Server Changed
Variation for Uniface Unchanged

 

Upcycle step 5300 Transform List bar items

The Generic step has been improved, so it will also work for Oracle and Progress OpenEdge.

Step New or changed
Generic step Changed
Variation for DB2 for iSeries Still generic
Variation for PostgreSQL Still generic
Variation for Progress OpenEdge Now generic
Variation for SQL Server Still generic
Variation for Uniface Unchanged

 

Upcycle step 5400 Transform Transl objects

We have added table and column translations for DB2.

Step New or changed
Generic step Not applicable
Variation for DB2 for iSeries Table and column translations
Variation for PostgreSQL Not applicable
Variation for Progress OpenEdge Not applicable
Variation for SQL Server Not applicable
Variation for Uniface Not applicable

 

Upcycle step 5410 Transform Transl objects

We have added table and column translations for DB2. This step also fills the descriptions for tables and columns.

Step New or changed
Generic step Not applicable
Variation for DB2 for iSeries Table and column translations
Variation for PostgreSQL Not applicable
Variation for Progress OpenEdge Not applicable
Variation for SQL Server Not applicable
Variation for Uniface Not applicable

 

Upcycle steps 6000-6999 Prepare data

To ease the development of new Upcyclers, the Generic steps have been improved so it is no longer necessary to deactivate and activate the steps while you are incrementally developing an Upcycler.

Step New or changed
Generic step Changed
Variation for DB2 for iSeries Still generic
Variation for PostgreSQL Still generic
Variation for Progress OpenEdge Now, all Prepare steps are generic
Variation for SQL Server Still generic
Variation for Uniface Unchanged

 

Upcycle step 7600 Update: Remove superfluous domains

The Generic step has been improved so it will also work for Uniface.

Step New or changed
Generic step Changed
Variation for DB2 for iSeries Still generic
Variation for PostgreSQL Still generic
Variation for Progress OpenEdge Still generic
Variation for SQL Server Still generic
Variation for Uniface Now generic

 

Data import step 1000 Drop temporary tables

This step was not necessary and has been removed.

Step New or changed
Generic step Removed
Variation for DB2 for iSeries Was generic, so automatically removed
Variation for PostgreSQL Was generic, so automatically removed
Variation for Progress OpenEdge Removed
Variation for SQL Server Was generic, so automatically removed
Variation for Uniface Removed

 

Data import step 2000 Source Model Loader

We have added the column is_nullable when loading columns, to make it possible for the MySQL Upcycler to use the generic step.

Step New or changed
Generic step Changed
Variation for DB2 for iSeries Generic
Variation for PostgreSQL Generic
Variation for Progress OpenEdge Unchanged
Variation for SQL Server Generic
Variation for Uniface Unchanged

 

Data import step 5000 Migrate to SF schema

We have added the column is_nullable when loading columns, to make it possible for the MySQL Upcycler to use the generic step.

Step New or changed
Generic step Changed
Variation for DB2 for iSeries Generic
Variation for PostgreSQL Generic
Variation for Progress OpenEdge Unchanged
Variation for SQL Server Generic
Variation for Uniface Unchanged

 

Data import step 6000 Create transfer steps

When importing data, it is not possible to insert a value in a column of types timestamp or rowversion.

Step New or changed
Generic step Changed
Variation for DB2 for iSeries Generic
Variation for PostgreSQL Generic
Variation for Progress OpenEdge Generic
Variation for SQL Server Generic
Variation for Uniface Unchanged

 

 

Data model changes

Data model changes for the Thinkwise Upcycler meta-model are listed here.

 

New tables

New tables
application_enrichment_analysis_step
enrichment_run
enrichment_run_action_step
enrichment_run_analysis_step
generic_enrichment_analysis_step
hotfix
last_agent_check_in
technology_enrichment_analysis_step

 

Renamed tables

From table To table
application_step application_upcycle_step
generic_step generic_upcycle_step
technology_step technology_upcycle_step

 

Column changes

Table From column To column
application_import_data_step - reason
application_upcycle_step application_step_id application_upcycle_step_id
application_upcycle_step generic_step_id generic_upcycle_step_id
application_upcycle_step technology_step_id technology_upcycle_step_id
application_upcycle_step - reason
generic_upcycle_step generic_step_id generic_upcycle_step_id
import_data_run - appl_lang_id
import_data_run - data_db_name
import_data_run - data_db_server
import_data_run - data_file_encoding
import_data_run - data_file_extension
import_data_run - data_file_typ
import_data_run - project_folder_spec
import_data_run - project_id
import_data_run - project_vrs_id
import_data_run - sf_db_name
import_data_run - sf_db_server
import_data_run - import_data_run_error_text
import_data_run - import_data_run_status
import_data_run started_at import_data_started_at
import_data_run ended_at import_data_ended_at
technology_import_data_step - reason
technology_upcycle_step technology_step_id technology_upcycle_step_id
technology_upcycle_step generic_step_id generic_upcycle_step_id
technology_upcycle_step - reason
upcycle_run - data_db_name
upcycle_run - data_db_server
upcycle_run - data_file_encoding
upcycle_run - data_file_extension
upcycle_run - data_file_typ
upcycle_run - data_folder
upcycle_run target_sf sf_db_name
upcycle_run dbserver sf_db_server
upcycle_run - upcycle_run_error_text
upcycle_run - upcycle_run_status
upcycle_run started_at upcycle_started_at
upcycle_run ended_at upcycle_ended_at
upcycle_run_step upcycle_run_status status