Skip to content
1.34 Release Notes
1.34 Release Notes
- VAIL scalar types:
- The system now correctly interprets these as case-sensitive.
- To avoid the potential for collisions, it is illegal to create a user-defined Type with the same name as one of the Scalar types.
- The Scalar types
Value have been added.
- Can only be used when defining a “schema” type property.
- Support data replication (see Replicated Services).
- New system procedures:
- Strict typing enforced for Stateful Service properties.
- It is no longer legal to assign a value of the wrong type to stateful service property. Doing so will result in a compile time error. The most common example of this is assignment of
Concurrent.Map() to a property of type
Object. In this case the property must be typed as
EXECUTE statement has been augmented to support specification of a partitioning key.
PUBLISH statement has been augmented to support propagation of the “root” event id.
- Stateful Services may now be replicated.
- Prevents loss of data due to Vantiq server failures.
- Only properties of type
Value will be replicated.
- Service state properties now have a default value based on their type.
- It is now illegal to directly invoke the service state initializers (
- Multi-partition procedures may now be invoked directly (based on their visibility).
- Service event handlers (whether implemented as
collaborationtypes) may now invoke private procedures of their service.
- Publishing directly to an Outbound Service Event Type from within the same Service is supported using the syntax:
PUBLISH event TO SERVICE EVENT "<serviceName>/<outboundEventTypeName>"
Apps and Collaborations
- The App Builder now supports all the functionality of the Collaboration Builder. This adds the following activity patterns to the App Builder: Assign, Chat, Notify, Track, Recommend, LoopWhile, GetCollaboration, CollaborationStatus, Interpret, and ProcessIntent, The Collaboration Builder is now considered deprecated.
- Collaborations are primarily updated and managed as part of the Service State rather than database updates which provides significant performance improvements.
- App Components may now include Collaboration functionality.
- The ComputeStatistics and AccumulateState activity patterns produce reset events which emit the value of the state right before it is reset
- The AccumulateState activity pattern allows users to configure which State property will be updated. This allows multiple AccumulateState tasks to update the same Service State property
- The EventStream activity pattern now supports Delete events, and the option BOTH was renamed to UPSERT.
- Any App tasks that are children of a SaveToType, PublishToSource, or PublishToTopic task will now only be triggered by their parent. If such an event is triggered outside the App, the App will not process the event at the intermediate task.
- Event Generators now support ranges for GeoJSON events.
- Event Generators no longer require the “step” option for a Ranges. If no step is provided, a step will be calculated to spread the range over the number of iterations for the event.
- Public Catalogs are now available. Instead of providing credentials to every namespace that will connect to a given Catalog, those credentials may be provided to a system or organization administrator. They can create a Public Catalog in their system or organization namespace, which can then be used by any namespace inside their system or organization.
- Change logs may be provided when updating published resources. These will be shown to subscribers when they update, giving them a brief overview of the changes.
- Catalogs may be given custom names using the VAIL procedure
- Assemblies can be created from a zipped export. This can be done by uploading the zip as a Document then using the createEntry operation or the VAIL procedure
Broker.createAssembly(<catalog name>, <assembly name>, <document name>). Note that some publish validations cannot be performed in this case, so a successful creation does not mean that the Assembly and its resources can be successfully installed.
- Catalog nodes and tokens will try to repair themselves, and will clean themselves up when no longer needed. To repair connections you will need to either connect to the catalog again (for issues connecting to the catalog), or unsubscribe and resubscribe to the event or service that is having connection issues.
- Overall styling of Modelo has changed with new fonts and colors. The Navigation Bar in particular reflects the new styling changes. See the IDE User’s Guide for details.
- The App Builder graphs have been improved to display links between tasks using Bezier curves and task category icons have been added to task nodes.
- The Catalogs pane has a new Updates tab which lists any updates available for installed Assemblies or subscribed Services. Each list item shows the description of the updates if the publisher provided them.
- Greatly reduced the number of ‘toast’ (temporary) notifications displayed at the upper-right of the IDE.
- Support for creating Public Catalogs in system and organization Namespaces.
- The VAIL editor supports a new shortcut for displaying variables in scope. See the IDE Shortcut Keys section for a list of all shortcut keys used in Modelo.
- Expanded the use of the Resource Explorer UI across the IDE. The Resource Explorer dialog is usually accessed whenever the user is expected to select a resource (Procedure, Source, etc.) and is displayed by clicking a button with a magnifying glass icon. The Resource Explorer dialog also allows subscription or installation of Catalog-based resources, if Catalog connections have been created for the Namespace.
- When creating a new Type the default value for “Role” is now “Schema” instead of “Standard”.
- Added the Hide Toolbars IDE Setting to hide the toolbars of some panes (e.g. App Builder, VAIL Editor) to save vertical space. If enabled, the pane’s title-bar contains the Show/Hide Toolbar button to show and hide the toolbar dynamically.
- The Topics pane now supports the definition of the “Group” property.
- The Service Builder now supports “bottom up” development. This includes:
- Creating Inbound and Outbound Event Types from the Implement Tab
- Automatically repairing the Procedure Interface when the Procedure implementation is changed either in the Service Builder or in a standalone Procedure pane
- Executing Private Procedures from the browser in order to test them
- View the current value for each Global or Partitioned State property from the State tab of the Service Builder
- Visual Event Handlers now allow multiple EventStreams. This allows a single Event Handler to Merge/Join events from multiple Inbound Service Event Types
- There is now a new layout widget to support scrolling: ScrolledLayout
- You can now create DataStreams dynamically at runtime.
- Scrolling is now supported inside the pages of a TabbedLayout through new properties on the FixedLayout called “horizontalOverflow” and “verticalOverflow”.
- The visibility of TabbedLayout pages can now be controlled at runtime using the getPageVisibility and setPageVisibility methods.
- As a convenience, the parameters for various dialogs (infoDialog, errorDialog, confirmCustom, confirmCustomEx, terminateWithDialog) now accept localization key strings directly in addition to literal strings.
- The DynamicMapViewer now supports an “On Click” event.
- Readonly properties have been added to the FixedLayout widget to get “true” and “scaled” image sizes at runtime. (scaledImageHeight, scaledImageWidth, trueImageHeight, trueImageWidth)
- The new “dataValue” property now allows you to set the current value of a NumberViewer directly.
- In previous releases a Page could be given a default “response topic” to which the “default submit” operation would publish the response object (See here.) This has been enhanced so that in addition to topics you can now send resource events to a Service or Source instead; see the Page property sheet in the Client Builder.
- Previously the dataArray property of the DataTable was read-only – it is now writable and you can use it to completely replace the current contents of the table.
- You now specify a namespace when running an RTC client by adding “?targetNS=NS_Name” parameter to the URL. This also works when launching Modelo.
- You must be logged in to reply to this topic.