Example of a Hidden Command Handler for Web Applications

Visual LANSA Framework

Example of a Hidden Command Handler for Web Applications

Example 1

* This is an example of VLF.WEB hidden command.

* It is executed on the web server.

* It can coded in RDML or RDMLX format.

 

* Regardless of whether it is RDML or RDMLX it needs to use the

* VF* series of built-in functions to communicate with the Framework

* manager.

 

Function Options(*DIRECT)

 

* Get the current instance list entry

 

Use Builtin(VF) With_Args(GETCURRENTINSTANCE)

 

* Get AKEY3 because it contains the employee number

 

Use Builtin(VF_GET) With_Args(AKEY3) To_Get(#EmpNo)

 

* Issue a message showing the employee number retrieved

 

Execute Subroutine(Showmsg) With_Parms('Employeee number selected is' #Empno)

 

* Make the message always be displayed in the web browser

 

Use Builtin(VF_SET) With_Args(AVSHOWMESSAGES TRUE)

 

* Finished

 

Return

 

* Simple subroutine to issue a message onto program message queue

 

Subroutine Name(ShowMSG) Parms((#MSGDTA *RECEIVED) (#TEMP1 *RECEIVED))

Define Field(#Msgdta) Type(*char) Length(132)

Define Field(#Temp1) Type(*char) Length(132)

Use Builtin(BCONCAT) With_Args(#MSGDTA #TEMP1) To_Get(#MSGDTA)

Message Msgid(DCM9899) Msgf(DC@M01) Msgdta(#MsgDta)

Endroutine

 

Example 2

* =======================================================

* Description ...: Instance level Hidden Command Handler

*

* =======================================================

FUNCTION OPTIONS(*DIRECT)

 

* Simple Field and Group Definitions

* =======================================================

DEFINE FIELD(#REVSD) REFFLD(#VF_ELBOOL)

DEF_COND NAME(*REVSD) COND('#REVSD *EQ TRUE')

 

* Get the Employee number of the current instance

* and the revered flag.

 

USE BUILTIN(VF) WITH_ARGS(GETCURRENTINSTANCE)

 

USE BUILTIN(VF_GET) WITH_ARGS(AKEY1) TO_GET(#EMPNO)

 

* Get the Name state from the clipboard

 

USE BUILTIN(VF_RESTOREAVALUE) WITH_ARGS(*BLANKS PNCAFLT REVERSED #EMPNO) TO_GET(#REVSD)

 

USE BUILTIN(VF_TRACEAVALUE) WITH_ARGS('Employee name is surname first? ' #REVSD)

 

* Fetch information from the main file to fill in the

* header fields on the form

 

FETCH FIELDS(#SURNAME #GIVENAME) FROM_FILE(PSLMST) WITH_KEY(#EMPNO)

 

* Put the names together in the reverse order

 

IF COND(*REVSD)

 

* Put the names together Given name first

 

CHANGE FIELD(#UF_VISID2) TO(#GIVENAME)

USE BUILTIN(BCONCAT) WITH_ARGS(#UF_VISID2 #SURNAME) TO_GET(#UF_VISID2)

 

* Set the reversed flag

 

CHANGE FIELD(#REVSD) TO(FALSE)

 

USE BUILTIN(VF_TRACEAVALUE) WITH_ARGS('Employee name has been reversed. Name is now ' #UF_VISID2)

 

ELSE

 

* Put the names together Surname first

 

CHANGE FIELD(#UF_VISID2) TO(#SURNAME)

USE BUILTIN(BCONCAT) WITH_ARGS(#UF_VISID2 #GIVENAME) TO_GET(#UF_VISID2)

 

* Set the reversed flag

 

CHANGE FIELD(#REVSD) TO(TRUE)

 

USE BUILTIN(VF_TRACEAVALUE) WITH_ARGS('Employee name is now surname first. Name is now ' #UF_VISID2)

 

ENDIF

 

* Update the name (Visual ID 2) to the instance list

 

USE BUILTIN(VF) WITH_ARGS(BEGINLISTUPDATE)

 

* Set up the list entry details

 

USE BUILTIN(VF_SET) WITH_ARGS(VISUALID1 #EMPNO VISUALID2 #UF_VISID2 AKEY1 #EMPNO)

 

USE BUILTIN(VF_TRACEAVALUE) WITH_ARGS('Employee name is surname first? ' #REVSD)

 

* Add instance details to the instance list

 

USE BUILTIN(VF) WITH_ARGS(ADDTOLIST)

 

* Instance list updating is now complete

 

USE BUILTIN(VF) WITH_ARGS(ENDLISTUPDATE)

 

* Remember which way the name is presented

 

USE BUILTIN(VF_SAVEAVALUE) WITH_ARGS(#REVSD PNCAFLT REVERSED #EMPNO)