Ajax Configuration

#### Search Results

Search

# Ajax Configuration

The following topics are covered below:

- Ajax Configuration Editor

- General cisconfig.xml Parameters

- Directory for Performance Traces

- Central Class Path Extensions for Development

## Ajax Configuration Editor

The Ajax Configuration Editor is part of the Natural for Ajax Runtime Tools. It's available in every Natural for Ajax web archive. When started, it opens the active ajax configuration file user_cisconfig.xml. If the configuration file doesn't exist, it opens the cisconfig.xml file in the <subfolder>/cis/config.

In NaturalONE, to open a cisconfig.xml file of your User Interface Component with the Ajax Configuraton Editor: Right-click on the cisconfig.xml file and choose Open with > Ajax Configuration Editor.

## General cisconfig.xml Parameters

- Control Behavior – All Controlsets

- Control Behavior – Non-Responsive Controlset

- Logging and Error Handling

- Sessions, Buffers and Caches

- Styles, Languages and Encoding - All Pages

- Styles, Languages and Encoding - Responsive Pages

- Page Behavior - Non-Responsive Pop-Ups

- Page Behavior - Natural

- Special Functions

- Developing and Testing

The cisconfig.xml file contains some general control information. The following is a very basic example:

    <cisconfig startmonitoringthread="true"
               requestclienthost="false"
               debugmode="false"
               loglevel="EWI"
               logtoscreen="false"
               sessiontimeout="3600"
               xmldatamanager="com.softwareag.cis.xmldata.filebased.XMLDataManager"
               useownclassloader="true"
               browserpopuponerror="false"
               framebuffersize="3"
               onlinehelpmanager="com.softwareag.cis.onlinehelp.projectbased.FrameHelpOHManager"
               textencoding="UTF-8"
               enableadapterpreload="true">
    </cisconfig>

### Control Behavior – All Controlsets

Parameter | Description
--- | ---
`buttonctrlenter` | Default false. If set to true <ctrl><enter> on a focused button will trigger the button method.
`completedateinput` | Default: true. By default, partial input in the `DATEINPUT` control is automatically completed. When you set this parameter to "false", no automatic completion will be done, thus forcing end-users to always enter the complete date. Values: true/false.
`completedateinputrange` | Default: 999 If the setting `completedateinput` is set to false, the `completedateinputrange` is ignored. Valid values: 999 : Compatibility with versions before 932. For a two-digit year value 00 - 49, the current century is set. For a two-digit year value 50 - 99, the previous century is set. 0 : For a two-digit year value, the current century is set. 1 : 99 Same behavior as the Natural YSLW profile parameter. For details, see Parameter Reference > YSLW - Year Sliding or Fixed Window in the Natural documentation. 1582-2600 : Same behavior as the Natural YSLW profile parameter. For details, see Parameter Reference > YSLW - Year Sliding or Fixed Window in the Natural documentation.
`customdates` | You can specify several `customdates` (YYYY-MM-DD) separated by a semi-colon. Entering a custom date in the browser doesn't display a validation error.
`displayallowtab` | Default: true Defines if tabbing into DISPLAY input controls is possible.
`accessibilityroles` | Default: true Defines for controls and container that corresponding role attributes for accessibility are generated.
`fieldnumerictypesrightaligned` | Default: false. Set this parameter to "true" in order to right-align text within the FIELD control when using the data type `int`, `long` or `float`. Values: true/false.
`flushreceivespreviousfocused` | Default: false. By default, during a flush event the adapter gets as focus information the input control that received the focus. Set this parameter to "true" if during a flush event your application relies on getting as focus information the input control that lost the focus. For Natural applications this means: By default, the Natural system variable `*CURS-FIELD` contains during the flush event the value of the Natural system function `POS` for the input control that received the focus. Values: true/false.
`suppressfocusmanagement` | Default: false. If you set this parameter to "true", no focus management in the client will be done after a server round trip. This means: The focus will not be set to focus-requesting controls such as "EDIT" fields with "ERROR" status after a server round trip. Usually, you do not set this parameter. If you need to suppress focus management for specific server round trips, you usually do this from within your adapter code for these specific server round trips. See also the `focusmgtprop` in the NATPAGE control. Only set this parameter to "true" if your application needs to do it vice versa: Suppress focus mangement for nearly all server round trips and only explicitly activate focus management for some specific server round trips from within your adapter code. Values: true/false.

### Control Behavior – Non-Responsive Controlset

