Changes in this Release

Documentation home

 

 

Changes in V5.11.2

 

     This release includes the following:

         

1.      Gateway Portal Single Sign On (SSO) using URL parameters without the requirement to configure the tiles and folders.

 

Changes in V5.11.1

 

     This release includes the following bug fix:

         

2.      FPL Highlight command causes a JavaScript CORS access error that crashes the form when using external Style Sheets.

 

Changes in V5.11.0

 

This release includes:

 

1.      Gateway Tunnels. Configured in the Verj.io Gateway, Gateway Tunnels allow remote Verj.io Applications running on trusted Verj.io On-Premises environments and Verj.io Service Plans access to databases and services that would otherwise be inaccessible outside of the Gateway’s private network.

 

Gateway Tunnels work with any TCP/IP application or service that can be accessed by specifying a hostname and port number, including: Databases, Email, LDAP, HTTP(s), REST, SOAP and FTP services.

 

 

2.      Upgrade to tomcat 9.0.63 that fixes:

 

CVE-2022-29885 – Tomcat documentation fix for the EncryptInterceptor that incorrectly stated it enabled Tomcat clustering to run over an untrusted network. This was incorrect and has been resolved in this release.

 

 

 

Changes in V5.10.2

 

This release includes the following updates and bug fixes:

 

1.      Upgrade to Tomcat 9.0.55 that fixes two important security fixes:

 

a.      The bug fix to the Denial of Service introduced a memory leak. This is fixed in version 9.0.54.

b.      Request Smuggling issue where Tomcat did not correctly parse the HTTP transfer encoding request header in some circumstances leading to the possibility of request smuggling used in a reverse proxy.

 

2.      Replaced logging API Log4J 1.2 with Log4J 2.17.1. This update will enable customers to customize their logging with all the latest security vulnerabilities addressed in Log4J2.

 

The log4J2.xml configuration file will be automatically copied post upgrade after the server is has restarted. If not changes were applied to the log4J.xml file, then the following note can be ignored.

 

Log4J2 Migration Note

 

If you have configured your own logging appenders or any other configuration (for example JDBC Appender or JMS Appender configuration) to the log4j.xml file:

 

/UserData/Server/apps/ebase/ebaseConf/log4J.xml

 

      These changes will need to be applied to the log4j2.xml configuration file as shown below. Please reference the Log4J2 Migration guide for the appropriate Log4J2 syntax:

 

/UserData/Server/apps/ebase/ebaseConf/log4j2.xml

 

 

3.      Setting a breakpoint on a Web Resource JavaScript file and clicking the debug icon locks/crashes the Studio.

 

4.      Form error showing the error message:

 

Error Script setField: Invalid fieldname mycontrolfield.displayonly in command >SET mycontrolfield.displayonly = true

 

This is thrown when setting control property from FPL.

 

5.      Server side validation event not triggered when date is selected using popup window.

 

Adding a field control to a page with the display type set to Date and immediate validation enabled, does not fire the validation event when a date is selected in the calendar date popup.

 

6.      Incorrect path to Server Resources folder in PWA manifest.

 

Attaching images from the ServerResources folder to a PWA entity as icons, shows the incorrect path to the image resource:

 

For example:

 

Setting an icon in the PWA to:

 

ServerResources/images/android-chrome-192x192.png

 

Shows the path:

 

/ebase/ServerResources/images/android-chrome-192x192.png

 

The correct path should be:

 

/ebase/images/android-chrome-192x192.png

 

7.    Deploy and Run on server in the Verj.io Studio, does not run the form after the deployment has completed.

 

 

Changes in V5.10.1

         

          This release includes the following bug fixes:

 

1.      When configuring web resource client scripts using the $ws prefix syntax, some operating systems resolve the mime-type for JavaScript files. This prevents the browser loading the JavaScript.

 

For example: $ws/clientScripts/myfunctions.js

 

Some JavaScript files were generated in the HTML as: <script src="ebWebResource/clientScripts/myfunctions.js" type="text/plain"></script>

 

This has been corrected to: <script src="ebWebResource/clientScripts/myfunctions.js" type="text/javascript"></script>

 

 

2.      Public RESTFul Web Service could not resolve the endpoint if it contains both Path and URL parameters.

 

For example: /customer/{customerId}?customerName{customerName}

 

3.      Losing concatenated properties in object return values from executeFunction. The value is returned as {"empty": false}

 

For example:

 

var customerName = "Joe Bloggs";

function getCustomerDetails()

{

   return { customer = "Customer Name: " + customerName; }

}

 

This now returns: { customer: "Customer Name: Joe Bloggs" }

 

4.      When using the Workflow API worlkflow.getFilteredJobs() threw an exception when using a POSTGRES database for the UFSRepository.

 

5.      Running an event script in a Part Page Component caused an error when testing the component by pressing the Test Part Page Component from the Verj.io Studio.

 

6.      Search Files in the Verj.io Studio did not search all the JQuery events handlers configured on a Control in its HTML Element Properties.

 

Additions for V5.10

 

This release includes support for configuring Content Security Policy (CSP) headers, a new set of file upload controls, and permissions configuration for web resources.

 

1.      The Content Security Policy (CSP) header can now be enabled and edited in Form Properties and the Form Property Defaults section of a Presentation Template. CSP provides an additional layer of security that helps to detect and mitigate certain types of attacks, including Cross-Site Scripting (XSS) and data injection attacks. These attacks are used for everything from data theft to site defacement to distribute malware. CSP support is disabled by default and can be activated in Form Properties or the Presentation Template.

The output from all Verj.io controls, layouts and presentation templates is CSP compliant by default. However, developers should be aware that the configuration of inline CSS and inline JavaScript can cause CSP violations which will prevent a page being displayed.

2.      Several new File Upload controls have been added and these provide an alternative to the existing file upload mechanism using the form.uploadFileFromBrowser() functions. The new controls provide better customisation and more functionality with events and API methods, to make it easier to create a seamless user experience.

3.      A new Web Resource Access section has been added to the Server Admin App which provides an interface to define a set of permissions required to access Web Resources. This allows more nuanced control over access to files within a web application, utilising existing security permissions.

4.      The Verj.io Studio now allows the developer to customize their own Controls Palette. The Custom Palette allows the developer to organize their most used controls into a tree structure for convenience and efficiency.

5.      The authentication, authorization and general error pages have been changed to .JSP files. They will automatically replace the previous .HTM files when upgrading to 5.10 unless the web.xml file has been modified locally, in which case the web.xml will need to be manually changed in order to point at the new files.

6.      The HttpHeaderSecurityFilter provides protection against XSS and some other attacks. This is included into the web.xml supplied with the product. The filter is not enabled as default, but should be configured for your environment if your server is exposed directly to the internet. See here for more information.

7.      Security Fixes:

·         Verj.io Server JQuery version updated to v3.5.1 which includes fixes to XSS vulnerabilities. Click here for more details.

·         Http Cookie security updates when using server scripting client.addCookie():

·         If the connection is secure (HTTPS), the cookie is automatically set to Secure. The cookie value is only sent over a secure connection.

·         The cookie attribute HttpOnly is automatically added to the cookie. This attribute prevents XSS attacks by preventing scripting API’s from accessing the cookie value. This attribute can be overridden and switched off in the Server Admin App (Server Properties -> General Properties).

·         The LDAP protocol using LDAPServices defaults to using LDAPS unless otherwise specified in the Server Admin App (Server Properties -> Security Properties).

 

 

Additions for V5.9

This release includes a number of features that enable compliance with the Web Content Accessibility Guidelines (WCAG) 2.1. See Designing For Accessibility for advice on using these features to make your applications compliant. The new features include:

 

  1. New landmark controls Main Control, Aside Control, Article Control have been added. Together with the existing landmark Nav, Section, Header and Footer controls, these form a family that can be used to bring structure to web pages. This helps screen reader users navigate each page. These landmark controls can all be found under the Landmark Containers group in the Palette Panel. Click here for advice on using landmark controls to create accessible applications.

 

  1. A new Heading Control has been added which enables the use of HTML heading tags <h1> - <h6>. As well as representing a simple header text, a Heading Control can also contain Text and Image child controls to build more complex headings. Click here for advice on using headings to create accessible applications.

 

  1. A new ARIA section has been added to all controls that support ARIA properties. ARIA is a formal specification that allows developers to add markup that will be interpreted by Alternative Technologies (including screen readers).

 

  1. Button Controls have been enhanced to support Text and Image child controls. One reason for introducing this feature is to try and discourage the use of onClick events on HTML elements that don’t natively support clicks e.g. a <div> using a Panel Control, which causes accessibility problems.

 

 

 

  1. A new option to render radio button and checkbox lists using an HTML <fieldset> has been added. This is the recommended technique for displaying these lists. Click here for more details.

 

  1. HTML for field labels is now always generated and written to the browser, even when the label text is not visible. This change allows form fields to always be correctly labelled so labels can be read out by a screen reader. This does not affect the visible page presented to sighted users. Click here for more details of labelling form fields for accessibility.

 

  1. Similarly, HTML for field help texts is always generated if a help text is configured, even when the help text is not visible. The help text is then linked to the field using the aria-describedBy attribute. A screen reader will then read out the help text after the label e.g. “Field password, passwords must have at least 8 characters including…”. This change does not affect the visible page presented to sighted users. Click here for more details of providing description texts for accessibility.

 

  1. ARIA roles are now added to all error, warning and info messages sent to the user. This allows a screen reader to alert the user when a message is received. Click here for details.

 

  1. The ARIA “presentation” role is added to all layout tables. This enables a screen reader to effectively ignore these tables.

 

  1. A number of HTML syntax problems have been fixed involving the removal of unsupported and deprecated attributes.

 

  1. The option to focus on the first field on a page has been changed. In previous releases this was a global setting configured using the Server Admin Application. From this release this option has become a form property (on the Presentation tab) with a default taken from the presentation template. The default is that this option is disabled i.e. the focus will not be set to the first field on the page. If your applications rely on this feature, the corresponding setting in the presentation template(s) should be changed to maintain compatibility.

 

Additions for V5.8

 

  1. An interactive script debugger has been introduced for Javascript scripts. All server-side Javascript scripts can be debugged regardless of how a script is invoked including forms, SOAP and REST Web Services, system services, scheduled tasks, workflow processes etc. In most cases you will be debugging something running in your local development environment, but it is also possible to debug a script running on a remote server, subject to security. Click here for more details.

 

  1. Security between a Verj.io Studio and its test server has been improved (in support of the new script debugger). All test servers are now defined using Designer Preferences > Servers tab, and the current server the studio is using (to test or debug forms/services/workflow processes) can be changed using the Manage Servers dropdown in the top right-hand corner of the Studio window. Click here for more details.

 

Change of behaviour: connection to any server other than the Embedded Server supplied with the studio now requires configuration of a user/password with the appropriate role on the target server and this needs to be configured in Designer Preferences > Servers on the studio.  Click here for more details.

 

Additions for V5.7

 

1.      This release introduces a new Gateway Server product. Its purpose is to assist with the migration of in-house systems to the cloud. In particular it provides:

·         Single Sign On (SSO) from a cloud server to any in-house security system including Active Directory

·         Access from a cloud server to in-house databases and other resources

·         A portal application that runs in-house and provides links to the cloud applications

·         A programming API

These facilities are all based on a secure framework using industry best practice.

 

  1. User Authentication improvements. Many options, including Active Directory authentication, can now be selected at the click of a button without the need to write a Logon Service. This also includes authentication using third-party OpenID Connect providers e.g. Google Identity Platform, Salesforce, ADFS etc. Click here for more details.

 

Additions for V5.6

 

1.      Verj.io V5.6 is a landmark release in that it introduces a new file system layout for the installation that will enable future upgrades to be performed automatically. This new file system layout provides separation between the Verj.io distribution files which should not be changed by customers (the installation file system), and any customer configurable files (the userdata file system). Future upgrades will work by replacing the Verj.io distribution files. This change applies to both the Studio and Server components. See Studio File System Layout and Server File System Layout for more information on the new layout.

 

2.      The level of Rhino, which provides server-side Javascript, has been upgraded to level 1.7.11 which includes support for many ES6 features.

 

3.      Logon Services have been enhanced to support the ability to add Authorizations to a user, in addition to roles and credentials. Authorizations provide more granularity than a simple role, enabling more sophisticated security checks, and can be checked using SecurityManager.isAuthorized(). Click here for more details.

 

