Updates for Form/Application Developers

This topic lists and describes changes to the Mongoose framework that affect form and application development.

Visual Studio 2015 now supported

Visual Studio 2015 is now supported for script authoring and editing. We continue to support Visual Studio 2013 as well. Options for these are under User Preferences.

New Data Maintenance Wizard enhancements

We upgraded the New Data Maintenance Wizard to accept values for the Site Reference column other than 'SiteRef'. This option allows users to set the default value of the Site Reference column on multi-site tables.

New Form Wizard enhancements

We added these new form types:

  • Report – These forms are typically used to design and generate custom reports without the need for a third-party template or report engine.
  • Form Only – These forms are typically designed to function without the normal Mongoose form options, such as toolbar, menus, and so on.

Enhanced layout at form creation

We added the ability to adjust the layout of components in new forms, using new options available on the Form Metrics tab of the User Preferences dialog box.

Rulers and guidelines in Design Mode

Developers now have the option to show rulers and guidelines to assist in design and alignment of components.

Design Mode capabilities now in the web client

We now have a version of Design Mode for use in the web client. This version of Design Mode has functionality similar to Design Mode in the Windows client, but is more limited. The web client version of Design Mode allows users to perform only basic design tasks on forms and global objects.

As part of this project, we also redesigned many of the editing dialog boxes used by Design Mode in the Windows client. These dialog boxes were recast as forms available for use with Design Mode in the web client.

Support for charts and gauges in multi-device type forms

We added the capability to "unshare" Chart and Gauge component types on forms. This allows form developers to create different device type versions of a form that contain these components.

Tab order autonumbering

Previously, when creating new components in Design Mode, the default tab order setting was always 0 (zero). We changed the default behavior so that the tab order setting for a new component is automatically set to a value one greater than the greatest value currently in use on the form. In the case of multiview forms, this autonumber feature for tab order affects only the view on which the component is being created.

Hide animations for FlexLayout components

Form designers can now add "hide" or "close" animation to operations on a FlexLayout region. The hide animation stylistically matches the the opening animation for the region.

HTML attribute removed from IDO properties

We removed the HTML attribute from IDO properties, as it is now considered obsolete. The HTML field no longer appears on the IDO Properties form.

Data Change event generation for multi-selection List boxes

We now generate any Data Change event defined for a List box component, whenever a Ctrl+click or other keyboard method is used to make multiple selections for a selected record.

New options for selecting IDO methods when creating standard or custom methods

When creating an IDO method using standard or custom load .NET methods, Mongoose now provides a drop-down list of methods to choose from on the New Method form. When a method is selected, WinStudio then populates parameters on the IDO Methods form.

Placement of DataView Action items on context menus

Previously, DataView Action menu items on context (right-click) menus were always added to the beginning of the context menu items list. With this enhancement, form developers now have more control over where these context menu items appear in the list.

Developers can use the StdCurCompAction event as a placeholder for the menu item, positioning it at the desired place in the list of menu items.

In addition, we have reordered all standard context menus with "Action" in their names to display StdCurCompAction items at the end of the context menu by default.

If this is not the desired placement for these items, developers can reorder the menus or use custom menus.

IDO method for SaaS check

We created a IDO method that can be used to check whether a license is a SaaS (Software as a Service) license. This method returns the value of the IDORuntime.Context.LicenseInfo.SAASEnabled property.

BUS tools in the administrative client

We incorporated two existing development tools, BusInboxHost.exe and BUSPrototype.exe, into the administrative client installation for use by developers. These tools already existed in the application server installation.

Option to interpret "\n" as a new line command or a literal value

For components that can contain text, you now have the option to have the key sequence \n interpreted either as a new line escape sequence or as a literal value. Affected components include Static, Option Button, Check Box, and Button components.

This option is set by means of a new property at the individual component level.

New FORMONLYMODE keyword

We added a new FORMONLYMODE substitution keyword that you can use to determine whether a form is currently open in FormOnly mode or not.

Warning for conditional action edits

We added the ability in Design Mode for the conditional action editor to detect when a developer attempts to make edits to a conditional action that:

  • Has previously been edited in such a way as to exceed the normal functionality of the conditional action; and
  • Provides a warning to the developer that continuing will cause the original expression to be lost. This warning also provides a way to cancel the edit operation.

    In cases like this, the developer then has the option to edit the conditional action expression directly.

