20.10.1 - Initial Release
New and Improved Features
- Data Lake-optimized ODX storage implementation including file format change to Parquet
- Automatic incremental load from the ODX into a data warehouse
- Alerts and e-mail notifications on critical errors in the ODX service
- New ODX tab where you can browse the data storage, see information on storage on the table level and select tables for the data warehouse
- Data source explorer with functionality for confirming that selection rules, incremental load rules etc. work as expected
- Independent synchronize and transfer tasks to make task schedules more transparent
- Project lock to prevent multiple ODX servers from using the same ODX project
- Safe shutdown of ODX server to make upgrading easier
- Improved logging UI and less logging of redundant information
- Ability to connect to initializing ODX server from the TimeXtender application
- 7021: Unable to remove pending tasks in ODX Execution Queue
- 7821: SQL Server Logins results in error on Azure SQL DB
- 8403: SSL: Format string defaulting to Invariant Language
- 8575: Project variables object null reference when edited without opening the script editor
Fixed in 20.10.2
- 8606: Business Central adapter: Username and password cannot be changed
- 8765: Cannot deploy primary key delete SSIS package when the data source is bit specific
- 8767: 32/64 bit execution engine stalls on deployment and execution when failing on initializing communication.
Fixed in 20.10.3
- 8811: Data Source Excel leaves out columns with type LongVarWChar - text column with more than 255 characters
- 8863: Error generating Super Natural Key on SQL Data Warehouse
- 8889: Oracle slow synchronization - affects all bit specific data sources
- 8892: Timextender memory leak - an issue on data source explorer
- 8925: SQL Data Warehouse has slow performance with identity insert, when using insert into a table - Data Cleansing
Fixed in ODX 20.10.3
- 7884: "Cloud Repository is corrupt" is reported if the ODX is unable to reach the cloud repository
- 8850: "Specified cast is not valid" exception is thrown when the backlog was successfully created but the firewall blocked the request to add a project
- 8907: Azure Data Factory transfer to Data Lake can give an error: "Token has expired"
- 8911: Incremental load on decimal datatype is not working
Fixed in 20.10.4
- 8980: Qlik Sense terminate execution issue
Fixed in ODX 20.10.4
- 8551: Oracle fails when using date fields as incremental load in ODX on OLE DB version
- 8907: ADF to ADLG2 token expiry issue
- 8959: Parquet and datetime2 issue
Fixed in 20.10.5
- 9017: Execution package with retries can return "Broken pipe" error
Fixed in 20.10.6
- 9039: Issue with execution package with retries
Fixed in ODX 20.10.6
- 9033: ODX Parquet transfer can use all memory on large transfers
Fixed in ODX 20.10.7
- 9118: ODX upgrade issue
Fixed in TimeXtender 20.10.8 and ODX 20.10.8
- 9115: Table transfer from ODX to DWH fails when ODX table contains a DWH system field name
Fixed in 20.10.9
- 8659: Error when opening the errors menu when a table contains Geography data
- 8719: ODX tab closes on F5 (refresh)
- 9238: Having a Tag on a field mapped to ODX and ODX synchronizes will cause an error
Fixed in ODX 20.10.9
- 9259: Issue with setting process affinity for more than 16 cores
- 8266: ODX Config allows you to enter project names of invalid length
Fixed in ODX 20.10.10
- 9274: Azure access tokens are sometimes not refreshed and expire after an hour causing transfers to fail
Fixed in 20.10.11
- 9289: Database cleanup recognizes Semantic Security Table after schema change
Fixed in ODX 20.10.11
- 9287: Azure access token timeout when transferring from Lake to DWH
- 9337: ADF SQL source incremental load value loses precision for datetime2 where precision is above 3
- 9344: Incremental load loses precision for datetime data type when the source is an ADF type
Fixed in 20.10.12
- Numerous issues with windows and UI elements, that did not scale correctly with display scaling set to more than 100%, has been fixed. The application should now be fully DPI aware and usable on modern systems that default to a higher display scaling factor.
- 9228: Increase TIMEXTENDERTABLESCHEMA.FIELDHELPTXT to nvarchar(4000)
- 9428: NAV BC365 wrong conversion of DATE data type
- 9453: Nav query table - data type varbinary becomes unknown data type
- 9481: TimeXtender crash if you rename an execution package to an existing name
Fixed in ODX 20.10.12
- 8969: ODX SAP DeltaQ delta load
- 9291: ODX get unresponsive when having a lot of execution logs
- 9457: ODX - temp folder is used for generating file names and will eventually get filled up
Fixed in 20.10.13
- 9001: Application secret is now obscured in the Global Database settings of the DWH Application secret in the user dialog for Global Database setting for DWH was in clear text
- 9538: SQL DWH - Conditional lookup is now correctly cast to the destination data type
The Data Cleansing script for MDW Tables on Analytics SQL Pool was missing an explicit data type cast on conditional lookup fields when the Lookup Aggregate option was set to None. This is important due to the use of CTAS pattern and table switching employed on this specific platform.
- 9550: Updated logic to support table inserts from views on Analytics SQL Pool
When inserting data into a table from a view the databases on the Analytics SQL Pool platform do not support default values. Therefore the script has been adjusted to include getutcdate() as the value for [DW_TimeStamp] if such a column does not exist in the view.
- 9539: SQL DWH - Grouped None aggregated conditional lookups would look up the first lookup field for all lookups
The Data Cleansing script for MDW Tables on Analytics SQL Pool with multiple lookup files would only lookup the first field when the Lookup Aggregate option was set to None.
- 9575: Supernatural keys based on transformed values now works on SQL DWH
The Data Cleansing script for MDW Tables on Analytics SQL Pool has been adjusted to apply custom transformation before applying supernatural keys. Before this, the script would result in an empty insertion.
- 9596: Custom Semantic Measure dialog can now be resized and maximized
The dialog could not be resized and did not have a maximize option
Fixed in ODX 20.10.13
- 8778: Improved messages at empty ODX Data Source Sync
Reformulating the system messages when setting up data sources and synchronization to help users take proper action when synchronization returns with empty results. It now includes a hint that filters on the data source could be too restrictive.
- 9033: Added an option to reduce memory consumption when transferring data from parquet files to SQL MDW through the ODX server
Limit memory consumption by subdividing parquet extraction into multiple column groups.
- 9291: The ODX can now handle a lot of execution logs without becoming unresponsive
Dialog updated in wrong thread to inform the user of excessive log messages available.
- 9372: More robust error handling to fix issue with unsuccessful transfers from ODX to DW
Building ODX failure handling more robust in case a data source transfer completed unsuccessfully, leaving the file Model.json in an invalid or missing state. The new routine will try to reestablish the old file or seeking out the last working version of the data source before the failed transfer.
- 9556: Improved incremental load on ODX to work with string data type
ODX generated extraction script now applies the right MAX criteria to the query when extracting an incremental load based on a string data type. This would generate empty extractions previously.
- 9561: ADF Date datatype and Synapse transfer error
ODX now identifies Date types as a native parquet data format and generates the proper table format for Polybase transfer in Analytics SQL Pool MDW.
- 9580: ODX can now creating a parquet file larger than 2GB
The variable containing the file position of the parquet file when we upload the data is an integer, but should be of type long. This meant that a file larger than 2147483647 bytes would overflow to a negative value and the upload will fail.
Fixed in 20.10.14
- 8537: Improve display of very large custom transformations etc.
Very large custom transformation is now handled in the user interface to ensure a fast and stable workflow. This is done by limiting the quick tooltips.
- 9442: Faster repository loading through the dialog for administration of repositories
The script for fetching the repositories and matching versions have been optimized to allow for faster retrieval and the general timeout setting for the repository has been added to this command execution too. This will allow even larger version history to be easy to load and maintain in the dialog.
- 9456: Optimizing the appearance of the dialogue Get Stared
With certain display setting the dialog would appear exceptionally large. This is optimized to ensure at more proportional displaying.
- 9603: Fully qualified names in Custom measure script in Shared Semantic Access Layer
In some instances the fully qualified names was not displayed in the custom measure scripts even though it was set to do so. This has been improved to handle these instances and insure the proper code is generated for the endpoint.
- 9654: Improving data cleansing script generation for custom transformations
The situation with similar column names in lookup tables could generate invalid transformations scripts for databases running in Synapse Analytic SQL Pool. Proper aliasing is now applied to the script to allow for this situations to be handled safely too.
- 9658: Any source OLE DB and Any source ADO - improved adding and editing filters
In some cases adding and editing filter models on this data source would not save the changes. This is now improved to safely capture all your changes.
- 9659: Removed a programming glitch from Resume Execution feature
Updating the UI produced an error that effectively make resume execution impossible to perform.
- 9691: Drag and drop fields now supported for Data Export tables
You can now drag and drop fields in the selection rules dialog
- 9695 Adjusting dialog input to actual field sizes
Input validation have been adjusted to ensure proper data length and eliminate issues due to overflowing in some extreme case.
- 9708: DB/2 data sources (IBM Managed) would produce error when trying to connect.
This have been changed to avoid unnecessary connection attempts that would result in errors.
- 9725: Updating a project variable refreshes displayed custom transformation automatically
When a custom transformation on a table field uses a project variable a value change in this variable is now instantly displayed in the user interface for this custom transformation.
- 9726: Allow long running cleanups of old metadata extractions
On large data sources with the application now allows the clean up process to be performed without timing out and producing an unspecified error.
Fixed in ODX 20.10.14
- 8504 Added extra info on dialog for Scheduled Tasks
The name of the data source have been added to help the user identify the individual tasks in the dialog. This have become even more relevant now that the requirement of uniqueness for task names have been lifted.
- 9663 ODX supports passthrough of data type Real
Using ADF to populate the data lake now supports the data type Real natively in Parquet files. This makes it possible to move this data type directly in to Synapse Analytics SQL Pool via Polybase for high throughput cases.
Fixed in 20.10.15
- 9816 Support translations for NAV adapter using BC365 connector
This new functionality will provide translations in a user defined language for table names, field names and option values
- 7265: New UX behavior when setting hash distribution column for DW in Synapse SQL pool (SQL DW)
The logic for automatically setting a column for HASH distribution will skip DW_ID as default because identify columns are not allowed for HASH distribution.
- 8262: SQL script editors now also recognize min() function
For code markup the min() function will now show up in the proper color in the code editor.
- 8449: New icon for tables running in simple mode
The icon is now aligns with the current UI styling
Fixed in ODX 20.10.15
- 9884: Stabilized ODX to DW transfer
When TX moves data from a ODX Data Lake to the MDW using ODX for the transfer, having a selection rule on incremental data, and update/delete, then the the operation could fail due to an attempt to delete a temporary table twice.
Fixed in 20.10.16
- 9600: Issue with differential deployment for simple mode tables with . in name on data warehouse
The differential deployment was fixed for tables with . in the name.
- 9815: CData data source - Setting up incremental load fails with "There is already an object named '<table name>_I' in the database"
This happens when editing an additional CData data source and subsequently deploying a increment load table from the data source.
- 9902: Oracle data source returns double character length for character columns using Units: Char
The change reserves less space in SQL Server database and saving the user from adding data type overrides.
- 9927: Qlik Sense Desktop is not working
This was caused by outdated Qlik SDK- The Qlik SDK was updated.
- 9968: Custom Hash fields are included in the Clustered index when set to primary key
The custom hash fields are no longer included in the clustered index. This will speed up insert and updates on tables with custom hash fields set to primary key.
- 9981: Custom transformation view on a table keeps re-deploying with differential deployment
The logic was fixed for detecting changes for deploying data cleansing with customizations enabled.
- 9985: Business Central Adapter - support tables and fields with same translations
Duplicate naming issue is now handled for Business Central adapter.
- 9986: Incorrect display of execution setup type
When displaying the execution setup type the result could be incorrect and displaying both full loaded and guarded.
Fixed in ODX 20.10.16
- 9758: Missing severity type in ODX Service Log dialog
Added the severity type "System Service Info" to the filter option
- 9989: Test connection on add ODX Azure Data Factory source not working
Added test connection logic to ODX Azure Data Factory source setup.
Fixed in 20.10.17
8706: Securable view overrideReusing the same secure column on the same table now overwrites the first secured view ensuring that you will only have one view pr. table per secure column.
- 9759: Resolve issue with SMO 2019 having dependency to SMO 2016
Updated the system DLLs and object changes to support SMO 2019 without references to the older version. This will simplify installation for a 2019 SQL environment.
- 9916: UI: Wrong icon for inactive dimension level on parent-child-dimension
Inserted the proper icon for inactive dimension level on parent-child-dimension.
9937: Wrong field mapping to conditional lookup fieldsWhen dragging fields from and ODX data source a mix-up of conditional lookup fields and data movements was possible to generate in case when field names was similar. There is now implemented a check to prevent this.
9983: Primary Key violation ScheduledJobLogs on version rollbackThe data model for storing your work in TimeXtender is now changed to handle the rare case of rolling back to an older version of a project and then triggering an execution that would generate an execution with and already existing execution number.
10050: Change data source from SQL to Any Source ADO.Net fails with data source already exists errorIt is now again possible to switching from a SQL source to an Any Source ADO.net without getting and error saying that the source already exists.
10102: Application crash in validate model on semantic layerWell, now it don't.
10114: Editing a Qlik view tables affix setting does not update the user interfaceThis action now triggers the user interface to update and show the changes.
10131: OLAP icon inconsistent in Script CommandsInserted the proper icon in the Script Commands
10135: Issue with deploying write back table for cubeAdded the checksum calculation that was missing on updates so now it will deploy again.
10206: Preview table from custom data source does not work (including query tool)You can now preview any table from a Custom data source on the source level and use the query tool for any table from a Custom Data source which supports it on the source level.
10257: Null reference exception when deploying extended properties in SQL DBDeployment will now ignore extended properties that are not strictly TimeXtender maintained and no conforming to our formats.
Fixed in ODX 20.10.17
- 9306: Support source databases where tables do not have a schema
Cleaned up user interface to ensure that data sources with out schemas is handled too.
- 9555: Issue with synchronizing ODX task state after ODX shutdown
During startup the ODX server will now update any tasks left in a previous running state after an unscheduled shutdown.
- 9904: ODX ADLS to DW transfer fails when transferring more than one file with limit memory
Using the new feature for partitioned parquet file extraction could lead to errors if more that one file engaged the limited memory features at the same time.
- 10213: Retry execution package in ODX
It is now possible to activate retry on ODX tasks. There are 2 events that can trigger the retry: Task failed and Task finished with errors. The user can configures between 1 and 5 retries and a delay between 1 and 60 minutes. A delayed retry is canceled if ordinary scheduling of the task will start earlier than the retry.
- 10309: ODX Alert mail server tries to authenticate empty user
The application will now use the proper format for situations without any user/password authentication. E.g. Situations on internal SMTP servers.
Fixed in 20.10.18
- 10124: Editing a concatenated table in Qlik fails with a null reference error
It is now again possible to edit a concatenated table in Qlik.
- 10257: Better handling of database objects with extended properties from other sources
When deploying we examine the extended properties of database object which could result in errors if they didn't conform to the TimeXtender data types. Now we will ignore extended properties that are not directly managed by TimeXtender.
- 10288: Fixed the cases where the execution overview sometimes would double entries.
This was only a display problem that had no impact on actual execution.
- 10296: Validation for DW_Id field mapping when mapped from another data warehouse
We have improved the validation of DW_Id field mapping that is imported from another data warehouse to avoid getting the exception: Column 'DW_Id' does not allow DBNull.Value.
- 10311: Selecting SIFT tables on Business Central Adapters are now possible again
After implementing the BC adaptor logic the ability to add SIFT tables was lost. This is now fixed.
- 10435: Failing to load parameters for custom selection rules on table mappings.
Custom selection rules were unable to map the parameters to datafields. This is now corrected
Fixed in ODX 20.10.18
- 10295: Improved handling varbinary field for Incremental loading on Custom SQL Data Source
We have added an improved datatype conversion for varbinary fields on the above data source allowing the ODX to handle much bigger integer values than previously.
- 10432: Speeding up preview of data using data lake.
In the internal data handling has been optimized to speed up the transfer from ODX to Desktop Application when the user request a preview of the data contents in the ODX data lake.
Fixed in 20.10.19
- 10500: We have added the TABLOCK hint to the insert operation for batch data cleansing
When inserting data into the valid table we suggest to the server that it should take out a TABLOCK.
- 10576: SQL Database Cleanup Tool now recognize security tables for SSL tabular endpoint
The SQL Database Cleanup Tool would wrongly suggest to drop the security tables for SSL tabular endpoint. They are now recognized as belonging to the project.
- 10583: Unable to delete business unit lookup field
If a lookup field is used in a selection rule on another table, deletion of the lookup field fails and throws an error.
- 10619: OLAP Roles can now have different MDX statements
When setting up Olap Roles with the use of MDX expressions it was not possible to use different expressions. It is now.
- 10678: Some tables are excluded from the Business Central SQL provider
When a none account dependant table contains a $ sign in its name it would be excluded if it did not start with the account template name. This has now been fixed
Fixed in ODX 20.10.19
- The ODX had some structural updates.
Fixed in 20.10.20
2994: Show uneven mappings under tables
Show Uneven mappings can be enabled or disabled in the menu View -> Uneven mappings. When enabled the number of mappings will be displayed on the table and its fields if the table is unevenly mapped.
10684: Business Central Adapter - BC 365 provider support for OAuth authentication
The provider now has support for OAuth authentication
10735: External SQL Connection data transfer cannot transfer TX System fields
When pointing an External SQL connection to a data warehouse database and selecting to transfer data, the mapping of TX system fields would fail because of wrong naming. This has been fixed so the mapping works again.
10743: Error Deploying Permissions based on Schema on Synapse
Setting up security on a schema in Synapse would result in an error when trying to deploy the security. This was due to an incorrect syntax when trying to apply the security to the schema."
Fixed in ODX 20.10.20
- 10761: Circular reference issue in ODX OleDb Engine
Specific method calls on an OleDb data source would trigger a circular reference, that would eventually cause the program to crash. This circular reference has been fixed.
- 10763: Issue with synchronizing ODX data source name overwrites the unique short name
In specific cases, the ODX data source name would overwrite the unique short name on synchronization. This has been fixed so it's not possible anymore.
Fixed in 20.10.21
- 10770: Scheduler can start the same execution package 2 times with a 2 minute delay
In very rare cases where the connection to a repository database in the cloud was unable to be established, the scheduler could start the same execution package 2 times within 2 minutes. This have been fixed, so it's no longer possible.
10788: Error synchronizing AX Adapter Enums
Fixed an issue where the synchronization would remove all enum tables
10918: Conditions are ignored on Semantic Selection rules
Conditions on selection rules in a semantic layer were being ignored. This has been fixed, so conditions are now taking into consideration in the selection rule.
10954: Deploy using an External SQL connection throws "Object reference not set to an instance of an object"
A recently added validation check for field mapping count caused an object null reference when trying to deploy a table from an External SQL connection
Fixed in ODX 20.10.21
10782: Deadlock on executions from ODX
Fixed potential deadlock issue when using an ODX SQL Storage and using the same database as the data warehouse database in the MDW.
10907: ODX - Support for tables containing single quote in schema or/and name for SQL Storage
Applied correct escaping of single quote when extracting information about the table in the SQL Storage
Fixed in 20.10.22
- 11029: Deleted semantic fields don't remove all related semantic perspective items
Fixed an issue where deleting a semantic field that is used in a perspective did not get remove from the perspective
- 11034: Errors when using dynamic variables in Azure SQL DB
Using dynamic variables when using an Azure SQL DB could sometimes cause execution to fail
- 11065: ScintillaNET issue loading SciLexer.dll from Temp directory
Fixed an issue where ScintillaNET could not load SciLexer.dll from the user temp directory
- 11092: Missing encryption in global database repository table
Fixed that some properties were not encrypted in the repository table dbo.GlobalDatabases
Fixed in ODX 20.10.22
- 11068: Issue with ODX Column Filter dialog
Fixed issue where ODX Column Filter UI was not updating the list of rules
- 11074: ADF Concurrency -> ForEach BatchCount parameter
Fixed issue where ODX Azure Data Factory concurrency setting was mapped incorrectly
Fixed in 20.10.23
- 11046: Field Transformation panel manipulates the input
Fixed issue with input field sometimes wasn't updating the UI correctly for field transformation
11048: Mask passwords for global databasesUpdated global databases dialog so passwords are masked when typing them
11322: Script parameter mapping does not pickup renamed mappingsRenaming an object in a script and then dragging the same object into the script again, would cause the second mapping to ignore the rename and just add it as a new mapping with the original name instead of reusing the first mapping and use the renamed value. This has been fixed, so when dragging in an object for the second time, then it will always use the value of the first mapping.
11394: Notification should have the bell as an icon for eventlog typesFixed incorrect icon for event log notifications
11450: Wrong icon for raw only system fieldsFixed issue where the wrong icon was used for raw only system fields
11478: Object-level security on raw only fields failsFixed issue with raw only fields and object-level security
11523: Uneven mapping count issueFixed issue with calculating mapping count for uneven mappings
11772: Encryption on Global DW and Stage ConnectionStringProperties causes a corrupt repositoryFixed an issue where the upgrade from 20.10.21 to 20.10.22 would leave Global Staging and Global Data Warehouse databases in an invalid state
Fixed in ODX 20.10.23
11556: CData engine uses incorrect quoting for query table & query toolFixed issue with quoting in the query tool and query tables
11459: Use the "confirm password" pattern in ODX Configuration toolUpdated the pattern of setting up passwords in the ODX configuration tool
11683: Issue with empty username in ODX notificationIt was not possible to leave the username empty in the notification dialog
11908: Synchronize ODX objects does not update indexesfixed issue with suggested indexes on Valid for tables mapped from an ODX