Additions for V5.5

 

  1. Addition of widgets: these represent discrete pieces of UI functionality such as charts, maps, trees, confirmation popups etc. They consist of visual elements displayed to the user plus optionally additional entities such as client-side or server-side scripts, CSS etc. Available widgets are displayed in a separate Widget View that sits alongside the Palette View, and widgets are dragged onto a page in much the same way as controls, and can then be configured. The widgets themselves are sourced from the Verj.io Resource Hub and this will be updated regularly to add new content as it’s developed. It is also possible to create/install widgets in the local workspace. 

 

Click here for more information.

 

  1. SCSS (“Sassy” CSS) files are supported as an alternative to regular CSS files. SCSS extends CSS and adds a number of really useful features such as variables, nesting, extensions, operators etc. SCSS files are compiled into CSS which is then sent to the browser – the system performs this compilation automatically whenever necessary, so SCSS files can be used in the Verj.io Studio as direct replacements for CSS files.

 

  1. Java 11 is included in this release as an option. It is our intention that the following release will mandate using Java 11. If Java 11 is used, Atomikos (next item) is also required.

 

  1. The server components providing transaction management (JOTM) and database connection pooling (Xapool) have been replaced with Atomikos.  The main driving force for this change has been the move to Java 11 but Atomikos represents a much better option as it is actively developed and supported, whereas both JOTM and Xapool have been inactive for a number of years. This change is optional in this release but it is our intention that it will be mandatory in the next release.

 

  1. Before control events have been extended to all controls – previously these were only available with Field Controls and Table Controls. Also before control events will now execute every time the system moves to a new page (using goto page or a configured next page button), and will be executed immediately after the before page event. This represents a change in behaviour: in previous releases before control events, with the exception of event fields, were only executed the first time any given page was displayed. If this change causes problems, the behaviour of previous releases can be reinstated by adding the following Java property to the server startup:

 

–DrunBeforeControlEventsOnceOnly=true

 

  1. Table Controls can be configured to “collapse” when displayed on narrow devices (phones). This means that each table row will be displayed vertically down the page instead of horizontally across the page. The breakpoint can be configured using the Collapse breakpoint property of Table Control.

 

For example the following table is displayed horizontally on wider devices:

 

 

 

And collapses to display vertically for devices narrower than 600px;

 

 

 

Additional styling options are available for the collapsed table display using the Table Control’s styling assistant > Table Columns > Advanced Properties

 

 

  1. Placeholder texts can be specified for Field Controls and Table Column Controls – this is configured using the Place holder property. For example:

 

 

  1. The Fields View, Tables View and Resources Views have been changed to separate the display of form level elements from component or widget elements.

 

  1. When entering a field name, camel case names are now recognised and used to construct default label texts e.g. a field name of firstName will result in a label of First Name etc.

 

  1. A number of changes have been made to facilitate using client-side events with components or widgets:

 

    • The component prefix can be specified as the last parameter of the client API $eb.executeFunction() function. In most cases the system will determine when a component context should be applied to a server function called using $eb.executeFunction() but there are some circumstances where this doesn’t work and then this new parameter is required e.g. when a ready event is used to bind another jQuery event.
    • A new method $eb.getComponentPrefix() has been added to the client API
    • A data attribute data-eb-component-prefix has been added to all HTML elements generated for component or widget controls. This can be used to extract the component prefix for an HTML element using jQuery.

 

  1. The display of configured style sheets, client scripts, client callable event scripts and shared function scripts has been expanded to show elements configured in components/widgets installed into a form.

 

  1. The component name of an embedded component is now displayed in the Outline View.

 

 

 

Additions for V5.4

 

  1. Support for Progressive Web Applications (PWAs) has been added. PWAs represent an exciting new technology that aims to make web applications indistinguishable from native applications when used on mobile devices: phones and tablets. As a result, a web application can be used for all devices without the need to develop separate native apps. PWA features include:

 

·         Make a web app page look exactly the same as a native app page e.g. by removing the URL bar

·         Automatically add a start icon to the device’s home page

·         Caching of HTML pages and web resources by a service worker so the app can start even when offline

·         Downloading of web apps from an app store

·         Support for push notifications

 

Please note that support for PWAs varies for each browser provider and not all browsers currently support all the features listed above. Ebase support for PWAs will continue to be developed in future releases as further browser capabilities are announced and released.

 

Click here for more information.

 

  1. The WYSIWYG View used to display form pages has been changed to use JavaFX as the underlying software component – previously this was using Flying Saucer. The main advantage of using JavaFX is that CSS3 styling is now fully supported, whereas in the previous release many styling attributes were not supported. JavaFX also provides future proofing as it is a fully supported Java component and will continue to support new aspects of HTML and CSS as they are developed in the future.

 

  1. A new PDF generation engine wkhtmltopdf has been added which supports HTML5 and CSS3. This is available for use when generating a PDF using the Javascript form.generatePdf() function or the FPL outputpage command. This is in addition to the existing Flying Saucer engine which mostly only supports CSS2. A global property PDF Engine is used to switch between these two options. This property can be changed using the Server Admin App on the Server Properties page. By default this property is set as follows:

 

·         New installations: wkhtmltopdf

·         Upgraded systems: Flying Saucer

 

Please note that changing the PDF engine may result in some changes to existing print pages.

 

  1. Support for the popular Bootstrap styling framework has been added, Bootstrap provides a responsive framework with mobile-first design built in. Verj.io support includes a Bootstrap presentation template, a number of new controls and layouts, and new Bootstrap-specific properties for some existing controls. For new Verj.io studio installations, the Bootstrap template is set as the default.

 

Click here for more information.

 

  1. Support for Domain Keys Identified Mail (DKIM) has been added to email accounts. This is configured via email account properties using the Server Admin App.

 

  1. It’s now possible to see how a page will look on any device by selecting the appropriate device from the toolbar at the top of the WYSIWYG View - a dropdown of named devices is available including most common devices and this can be edited to add new devices.

 

 

  1. Support for many Web Forms 2.0 features has been added. Using these features it’s possible to eliminate the Ebase input validation popup alert boxes and replace these with browser-provided input validation:

 

·         The following Web Forms 2.0 input types are supported and can be selected as display type for a form field or table column: 

 

color, date, datetime_local, email, month, number, range, search, tel, time, url, week

 

Some of these types will result in browser widgets being displayed to help the user enter the data e.g. date, number. The implementation of these widgets varies between browsers.  Also, some of these types invoke browser validation of the data entered e.g. email, range. Any validation messages issued by the browser can be customized using the Validation Message Field Control property. Click here for more information.

 

The example below is the date type with Edge:

 

 

·         The Mandatory Field Control property has been renamed to Required, and required fields are now implemented using native browser validation. This applies only when the form document type in Form Properties > Presentation is set to HTML 5. For example Chrome displays validation messages for text boxes like this:

 

The message displayed (e.g. “Please fill in this field”) can be changed using the Required Message attribute of Field Control.

 

  1. New Server Resources folders can be created in the workspace.  These folders are mapped to the root of the web application and provide a means of configuring static web resources and including these in the workspace. In previous releases, static server web resources had to be added to the server’s file system and were therefore difficult to manage. With this change, these web resources can be included in the workspace and can be deployed in the usual way. Click here for more details.

 

  1. When a client API $eb.executeFunction() call is made, the server will now be aware of the control which initiated the event – most importantly this includes setting the current row of any tables. For example, you might have a table or repeater with a delete button that first displays a confirmation popup and then invokes a server function via eb.executeFunction(). With this change the server code to delete the table row is simply tables.myTable.deleteRow() whereas prior to this change a row identifier had to be extracted on the client then passed to the server.

 

  1. Images can now be dragged from the tree directly onto a page. The project that the image is dragged from needs to be accessible from the target project.

 

  1. Resources can now be dragged from the tree into the Resources View of a form, component etc. The project that the resource is dragged from needs to be accessible from the target project.

 

  1. The tree is now sorted so that any folders are shown before entities.

 

  1. Custom attributes within HTML Element Properties can now contain &&fieldname substitutable variables.

 

  1. Aria label texts can be configured for all appropriate controls. This property is typically used to provide a screen reader with a label for an otherwise anonymous control.

 

  1. Client browsers with Javascript disabled are no longer supported. Javascript support on the client is required to execute an Ebase form.

 

  1. A change has been made to the way Javascript arrays and/or objects are stored as session attributes which may affect applications using client.request.session.setAttribute(“xxx”, value) or client.request.session.getAttribute(“xxx”). The getAttribute() and setAttribute() methods are now intercepted and Javascript arrays and objects are saved in serialized form – this is to prevent excessive use of memory which can result when Rhino objects representing arrays and objects are saved directly. The impact of this change is that session attributes must now be explicitly saved (using setAttribute()) each time they are changed. It is no longer true that getting an attribute, then changing the retrieved object, will update the saved session attribute.

 

  1. The Workflow Administration application (form WORKFLOW_ADMINISTRATOR distributed in the VerjSamples project of the default workspace) now requires a user sign-on. Any user with access to the Server Administration application will also have access to the Workflow Administration application.

 

Additions for V5.3

 

This release provides integration with the new Verj.io Platform as a Service (PaaS) system which offers fully supported Ebase Xi servers running in the cloud and is also the new home for the Ebase website; the Ebase Xi Designer has been re-branded as the Verj.io Studio. The studio provides the ability to deploy to either a server in the Verj.io cloud (known as a service plan) or a non-cloud server (these are now known as on-premise servers); similarly you can run forms and test web services and workflow processes against either cloud or on-premise servers.

 

  1. After upgrading to V5.3 you will be initially presented with a logon screen when you first start the studio; if you have not previously registered on the Verj.io portal, click on the Sign up link at the bottom of the logon panel. If you are already registered then enter your credentials - any service plans to which you have access will automatically appear as deployment targets. If you have previously registered with the Ebase Customer Portal you should be able to use the same userid/password combination for the new Verj.io portal. Once you have logged on successfully to the studio, your credentials will be remembered and you should not need to logon again unless you explicitly logout of the Verj.io Portal (see below).

 

The Vault has been replaced by the Resource Hub. This contains tutorials, samples, templates and other technical content that provide advice and can be imported directly into the studio. The Resource Hub will become the major source of technical help and will be expanded in the future.

 

A new Verj menu item has been added to the main menu. This provides the ability to logout/login from/to the Verj.io portal plus the ability to change the privacy settings. In the current release these settings make very little difference – they are used only when deploying to a service plan in the cloud or when connecting to the Resource Hub. However, in the future the studio will be enhanced to collect information on how the studio is used, detect any problems, and offer advice based on this. When this functionality is added, you will have the ability to disable it via the privacy settings.

 

  1. A new tabbing framework to contain multiple open entities has been added and many of the toolbars have been restructured

·         Icons from the old tab headers have been moved to a new toolbar at the top of the page

·         Icons from the old tree toolbar have been moved to the new toolbar at the top of the page

·         The Form Editor toolbar and page toolbar have been re-structured

·         The Run button has been renamed to Test and moved to the main toolbar and a test history has been introduced. This makes it possible to run forms from any editor at any time.

 

  1. A number of new controls have been added:

 

Container Controls:

·         Footer Control – same as a Panel Control but encloses content in a <footer> HTML tag

·         Header Control – same as a Panel Control but encloses content in a < header > HTML tag

·         Nav Control – same as a Panel Control but encloses content in a <nav> HTML tag

·         Section Control – same as a Panel Control but encloses content in a <section> HTML tag

 

List Controls – these provide the ability to display content in an ordered or unordered list and within list item HTML tags <li>:

·         List Panel Control – provides the ability to lay out any static content as a list

·         List Control – used to display dynamic list content e.g. from a database (Dynamic List) or a Static List or a list set via a script

·         List Text Control – used with a List Control to display a list item text

·         List Hyperlink Control – used with a List Control to display a list item text as a hyperlink

·         List Item Control – represents a <li> tag

·         Repeating List Control – provides the ability to display a table as a list

 

Click here for more details on using the new list controls.

 

  1. A new List Layout has been added which lays out the content of any container control as a list.

 

  1. A new Class property has been added to the properties panel of most controls. This makes it easier to add CSS classes to a control – without the need to first display the styling assistant, click on Advanced properties etc.

 

  1. A new external API has been introduced that allows non-Ebase apps to make stateful calls to an Ebase server by including a small amount of Javascript. This can be used by any non-Ebase app including mobile apps. Stateful in this context means that information is kept on the Ebase server between calls from any given client. Click here for details.

 

There are now three ways that an Ebase service can be called from an external (non-Ebase) application:

 

·         REST Web Service stateless REST calls

·         SOAP Web Service (integration Service) call – stateless SOAP calls

