File Utility Program (FUP) Management Programming Manual

FUP Commands and Responses
File Utility Program (FUP) Management Programming Manual523322-001
3-20
DUPLICATE Command
BEGIN
! Global variables used
! STRUCT .EXT buffer (ZFUP^DDL^MSG^BUFFER^DEF);
! STRUCT .EXT save^buffer (ZFUP^DDL^MSG^BUFFER^DEF);
! INT fup^file^number;
! Local Definitions
INT error, spi^error, done;
INT .dup^par^def
[0:(ZFUP^MAP^PAR^DUP^WLN - 1)]
:= ZFUP^MAP^PAR^DUP;
STRUCT .params (ZFUP^DDL^PAR^DUP^DEF);
STRUCT .fup^ssid (ZSPI^DDL^SSID^DEF);
! Check for required parameters
IF NOT $PARAM (sourcefile) OR NOT $PARAM (destfile) OR
NOT $PARAM (numberduped) THEN
RETURN an^error;numberduped := 0D; ! Set to zero
! Format buffer for DUPLICATE 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^DUPLICATE,
ZFUP^OBJ^FILE);
! Put required parameters into buffer
CALL SSPUTTKN (buffer, ZFUP^TKN^SOURCE^FILE, sourcefile);
CALL SSPUTTKN (buffer, ZFUP^TKN^DEST^FILE, destfile);
! Process optional parameters
IF $PARAM (partonly) OR $PARAM (preserve^timestamp) OR
$PARAM (preserve^owner) OR $PARAM (preserve^security) OR
$PARAM (destoption) THEN
IF spi^error THEN RETURN ss^error (spi^error);
! Save the buffer for continuation requests
save^buffer ':=' buffer FOR 1 ELEMENTS;
done := FALSE;
WHILE NOT done DO
Figure 3-2. TAL Example of a DUPLICATE Procedure (page 2 of 3)