Open topic with navigation

TIBCO® Managed File Transfer Platform Server for z/OS 8.1.0

# Sample Script

The sample script takes a file, and sends it to the same remote system for ten times. Each time the remote file name is concatenated with a counter to make the names different. If the request fails, a message is displayed on the z/OS console, and the script asks the operator whether to continue. After 10 transfer requests, the script terminates.

The following statements set the three numeric variables to `0`:

    SET %COUNT = 0
    SET %FAIL  = 0
    SET %GOOD  = 0   Sample

The following statements define a routine named SENDLOOP:

    :SENDLOOP
       SET %LF = "TEST.FILE"
       SET %RF = "TEST.FILE" + %COUNT
       SET %IPADDR = "127.0.0.1"
       SET %IPPORT = 46464
      CALL SENDTEXT
    *
      IF %RC = 0 THEN
         SET %GOOD = %GOOD + 1
         GOTO CONTINUE
       ELSE
         NOOP
       ENDIF
     CALLPGM TESTPGM %RC %LF %RF
     SET %FAIL = %FAIL + 1
     SET %WTORLENGTH = 1
    *

The `:SENDLOOP` statement defines a routine name, `SENDLOOP`.

The second statement sets the character variable %LF.

The statement `SET %RF = "TEST.FILE" + %COUNT` sets the character variable %RF to the contents of the character variable %LF concatenated with a numeric variable. The first time this statement is executed, the variable %RF is assigned the value "`TEST.FILE0`". The second time this routine is executed (when %COUNT = `1`), the variable %RF is assigned the value "`TEST.FILE1`".

The following two statements set the character variables %IPADDR and %IPPORT.

The `CALL SENDTEXT` statement passes control to routine SENDTEXT.

The IF statement checks the current return code (%RC). If the current return code is zero, the variable %GOOD is incremented by 1, and the execution is transferred to routine CONTINUE. If the return code is not zero, the execution is transferred to the statement following ENDIF.

The CALLPGM statement defines the script program to call the TESTPGM program which passes three parameters. When the TESTPGM program is completed, the variable %RC is updated with the return code set by TESTPGM.

The next statement increments the variable %FAIL by 1.

The last statement sets the reserved variable %WTORLENGTH to `1`. This sets the maximum length of the data that an operator can respond to a WTOR request to `1`.

The following statements define a routine named WTORMSG:

    :WTORMSG
     WTOR "ERROR SENDING FILE %RF REPLY Y=CONTINUE   X=CANCEL"
     SAY WTORLENGTH=%WTORLENGTH    WTORDATA=%WTORDATA
    *
     IF %WTORDATA = "X" THEN
          EXIT
        ENDIF
     IF %WTORDATA = "Y" THEN
         GOTO CONTINUE
        ENDIF
     GOTO WTORMSG
    *

The `:WTORMSG` statement defines a routine name, `WTORMSG`.

The WTOR function issues a z/OS WTOR request. It displays a message on the z/OS console, and waits for an operator reply. Because the %WTORLENGTH field is set to `1`, the reply can be a maximum of 1 byte long. The variable %WTORLENGTH returns the length of the data actually entered by the operator, while the variable %WTORDATA returns the data entered by the operator.

The SAY function displays the contents of the variables %WTORLENGTH and %WTORDATA.

The first IF function checks whether the operator responded to the WTOR function with the character X. If so, the script terminates because of the EXIT call. Because no parameter is specified by the EXIT call, the variable %MAXRC sets the termination return code. No ELSE function is specified because the IF function is terminated by the ENDIF function before an ELSE function is encountered.

The second IF function checks whether the operator responded to the WTOR function with the character Y. If so, the control is passed to the routine labeled CONTINUE. No ELSE function is specified because the IF function is terminated by the ENDIF function before an ELSE function is encountered.

The last function transfers control to the routine labeled WTORMSG. In this case, the routine is looping until the operator enters either Y or X in response to the WTOR function.

The following statements define a routine named CONTINUE:

    :CONTINUE
      SET %COUNT = %COUNT + 1
      IF %COUNT >= 10 THEN
         GOTO DONE
        ENDIF
    *
      WAITSECS 2
      GOTO SENDLOOP
    *

The `:CONTINUE` statement defines a routine name, `CONTINUE`.

The first SET statement increments the variable %COUNT by 1.

The IF statement checks whether the variable %COUNT is greater than or equal to 10. If the condition is true (%COUNT is greater than or equal to 10), control is passed to routine DONE. If the condition is not true, control is passed to the statement following the ENDIF statement.

The WAITSECS function causes the script to go into a wait for 2 seconds.

The GOTO statement causes execution to pass to routine SENDLOOP.

The following statements define a routine named DONE:

    :DONE
      SAY GOOD COUNT=%GOOD
      SAY FAIL COUNT=%FAIL
      EXIT
    *

The `:DONE` statement defines a routine name, `DONE`.

The first SAY statement displays a message containing the variable %GOOD.

The second SAY statement displays a message containing the variable %FAIL.

The EXIT statement causes termination of the script. Because no parameter is supplied with the exit, the variable %MAXRC supplies the script return code.

The following statements define a routine named SENDTEXT:

    :SENDTEXT     * PROCESS SEND FILE REQUEST
       PROCESS,SENDB,TRANSFER,SEND
            DSN=%LF
            REMOTE_FILE=%RF
            RUSER=*PROFILE
            TYPE=TEXT
            WAIT=YES
            EFFECT=R
            TRY=1
            IPADDR=%IPADDR
            IPPORT=%IPPORT
       WTO "RETURN CALL FROM SENDTEXT=%RC."
       RETURN

The `:SENDTEXT` statement defines a routine name, `SENDTEXT`.

The PROCESS statement and all statements up to and including IPPORT are input into the Platform Server Batch interface program. These statements cause a TEXT SEND request to be initiated to the system defined by the IPADDR parameter. The `EFFECT=R` statement indicates replacing the file if the file already exists. If the file does not exist, an error is generated. When the file transfer is completed, the variable %RC is updated with the return code set by the Batch interface program. Control is then passed to the statement following the last PROCESS parameter. The `WAIT=YES` statement indicates that control should not be passed back to the script until the transfer has been completed either successfully or unsuccessfully.

Note: Variable substitution is performed before control is passed to the Batch interface program.

The WTO function displays a message on the operator console. In this case, it displays a message with the variable %RC. The return code for the PROCESS request is substituted for the variable %RC in the WTO message.

The RETURN statement passes control to the statement following the statement that issued the CALL function to this routine.

Copyright © 2003-2021. TIBCO Software Inc. All Rights Reserved.