·         Using the new External API – when stateful calls are required

 

  1. Support for information messages has been added. There are now three levels of message that can be added to a page and individually styled: info, warning, error. Information messages are added by Javascript scripts using one of the addInfoMessage() methods, and for FPL scripts via the message command.

 

  1. Javascript API Changes:

 

·         New methods encryptAES() and decryptAES() have been added to EncryptionServices to provide encryption using the AES algorithm with 128 bit keys. The existing encrypt() and decrypt() methods have been deprecated as they use the DES algorithm with 64 bit keys; this DES algorithm is now considered as potentially vulnerable and customers are recommended to use the new AES methods instead.

 

·         New methods appendToFile() have been added to FileServices. These should be used when appending text to a file instead of the writeFile() methods that replace the file contents.

 

·         It is now possible to exclude some Java classes from the automatic conversion that occurs for server-side Javascript scripts when Java objects are transferred into the Javascript environment. This conversion behaviour is mostly beneficial but can occasionally cause problems; it includes the conversion of all Java lists (java.util.List) to Javascript arrays [] and the conversion of all Java maps (java.util.Map) to Javascript objects {}.  Individual Java classes or interfaces can be excluded from this conversion by using system.addWrapFactoryExcludedClass() and system.removeWrapFactoryExcludedClass() e.g.

 

system.addWrapFactoryExcludedClass("java.util.Properties");

 

The scope of changes made by these methods applies to the currently executing form, web service, workflow job etc.

 

·         New methods addCssClass() and removeCssClass() have been added for all controls. These methods allow classes to be added and removed dynamically without affecting other classes assigned to the control.

 

·         The ability to iterate through items in a list has been added. This can be used when a list is associated with either a field or a List Control:

 

var items = controls.listControl.list.items;

while (items.next())

{

var val = items.listValue;

if (val == "danger")

{

controls.listItem1.backgroundColor = "red";

}

}

 

  1. The ability to monitor the number of database connections in a connection pool has been added. In the Server Admin App, click on Database Connections then click the  icon for an individual database to display information about the current usage of the connection pool. This can also be used to restart the connection pool in the event of problems. Click here for more details.

 

  1. The ability to run an HTML entity file has been added.

 

  1. Creation of a new project now allows you to select a pre-configured folder structure or model the folder structure on an existing project. This behavior can be disabled in designer preferences.

 

  1. A new Save All icon has been added to the main toolbar (next to the Save icon) – this saves all open entities that have been changed.

 

  1. The Getting Started option has been removed from the Help menu – the tutorials provided by this option have been revamped and are now included in the Resource Hub

 

  1. A small change has been made to the HTML generated for a Table Control. This might have any impact on existing forms which have been styled using CSS which is dependent on the HTML structure.

 

  1. A Bootstrap presentation template has been developed and is available for download from the Resource Hub. This is based on Bootstrap 4.0.0 beta.

 

  1. Designer Preferences contains a new Privacy tab. This allows you to disable the link between the studio and the Verj.io portal.

 

 

Additions for V5.2

 

1.      Support for publishing REST web services has been added. Together with the changes introduced with V5.1, full support is now provided for calling and publishing both REST and SOAP web services. Click here for details.

 

2.      Many icons and panels have been changed to introduce a fresher look into the designer.

 

3.      Javascript API Changes:

 

·         A new technique for executing SQL statements has been added without the need to create a Database Resource and mappings. This is accessed via the new DatabaseServices class e.g. services.database.executeSelectStatement(…). All SQL statements are supported. Click here for details.

 

·         Property files can be loaded using one of the new system.loadPropertiesXxx methods.

 

Additions for V5.1

 

1.      Support for calling RESTful web services has been added which can be achieved in two ways:

 

·         Using the API from a Javascript script via services.rest.xx

·         Using the new REST Web Services Resource

 

Various security options are supported including OAUTH. Click here for details. Note that the ability to publish an Integration Service as a REST based service is planned for the next Ebase Xi release.

 

2.      Performance improvements to server-side Javascript. The execution of scripts should be significantly faster when executing either for a single user or under load.

 

3.      A link to the Ebase Xi Vault application on the Ebase website is available via Help > Ebase Xi Vault. Ebase Xi Vault provides many samples, videos, complete apps etc and these can be viewed from the designer and/or downloaded directly into the workspace (to the Vault folder in the ebaseSamples project) by clicking the Download button at the top of each item page. The Ebase Xi Vault will continue to be expanded in the future and is intended to be a major source of advice and samples covering all aspects of Ebase Xi.

 

4.      Performance improvements to the refresh of the entity tree in the Ebase Xi designer.

 

5.      New variable services has been added to the Javascript API. This provides access to all the xxxServices classes within the script API e.g. DateServices, EncryptionServices etc. Previously these xxxServices class names had to be included within a script statement e.g. DateServices.formatDate(x, y) whereas this can now be coded as services.date.formatDate(x, y). This makes it easier to understand which services classes are available.

 

6.      The ability to exclude folders from the entity tree has been added. By default this includes .svn, .cvs and .git. These folder types are configured using Designer Preferences.

 

7.      A new template xiDefault is supplied.

 

Additions for V5.0

 

Ebase Xi V5.0 introduces major changes. Click here for full details. Here is a brief summary of the main changes:

 

  1. In V5.0, all objects created in the designer are saved to a directory within the local file system called a workspace, instead of to the Repository Database as was the case with V4.0. The concept of a multi-user single server development environment (V4.0) has been replaced with the concept of single developers each with their own private development environment, and sharing their workspace files via a source control system such as CVS or SVN.

 

  1. Entities created in the designer can be saved anywhere in the workspace with the only restriction being that everything must exist within a project.

 

  1. Web Resource files such as images, style sheets, HTML files etc can now be created and edited using the designer and are saved in the workspace.

 

  1. All named elements e.g. entities, fields, tables, pages etc. are now case sensitive. The FPL scripting language remains case insensitive, Javascript is case sensitive.

 

  1. Referential integrity for all relationships is much improved. This includes:
    1. Display of where referenced and where used information
    2. More accurate information when deleting
    3. Automatic updates when refactoring e.g. renaming, moving etc.

 

  1. The designer and server components have been separated: these two components can largely exist independently of each other. In particular, the designer can be started without a server.

 

  1. Introduction of an integrated test server (this is an option) within the designer. This is started/stopped automatically with the designer and is largely invisible to the designer user.

 

  1. Introduction of a new Server Administration Application. This is an Ebase Xi form application that provides all administration of the server component. Many items that were edited in the designer in V4.0 have now moved to the server e.g. database connections, FPL functions, languages, security etc. Most of the properties from UFSSetup.properties have been moved to separate properties files and are maintained by the Server Administration Application.

 

  1. The Repository database is still used in V5.0, but now contains solely runtime information; this includes: workflow runtime data, scheduled task runtime data, Ebase security (if used).

 

  1. A new deployment capability has been introduced with modules in both the designer and the server.

 

  1. Components can be created anywhere in the workspace. There is no special GLOBAL project where scripts and messages are shared and there is no longer a concept of a global anything. Designers are free to create a common project and share it with all other projects if they want to, to achieve the same result.

 

  1. Business Views have been removed and replaced with a Resources View panel in each form, component, workflow process etc.

 

  1. Messages (the ability to create numbered message texts) have been removed as a separate entity – these have been merged with texts. There are also changes to the API to issue a message.

 

  1. Sequences have been removed from the designer. These are now created automatically as they are referenced. The Server Admin Application provides the ability to edit the sequence number ranges.

 

  1. Scheduled Tasks are now entities that can be created anywhere in the workspace.

 

  1. The configuration of a Database Connection has been moved from the designer to the server.

 

  1. It is not possible to restore a snapshot created in V4 into V5 and this same restriction also applies to save/restore. However starting from V5.0 both snapshots and save/restore have been changed to be release independent so this restriction will not apply in the future.

 

 

Additions for V4.5.1

 

  1. A new layout – Custom Layout  - has been introduced. This allows you to specify your own HTML/CSS to layout child controls of a container such as a Panel Control. Click here for details.

 

  1. The Client API has been enhanced so that it can be used more easily within a component: when a request is received on the server from a client event from within a control, all references to fields, tables, resources etc will be within the component context.

 

  1. A new parameter Ufs.localBaseUrl has been added to UFSSetup.properties. This addresses the difficulty of resolving URLs for images and stylesheets during generation of a PDF when a web listener such as IIS is located in a DMZ. Use of this parameter enables the system to resolve these URLs locally without the need to call back to the web listener. Click here for details.

 

 

Additions for V4.5

 

  1. Introduction of a Client API. This is an Ebase Javascipt API that can be called from client-side Javascript and enables data to be transferred to/from the browser client and the form executing on the server. It also provides the ability to execute a Javascript function on the server directly from the client. This API makes it much easier to write rich client applications where more and more functionality is transferred to the client, but where client code needs to access or display data held on the server. Click here for more details.

 

  1. A new client-side event map has been introduced. This shows all the client-side configuration for a page in a single panel and makes it much easier to understand where and how rich client features have been architected. This is available from the form editor via the Event maps dropdown on the main toolbar or by entering Ctrl/Shift C. Click here for more details.

 

  1. The client Javascript editor has been improved and now includes code-assist, syntax checking and many more features. These features were previously only available with the server-side Javascript editor.

 

  1. In both the client-side and server-side Javascript editors, it is now possible to drill down into functions and attributes by hovering over a reference and holding down the Ctrl key. Left (Alt left) and right (Alt right) arrows have been added to the top toolbar to navigate backwards and forwards between drill down script locations.

 

  1. The URL used to run a form has been changed so that it can be more easily bookmarked by users. In particular it has been changed so that the form id and any initial parameters are always shown. Click here for more details.

 

  1. Enhancements to the server-side API:

 

·         New method form.uploadFileFromBrowser(options) has been added: this enhances upload functionality and adds a number of new options available with each upload: target directory, maximum file size, supported file types and MIME types. The new options are only available when invoked via a Javascript script, they are not available when using FPL.

 

·         New method createCustomList(array) has been added to the WebFormFieldOrColumn interface which provides a simpler way to create a list for a field or table column when using a Javascript script.

 

·         New methods getNextPage() and getPreviousPage() have been added to the Page object.

 

  1. Change of behaviour: HTML output is now generated for Empty Text Controls – this will be an empty <span> tag; previously output was suppressed. This will impact the layout of any form pages where empty Text Controls exist inside a Column Layout.

 

  1. Change of behaviour: warning and error messages are now displayed when they are associated with a hidden control; previously, such messages were suppressed.

 

  1. The Designer References Panel (usually shown in the bottom left-hand corner of the designer window) can now be floated by dragging it to any non-dockable location. This can be useful when working with the new client-side event map (see item 2 above) or the server-side event map. If at first this doesn’t work, it may be necessary to delete the .Ebase/designer/xxx_tree.layout file in your home directory and restart the designer.

 

  1. The level of javamail has been upgraded from 1.4 to 1.5 providing support for IMAP.

 

 

Additions for V4.4

 

  1. The ability to write server-side scripts in Javascript has been added. The Javascript editor provides code-assist features supporting auto-completion with knowledge of the fields, tables, controls, pages, resources etc within the form linked to the script. Access to form data is provided by a new API – this provides all the form specific functionality contained within the FPL programming language plus quite a lot of new functionality, some of which is listed below. It is also possible to access Java classes directly from Javascript and this feature makes it possible for customers to use Java libraries without the need to write a custom function or a custom resource. Javascript scripts can be called from FPL scripts using callscript, but the reverse is not possible. Additional programming languages accessing the new API will be introduced in the future.

 

Click here for further details.

 

The following lists some of the new functionality available from the new programming API (currently accessible only from server-side Javascript):

 

·         Logon a user at any point (previously logon was only possible with a new user session)

·         Logoff a user

·         Controls can be flagged with modifiers which can then be used to make programmatic changes to the controls: for example, to hide controls or make them display only

·         Populate a list from a script

·         Ability to retrieve list display and return values

·         Ability to turn resource debug on/off from a script

·         Direct access to database connections

·         Direct access to the full workflow API

·         Access to information about the client browser: browser type, mobile device, request and response headers, cookiers, user URL etc

·         Ability to add warning/error messages to any page or control

·         Ability to choose whether or not adding a warning/error message should stop processing and return to the user. This makes it possible to fully validate user input and accumulate multiple error messages.

·         A complete range of file services.

·         Unlimited ability to switch between component and form contexts e.g. fetch a table inside a deployed component

·         A new Snapshot capability provides a more flexible programmable alternative to the existing Save/Restore feature. This allows an application to take full control of the user interface.