Parameter | Description
--- | ---
`animatecontrols` | Default: true. Defines how Application Designer handles the animation of controls. There are several controls that can be rendered in an animated way and in a standard way. Setting this parameter to "false" can help to improve performance, especially if you are not using the newest hardware. Values: true/false.
`maxitemsinfieldcombo` | Default: 100. The FIELD control provides for a predefined pop-up method `openIdValueComboOrPopup`. Depending on the size of the list of valid values, the list is either shown in a combo box or in a pop-up. Use this parameter to control the maximum number of entries that are to be shown in the combo box. Value: integer number.
`takeoutfieldpopupicon` | Default: false. Set this parameter to "true" in case you are using right-aligned FIELD controls with value help. This will avoid overlapping of the right-aligned text and the corresponding drop-down icon. Values: true/false.
`valuehelpkeys` | You can specify your own keys to open the value help pop-up and/or combo box in a FIELD control. The keys are specified in the same way as hot keys. Example:
    valuehelpkeys = "ctrl-65;ctrl-alt-66"
`resetstatusbarbefore` | Default: false. When set to true, the status bar messages are reset in the browser before a server roundtrip is done. Values: true/false.
`resetstatuspropfocus` | Default: false. If set to "true", statusprop values FOCUS and FOCUS_NO_SELECT will automatically be reset to the default value; statusprop value ERROR will be reset to ERROR_NO_FOCUS. The reset is done before the next server round-trip to Natural, so that the Natural program will receive the changed value. This way, the focus is set only once without having to actively reset the statusprop value in the next server round-trip. The Natural for Ajax runtime will take care of the reset.
`clientsideerrorinstatusbar` | Default: false. By default, client-side error messages are displayed as pop-ups. When you set this parameter to "true", client-side error messages are displayed in the status bar. Values: true/false.
`usemessagepopup` | Default: false. Set this parameter to "true" in order to show status messages as message pop-ups. Values: true/false.
`itrinlinedisplay` | Only set this if you notice rounding issues with pixel-sizing in ITRs while zooming the page in Google Chrome and/or Edge Chromium.

### Logging and Error Handling

Parameter | Description
--- | ---
`browserpopuponerror` | Default: false. Defines how Application Designer handles it if the application behind an Application Designer page throws an error. By default (false), the browser switches to an error screen. In the screen, the user can only abort the current function. This is the default way in which any kind of inconsistency is automatically omitted. When you set `browserpopuponerror` to "true", the browser opens a pop-up window in which the error is output. This setting should only be used during development because it may cause inconsistencies in the application. Values: true/false.
`debugmode` | Default: false. A log is written permanently into Application Designer's log directory. When `debugmode` is set to "true", a lot of information which normally is not required is written to the log. Be aware that you can also set the debug mode dynamically within your running system. Application Designer provides a monitoring tool in which you can switch the debug mode on and off. Values: true/false.
`errorreactionadapter` | In case of an unhandled application error, the Application Designer runtime navigates to an error page. The class name specified in `errorreactionadapter` is the Java adapter for this error page. If an error reaction adapter is not specified, a default adapter is used which shows the error's stack trace. The Application Designer framework contains a second error reaction adapter with the class name `com.softwareag.cis.server.SecureErrorReactionAdapter`. For security reasons, this adapter does not show a stack trace but only an error message. You can write your own error reaction adapter and create your own error page. An error reaction adapter must implement one of the interfaces `com.softwareag.cis.server.ISecureErrorReactionAdapter` or `com.softwareag.cis.server.IErrorReactionAdapter`. For more information, see the corresponding Java documentation.
`loglevel` | Default: EWI. Defines the message types that are to be logged. Values: E (error) W (warning) I (information) D (debug) N (no logging) You can specify any combination of message types by concatenating the message types. Example: "EW" logs all error and warning messages. "EWI" additionally logs information messages. Specify "N" (no logging) to switch off writing log messages to a logfile. Caution When having set `debugmode` to "true", the `loglevel` filter is automatically bypassed and all messages are logged. `debugmode` is stronger than `loglevel`.
`logtoscreen` | Default: false. If this parameter is set to "true", all Application Designer log information is also output to the command screen from which you started Application Designer. This parameter should only be set to "true" if running in development mode. Values: true/false.
`maxserverlogage` | Default: -1 (log files are not automatically deleted). When setting `maxserverlogage` to a value > 0, ServerLog*.log files, which are older than the set number of days, are automatically deleted. For example, if `maxserverlogage` is set to 3, all ServerLog*.log files, which are older than 3 days are automatically deleted. If `startmonitoringthread` is set to false, this parameter has no effect.
`monitoringthreadinterval` | Default: 5000. The interval in milliseconds for the wake-up of the monitoring thread. If `startmonitoringthread` is set to false, this parameter has no effect.
`startmonitoringthread` | Default: true. If set to "true", a monitoring thread is opened which by default wakes up every 5 seconds. You can customize this value by setting the parameter `monitoringthreadinterval`. The thread performs the following activities: It initiates a garbage collection periodically (every two minutes). It writes all log information into a log file (every n milliseconds. Where n represents the interval length defined in the `monitoringthreadinterval` parameter). It calls the clean up of sessions which are timed out (every two minutes) It checks for user interface component updates, which need to be deployed. What happens if the monitoring thread is not started? No garbage collection will be triggered by Application Designer. This is then the task of the servlet container around. The log is not automatically written to the file location specified in the web.xml file, but is written to the servlet container's logging. Timing out sessions is not done every two minutes but every thousand requests. No user interface deployment will be done. Caution Some servlet containers do not allow to let the web application start new threads (for example, the Sun reference implementations do so). For these containers, the parameter must be set to "false". Values: true/false.
`licwarningsfor` | Semicolon seperated list of hostnames. When the web application is called with an URL containing one of these hostnames and the license is in the expiration period of 40 days, an alert box with a license warning is shown once per day.

