InVision 2.7.0 released!

InVision 2.7 marks the beginning of a series of releases that will focus on making the platform cloud native. Although InVision runs fine in the cloud today, we can do even better. We aim to integrate closer with cloud platforms  and services, and utilize cloud features smarter to provide better solutions to our customers. It is important to note that even though we’ll focus on cloud platform features, we will still support on-premise solutions 100%, and all features will be available on both configurations.
As a side note, this release contains 11 new features and 7 fixes or enhancements 🙂

SYSTEM Changes

You need to install the newest version of the Profitbase Installation Manager (v If you’ve already got it installed, and you’re on a machine with internet access, you will be prompted to do an automatic update when the Installation Manager starts. If you try to install InVision 2.7.0 without upgrading the Installation Manager first, the upgrade will fail.

We have removed the AppFramework Db and migrated the associated functionality into the Solution database. When you upgrade an existing InVision instance, we automatically do the migration for you as part of the upgrade process. Because you might have added custom functionality to the AppFramework Db in customer projects, we do not automatically delete the database after an upgrade. You’ll have to do that yourself once you’re confident that the entire solution has been upgraded successfully.

NEW Features

We have added 11 new features to the platform. Besides the new OData support, the majority of the features are related to development of Form Schemas.

OData support

We have added support for creating custom OData feeds which enables authorized users to query business data through a REST API instead of having to connect to the InVision database. For example, this feature enables users to easily connect to an InVision dataset (collection of tables / views) from Excel or PowerBI, and import data into their models for further analysis.

Form Schema

Support for Listbox control
The Listbox control enables you view or edit a collection of objects by either binding to Lists (read-only) or Set Models (read-write).
Using the ItemTemplate of the Listbox, you can configure how each item of the ItemsSource should be rendered, including custom layout, editing and interaction through buttons or similar controls.

Support for Set Models
Unlike Models which represents only a single object from the database, Set Models represents a range of objects. The difference between Lists and Set Models is that Set Models can be modified and saved back to the database. To modify the contents of a Set Model, you would bind it to a Listbox and have  editor controls with data bindings in the Listbox ItemTemplate.

Binding support for CssClass property
Binding support for the Control.CssClass property enables you to more easily apply conditional styling to a control, by binding to a property of a model.

ItemSelected callback for Dropdown control
Specifying the ItemSelected handler enables you to execute a function when the user changes the selected item of a Dropdown. When the Dropdown.SelectedValue is bound to a Model property, you can listen for the change using a DataChangedEventHandler. However, DataChangedEventHandlers cannot listen for changes to custom (non-model) objects in the Form Runtime, so you need to invoke a function to get notified if you’re binding the Dropdown.SelectedValue to a property of a custom object.

Click handler for Image control
This feature enables you to execute a function when the user clicks an image, just like Button.Click

Format string for Label, Heading and Button controls
Setting format strings for Labels, Headings and Buttons enables you to display date and numeric values in a nicely formatted way without having to add formatted properties using JavaScript to Model objects before render.

Binding support for Button.Text property
You can now bind the Text of a button to a model property.

Data Store

Autogeneration of File Storage columns
You can now configure a Data Store as a file storage by just pressing a single button in the Data Store editor. This will automatically add the columns to the Data Store which is required for the File Storage API and File Upload Workbook component.

Setting tables

Grid filter options
Setting tables now support both inline filter row and the column filter menu.

Spreadsheets (Worksheet, Report, Setting)

Support for custom cell renderer
Support for custom cell renderers enables you to take complete control of how a cell is rendered, by creating a JavaScript function that returns the DOM element that you want to be rendered in the cell.


We have made 7 fixes and enhancements to existing functionality.

Data Store / Data Store Group

– Applying Change Tracking configuration failed in 2.6.1

Dimensions / Facts

– Fixed an issue where loading or reloading a dimension or fact would always use or create a temporary Linked Server, even though the source and target were on the same server.

– When generating shadow dimension structures, we’re now scanning all level columns to find the data type with the highest precision, and use that as the data type for the primary content column. (In previous version, you could get an error if for example the Leaf and L1 columns had different lengths).

Form Schema

– TextArea validation placeholder takes up too much space.
– HTML element now renders properly when contents is set as child elements.

– Local css class styles now automatically gets higher specificity, which always causes local style rules to override system defaults.

Worksheet / Setting Workbook component

– SetFieldValue in ExecuteExpression did not update the target property


– Enjoy!