Stretch Column property added for Grid components

We added a new attribute for Grid form components: Stretch Columns. This new property allows you to stretch the display of a grid to fill the available horizontal space in cases where the grid display does not normally fill it. The new property is located under the Miscellaneous > Specific Attributes section on the Component property sheet.

Increased number of characters for Username fields

We increased the length of the UserNameType to accommodate 128 characters, up from the previous 30-character limit.

Although the "Username" field (or variations of it) appears on dozens of forms, because of the late-breaking nature of this requirement set, we were unable to change the appearance of those fields in the UI. Instead, they will simply scroll to accommodate longer values for now.

New URL parameter to hide the menu

We added a new session startup parameter that you can add to the URL for a web client session that allows you to hide the main menu when the client window opens. This parameter is menu=hidden.

Next Keys now defined with metadata

Next Key definitions for new tables and columns can now be created using metadata, instead of requiring hard-coded values. To accomplish this, we created a new form, the Next Key Definitions form, which is accessible from the Synchronize Next Keys form.

We also created a utility to purge Next Keys data, accessible also from the the Synchronize Next Keys form.

Drop-down list selection for IDO methods

When creating an IDO method using either standard or custom load methods, we now provide drop-down lists, both for the IDO methods and for parameters of those methods.

Default for null values in replication documents

Outbound Business Object Documents (BODs) have a parameters (PARMS) keyword that assumes the use of a singleton table or view that returns a single row and can select any column. This keyword can sometimes return a null value.

You can now use this keyword to default another value to return if the chosen value is null.

For example, PARMS(LocalSite.LanguageID) can be used to default to "en-US" if the returned value is null.

Enhanced tiles and Infocon components

We continued to enhance tile forms and Infocon components to provide more options. In this release, we added these options:

  • Always Expand option – This option allows the Infocon component to be always displayed whenever the form or tab loads.
  • Drag-and-drop capabilities – Drag-and-drop operations now behave the same as with any regular grid display, as if the grid were not tiled. With Infocon components, drag-and-drop operations are exactly like DropList components.

User components for the web client

Developers can now extend the framework by adding custom user-created components for use with the web client only. These user components can be added to the Design Mode Toolbox. They are capable of leveraging attributes and behaviors specified in component properties, making them look and act much like native form components. These user components can be added to forms and manipulated in Design Mode; however, they are functional only in the web client.

Using a comparison tool before checking in an IDO

Developers can now compare a new version of an IDO with the current version prior to check-in using a comparison tool of their choice.

Enhancements to Form Control check-outs

We made these enhancements for object check-out operations with Form Control:

  • We added an option to each tab in Form Control (both the stand-alone application and the form version). When selected, forms or objects that are not locked are overwritten by a check-in operation.
  • We added a Check Out button on the warning dialog box that displays when a developer attempts to design a form that is not locked. When the developer clicks this button, the Form Control form is launched with the form pre-selected.

Support for BCC in GenericSendEmail event

The GenericSendEmail event handler now supports sending to BCC email recipients.

Secondary collections on extended forms

Secondary collections can now be added on extended forms. Previously, if the base form has any collection already defined, any extension of that form cannot have any secondary collection. In this enhancement, attributes that are previously read-only are now editable.

Support for DISTINCT option in LoadIDOCollection event action

Developers can use the DISTINCT option in the parameters of the LoadIDOCollection event action. By setting this option, only unique property combinations are returned by the event action.

Enhancements to the REST service

We have provided these enhancements to the Mongoose REST service:

  • We added funtionality for the IonMongooseConnector to the REST service, so that a REST service and API can fire an Application Event System (AES) event.
  • We created an API to stream Binary Large Objects (BLOBs) to and from a Mongoose-based application.

Option to prune the Master Explorer display

We added support for developers to use an IDO method callout that can be used to "prune" the display of folders and forms in the Master Explorer. To accomplish this, we added a new process default to call the IDO method. Developers who want to use this option must provide their own IDO method to tell the system what Explorer nodes to display and what nodes to hide.

Application deployment tools