### Sessions, Buffers and Caches

Parameter | Description
--- | ---
`createhttpsession` | Default: false. Internally, Application Designer does not require HTTP session management that is provided by the servlet container. Some application servers (especially in clustered scenarios in which Application Designer runs in several nodes) require an explicit HTTP session ID to be used in order to route requests from a browser client always to the right application server node in the cluster. Set `createhttpsession` to "true" in this case. Values: true/false.
`sessiontimeout` | Default: 3600 (1 hour). Application Designer sessions are timed out according to the value defined with this parameter. This is the definition of the timeout phase in seconds. By default, 3600 is defined in the configuration file. If no parameter is specified in the configuration file, 7200 is used. Value: integer number.
`urlsessiontimeout` | When Application Designer times out a session (see the `sessiontimeout` parameter) and the user tries to continue to work with the session, a page will be displayed inside the user's browser, indicating that a timeout happened with the user's session. By default, this page is an Application Designer page that you might not want to show to your application users. Value: the URL of the page that is to be shown instead of the default page.
`sessionidasthreadname` | Default: true. On start of each page request processing, the Application Designer runtime calls the method `Thread.setName` with the current session ID (default). You can set this parameter to "false" to instruct the Application Designer runtime not to touch the thread's name. Values: true/false.
`enableadapterpreload` | Default: true. By default, the server sends all required responses at once to the client, even if different adapters are involved. If set to "false", a separate data transfer occurs for each involved adapter.
`framebuffersize` | Default: 3. Each page in the browser client runs inside a surrounding page. This surrounding page offers a couple of internal functions, one of them to buffer contained Application Designer pages: if a user opens the first page and then navigates to a second page, the first page is internally kept inside a frame buffer. If returning to the first page later on, the browser does not have to build up the first page from scratch but just switches to the buffered page. The `framebuffersize` defines the number of buffered pages. Increasing the `framebuffersize` means that more resources are used on the client (browser) side. When changing this value, you should test the memory consumption on the client side before rolling out the change to productively running implementations. Value: integer number.
`maxworkplaceactivities` | Default: -1 (unlimited). The maximum number of workplace activities in a workplace application.

### Styles, Languages and Encoding - All Pages

Parameter | Description
--- | ---
`defaultcss` | You can set your own default style sheet for your entire application. For example:
    ../cis/styles/MY_STYLE.css
`defaultlanguage` | Default: en (English). Defines the language that is to be used by default when starting Application Designer. If not set, "en" is used.
`multilanguagemanager` | Internally, Application Designer uses an interface to retrieve the translation information for a certain text ID and a certain language. A default implementation is available that stores the corresponding language information in files that are part of the web application. Value: the name of the class that supports Application Designer's multi-language interface.
`onlinehelpmanager` | Application Designer accesses a certain URL when the user presses F1 on certain controls (for example, fields, check boxes and others). Application Designer transfers a corresponding help ID that is defined with the control into a URL and opens this URL in a pop-up window. If you have your own mechanisms for defining this URL, you can implement a corresponding Application Designer Java interface (`com.softwareag.cis.onlinehelp.IOHManager`). Value: the name of the interface.
`textencoding` | Default: UTF-8. By default, Application Designer reads and writes text files in UTF-8 format. You can tell Application Designer to use a different format (for example, for writing XML layout definitions). But be very careful and very aware of what you are doing.