·         A new field type of Object makes it possible to create complex object structures and save these in the form’s state

 

  1. An option to use Ajax for communication between browser clients and the server has been introduced. When the same form page is redisplayed, only controls that have changed are refreshed. This results in a much smoother interface for the end user. Click here for further details.

 

  1. The implementation of support for the browser back button has changed substantially with this release and may have implications for end users. These changes have been introduced to provide support for using the back button in conjunction with Ajax posts. In general, these changes should make it easier to develop forms and applications that support use of the browser back button. The most significant changes are:

 

·         When the browser back or forward button is used, the page is refreshed from the server immediately so the user always sees the latest data for each page (this refresh did not occur with previous releases).

·         This page refresh can result in the display of the invalid page error page when the requested page is no longer available e.g. after a GOTO FORM.

 

Click here for more details on back button support.

 

  1. An option to support timezones for fields of type TIME, DATETIME and DATE has been added with parameter Ufs.useSystemTimezone in UFSSetup.properties. Click here for details. Setting this parameter to true may affect legacy applications. The default value is false, which provides the same behaviour as in previous releases. For new systems, it is recommended that this parameter is set to true.

 

  1. When adding scripts to an event, an option to create a new script has been added. Click here for details.

 

 

Additions for V4.3

 

  1. The ability to add JavaScript to generated HTML pages has been added. This is intended to provide a framework to enable the building of rich client applications. This support is oriented towards the use of the jQuery framework; however, other frameworks could also be used, or the facility could be used to write native JavaScript for other purposes. Click here for further details. More rich client features will be introduced in upcoming versions of Ebase Xi.

 

  1. Enhancements to the FPL scripting language:

 

·         Local variables and tables are now supported. Click here for further details.

·         Parameters (fields, variables, tables etc) can be passed from one script to another using the callscript FPL command. Receivable parameters are declared for each script using a script statement which must be the first statement in any script. Click here for further details.

·         Recursion is now allowed using the callscript command i.e. it is now legal for a called script to call itself.

·         The word set is no longer required for assignment statements e.g.

  set MYFIELD = 'value';

can now be coded as:

  MYFIELD = 'value';

·         Multiple lines in a script can be commented or uncommented using shortcut key Ctrl /. This is also available via the right click menu in the script editor.

 

  1. The syntax of the callscript FPL command no longer supports an extended expression to represent a script name e.g. the following is no longer supported:

 

callscript 'ABC' + tostring(SCRIPTNUM);

 

Note however that the scriptname can be specified as a single variable or field name to be evaluated i.e. the following is supported:

 

char sn = 'ABC' + tostring(SCRIPTNUM);

callscript sn;

 

  1. The ability to search all elements within the Designer tree structure has been introduced. There is both a quick search (Ctrl Q) and an extended search (Ctrl Alt F). These are both also available from the toolbar at the top of the Designer tree panel.

 

  1. Database Changes:

 

·         Database elements have been renamed as Database Connections. These have also been re-vamped and now have a new ability to define and use a database connection just using the Ebase Designer. Before this, it was necessary to add a data source definition to the application server’s context file (ufs.xml) and then refer to this in the Database Connection. Click here for details.

 

·         A new Database Connection wizard has been added. This is available from the Database Connection editor or via the Tools main menu. Click here for details.

 

·         The ability to import tables, views or stored procedures from a database was previously only available from the Database editor. This has now been added to the Database Resource and Stored Procedure editors. Click here for details.

 

·         The JDBC driver for Postgres has been added to the standard Ebase Xi distribution.

 

·         Support for Lotus Notes as a named database type has been dropped. It is still possible to connect to Lotus Notes using the supplied JDBC driver.

 

  1. A new icon has been added to the toolbar of all External Resource editors to add the resource directly to a Business View.

 

  1. Border radius properties have been added to the existing control border properties. This provides the ability to provide curved borders for panels, buttons etc without the need to specify advanced styling properties.

 

  1. Most of the individual editor panels have been re-vamped. The changes include:

·         Standardising appearance

·         Standardising the location of all save, help, undo and redo buttons

·         Adding a toolbar and moving functionality from buttons to icons on the toolbar

·         Introducing a new information icon on the toolbar of all editors. This shows the userid and dates the element was created, last changed and imported.

If you can’t find something you’re looking for in one of these editors, it’s probably moved to the toolbar at the top of the editor.

 

  1. A Link with editor icon has been added to the Designer tree panel toolbar. This automatically opens the tree panel to show the element currently being edited.

 

  1. A form or component can be executed without the need to first open it. Right click on the form/component in the tree and select Run.

 

  1. You can now configure page-level events by right clicking on a page in the Pages View and selecting Events.

 

  1. The location of Style Sheets within the Designer Tree panel has changed. These are now found in the Web Resources section.

 

  1. It is now possible to specify the MQ Manager port for individual MQ Resources.

 

  1. Integration Services can now be published using either SOAP 1.1 or SOAP 1.2 (previously only SOAP 1.1 was supported).

 

  1. The ability to control page breaks within Repeater Controls in a PDF has been added. Previously, this was available just for Table Controls.

 

 

Additions for V4.2

 

  1. The main change in this release is the introduction of a new internal memory model for the Ebase Server. This change should result in dramatically less memory use for production systems, which in turn means that much higher concurrency rates can be supported. Another result of this change is that it is now much easier to cluster Ebase server instances and thereby support extremely large numbers of users and transaction rates.

 

This change is almost entirely internal and should be completely transparent to most customers.

 

Changes that are visible externally are:

 

·         The system now uses Ehcache to cache internal objects; this replaces the previous cache which was written in-house. One of the advantages of Ehcache is that the cache can be shared amongst instances of a cluster, therefore any changes imported are immediately available to all instances. This new cache is also configurable. Click here for further details.

·         The save/restore feature now saves and restores all forms in the form stack (i.e. a sequence of forms called via CALL FORM). In previous versions, only the top form was saved and restored which meant that this feature could not be used in conjunction with CALL FORM.

 

  1. The following FPL changes have been introduced:

 

·         The fetchtable command has a new option NOUPDATE. This tells the system that the application will not issue an updatetable command after the fetchtable. This reduces the amount of memory required to support the table content data by about 50%. It is recommended that this option should be used for all read only tables.

·         The following commands all have a new NOFAIL option: fetch, fetchtable, call, exec. When this option is used, any failures will result in a command status ($COMMAND_STATUS) other than “OK”, but will not crash the executing form.

 

  1. Use of the XFire library has been replaced with CXF. XFire is used as part of the support for XML and Web Services Resources. This is an internal change that should not have any impact.

 

  1. The fields wizard has been extended to support the import of fields from an external resource.

 

  1. When a form is run from the designer, the memory for all previously run designer forms is now released. This is to stop the accumulation of memory where forms are repeatedly run from the designer, each one opening in a new browser tab. The result of this is that if you return to a tab in the browser for an earlier form submitted from the designer, the system will display a timeout message.

 

  1. When importing a form, the system will no longer issue a warning message when a duplicate form UID (unique id) is detected. Instead the uid will be silently changed to ensure that it is unique. This may impact customers who use the form uid to generate barcodes included in print forms.

 

  1. Experimental changes: these represent new functionality that should become fully supported some time in the near future. In the meantime, changes in the specification of these features may occur. These new features can be used in production systems with the proviso that small changes may be required to developed applications in the future to maintain compatibility.

 

·         A new workflow Pause node has been added. This pauses the execution of a workflow job until some specific event occurs. This is intended primarily to make it easy to include tasks from external systems into a workflow process, where the external system does not have the ability to integrate with Ebase Workflow. A Pause node can be terminated in a number of ways: by an external command, an FPL command or by scheduled execution of a script to check on some external event. Click here for further details. This change is activated by adding property -DexperimentalV42=true to JAVA_PROPERTIES in file start_ebase_designer.bat.

 

 

Additions for V4.1

 

  1. This release introduces many new features to make it easier and faster to design and style web pages. This includes the ability to design web pages without any knowledge of CSS or HTML. Click here for an introduction to designing and styling web pages. The changes include:

 

·         Styling Assistants: Each control has a new Styling Assistant which presents easy to understand properties and shows a preview of the control as changes are made. This is intended to hide the complexities of CSS from the designer. The Styling Assistants can be accessed in many ways including: clicking the Control style property in the properties for each control, pressing Ctrl T when a control is selected. Click here for details.

 

·         Property Sets: Control properties including all the properties generated by the Styling Assistants can be saved in Property Sets in presentation templates. Property Sets are all about reuse and allow you to quickly apply style to a control. They also make it easier to create presentation templates to represent themes. Click here for details. Presentation Templates upgraded from V3.4 will contain many Property Sets containing the V3.4 styling properties.

 

·         Layout enhancements:  layouts are a very powerful tool for laying out page content. These have been enhanced to make it much easier to achieve advanced page layouts. Most of the layout features required to design a page are available as standard properties which are configured using a Layout Styling Assistant; to access these styling assistants, click the Layout properties property for any container control. Click here for details.

 

·         Component Styling: components can now be styled and deployed so that style is maintained. A presentation template can be associated with a component in the same way as for a form. Once this is done, controls can be styled by loading property sets from the template, and this styling is maintained when a component is inserted into a target form or another component. You also have the choice of styling components so that the components inherit the style of the forms where they are inserted – this is equivalent to behaviour in V3.4.

 

·         A number of sample presentation templates are included. The EBASE_THEMES template contains a number of defined themes and is a good starting point. Click here for details.

 

·         Almost all control properties, including those configured via Styling Assitants, can be changed dynamically using FPL. The documentation for each control contains the property names, types and accepted values, and also contains examples of changing these using FPL. Click here for details.

 

·         The list of component properties that can be changed once a component has been inserted into a form/component has been expanded and now includes nearly all properties.

 

  1. In V4.0 styling is achieved using a combination of CSS classes and inline style. These can still be configured in V4.1 and work in the same way – they are now configured using the Advanced Properties within each Styling Assistant. Click here for details.

 

  1. A new printing technique has been added making it much faster to create print pages (PDFs). Web pages and print pages are interchangeable and the same designer is used to create both; each page can be a web page and/or a print page. The new OUTPUTPAGE FPL command is used to generate and display a PDF document from one or more pages. Print pages will normally expand dynamically to accommodate their content e.g. a table with many rows. Special options are available with Table Controls to configure expansion onto new pages – whether each table row is interrupted or starts on a new page, whether column headers are repeated on each new page. Click here for details.

  2. The print form facility which was used in previous releases will not be further enhanced in the future. The print form designer is now available from within the Form Editor by selecting Form --> Show Print Form Design from the main menu. Selecting this option again returns to the main WYSIWYG View.

 

  1. A new Repeater Control has been added which provides full design flexibility for displaying tabular data. For example, it is possible to display a table row across multiple lines and to mix in non-tabular elements with the tabular data. Repeater Controls can be nested to any level. Table Controls can also be nested inside Repeater Controls. Repeater Controls share much functionality with Table Controls e.g. current row concept, ability to specify navigation bars. Click here for details.

 

  1. Both Repeater Controls and Table Controls now include the ability to specify a table filter: this provides the ability to filter which rows should be displayed to the user. It is important to realise that a table filter does not affect the rows in the underlying data table; it is applied as the output for each page is generated and controls which rows are displayed. These filters could be used for many purposes, but probably the most common use is to display nested tables representing parent/child relationships. Nested tables are also useful for report generation, particularly in conjunction with the new printing facility. Click here for details.

 

  1. Cut and paste within the Form Editor and Component Editor has been extended. It is now possible to freely cut and paste fields/tables/controls/pages within forms, between forms, between forms and components etc.

 

  1. New controls added with this release are:

 

·         Repeater Control: as described above

·         Spacer Control: provides horizontal and vertical spacing (an alternative to using margins or layouts)

·         Page Break Control: for use with print pages

