This article lists some of the limitation of the UD5/MW1 Driver. If your requirements exceed these limitations, please contact March Hare Support, to recommend changes (support@march-hare.com)
General Driver Limitations:
All parameters must be of the same type when called from SQL workbench
All parameters and results are passed by value, not by reference. This means that all parameters passed to a java class are OUT direction only, and results come from the return value. Complex return values (i.e.: strings) can be returned to Uniface using the 'result returned in first parameter' option in the signature definition within Uniface.
Only 1 Java method may be called 'at a time'.
The SQL workbench string to activate a Java method, may not be terminated by a semi-colon.
The combined class and method name, and the parameters cannot exceed 7999 bytes.
Combined length of all signatures may not exceed 1999 bytes.
Length of "Include File Name" (which lists the names of methods which should have Array of String parameters) is limited to 1999 bytes.
The combined class and method name, cannot exceed 999 bytes.
The class and method names must be delimited by a period (.).
Parameters may be delimited by spaces or tabs only.
Parameters enclosed by either single (') or double quotes (") will be passed as a single parameter without the quotes. (i.e.: sql "NAMES.ADD 'fred and joe' mary',"UD5" will be passed as param1: fred and joe param2: mary).
Array parameters for MW1 are supported for methods named "main", "maintst", and as listed in the "Include File Name" field of the "Define C Properties" screen in the signature definition. Array parameters may be input only
Array parameters are defined as a string parameters in Uniface
Each element in an array parameters (string) are separated with <gold> ;.
Maximum size of an element in an array parameters (string) is 1999 bytes.
An arrays of Strings is supported as a return parameter from sql/print only.
A single signature may not exceed 99 bytes.
Classpath may not exceed 999 bytes.
UD5 creates only 1 virtual machine. Adding additional Uniface 'paths' or specifying a signature as being 'transactional' will not create additional virtual machines.
Closing either the "MW1" or "UD5" path will close the virtual machine for both
Executing the method System.exit(0) will exit both the Java Virtual Machine and the calling process (uniface).
Specifying either synchronous or asynchronous execution on the signature or the instance from Uniface, will not effect the behaviour of the Java method called.
Regardless of whether a Uniface application is Modal or Non-Modal, a Java class which uses Swing is Non-Modal, Detached.
The Java Virtual Machine is closed when Uniface is closed, or when the MW1 or UD5 paths log out.
Only Instance and Static methods are supported. Non virtual methods are not supported
The constructor for the class of an instance method is only called once for each class. It is invoked the first time an instance method is called for that class.
Maximum number of options available to pass to the Java Virtual Machine is 100
Uniface operations activated from Java may have either no parameters, one (1) string input parameter, or one (1) int input parameter. The string parameter may not exceed 8Kbytes.
Versions of Uniface prior to 7.2.04 do not support the mechanisms required for Java call-in.
Java call-out is available for all Uniface releases from Uniface Six onwards.