### Styles, Languages and Encoding - Responsive Pages

Parameter | Description
--- | ---
`uselatestbootstrap` | If set to true Bootstrap 4 is used. If set to false Bootstrap 3 is used. When changing this setting you need to regenerate you page layouts. Default: true. Bootstrap 4 is used. Values: true/false.
`defaultbmobilecss` | Set your Natural for Ajax specific responsive stylesheet for the whole application (Bootstrap 3). See the documentation of Natural for Ajax > Responsive Natural Page Layout > Styling a Responsive Page.
`defaultbmobilecss4` | Set your Natural for Ajax specific responsive stylesheet for the whole application (Bootstrap 4). See the documentation of Natural for Ajax > Responsive Natural Page Layout > Styling a Responsive Page.
`defaultresponsivecss` | Set your Bootstrap stylesheet for the whole application (Bootstrap 3). See the documentation of Natural for Ajax > Responsive Natural Page Layout > Styling a Responsive Page.
`defaultresponsivecss` | Set your Bootstrap stylesheet for the whole application (Bootstrap 4). See the documentation of Natural for Ajax > Responsive Natural Page Layout > Styling a Responsive Page.
`defaultresponsivecss` | Set your DataTables Theme (Bootstrap 3). See the documentation of Natural for Ajax > Responsive Natural Page Layout > Styling a Responsive Page.
`defaultdatatablescss4` | Set your DataTables Theme (Bootstrap 4). See the documentation of Natural for Ajax > Responsive Natural Page Layout > Styling a Responsive Page.

### Page Behavior - Non-Responsive Pop-Ups

Parameter | Description
--- | ---
`usepagepopup` | Default: false. Set this parameter to "true" in order to open Natural for Ajax pop-ups as page pop-ups instead of browser pop-ups. Values: true/false.
`pagepopupenterhotkey` | Default: false. By default, the `reactOnPagePopupEnterKey` event is not triggered when ENTER is pressed in the page pop-up. When setting this parameter to "true", the event reactOnPagePopupEnterKey is triggered when ENTER is pressed in the page pop-up. This event can be processed in the Natural program. Values: true/false.
`pagepopuphorizontal` | Use this to automatically adapt the size of a page pop-up if it does not fit to its parent because the parent width is not big enough. Supported values are "zoom" and "resize". If set to "resize" the width of a page pop-up is reduced. If set to "zoom" the page pop-up will automatically be zoomed in. Values: resize/zoom.
`pagepopupvertical` | Use this to automatically adapt the size of a page pop-up if it does not fit to its parent because the parent height is not big enough. Supported values are "zoom" and "resize". If set to "resize" the height of a page pop-up is reduced. If set to "zoom" the page pop-up will automatically be zoomed in. Values: resize/zoom.
`pagepopuponresize` | Default: false. If set to true an open page pop-up is resized when it's parent is resized. Values: true/false.
`popupparentdisabled` | Default: false. When setting this parameter to "true", the parent page of a page pop-up is rendered disabled while the pop-up is open. It only applies to page pop-ups. Values: true/false.

### Page Behavior - Natural

Parameter | Description
--- | ---
`natuppercase` | Default: false. Set this parameter to "true" if your Natural program only allows Latin upper-case characters. This is the case, for example, if your Natural program uses the Hebrew codepage CP803. Important Set the parameter `natuppercase="true"` before you implement your main program with Natural for Ajax. If you set this parameter after the implemention, you will have to change all Latin lower-case characters to upper-case manually. Values: true/false.
`notifyparentonpopupclosed` | Default: true. If this parameter is set to "false", no `nat:page.default` will be sent to the parent Natural program after a pop-up is closed. Otherwise the parent Natural program will receive a `nat:page.default` event after a pop-up is closed. Values: true/false.

### Special Functions