We created a set of tools designed for use in Mongoose-based application deployment. These tools include:

  • A stand-alone scripting tool, to script out all of the customized objects in a Mongoose-based application. This tool is designed primarily for use in an on-premises setup by developers who have access to the databases and can run SQL scripts. This tool can create the scripts using either SQL or XML formatting and places the output in a zip file.

    The SQL output generates SQL scripts and bulk copy files to be used by existing tools to import everything. XML output is used by the form version of Form Sync only to import data. The XML output does not allow the export or import of stored procedures, triggers, or views.

  • A new core Deployment form that performs many of the same functions as the stand-alone tool. This form is designed primarily for use in a cloud environment by developers who do not have direct access to the databases. This form creates the scripts using only XML.

Provision of BOD templates and metadata

We now provide usable samples for Business Object Documents (BODs), in the form of sample XML files available from the Internet. To facilitate the use of these BOD samples and templates, we also created a new BOD Template Import Wizard form (Core).

Set From List Only validator deprecated

The Set From List Only validator is now deprecated and is no longer available from the Types drop-down list on the Validator Properties dialog box. However, its functionality is still supported for backwards compatibility.

Use the In Collection validator type instead.

SQLCLR code removed

SQLCLR code in the application database has caused security concerns in the cloud, as well as causing ongoing problems with corruption in the installed code. Because of these issues, we removed the SQLCLR code from the application database.

As a result of this, the FireEventSp stored procedure from TSQL code will now post an event to be handled asynchronously, because firing an event synchronously from inside the database code is no longer supported.

SoHo user components added to Mongoose Toolbox

We added a set of new user components to the Mongoose Toolbox. These components were built by the Infor internal design team (known as SoHo). These new component types all have the prefix "SoHo" as part of the component type name.

We also added a SoHo User Components form to showcase the new components.

With this addition, we are leveraging our User Component mechanism to ship some pre-defined user components. You can add your own, or you can update from SoHo or other sources as needed.

Enhancements to FormControl

Several enhancements are made to FormControl.

  • Form Control currently shows global objects referenced by forms and recursively selected object types can show references. This ability is added to the objects page to warn developers about referenced objects and ask if they should be included in operations.
  • In this release, the GET action is allowed on locked objects after a warning. Previously, the GET operation was only allowed when an object is not locked or only for the user who has that object locked.
  • Before doing any operation on an object, the database timestamp is checked to see if the database has changed. If there is a change, the cache is flushed before proceeding with the operation.

Enhancements on Outrigger

The outrigger feature has been enhanced to improve ease of use and flexibility.

  • Explicit transactions are used to support writable behavior in DB2 and Postgress outriggers.
  • Added a Test Connection button on the Outrigger Profiles form. When clicked, an attempt to establish a connection to a remote database is made, and displays a message as to whether a connection is successful or not.
  • These changes are made on the IdoLinkedDatabases form:
    • The Database Type component is disabled, and its value is set to the appropriate level based on the profile name or the native database type of the application database.
    • The Table Name column of the Tables' grid is a drop down list of known tables in the linked database.
  • These changes are made on the IdoWizard form:
    • The Profile Name is displayed next to the Table Name on the Primary Base Table drop down list.
    • When creating an IDO for an Outrigger Profile, the Table Alias is no longer validated based on the SQL keywords of the outrigger's SQL language.
    • The Profile Name component is disabled, but you can still set it on selection of Primary Base Table and save that value into the created ido.Collections row.
  • When the Outrigger IDO is created, primary keys are assigned based on the IdoLinkedColumn.IsKey values.
  • The Outrigger Profile component on the IdoCollections form is disabled.
  • You can now create Outrigger IDOs bound to Microsoft SQL Servers other than the one hosting the current application database.
  • You can now create Outrigger IDOs bound to Mongoose tables (that is, those that already contain RowPointer and RecordDate columns).

Enhancements to the Outrigger Linked Table Control

Enhancements have been made to prevent collisions with existing application views or tables when creating a new view on an outrigger linked table. The view name field in the IDO Linked Database form is now editable, so that developers can override the default view name. Also, the source table name is saved in IDO.Tables table instead of the view name. Lastly, in the New IDO Wizard form, the profile name field is read-only and the outrigger view name is pre-populated.

Row status icons in tile forms are not displayed if Now Row Header is enabled

If the No Row Header property is set to true, the row status icon is not displayed on any grid tiles.