Project

General

Profile

4GL Runtime Compatibility Options

The Progress 4GL runtime has features that depend upon the local environment or upon configuration. For example, Progress provides startup parameters that can be passed on the command line to modify how the runtime operates. This section describe what parameters can be specified inside the directory and what is the encoding and the purpose of each of them.

Search Algorithm

All these compatibility options can be located in different locations to differentiate the option as a global default, per-server default, group-specific or account-specific. The search algorithm used for these options is the Account search algorithm. This search algorithm is documented in the main Directory chapter.

Startup Parameters

Startup parameters can be set in the directory.xml. If a parameter is set by the client (Bootstrap), then it overrides the server side. To set a startup parameter follow the example below:

<node class="container" name="clientConfig">
  <node class="container" name="startup">
    <node class="string" name="service-name">
      <node-attribute name="value" value="service-name value"/>
    </node>
  </node>
</node>

More information about the supported startup parameters can be found at Bootstrap Configuration Reference, client/cmd-line-option.

Reference

The following options can be specified:

Note: prior to FWD v4.0, the legacy-system section was named file-system. In older releases of FWD, just replace any reference to legacy-system below with file-system.

Option ID Data Type Default Value Required Details
browser-executable string A platform-specific browser executable as documented in Open URL. No Specifies the program name and optional default arguments for the browser to be used by the Swing GUI client when implementing the openURL() feature. See Open URL for details. The format is either a simple program name OR it can be the program name and default arguments. The first text in the entry must be the program name. If there is whitespace following the program name, any text after the whitespace is treated as the default arguments to the program. Due to this design, you may not use embedded whitespace inside the browser's program name.
windowingYear integer 1950 No Provides the equivalent of the -yy startup parameter and the SESSION:YEAR-OFFSET attribute.
dateFormat string "MDY" No Provides the equivalent of the -d startup parameter and the SESSION:DATE-FORMAT attribute. To set this value, one must store the order of the 3 date sub-components as a 3 character string with one character each for "D" (day), "M" (month) and "Y" (year).
numberGroupSep string queried JVM value or ',' if no value can be queried from the JVM. No Use this option to change the character that represents the thousands separator. Provides the equivalent of the Progress -numsep startup parameter and the SESSION:NUMERIC-SEPARATOR attribute.
For example changing the thousands separator to an apostrophe the Progress startup parameter is:
-numsep 39

The equivalent directory configuration is:
<node class="string" name="numberGroupSep">
  <node-attribute name="value" value="'"/>
</node>

numberDecimalSep string queried JVM value or '.' if no value can be queried from the JVM No Use this option to change the character that represents the decimal separator. Provides the equivalent of the -numdec startup parameter and the SESSION:NUMERIC-DECIMAL-POINT attribute. For example changing the decimal separator to a comma the Progress startup parameter is:
-numdec 44

The equivalent directory configuration is:
<node class="string" name="numberDecimalSep">
  <node-attribute name="value" value=","/>
</node>

currentLanguage string '?' No Use this option to set the name of the current language.
Provides the equivalent of the -lng startup parameter. The value of this option will also be returned by the CURRENT-LANGUAGE function.
dataServers string 'PROGRESS,ORACLE,AS400,ODBC,MSS' No This configuration option will set up the return value of the Progress DATASERVERS function.
opsys/override string none No This option provides a manual override to hard code the OPSYS value instead of allowing the runtime to determine it using the os.name system property.
opsys/mapping/<os.name_system_property> string none No This option allows a specific os.name value (e.g. "Linux") to be mapped to the text provided.
searchpath string ".:" No This is the active search path used in the SEARCH() method and available when one uses the PROPATH function.
path-separator string ":" No This is the path separator character used to parse the Progress search path.
legacy-system/propath string ".:" No This value is the legacy system's PROPATH which is used to resolve RUN VALUE() expressions. This value must be maintained for certain runtime translations of dynamically generated names (in the case of algorithms designed with that path assumed) but which is not necessarily a valid path on the system on which this is running.
Example:
<node class="container" name="legacy-system">
 ...
 <node class="string" name="propath">
  <node-attribute name="value" value="/app/tst"/>
 </node>
 ...
