How can I have multiple sign in screens for the one LANSA for the Web function?

Date:24 November 2005
Product/Release:LANSA for the Web
Abstract:Using multiple html screens for the same LANSA for the Web function
Submitted By:LANSA Services
Last Review:November 2010

Question:

I want to create a sign on screen in LANSA for the Web. I want a default look and feel to the screen, but I also need a specialized the look and feel depending on what system the user is logging into.

My dilemma is: I am using the same LANSA function. I do not want to have to change or compile this LANSA function as we bring on new systems. I need a way to dynamically determine what system they are entering and to display the appropriate sign on screen; if there is no special screen for that system, I need the default sign on screen displayed.

Answer:

Lets assume we have three systems: System A, System B and System C which all have different sign on screens.

System A – special sign on screen (SIGNINA)
System B – special sign on screen (SIGNINB)
System C – default sign on screen (SIGNIN)

Consider the following Internet Links, All three are calling the same function but are passing a parameter with different values. The parameter value pass is called SGNTYP for Sign-In Type, which holds the value of the component name for display.

http://<IP>/cgi-Bin/lansaweb?procfun+signinpr01+signin+FUNCPARMS+ASGNTYP(A0030):SIGNINA
http://<IP>/cgi-bin/lansaweb?procfun+signinpr01+signin+FUNCPARMS+ASGNTYP(A0030):SIGNINB
http://<IP>/cgi-bin/lansaweb?procfun+signinpr01+signin+FUNCPARMS+ASGNTYP(A0030):SIGNIN

The function SIGNIN can then be changed to dynamically handle the different component values passed in. Let's assume that the function displays a component page called MAINPAGE.

DISPLAY FIELDS((#MAINPAGE *NOID)) EXIT_KEY(*NO) MENU_KEY(*NO) PR 
OMPT_KEY(*NO)

On this MAINPAGE Component you should have the following HTML Tag:

<RDML COMPONENT="&FLD_SGNTYP">

For example, if SGNTYP had a value of SIGNINA, when the page is displayed then the tag would read

<RDML COMPONENT="SIGNINA">

at execution time.

By using this RDML tag, you can embed Web components dynamically in your application when you function is executed.

Since the URL passes the value of SGNTYP then when the DISPLAY statement is executed it will display the component MAINPAGE that would result in embedding another component of the value of SGNTYP. Ultimately bringing in the required sign on screen.

Furthermore, you would have to create and registered the components for each system (i.e. SIGNINA, SIGNINB, SINGIN etc.) in your HTML Editor.