Release Notes > Release Notes for ThingWorx Platform 9.3 > What's New in ThingWorx Platform 9.3.0
What's New in ThingWorx Platform 9.3.0
The following enhancements, known issues and limitations, and end-of-support information are part of ThingWorx 9.3.0.
For a list of fixed issues, refer to Fixed Issues in ThingWorx Platform 9.3.0.
ThingWorx 9.3.0 uses log4j 2.17 and is not exposed to the current CVEs with older log4j versions. Guidance for older ThingWorx versions should be referenced here.
Fixed potential security issues, including items proactively identified by vulnerability scanning software and PTC Quality Assurance testing. Please upgrade as soon as possible to take advantage of these important improvements.
See this technical support article for important recommendations regarding the use and update of third-party software for ThingWorx.
The manual upgrade process has been simplified to save you time and effort when upgrading to ThingWorx 9.3.0. If you are upgrading from ThingWorx 9.0.x or later, upgrade scripts have been combined to reduce the number of scripts that must be executed.
Services can now be executed from Thing Templates and Thing Shapes.
Entity references can be viewed in the Referenced By section in Composer. This feature allows you to view where an entity is referenced in your ThingWorx model. This functionality is disabled by default, but can be enabled in the Relationship Subsystem.
The GetWhereUsed service allows you to see where an entity or its characteristics, such as a property or service, is referenced in ThingWorx. See Using the GetWhereUsed Service for more information.
Many property types can now be indexed, which allows for faster queries when using the QueryImplementingThingsOptimized and QueryImplementingThingsOptimizedCount services. See Indexed Properties for more information.
This feature includes new query statistics capability. See Query Statistics for more information.
The GetPropertyVTQ service returns a count of Thing properties (defined on a Thing, Thing Template, or Thing Shape) that have been ingested or set within ThingWorx at run time. You can use this service to determine how to optimize the performance of queries or the ingest of property values due to the total number of indexed property values. See Using the GetPropertyVTQCount Service for more information.
This feature has caused behavior changes in GUID and DATETIME base types. See the Changes in Behavior section below for more information.
For click jack protection, the ClickjackFilterAllowList filter and ALLOWLIST parameter were added. These will replace the ClickjackFilterWhiteList filter and WHITELIST parameter in a future release. In ThingWorx 9.3, both filters and parameters are supported, but it is recommended to update your web.xml file before the next release. See Allowing Embedded Mashups in iFrames for more information.
High Availability (HA) Clustering
ThingWorx HA Clustering is now supported on Windows 2019.
Mashup Builder
Custom CSS
This release has behavior changes in custom CSS that is applied to web-component widgets. For more information, see the Changes in Behavior section.
Legacy Mashup Migration
The mashup migration has been enhanced to include support for migrating legacy style definitions to widget style properties. You can use the Mashup Migration dialog box to migrate to one of the following style themes:
The PTC Convergence Theme—Use the default style theme for new mashups
Legacy Styles Theme—Preserve the look of legacy style definitions
Custom theme—A custom style theme
You can now migrate customizations that you made to default style definition entities in Composer to a style theme using the Update with Default Style Definitions action in the More menu of style theme entities.
You can now hide the migration message and migrate later using the Migrate Mashup action that is available in the More menu.
The following widgets are now legacy widgets that will be deprecated in a future release:
Grid (Advanced)–Replaced by the web-component Grid widget.
Responsive Layouts
Added options for container scrolling to the Layout panel that enable you to control the vertical and horizontal scrolling behavior of a container.
Style Themes
Added a new style theme entity named Legacy Styles Theme, which contains styles that are similar to the default style definitions of legacy widgets. You can use this style theme to preserve the look of your mashups when migrating mashups with legacy widgets.
Menu Bar Widget
You can now display a company or a product logo within the footer section when the widget is expanded using the FooterLogo property.
Grid (Themable)
The widget has been enhanced with new properties that enable you to perform the following configurations:
Enable editing of the grid data using the EditLevel property. You can configure editing on a grid, row, or cell level.
Resize the grid columns at run time.
Configure the grid dynamically using JSON data.
You must update the output of any existing configuration services for the Grid (Advanced) widget to a JSON instead of a STRING base type.
Display a button that resets the grid back to its default configuration at run time.
Trigger a filter event when the dynamic configuration is updated.
Display a drop-down menu which enables users to control the order and visibility of specific columns.
Show row numbers in a separate column within the grid.
The themed Grid widget now replaces the Grid (Advanced) widget when you migrate a legacy mashup.
Added the chart-line-style property to the Style Properties panel of the Line Chart and Pareto Chart widgets. The new property enables you to display solid, dotted, or dashed lines.
For the Line Chart, the new property appears under Style Properties > Series1–24 > Line.
For the Pareto Chart, the new property appears under Style Properties > Base > Line.
Enhanced localization support by adding localization tokens for several properties that have a default label value, in the following widgets:
Bar Chart
Chip Based Data Filter
Date Time Picker
Line Chart
List Shuttle
Pareto Chart
Property Display
Radio Button
Schedule Chart
Waterfall Chart
Enhanced the formatting in the Line Chart for the Date/Time and Numeric X axis types to align with the data format set by the user. This enhancement provides better selection and display of ticks on the X axis.
For the Date/Time X axis type, the granularity will follow the pattern that is used to display the time. If you changed the date/time format, then the following formatting is used to display the axis ticks.
If the date/time format pattern is only yy, the granularity of the data is up to the year.
If the date/time format pattern is only mm, the granularity of the data is up to the month.
If the date/time format pattern is only mm/dd, the granularity of the data is up to the day.
If the date/time format pattern is only mm/dd h, the granularity of the data is up to the hour.
For the Numeric X axis type, the granularity has been improved to pick the data points that fit to the number formatting.
In all the chart widgets, added a ShowHideLegend property that enables you to show or hide the chart legend at run time using a button.
Breadcrumb Widget
An overflow pattern is added in the Breadcrumb based on your selection of the newly added MaxNumberOfLinks property. The MaxNumberOfLinks property defines the maximum number of links in the Breadcrumb. Any additional link is displayed in the overflow list that appears when you click on the overflow control icon. Earlier, there were navigation arrow buttons that allowed you to navigate to the left or right in the Breadcrumb links. This has been modified to an overflow control icon for ThingWorx 9.3.0 and later versions.
Button Widget
Added the following properties to the widget:
MultiLine—Enables you to wrap long labels across a new line when horizontal space is not available.
MaxHeight—Sets the maximum height the widget is allowed to grow to when a label is wrapped across multiple lines.
SVGIcon— Enables you to display SVG icons from the default icon set.
Tabs Widget
Added a TabNameHeight property, which enables you to set the height of the tab name area.
An overflow pattern is added in the Tabs. When there is an overflow of Tabs, these are displayed in the overflow list that appears when you click on the overflow control icon. Earlier, there were navigation arrow buttons that allowed you to navigate to the left or right in the Tabs. This has been modified to an overflow control icon for ThingWorx 9.3.0 and later versions.
Toolbar Widget
Added the ability to display SVG icons from an icon set within button actions using the ToolbarAction data shape.
Added a HideFilterSeparator property that enables you to show or hide the vertical line that separates the filter on the toolbar.
Expression Function
Added a Disable Initial Output option to the configuration dialog box, which allows you to prevent the function from assigning undefined values to the Output property.
ThingWorx Flow
Read the ThingWorx Flow What’s New here.
PTC Identity and Access Management (IAM)
The KeyCzar has been replaced by the use of Tink for encrypting access tokens before they are persisted to the database. When using Tink, the necessary keyset file is created automatically when ThingWorx starts and is stored in the ssoSecurityConfig folder.
Tink does not require the symmetric folder or the keyczarKeyFolderPath parameter in the ThingWorx sso-settings.json file. If you are upgrading from an earlier version of ThingWorx, you can leave these files and settings as they are and ThingWorx 9.3 and later will simply ignore them. But if you decide to remove them, you must wait until the upgrade procedure is complete.
Changes in Behavior
The indexing feature described above has resulted in the following behavior changes for GUID and DATETIME property base types:
The default default value for DATETIME (if a default was not explicitly set in the property definition) is now the Unix epoch (1/1/1970). This new default is applicable to all persisted and non-persisted properties.
If you had a persisted DATETIME property returning the platform’s default (default) value, that DATETIME will start returning the Unix epoch (1/1/1970) after upgrading to ThingWorx 9.3.
The default default value for GUID is now the Nil GUID (00000000-0000-0000-0000-000000000000). After upgrading to ThingWorx 9.3.0, GUIDs that formerly had a timestamp of epoch, a quality of unknown, and a Value of the default value, will be modified so that their timestamp is ‘now’ (time of platform upgrade) and their quality is Good. The value remains unchanged.
All persisted properties of base type GUID that used to return the default default GUID: that value will be migrated to promote it to a real value so that the GUID value being returned will not change after upgrading to ThingWorx 9.3.
Mashup Builder
Custom CSS
Tto align with the latest CSS Shadow DOM specification, a pollyfill used to provide styling functionality for web-component widgets was removed. Therefore, existing CSS rules that are applied to web component widgets in earlier versions of ThingWorx may no longer work. If your custom CSS is not working correctly, you must review and update the custom CSS manually after upgrading. For more information on applying CSS to web-component widgets, see Applying Custom CSS Styling to Web Component Widgets.
Known Issues and Limitations
The following known issues and limitations exist in ThingWorx 9.3.0:
If you are upgrading MSSQL, Azure SQL, or H2, the upgrade will fail if any of the custom index field values are missing in the data tables. Verify all custom index fields have values before starting the upgrade process. If your upgrade fails, you will need to restore the ThingWorx database and platform, remove custom indexes or provide missing values for the custom indexed fields, and then perform the upgrade. See Upgrading ThingWorx for more information.
The Referenced By feature and GetWhereUsed service have limitations when executed on a state definition or media entity. If the state definition or media entity exist on a mashup, there may be cases where the mashup is not returned in the results.
Mashup Builder
Mashup Migration
The following styles and configurations are not preserved when you migrate a mashup:
Space between containers of the Layout widget.
Custom styles for the Time Series Chart.
The gradient color of the highlighted area in the Line Chart widget. Only the primary color in a linear gradient is migrated.
The width and line style of chart rulers. Only the ruler line color is migrated.
Icons that are displayed next to list items in the Dropdown widget.
The label for the toggle switch within the Auto Refresh widget.
Icons that are defined for any state other than the base state of the legacy Button widget.
Styles for grid borders.
Styles for the confirmation dialog box.
The PopupTitleStyle style definition of the legacy Navigation widget.
The ListBackgroundStyle legacy style definition of the List widget.
Custom styles for widget tooltips.
Custom styles for the widget focus box.
For more information, see Troubleshooting Mashup Migration.
Date Picker Widget
Part of the date value is not displayed because the space is used by the clear button.
Grid (Themable)
Existing data services used to provide configuration data will stop working after you migrate. To fix this issue, change the output type of the data service to JSON in Composer.
Was this helpful?