File Utility Program (FUP) Management Programming Manual

FUP Commands and Responses
File Utility Program (FUP) Management Programming Manual523322-001
3-38
LOADALTFILE Command
STRUCT .params (ZFUP^DDL^PAR^LOADALTFILE^DEF);
STRUCT .fup^ssid (ZSPI^DDL^SSID^DEF);
! Check for required parameters
IF NOT $PARAM (altno) OR NOT $PARAM (prifile) THEN
RETURN an^error;
! Format buffer for LOADALTFILE command
fup^ssid ':=' [ZSPI^VAL^TANDEM,ZSPI^SSN^ZFUP,
ZFUP^VAL^VERSION];
CALL SSINIT (buffer, ZFUP^VAL^BUFLEN, fup^ssid,
ZSPI^VAL^CMDHDR, ZFUP^CMD^LOADALTFILE,
ZFUP^OBJ^FILE);
! Put required parameters into buffer
CALL SSPUTTKN (buffer, ZFUP^TKN^SOURCE^FILE, prifile);
CALL SSPUTTKN (buffer, ZFUP^TKN^ALTFILE^NUM, altno);
! Process optional parameters
IF $PARAM (maxrecs) OR $PARAM (scratch)
OR $PARAM (dslack) OR $PARAM( islack ) THEN
BEGIN
CALL SSNULL (loadaltfile^par^def, params);
IF $PARAM (maxrecs ) THEN
params.zmax^recs := maxrecs;
IF $PARAM (Scratch ) THEN
params.zscratch ':=' scratch FOR 24 BYTES;
IF $PARAM (dslack ) THEN
params.zdslack := dslack;
IF $PARAM (islack ) THEN
params.zislack := islack;
CALL SSPUT (buffer, loadaltfile^par^def, params);
END;
! Check for SPI error
CALL SSGETTKN (buffer, ZSPI^TKN^LASTERR, spi^error);
IF spi^error THEN RETURN ss^error (spi^error);
! Send request to FUP
error := send^to^spi^process (fup^file^number, buffer);
IF error THEN RETURN error;
! Interpret the response
spi^error := SSGETTKN (buffer, ZSPI^TKN^RETCODE,
error, 1 !index!);
IF spi^error THEN RETURN ss^error (spi^error);
IF error THEN RETURN error;
RETURN 0;
END; ! LOADALTFILE Procedure
Figure 3-3. TAL Example of a LOADALTFILE Procedure (page 2 of 2)