3.3.6 Sample LANSA RDMLX Client Programs
For examples of RDMLX client applications, refer to RDMLX Examples.
Following is a very simple LANSA function that opens and then closes a connection to the JSM. If an error occurs, the status and message can be evaluated. This program does not use any services. Enable connection tracing to see the open and close being traced.
Example 1 - Using default (JSMCLTDTA data area)
FUNCTION OPTIONS(*DIRECT)
USE BUILTIN(JSMX_BEGIN)
USE BUILTIN(JSMX_OPEN) TO_GET(#JSMXSTS #JSMXMSG #JSMXHDLE1)
IF COND('#JSMXSTS *NE OK')
ENDIF
USE BUILTIN(JSMX_CLOSE) WITH_ARGS(#JSMXHDLE1) TO_GET(#JSMXSTS #JSMXMSG)
IF COND('#JSMXSTS *NE OK')
ENDIF
USE BUILTIN(JSMX_END)
Example 2 - Using server argument
FUNCTION OPTIONS(*DIRECT)
USE BUILTIN(JSMX_BEGIN)
#JSMSRV := 'LOCALHOST:4560'
USE BUILTIN(JSMX_OPEN) WITH_ARGS(#JSMSRV) TO_GET(#JSMXSTS #JSMXMSG #JSMXHDLE1)
IF COND('#JSMXSTS *NE OK')
ENDIF
USE BUILTIN(JSMX_CLOSE) WITH_ARGS(#JSMXHDLE1) TO_GET(#JSMXSTS #JSMXMSG)
IF COND('#JSMXSTS *NE OK')
ENDIF
USE BUILTIN(JSMX_END)
The following example shows how the JSMX BIFs are used together and in what order. This is not a complete RDML function. In this example JSMX_OPEN opens a connection to the Java Service Manager and starts a thread.
A series of JSMX_COMMANDs are issued to:
-
Load the FTPService service
-
Connect to the host
-
Login using the specified user/password
-
Change the directory path
-
Set mode to binary
-
Put the file to the FTP site
-
Quit the FTP session
-
Unload the service.
JSM_CLOSE ends the connection.
FUNCTION OPTIONS(*DIRECT)
USE BUILTIN(JSMX_BEGIN)
USE BUILTIN(JSMX_OPEN) WITH_ARGS(#JSMSRV) TO_GET(#JSMXSTS #JSMXMSG #JSMXHDLE1)
JSMXCMD := 'SERVICE_LOAD SERVICE(FTPSERVICE)'
USE BUILTIN(JSMX_COMMAND) WITH_ARGS(#JSMXHDLE1 JSMXCMD) TO_GET(#JSMSTS #JSMMSG)
JSMXCMD := 'CONNECT HOST(LOCALHOST)'
USE BUILTIN(JSMX_COMMAND) WITH_ARGS(#JSMXHDLE1 JSMXCMD) TO_GET(#JSMSTS #JSMMSG)
JSMXCMD := 'LOGIN USER(user) PASSWORD(code)'
USE BUILTIN(JSMX_COMMAND) WITH_ARGS(#JSMXHDLE1 JSMXCMD) TO_GET(#JSMSTS #JSMMSG)
JSMXCMD := 'CHGDIR PATH(/JSM)'
USE BUILTIN(JSMX_COMMAND) WITH_ARGS(#JSMXHDLE1 JSMXCMD) TO_GET(#JSMSTS #JSMMSG)
JSMXCMD := 'BINARY'
USE BUILTIN(JSMX_COMMAND) WITH_ARGS(#JSMXHDLE1 JSMXCMD) TO_GET(#JSMSTS #JSMMSG)
JSMXCMD := PUT FROM(file) TO(/TMP/DIR/file)'
USE BUILTIN(JSMX_COMMAND) WITH_ARGS(#JSMXHDLE1 JSMXCMD) TO_GET(#JSMSTS #JSMMSG)
JSMXCMD := 'QUIT'
USE BUILTIN(JSMX_COMMAND) WITH_ARGS(#JSMXHDLE1 JSMXCMD) TO_GET(#JSMSTS #JSMMSG)
JSMXCMD := 'SERVICE_UNLOAD')
USE BUILTIN(JSMX_COMMAND) WITH_ARGS(#JSMXHDLE1 JSMXCMD) TO_GET(#JSMSTS #JSMMSG)
USE BUILTIN(JSMX_CLOSE) WITH_ARGS(#JSMXHDLE1) TO_GET(#JSMXSTS #JSMXMSG)
USE BUILTIN(JSMX_END)