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", or "undefined" if NO results could be obtained. (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-1.00.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"

