Changes in this Release
Changes in V5.12.1
This release is a maintenance release and contains memory improvement and
various bug fixes.
Changes in V5.12.0
This release includes the following:
1.
The
introduction of three Media Controls:
·
Audio
Control – used to embed audio content onto a page.
·
Video
Control – used to embed video content onto a page.
·
IFrame
Control – used to embed HTML content into the current page.
2.
Upgraded
to support Java 17.
3.
JavaScript
API documentation included with the Verj.io reference documentation. This is
accessible from the Verj.io Studio Help menu.
Security
Fixes in V5.12.0
1.
Upgrade
to tomcat 9.0.69 that fixes:
CVE-2022-34305 - The Form authentication example
in the examples web application displayed user provided data without filtering,
exposing an XSS vulnerability.
CVE-2022-42252 - If Tomcat was configured to ignore invalid HTTP headers via setting rejectIllegalHeader to false (not the default), Tomcat did not reject a request containing an invalid Content-Length header making a request smuggling attack possible if Tomcat was located behind a reverse proxy that also failed to reject the request with the invalid header.
2. Commons Texts updated to 1.10.0
that fixes:
CVE-2022-42889 - Apache Commons Text performs variable interpolation, allowing properties to be dynamically evaluated and expanded.
3. Configure X-Frame-Options
HTTP response header to indicate whether or not a browser should be allowed to
render a Frame, IFrame, Embed or Object HTML elements.
4. Verj.io Service Plans and On-Premises
environments can restrict access to known Verj.io Studios by configuring a
Whitelist in their respective Administration Applications. This Whitelist
replaces the Whitelist previously used to restrict deployment.
5. Upgrade Apache HTTP Client 4.5.12 to HTTP
Client 5.2.
Http
Client Migration Note
If you have written any custom classes that use HTTP Client
4.5, before upgrading, you may want to upgrade your code to use Apache HTTP
Client 5.2.
Alternatively to keep using the old HTTP Client, you can copy
the following Http Client Java libraries:
·
httpclient-4.5.12.jar
·
httpcore-4.4.13.jar
·
httpmime-4.5.12.jar
From the following location:
<Verjio-Installation-Dir>/Server/webapp/WEB-INF/lib
To the following location:
/UserData/Server/apps/ebase/webapp/WEB-INF/lib
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:
Additions for V5.8
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.
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
Click here for more information.
–DrunBeforeControlEventsOnceOnly=true
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
Additions for V5.4
· 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.
· New installations: wkhtmltopdf
· Upgraded systems: Flying Saucer
Please note that changing the PDF engine may result in some changes to existing print pages.
Click here for more information.
· 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.
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.
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.
· 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.
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.
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
· 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";
}
}
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:
Additions for V4.5.1
Additions for V4.5
· 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.
Additions for V4.4
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
· 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.
Additions for V4.3
· 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.
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;
· 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.
· 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.
Additions for V4.2
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.
· 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.
· 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
· 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.
· 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
· 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:
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.
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.
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.
· 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
Upgrade compatibility note: this represents a change in behaviour. See description in paragraph above.
Upgrade compatibility note: this represents a change in behaviour. See description in paragraph above.
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.
·
set
table MYTAB.numrows = 12;
·
set
table MYTAB.columnHeaders = false;
See the set table FPL command for a list
of properties.
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:
· 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.
Java developer
changes:
Additions for V3.3.1
Additions for V3.3.0
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.
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.
·
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.
Upgrade Note: a new
licence is required when upgrading from any earlier release.
8. New facilities have been added to enable focus to be set to an individual field on each displayed 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.
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
2. Enhancements
to Import/Export
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:
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:
(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.
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:
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:
4. Components
have been significantly extended. Starting from this release, the following
elements can additionally be included within a component:
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.
·
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)
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:
(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
Additions
for V2.7.0
Additions
for V2.6.2
Additions
for V2.6.0
Service Pack 1
Additions
for V2.5.5
New commands
New database data types
Other changes
·
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
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
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
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.