Professional Documents
Culture Documents
September 9, 2016
A new channel is available for the Output Box widget. The Output Channel Output Channel
property can now be set to display messages issued by the message Proc
statement.
Uniface has added support for the following databases and platforms Platform Availability Matrix
• Microsoft SQL Server on Windows Server 2016
• Oracle 12.c on Windows Server 2016
• Oracle 11gR2 on OpenVMS 8.4
• SYB U5.1 connector on Windows 10
• Sybase SDK 16 for Windows Server 2008 R2, AIZ 6.1, and Red Hat Linux
Enterprise Edition 6
What's New in Uniface 9
31242 For Android splash screens, you can use either resizable Resource Bundle for Mobile Apps
NinePatch PNG images or normal PNG files. Prepare a Resource Bundle
31255 Third-party components (such as OCX controls, COM Integration with Other
components, or DLLs) that are integrated into Uniface Technologies
applications must support the Data Execution Protection
(DEP) policy. The DEP policy protects against attacks from
web pages that insert executable code into data and then
exploit some browser security hole to get that code to run.
The DEP policy is automatically turned on when Uniface
renders HTML (for example in the HTML widget), but it
may also be turned on by your machine administrator to
comply with a change in your company's security policy, or
it may be turned on in the future by Uniface because of a
change in Uniface's security policy.
NOTE
It is highly recommended that you upgrade all third-party
components to the latest versions available. Most vendors
will have solved DEP-related problems in their most recent
versions.
— The example for the maxlockwait DBMS option has been maxlockwait
corrected.
— When a Uniface 32-bit application is installed on a 64-bit Uniface and the Registry
machine, HKEY_LOCAL_MACHINE definitions are stored under
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Uniface\Uniface
Version\Application. (not under
September 9, 2016 2
What's New in Uniface 9
Table 2. Uniface 9.7.03 (MG02): Documentation Updates for Reported Issues (continued)
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432\Uniface\Uniface
Version\Application)
— The XML Data Type dateTime has been corrected to reflect xmlToStruct
the correct case-sensitive notation.
— A new version of the Previewer app is available which Uniface Previewer App
includes all supports Cordova plugins.
— The reason that compiler warning 1146 occurs is now 1146 Non-database entity
explained. EntityName contains database
field FieldName
— Corrected PGS connection string. The database does not Installation and Configuration of
need to be specified. PGS Connector
29572 When the binding type is Document/Literal Bare, the Importing WSDL Definitions for
developer provides the document, element, and contents for Web Services
IN parameters and OUT parameters. Complex Nested Parameters
For other binding styles, Uniface applies certain rules for
how complex data should be provided in parameters..
September 9, 2016 3
What's New in Uniface 9
Table 3. Uniface 9.7.02 (MG01): Documentation Updates for Reported Issues (continued)
30867 The documentation has been updated with information about psdef.txt
the psdef.txt file, which is used to configure PostScript
printing on Unix.
30944 The timeout values specified by the cto and rto SOAP SOAP Connector Options
connection options are also applied when reading the WSDL
file prior to sending a SOAP request.
30945 The default request timeout for the rto SOAP connector
option is now 30,000 milliseconds for both the SOP 1.0 and
SOP 2,0 connectors.
30946 The default connection timeout for the cto SOAP connector
option is now 30,000 milliseconds for both the SOP 1.0 and
SOP 2,0 connectors.
30962 A new bom connector option is available for the TXT driver. bom
It enables you to control whether a Byte Order Mark is
written, expected, or required for Unicode files.
30979 Any popup form that does not fit the screen will be clipped. Popup Forms
Popup Window
NOTE
PopupRect
This is a change in behavior. In previous versions of Uniface,
when a popup form did not fit, it was centered on the screen,
which disconnecting it from its anchor or field.
30985 Even when the Input Method Editor (IME) is enabled, either AutoImeOpen
by setting AutIoImeOpen=on or setting the field syntax to
YIME, the IME is disabled fields the field syntax NDI (do
not display contents).
For Unifields that have the IME enabled, the IME remains
enabled even when the syntax is NDI.
September 9, 2016 4
What's New in Uniface 9
Table 3. Uniface 9.7.02 (MG01): Documentation Updates for Reported Issues (continued)
NOTE
In fixing this issue, some behavior changes have been
introduced when the IME is enabled:
• When the field syntax is set to NPR, the IME remains
enabled.
• When the field syntax of a Unifield is set to NDI, the
IME remains enabled.
• When the field syntax of a Unifield is set to NED using
$fieldsyntax (or fieldsyntax), the IME is disabled.
31004 It is now possible to specify the authentication method used Authentication with UHTTP
by the UHTTP component when submitting SEND requests. UHTTP_DEF_AUTH
• Use the UHTTP_DEF_AUTH logical to set the default $UHTTP_DEF_PROXY_AUTH
authentication for the web server of the destination SEND
URL.
Use the $UHTTP_DEF_PROXY_AUTH setting to set the
default authentication for the proxy server, if used.
• Per SEND request, use the Username parameter of the
SEND operation, to specify an authentication method
for the applicable server, .
NOTE
This represents a behavior change. Previously, there was no
authentication if the Username parameter was empty.
September 9, 2016 5
What's New in Uniface 9
Table 3. Uniface 9.7.02 (MG01): Documentation Updates for Reported Issues (continued)
31076 It is not possible to directly compare two parameters, raw in the Uniface Library 9.7.03
variables, or fields that use the data type raw or image—they raw
will always evaluate to True. An alternative is to calculate image
and compare a hash of the data.
31093 There are compatibility issues when combining the new Area Frames
styling properties for area frames and entity frames with the Default Entity Widget
existing Border and Color properties.
Color
• If both the Border and BorderType properties are set, Border
two borders are displayed. Only a flat BorderType can
BorderType
be styled.
• If Color is set, all properties set in the initialization
file are ignored, including BorderType and colors.
TIP
More information on using entity and area frame properties
is available in blogs and downloads on uniface.info.
$curoccvideo ("ENT1","inner;off")
31132 The LM_LOAD license option also supports the value dlm, $LICENSE_OPTIONS
which specifies the DLM installation directory as the
location of DLM DLLs. The default value is uniface, which
specifies the Uniface installation (\common\bin).
31156 The online help for the Uniface COM Configuration Utility Uniface COM Configuration
is enabled. Utility
31157 The UHTTP component API now supports the MIME type Supported MIME Types
application/json.
September 9, 2016 6
What's New in Uniface 9
Table 3. Uniface 9.7.02 (MG01): Documentation Updates for Reported Issues (continued)
The Web Request Dispatcher (WRD) has been upgraded to Web Request Dispatcher (WRD
version 5.5 and includes support for HTTP request and
response with the application/json content-type. To
support UTF-32 encoded requests with application/json,
the Java runtime must be J2SE 1.6 or higher.
31165 A new SYB connector (U5.2) is available to support SAP Platform Availability Matrix
Adaptive Server 16 (Sybase).
31194 By default, video attributes set with Proc instructions such $ACTIVE_FIELD_FIRST
as $fieldvideo override those specified by the $ACTIVE_FIELD
$ACTIVE_FIELD assignment setting.
If you need the $ACTIVE_FIELD settings to take precedence,
use the new assignment setting
$ACTIVE_FIELD_FIRST=true.
APIs
UHTTP Component API: Corrected the syntax and removed the restriction Authentication with UHTTP
on the use of the Negotiate option for proxy servers.
3GL API: The usysparm function can be used to get the value of the usysparm
$dberrortext Proc function.
JavaScript API: The documentation for the JavaScript API functions for setValue
getting and setting the text of a label has been corrected. The functions getValue
are setValue and getValue.
Proc
September 9, 2016 7
What's New in Uniface 9
Added note: Do not to use $fielddbvalue in the Delete trigger. This $fielddbvalue
will lead to problems such as infinite looping or an incorrect value for
$fielddbvalue.
Updated the description of the MUL field syntax. Field Syntax Definitions
In 9.7.01, new widget and font definitions were added to the default [widgets] and [screen]
usys.ini. These are required to support the modernized appearance of
the Uniface Development Environment and Debugger.
The /aft and /bef sub-switches are also applicable to /dtd. /aft= or /bef=
Database Connectors
ORA: To be able to work with Unicode in SQL Workbench, Oracle Oracle Connector Features
Service Stored procedures, and the where clauses, $def_charset must Restrictions on Use of Unicode
be set to UTF8. and Installable Character Sets
PGS: Clarified instructions for configuring the PGS connector. Installation and Configuration
of PGS Connector
PGS: Corrected configuration example. Removed pg_catalog.*.* Load Definitions Utility for
PostgreSQL
Miscellaneous
The Default Entity widget in form components supports the Default Entity Widget
AttachMargin property. AttachMargin
September 9, 2016 8
What's New in Uniface 9
API Change
API Change
focus()
hasFocus()
getDeclarativeSyntax
getError
getLabel
September 9, 2016 9
What's New in Uniface 9
API Change
[WEB] A new file section has been added to the Web Application Server New in 9.7.01
assignment file.
If the settings it contains, or their aliases in the [SETTINGS] section,
are set multiple times, Uniface will use the last setting it encounters.
$CODE_BASE Specifies the location of the web syntax applet files for static server New in 9.7.01
pages. Replaces $WEB_CODE_BASE, which is deprecated.
$GRID_READALL_ON_STORECOMPLETE This compatibility setting determines whether the Read trigger is fired New in 9.7.02
for occurrences that have not yet been read from the completed hitlist.
Default is false because the behavior has changed to improve
performance.
$HTML_GENERATION This setting should now be defined in the [WEB] section. The Changed in 9.7.01
[SETTINGS] location is deprecated (although still accepted).
$JS_BASE_URL This setting should now be defined in the [WEB] section. The Changed in 9.7.01
[SETTINGS] location is deprecated (although still accepted).
$SERVER_SECRET Specifies a unique string to be used as a key in calculating the New in 9.7.01
hash-values used to protect non-editable fields from being modified
in a web browser. Replaces $WEBKEY.
UHTTP_DEF_AUTH Uniface logical that determines the default authentication scheme to New in 9.7.01
be used by the web server when processing UHTTP SEND requests. G102
$UHTTP_DEF_PROXY_AUTH Specifies the default authentication scheme to be used by the proxy New in 9.7.01
server (if used) when processing UHTTP SEND requests. G102
$UNIFACE_RUNTIME_BASE_URL Specify the URL for JavaScript and CSS files that are used by DSP New in 9.7.01
components.
$WEBGEN_X_FOR_DEFAULT This setting should now be defined in the [WEB] section. The Changed in 9.7.01
[SETTINGS] location is deprecated (although still accepted).
$WEBGEN_X_ID_DEFAULT This setting should now be defined in the [WEB] section. The Changed in 9.7.01
[SETTINGS] location is deprecated (although still accepted).
$WEBGEN_X_ID_INSNAME This setting should now be defined in the [WEB] section. The Changed in 9.7.01
[SETTINGS] location is deprecated (although still accepted).
September 9, 2016 10
What's New in Uniface 9
[areaframes] New file section contains area frame property definitions. It enables New in 9.7.01
you to style the appearance of area frames based on their name.
[entities] New file section specifies default widget properties for entities New in 9.7.01
displayed with the default entity widget on Windows.
It is possible to set the widget properties for all entities, for all entities
with the same name, or for an entity in a specific form component.
[screen] The following font definitions have been added to the default New in 9.7.01
usys.ini file:
IDFButtonText
IDFButtonTextLarge
IDFCategories
NOTE
If these definitions are missing, buttons in the Development
Environment and Debugger may have an incorrect appearance.
[widgets] The following new Uniface widgets have been defined in the default New in 9.7.01
usys.ini file:
IDFSpeedSearch
IDFTextCell
IDFButtonBottom
IDFButtonSide
IDFButtonHeader
IDFButtonImage
IDFButtonSpecial
IDFOpenProfile
NOTE
If these definitions are missing, many buttons in the Development
Environment and Debugger may not be available.
Accessibility Causes Uniface applications to return a technical name for supported New in 9.7.01
field widgets. This name can be used by testing tools acting as
Microsoft Active Accessibility (MSAA) clients to implement
automated testing.
September 9, 2016 11
What's New in Uniface 9
NOTE
Uniface currently supports this feature only for the Edit Box, Check
Box, and Command Button. Although other widgets may return
technical names, these are subject to change and Uniface does not
support their use by testing tools.
AccessibleNameSeparator Defines a string of characters that is used to identify parts of the New in 9.7.01
MSAA accessible name for Uniface interface objects. By default a
dot is used, but this is not accepted by some tools. You can use this
setting to provide an alternative separator.
DefEntity The DefEntity setting can also be specified in the new [entities] Changed in 9.7.01
section of the .ini file, which supports additional properties.
If set in both the [application] section and the [entities] section, the
definition in the [entities] section is used.
NOTE
Uniface no longer reads the SaveTabForm setting. Thus, if you used
this setting, you need to edit your initialization file and change it to
SaveContainedForm.
PanelType In the default Uniface installation, PanelType is set to No instead of Change in 9.7.01
Top. This means that it is no longer possible to show or hide the
Uniface session panel using [Gold X]. To restore this functionality,
edit usys.ini file.
The Uniface Development Environment features a new editor for defining startup Define Startup Shell Properties
shells. It makes it easier to create startup shells for different purposes, with
different sets of properties for Windows applications, character-based
applications, application servers, and mobile apps.
September 9, 2016 12
What's New in Uniface 9
Uniface 9.7.02 enables you to generate deployable mobile apps for Android and Buildozer
iOS platforms via the Buildozer service. From the Development Environment, Building a Mobile App
you can login and submit the app definition and resources to the Buildozer
service, which then creates installable app packages.
To build a mobile app, you need to define a mobile startup shell. This is a Startup Shells
development object that defines the properties for an app that can be deployed Startup Shells for Mobile Apps
on both Android and iOS devices.
The properties defined in the startup shell are used to generate a file called
appFactory.json that is submitted to a cloud-based app factory to generate
the platform-specific binaries for the app. These provide a native wrapper around
the dynamic server pages (DSPs) that implement the app functionality.
Unlike other startup shells, the mobile shell has no triggers and an .aps file is
not generated.
The startup shell editor includes a tool for viewing and maintaining the app Prepare a Resource Bundle
resources bundle containing images for icons and spash screens.
A Uniface JavaScript plug-in is automatically built into every mobile app. This Uniface System Information
can be used to retrieve and display license information about third-party libraries Plug-in
that are built into the app.
September 9, 2016 13
What's New in Uniface 9
Syntax error handling for DSP widgets mapped to HTML controls has been Syntax Checking in Dynamic Server
significantly enhanced by means of new functions in the Uniface JavaScript Pages in the Uniface Library
API and a new OnSyntaxErrorResolved web trigger 9.7.03 Syntax Checking in Dynamic
Server Pages
Uniface now provides improved field focus control, enabling you to use focus()
JavaScript to give focus to a DSP field, and check whether it has focus. New hasFocus()
functions are available on the uniface.Field object:
OnBlur
focus()
hasFocus()
In addition, all HTML input widgets now support the OnBlur web trigger, which
is fired when the user tabes or clicks away from the field in the browser.
These enhancements can be useful for implementing more responsive error
handling, for example, in preventing a user leaving a field if the syntax is
incorrect.
These functions and trigger work only with widgets that are mapped to HTML5
controls. They do not work in Dojo JavaScript widgets.
The HTML widget has been upgraded to use the Chromium Embedded HTML Widget
Framework 3 (CEF3). As a result: LoadError
• The HTML widget is now supported on 64-bit platforms. GFPRendering
• A new LoadError extended trigger is provided that enables you to handle
errors returned by the embedded browser.
September 9, 2016 14
What's New in Uniface 9
The documentation has also been updated as a result of fixes for following Uniface 9.7: Documentation
software and documentation issues: Updates for Patches and Service
Packs
30768
31132
31156
31157
31170
31194
TIP
More information on these enhancements is available in blogs on uniface.info.
For more information about the new functionality, see the topics referred to in the More
Information column. If the listed topic is not in this document, it is in the Uniface Library.
September 9, 2016 15
What's New in Uniface 9
Table 14. What's New in 9.7.01: Modernization and Windows GUI Enhancements
The Development Environment features a new Start Page that provides quick Uniface Development Environment
access to the editors you need to build different types of applications. [widgets] and [screen]
Colors and buttons in the user interface of the Development Environment and
Debugger have also been changed. To support this, new definitions have been
added to the [screen] and [widgets] section of usys.ini file.
Area frames and the default entity widget have been significantly enhanced with Area Frames
new styling properties. These enable you to apply a flat border and set its color, Default Entity Widget
shade the background in different colors, and apply a colored drop shadow. For
example:
For area frames, the new properties can be set only in the application initialization
file.
For entity frames, they can be set in the initialization file, in the More Properties
dialog of the widget properties, and using $entityproperties in Proc.
Properties set in the initialization file can be overridden by setting them
declaratively in the Development Environment, or in Proc.
For area frames, the new properties can be set only in the application initialization Area Frames
file. A new [areaframes] section can be used to define the styling of area frames. [areaframes]
Area frames can be given a name. In the initialization file, you can set properties
for all frames that have the same name. Frames that do not have a name get the
default name of FRAME.
For entities, you can set properties for the default entity widget using the Default Entity Widget
defentity setting in either the [application] section or the[entities] section of [entities]
the initialization file.
DefEntity
In the new [entities] section, you can also define default styling for entities based
on their name and, optionally, the component name.
September 9, 2016 16
What's New in Uniface 9
Table 14. What's New in 9.7.01: Modernization and Windows GUI Enhancements (continued)
In addition to the new styling properties, the default entity widget now supports Attach to Window Border
the Attach and AttachMargin properties. This allows the entity to be resized AttachMargin
when the form is resized.
For the Grid widget, it is now possible to style the grid border using the Grid
BorderType, BorderColor. and BorderWidth properties.
BorderType
BorderColor
BorderWidth
Command buttons in forms can now be rendered with a Windows 8 or 10 look Command Button
and feel. New properties have been added that make it possible to display Frame Type
command buttons as flat buttons, and to control the size and color of the frame
that delineates the button.
To define a flat button, set Representation to Uniface, and the new Frame
Type property to Flat.
Layout management has been improved. The Attach property is now supported Attach to Window Border
by entities and area frames, and labels can now move with their associated fields. Spit Bars
In other words, when a form is resized or split bars are moved, the entity, area
frame, field and label are also resized.
It is now possible for labels to move with their associated fields when the field Anchor
is repositioned by $paintedfieldproperties or as a result of a split bar being
moved.
To enable this feature, set the Anchor property for labels in the usys.ini file.
By default, Uniface is now configured to use the standardized approach for Standardized Deployment
compiling outputs and deploying applications. Uniface reads its own resources Reconfigure Uniface for Classic
from archive files (UAR), and writes all compiled objects to the resources Deployment
directory.
The classic deployment approach is still supported, but you need to explicitly
configure your application for this.
It is now possible to customize the title bar of the Uniface Development [LOGICALS]
Environment to suit your own environment. To do so, set the logical IDFTITLE
in the [LOGICALS] section of the idf.asn file.
Uniface can now return a technical name for selected widgets when queried by Accessibility
Microsoft Active Accessibility (MSAA) clients. This is useful for testing tools AccessibleNameSeparator
to enable automated tests.
NOTE
Uniface currently supports this feature only for the Edit Box, Check Box, and
Command Button. Although other widgets may return technical names, these
are subject to change and Uniface does not support their use by testing tools.
September 9, 2016 17
What's New in Uniface 9
Table 14. What's New in 9.7.01: Modernization and Windows GUI Enhancements (continued)
You can now start developing enterprise mobile apps that can be deployed on Developing for Mobile Devices
multiple mobile platforms, including Android and Apple.
In this release of Uniface, you can use dynamic server pages to develop the user
interface of applications intended for use on mobile devices, and you can test
them in a native app that also support access to device functionality.
You can download the Uniface Previewer Android and iOS from Google Play Uniface Previewer App
Store and Apple App Store. The Previewer consists of a mobile web browser
and interfaces to some native device functionality, such as the camera and
geolocation. It enables you to preview and test DSPs on real devices without
having to go through the deployment process.
Dynamic Server Pages support Uniface's Mobile App Layout framework, which Mobile App Layout
maps HTML elements in a DSP layout to generic layout definitions for headers, data-uniface-role
footers, and content.
You can define multiple headers and footers, which enable the DSP to adhere
to platform standards on the different devices, add standard controls such as
Back and Close buttons, and so on.
The data-uniface-role is a custom attribute that is applied to an element in
the HTML layout of a DSP to bind it to a definition in the Mobile App Layout
framework.
The following DSP widgets are now implemented as HTML5 controls instead Widgets for Dynamic Server Pages
of Dojo JavaScript widgets: html:type
September 9, 2016 18
What's New in Uniface 9
Table 15. What's New in 9.7.01: Web and Mobile Functionality (continued)
ListBox
Password
RadioGroup
TextArea
Depending on the browser, the HTML controls differ slightly in behavior and
appearance from the Dojo JavaScript controls.
• The widget appearance depends on the browser and operating system. This
is especially noticeable for the date picker widget, which looks completely
different on Windows, Android, and iOS.
• Some browsers do not currently support all HTM5 controls. For example,
the data picker is not supported by Microsoft Internet Exporer or Mozilla
Firefox. In this case, the widget is rendered as a input text box.
• When browser-side syntax checking is enabled, for HTML5 controls, an
error message is displayed only if a bound error element is present in the
layout (this must be manually added), or an OnSyntaxError web trigger
has been defined. In JavaScript controls, a balloon with the error message
is automatically displayed.
• In the graphical Server Page Layout Editor, many widgets are represented
by an Input Element, even if they are defined as a check box, command
button, or date picker. This is because these logical widgets are based on
the same physical widget, with only the html:type property specifying a
different value. The properties are only applied at run time, so it is not
possible to distinguish between these widgets in the layout editor.
• When copying fields into the layout, there is no longer a type="text"
attribute in the bound HTML element.
NOTE
When type="text" is present in the layout, the HTML5 Password widget
will not mask the text. To use the HTML5 widget in a DSP that was created
prior to Uniface 9.7, you need to remove this attribute from the layout.
NOTE
Uniface continues to deliver the old JavaScript widgets. For existing applications,
you may prefer to continue using these. To do so, edit the [webwidgets] section
of the usys.ini file.
Uniface introduces a new mechanism for customizing and displaying Syntax Checking in Dynamic Server
browser-side syntax error handling. Bound error elements can be inserted into Pages
web layouts to display syntax errors. You can customize error handing using OnSyntaxError
the new OnSyntaxError web trigger.
At runtime, Uniface generates the HTML for the DSP web page based on Controlling Load Order for
definitions in the DSP. By default, references to the Uniface JavaScript and CSS JavaScript and CSS in DSPs
files are inserted just before the closing tag of the header (</head>). This can
September 9, 2016 19
What's New in Uniface 9
Table 15. What's New in 9.7.01: Web and Mobile Functionality (continued)
When generating HTML for DSPs, Uniface automatically applies predefined Generating HTML class Attributes
classes to empty occurrences and entities, bound error elements, and mobile app for Styling
layout definitions. These can be used to style the elements using CSS.
-uent-empty-
-uocc-empty-
-uflderror-no-error-
-uflderror-in-error-
-ufld-highlight-error-
-uf-header
-uf-footer
-uf-content
To make web applications more configurable for developers and deployers, new Uniface 9.7: Changes in
configuration files and settings have been introduced. Configuration Settings
The Uniface JavaScript API has been enhanced to support JavaScript promises, Promises
making it much easier to handle asynchronous activation of server-side and activate()
client-side code.
createInstance()
A promise is a placeholder for the return value of an operation that is called
asynchronously. Promises make code more understandable because they do not
required the server-side and client-side code to mutually call each other.
Both the activate and createInstance JavaScript API functions now return
a Promise object.
It is now possible to dynamically set the text of labels in dynamic server pages uniface.Label
using the Uniface javaScript API. A new data object, uniface.Label, is
September 9, 2016 20
What's New in Uniface 9
Table 15. What's New in 9.7.01: Web and Mobile Functionality (continued)
You can set the URL to the WRD in JavaScript by means of the wrdurl
uniface.wrdurl member.
Other Changes
The location to which Uniface saves information in the registry has changed. Uniface and the Registry
Uniface now reads and stores information under its own Registry keys instead Migrate Logical Printers
of Compuware registry keys. They are now located in
HKEY_CURRENT_USER\Software\Uniface\Uniface 9\.
NOTE
If you have defined your own logical printers, you will need to move these
definitions to the new Registry keys.
The web output filter for Gomez Actual Experience XF has been removed from Creating a Web Output Filter
Uniface. However the mechanism to add your own web output filter plug-in Plug-in
remains unchanged.
An alternative key combination is available to represent the Gold key. Function Keys, Shortcuts, and
Ctrl+Shift+F1 is a keyboard combination that can be used on laptops without a Wildcards
numeric keyboard or Mac keyboards, when Windows is running on a Mac.
September 9, 2016 21
What's New in Uniface 9
30487 Fallback paths for logical printers have been documented. LogPrinter
30798
30944
30945
30946
30958
30979
For more information, see Uniface 9.6: Documentation Updates for Patches [p. 26].
September 9, 2016 22
What's New in Uniface 9
Proc Description
componentToStruct and Structs can now be used in the reconnect process. 9.6.06
structToComponent componentToStruct features new switches (/notags,
/reconnectTags, and /firetriggers) that enable you
to fine-tune the tags that are generated and to fire pre- and
post-processing triggers.
structToComponent now recognizes occurrence
metadata tags, and the new /firetriggers switch
enables you to fire pre- and post-processing triggers.
filedump and lfiledump The filedump and lfiledump have been enhanced with 9.6.04
a /nobom qualifier so that Unicode files can be written
without a Unicode byte order mark (BOM)
scope The scope block now supports dynamic scoping, enabling 9.6.01
DSP instances that are dynamically created to be included
in the scope of an operation or trigger.
September 9, 2016 23
What's New in Uniface 9
Proc Description
read The read statement now supports the offset option, 9.6.01
specifying the number of records to be skipped before
data reading starts. The offset option can only be used
when the database has a data paging mechanism and the
Uniface database connector supports it.
NOTE
To make use of this change in behavior, you must
recompile your Proc code.
$collSize The $collsize Struct function can now return a value 9.6.02
of 0.
$encode and $decode The $encode and $decode Proc functions are now 9.6.02, X201
supported on the Alpha VMS.
$number If the input is a Numeric or Float with value "", $number 9.6.01, X012
returns "".
$oprsys New OS codes added: M for Windows 8, and N for 9.6.01, X102
Windows Server 2012
$setting The $setting function can also be used to address 9.6.03, X301
settings in the assignment file.
September 9, 2016 24
What's New in Uniface 9
$NET_TIMEOUT You can now set timeouts for a Uniface existence check Changed in 9.6.07
(uec) and connection verification check (vfy). These
timeouts should only be used if required.
$WEBGEN_X_FOR_DEFAULT Determines the default value of the x-for placeholder New in 9.6.03
attribute for attached labels in static server pages.
$WEBGEN_X_ID_DEFAULT Determines the default value of the x-id placeholder New in 9.6.03
attribute for fields in static server pages.
$WEBGEN_X_ID_INSNAME Determines whether webgen appends the instance name New in 9.6.03
of the static server page to the id attribute that it
generates for the x-id placeholder attribute.
$NLS_DATE_UNIFACE_PARSER Determines whether date and time fields will be parsed New in 9.6.01,
by Uniface rules instead of NLS conventions. X104
ButtonStyle A new value, User-Defined, has been added, making it Changed in 9.6.01
possible to control the appearance of panels and toolbars.
Menu Set the font, color, and image properties for all menus in New in 9.6.01
the application.
Panel Set the color and border properties for all panels and New in 9.6.01
toolbars in the application.
[widgets] The widgets section has been updated with definitions for New in 9.6.01
the new widgets:
FormContainer=ucontainer
HTML=uhtml
TabEx=utabex
September 9, 2016 25
What's New in Uniface 9
Table 24. Uniface 9.6.08 (MX07): Documentation Updates for Reported Issues
30267 For the INPUT and OUTPUT channels of $webinfo, Uniface $webinfo: USP Data
only supports text/* MIME types such as text/plain, Channels
text/json. Other MIME types, such as application/json
are not supported.
30586 If the Supercede option is selected when converting data, the $ude copy
existing data is overwritten. Supersede
30699 Help topic has been added for the Global Proc Search form. Searching Proc
Global Proc Search
30798 The forentity statement returns error -1102 if the EntityName forentity
parameter is incorrect or the entity is not included in the
component structure.
30848 When using filedump and lfiledump to write XML files, the filedump and lfiledump
XML encoding is derived from the UnicodeFormat or CharSet
specified in the statement, or otherwise from the $SYS_CHARSET.
There are some differences between the character sets and the
encoding formats, especially with Windows code page 1252 and
ISO-8859-1. It is best practice to specify the encoding yourself
using the CharSet parameter.
30858 When importing signatures for COM interfaces, you may need /sti
to modify the signature after import. This is because methods
September 9, 2016 26
What's New in Uniface 9
Table 24. Uniface 9.6.08 (MX07): Documentation Updates for Reported Issues (continued)
30893 The maximum size that the Value can have in a ValRep list item ValRep List Syntax
is 289 bytes.
30927 String parameters for web service call-out must not exceed 400 activate
MB on 32 bit systems and 1GB on 64 bit systems. This can result Maximums
in errors -1202 and -1406 after activation.
30928 For Uniface call-in, we recommend that you do not change the SOAP Connector Options
name of the service using the svc SOAP connector option, unless
you are fully aware of the consequences.
30944 The timeout values specified by the cto and rto SOAP SOAP Connector Options
connection options are also applied when reading the WSDL file
prior to sending a SOAP request.
30945 The default request timeout for the rto SOAP connector option
is now 30,000 milliseconds for both the SOP 1.0 and SOP 2,0
connectors.
30946 The default connection timeout for the cto SOAP connector
option is now 30,000 milliseconds for both the SOP 1.0 and SOP
2,0 connectors.
30967 Unifields can now be edited when there are split bars in the Unifields
component. However, changes in the layout as a result of moving
split bars are not applicable to Unifields.
30979 A popup form may have a title bar if it inherits the Caption Popup Forms
property of its parent form. In this case, it can be moved by the Popup Window
end user. If the parent field or form is moved, the opened popup
form with title bar stays where it is. It does not stay attached to
its parent field.
September 9, 2016 27
What's New in Uniface 9
Table 24. Uniface 9.6.08 (MX07): Documentation Updates for Reported Issues (continued)
31010 In the Edit Box and Rich Edit Box widgets, the Frame property Frame
can be changed dynamically in Proc, but only if the 3-D Effect
property is false when the form is initialized.
31041 For a Checkbox widget in a static server page (USP), Uniface Checkbox
now maps a Null (empty) value in the data to a False value in
the HTML. As a result, the behavior of the Checkbox in retrieve
profiles has changed.
A retrieve profile that includes the Checkbox can retrieve only
True or only False values. To retrieve data the contains both
True or False values, the value of the checkbox field must be
set to null in Proc.
Prior to this fix, an empty Checkbox retrieved both True and
Null values, but not False values.
For List, Menu, and RadioButton widgets in USPs, the format List
of values in the ValRep list must be same as the display format Menu
of the field.
RadioButton
31069 The spawn command is no longer deprecated. There are no plans Uniface 9.1: Deprecated
to remove this from Uniface. Proc
— The usysparm function can be used to get the value of the usysparm
$dberrortext Proc function.
30456 Changes to widget font and color settings in the Month Calendar Month Calendar
are supported only in Windows Classic mode. They cannot be
applied when Windows visual styles are in effect, for example
when a theme is applied or in Windows 8.
30581 If Keep Layout State is False for a Form, but True for a Grid Keep Layout State
in the Form, the Grid layout state is stored at the Instance level Layout State Storage
in the Registry, but only if the instance name has not been
generated by Uniface. In other words, Uniface behaves as if
Layout State Storage is set to INSTANCE.
September 9, 2016 28
What's New in Uniface 9
Table 25. Uniface 9.6.07(MX06): Documentation Updates for Reported Issues (continued)
30625 The Resized trigger of the Form Container widget is now fired Resized
when its parent form is loaded (even if the Attach property is
not set.), as well as whenever the form is resized.
NOTE
The returned size of the widget now excludes the widget frame.
Previously, it included the widget frame so the returned size is
now smaller by several pixels.
30627 The Viewport_resized trigger of the Grid widget is now fired Viewport_Resized
when its parent form is started, or is loaded into a form container,
as well as whenever the grid is resized.
30711 The way that sql/print and sql/data handle trailing white sql
space is different. When using sql/data trailing white spaces
is stripped from the returned data. When using sql/print,
trailing spaces are not stripped.
30731 Widget operations called in an HTML widget only affect the HTML Widget
widget, not the field. The field that is bound to a widget changes
when scrolling through data. For this reason, $widgetoperation
should not be used if you want to change the displayed content
based on the occurrence being displayed.
30752 When Uniface parses and displays the value of a Date, Time, or Parsing and Displaying
Dateline field, it uses either Classic mode or NLS mode, as Date and Time Data
determined by the $nlslocale and $nlsformat variables. The $NLS_DATE_UNIFACE_PARSER
parsing behavior can be further influenced by the and
$NLS_DATE_UNIFACE_PARSER and $NLS_DATETIME_UNIFACE_PARSER
$NLS_DATETIME_UNIFACE_PARSERassignment setting.
30796 It is possible to specify a title for the message box displayed by askmess
askmess.
30789 UHTTP proxy authentication is now available for Windows [LOGICALS] and SENDand
platforms. For compatibility reasons, it is not used by default. SET_FLAGS
To ensure that the default behavior is the same on all platforms,
set the logical UHTTP_WPOST_FORM in the [LOGICALS] section
of your assignment file. If you do so, you may need to make
some code changes, for example by changing the flags set with
the UHTTP.SET_FLAGS operation.
30825 The No Form Scrollbars property now applies to overlay, No Form Scrollbars
contained, and popup forms, as well as to normal forms.
30834 The following types of Proc syntax now result in compiler errors: Error: 1000 Operand not
• A line of code that ends with an operator that should be valid
followed by an operand. Error: 1000 Syntax error
(Statement not valid)
September 9, 2016 29
What's New in Uniface 9
Table 25. Uniface 9.6.07(MX06): Documentation Updates for Reported Issues (continued)
30879 You can now use handles to component instances as parameters Call-Out Using activate
to 3GL callout operations.
30888 You can now set timeouts for a Uniface existence check (uec) $NET_TIMEOUT
and connection verification check (vfy) in the Uniface Router /uec and /vfy
assignment file. These timeouts should only be used if required.
It is also possible to set these on the network path setting in the
client’s assignment file.
Table 26. Uniface 9.6.06 (MX05): Documentation Updates for Reported Issues
30315 If an imported Uniface 8 file contains Uniface meta dictionary data, Migrate Repository Utility
the Migrate Repository Utility can be used to automatically import
the Uniface 9 meta dictionary.
30405 The database connectors for Oracle, Solid, and SQLite now support DBMS Connector Limits
a maximum record length of 2GB-1 for records with only fixed
length fields.
The maximum record size for entities that have variable length
fields remains 8192 bytes; the rest goes into the overflow table.
30499 In addition to being passed as a literal string, entity and occurrence params
parameters can now be passed as a field, an indirect field, a variable,
or a function that returns a string.
30545 The documentation has been updated to clarify namespace handling xmlToStruct
by xmlToStruct.
30600 When discard is used during processing of the xmlsave statement, discard
$status returns -3 and $procerror returns -1320.
30629 The maximum number of levels in a Proc call stack depends on the Proc Call Stack
type of Proc module. Entries can have a larger call stack than
operations.
September 9, 2016 30
What's New in Uniface 9
Table 26. Uniface 9.6.06 (MX05): Documentation Updates for Reported Issues (continued)
30677 The Check Box widget supports a new property FocusIndicator FocusIndicator
which determines how the check box shows it has focus when no
attached label is available.
30732 It is now possible to use Structs for disconnected record sets. New Using Structs for
switches and Struct annotations have been added to Disconnected Record Sets
componentToStruct and structToComponent to support the componentToStruct
occurrence reconnect information required by the reconnect
structToComponent
statement.
This functionality works in the same way as xmlsave and xmlload.
30773 A new Sybase connector option is available. This is a compatibility convert numeric
option that is applicable to SYB U5.1 connector and higher.
29978 In the Grid widget, the following properties of the Drop Down List Widgets and Properties
widget are now supported: Supported in Grid Widget
30307 A new 3GL function is available. ufputext supports sending more ufputext
data to a field than it can contain.
30305 When a WSDL file contains complex XML schema types that Importing WSDL
Uniface does not support, they are mapped to them to string Definitions for Web Services
parameters, so special handling is required when activating the web
service operation. Unsupported XML constructs include:
30351 If an imported Uniface 8 file contains Uniface meta dictionary data, Migrate Repository Utility
the Migrate Repository Utility can be used to automatically import
the Uniface 9 meta dictionary.
September 9, 2016 31
What's New in Uniface 9
Table 27. 9.6.05 (MX04): Documentation Updates for Reported Issues (continued)
30495 The correct literal property name for Current Occurrence Row CurOccRowHeigh
Height is CurOccRowHeight.
30327 If the IdPart or the ValuePart in a list item is not specified, it is Associative Lists
considered to be empty.
30380 Transparency is not supported for PNG images that are used in the Supported Image Formats
Tree widget (for example, for icons specified by the Type property). Type
30404 Tooltips can be displayed in non-modal forms (including tabs and Tool Tip Text
contained forms), and in modal forms that have focus. No tool tip
is shown on disabled forms (such as a modal form that has opened
another form). They can only be displayed when Uniface is active.
30486 When XML schema data types datetime, date and time are received Date, Time, and Time Zones
in SOAP responses, without a time zone specified, they are for Web Services
interpreted as the current local time and no time zone conversion
is applied.
30531 Clarified that the literal name of the Multiple Rows property is Multiple Rows
multiline for the TabEx widget and multi for the Tab widget.
30552 It is now possible to start a popup form without giving it focus. This edit
can be done using the edit/nofocus statement in the form itself, InitialFocus
or the instance property InitialFocus=false.
30676 The Tab and Form Container widgets do not support the Color Inheritance
Background Color and Foreground Color properties.
Table 28. Uniface 9.6.04 (MX03): Documentation Updates for Reported Issues
30245 The documentation for the Uniface Resource Manager (URM) has urm
been updated to include missing switches for urm entitycopy.
30269 When activating operating system commands, If the command is Operating System
not valid, an activation error occurs and $status and $procerror Commands
will be set to -150.
September 9, 2016 32
What's New in Uniface 9
Table 28. Uniface 9.6.04 (MX03): Documentation Updates for Reported Issues (continued)
30281 The Dimmed Background Color property is supported by the Dimmed Background
Color Box widget, but not the Color List or Rich Edit Box widgets. Color
Its default value is True, but this is overridden in the default
usys.ini file.
30326 The $setting function can also be used to address settings in the $setting
assignment file
30369 The number of fields supported by the Oracle database connector DBMS Connector Limits
(ORA) has been increased from 274 to 1000.
30371 It is now possible to dynamically set the endpoint URL of a web $signatureproperties
service. The $signatureproperties enables you to set SOAP SOAP Connector Options
U2.0 connector options in Proc. A new svc connector option defines
the endpoint for a SOAP web service.
30394 The maximum length of an operating system command has been Operating System
changed to conform to the maximum length supported by the Commands
operating system.
30413 It is not possible for a Uniface component to activate another COM Call-In to Uniface
Uniface component via a COM interface when they are running in
the same Uniface process. This is only possible if they are running
in different processes.
30443 The drop-down list widget now supports the FrameColor property. Drop-Down List
Frame Color
NOTE
For the drop-down list widget, the Frame property, and its
dependent properties FrameColor and 3D Effect, are applied only
if the Dynamic property is True, and the field does not have focus.
— The UTIMER component can run in an exclusive server but it can UTIMER
only post messages to applications that are registered with the Inter-Component
Uniface Router. It cannot send postmessages to local components Messaging
in that exclusive server. This differs from normal postmessage
postmessage
behavior.
— On Linux and Unix platforms, if the UST command line is too long, [SERVERS]
it may not be reported to the Uniface Router. In this case, the
urouter.log file may report that the Uniface Server was
successfully started, but then fails to register and reports a timed-out
error.
September 9, 2016 33
What's New in Uniface 9
Table 29. Uniface 9.6.03 (MX02): Documentation Updates for Reported Issues
29756 Each time a Proc entry or operation is called recursively, a level of Proc Call Stack
Proc nesting is added to the Proc call stack. Too many levels of
nesting cause Uniface to issue a fatal error message (9033
"Runtime error: Proc stack overflow")
29867 The $encode and $decode Proc functions are now supported on $encode and $decode
the Alpha VMS.
However, the RSA and DSA encryption algorithms are not
supported on the Alpha VMS and are very slow on the Itanium
VMS.
30080 The search order for color inheritance has been made clarified. This Color Inheritance
affects forms, entities, area frames, and labels, as well as widgets Inherit Colors
that support the Inherit Colors property.
30025 The Detail trigger of the Color Box widget can be fired only if the Color Box
Double-Click (DblClk) property is set to Detail. You can do this
in the usys.ini file or in the More Properties dialog (click More
in the Define Color Box Properties dialog).
30103 The UPOPMAIL Send operation has been enhanced to allow Send
sending to other recipients even if one of the recipients is invalid. GetRecipientDetails
A new operation, GetRecipientDetails, has also been added to
the UPOPMAIL component. It returns a list of recipients that were
not accepted, and the SMTP reply code and message text.
30140 When using retrieve or retrieve/e, if the outer entity is in the retrieve
application model, but its DBMS Path is Not in database, the
Read triggers of the inner entities are not activated. In this case,
ensure that the read statement in the outer entity's Read trigger
explicitly retrieves the inner entity.
30162 Popup forms are now always created as attached forms. Popup Window
NOTE
This is a change in behavior since 9.6.01, when they were created
as detached forms.
30167 The size limit for Proc labels is 128 chars. Proc Labels
30173 A new connector option, connection pooling, is available for connection pooling
the MSS connector. It determines whether connection pooling is
enabled.
30222 The way that empty elements are represented by UXMLWRITER ENDELEMENT
has changed. Since Uniface 9.6.01 X103, it is written as
<ElementName/>, rather than <ElementName> </ElementName>.
September 9, 2016 34
What's New in Uniface 9
Table 29. Uniface 9.6.03 (MX02): Documentation Updates for Reported Issues (continued)
30249 The newinstance documentation has been updated to include the newinstance
FieldName property for popup windows.
30291 The component library has been added to the search path for glyphs. Search Order for Global
It is now the same as for menus. Objects
30352 The stored layout of a form (if HISTORY is set) is ignored when the History
form is displayed in a popup window.
— The IdPart of an associative list is limited to 150 bytes, not 80 Associative Lists
bytes
— The values returned in $status after the macro statement have macro
been corrected.
— The default widget definition for the drop-down list has been Drop-Down List
corrected.
29502 The window property Overlay Parent can be used to link an overlay Overlay Parent
form with a specific contained form instance, such as a tab page.
29650 Labels and edit boxes can inherit both foreground and background InheritColors
colors from their parent entity or form. It is possible to set both
foreground and background colors of entities in Proc.
29680 Uniface arithmetic expressions use string representations of the Arithmetic Operators
numbers as input, and return a string representation of the result,
truncated at 38 digits. If the 39th digit is 5 or higher, the number is
now rounded upwards.
29769 When retrieving the field syntax, only syntax attributes that are $fieldsyntax
dynamic and that have previously been set with $fieldsyntax are $fieldinfo
retrieved. If syntax attributes have been set declaratively (in the
model or component), an empty string is returned. You can retrieve
declaratively set field syntax with $fieldinfo("SYNTAX").
29772 The DSP widget property Syntax Check on Browser Syntax Check on Browser
(ClientSyntaxCheck) does not disable the field syntax check; it
just makes it possible for the browser to submit a request, even if
a field holds syntactically incorrect data.
29773 If the web service component is located in a subsystem, you need Exporting WSDL and
to recompile the signature using /sig ServiceName, before Schema Files for Web
exporting the WSDL file. This ensures that the WSDL export facility Services Call-In
creates a WSDL with the correct target namespace.
September 9, 2016 35
What's New in Uniface 9
Table 30. 9.6.02 (MX01): Documentation Updates for Reported Issues (continued)
29801 and 29881 A new initialization setting determines whether the background of ColorNo
labels and fields with the Color property set to No are printed on a
transparent background, or a white, non-transparent background.
29805 The JavaScript API setValRep can now accept a JavaScript array setValrep,
as parameter. setValrepArray,
New JavaScript APIs setValrepArray and getValrepArray are getValrepArray
available.
29806 The ButtonStyle .ini setting has 4 additional styles, which are ButtonStyle
now documented.
29822 Describe how to set the font style in font definitions in the [screen] and [printer]
initialization file.
29836 The LDAP 2.0 connector is now available for Windows 32-bit LDAP Connector
systems.
29847 A new property, maxtags, controls the number of tags that are maxtags
dynamically updated as you type in the Proc Editor. Configuring and Using the
Proc Editor
29852 Command line switches and sub- switches are normally separated Command Line Switches
by spaces, but this is not required. However, if spaces are omitted,
a switch that can take a value cannot be followed by another switch.
29886 You can set ColorNo in the Setup utility—in the Printer tab, ColorNo
choose Print transparent background when Color set to No.
NOTE
To make use of this change in behavior, you must recompile your
Proc code.
September 9, 2016 36
What's New in Uniface 9
Table 30. 9.6.02 (MX01): Documentation Updates for Reported Issues (continued)
29903 and 30009 The $oprsys Proc function returns M when the operating system $oprsys
is Windows 8, and N for Windows Server 2012.
29933 and 29940 The ActionEachClick property has been added to the Command Command Button
Button properties dialog box, and the labels of the color properties
have been changed.
29911 If the input of $number is a Numeric or Float with value "", $number
$number will also return "".
29924 The $LICENSE_OPTIONS assignment setting can now specify the $LICENSE_OPTIONS
search order for loading DLM DLLS. The LM_LOAD=uniface option
reverses the default search order and attempts to load from the
Uniface PATH (Uniface\bin) first, before attempting to load from
the DLM installation path.
29964 During compilation, if the offset= string of the read statement is read
detected and there is no order by clause, a warning is issued.
29946 The names of border color properties (introduced in 9.6.01) for BorderColorSelect and
panels and menus have been changed. colorselectborder BorderColorHover
becomes colorborderselect, and backcolorlockedborder
becomes colorborderlocked.
29958 In MSS service stored procedures, the name specified by the Service Stored Procedures
dbowner option is used when a schema name is not explicitly used. on Microsoft SQL Server
Naming Specifications for
Service Store Procedures
29960 When specifying the Base URL for an HTML widget, a directory Base URL
should end with a slash, a document should not.
30002 When converting or exporting data to a zip file using the Data Zip Files
Conversion Utility (/cpy), Export Utility, entitycopy, $ude
("copy"), or $ude ("export"), the zip archive is created in the
Zip64 format. This is required for zip files that are 4GB or larger.
30007 Uniface 9.6 only supports SYB U5.x connectors. The Sybase Sybase
documentation has been updated to remove all references to SYB
4.x connectors
September 9, 2016 37
What's New in Uniface 9
Table 30. 9.6.02 (MX01): Documentation Updates for Reported Issues (continued)
30023 The HTML widget can interpret UNiface keyboard commands that HTML Widget
are defined by the UnifaceKeys property UnifaceKeys
30034 When a global Proc contains a call to another global Proc, and Search Order for Global
the library is not specified, Uniface first looks for the called module Objects
in the (calling) global Proc itself, then in the same library as the
calling global Proc.
30043 The edit Proc statement is ignored in dynamic server pages. edit
30045 If you are creating a ValRep list that only contains images, or if the ValRep List Syntax
representation of some items is an image and others is text, you
need to use a percent sign (%) to replace the text that is expected
after the GOLD !.
30081 If the AsynchGui initialization setting is 2(Flush), it is not possible Auto Close
to activate a popup form that has the Auto Close property set to AsynchGui
True.
30085 The layout of the grid is only stored if all columns have a size. This Grid
ensures that columns that may have been hidden (by
$columnsyntax) are visible when the form is restarted.
30102 It is recommended that you avoid setting a Proc entry as a watch Watches
because this sets the value of $status at each step, which can affect
subsequent code execution..
30109 The documentation about multiple selection in a List Box has been List Box and ExtendedSel
updated.
30134 XML element names in DTD mappings are case-sensitive. Defining DTD Mappings
— Samples for Uniface 9.6 functionality are being made available on Uniface Samples
Uniface.info
— The new Command Button properties are not supported in the Grid Widgets and Properties
widget. Supported in Grid Widget
September 9, 2016 38
What's New in Uniface 9
You can now integrate Uniface applications and cloud-based data storage services UHTTP
such as Amazon, DropBox, Google Drive, and Microsoft OneDrive that provide Web Services
REST-compliant APIs.
To enable this, the Uniface UHTTP component has been enhanced to support
binary file transport. The UHTTP component is Uniface's HTTP client and has
operations that enable you to integrate communication with web sites (including
REST-compliant services), implement basic browser functionality, and so on.
The following operations have been added:
• LOAD_FILE_CONTENTS—load a file, or part of a file, into the body of a
request prior to calling SEND to upload to a REST API.
• DUMP_FILE_CONTENTS—declare the response of a SEND operation as a full
or partial file download from a REST API.
• GET_INFO—get information about the about the body of the request or
response, either before or after the SEND operation.
• CLOSE_FILE—close the current file that was being used for chunked file
transfer.
Internalized labels of command buttons and check boxes are now documented. Labels
30789
30879
30888
For more information, see Uniface 9.6: Documentation Updates for Patches [p. 26].
September 9, 2016 39
What's New in Uniface 9
It is now possible to use Structs for disconnected record sets. Disconnected Record Sets
componentToStruct features new switches (/notags, /reconnectTags, and componentToStruct and
/firetriggers) that enable you to fine-tune the tags that are generated and to structToComponent
fire pre- and post-processing triggers. reconnect and
structToComponent now recognizes occurrence metadata tags, and the new retrieve/reconnect
/firetriggers switch enables you to fire pre- and post-processing triggers.
The reconnect and retrieve/reconnect commands can now reconnect data
in Structs.
It is now possible to dynamically address entity and occurrence properties in Entity Widgets
Dynamic Server Pages using Proc and JavaScript. Entities and occurrences AttributesOnly
support the same properties as the AttributesOnly widget.
$entityproperties,
In Proc, you can use $entityproperties, $CurEntProperties, $CurEntProperties, and
$occproperties to get and set their widget properties. $occproperties
In the JavaScript API, the uniface.Entity object now has the following uniface.Entity
members:
getProperty
setProperty
getProperties
setProperties
clearProperty
clearProperties
Other Changes
September 9, 2016 40
What's New in Uniface 9
The Double-Click property is now supported by the Combo Box widget in both Double-Click
normal use and in the Grid widget.
SQL Lite is now provided with the Uniface e-distribution as the default DBMS SQLIte
for the Uniface Repository. A new database connector for SQLite is available.
SolidDB is no longer provided in the Uniface e-distribution. This has no impact
for existing users who use SolidDB for the Repository.
NOTE
SQLite is not supported for Uniface Flow. If you use SQLite for the Uniface
Repository, it is not possible to use the Process Studio.
The MySQL connector now supports segmented fields. MySQL Data Packing
On Windows, the default location for user data, including the Repository
database, is C:\Users\UserAccount\Documents\Uniface Version.
This location is visible under the My Documents folder in the Documents
Library.
NOTE
This location is accessible to only one user. If you want the Repository to be
available to multiple users, we recommend that you use a database other than
SQLite.
30351
30676
For more information, see Uniface 9.6: Documentation Updates for Patches [p. 26].
September 9, 2016 41
What's New in Uniface 9
Struct Enhancements
The Struct functionality has been extended to support conversion to and from Structs for JSON Data
JSON streams. Two new Proc statements have been added—structToJson structToJson
and jsonToStruct
jsonToStruct
The filedump and lfiledump have been enhanced with a /nobom qualifier so filedump and lfiledump
that Unicode files can be written without a Unicode byte order mark (BOM)
The Edit Box widget now supports incremental searching by means of an onEdit trigger onEdit
extended trigger that can be used to respond to user input as the user enters data. OnEdit and EditDelay properties
NOTE
There is no placeholder definition placed in the Extended Triggers trigger. You
must manually define and implement this trigger.
The trigger is enabled only if the OnEdit widget property is set to True. The
EditDelay property can be used to apply a delay of 200 milliseconds after the
user stops entering data. This reduces the frequency of firing the onEdit trigger
to improve performance when retrieving data.
The TabEx widget now supports a customizable tab button that executes an TabEx
extended trigger, onTabButton, when clicked. You can use this to implement a onTabButton
Close button (for example) on each tab.
The following properties are added:
The behavior of the Auto Close property has been changed to enable a cascading Popup Window
chain of popup forms, in which one popup form can activate another. This can Auto Close
be used to create a type of context menu.
In this case, when Auto Close is set to True, the parent does not close when the
child popup form gets focus. However when a popup form that is higher in the
chain gets focus, all popup windows below the form with focus are closed.
Web Enhancements
September 9, 2016 42
What's New in Uniface 9
The JavaScript API has been enhanced to simplify code when addressing the uniface
main component instance. The uniface object now supports the functions
getEntity, getEntities, and activate.
The sql Proc statement has been enhanced with an extra switch, /data, which sql
returns data in $result as a nested Uniface list. This makes it easier to
post-process the data using standard Uniface list processing functions. An
optional /fieldname subswitch, enables you to include a header of field names
in the returned data.
These switches are available only for solidDB, Oracle, Microsoft SQL Server,
MySQL, and DB2.
Uniface reintroduces support for mobile application development. Theme: Mobile Applications
The MSS U5.0 connector for Microsoft SQL Server is now available on Linux. Environment Considerations for
It provides the same server-side functionality as on Windows. However, it cannot Microsoft SQL Server
support SQL Native Client features, such as snapshot Isolation and multiple
active result sets (MARS), because the Microsoft ODBC driver on Linux does
not support SQL Server Native Client.
The U4.0 DB2 connector is now available for Windows and Unix. This connector Data Retrieval on DB2
supports the offset option on the read statement, but to make used of it on
Windows and Unix, you need to configure the DB2 server to support the LIMIT
and OFFSET SQL keywords.
30488
For more information, see Uniface 9.6: Documentation Updates for Patches [p. 26].
Web Enhancements
September 9, 2016 43
What's New in Uniface 9
Static server pages have been enhanced so that labels can be bound to fields, Customizing the XHTML
making it possible to select a field by selecting its label. For RadioButtons, labels Generated for USPs
can be associated with the values.
You can configure the behavior of the webgen statement, globally or for
individual fields, so that it:
• Generates a label element, instead of producing plain text. The label can
have a for attribute that references the id of the associated field.
• Generates a unique id for each field, which can be used to bind the field
to labels, or address the field in JavaScript.
New placeholder XHTML attributes x-id and x-for are available for USP <x-subst type="FieldType">
widgets and labels
New assignment settings have been introduced to support the id and for $WEBGEN_X_ID_DEFAULT
attributes in static server pages. $WEBGEN_X_ID_INSNAME
$WEBGEN_X_FOR_DEFAULT
The UHTTP component for handling HTTP requests has been enhanced to UHTTP
support Unicode, and other character sets that Uniface supports, such as Shift_JIS.
The new DB2 U4.0 connector provides native data pagination by means of the Data Retrieval on DB2
offset option of the read statement.
GUI Enhancements
Uniface 9.6.03 makes it much easier to respond to changes in the layout resulting Attach to Window Border
from form windows being resized and split bars being moved. The Attach to
Window Border (Attach) property has been significantly enhanced so that
widgets can be attached to split bars, if they are present, instead of the window
border. New values enable you to choose whether to resize attached widgets, or
maintain the same size and simply move the widget with the border or split bar.
The Radio Group widget now supports the Attach and AttachMargin properties. Radio Group
A new extended trigger is available on the Form Container and Tabex widgets. Resized
The Resized trigger allows you to control the response of the widget when the
widget is resized. For example, you could display a different component when
the size is larger or smaller than a specified size.
Currency Enhancements
A new version of the DB2 database connector is available. The DB2 U4.0 DB2
connector is supported on all platforms.
A new version of the TXT connector is available. The TXT U2.0 connector TXT
supports Unicode. The uni connector option defines the default Unicode Unicode Support in TXT
encoding used by the TXT connector, and the /uni assignment switch defines
uni and /uni
the Unicode encoding to use for a specific entity.
September 9, 2016 44
What's New in Uniface 9
30103
30227
30291
30352
For more information, see Uniface 9.6: Documentation Updates for Patches [p. 26].
You can now hide the message line in an application using the MessageLine property MessageLine
of the startup shell. This can be set in usys.ini or in Proc.
You can set the padding around the label displayed in a command button or TabEx tab padding
using the new padding property.
You can specify the size of the margin around a widget when it is attached to one or AttachMargin
more sides of window, using the new AttachMargin property.
The Check Box widget now supports the Foreground Color, Transparency, and Check Box
InheritColors properties. These are applied to the associated label of the check box,
not to the box itself.
As a consequence, the appearance of a check box for which colors are defined may
differ between 9.6.01 and 9.6.02:
• If a color is defined for a checkbox (using Background Color or Color), the
color is only applied to the associated label. If there is no associated label, the
color is no longer visible as a border around the checkbox.
• If an index color is specified for the check box, the associated label now accurately
shows both the foreground and background color. Previously, only the background
color was applied.
The Radio Group widget now supports the Transparency and InheritColors Radio Group
properties.
The Active Tab Line Color property is now available for the TabEx widget. Active Tab Line Color
As a result, the behavior of the Tab Colors property has changed slightly. The active Tab Colors
tab is no longer highlighted by a black tab line. You must now explicitly set the Active
Tab Line Color to achieve this effect.
September 9, 2016 45
What's New in Uniface 9
A primary resizable form is now displayed without a horizontal scroll bar. FormPositionFromInside
This is a change in behavior. If the old behavior is desired, set the initialization setting
FormPositionFromInside to on.
Struct parameters can now be passed to public operations. The default behavior is to Struct Parameters
pass Struct parameters by reference in partner operations and entries, and to pass them params
by value in public operations. It is possible to override this behavior when declaring
the parameters using the byRef or byVal qualifier.
A Struct variable (or any Struct expression) whose value is NULL, is now interpreted $collSize
as being a collection of zero references to Structs. Previously it was interpreted as a Null Values
scalar value. As a result, the $collsize Struct function can now return a value of 0.
This change introduces a change of behavior when assigning Structs. For example,
Struct A has 2 members name x, and Struct B has zero members named y. The
following assignment will result in Struct A having zero members named x.
vStructA->x = vStructB->y
Effectively, such an assignment removes all of the members named x.
The Struct documentation has been changed to more clearly show the relationship Structs
between Structs and struct variables. Struct Variables
New documentation has been provided on the configuration and use of asynchronous Inter-Component Messaging
messages for inter-component communication (also known as postmessages).
When using $widgetoperation to call a JavaScript function in the HTML widget $widgetoperation
with parameters, the data is mapped and translated to a JavaScript data type.
In the JavaScript API, the uniface.DSPInstance object has been renamed to uniface.Instance
uniface.Instance, and a number of functions have also been renamed. uniface.getInstance
The old names are deprecated, although for compatibility, they still work. Object.getInstance
29680
29898
30085
30102
September 9, 2016 46
What's New in Uniface 9
30109
30134
For more information, see Uniface 9.6: Documentation Updates for Patches [p. 26].
GUI Enhancements
New widgets have been added for form components, and existing widgets have been enhanced.
It is now possible to display popup forms. This makes it possible to create dynamic, Popup Forms
modern user interface features, such as ribbons bars, enhanced tooltips, and web-like Popup Window
menus in client-server applications.
The new Form Container widget makes it possible to nest forms within forms. You can: Form Container
• Dynamically display different forms within a parent form.
• Display multiple instances of the same form within a parent form.
• Embed tabs within a parent form.
• Display the same entity more than once in a form without the use of component
subtypes.
The new HTML widget enables you to embed HTML 5 into a form component. You can: HTML Widget
• Show rich text within an application, for example, help information.
• Embed wed pages into a Uniface form, and have the Uniface application interact
with them.
• Execute Javascript functions inside an HTML widget, or call Uniface functions from
JavaScript
• Load HTML or a URL into the widget, without actually assigning or changing the
value of the field.
The new TabEx widget provides a wealth of extra properties for controlling the look and TabEx
feel of the widget and its tabs.
September 9, 2016 47
What's New in Uniface 9
Although the basic tab widget (utab) is still available, you can easily switch your
application to the new TabEx widget by assigning the new physical widget, utabex, to
the existing logical widget:
[widgets]
; TabEx=utabex ; new Tab widget
; Tab=utab ; old tab widget
Tab=utabex ; assign new implementation to existing name
The default appearance of the new tab widget follows Windows, so this switch does not
affect the appearance and behavior of the tabs until you start customizing it.
The Command Button widget has been substantially enhanced. If you change the Command Button
Representation property to Uniface, you can:
• Change the text colors of the button depending on the button state. (A button can be
active, the field can have focus, or the mouse cursor can hover over the button.)
• Replace the button representation with an image.
• Use different images depending on the button state.
Menu functionality has been enhanced to support colors and images in menus. By defining Menus and Toolbars
menu properties in the initialization file, it is possible to influence the appearance of the Menu Properties
foreground, background, and current selection, and to display icons in front of menu text.
Panel functionality has also been enhanced, enabling you to define your own color scheme Panels
for toolbars and panels. Like menus, you can set properties in the initialization file to
define the background colors to use for panels, and the colors to apply to buttons when
they have focus or are locked.
To add an image to the text in menu items, command buttons, and tab labels, and the Image Size
ValRep lists of drop-down list and listbox widgets, you can define a list substring with Label Image Alignment
the following format:
{@Image | ^Glyph!} Text
It is now possible to configure the size of this icon using the Label Image Size or Item
Image Size property. For icons in tabs and command buttons, it is also possible to
configure the alignment , in relation to the text using Label Image Alignment property.
New window types are introduced to support the popup form, form container widget, and Window Type
the tab widgets. The Window Type form property now allows the values Contained
Form (which replaces Tab Page) or Popup Window.
Uniface now supports Alpha channels for PNG files, with the result that the PNG Image Filters
transparency property is also supported.
Labels and edit boxes can inherit both foreground and background colors from their parent InheritColors
entity or form.
Web Enhancements
Enhancements have been made to improve client-side code execution, data paging, and web
server security for Uniface web applications. Support for complex parameters for web services
has also been improved.
September 9, 2016 48
What's New in Uniface 9
Dynamic server pages now support dynamic scope, which makes it possible to determine Dynamic Scope
the scope of operations and triggers at runtime. DSP instances that are dynamically created
can be included in the scope of an operation or a trigger.
It is now possible to use the native pagination functionality provided by some databases, Data Paging in Web
instead of having to implement your own data paging mechanism to replace stepped Applications
hitlists. read
The read statement has a new offset option that defines the number of records to be
skipped before data reading starts. In combination with the maxhits and orderby options,
it can be used to implement data paging in web applications. Currently, this is supported
for Solid, Microsoft SQL Server, MySQL, and Oracle.
It is now possible to dynamically control the appearance of occurrences in the DSP layout uniface.Occurrence
using $occproperties or the JavaScript API.
The JavaScript API has been extended with property manipulation functions on the
uniface.Occurrence object:
A CSS class selector can now be dynamically applied to, or removed from, a bound class:ClassName
HTML element in the layout. The class:ClassName property enables you to change
the styling of HTML elements that are bound to Uniface objects, without replacing the
complete value of the class attribute. You can add or remove a class in the list, without
affecting other classes. This is in contrast to the html:class property, which replaces
the entire list of classes.
By default, Tomcat is now installed with the Security Manager enabled. This ensures that Configuring the Tomcat
it can be used for deploying Uniface web applications in a production environment. Security Manager
The WSDL import functionality for the U2.0 SOAP connector has been enhanced to /gen
provide extra support for complex web service parameters. Using the Example XML
When a parameter contains complex data, Uniface defines that parameter as a string data Generated by WSDL
type. The developer must provide the complex data as a well-formed XML string. To Import
help in this task, the new /gen switch generates items that can help with creating the
complex structures that are frequently used as web service parameters. It generates an
XML example that documents what is required for each complex parameter, and generates
model entities, where possible.
September 9, 2016 49
What's New in Uniface 9
The following new connector versions support the read offset option (for data paging): read
Data Retrieval Support
SOL U4.0 for Solid 6.5
MSS U5.0 for Microsoft SQL Server 2012
MQL U3.0 for MySQL 5.5
ORA U7.0 for Oracle 11gr2
The MSS U5.0 connector supports the MAX specifier for varchar, nvarchar and Microsoft SQL Server
varbinary storage formats. Data Packing
New SYB U5.x database connectors support the same select mechanism for hitlist Sybase Cursors and
management, which provides an alternative to the use of Sybase cursors. Hitlist Management
The SYB U5.x connectors also support Unicode. Support for Unicode in
the SYB Connector
Uniface can take advantage of extra memory on Windows systems that have 1 GB or Increasing Virtual
more of physical memory available. Memory on Windows
Uniface 9.6 provides native Windows 64-bit client support. However, the following
functionality is not supported in the 64-bit installation.
HTML widget
Uniface Flow
SOP U1.0 SOAP connector
If you need any of these features, you should install the 32-bit version.
September 9, 2016 50
What's New in Uniface 9
RIA enhancements Uniface RIA functionality has been enhanced to enable code to Uniface 9.5: Uniface RIA
be executed in the client browser as well as on the server. Support Enhancements [p. 53]
for client-side processing includes new Proc instructions, a
JavaScript API that enables you to implement triggers and
operations as JavaScript, and changes in runtime support and
configuration.
In addition, changes have been made to session management to
improve security, and we have provided guidelines about how to
protect web applications from a variety of security threats.
Functionality to support incremental searching has also been
added.
New struct data type Uniface introduces a flexible new struct data type that holds Structs
complex data that is typically represented as a tree-like structure. Transforming Complex
The struct data type is intended for data manipulation rather Data Using Structs
than storing data, so it is only available for variables and
parameters, not for fields.
New operators and Proc instructions enable you to create complex
data structures, load data from XML or Uniface component
structures (nested entities), manipulate it, and then transform it
back to an external format (XML, component structure).
You can use this new functionality, for example, to transfer data
from XML to struct, manipulate it to match the entity structure
of a component, and then transfer the struct data to the entities.
This is particularly useful for manipulating data sent to and
received from web services.
Improved SOAP Uniface now supports callback operations that can be used to SOAP Callback
support provide additional processing before and after handling a call-in Operations
request for a Uniface web service or before and after calling out
to a web service with the SOP U2.0 connector.
Error handling has also been enhanced. Uniface generates SOAP Error Handling
complete SOAP faults when an error occurs during call-in and
returns SOAP fault data in $procerrorcontext when errors
occur during call-out with the SOP U2.0 connector.
GUI enhancements: New properties, extended triggers, and Proc functions have been
Grid added to provide more control over the display of information in
the grid widget (and multi-occurrence lists).
September 9, 2016 51
What's New in Uniface 9
Display the contents of an edit box or picture widget in a tooltip Hover View
using the Hover View widget property.
GUI enhancements: You can now dynamically set or get the entity widget properties Representation
Appearance of inner for a specific inner entity occurrence. Properties
entities With $occproperties, you could control the appearance of a $CurEntProperties
specific occurrence in web pages, but it also affected the
appearance of inner entities. Now, it is possible to control the
appearance of a specific inner entity as well using the new
$CurEntProperties function.
GUI enhancements: Panels and toolbars can now be styled to match the appearance ButtonStyle
Appearance of panels of toolbars in several versions of Windows Office or other
and toolbars pre-defined style.
To change the style, in the Setup utility, choose the Toolbar tab,
and then select the style in Toolbar and panel button style. This
sets the ButtonStyle setting in usys.ini.
Iterative list handling New Proc functions are available for iterative processing of lists for, forentity and
and entities. forlist
SolidDB You can upgrade existing Solid databases to Solid 6.5 using the
-x autoconvert parameter
Unicode support in The Uniface DB2 connector now enables Unicode support (with Support for Unicode in
DB2 some limitations) DB2 Connector
Support for Service Service stored procedures are now supported for Microsoft SQL Service Stored
Stored Procedures in Server Procedures on Microsoft
Microsoft SQL Server SQL Server
UXMLREADER and XML namespaces are supported, either by using the SAX Callback Operations
XML namespace STARTPREFIXMAPPING and ENDPREFIXMAPPING operations in
support
September 9, 2016 52
What's New in Uniface 9
JRE Uniface uses the Java Runtime Environment (JRE) for selected Java Runtime
functionality, including running Java servlets for Uniface web Environment
applications, parsing XML, and for Java call-in.
By default, Uniface has always installed its own JRE but it is now
possible to configure Uniface to use an existing Java installation.
New Tutorials New RIA Tutorials have been added and existing tutorials Uniface Tutorials
updated.
New Test with Debug In the Component Editor, you can click a button to test a Starting the Uniface
menu option and component in debug mode, instead of inserting a debug statement Debugger
toolbar button or starting the Debugger separately.
Uniface Query Tool The Uniface Query Tool is no longer delivered with Uniface.
Uniface documentation The Uniface Library now features the following enhancements:
enhancements • You can provide direct feedback about individual topics in
the Uniface Library—just click the link at the bottom of the
page. This launches your email client with the email address
and subject line already filled in, so it's easy to send a
suggestion or comment that can help us improve the
documentation.
• Calling online help now opens a single instance of the
Uniface Library, instead of a new instance each time you
press F1. This instance is automatically closed when Uniface
is closed.
TIP
To see the complete context of a topic returned by search,
double-click the topic, then click the Contents tab.
Support for client-side code Enabling code to be executed on the client makes it possible Executing Logic in the
execution to reduce the number of server-client communication rounds, Browser
especially when the browser already has required information.
Support for client-side processing includes new Proc
September 9, 2016 53
What's New in Uniface 9
JavaScript APIs for The JavaScript APIs are object-oriented programming APIs: JavaScript
client-side processing in interfaces that make it possible to execute triggers and
DSPs operations on the client of a RIA application, without
round-trip processing to the server.
Non-Protected DSP Widgets To make it possible to set the value of display-only fields Widgets for Dynamic
using the Uniface JavaScript API, the following DSP widgets Server Pages
are now available in a non-protected version:
• CommandButton
• FlatButton
• PictureButton
• Picture
• StaticText
• RawHTML
Support for incremental Modern Web applications often feature the ability to search OnEdit trigger
searching incrementally, meaning the returned list of items is refined
as you type in more characters. Uniface introduces a new
OnEdit trigger for the EditBox widget in DSPs, which can
be used to implement the client-side of the functionality. A
complete working sample, including both DSPs and a
database search service, is provided on uniface.info.
Improved session Uniface now provides a session management API for the State and Session
management and security Web Request Dispatcher (WRD). Management
The API enables you to invalidate the current session and APIs: Session
request a new session at critical points in the application, Management
such as after authentication or before committing data. You $webinfo:
can call the session API commands using the SESSIONCOMMANDS
$webinfo("SESSIONCOMMANDS") channel.
$webinfo:
You can also use the API to set session attributes which can REQUESTCONTEXT
be shared by several components that access the session (such
as an authentication service and DSP). You can specify
session attributes using $webinfo("REQUESTCONTEXT")
NOTE
The Session Management API is new in Uniface 9.5.01. It
was not available in the Uniface 9.5 Controlled Release
September 9, 2016 54
What's New in Uniface 9
Web security guidelines Web applications present developers with more security Web Security Guidelines
challenges than a desktop or client/server application.
Guidelines have been added to the documentation about the
threats that web applications need to defend against, and the
ways in which you can design and implement your Uniface
web application to do this.
New Tutorials New RIA Tutorials have been added and existing tutorials Tutorials
updated.
IMPORTANT
Issues may be fixed on both Uniface 9.5 and 9.6 codelines, but after E111, they are only listed
for Uniface 9.6 patches.For more information, see Uniface 9.6: Documentation Updates for
Patches [p. 26].
For more information about the new functionality, see the topics referred to in the More
Information column. If the listed topic is not in this document, it is in the Uniface Library.
29769 When retrieving the field syntax, only syntax attributes that are $fieldsyntax
dynamic and that have previously been set with $fieldsyntax $fieldinfo
are retrieved. If syntax attributes have been set declaratively (in
the model or component), an empty string is returned. You can
retrieve declaratively set field syntax with
$fieldinfo("SYNTAX").
29772 The DSP widget property Syntax Check on Browser Syntax Check on Browser
(ClientSyntaxCheck) does not disable the field syntax check;
it just makes it possible for the browser to submit a request,
even if a field holds syntactically incorrect data.
29801 By default, objects with Color= No (use system colors) are ColorNoTransparency
printed with a non-transparent white background. This is usually
undesirable when the underlying form has a color or image. To
ensure that the background of objects is transparent, set the
ColorNoTransparency initialization setting to On.
September 9, 2016 55
What's New in Uniface 9
29816 It is now possible to set the SOAP connector option wsdl for SOAP Connector Options
the SOP U1.0 connector. This specifies the location of the
WSDL file (as a URL or a local path and file name), and
overrides the location recorded in the SOAP signature that was
created by importing the WSDL.
29703 The default output format for /lse is XML, so the xml: prefix /lse
is optional.
29746 On Microsoft Windows, when the Uniface Router service is Installing the Uniface
being started, the registry key and the value name must exist Router as a Service
otherwise an error message will be written to the log file and
the start up will be aborted.
29761 Sybase connector versions SYB U5.0 and U5.1 have been added. Sybase Cursors and Hitlist
They support the same select mechanism for hitlist management, Management
which provides an alternative to the use of Sybase cursors.
29822 It is possible to specify font styles, such as bold and italic, in [screen] and [printer]
the logical font definitions in the usys.ini file.
29704 The Source string can be 2048 MB, but using very long Source $replace
strings (larger than 50,000 bytes) is not recommended because
this can degrade performance.
29716 When sorting data, the default sort order is determined by the Sorting Based on Locale
data type. For string data (including lists), the values of
$nlslocale and $nlssortorder can also affect the sort order.
September 9, 2016 56
What's New in Uniface 9
29738 When testing conditions, do not use strings as if they were Conditions
Booleans (relying on implicit type conversion). Instead, always
explicitly state what you are testing for.
29760 Sorting is only done on the first 8K of an item or field data, sort, sort/list,
and on a maximum of 32K of accumulated field data per $sortlist, $sortlistid
occurrence.
29143 Added documentation about handling complex web services Importing WSDL
parameters. Definitions for Web Services
Complex Nested Parameters
29544 If an entity is used as a parameter, only "In Database" fields are Characteristics
available for use in the entity parameter. entity
29583 Focus trigger should not be used to change focus. For example, Form Gets Focus
you should not use Proc instructions such as setformfocus or Form Loses Focus
$prompt, popup a dialog box, or activate another component
instance in this trigger.
29682 The Datepicker DSP widget is not suitable for some Uniface Datepicker
date and time formats.
29719 A new version of the MSS connector is available. MSS U5.0 Microsoft SQL Server Data
supports the MAX specifier for varchar, nvarchar and Packing
varbinary storage formats.
29721 Some code corrections and enhancements have been made in Struct Code Examples
Struct examples. Example: Struct
Conversions
Example: Structs as
Parameters
29726 Uniface now maps the central directory (table of contents) of $MEMORY
ZIP files (including DOL and URR files) into memory. This
improves the performance when applications access the contents
of these files.
You can use assignment setting $MEMORY ZIP=OFF to disable
this functionality, or $MEMORY ZIP=ALL to read the complete
file into memory.
Memory mapping has limitations on OpenVMS and iSeries.
September 9, 2016 57
What's New in Uniface 9
29583 Triggers that are executed when the focus changes should not Form Gets Focus
themselves change the focus, for example, by activating a Form Loses Focus
message dialog or other form.
29590 A new property is available that enables labels to inherit the InheritColors
background and foreground colors of their parent.
29692 The documentation on Unicode support for the MySQL Support for Unicode in the
connector has been expanded. MQL Connector
29712 The Sybase connector now supports Unicode. Support for Unicode in the
SYB Connector
29592 In dynamic server pages, it is now possible to create occurrences Read-Only Fields in
in the browser for entities that have Control or Boilerplate fields. Dynamic Server Pages
29625 The Force Fit property is dynamic and can be set in Proc. Force Fit
29664 The UPOPMAIL component API supports additional character GetMail and GetMailX
sets. If a mail is received that uses a non-supported character
set, the error code -17 is returned and the subject and the message
are returned without converting to UTF-8.
September 9, 2016 58
What's New in Uniface 9
29664 UPOPMAIL now supports additional Windows character sets GetMail and GetMailX
1250, 1251, 1252, and 1253. When an unsupported character
set is encountered, error -17 is returned in $status, but the
subject line and message body are no longer replaced with an
error message.
29520 Additional keywords are supported when defining the spacebar, [accelerators]
Insert, Delete, Page Up and Page Down keys as accelerators
29604 Field-level functions that navigate or insert data (such as macro Structure Editor
^NEXT_WORD, ^INS_CHAR, and so on) work only in Functions
Unifields, not in edit box widgets.
September 9, 2016 59
What's New in Uniface 9
29521 A new LDAP connector, LDP 2.0 OpenLDAP, is available for LDAP Connector
use on Linux. For both the LDP 1.0 and LDP 2.0, new connector nulldefault
options are provided.
identifier case
29548 New property for character mode Check Box widget. Alignment
29578 $encode and $decode now support algorithms for asymmetric $encode
key cryptography. $decode
Cryptography Support
29587 The WRD has been updated to improve web application Update Web Applications for
security. Web Security Enhancements
IMPORTANT
The changes made to the WRD can affect existing web
applications and may require you to make changes in existing
web applications.
The default behavior for cookies has changed. If the secure Cookies Containing
attribute of a cookie is not specified, it defaults to: Sensitive Data
• T if the request is sent via an HTTPS secured connection. $webinfo: Cookie Channels
By default, the httponly property for Uniface application $webinfo: Cookie Channels
cookies is set to true when the WRD runs in servlet engines
that support the Servlet API 3.0 (such as Tomcat 7.0).
As a result, it is no longer possible to share a cookie between
JavaScript on the browser and the Uniface web application.
You should modify your application to ensure that this does
not occur.
NOTE
This property is ignored on Tomcat versions prior to 7.0 (such
as those delivered with Uniface 9.3, 9.4, and 9.5).
The WRD now requires JRE 1.5 or higher. If your using JRE Web Request Dispatcher
1.4 or earlier, you need to upgrade to JRE 1.5 or higher (WRD)
(preferably 1.6).
The default value for the WRD setting TESTABLE has changed TESTABLE
to FALSE. Configuring a Web Server
for Uniface Applications
September 9, 2016 60
What's New in Uniface 9
In addition, the WRD_Version page, which is displayed when Configuring the Uniface
TESTABLE=TRUE, now displays only the version information Web Application Server
and not the full request information.
— In addition to zip files, flush and lflush can be used to flush and lflush
explicitly close XML files that are accessed using $ude $ude ("copy") and $ude
("copy") or $ude ("copy") with the keepopen option. ("copy")
29153 $datim returns an empty string ("") if the source cannot be $datim
converted to a Date value (for example, $datim("abc")) .
29492 A new assignment setting has been added, which determines $NO_BOM_UTF8
whether Uniface writes a Unicode Byte-Order-Mark (BOM)
when the UTF-8 format is specified in $SYS_CHARSET or with
filedump or lfiledump.
29496 A new connector option is available for the SOAP call-out SOAP Connector Options
connector. wsdl enables you to configure the location of the Configuring the SOAP
WSDL file in the assignment file instead of in the service Connector
signature.
September 9, 2016 61
What's New in Uniface 9
29193 Proc functions only set $procerror in case of failure; they do $procerror
not reset $procerror to 0 in case of success.
29254 Auto jump behavior is affected by the maximum field length, Auto Jump
which is counted in characters, not bytes.
29303 The Entity parameter is optional for the sort Proc statement sort
29380 Global Updates forms now list dynamic server pages. The online Define Component Field
help topics have been updated accordingly. Property Updates
Define Field Property
Updates
29416 The AutoMaximize initialization setting only works when the AutoMaximize
form runs in a startup shell and the LayoutStorage setting is
switched on. The default value is off.
29443 DBE does not support the hold statements connector option hold statements
29456 To use an operator in String substitution, enclose the whole Substitution in String
29479 expression in parentheses. For example: Values
putmess "The result of 1+2 is %%(1+2)" ; = 3
putmess "Struct member is %%(myStruct->member)"
29483 New Struct function $scalar, which returns (or sets) scalar $scalar
members of a Struct
— The Struct code examples have been updated Working With Structs: Code
Examples
Struct Code Examples
— Added instructions for creating and converting client-side Verification for Web
certificates for SOAP. Services over HTTPS
— In the Rich Edit Box, the Ctrl+F and Ctrl+H keys can be Rich Edit Box
mapped to native Windows functions Find and Replace, Native Key
repspectively.
September 9, 2016 62
What's New in Uniface 9
For more information, see Proc statement and function descriptions in the Uniface Reference
section of the Uniface Library.
Proc Description
for Defines a loop that repeatedly processes until a counter has reached
a specified value.
forlist Defines a loop that processes all the items in an indexed list.
forlist/id Defines a loop that processes all the items in an associative list.
structToComponent Load data from a Struct or Struct list into the entities and occurrences
on the component.
structToXml Load data from a Struct or Struct list into and XML stream.
Proc Description
$columnsyntax Set or retrieve field syntax attributes for all fields in a column of a
grid or multi-occurrence list.
$CurEntProperties Set or retrieve the entity widget properties for the current entity.
$equalStructRefs Check whether two struct variables refer to the same physical Struct
Uniface 9.5 introduces Struct functions, which enable you to get information about a Struct
(such as the number of members it has), get or set Struct annotations, or perform actions such
as inserting and moving Struct members. Struct function names always begin with a dollar sign
$. Syntactically, they are treated as Struct members and are accessed using the dereference
operator (->). They form an addition to the Proc language but are not Proc functions. For more
information, see Struct Functions in the Uniface Library 9.7.03.
September 9, 2016 63
What's New in Uniface 9
Proc Description
$dbgStringPlain Get a string that represents the Struct or Struct collection, but without
annotations (as of Uniface 9.5 E101).
$isleaf Check whether a Struct is a Struct leaf (the logical end point in a
Struct tree)
$isTags Check whether the Struct is a $tags Struct for another Struct
$scalar Get or set the scalar members of a Struct (as of Uniface 9.5 E101).
Proc Description
$procerrorcontext Now returns SOAP fault information when errors occur during web
services call-out. For more information, see Information Returned
for Web Services Call-Out Errors in the Uniface Library 9.7.03.
September 9, 2016 64
What's New in Uniface 9
Proc Description
IMPORTANT
The contents of $procreturncontext have changed for $ude and
entitycopy. $procreturncontext now includes a DETAILS section
containing messages, warnings, and errors that occur during
processing. This replaces the AdditionalInfo section, so the option
prcadditional=true no longer has any effect.
$webinfo New channels have been added to $webinfo to enable calls to the
$webinfo (SESSIONCOMMANDS) new session management API.
$webinfo (REQUESTCONTEXT) For more information, see APIs: Session Management in the Uniface
Library 9.7.03.
$JS_BASE_URL Specify the URL for JavaScript files that are used by DSP components.
$SOAP_CALLIN_CB Specifies as list of services that implement the callback operations for SOAP
call-in.
$SOAP_CALLIN_FAULT Determines how Uniface generates SOAP faults when an error occurs during
web services call-in. It does not affect SOAP faults generated by SOAP
callback operations.
callback Specifies a list of services that implement callback operations for web services
call-out.
Use as connector option ( USYS$SOP_PARAMS ) in [DRIVER_SETTINGS].
For more information, see SOAP Connector Options in the Uniface Library
9.7.03.
Use as parameter in [SERVICES_EXEC] to specify the callback services
that are specific to a web service. For more information, see
[SERVICES_EXEC] in the Uniface Library 9.7.03.
September 9, 2016 65
What's New in Uniface 9
$WEBKEY During Uniface installation, a unique string value for $WEBKEY is automatically
generated and set in the wasv.asn file. This string is used as a key in
calculating the hash-values used to protect non-editable fields from being
modified in a web browser.
Setting Description
tooltip Controls the size of all tool tips in the application, whether they display Tool
Tip Text or the contents of the field (Hover View). It also determines how long
the tool tip remains visible when the cursor remains in one place in within the
tool tip.
For more information about the new functionality, see the topics referred to in the More
Information column. If the listed topic is not in this document, it is in the Uniface Library.
Support for Rich Internet Uniface introduces a new component type, the Dynamic Server Uniface 9.4: Web
Application development Page (DSP), that enables you to develop rich internet applications Development
and deployment that are more interactive, faster, and flexible than the ones you Enhancements
can create with static server pages (USPs).
September 9, 2016 66
What's New in Uniface 9
USP enhancements As a result of the introduction of DSPs, the way that USPs are Uniface 9.4: Web
developed and stored has also been enhanced. Development
• Server page layouts can be stored externally as one or more Enhancements
files, making it possible to have separate layouts for headers,
footers, and bodies.
• A source-based layout editor is now available for
maintaining the server pages. This is in addition to the
graphical editor that is already available.
• Migration from Uniface 8.4 is easier
• The procedure for defining the layout has changed
• Remote debugging is preconfigured
NOTE
The traditional Uniface server page components (USPs) are now
known as static server pages.
NLS enhancements Uniface can now format numeric, floating point, and date and Uniface 9.4: NLS
time data to conform to the conventions of the language and Enhancements
country (that is, the locale). It can detect the client locale and
time zone, and handle differences between client and server time
zones.
Uniface now also supports sorting, normalization, and
case-bending of Unicode characters. As a result, the functionality
for sorting, case conversion, and searching using syntax strings
has been enhanced.
New assignment settings, Proc functions, and display formats
have been introduced to enable you to control the ways in which
Uniface formats, displays, sorts, and searches data. Some existing
Proc instructions have also been enhanced.
Sorting enhancements In addition to being able to take locale into account when sorting, Sorting Data
multi-level sorting is now supported for both entities and lists. Lists and Sublists
This enables you to specify a sort on several fields, each with
its own sort options.
New sort options have been added that enable you to perform
case-insensitive searching, eliminate duplicates, and sort string
data in numeric order or by hierarchical level.
September 9, 2016 67
What's New in Uniface 9
New Proc functions have been added for sorting lists with
sublists.
Proc-based encoding and The new Proc functions $encode and $decode support a variety $encode and $decodein
decoding for security and of encoding and encryption algorithms that enable you to:
encryption • Encrypt and decrypt data
• Encode confidential data using hash functions such as MD5
• Encode and decode data in other encoding schemes, such
as Base64, hexadecimal and URL-based encoding.
• Convert data between Uniface raw and string data types.
HTML email support The Uniface component API for email integration has been UPOPMAIL
enhanced to support sending HTML email, including attachments
and inline objects.
As of patch R102, the Assuming the size of the form is the same as or smaller than the Defining Non-Maximized
default behavior of forms screen, a form is no longer maximized if the Caption property Forms for Mobile
on mobile devices has is True or if the Window Type property is set to Secondary.
changed.
The ability to implement Uniface provides a generic mechanism that enables you to add Creating a Web Output
filter plugins was added your own JavaScript or HTML to web pages generated from Filter Plug-in
in R104. DSPs and USPs.
NOTE
Such a plug-in was originally delivered for the Gomez Actual
Experience XF, but this was removed from Uniface in 9.7.01.
New server page The dynamic server page (DSP) supports RIA Dynamic Server Pages
component type: functionality through JavaScript-based widgets, enhanced
Dynamic Server Page and specialized Proc, and ID-based binding to make the
(DSP) layout much more flexible.
September 9, 2016 68
What's New in Uniface 9
New user interface Web widgets offer a richer set of interface controls than Widgets for Dynamic
controls for traditional HTML controls. They include widgets such Server Pages
DSPs—web widgets as a date picker and drop-dwon list, and offer functionality
such as browser-side validation, and styling features that
makes it easy to give them a new look and feel.
DspContainer widget The DspContainer widget allows you to build RIA web DspContainer
pages using multiple DSP components.
AttributesOnly widget The AttributesOnly DSP widget enables you to manipulate AttributesOnly
the attributes of HTML elements in Proc.
Static Server Pages The traditional Uniface server page components (USPs) Static Server Pages
are now known as static server pages. They now feature
a split between the component structure and the
presentation and a more flexible approach to constructing
them.
USPs created with earlier versions of Uniface continue
to be supported in the runtime environment.
For development, if they were created with Uniface 8,
they are easily migrated to Uniface 9.4 using the
Migration Utility. If they were created with Uniface 9,
they only need to be recompiled.
USPs created with beta and controlled release versions
of Uniface 9.4 are fully supported and do not require
migration.
Component structure The component structure of a server page is separate from Presentation-Logic
and layout of USPs the layout, even if they are stored together in the Split for Server Pages
and DSPs are handled Repository. Insert Uniface Objects
separately. As a result, the procedure for defining the structure and in the Server Page
binding it to the layout has changed: Layout
• You explicitly maintain the component structure and
the layout separately.
• You can insert elements from the component
structure into the layout, rather than having Uniface
automatically synchronize the structure and layout.
This adds to the flexibility of the layout, which no
longer requires the same structure as the component
structure.
• If changes are made to the model while you are
editing the component, you need to refresh the
component structure to update the properties.
Previously, the automatic synchronization handled
this.
September 9, 2016 69
What's New in Uniface 9
Binding style of DSPs Fields are no longer constrained to being inside an entity, Binding Web Layout
based on IDs instead and the XHMTL is standards-compliant so it can be edited to Component
of proprietary tags by any XHTML editor. Structure
NOTE
This binding style is used only in DSPs. USPs continue
to use the proprietary tags.
Server page layouts To make Web layouts more flexible and easier to Presentation-Logic
can be stored maintain, Web layouts for both USPs and DSPs can now Split for Server Pages
externally as one or be stored as one or more external files (or they can
more files continue to be stored in the repository).
Layout can be stored either internally or as one or more
external .hts files
Uniface 8 Web applications can be easily migrated to
Uniface 9, since these already use external layouts.
HTML Source Editor In addition to the graphical Server Page Layout Editor, a HTML Source Editor
source-based layout editor is now available for
maintaining the layout of server pages.
Unlike the graphical editor, which regenerates the HTML
source each time you switch between edit modes, the
Source Editor enables you to maintain your own HTML
code and formatting.
You can choose whether to use the source editor or the
graphical editor on a component-by-component basis.
By default, server pages that are migrated from Uniface
8 are edited with the source editor. The default layout
editor for server pages developed in Uniface 9 is the
graphical editor.
Server Page Layout Use of an integrated layout editor is mandatory when Server Page Layout
Editor storing the component layout in the component definition. Editor
You can choose to use the GUI-based Server Page Layout HTML Source Editor
Editor, or the HTML Source Editor to maintain the HTML
code yourself.
If the layout is stored outside of the Repository, you can
use your editor of choice.
New Proc instructions New Proc instructions have been introduced to support Uniface 9.4: Changes
dynamic server pages in Proc [p. 76]
September 9, 2016 70
What's New in Uniface 9
NOTE
If you were a beta tester or used the controlled release, you need to be aware of the changes
between the GA, controlled release, and beta release. For more information, see Differences
Between Uniface 9.4 GA and Uniface 9.4 CR [p. 71] and Differences Between Uniface 9.4 CR
and Uniface 9.4 Beta [p. 71]..
New Proc functions New functions enable you to tailor the data sent to and $webrequesttype
from dynamic a server based on the type of request or $webresponsetype
response. These functions are used in the Get State and
Set State triggers.
Default Proc has changed The new Proc functions work on component level and Get State and Set State
not on request level. The default code for DSPs has
changed as a result.
NOTE
Applications that you build with Uniface 9.4 CR are forward-compatible, meaning that they
will run on future versions of Uniface. This is not true for applications built with the Beta release.
Table 65. What's New in Uniface 9.4 CR Since Uniface 9.4 Beta
New DspContainer widget The DspContainer widget allows you to build RIA DspContainer
web pages using multiple DSP components.
Support for duplicate entities in In Uniface 9.4 Beta, an entity had to be unique within
single web page a RIA web page, even if the page was constructed with
multiple DSP components. In Uniface 9.4 CR, you
can use the DspContainer widget to define the same
entity in multiple DSP components and use these
components to construct a single RIA web page.
For security reasons you must You must explicitly declare that a trigger or operation web
explicitly make a trigger public to the is accessible from the browser by putting a public
September 9, 2016 71
What's New in Uniface 9
Table 65. What's New in Uniface 9.4 CR Since Uniface 9.4 Beta (continued)
web using the Proc instruction web declaration in the trigger. If this declaration is
public web. omitted, the trigger is not executed.
As a result, the Triggers tab in the DSP widget
properties is no longer required and has been removed.
Scope declarations in triggers and You can define a scope block after a web declaration Execution of
operations to define the data to be included in a request-response Server-Side Triggers
exchange. This enables you to: and Operations
• Reduce the amount of data traffic between Input and Output
browser and server when a DSP trigger gets fired. Scope
In the 9.4 Beta, all data in the component data scope
was included in both the request and response. It
is now possible to make a distinction between
request (input scope) and response (output scope).
• Include data from multiple components in the
request-response exchange. In Uniface 9.4 Beta,
it was only possible to send the data of one
component to the server—the component
containing the trigger that was fired. In Uniface
9.4 CR, you can specify data from the current
component, as well as data from other
components available in the web page, in the
request and/or the response.
Deleted widget properties The following widget properties are no longer available
in Uniface 9.4 CR:
• trigger:onchange and
trigger:detail—specify whether a widget
fires the trigger. This property was required to
avoid unnecessary request-response exchanges
if the trigger contained no Proc. In Uniface 9.4
CR, this is automatically determined by the
existence of the trigger specification. If a trigger
is not defined, it is never fired. The tab that
contained these properties has been removed.
• onerror—specify whether a trigger is fired if a
validation error occurs on the browser. This
property was required to fire a trigger even if an
error occurred. It is no longer required because
you can use the scope declaration prevent data
September 9, 2016 72
What's New in Uniface 9
Table 65. What's New in Uniface 9.4 CR Since Uniface 9.4 Beta (continued)
Full page update not supported It is not possible to specify that a RIA response
includes the whole web page.
Changed Proc behavior A new channel, LAYOUT, has been added to $webinfo. $webinfo
The weblayout statement now copies the layout into weblayout
the $webinfo("LAYOUT") channel instead of
$webinfo("OUTPUT"). It also does not support the
/append switch.
Operation calltrigger no longer In Uniface 9.4 Beta, the calltrigger operation was callfieldtrigger
fired fired for every event initiated on the browser. It acted
as a trigger dispatcher. In 9.4 CR, triggers are directly
bound to the widget, so this intermediate operation is
no longer required and is no longer fired. It is removed
from the Uniface defaults.
New default code in triggers for DSP The Execute trigger contains a default web web
component accessibility declaration making it, by default, public
to the web.
The Get State and Set State triggers are changed to Get State
enable a default mechanism to manage the Set State
request-response cycle.
For more information, see Proc statement and function descriptions in the Uniface Reference
section of the Uniface Library.
Enhanced installation from The installation program has been enhanced. You can Uniface Installer for
single media now specify the service names and port numbers of the Windows
Uniface Router and Tomcat Web Server. This enables Installing Uniface on
you to avoid conflicts with existing services and servers Windows
in your environment.
September 9, 2016 73
What's New in Uniface 9
Changes in installation The directory structure for the Uniface installation has Uniface Directory Structure
directory structure and been changed. /adm
configuration Common resources are located in the common
subdirectory. Uniface development and testing resources
are located in the uniface subdirectory.
On Windows, the default location for user data was
changed. It is now
C:\Users\UserAccount\Documents\Uniface
Version.
Both the common and uniface directories have an \adm
subdirectory containing configuration files. A new
command line switch is used in the startup command to
specify the \adm directory to use
New USYS path logicals for New USYS logicals can be used as a prefix in a path USYS Path Logicals
use in file redirections specification in Proc or in an assignment file:
In addition, you can define your own USYS path logicals.
Any setting beginning with USYS can be used as a prefix
in a path specification in Proc or in an assignment file.
Multiple \webapps The installation features a single Tomcat web server that Apache Tomcat
directories containing Web can be used for testing purposes for all Uniface products.
applications for the Uniface It is located in \common\Tomcat, and has a \webapps
applications. subdirectory that contains some standard web
applications.
The uniface\webapps directory contains the web
application files required for the pre-configured web
application server used for testing Uniface web
applications.
If you need to create or edit files to be served by Tomcat,
they must be added to the correct directory, and the
Uniface Router must to be configured to find them. You
can use the new USYS path logicals to direct files to the
correct location in assignment files.
For example, if you are importing or exporting WSDL
files for Web services, you can direct the files to the
\uniface\webapps directory:
;assignment file
[FILES]
*.wsdl
usysuniface:webapps\uniface\WEB-INF\wsdl\*.wsdl
September 9, 2016 74
What's New in Uniface 9
A language such as English, French, or Arabic can be spoken in many countries, but each country
will have its own conventions for expressing numbers, currency, date and time. For example:
The characters used also affect the sort order and the way they are converted between upper
and lower case. For example, diacritical symbols may be ignored or applied when sorting,
depending on the language and region.
Prior to Uniface 9.4.01, Uniface used the language, date and time as set by the operating system
when displaying, interpreting, storing, and retrieving data. With Uniface 9.4, you can explicitly
set the locale and time zone to use. Uniface can then use this information to apply locale-based
processing rules, or not (keeping the pre-9.4 behavior).
NOTE
Setting the locale has no effect when retrieving using order by. This is done by the database.
On Windows, setting the TZ environment variable now affects the date returned by $date and
$datetime. To ensure that the date and time data used by Uniface is in sync with Windows,
set $NLS_TIME_ZONE to System.
September 9, 2016 75
What's New in Uniface 9
Locale-based processing You can set a specific locale in the assignment file or in Language and Locale
Proc, or enforce pre-9.4 behavior.
External and internal time You can set the current external and internal time zone, Time Zones
zones or enforce pre-9.4 behavior. Uniface can automatically
convert between the local client time and the time on the
server.
Locale-based sorting You can determine whether to take locale into account Sorting Based on Locale
when sorting data. This can affect the sort order of
characters amd diacriticals.
Enhanced pattern matching in Syntax strings have been enhanced to support modes, Syntax Strings for Pattern
syntax strings which enable improved case-sensitive and Matching
case-insensitive pattern matching $syntax
Enhanced display formats New NLS display formats have been added to support Display Formats
locale-based display of data with data types Numeric,
Floating decimal, Date, Time, and Datetime.
Locale-based case conversion When converting strings between uppercase and Case Conversion
lowercase, Uniface can support case conversion rules
based on locale, such as converting a Turkish dotted I to
a dotted uppercase I, or converting a single character to
multiple characters, for example, converting the German
lowercase ß to uppercase SS.
callfieldtrigger Explicitly call the named trigger (Detail, Help, Menu, or extended
trigger) for the specified field.
reconnect Reconnect data loaded from an XML or JSON stream with the
occurrences in a database or component.
scope/endscope Define a scope block that specifies the data to be included in a DSP
request-response exchange
September 9, 2016 76
What's New in Uniface 9
websave Create a JSON stream from the data in a component and put it into
the $webinfo("data") channel.
weblayout Retrieve the layout of the server page component and make it available
in the $webinfo("layout") channel.
#entry Insert global Proc entry. At runtime it is compiled into local Proc.
$cellinfo Get an associative list with the dimensions of a character cell in pixels.
The dimensions are determined by the font0 setting in the [SCREEN]
section of usys.ini.
$dberrortext Return the message string associated with the DBMS or network error
returned by $dberror
$nlscase Set or get the setting that controls the default case switching rules of
$uppercase and $lowercase
$nlsformat Set or get the setting that controls the default formatting of numeric,
floating point, date, time, and datetime data
$nlsinternaltime Set or get the setting that controls the default internal time and display
behavior.
$nlslocale Set or get the setting that determines the default locale (country and
region) and controls whether locale-related rules are applied when
displaying, sorting, and parsing numeric, floating point, date, time,
and datetime data
$nlssortorder Set or get the setting that determines Uniface's default sort behavior
$nlstimezone Sets or gets the setting that defines the default time zone and controls
the data returned by $clock, $date, and $datim
September 9, 2016 77
What's New in Uniface 9
$rscan Scans for a string or a pattern in a string starting from the end of the
string.
$sortlistid Sort an associative list in which the value part of each list item is an
indexed list.
$webrequesttype Returns a value indicating the type of request from the browser.
$webresponsetype Returns a value indicating the response expected by the browser for
the current DSP component instance.
sort/list
$componentinfo A new topic parameter has been added, making it possible to retrieve
a list of outer entities of the specified component instance.
$webinfo New channels have been added and the function can be set by more
Proc instructions.
$clock Additional option for overriding the default behavior if the time zone
has been defined (using $nlstimezone or $NLS_TIME_ZONE)
$date
$datim
$lowercase Additional options for overriding the default behavior if the locale is
defined ($nlslocale or $NLS_LOCALE is set)
$uppercase
September 9, 2016 78
What's New in Uniface 9
$JSON_SHOW_NAMES Shows the fully-qualified name of each entity and field in a JSON
stream, instead of just the ID.
$NLS_CASE Specifies the default behavior when switching case using $uppercase
and $lowercase; overrides the behavior specified by $NLS_LOCALE
$NLS_LOCALE Specifies the default locale (country and region) and controls whether
locale-related rules are applied when displaying, sorting, and parsing
numeric, floating point, date, time, and datetime data
$NLS_TIME_ZONE Specifies the default time zone and controls the data returned by
$clock, $date, and $datim
$USP_NED_TEXTAREA Specifies how to render the TextArea control for a non-editable field
(NED) in static server pages.
Since Uniface 9, it is rendered as a TextArea HTML control with the
readonly attribute. Prior to Uniface 9, it was rendered as plain text
in the HTML layout.
September 9, 2016 79
What's New in Uniface 9
Compilation It is now possible to compile all objects as files in a Resources Output Path
fixed directory structure on the file system, instead of ($RSO)
components as files, and global objects and descriptors
in the Repository.
This makes it easier to use the new standardized
approach to deploying applications.
Cross-reference facilities Cross-reference data identifies where objects are used Uniface 9.3: Changes in
or referenced in application sources. Uniface 9 Cross-Reference
introduces new facilities for generating, maintaining, Functionality [p. 83]
reporting, and using this cross-reference information. Cross-Reference Data and
Facilities
NOTE
The Uniface 9 cross-reference functionality is a
completely new implementation, which provides
extended coverage and more flexibility than the Uniface
8.4 cross-reference implementation.
Proc listing enhancements It is now possible to generate Proc listings for menus Proc Listings
and global Proc, as well as for components. The naming
convention for Proc listing files has changed and Proc
listings themselves provide better source and line
numbering.
Level 2 listings can report all the information about the
compiled object, including compile phase information,
errors, warnings and info messages.
The $ude exist, delete, and load operations can be
used with listing files.
Mobile application A Uniface Setup utility now enables the user to Assigning Actions to Hot
enhancements configure hot keys on the mobile device. Keys on Mobile Devices
September 9, 2016 80
What's New in Uniface 9
The new widget properties Bottom Line and Show Bottom Line
ellipsis have been introduced to enhance the mobile Show Ellipsis
user interface.
Email enhancements Unicode is now supported in the message text and UPOPMAIL
subject of sent and received messages. SetSecurity GetSecurity
The UPOPMAIL component API now supports SMTP
authentication via security drivers. To handle this, the
SetSecurity and GetSecurity operations have been
added, and the LogonSMTP and send operations have
been updated.
The Uniface Security Driver API has been extended to Security Drivers
handle the SMTP security
Widget enhancements for The associated labels of grid widget columns can now $labelproperties
grid widget and mobile be changed dynamically using the new
applications $labelproperties Proc function
The Show Ellipsis property adds an ellipsis to data when Show Ellipsis
there is more data in the field than can be displayed.
Clicking the ellipsis positions the cursor at the end of
the data.
September 9, 2016 81
What's New in Uniface 9
Uniface applications can be deployed To deploy, you only need to copy the UAR Standardized Deployment
directly as Uniface deployment archive files file to the required location and ensure that
(UAR), without extracting and distributing the assignment file specifies the location of
the contents to different locations. the archive.
It is no longer necessary to use the Uniface
Deployment Utility to unpack files to the
required locations.
All runtime resources, including It is no longer necessary to put all global Standardized Directory
components, global objects, Proc, entity objects in a DOL file and all descriptors in Structure
descriptors, and descriptors, can be stored a URR file. Instead you can create UAR Resources Output Path
as files in a fixed directory structure for easy files that contain a mixture of the resources ($RSO)
retrieval, either on the file system during needed at a specific location.
development, or in a UAR for deployment. The size of files required for mobile
applications is easily controlled.
NOTE
DOL and URR files, and the repository
tables UOBJ, ULANA, USYSANA are no
longer required, although they continue to
be supported for users who wish to use the
classic deployment approach.
UAR, DOL, URR, and DIS files all use the To create and manipulate these files, you UAR Files
standard zip compression format instead of can use: DOL Files
a proprietary format. • Uniface Resource Manager URR Files
• Third-party tools such as WinZip
• Proc file and directory functions (such
as dircreate, fileload, filecopy)
New configuration settings and logical paths These settings make it easier to deploy and [RESOURCES]snf
for storing and locating application manage application resource files. They are $SEARCH_RESOURCES in
resources, during both development and required to take advantage of some new the Uniface Library
deployment. deployment functionality. Resources Output Path
($RSO)
Resources Deployment
Path ($RES)
Running applications can be updated without To take advantage of this feature, the Update a Deployed
stopping and restarting Uniface Routers and application must deployed directly from Application
Uniface Servers. (Restrictions apply.) UAR files that are identified in the
[RESOURCES] assignment file section.
September 9, 2016 82
What's New in Uniface 9
New command line utility, the Uniface The utility provides facilities for copying Resource Manager
Resource Manager (urm), has been provided and moving resources and splitting UAR urm
for managing UAR files and their contents. files into multiple files. It is also possible
to use other tools for these tasks, such as
WinZip.
It is no longer necessary to merge URR and
DOL files, or UOBJ, USYSANA, ULANA
repository tables. The objects in these
locations are now simple files (inside a
.uar or not).
The Deployment Utility continues to be The Deployment Utility handles the new Deployment Utility
supported. archive file format. udeploy
Data coverage No references for many objects and All objects and instructions are Objects Included
instructions included in Symbol Tables
Data granularity Each object reference was only to the Object references include more Object References
trigger level detailed information about the type in Symbol Tables
objects and the reference goes to the
line number in the source
September 9, 2016 83
What's New in Uniface 9
Table 76. Differences Between Uniface 8 and Uniface 9 Cross-Reference Functionality (continued)
Data maintenance /cro New utility that enables you to add or Generate and
delete records in the UXCROSS table Maintain
as required, based on object profiles Cross-Reference
Data
Performance Noticeably slower performance during Better performance and more flexible
compilation control for generating and maintaining
cross-reference data
Uniface 8 cross-reference data is not migrated to the new table. It is a compilation product of
the sources rather than a source itself. It needs to be recreated in the new UXCROSS table.
Existing data is not deleted, but it is considered to be outdated and is no longer maintained by
Uniface.
$labelproperties Sets the value of associated labels that are used as column headings
in a grid widget.
$ude exist Checks whether a runtime object, symbol table, or Proc listing exists.
$ude load Loads a symbol table or Proc listing from a file into a field or variable.
September 9, 2016 84
What's New in Uniface 9
$ude import symboltable Imports symbol table files into the UXCROSS repository table
$RESOURCE_OUTPUT Identifies the location where the compilation process stores compiled
objects. This location can also be used for other resouces that may
be needed for testing and debugging.
$PROMPT_SCROLL Specifies whether Uniface automatically scrolls to the field that has
focus when the $prompt function is executed.
September 9, 2016 85
What's New in Uniface 9
$SEARCH_OBJECT Compiled global objects, such as menus, messages, and glyphs, can
now be stored in .uar files rather than in UOBJ.TEXT and uobj.dol.
This setting is useful only if there is no [RESOURCES] section in
the application assignment file, or if $SEARCH_RESOURCES is set to
resource_excluded.
Switch Description
/plg Puts messages in the specified log file. This switch takes precedence over
any log file specified with the $PUTMESS_LOG_FILE assignment setting.
/sym Specify whether to generate symbol tables, and where they should be located.
Switch Description
/dis The files that are produced by these switches are now in zip format, although
/ins their names are unchanged.
/dol
/urr
/who The default output has been changed to provide more information, including
the release update, directory paths, and $RES and $RSO logical paths. The
installed drivers and logical paths are no longer listed by default, but can be
shown by setting /who=2. The C runtime library, byte sequence, and default
video attributes are no longer shown.
September 9, 2016 86
What's New in Uniface 9
Uniface Mobile Uniface now supports applications on mobile devices that Theme: Mobile
Applications support Windows CE 5. Supported databases include DB Applications
Anywhere, Oracle Lite, and EDB.
Enhanced Web Services Uniface now supports Web services call-in and call-out for Web Services
both Windows and Unix. Web services support has been
enhanced to handle the more commonly used document
format rather than the RPC format.
Installation The default database for Uniface is automatically started as Start the Uniface
a service. Development Environment
Enhanced Diagram Editor The Diagram Editor can now show fields and keys for Diagram Editor
each entity. You can also select the entities to include in the
diagram, so each diagram for a model can show a subset of
entities.
Unicode improvements On Oracle and Solid, the full Unicode character set is now Restrictions on Use of
supported in the sql Proc statement, SQL Workbench, and Unicode and Installable
error messages. Character Sets
Widget enhancements Uniface widgets can now use any system mouse cursor. In Mouse Pointer
addition, all widgets (except the tree widget) can now have Tool Tip Text
tool tips, which can be set dynamically in Proc.
The properties that define the cursor and tool tip can be set
in the widget properties dialog and in Proc.
The Tab widget has additional properties, Tab Position and Tab
Style that can set the position of the tabs and Windows
mobile display style.
The History window property has been replaced by Keep Keep Layout State
Layout State and Layout State Storage property. Layout State Storage
Components that have the History property set are
Migrate Component
automatically migrated to the new properties.
Window Properties
TCP Connector The TCP connector has been enhanced to support wireless TCP/IP and IPv6
connectivity. Connector
SOAP Call-out Connector A new U2.0 connector is delivered to support WS-I Basic WSDL
Profile 1.0 Compliant binding styles. The older U1.0 Call-Out From Uniface to
connector, that supports only the RPC/Encoded binding a Web Service
style, is still available.
September 9, 2016 87
What's New in Uniface 9
New DBMS Connectors Uniface now supports DB2 Everyplace, Oracle Lite, and DB2 Everyplace
EDB databases for use in mobile applications. EDB
Oracle Lite
Memory Management The way in which Uniface handles USM memory has been $MEMORY
changed. Formerly, Uniface never freed up USM memory.
Now it does so when there is more than the minimum unused
memory available. This amount is configurable using the
$MEMORY setting.
Automatic Field Lists Segmented string fields (packing codes SC and SU) that are Field Lists
not needed for a component to function properly, are now Segmented Fields: String
excluded from automatic field lists. This can result in a Packing Codes (SC and
significant performance improvement. SU)
Proc Description
$clock and $datim When used without Source, these Proc functions are accurate to one
hundredth of a second (1 tick). In Uniface 8 they were accurate to the
second.
Switch Description
September 9, 2016 88
What's New in Uniface 9
Switch Description
Unicode support Uniface is now Unicode-enabled, so you can create fully Theme: International
international applications. Applications
Enhanced Web Uniface applications for the Web are now based on XHTML rather Uniface 9.1: Changes
development than HTML, making them more extensible and portable. The in Web Development
functionality of the UComposer is now integrated into the Server [p. 92]
Page Editor, making it possible to edit and save the data structure
and layout of server pages in the Uniface Development
Environment, instead of generating and maintaining external
HTML skeleton files.
Diagram Editor It is now possible to create and edit multiple diagrams for each Diagram Editor
application model, which can display supertype and subtype entities,
one-to-many relationships, and inheritance relationships.
Dynamic form layout It is now possible to determine the layout of fields on forms in Proc Changing Form Layout
using $paintedfieldproperties. Although you define the data Dynamically
structure and initial form layout in the Form Editor, you can
modify form layout by changing the new position and size
September 9, 2016 89
What's New in Uniface 9
Dynamic menus Menus can be dynamically built using Proc code. A new type of Dynamic Menus
menu item serves as a placeholder for dynamic content added by
the new $inlinemenu Proc function.
Enhanced color Color handling has been extended with your choice of RGB colors, Color Handling
handling MS Windows colors, or Web colors (conforming to the W3C
standard), enabling visual integration into the Windows desktop
appearance and improved customization for end users, if required.
You can add color customization functionality for application end
users using the new Color List and Color Box widgets, or use the
colorbox Proc statement to launch the Microsoft Windows Color
dialog box from within the application.
New widgets and In addition to the Color List and Color Box widgets, the following Widget descriptions in
enhancements widgets have been added: Rich Edit Box, Month the Uniface Library.
Calendar,Output Box , and Progress Bar.
The Grid widget has been enhanced to allow dynamic changes to
the cell widget types, field-based color, spin button and drop-down
widgets. In addition, many existing Uniface widgets have additional
properties.
Extended support for It is now possible to set default background colors and images for Controlling the
background colors and startup shells, form component windows, and entities, and to set Appearance of an
background images these properties in Proc. A new Background Image (backimage) Application
property is available for form windows, startup shell windows, and
entities. It is a dynamic property that replaces the static image
property.
Import and export In Uniface 9, data is exported only as XML 1.0 compliant data, $ude
enhancements and optionally compressed into .zip files. The TRX format is entitycopy
supported only for import.
New Proc instructions have been added to enable import, export,
and data conversion from Proc, and local file management Proc
instructions have been enhanced to support zipped files.
Zip support Uniface now supports zip archives in all file system I/O, including Zip Files
import and export, and file management Proc. This allows you to Proc for File System
access files in zip archives using regular file I/O instructions, Management
including file redirections in your assignment file.
Enhanced file New Proc statements and function have been added that support Proc for File System
management creating, moving, renaming and deleting files, taking redirections Management
in the assignment file into account.
September 9, 2016 90
What's New in Uniface 9
XML Component APIs Uniface now provides internal components that can be used to read Procedural XML
and write XML in Proc. Use UXMLWRITER to generate a XML file Handling
or data stream. Use UXMLREADER to parse an existing XML file or
data stream.
Typed component Component templates are typed in Uniface 9, so each component Component Templates
templates type (form, report, and so on) has a corresponding component
template. In Uniface 8, component templates are not typed, meaning
that a specific template can be used potentially by several
component types. Component templates are automatically migrated
to typed component templates based on the components that use
it.
Enriched String data The String data type has been enriched to support the same syntax Uniface 9.1: Changes
type definition as Special String. The Special String data type is no in Default Behavior of
longer available and there are new field syntax properties and String Data Type
shorthand codes. [p. 94]
Meta Dictionary The Uniface Meta Dictionary has been changed to add a new
UDIAGRAM for the model diagrams, enable Unicode on
Repository fields used for filenames, and change Special String
fields have been changed to String.
For those String fields used for Unicode, the packing code has been
changed from C to W, and they are located in the variable-length
part of the entity definition.
Registry entry For Uniface 9, the location in the Microsoft Windows registry of
the history settings for layout management has changed.
Since 9.7.01, it is
HKEY_CURRENT_USER\Software\Uniface\Uniface 9\. If you
do not want to lose your Uniface 8 layout settings, copy the USYS8
registry settings to this location.
Widget size The size of the widgets in Uniface 9 may vary slightly from their
size in Uniface 8. For example, the list box is slightly larger. This
is because the Unicode-enabled Windows control used to represent
the widget is accurately calculated. The non-Unicode control used
in Uniface 8 was not.
September 9, 2016 91
What's New in Uniface 9
NOTE
Uniface 9.3 introduces a new implementation of this functionality.
Complete documentation about Web development and deployment using Uniface is available
in Theme: Web Application in the Uniface Library. The tutorial Developing Your First Static
Web Application can help you get started.
Skeleton Files
Uniface 9 integrates Web page layout information into the structure of server pages and stores
this layout information in the Repository, whereas Uniface 8 used HTML skeleton files (.hts).
Uniface 9 server page layouts are available at compile time and can be edited using the integrated
HTML editor, which appears when you open a server page component.
In Uniface 8, HTML skeletons are explicit and separate from their corresponding Uniface 8
server pages. A Uniface 8 HTML skeleton is combined with its server page only at run time,
so you cannot see what your server page will look like until you have built and modified the
skeleton file and tested the server page.
September 9, 2016 92
What's New in Uniface 9
The Migrate Repository Utility offers several options for migrating Uniface 8 server pages,
with or without corresponding skeleton files. For more information, see Migrate Repository
Utility in the Uniface Library 9.7.03..
A server page can contain only one HTML structure. If multiple HTML structures are required
to generate the HTML output for one server page, you need to use external .hts files. However,
Uniface 9 does not automatically synchronize external skeleton files (.hts) with a server page.
For more information, see Uniface XHTML Elements for Static Server Pages in the Uniface
Library 9.7.03 and Layout of Static Server Pages in the Uniface Library 9.7.03..
NOTE
Uniface 9.4 introduced a different mechanism for synchronizing the component data structure
and layout. Synchronization is no longer automatic.
The entity and field elements in the HTML structure control the component’s data structure.
The component's data structure determines the entity relationships and order of field processing.
It can be viewed in the Component Editor and is automatically regenerated at any significant
Component Editor action, such as store, compile, exit, and so on. The data structure can also
be manually regenerated using the Refresh Structure option in the toolbar or View menu.
Objects in the data and HTML structure are synchronized based on the object name. Any
duplicates can result in unpredictable behavior.
September 9, 2016 93
What's New in Uniface 9
It is possible to define the data structure only in the Server Page Layout Editor, not in the
Component Editor. In Uniface 8, because you could modify the .hts file, it was possible that
the component's data structure could differ from the HTML structure, which can cause undesirable
behavior in Uniface 9. For more information, see Migrating to Uniface 9 in the Uniface Library
9.7.03..
Characters Allowed (field MUL (font 0 and 1) FUL (All fonts) FUL (as defined with the
syntax) $FULL_SYNTAX
assignment setting). For
more information, see
$FULL_SYNTAX in the
Uniface Library 9.7.03.
The input mode when Direct input mode Language-specific input Language-specific input
AUTOIMEOPEN=On in the mode mode, unless NIME is
INI file. specified in the field
syntax property
NOTE
This section is relevant only if IME is available on your system.
September 9, 2016 94
What's New in Uniface 9
In Uniface 8, when AUTOIMEOPEN is On, the language-specific input mode (such as Hiragana)
in the IME is automatically started for Special Strings but not for Strings. In Uniface 9 it is
started for Strings.
The AUTOIMEOPEN initialization setting affects all string fields in a Uniface application. You
can use the new YIME or NIME field syntax properties to set the input mode for specific string
fields. If present, the YIME and NIME properties override the AUTOIMEOPEN setting.
NOTE
The Uniface 8 setting AUTOIMECLOSE is obsolete in Uniface 9.
Unchanged Behavior
After migration of a Uniface 8 application to Uniface 9, the following related functionality is
unchanged:
• The default syntax definition of originally String fields painted with a height of 1 cell—where
carriage returns were not allowed in Uniface 8, they are still not allowed in Uniface 9
(single-line)
September 9, 2016 95
What's New in Uniface 9
• The default syntax definition of originally Special String fields (String in Uniface 9) painted
with a height of 2 cell or more—where carriage returns were allowed in Uniface 8, they
are still allowed in Uniface 9 (multi-line)
lflush Flushes and closes the specified ZIP archive, ignoring any assignment file
redirections
$curoccvideo Returns or sets the video properties for fields of the current occurrence
$paintedfieldproperties Returns or sets the position and size for a specific instance of a field widget
drawn on a form
$procreturncontext Returns context information about the return value of the previous Proc
instruction
$inlinemenu Inserts or retrieves one or more menu items at the location of an inline menu
placeholder
September 9, 2016 96
What's New in Uniface 9
$string Returns a string that replaces each XML entity in the parameter string with the
character represented by the entity
$ude Exports, imports or converts data within the context of the development
environment, depending on the arguments
$fieldproperties Dynamic form layout support. Can set and get the position and size of a specific
field in the hitlist.
$properties Sets and gets the default position and size of fields in the hitlist.
$stripattributes Uniface 9 does not strip unknown characters from the string, unlike Uniface 8.
and stripattributes
File I/O: Zip support. These instructions can now create, read, and write zip files and
• filedump
directories. For more information, see Syntax of File and Directory Names in
the Uniface Library 9.7.03..
• fileload
Unicode encoding for fileload, filedump, lfileload, and lfiledump. These
Local directory instructions have a parameter specifying the type of Unicode encoding.
management:
• ldircreate
• ldirdelete
• ldirrename
• $ldir
• $ldirlist
Local file
management:
• lfilecopy
• lfiledelete
• lfiledump
• lfileload
• lfilemove
• lfilerename
• $lfileexists
• $lfileproperties
September 9, 2016 97
What's New in Uniface 9
e $e Old syntax
September 9, 2016 98
What's New in Uniface 9
September 9, 2016 99
What's New in Uniface 9
[META_LANGUAGE] New file section containing character mappings between Unicode and the character
set specified in LANGUAGE.
$EXTENDED_SYNTAX Specify which characters are allowed as extended characters (~& or ~@) in the field
syntax definition.
$FILELOAD_SINGLE_LINE Strip end-of-line character from empty input file when using fileload and
lfileload.
$FULL_SYNTAX Specify the allowed character set for the FUL shorthand code for field syntax.
$META_IN_TRX Sets the data storage format of String fields with the U* packing code to XML or
TRX.
$SEARCH_SKELETON Specify the order of searching for layout definitions of server pages.
$WIDE_CHAR_BEHAVIOR Specifies the character set used for String fields with the W packing code.
$ZIP_CHARSET Sets the character set used for reading and writing to zip archives. If not specified,
$SYS_CHARSET is used
$ZIP_LINECRLF Specify the end-of-line charater to use when reading and writing to zip files. If not
specified, $NEWLINE is used.
$DOUBLE_WIDTH=8 $GAIJI=true
$DOUBLE_WIDTH=33 $GAIJI=false
$ONE_BYTE_STORAGE None
$TESTMODE_DESCRIPTORS $CHECK_SIGNATURE_ID.
umeta.xml = usys:..\sources\sources.zip:umeta.xml
usource.xml = usys:..\sources\sources.zip:usource.xml
udefault.xml = usys:..\sources\sources.zip:udefault.xml
Setting Description
htmlhelp The native online help for a Uniface application that is deployed on Microsoft
Windows can be HTML-based help or WinHelp. If the setting is not present,
the default value is TRUE.
Widgets
To make Uniface behavior more standards compliant, the default widget definitions for the
following widgets now include the setting dimmedBackColor = 0ff. This results in the text
of inactive fields being set to gray by Microsoft Windows, but Uniface does not change the
background color, as was the case in Uniface 8.
• ColorBox
• ColorList
• Combobox
• DropDownList
• EditBox
• ListBox
• NoEditBox
• SpinButton
• RichEditBox
If you prefer the background color to be changed as well, change the value of these properties
in usys.ini.
Switch Description
Switch Change
For comments or questions about this document, you can email doc.feedback@uniface.com.
U.S. GOVERNMENT RIGHTS-Use, duplication, or disclosure by the U.S. Government is subject to restrictions as set forth in
applicable license agreement with Uniface B.V. and/or its predecessor in interest and as provided in DFARS 227.7202-1(a) and
227.7202-3(a) (1995), DFARS 252.227-7013(c)(1)(ii)(OCT 1988), FAR 12.212(a)(1995), FAR 52.227-19, or FAR 52.227-14(ALT
III), as applicable. Uniface B.V.
This product contains confidential information and trade secrets of Uniface B.V. Use, disclosure, or reproduction is prohibited
without the prior express written permission of Uniface B.V.
Adobe® Reader® is a registered trademark of Adobe Systems Incorporated in the United States and/or other countries.
All other company and product names are trademarks or registered trademarks of their respective owners.