·         Bar Code Control: bar codes on print pages or web pages

 

  1. A new option Use Prepared Statement has been added to Database Resources and this option is the default for all new resources. Prepared Statements provide a number of benefits including the ability to read and write CLOB types.

 

  1. A new option Dynamic Sql is available for both Database Resources and Dynamic Lists. This makes it easier to create and use dynamically created SQL statements e.g. for a flexible search; it also provides a technique for doing this which is not subject to SQL Injection attack. Click here for details.

 

  1. It's now possible to specify a header text for drop down lists i.e. the Please Select text can be specified. This is configured using properties in the Lists section of Field Properties.

 

  1. A new Getting Started page has been added with links to tutorials and the Ebase Resource Centre. The Resource Centre is intended to be a repository of technical information and will be expanded over time. This page is shown automatically or by selecting Help --> Getting Started. It can be suppressed by unchecking the Show on startup option at the bottom of the page, or by unchecking the option in Designer Preferences under UI Options.

 

  1. A presentation template is no longer required for each form.

 

  1. The default presentation template should now be specified using designer preferences (File --> Preferences --> Form Options). Parameters Ufs.defaultComponentPresentationTemplate and Ufs.defaultFormPresentationTemplate in file UFSSetup.properties are no longer used.

 

  1. The list of standard colors and fonts can be configured by editing the installation preferences file on the server (this is normally located in UfsServer/webapps/ufs/preferences/installation_preferences.xml). This controls which colors and fonts are available throughout the designer. Click here for details.

 

  1. The workflow process administrator and sample task list applications have been replaced. The replacement forms named WF_TASKLIST and WORKFLOW_ADMINISTRATOR can be found in the SAMPLES project. The applet used in the old process administrator form to display job status will no longer work. The new process administrator form should be used instead.

 

  1. The following changes are applicable to V4.0 users upgrading to V4.1:

 

·         CSS styling specified for menus, both Horizontal Menu Controls and Vertical Menu Controls, will no longer inherit from one menu level to another. It is now necessary to specify the styling at each menu level where it is required. Alternatively, menus can be styled more easily using the new Styling Assistants.

 

 

Additions for V4.0

 

Ebase Version 4.0 introduces major changes in functionality in both the server and designer. Click here for details.

 

Additions for V3.4.0

 

Server changes:

 

  1. The after field event has been split into two new events: a validation event and an immediate event (the immediate event is shown in the designer as either an on click or an on change event). This change resolves a problem where after field events for immediate validation fields were executed unexpectedly. See understanding Ebase events for more information.

 

The upgrade process has converted after field events as follows:

 

Field Type

Pre V3.4 event

V3.4 event

Button

After Field

On Click

Hyperlink

After Field

On Click

Immediate Validation

After Field

Validation (no change)

All other field types

After Field

Validation (no change)

 

Note that after field events for immediate validation fields have not been automatically converted to the new on change event. The reason for this is to maintain compatability with previous releases. However, when the functionality performed by such an event is solely to execute some sort of immediate action (as opposed to validation of field content), the event can safely be manually changed to an on change event.

 

Upgrade compatibility note: Fields which are dynamically changed to become hyperlinks using the FPL command set XXX hyperlink are not converted automatically and the conversion must be done manually after the upgrade process has been completed. For all such fields, remove any scripts from the validation event and add them to the on click event.

 

  1. Starting from this release, a validation event for a field is executed only when the field’s value is set or changed (either by the user or some other mechanism e.g. via a resource, list, FPL command etc.). In previous releases, the after field event was also executed when a change was made to the value of a field higher on the same page. This change represents a simplification and it is unlikely to cause problems for existing forms.

 

Upgrade compatibility note: forms that rely on after field events executing when a change is made to a field higher on the same page will need to be amended.

 

  1. A new previous page event has been introduced. This runs when the system-supplied previous page button is clicked. See understanding Ebase events for more information.

 

  1. A new skip validation option can be configured for buttons. This option is intended to be used for buttons that have “cancel” or “go back” functions. When this option is selected, the system skips the validation that is normally executed: this includes the check for missing mandatory fields, checks against any field validators and any supplied validation events. This option is configured by right clicking on a button and selecting button properties.

 

  1. Support has been added for the browser back button. A property can be configured for each form which controls whether or not that form supports the use of the browser back button. When back button support is enabled, the user is allowed to use the back button to return to an earlier page or an earlier form and continue from that point; a browser back button event is fired to allow the form to reset any state to handle this. When back button support is disabled, Javascript is used to intercept the back button and return the user to the last page displayed. See browser back button support for more details.

 

Upgrade compatibility note: this represents a change of behaviour when browser back button support is disabled (which is the default): in earlier releases, the back button appeared to work and then the user was returned to the last page displayed when he/she clicked on a button or hyperlink. In this release the back button is intercepted and it is obvious to the user that it cannot be used.

 

  1. Operation without cookies is supported so long as support for the browser back button is enabled. See cookieless operation for more details.

 

  1. The system now provides protection against the user repeatedly clicking on a button or hyperlink without waiting for a response. The system behaviour when this occurs is to process only the first message received. See repeated clicking for more details.

 

  1. The limitations on the use of the call form FPL command have been removed.

 

  1. The call url and goto url FPL commands have new options of GET (the default) or POST.

 

  1. New options have been added to control when a dynamic list is built. For all new dynamic lists, the default is that the list is only built when it is first displayed. Dynamic lists created in previous versions will be built each time the page is displayed – this is the same behaviour as all previous releases.

 

  1. When a dynamic list is configured for a table column, the system will, where possible, just build a single list and share this between all rows of the table. This is a performance enhancement and does not have any functional implications.

 

  1. Support is provided for environment variables. These are defined in the web.xml file and will normally be used to hold constants for a particular server instance e.g. file path locations, remote url’s etc. Environment variables are used in the same way as form fields and can be used in FPL commands, to specify the URL in print resources, in adapter parameters for XML and Web Services Resources, to specify the URL for button images etc. See environment variables for more details.

 

  1. Print forms have been enhanced to allow certain elements to expand dynamically to accommodate the data content; this includes tables, tick lists and text areas. When an element is dynamic, all elements below the dynamic element are automatically shifted down the page, or onto a new page if the element is moved past the bottom of the page.  See dynamic print form elements for more details.

 

  1. The widths of the table cells used for form field labels, field values and field help texts can now be specified in the form editor using slider bar controls. The slider bars are available at both page and group level. In previous releases, these table cell widths could only be changed by creating additional sheets in the presentation template.

 

  1. New options have been introduced to allow the scrolling bar control for a table to be configured in the presentation template. This includes:

·         scroll bar can be located above or below a table, or both

·         scroll bar can be aligned left, right or centre

·         clickable page numbers can be included

·         top, next, back and bottom controls can be images or texts

·         the top and bottom controls are optional

·         an optional prefix text can be included

·         stylesheets can be applied to each part of the scroll bar

The scroll bar can be previewed in the designer.

 

Upgrade compatibility note: the relative positions of the top, next, previous and bottom icons has changed as follows:

V3.4.0 (from left to right): top, next, previous, bottom (the same as most search engines)

Earlier releases (from left to right): next, bottom, top, previous  

 

  1. The rows displayed when a user scrolls page by page to the bottom of a table have changed. In previous releases, a full page of rows was always displayed as the last page. Starting from this release, scrolling to the bottom page is handled in the same way as scrolling to any other page. For example: a table has 12 rows and are displayed in sets of 5. Scrolling page by page through this table in previous releases would display: rows 1 – 5, rows 6 – 10, rows 8 – 12. Scrolling page by page through this table in this release will display: rows 1 – 5, rows 6 – 10, rows 11 – 12.

 

Upgrade compatibility note: this represents a change in behaviour. See description in paragraph above.

 

  1. A new option in table properties has been added to allow the display of table column headers to be suppressed.

 

  1. Empty tables will only be displayed if they contain an add row button or the display row info option is selected. In previous releases, empty tables were sometimes displayed with just column headers or with just a rectangle surrounding the table.

 

Upgrade compatibility note: this represents a change in behaviour. See description in paragraph above.

 

  1. A new option NODISPLAY has been added to the PRINT and PDFPRINT FPL commands. This allows a PDF to be generated and saved to the file system, but without display to the user.

 

  1. Many field and table properties can be accessed read-only in FPL using property expressions fieldname.propertyname e.g.

if [ MYTAB.rowCount > 0 ]

   ..

endif

Note that the rowCount property can be used to query the number of rows in a table at any time. See table and field property expressions for more detail.

 

  1. Some table properties can be changed using the new set table FPL command e.g:

·         set table MYTAB.numrows = 12;

·         set table MYTAB.columnHeaders = false;

See the set table FPL command for a list of properties.

 

  1. The FPL command SET TEXT has been deprecated. See the command description for an alternative.

 

  1. The following parameters in UFSSetup.properties are no longer required to work with sequences: Ufs.dbDriver, Ufs.dbUrl, Ufs.dbUserid, Ufs.dbPassword. Starting from this release, sequences do not require any configuration. It is not necessary to remove these parameters.

 

  1. The isauthorised() FPL function has been deprecated, use isauthorized() instead.

 

  1. It is now possible to specify the character encoding to be used for each language. This should only be specified where the default encoding provided by the application server is incorrect. See character encoding for more details.

 

  1. Starting from this release, an integration service can no longer be invoked using a CALL FORM command, or via the scheduler, or via the run button in the designer. An integration service can only be invoked via a Web Services request.

 

  1. When Oracle is used for the Ebase Repository database, the minimum level of the Oracle JDBC driver supported by Ebase has changed to Oracle 10g Release 2 (10.0.2.3). This change arises because all Oracle LONG columns are changed to CLOBs as part of the upgrade procedure and there are problems with Oracle support for CLOBs that are only resolved at the latest level. The required level of the driver can be downloaded from here. For Tomcat systems, this should be copied to Tomcat/common/lib.

 

Upgrade compatibility note: if Oracle is used for the Ebase Repository database, please check the level of the JDBC driver as described above. If this instruction is not followed, ORA-0600 failures can occur when saving data to columns of type CLOB where the data length is greater than 4000 characters.

 

 

Designer changes:

 

  1. Many usability changes have been made to the designer tree which appears on the left hand side of the designer panel. The most obvious change is that it is now necessary to double click on an item to open it – in previous releases a single click was used to open an item. The following new or enhanced functions are available by right clicking on elements in the designer tree:

 

·         Create new element - allows creation of all element types supported as children of the clicked element

·         Open – same as double click

·         Delete – displays warning messages if the elements are referenced by other elements

·         Copy

·         Rename

·         Move – moves item(s) to another project

·         Export – opens the export dialog for the selected item(s)

·         References – opens the References panel in the bottom left of the designer window

 

Many of these functions can be used when multiple elements have been selected.

 

Upgrade compatibility note: a double click is now required to open elements in the designer.

 

  1. The events dialog for adding scripts to events has been changed. The available events for an element are now displayed in a tabpane format. Any events where one or more scripts are already configured are identified by a superscripted * character to the right of the tab name. When the Add Script button is clicked, all scripts in the current project are displayed first, followed by all scripts in the GLOBAL project.

 

  1. The execution order of scripts within an event can be changed by clicking on new up and down arrows.

 

  1. A new events view of a form or component has been added – this provides a view of all script processing for a form or component. This view is selected by clicking the display event map icon  on the form tool bar or selecting Form -> Tools -> Display Event map from the menu. When selected, the event map view is displayed in the References panel in the bottom left of the designer window. Only those events that have one or more scripts configured are shown. Scripts can be opened in the script editor by double clicking on the script name.

 

  1. New testing dialogs have been added to allow both Integration Services and Web Services Resources to be tested. An Integration Service is tested by first publishing it as a Web Service then clicking the Test Web Service button in the Web Services editor. A Web Services Resources is tested by clicking the Test Web Service button from the adapter configuration panel of a Web Services Resource.

 

  1. When an element is opened that is locked by another user, it will now be opened in read-only mode.

 

  1. When fields are inserted or dropped on the last field of a group in the form editor, the fields will no longer be added to the group.

 

  1. References to a form field can now be displayed by right clicking on the field in the fields panel (right-hand panel in the form editor) and selecting References. The field references panel appears in the bottom left hand corner of the designer window. Please note that, at present, this function will not report references to a field from a script.

 

  1. When a new field is added to a form by clicking the new field icon  in the fields panel (right-hand panel in the form editor), it is now added to the top of the fields table. In previous releases, new fields were added to the bottom of the fields table.

 

  1. The import and export dialogs now support the use of sub-directories within the transport directory.

 

  1. The export function allows the replacement of existing export files.

 

  1. More options have been added to the designer preferences dialog.

 

  1. A Browse.. button has been added to all panels in the designer where a file or URL on the server can be configured e.g. location of images, JSPs etc.

 

  1. The open items toolbar at the top of the designer has been re-structured. When this is full, the  icon is displayed which can be used to access additional open items.

 

  1. The image for a library form can now be stored either locally in the UfsClient/images folder or remotely on the server. In previous releases, the image could only be stored locally. A Browse button has been added to the form properties dialog for forms in the LIBRARY project to support server browsing.

 

  1. There are numerous additional minor changes to designer dialogs and panels.

 

  1. Support for Ctrl-S key press to save the selected frame and support for F1 key press that displays the appropriate help topic on the selected frame.

 

  1. Search control when adding a resource to a business view and when adding script to events panels. Type search when either dialog is displayed and a search textbox appears that automatically selected the item that is the nearest match to the search criteria.

 

 

