The primary means of sharing information between AJAX pages, AJAX functions, and RAMP scripts is the virtual clipboard.



The virtual clipboard is essentially a namespace of names, values and lists:

The clipboard they all use is shared. It is created when the Framework-WEB session is started and persists until the session ends, when it is destroyed. Clipboard content changes are invisibly transferred between the client PC and web server (or vice-versa) as required.

Only the clipboard changes are transferred but of course the number of changes you make impacts how much information needs to be transferred.

Some good practice tips for using the virtual clipboard are:  

AJAX Information in the Framework Virtual Clipboard

When you are using AJAX applications, the Framework puts some information onto the virtual clipboard automatically. Generally you should treat this information as read-only so as to avoid interfering with the operation of the Framework.

Name Part 1Name Part 2Name Part 3Usage Comment

AJAX

SYSTEM

AJAXPAGE

Current AJAX page name

AJAX

SYSTEM

AJAXMODULE

Default RDML or RDML AJAX function name

AJAX

SYSTEM

REQUEST

Current request

AJAX

SYSTEM

PAYLOAD

Current payload

AJAX

SYSTEM

RETURNCODE

Latest Return Code

AJAX

SYSTEM

MESSAGECOUNT

Latest Message Count (can be updated)

AJAX

SYSTEM

MESSAGE

Latest Message Instance

AJAX

SYSTEM

<any other>

Do not use this namespace. It is reserved for the current and future Framework versions.

Typically you will only ever need to access AJAX.SYSTEM.REQUEST and AJAX.SYSTEM.PAYLOAD in your server-side AJAX functions like this:

* Get the action and payload that the Javascript sent ....


Execute Subroutine(GETA) With_Parms(SYSTEM REQUEST 1 #REQUEST) 
Execute Subroutine(GETA) With_Parms(SYSTEM PAYLOAD 1 #PAYLOAD)

* Now switch on the requested action 
Case Of_Field(#REQUEST) 

* Load 10 sample entries 
When Value_Is(= LOAD10) 
Execute Subroutine(Load10) 

* Validate a zip code 
When Value_Is(= VALIDATE) 
Execute Subroutine(VALIDATE) 

* Handle a bad request 

Otherwise 
Abort Msgid(DCM9899) Msgf(DC@M01) Msgdta(('Unknown request ' + #REQUEST + ' received by ' + *FUNCTION)) 

Endcase 


Typically this allows one AJAX function to handle many different AJAX page requests coming from many different AJAX pages.