Parameter | Description
--- | ---
`urlopenstreetmapgeocoder` | URL used to access the third party geocoder for the OPENSTREETMAP controls. You usually do not have to specify this parameter. However, if the URL of the server of this third party geocoder changes, you can adapt the URL here correspondingly.
`urlbackbuttonpressed` | When the browser back button is pressed, in some cases the page is not synchronized with the server anymore and the session has to be closed. In these cases a default page is displayed. Instead of this default page you can define a URL to a custom page. Value: the URL of the page that is to be shown instead of the default page.
`reloadpageonbackbutton` | Default: false. If set to true, the Ajax framework tries to reload the page when the back button is pressed. A corresponding message box is displayed to inform the end-user about the reload.
`requestclienthost` | Default: false. If a client sends an HTTP request, it is determined for the first request from which client this request is coming. This operation is sometimes quite expensive. For this reason, you can switch it off. If switched off, there is no disadvantage in normal operation, besides in the monitoring tool you cannot identify which session belongs to which client. Values: true/false.
`requestdataconverter` | Application Designer allows to pass each value that is input by the user through an explicit data converter on the server side, prior to passing this value to the application. In the data converter, you can implement certain security checks, for example, you can prevent users from inputting string sequences containing inline JavaScript or SQL scripting. See the interface `com.softwareag.cis.server.IRequestDataConverter` for more information. Value: name of a class that implements the interface `com.softwareag.cis.server.IRequestDataConverter`.
`sdofullpath` | Default: false The default setting enables the product's XSLT processor implementation. If switched to true, the 3rd party Xalan implementation is used instead of the product's functionality. Should you decide to use Xalan, download Xalan 2.7.2 from the Apache download sites. Note Xalan 2.7.2 contains a vulnerable.
`xmldatamanager` | This parameter defines the file name of the class which implements the `com.softwareag.cis.xmldata.IXMLDataManager` interface. You can specify an own class here. The `com.softwareag.cis.xmldata.XMLDataManagerFactory` creates an instance using a constructor without any parameter.
`workplacehotkeys` | You can specify hot keys with which you can switch back and forth between the activities in a workplace. The first entry defines the key for forward switching and the second entry defines the key for backward switching. The following example defines CTRL page up and CTRL page down as corresponding hotkeys:
    workplacehotkeys = "ctrl-34;ctrl-33"

### Developing and Testing

Parameter | Description
--- | ---
`htmlgeneratorlog` | Defaut: false. By default .protocol files are written during the HTML generation. If set to "true", an additional .log file is written for each layout. Only set this to "true", if you cannot resolve generation errors via the Layout Painter error marking. It reduces generation performance.
`designtimeclassloader` | By default, Application Designer uses an own class loader for accessing adapter classes at design time. (You can switch this off by specifying `useownclassloader="false"`.) With the `designtimeclassloader`, you can explicitly select a class loader class that Application Designer is to use. This allows you to use class loaders that offer special functions such as reading encrypted class files. Value: the name of a class loader class.
`useownclassloader` | Default: true. If set to "true", Application Designer uses its own class loader to load application classes. This parameter may be set to "false" in certain environments, for example, if you use Application Designer inside an environment which requires all application classes to run in the environment's own class loader environment. Caution The Application Designer class loader automatically searches for classes in certain directories (<project>/appclasses/classes and <project>/appclasses/lib). If you do not use the Application Designer class loader, you have to set up your environment accordingly. Values: true/false.
`zipcontent` | Default: true. Between the browser and the server, data content is exchanged. By default, Application Designer zips the content before sending a response from the server to the browser client. Sometimes you may want to actually "see" what is being sent (maybe you have a test tool that captures the HTTP protocol). Set `zipcontent` to "false" if you do not want Application Designer to zip the data content returned to the client. Values: true/false.
`testtoolidhtml4` | Default: false. If set to "true", the HTML attribute generated for the test tool IDs has the name "testtoolid". Otherwise, the name is "data-testtoolid". See also the information on standards mode and HTML5 in the Natural for Ajax documentation.

## Directory for Performance Traces

The `requestrecording` section of the cisconfig.xml file indicates the directory in which recorded performance traces are stored.

    <cisconfig ...>
        <requestrecording recordrequests="false"
                          recorddirectory="c:/temp/traces/">
        </requestrecording>
    </cisconfig>

## Central Class Path Extensions for Development

If you want to use your own class path extension, you may add a subsection to the cisconfig.xml file in which you extend the class path of the Application Designer class loader at development time:

    <cisconfig ...>
        <classpathextension path="c:/development/centralclasses/classes"/>
        <classpathextension path="c:/development/centralclasses/libs/central.jar"/>
    </cisconfig>

Each class path extension is listed with a reference to its physical path.

### On this page

- Ajax Configuration Editor
- General cisconfig.xml Parameters
- Directory for Performance Traces
- Central Class Path Extensions for Development