Java developer changes:

 

  1. Use of method getFieldValue() in ResourceRequestInterface has been deprecated. For new developments, use getFieldValue2() instead – this method differs from getFieldValue() in that it returns a Long object for fields of type DATE instead of a String, otherwise it is identical. The Long object can then be used to create an instance of java.util.Date.

 

  1. Use of methods getCurrentValue() and getOriginalValue() in TableCell has been deprecated. For new developments, use getCurrentValue2() and getOriginalValue2() instead. These methods have been deprecated because they return internal Ebase SystemValue objects.

 

 

Additions for V3.3.1

 

 

  1. Introduction of the Ebase Integration Server. This separately licensed component allows Web Services to be created and published. Each web service operation is associated with an Integration Service which runs an integration event when the web service is called.

 

  1. The FPL script editor has been improved and a number of features have been added including line numbers, find, undo and redo, cut and paste etc. A script assistant popup panel has also been added which is invoked by Ctl + space bar. This panel presents lists of form fields, pages, resources, commands etc that can be selected and inserted directly into a script. See working with scripts for more details.

 

  1. The XML and Web Services resources have been enhanced to allow the creation and editing of document structures. This is in addition to the existing functionality that allows the import of xsd and wsdl files. Also, the structure of XML documents has been made more clearly visible.

 

  1. New FPL script command interpret has been added.  This command evaluates an expression and then processes the result as an FPL command. See FPL command syntax for more details.

 

  1. New FPL script  command copytable has been added.  This copies the contents of one table to another. See FPL command syntax for more details.

 

  1. A new system variable $COMPONENT_PREFIX has been added which contains the component prefix that applies to the event being executed.

 

Additions for V3.3.0

 

  1. Introduction of the Ebase Workflow system.

 

  1. Addition of two new external resource types: XML Resources and Web Services Resources. These new resource types provide comprehensive facilities for processing XML documents and calling Web Services. The new resources use adapters to specify the details of where an XML document is read from or written to e.g. a Web Services Adapter provides details of the target system for a web service, a File Adapter provides file paths for reading and writing XML documents from or to the file system etc. Internally, XML Resources are the same as Web Services Resources, the only difference being the selection of a different adapter type. See XML Resource Concepts for more information.

 

Upgrade Note: the custom resources XMLCustomCustomResource, WebServicesCustomResource and XMLCustomResourceExample that were initially shipped in V3.2.1 are still supported in V3.3 and subsequent releases and forms using these resources will continue to operate without change. However, these custom resources will not be developed further, and it is recommended that all new applications requiring XML and/or Web Services support  use the new resources.

 

  1. A new security model that allows authentication of runtime users and subsequent authorisation checks. This includes a new authorisation to control form execution. In addition, a new security authorisation is required to access the Ebase Designer.  (See Ebase Security for more information)

 

Please note that usernames are now case sensitive.

 

Upgrade Notes:

·         The upgrade process will make all configuration changes required to enable these changes. No further changes are required. 

·         The upgrade process will reset the passwords of all designer users. After the upgrade, each user will be requested to reset their password as they log on to the designer.

·         Please note that security profile definitions exported from a V3.2 system cannot be imported into V3.3. If this is attempted, a warning message will be issued and the profile elements will be ignored.

 

  1. The concept of validators has been introduced. A validator performs some sort of validation on input entered by an end user e.g. check length of entered data, regular expression, minimum and maximum values etc. The specific validators available for any field depend on the field type. Validation can be performed on the client (using javascript) or on the server or both. New validators introduced with this release are:

·         minimum length

·         regular expression

·         email address

·         credit card

·         numeric value range

Note that these validators are system provided validators and are not related to any specific validation of user input provided as part of a form as an FPL script.

 

The following changes have been made to the field properties dialog to accommodate validators:

·         The maximum field length attribute is now a validator

·         The input mask attribute is now a validator

·         The check on the number of decimal digits that can be entered for numeric fields is now optional

 

See validators for more information.

 

Upgrade Note: in all earlier releases, a check on the length of data entered for each field by end users was only performed if the user had changed the contents of the field. Starting from this release, this length check is performed on all enterable fields regardless of whether or not data has been changed by the end user. It is therefore possible that an application that works in a previous release now fails. For example a field ADDRESS_LINE1 has been imported from a database into a form via a database resource. In the database and the database resource, the maximum length of ADDRESS_LINE1 is defined as 400, but in the form the maximum display length has been changed to 50. An application that reads the data from the database and allows the user to change it would work fine prior to this release with data values for ADDRESS_LINE1 greater than 50, so long as the end user did not change the data. However, starting from this release, this application will generate a validation error message as the unchanged data value is submitted to the server.

 

  1. The format of the Ebase licence file has changed. When upgrading to V3.3.0 or higher from V3.2.1 or an earlier release, it is necessary to apply for a new licence by following the licensing procedure.

 

Upgrade Note: a new licence is required when upgrading from any earlier release.

 

  1. A new ON ERROR event has been added which receives control when a runtime form error occurs. This can be used to route users to an error page, or to continue execution of the form if required.

 

  1. New ABORT FPL command can be used to terminate a form programmatically. Routes control to the ON ERROR event if configured.

 

8.      New facilities have been added to enable focus to be set to an individual field on each displayed page:

 

    1. The new setfocus FPL command
    2. Clicking on a form control that fires an event e.g. a button, hyperlink or immediate validation field, sets focus to the field that triggered the event
    3. Default focus is set to the first enterable field on each page

 

Upgrade Note: from this release, the default focus is set to the first enterable field on each page – this represents a change of behaviour as previous releases did not set any focus. In addition, customers who have added custom javascript to invoke the setFocus() function will need to disable the setting of default focus to the first field on each page. This can be done by setting Ufs.defaultFocusToFirstField=false in UFSSetup.properties. Alternatively, any such forms can be modified to include the new setfocus command and the custom javascript can then be removed. See Controlling Focus for more information)

 

9.      Support for multiple concurrent browser sessions for a single user.  This feature was added to V3.2.1 with fix pack 30032006 and is therefore only new for users upgrading from an earlier level. 

 

Upgrade Note: this can impact existing applications that use the Http session context to pass information into a form or between forms, and such applications may need to be modified. Please see the “Guidance for developers” section in Support for Multiple Sessions for details.

 

10.  Checkbox fields now support display with labels to the right or left of the control, and can be displayed horizontally or vertically. With this change, checkboxes have the same range of display options as radio buttons.

 

11.  A field can dynamically be set as a hyperlink using the set xxx HYPERLINK command. The corresponding unset command can be used to remove a hyperlink.

 

12.  New field types TIME and DATETIME have been added.  See field types for more information.

 

13.  Starting from this release, Ebase will be shipped with a number of additional FPL functions that are not part of the core FPL language and have not been added to the functions table. In general, these functions supply a piece of explicit functionality needed in a specific circumstance. They are documented separately and can be added as required (Tools à Maintain Functions).

 

14.  Form field variables specified in external resources, dynamic lists or form texts can now be specified using syntax &&VAR1 or &&{VAR1} . This new second format allows variables to be substituted regardless of the character following the variable name. In addition, when used in database resources and dynamic lists variables specified as &&{VAR1} will not be enclosed in single quotes. This means that this syntax can be used to build search queries using the SQL LIKE clause e.g. where XYZ like ‘%&&{SEARCHSTRING}%’.

 

15.  It is now possible to enter native SQL for both database resources and dynamic lists. In addition, substitutable variables can now be entered in all 4 SQL boxes for both database resources and dynamic lists. (See Working with Databases and Working with Dynamic Lists for more information)

 

16.  A new option has been added that allows a single list value to be selected when a dropdown list only contains a single entry (this is available from the lists tab of the field properties dialog.

 

Upgrade Note: selection of a single list value was the default behaviour before V3.3.0. Therefore, to maintain compatability, this option has been set for all existing fields by the upgrade process.

 

17.  A new parameter Ufs.presentationBorderSurround can be specified in UfsSetup.properties. When set to false, the rectangular box surrounding each displayed form is removed. This is a global property and applies to all forms in the system. (See Ebase Startup Parameters for more information)

 

18.  A new parameter Ufs.skipBrowserAttributesCheck can be specified in UfsSetup.properties. When set to true, the system skips the check of client browser capability that is normally made on each new browser connection. This can be useful to resolve problems that can occur when Ebase is displayed in a frame as part of a CRM or CMS system. (See Ebase Startup Parameters for more information)

 

19.  Recommended minimum screen resolution for the Ebase Designer has been increased to 1152 x 864. This resolution or greater is recommended if the designer is used to create workflow processes.

 

The following functional changes were introduced in fix packs for V3.2.1

 

20.  Additional methods insertRow() and deleteAllRows() have been added to UFSFormInterface. These methods enable tables to be populated from custom functions or JSPs. See online javadoc for further details.

 

  1. The instring( ) FPL function now has an optional 3rd parameter to specify the start position of a search.

 

22.  Change in scheduling of after page events. From this release, an after page event is always executed when the user has clicked the next page button or the finish button and all fields on the page have been validated. The only exception to this rule occurs when the after page event for the page was also executed as a result of the previous display of the page and this resulted in one or more warning messages. In this circumstance, if the user clicks again on the same next page button or the finish button and does not make any changes to fields on the page, execution of the after page event is bypassed.

 

23.  Changes in how some field types are displayed in print forms:

 

·         static list fields will now show display values instead of return values

 

·         date, numeric and currency fields appearing in tables are now displayed with regional formatting

 

 

Additions for V3.2.1

 

1.       Internationalisation Changes

 

Internationalisation support has been extended to include the following:

 

·         Extension of the language code to support the formatting of date and numeric fields.

·         Ability to extract the runtime language code used to run a form from any of:

o        The URL i.e. passed as a parameter

o        The session i.e. the language code was set earlier

o        The user’s browser preference

o        The system default language

·         The ability for end users to enter formatting characters (usually commas and decimal points)  in numeric fields

·         The ability to display texts in an alternate language if a text is not available for the current runtime language

·         The default language used for each designer user has been moved from the user security record to designer preferences

·         The ability to specify whether digit group separators are displayed on a field by field basis

·         Forms to be executed by the Ebase Batch System can specify a language

 

Please see Internationalisation Support for more information.

 

Upgrade Notes:

·         After upgrade, the internationalisation dialog (Tools à System Preferences à Internationalisation) must be used to set language preferences for your system. As a minimum, you should set the system default language (distributed as English) and the corresponding formatting language if the displayed formatting options are not acceptable.

·         The display of date and numeric fields may be slightly different compared to previous releases

·         Date and numeric fields supplied as input to the Ebase Batch System must now be supplied in the appropriate format for the language of the form

·         Language code EN is supplied with UK formatting of date and numeric fields. North American users should change this as follows:

    • Start the internationalisation dialog (Tools à System Preferences à Internationalisation)
    • Select English and click on Properties
    • Check the language code at the top of the page is ‘en’
    • Change the formatting language to American English (en_US)
    • All designer users should change their default language (File à Preferences)

 

2.       Enhancements to Import/Export 

 

  • Introduction of an alternative import/export technique based on a file structure where each file contains the export of a single Ebase element
  • When using this new technique, options are provided to export the entire Ebase Repository and to perform to import of an entire Ebase Repository deleting all existing elements
  • The ability to export all system elements with the exception of scheduled tasks
  • Scheduled import and export facility that can be triggered from an external script 

 

Upgrade Note: the following property must be added to the UFSSetup.properties on the Ebase server to enable the new file strucure based import and export feature. If this property is not configured then the additional functionality will be disabled.

 

        Ufs.export.location=<export-directory-location>

 

    (See Using import and export for more information)

 

3.       Changes in handling of the browser back button: these changes have been introduced to address problems when clicking the browser back button with certain versions of Internet Explorer 6. In previous Ebase releases, a page expired message or a failure message was displayed when the back button was clicked. This will no longer occur. Details of Ebase handling of the browser back button can be found in Known Issues.

 

4.      An option has been introduced to control the positioning of the HTML <form> tag in the generated output of each page. This option allows two conflicting requirements to be met:

 

  • the ability for included JSP or HTML panels to contain their own <form> tags unconnected with the Ebase form.
  • the ability for included JSP or HTML panels to contain form controls (e.g. buttons) that control processing of the Ebase form and to do this when Javascript is enabled or disabled.

 

See Interacting with an Ebase Form from a Panel for more information)

 

