NAME MVS::JESFTP - Perl extension for submitting JCL to MVS systems through FTP. SYNOPSIS use MVS::JESFTP; $jes = MVS::JESFTP->open($host, $logonid, $password) or die; $jes->submit($job); $aref = $jes->wait_for_results($jobname, $timeout); $jes->get_results($aref); $jes->delete_results($aref); $jes->quit; DESCRIPTION IBM mainframe MVS systems accept job input through the Job Entry Subsystem (JES). This input is in the form of 80-byte *card images* that correspond to the punch cards of ancient times. The new releases of MVS can accept this input via FTP to the MVS *internal reader* (equivalent to the physical card readers of older systems). This module uses the Net::FTP module under the hood to handle the FTP chores. METHODS $jes = MVS::JESFTP->open($host, $logonid, $password); This method creates a connection to the MVS system JES. If the connection is made, `open' returns a reference `$jes' to the JES connection; otherwise `open' returns `undefined'. `open' takes three arguments: `$host' The IP address or DNS name of the MVS system. `$logonid' A valid FTP logon ID for the host. `$password' A valid FTP password for the host. $jes->submit($job); This method submits the jobstream contained in the file `$job'. If the submission is successful, `submit' returns true; otherwise `submit' returns `undefined'. $aref = $jes->wait_for_results($jobname, $timeout); This method waits for the output of the submitted job to arrive in the JES *hold queue*. `wait_for_results' returns an array reference `$aref' to the a list of output files for the job suitable for input to `get_results'.(1) `wait_for_results' takes two arguments: `$jobname' The name of the job you presumedly submitted with the `submit' method. `$timeout' How many seconds to wait for the job output to arrive; defaults to 60. $result = $jes->get_results($aref); This method retrieves the output of the submitted job from the JES *hold queue*. `get_results' returns `undefined' if successful; otherwise it returns a reference to an array of names of the files it could not retrieve. (1) `get_results' takes one argument: `$aref' An array reference to the a list of output files from the job, such as `wait_for_results' generates. `get_results' will retreive (via FTP) each output file in turn and store them in the current subdirectory; file names will be preserved. $result = $jes->delete_results($aref); This method deletes the output of the submitted job from the JES *hold queue*. `delete_results' returns `true' if successful; otherwise it returns a reference to an array of names of the jobs it could not delete. `delete_results' takes one argument: `$aref' An array reference to the a list of output files from the job, such as `wait_for_results' generates. `delete_results' will delete each job in turn. $jes->quit; This method closes the connection to JES. It is just the Net::FTP `quit' method. (1) To use this method, your JCL *JOB* card must specify a *MSGCLASS* that directs its output to the JES *hold queue*. If you don't understand what this means, don't use this method, or you will hang your calling program. PREREQUISITES You have to have Net::FTP installed. INSTALLATION tar -xzf MVS-JESFTP-0.01.tar.gz perl Makefile.PL make # # Edit TEST.SEQ to contain your site-specific logonid, # password, account, & node in the appropriate places. # make test make install For Win32 systems, after unarchiving the the package, copy JESFTP.pm to C:\Perl\site\lib\MVS (modifying this path for your installation of Perl). AUTHOR Mike Owens mike.owens@state.nm.us Copyright (c) 2000 Mike Owens. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See either the GNU General Public License or the Artistic License for more details. SEE ALSO `perl(1)' `Net::FTP'