CCP COBOL ASSIGNMENT #8

OVERVIEW: the eighth COBOL programming assignment involves:

1) Using IDCAMS to create an indexed sequential file from a sequential data set CSCJEB.CSC.MASTER8D.  First sort the file on the primary key.
2) Writing a report using the indexed dataset above.
3) Updating the indexed data set using sequential CSCJEB.CSC.TRANS8D as transactions.  There are some bad transactions.  Just display the bad transactions; there is no need to make a formal error report.
4) Writing a report again--this time on the updated master.
5) Creating an alternate key and path
6) Writing a program to access certain records by alternate key, producing a report of all applicable candidates for each job opening specified in the sequential file CSCJEB.CSC.JOBS8D.

PURPOSE:  to gain experience writing a COBOL programs involving indexed sequential access methods and to increase knowledge of VSAM-JCL.

NARRATIVE: Wefindem, Inc., is a small, local employment agency that wants to improve its recruiting tools.  It has put all candidate information into a sequential file and now wants to upgrade to VSAM so that it can quickly identify appropriate candidates for job openings.
------------------------------------------------------------------------------------------------------------------
PROGRAM 8 INPUT SPECIFICATIONS:

CSCJEB.CSC.MASTER8D: (record contains 88 bytes)
              FIELD                     COLUMNS  DATA CLASS
Primary key   Social security number      1-9     numeric
              Name                       10-29    alphanumeric
              Phone number               30-36    numeric
              Salary                     37-42    numeric (integer)
alternate key job title                  43-72    alphanumeric
              Employer                   73-87    alphanumeric
              Status                     88-88    numeric (integer)
The following status codes are used:
1 = employed/looking to change jobs
2 = employed/not looking actively
3 = unemployed/active candidate
4 = unemployed/restricted candidate
------------------------------------------------------------------------------------------------------------------
for CSCJEB.CSC.TRANS8D:  (record contains 89 bytes)
Same fields, columns and data classes as CSCJEB.CSC.MASTER8D, plus column 89 carries the following transaction codes:
         A = add record, C = change record (only fields provided), D = delete record
------------------------------------------------------------------------------------------------------------------
for CSCJEB.CSC.JOBS8D:  (record contains 52 bytes)

FIELD       COLUMN  DATA CLASS
Job Title    1-30   alphanumeric
Employer    31-45   alphanumeric
Salary      46-51   numeric (integer)
Status      52-52   alphanumeric
------------------------------------------------------------------------------------------------------------------
 PROGRAM 8 OUTPUT SPECIFICATIONS

1) Design your own report of the contents of the indexed dataset
    (for steps #2 and #4 of overview) - include headers and totals
    for number of records and total number of candidates for each status.
    Include date of report.

2) For #6 of the overview, use alternate key access to do the following:
    a) produce a report with title, headers, date, appropriate totals
    b) list each job opening
    c) beneath job listings, list candidates whose job title matches the  job opening
        IF THEY ALSO MEET THE FOLLOWING CRITERIA:
        1.  they have a different current employer than the job opening employer
        2.  they have the same or a lower salary than the job opening
        3.  their status is less than or equal to the status code on the job opening
        4.  if no candidates qualify, print 'no candidates meet the requirements'
            under the opening.

3)  There may be bad fields in the sequential master file and also bad
    update situations amongst the transactions (adds that already exist, changes to
    non-existent records, etc.).

    Formal error reports are not required but the bad data should be displayed
    and highlighted in the JES output on the printout you turn in.

4)  Do this assignment as a single multi-step job.  Include program listings,
    3 reports (master before and then after updates, job openings vs candidates
    analysis), errors must be displayed, alternate index used.  Do not include
    a listing of any of the input data.

    REQUIREMENTS:  to receive full credit for this assignment,
    you must deliver a correct assignment to instructor's hands
    or instructor's email address before 6:15PM of the due date -- Session 17.

    (2 POINT BONUS if the completed assignment is received before midnight
    Sunday prior to the due date)