5.       Enhancements to the Ebase Scheduler to support triggering of a scheduled task from an external process or from the command line. A scheduled task can be triggered for execution by either an operating system command – ebasetrigger – or via an XML interface. See Ebase Scheduler for further details.

 

6.       Changes to table sort. Starting from this release, the system maintains a single sort order for each table, and this sort order can be set either by the end user using the sort icons or via the FPL SORT command. (See Table Concepts for more information)

 

Upgrade Note: in previous releases, an FPL sort command had no impact on the sort order displayed to the end user.

 

7.       Custom resource enhancements:

 

  • The custom resource editor now allows the specification of an external name for each resource field. This allows the external name to be different from the resource field. New methods on ResourceRequestInterface support this new property.

 

  • A new button has been added that allows an XML Schema document to be imported. This function creates a resource field hierarchy represented by the XML Schema document.

 

  • The restriction on the naming attribute fields has been removed

 

  • Methods of ResourceRequestInterface that return multiple fields e.g. getTopLevelNames, getChildren(), now return the fields in the order in which they are displayed in the custom resource editor.

 

  • Method getAllRows() of TableDataInterface now returns rows in sort order.

 

  • Each table row within a table is now identified by a unique number. Methods are supplied on TableRow and TableDataInterface to use this unique number.

 

  • New methods commitTransaction() and rollbackTransaction() have been added to CustomResourceInterface.

 

(See Working with Custom Resources for more information)

 

8.       New FPL functions added:

 

encrypt()

Encrypt or decrypt a String value

getcookie()

Get a cookie from the user browser

setcookie ()

Save a cookie to the user browser

 

9.       List behaviour has been changed to allow the end user the option of unsetting a value chosen from a dropdown list. In previous versions, once a value had been selected, the “Select” option was no longer displayed and the user had no means of unsetting the value. From this release, “Select” is always displayed as the first line of a dropdown list and if chosen, sets a null value for the field in question. This behaviour only applies when a list is displayed as a dropdown, not when it is displayed as radio buttons or checkboxes.

 

Additions for V3.2.0

 

1.       The product has been renamed from UFS to Ebase and most of the references to 'UFS' have been removed. Any remaining references will be removed in future releases.

 

  • The UFS Forms Designer is renamed as Ebase Designer
  • The UFS Forms Server is renamed as Ebase Application Server

 

2.       A new powerful technique for creating dynamic PDF documents has been introduced. This enables the production of high quality print documents by using a new WYSIWYG print form designer. Data from a form is automatically merged at runtime into the generated PDF document(s).

 

Highlights include:

 

  • Each form can have any number of print forms
  • Each print form can have any number of print pages
  • Print form pages are designed separately from web form pages
  • Support for master pages
  • Support for styles to control all formatting options e.g. fonts, sizes, colours, borders, alignment etc.
  • Support for bar codes
  • Inclusion of images
  • Inclusion of rectangles and lines

 

Upgrade note: the PDFPrint command has been completely replaced. Applications written using V3.1.0 or earlier that made use of this command must be manually upgraded.

 

(See Printing Concepts for more information)

 

3.       The layout of the form designer has been changed to accommodate the print forms described in the previous paragraph. The changes are:

  • A new tab option where the designer can select either:
    • Web Design to build the web form (same as previous releases)
    • Print Design allows creation of print forms
  • A Hide Pages/Show Pages toggle to the left of the main design area. This can be used to hide or show the page control area where page properties and new pages can be configured. Hiding this area maximises the amount of space available for design.
  • A Hide Fields/Show Fields toggle to the right of the main design area. This can be used to hide or show the form fields tabular display. Hiding this area maximises the amount of space available for design.
  • Upgrade note: The Table View showing all fields on the selected page is only available if preference option Show tables view for form editing has been checked. This can be accessed via the file menu (File à Preferences).

 

4.       Components have been significantly extended. Starting from this release, the following elements can additionally be included within a component:

 

  • Tables
  • A component business view and field resource mappings

 

In addition, FPL resource command verbs e.g. fetch, update etc, can be explicitly directed to a resource contained within a component business view by specifying the component prefix in parentheses after the resource name. This change allows component fields to be mapped to resource fields in a component, but with corresponding actions performed by events outside of the component.

 

These changes mean that a component can be constructed to represent any application function, without restriction. (See Component Concepts for more information)

 

5.       If component fields are copied into a table (i.e. a table in a form containing the component, not a table in the component) by selecting the component fields using the Copy existing fields button of the Create Table Dialog, the new table column fields will be treated as a logical extension of the component. In particular, any changes made to the component fields will also be made to these copies when the component is deployed.

 

6.       Upgrade note the Ebase Application Server and the Ebase Designer must both be run with the same level of Java. The Ebase Designer is shipped with an embedded Java Runtime at level 1.4.2_07. Therefore the Ebase Application Server must also be run with this Java level. Please note that the minimum Java level for both Designer and Server is Java 1.4.1 and 1.4.2 is recommended.

 

7.       Custom resources have been extended to add support for processing of tables. Tables can now be backed by either a database resource or a custom resource. Whereas each database resource can only support a single table, each custom resource can potentially support multiple tables. When a table is configured as backed by a custom resource, the system displays a list of eligible tables supported by the resource. Within each custom resource, an eligible table is configured as a repeating field (see next item) See custom resources for more details on these changes.

 

8.       Many changes have been made to custom resources to facilitate support for XML documents. The next version of Ebase (V3.3) will provide a full XML resource capability. Version 3.2 custom resources represent an interim step that introduces many new facilities to enable full XML support.

 

  • The custom resource editor has been extended to support

·         parent/child relationships such as those found in an XML document

·         definition of repeating fields (these become candidates for mapping to form tables)

·         definition of key fields

·         definition of attribute fields (this is only meaningful for XML documents)

 

  • All resource FPL script commands can now specify an optional binding, which can be used to specify additional information to a custom resource.

 

  • A new CALL FPL script command has been added.

 

A sample XML custom resource implementation class XMLCustomResourceExample is provided with this release, together with a small example of an application that uses this to read and write XML documents to and from flat files. This example includes processing of tabular and non-tabular fields, attributes, and many other standard XML features. It can be used as an example to build specific customer implementations or it can be used 'as is' to support additional XML applications.

 

This sample custom resource class uses XPath to position correctly within an XML document., and XPath requires a number of additional XML API jar files. Some application servers may already include different versions of some of these XML API classes within their internal classpath, and this can lead to classpath errors when using XMLCustomResourceExample.

 

See XMLCustomResourceExample for more details on the sample XML custom resource.

 

Upgrade note: starting from this release, custom resource implementation classes must be serializable (must implement java.io.Serializable) in order for their state to be saved and restored by save/restore operations. This is also required to support clustered server environments..

 

(See Working with Custom Resources for more information)

 

9.       A new licensing mechanism has been introduced. Starting from this release, a licence file must be included with each Ebase system. The licence file governs the server systems where the Ebase Application Server can run, the installed product features, and the maximum number of runtime and designer users.

 

See Ebase Licensing Procedures for Instructions on how to apply for a licence.

 

A new http session listener has been introduced to ensure the number of concurrent users is correctly counted. This must be added to the web.xml file (see upgrade instructions).

 

!!! Upgrade note: Licence files are NOT distributed with the Ebase software and must be applied for separately as part of the upgrade procedure.

 

10.   The designer preferences can now be edited and saved using a new dialog File à Preferences.

 

Upgrade note: Please note that in order to see the tabular page view, you must select option Select tables view for form editing in the preferences dialog. Unless this option is selcted, the Table View tab is not displayed.

 

11.   All form and system texts can contain form field variables indicating values to be substituted dynamically at runtime. Each variable is prefixed by && to indicate a substitutable field value. e.g. form text: Department &&DEPT - expenditure for &&YEAR is displayed as Department Personnel - expenditure for 2005 if field DEPT has value 'Personnel' and field YEAR has value '2005'.

 

12.   The use style sheets option in the presentation template editor is no longer available. Style sheets will automatically be used if the client browser system supports their use.

 

13.   A new check has been introduced on the length of data entered into a textarea. Before this release, there was no limit to the amount of data that could be entered in a textarea; from this release it is not possible to enter more than the amount specified by the field Max. display length. So from V3.2, the length attributes for a textarea are as follows:

 

Display length:                   sets the width of the text area

Max. display length:  controls the maximum number of characters that can be entered

 

!!! Upgrade note: existing forms should be checked to ensure that display length and max. display length are set correctly for textareas

 

14.   The dropdown list of font sizes in the presentation editor has been changed from pixel units (px) to em's. This change has been made in line with the W3C accessibility recommendation to use relative as opposed to absolute font size units.

 

Upgrade note: Existing templates containing pixel units can be converted to 'em' units by opening them in the presentation template editor and then right clicking over any Text size value or heading. An option is then presented to convert from pixel units to em units. The template should then be saved and tested. Note that this conversion may result in small changes to displayed font sizes. The action should be repeated for each presentation template in the system including the supplied DEFAULT template.

 

15.   A debug option has been added to database and custom resources. When checked for a database resource, this will provide information on the SQL issued to DBMS systems as a result of FPL script commands. Custom resource Java classes can use the isDebug() method of ResourceRequestInterface and issue appropriate debugging messages.

 

16.   The callscript FPL command has been changed to accept an expression which, when evaluated, supplies the name of the script to be called. e.g. the following are all equivalent and result in script ABC being called.

 

callscript 'ABC';

 

callscript 'A' + 'B' + 'C';

 

set MYVAR = 'ABC';

callscript MYVAR;

 

callscript ABC;

 

In addition, system variable $COMMAND_STATUS is set to indicate the status of the callscript command as follows:

 

OK                    The called script was executed successfully

NOT FOUND        The script could not be found

 

Upgrade note: In previous releases, a form would fail during execution if the target script to be called could not be found. From this release, system variable $COMMAND_STATUS is set to 'NOT FOUND' and form execution continues. If this situation could arise, a check of $COMMAND_STATUS should be added after any callscript statements.

 

17.   New FPL script commands have been added to set presentation attributes at the group level:

 

    • unset group <groupname> hidden | mandatory | displayonly;
    • unset group <groupname> hidden | mandatory | displayonly;
    • hide group <groupname>;
    • show group <groupname>;

 

(See FPL Script Command Syntax for more information)

 

18.   A number of layout changes have been made affecting the relative positioning of page title and information texts, and group title and information texts. In particular, a hidden group - i.e. a group with all fields hidden - will no longer occupy space on a displayed page.

 

Upgrade note: this can result in small changes to the layout of existing forms. In particular, if HTML line break elements have previously been added to page header and group header texts, these may now result in unnecessarily large spacings and may need to be removed.

 

New FPL functions have been added. (See FPL Script Command Syntax for more information)

 

buildlistfromtable()

Builds a list from column(s) in a table

settablerow()

Sets the current row of a table by comparing a specific column with a value

getsessionvariable()

Gets an HTTP session variable from the session context

setsessionvariable()

Sets an HTTP session variable in the session context

 

19.   Secure forms support. HTTPS is supported when secure forms option is selected within the form designer form properties.

 

Upgrade note: See Ebase Secure Forms

 

20.   The goto form FPL command has been changed to accept an expression which when evaluated, supplies the name of the target form.

 

  

Additions for V3.1.0

 

1.     Extensive changes have been made to enable the creation of forms that comply with the W3C Web Accessibility Content Guidelines to level AAA. See Web Accessibility for more information.

 

2.     Database resources used for backing tables have to be explicitly declared as a "Table Resource".

The default for a newly created database resource is for it NOT to be a table resource - as shown in the diagram below.

 

Only after declaring a database resource as a "table resource" (by selecting "Yes" for Table Resource), can it be associated with a table.

Once a database table resource has been associated with a particular table, no other table in the form can use this same resource.

 

3.     Newly created tables must have a "Table Prefix "associated with them. A default prefix is automatically created when the table name is entered in the Create a new table dialog. This default can be modified by directly changing the Table Columns' Prefix text. For example, in the following diagram, as the Table Name of CUSTOMERS is entered, a Table Prefix with the same name is also created.

 

The significance of this table prefix is as follows:

·         Whenever ANY column is added to a table, the name of that column's field is automatically prefixed with the Table Columns' Prefix.

·         Tables cannot share fields. If there is a requirement to share a field's data between two or more tables then an FPL script should be used to explicitly copy the field.

 

Tables which were created before the introduction of the Table Column Prefix continue to work as before and do not need to be modified.

Any newly created tables will follow the new rules laid out in this documentation.

 

 

 

 

