CCP COBOL ASSIGNMENT #7

OVERVIEW:

The purpose of this COBOL assignment is to have you:

1) Create a sequential file from "strung input."
2) Update, sequentially, this file to produce a new sequential file.
3) Produce reports, extra points for using EASYTRIEVE

NARRATIVE

A company, Joesam Corp. recently purchased the entire inventory from a large bankrupt hardware company.  One of the reasons this latter company failed (besides poor sales) was the use of antiquated data processing technology.  Although the inventory was an excellent, saleable condition, the inventory records were on 80-bite keypunch cards, each containing variable data, some invalid, on multiple items.  Joesam wants its I.S. Department to make a Master Inventory File that will contain a separate, fixed-bite record for each valid inventory item, sorted by inventory number.  The Master Inventory File can be "batch" updated sequentially from accumulated change requests gathered from online transactions.

----------------------------------------------------------------------------
>>> IMPORTANT -- YOUR MASTER FILE MUST BE A GENERATION DATA GROUP.   PREPARE FOR THIS ASSIGNMENT BY DEFINING A GDG AND A GDG MODEL.  MAKE SURE YOU HAVE ENOUGH SPACE IN EACH RECORD  <<<
----------------------------------------------------------------------------
INPUT RECORD SPECIFICATIONS:

For file CSCSMS.CSC.INVENT7D, each record is 80-bytes long and contains one or more inventory records--each record contains inventory number, quantity, and price.

Example information found on the original 80-byte keypunch cards:

14683,200,43.68*48162,4cc,1.95*9113f+,300,14.50*81162,400,10.50*&
---------------------------------------------------------------------------------------------------
For CSCSMS.CSC.INVENT7D.VS (the original record cards never contained a description - hence, this VSAM file was created)

FIELD              COLUMNS
Inventory #          1-5
Description          6-24

Example of input:
----+----1----+----2----
14657EDGER
21662LAWN BAGS

---------------------------------------------------------------------------------------------------
For CSCSMS.CSC.TRANS7D

FIELD              COLUMNS
Inventory#          1-5
Description         6-24
Quantity           25-28
Price              31-35 (assumed decimal)
Trans code         37-37

Example of input:
----+----1----+----2----+----3----+--
14368                         04450 5
22468       2

If the Trans code =
    1, add record
    2, delete record
    3, add to quantity
    4, subtract from quantity
    5, change price
    6, change description

All records are valid and some have blank fields if the transaction is used for anything but addition.

******** CSCSMS.CSC.TRANS7D.BAD contains bad transactions such as ******** additions where records already exist and deletes or changes to records ******** that are not in the original master.  +5 points for additional error report.
------------------------------------------------------------------------------------------------------
OUTPUT REQUIREMENTS.

1) A report showing sorted inventory records that include number, description, quantity, price, and inventory amount (quantity * price).  Appropriate headers, including English date, and two totals (# of records and total inventory amount)
2) An error report listing bad records extracted from original 80-byte record.
3) A report on the newly created, updated file -- same format as #1
------------------------------------------------------------------------------------------------------
HANDING IN PROGRAM 7

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 13.   (2 POINT BONUS if the completed assignment is received before midnight Sunday prior to the due date)

Hand in or email this assignment in one job stream containing:
a) Define a GDG
b) Define GDG model
c) Compile and link of a program that will produce a master file (including
   description) and error report (+2 points if program contains embedded
   sort to create output in key sequence)
d) Compile and link of a program that will update the master file (+2 if
   program contains embedded sort of transaction file)
e) Compile and link of a report program (or leave this out and use
   EASYTRIEVE for 10+ points)
f) Execution of 'c' -- produces master file and error report
g) If 'c' does not create a master file sorted order by its primary key,
   then use a JCL SORT on the master file produced by 'f'.
h) Execution of 'e', or EASYTRIEVE, to produce a report from the original
   master (first generation) -- including some totals
i) Execution of 'd' -- produces an updated master
j) Execution of 'e' or EASYTRIEVE-- produce a report from the updated
   master file.

TOTAL POINTS
 50 (ERROR REPORT, Report on old master and new master)
 10 (EASYTRIEVE)
  5 (BAD transaction file report)
  2 (temp files throughout)
  2 (before MIDNIGHT Sunday prior to due date)
  2 (if program 'c' has embedded SORT thus avoiding 'g'.
  2 (if program 'd' has embedded SORT of transaction file.
----
 73