</node>

legacy-system/path-separator string ":" No This is the path separator character used to parse the Progress search path on the original source system (not the same as the current FWD system's value).
Example:
<node class="container" name="legacy-system">
 ...
 <node class="string" name="path-separator">
  <node-attribute name="value" value=";"/>
 </node>
 ...
</node>

legacy-system/file-separator string "/" No This is the original source system's filesystem value (not the same as the current FWD system's value).
Example:
<node class="container" name="legacy-system">
 ...
 <node class="string" name="file-separator">
  <node-attribute name="value" value="/"/>
 </node>
 ...
</node>

legacy-system/case-sensitive boolean true No The original source system's filesystem value (not the same as the current FWD system's value).
Example:
<node class="container" name="legacy-system">
 ...
 <node class="boolean" name="case-sensitive">
  <node-attribute name="value" value="TRUE"/>
 </node>
 ...
</node>

legacy-system/pkgroot string "" No This is the base path for all Java packages. It is used to detect
the Progress source file name of the calling program by the PROGRAM-NAME(n) function.
Example:
<node class="container" name="legacy-system">
 ...
 <node class="string" name="pkgroot">
  <node-attribute name="value" value="com.goldencode.abc"/>
 </node>
 ...
</node>

version string "10.2B" No This is the current version string of the Progress compatible environment. This is the value the PROVERSION function will return.
batchMode boolean false No Provides the equivalent of the -b startup parameter and the SESSION:BATCH-MODE attribute.
[TODO]
AIL: check if batchMode it's used or maybe the headless option emulates the -b parameter
[/TODO]

Examples

This is an example of a directory containing compatibility options:

...
<node class="container" name="runtime">
 <node class="container" name="default">
  <node class="integer" name="windowingYear">
   <node-attribute name="value" value="1950"/>
  </node>
  <node class="string" name="dateFormat">
   <node-attribute name="value" value="mdy"/>
  </node>
  <node class="string" name="numberGroupSep">
   <node-attribute name="value" value=","/>
  </node>
  <node class="string" name="numberDecimalSep">
   <node-attribute name="value" value="."/>
  </node>
  <node class="string" name="dataServers">
   <node-attribute name="value" value="PROGRESS,ORACLE"/>
  </node>
  <node class="string" name="currentLanguage">
   <node-attribute name="value" value="english"/>
  </node>
  <node class="string" name="searchpath">
   <node-attribute name="value" value=".:"/>
  </node>
  <node class="string" name="path-separatopr">
   <node-attribute name="value" value=":"/>
  </node>
  <node class="string" name="version">
   <node-attribute name="value" value="10.2B"/>
  </node>
  <node class="container" name="opsys">
  ...
  </node>
  <node class="container" name="legacy-system">
  ...
  </node>
  ...
 </node>
</node>
...

Note that none of this options are mandatory. This is an example of opsys section:

<node class="container" name="opsys">
 <node class="string" name="override">
  <node-attribute name="value" value="UNIX"/>
 </node>
 <node class="container" name="mapping">
  <node class="string" name="linux">
   <node-attribute name="value" value="UNIX"/>
  </node><node class="string" name="solaris">
   <node-attribute name="value" value="UNIX"/>
  </node>
 </node>
</node>

In the example below you can see the options from the legacy-system section:

<node class="container" name="legacy-system">
 <node class="string" name="pkgroot">
  <node-attribute name="value" value="com.goldencode.abc"/>
 </node>
 <node class="string" name="propath">
  <node-attribute name="value" value=".:"/>
 </node>
 <node class="string" name="path-separator">
  <node-attribute name="value" value=":"/>
 </node>
 <node class="string" name="file-separator">
  <node-attribute name="value" value="/"/>
 </node>
 <node class="boolean" name="case-sensitive">
  <node-attribute name="value" value="TRUE"/>
 </node>
</node>

© 2004-2021 Golden Code Development Corporation. ALL RIGHTS RESERVED.