4.     The method of creating an external resource from a table has been simplified. This function is now provided as part of the table menu - right-click on the table header and select the "Create external resource" menu item.

 

5.     The call form FPL command has been extended to allow the target form to be dynamic i.e. it can be specified as a form field.

 

6.     Input masks have been enhanced to support variable length strings using the minus character e.g. a mask of -NN is anything ending with two numerics e.g. ABCDE23 5623 ab5rw54 are all acceptable.

 

7.     The page title height and width options have been removed from the presentation template editor. The page title will occupy the full available width and the height will be sufficient for the page title text.

 

8.     Importing database tables and stored procedures from an MS SQL Server database has been enhanced to support multiple databases.

 

9.     The restriction that prevented update FPL commands from being issued against a view has been removed.

 

10.            The maximum length of a form field has been increased from 50 to 250 to allow for the addition of prefixes from components and/or tables. However, the maximum enterable length remains at 50.

  

Additions for V3.0.4

 

1.      A new component type has been added and the existing component types have been re-named as follows. These changes will not affect existing components or forms containing components. See component concepts for more details.

 

Old name

New name

Description

 

Fields-only

New component type - contains no visible elements. This component type can only be added to a form using the Form menu.

Fields-only

Part-page

Contains a number of visible fields and/or groups. This component type can only be added to an existing page of a form.

Page-based

One-or-more-pages

Contains one or more entire pages. This component type can only be added by right-clicking on an existing page button.

 

2.       New parameters designerWidth, designerHeight, dividerLocation have been added to the designer preferences.properties file to set the initial size of the designer window and the relative size of the navigation tree panel. See configuring the forms designer for more details.

  

Additions for V3.0.2

 

1. Support for tables.

 

A table represents a 2 dimensional array of data values that can be displayed in a tabular format. The main features of tables are:

 

·         Table data can be loaded from and saved to an external resource such as a database

·         Table appearance can be fully customised

·         Table rows can be updated, deleted and inserted by the user or programatically using FPL

·         An optional select column can be added as the leftmost column to support programatic row selection

·         All entered data can be validated using after field events in the same way as for non-table fields

·         Tables can contain a mixture of resource and non resource fields

·         Tables can contain lists

·         A table can be sorted on any column, ascending or descending

·         Tables can be scrolled both vertically and horizontally

·         Tables can contain fields of any type

·         Tables can be processed programatically

 

See table concepts and capabilities for more information.

 

The following restrictions currently apply. These will be lifted in a future release of Ebase:

 

·         tables cannot be added to components

·         optimistic locking cannot be applied to tables

·         tables cannot be loaded or saved using a custom resource. The documentation to do this is included with this version but this feature has not yet been implemented.

·         a form containing tables cannot be executed in batch mode

·         there is no printing support for tables

 

2. LOOP FPL script commands have been introduced. There are two basic loop commands:

 

loop [ conditional expression ]

...

endloop

 

and....

 

loop at table tablename

....

endloop

 

The break statement has also been added to break out of a loop. See FPL script command syntax for more details.

 

3. A new add fields dialog has been created which makes it much easier to add multiple fields and import fields from an external resource.

 

4. A field can be declared as a hyperlink. When a hyperlink fields is clicked, the after field event for the field is executed. Hyperlink fields can be thought of as an alternative to using action buttons.

 

5. Support has been introduced for database auto-increment columns. These are columns where the database automatically provides a value when a record is inserted e.g. SQL Server id columns. Any column marked as read only in a database resource will be read from the database but never updated or inserted. New tables imported from the database will have the appropriate columns marked read only automatically.

 

6. The database import dialog has been enhanced. It now allows a name to be specified for the database resource name created (previously, this always inherited the database table name), and also prompts as to whether the imported database table is to be used in an Ebase table or not. This allows key fields to be removed from the resource WHERE clause.

 

7. CALLSCRIPT and RETURN script commands have been introduced. The format is:

 

In the calling script:

 

callscript scriptname;

 

In the called script:

 

      return;

 

          See FPL script command syntax for more details.

 

8. A field can now appear many times on the same page. To distinguish between multiple occurrences of a field when using an FPL command, the field id can be appended to the fieldname as a qualifier. e.g.

 

set MYFIELD : 230 hidden;        (where 230 is the field id)

 

The field id can be found from the tooltip display by holding the mouse over a field or its label text. If the field id is omitted, then the command is applied to the first occurrence of the field on the page.

 

9. Highlighting styles can be applied to individual fields, table rows or table cells and can be used to draw attention to something or to provide visual separation of data e.g. by colour. A style is created using the presentation template editor and applied and removed using the highlight and unhighlight FPL commands.

 

10. Changes have been made in the implementation of sequences to make these more robust. Previously, sequence updates were included within the Ebase transactional context and were rolled back if there was a failure. In Version 3, sequence updates are committed immediately and cannot be rolled back. To support this change, four parameters must be added to UFSSetup.properties to enable the use of sequences. See working with sequences for details.

 

11. Mouseover tooltips are now displayed at various points in the designer to provide an immediate display of element properties . For example, holding the mouse over a field or its label text will show a tooltip containing the field's properties. If required, the tooltip time lag periods can be set using properties Designer.toolTip.initialDelay and Designer.toolTip.reshowDelay UFSSetup.properties.

 

12. Changes have been made to custom resources to improve the specification of parameters required for a resource and the FPL commands supported by a resource. See working with custom resources for more details.

 

Additions for V2.8.1

 

Improvements to UFS operation in a clustered environment.

  

Additions for V2.8.0

 

  • Improved sharing of UFS elements
    1. Introduction of components. These are snippets of forms consisting of anything from a single field to multiple pages, together with associated processing logic. Components can be created and maintained separately and then linked to any number of forms.
    2. Introduction of global scripts which can be accessed from forms in all projects.
    3. Introduction of global messages which can be issued by forms in all projects.

 

  • The connection between the designer clients and the server has been changed to use HTTP instead of RMI. Designer connections can now be made through firewalls or across the internet.

 

  • A popup calendar is now available for date fields.

 

  • A customer specific logon exit routine can be coded which provides the ability to link to external security systems and single signon domains not supported by the J2EE application server.

  

Additions for V2.7.0

 

  • File handling. The ability to upload files from the end user, to save generated PDF documents, and to email uploaded files, generated PDFs or other files as attachments.

 

  • All system texts can now be edited using the System Text Editor Tools à System Texts Editor. The mandatory indicator * has been added as system text 22.

 

  • Radio buttons can be horizontally or vertically aligned and can have the text to the left or right of the button.

 

  • Timeouts are detected and a new customisable page ufs_timeout_page.htm is displayed.

 

Additions for V2.6.2

 

  • LDAP support. Ability to obtain information such as name, email, etc. about the user running a form, from the deployed LDAP directory. New $USER_ system variables contain the requested user attributes. A new configuration file contains mappings between the attribute name in the LDAP directory and the $USER_ system variables. The location of this file is located in the UFSSetup.properties file.

 

  • .2 new system variables: $FILE_NAME contains the full path of the last file created by the system, $SESSION_ID is the session id supplied by the application server for the current end-user session.

 

  • Ufs version numbering has been rationalised. The 3rd digit now represents a Service Pack. There is no additional Service Pack numbering. So, this is version 2.6 Service Pack 2.

 

  • When a system error occurs, the error page is displayed, followed by the actual error message as generated by Ufs. This applies to both Test and Production system modes. The error page can be customised.

 

  

Additions for V2.6.0

 

  • Ability to dynamically create and display a PDF document for printing, including the option to include a barcode.

 

  • Introduction of text only fields.

 

Service Pack 1

 

  • New and improved icons introduced within the designer. Call Form and ReturnFrom Form functionality has been enhanced.

  

Additions for V2.5.5

 

New commands

 

  • CALL FORM enables a UFS form to call another UFS form and then return control to the original form, with parameters being passed in both directions. The RETURNFROM FORM command enables return from a called form to the caller. See the internal documentation on FPL Script syntax for more information.

 

New database data types

 

  • All Databases:          Data type bit is now supported.
  • MS SqlServer: Data types ntext, nchar, nvarchar are supported.

 

Other changes

 

  • MS Access database is now supported.

 

·         Support for database table and column names containing spaces.

 

·         Ability to specify JSPs at form level as well as in the presentation template.

 

·        New system variables $UFS_SERVER_NAME, $UFS_REQUEST_URL, $UFS_RETURN_URL

 

Additions for V2.5.4

 

·         Ability to import UFS transport files in batch mode.

 

·         Ability to specify the port to use for an RMI registry.

 

Service Pack 1

 

  • New command CALL URL allows calling an external application with subsequent return. Parameters can be passed in both directions. Also the GOTO URL command now takes an expression as its argument.

 

Service Pack 2

 

Minor bug fixes.

 

Service Pack 3

 

New function osfiles() added. Returns a list of operating system file/directory names within a given directory.

 

New custom resourse CSVResource added. Allows writing comma delimited form data to a csv file.

 

Service Pack 4

 

Minor bug fixes.

 

Service Pack 5

 

JSPs can be specified at presentation template level, as well as at form level. When present, form level jsps override template level jsps.

  

Additions for V2.5.3

 

Passing values to the form from Javascript

 

Three new system variables $USERVAR1,2,3 can be used to pass values into a form from Javascript. See the internal documentation on FPL Script syntax for more information.

 

Currency fields

 

A new field type 'currency' has been added. This behaves in the same way as numeric fields except that the specified number of decimal digits are always displayed to the user i.e. a value of 95.1 is displayed as 95.10.

 

Rounding of numeric field values

 

For numeric and currency fields, the value maintained by the system is always rounded to the specified number of decimal digits. Seven different rounding algorithms are possible.

 

Graphical interface for Form Maintenance

 

Within the designer, forms may now be maintained using the new graphical interface, as well as using the original grid interface. As of V2.5.3, the multi-column layout is not supported by the graphical interface.

 

Field groups

 

Field groups are now defined at page level and not at form level.

 

Multi column forms

 

A field or group of fields may be specified to be shown in the left or right column within a page. Furthermore, each group may be aligned with any other group on the same page, which is in the opposite column.

 

Date formats

 

A new server property (specified within UfsSetup.properties) allows selection of one of 6 date formats:

dd/mm/yyyy, dd.mm.yyyy, dd-mm-yyyy, mm/dd/yyyy, mm.dd.yyyy, mm-dd-yyyy.

The selected format is used for both data entry and for display purposes.

 

New commands

 

2 new commands, show and hide, are synonymous with old commands unset ... hidden and set ... hidden, respectively

 

Page toolbar buttons moved

 

The page toolbar no longer exists. The 'page properties' and 'delete page' functions are now accessed by right clicking a page button. The 'add page' button has moved to the form toolbar.

 

Service Pack 1

 

Functions datetostring() and dayofweek() updated to handle multiple date formats.

 

Graphical designer now provides support for the multi-column layout.

 

Service Pack 2

 

RMI port to communicate with the Designer Server can be customised.

  

Additions for V2.5.1

 

Within the Designer component tree, each Ufs component type is indicated by a different icon. Open components are shown in bold and also appear in the open components menu bar at the top.

 

Additions for V2.5.0

 

Batch Manager

 

This is a new UFS component that provides the ability to receive XML files and process these in offline mode. A Batch Administration component is included with facilities to display, control and re-process input XML. For more information, please see the Ebase Batch System. This component is a prerequisite to using with the UFS interface to the Kofax scanning system.

 

Scheduler

 

This is a new UFS component that facilitates routine execution of both the provided UFS system tasks and customer written tasks. A customer written task is a standard Java class that implements a supplied interface. See the Ebase Scheduler for more information.

 

Script wizard

 

This wizard allows the automatic creation of commonly used FPL scripts.

 

Encryption of form parameters

 

This is a security feature that allows sensitive form parameters to be encrypted. See encrypting form parameters.

 

Help buttons

 

Every component within the designer now has a context sensitive Help button.

 

Adding scripts to events

 

Scripts can now be added to an event at a specific location.

 

New system variable

 

$SYSTEM_TIME - the current time in hh:mm format.

 

Lotus Notes

 

Support for Lotus Notes as database.

 

Changes to event processing logic

 

Starting from this release UFS will treat a field as having been changed if a change is made to the field's value from any source e.g. by the end-user, reading from a database, set from an FPL script. Prior to this, only changes made by an end-user were recognised as change events.

 

Support for Adobe V5

 

UFS now uses the Adobe FDF V5 toolkit. This provides both full support for V5 documents plus a 100% Java implementation. The dlls required for the previous version of the toolkit are no longer needed.