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.
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 |