Code Pages

The built-in event names in your Natural for Ajax main program (such as nat:page.end and nat:browser.end) are usually written in lower case or mixed case. The URL values in your Natural programs (in controls such as SUBCISPAGE2 and ROWTABSUBPAGES) are usually written in mixed case. If you have an environment, however, in which you are bound to a code page which only allows Latin upper-case characters, you need to set the parameter natuppercase="true" in the cisconfig.xml file. In this case, the built-in events are generated in upper case, and URLs to Natural for Ajax pages are handled correctly even if they are specified completely in upper case.

Limitations: Since browsers and URLs to web pages are usually case-sensitive, you cannot integrate all kinds of URLs into your application. For example, it is not possible to integrate an HTML page which is not a Natural for Ajax page into a Natural for Ajax workplace application using the NJX:XCIWPACCESS2 control.

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.

The following shows an implementation of the sample program CTRSUB-P from the Natural for Ajax demos which runs with natuppercase="true".

Tip:
You often need to use an ampersand (&) as a separator between the parameters in a URL. The Hebrew code page CP803 does not support the character "&". Therefore, you need to specify the ampersand in your Natural code as a Unicode character, as shown below.

DEFINE DATA LOCAL
  1 ARTICLE (U) DYNAMIC
  1 INNERPAGE
    2 CHANGEINDEX (I4)
    2 PAGE (U) DYNAMIC
    2 PAGEID (U) DYNAMIC
  1 MYCONTEXT
    2 SELECTEDARTICLE (U) DYNAMIC
  1 MYTITLEPROP (U) DYNAMIC
END-DEFINE
*
INNERPAGE.CHANGEINDEX := 0
*
COMPRESS '/CISNATURAL/NATLOGON.HTML' 
  UH'0026' 'XCIPARAMETERS.NATSESSION=WORKPLACE' 
  UH'0026' 'XCIPARAMETERS.NATPARAMEXT=STACK%3D%28LOGON+SYSEXNJX%3BCTRSBI-P%29' 
  TO INNERPAGE.PAGE LEAVING NO
INNERPAGE.PAGEID := 'MYID'
INNERPAGE.CHANGEINDEX := INNERPAGE.CHANGEINDEX+1
*
PROCESS PAGE USING "CTRSUB-A"
*
DECIDE ON FIRST *PAGE-EVENT
  VALUE U'NAT:PAGE.END', U'NAT:BROWSER.END'
    IGNORE
  VALUE U'SHOWDETAILS'
    MYCONTEXT.SELECTEDARTICLE := ARTICLE
    INNERPAGE.CHANGEINDEX := INNERPAGE.CHANGEINDEX + 1
    PROCESS PAGE UPDATE FULL
  NONE VALUE
    PROCESS PAGE UPDATE
END-DECIDE
*
END