File Utility Program (FUP) Management Programming Manual

FUP Programmatic Interface
File Utility Program (FUP) Management Programming Manual523322-001
2-5
Starting and Opening FUP (TAL Example)
Starting and Opening FUP (TAL Example)
Figure 2-2 shows an example of a TAL integer procedure that is used to start and open
a FUP process for programmatic use.
Figure 2-2. TAL Procedure to Start and Open a FUP Process (page 1 of 2)
!--------------------------------------------------------
! Procedure START^AND^OPEN^PUP^PROCESS starts a new FUP
! process and opens the process for programming use.
! Returns: 0 if successful, or an error number.
!--------------------------------------------------------
INT PROC START^AND^OPEN^FUP^PROCESS ( file^num );
INT .file^num; ! File number for FUP server process
BEGIN
! Local definitions
!INT error; ! Error for return
INT .S^PTR; ! End-of-string pointer (word pointer)
STRUCT .start^msg (st^msg^def); ! Startup message (uses dummy template)
STRUCT .start^msg (st^msg^def); ! Startup message (uses dummy template)
! Set up variables for process creation call
!
STRING PROG_NAME[0:ZSYS^VAL^LEN^FILENAME-1];
STRING PROCESS^NAME[0:ZSYS^VAL^LEN^FILENAME-1];
INT .EXT ERROR_DETAIL, OUTPUT_LIST_LEN;
STRUCT OUTPUT_LIST(ZSYS^DDL^SMSG^PROCCREATE^DEF);
STRUCT PARAM_LIST(PROCESS_LAUNCH_PARMS_);
! Initialize the structure
!
PARAM_LIST ':=' P_L_DEFAULT_PARMS_;
! Initialize the program file name
!
PROG_NAME ':=' "$SYSTEM.SYSnn.FUP" -> @S^PTR;
@PARAM_LIST.PROGRAM_NAME := $XADR ( PROG_NAME );
PARAM_LIST.PROGRAM_NAME_LEN := $DBL ( @S^PTR '-' @PROG_NAME );
! Initialize the process name
!
!process^name ':=' "$MFUP.#ZSPI" -> @S^PTR;
@PARAM_LIST.PROCESS_NAME := $XADR ( process^name );
PARAM_LIST.PROCESS_NAME_LEN := $DBL ( @S^PTR '-' @process^name );
! Build the startup message
!
start^msg.msgid := -1; ! Startup message ID
start^msg.in ':=' "$RECEIVE "; ! IN file
start^msg.out ':=
0 & start^msg.txt FOR $LEN ( start^msg.txt ) - 1 BYTES;