COBOL for the 21st Century
11th edition
John Wiley & Sons, Inc.
Nancy Stern
Hofstra University
Robert A. Stern
Nassau Community College
James P. Ley
University of Wisconsin-Stout
(Emeritus)
13-1
Chapter 13
Sequential File Processing
13-2
Chapter Objectives
To familiarize you with
• Master file processing concepts
• Sequential update procedures using
disk as a master file
• How sequential disk files may be
updated in place with REWRITE
statement
13-3
Chapter Contents
• Overview of Sequential File Processing
• Sequential File Updating - Creating a
New Master File
• Validity Checking in Update Procedures
• Update Procedures with Multiple
Transaction Records
13-4
Chapter Contents
• Balanced Line Algorithm for Sequential
File Updating
• Sequential File Updating - Rewriting
Records on Disk
• Matching Files for Checking Purposes
• Interactive Updating of Sequential File
13-5
Master Files
• Set of files used to store companies
data in areas like payroll, inventory
• Usually processed by batch processing
• Typically stored on magnetic disk
– Disks can store billions of characters
– Disk drives read, write data quickly
– Disk records can be any size
13-6
Sequential Files
• Records always read in sequence
• Read first record, process it, then read
second record, process it and so on
– Payroll records in order by employee
number may be processed in sequence for
updating or printing reports
13-7
Sequential Files
• May be sorted into any sequence using
any field in record
– To distribute checks more easily, records
may be sorted by department
• Sequential processing then used to print
checks, reading first record, then
second, etc.
13-8
Master File Procedures
Typical procedures for sequential
processing in batch mode are:
• Designing Master File
• Creating Master File
• Creating Transaction File
• Updating Master File
• Reporting from Master File
13-9
Designing a Master File
• Place key fields that uniquely identify
record at beginning of record
• If possible, choose numeric key fields
• Secondary fields after primary key fields
• Remaining fields appear in order of
importance
13-10
Designing a Master File
• Choose field size large enough to
accommodate data stored in it
• Use coded fields where possible to save
space
• Be sure all date fields include four-digit
year
13-11
Creating a Master File
• Original master file data entered
interactively, stored on disk file
• Ensure data integrity by using data
validation techniques to minimize risk or
errors
• Control listing or audit trail produced to
show data stored in new master file and
control totals
13-12
Creating a Transaction File
• Changes to master file made with
separate procedure
• Change records stored in file called
transaction file
13-13
Updating a Master File
• Updating is process of making master
file current
• Update master file by incorporating
changes from transaction records
13-14
Reporting from a Master File
• Scheduled reports prepared on regular
basis from data stored in master file
– Sales reports, customer bills, checks, etc.
– Use detail, exception and group printing
techniques
• On demand reports produced as need
arises
– May be in report form or displayed on
screen
13-15
Creating Master, Transaction Files
• Data may be read in from another file or
entered interactively from keyboard
• If data entered is valid, move it to
master or transaction record fields
• WRITE new record to file
13-16
Sequential File Updating
Two input files
• Input Master File (Old-Master)
– Current through previous updating period
– Does not contain changes since previous
update
• Input Transaction File (Trans-File)
– Contains changes since previous update to
be applied to Old-Master
13-17
Sequential File Updating
Two output files
• Output Master File (New-Master)
– Integrates data from Old-Master with all of
changes from Trans-File
– Will become Old-Master for next update
• Control Listing or Audit Trail
– Print file showing changes made to master
file, errors during processing and control
totals
13-18
Ordering of Records
• Records in Old-Master and Trans-File
must be in order by same key field
• Compare key fields to determine if given
master record is to be updated
13-19
Sequential Update Example
• For accounts receivable file, account
number may be selected as key field
• Records in both input files in sequence
by account number
– Old-Master key field is M-Acct-No
– Trans-file key field is T-Acct-No
• New-Master file also created in account
number sequence (Acct-No-Out)
13-20
Sequential Update Procedure
• One transaction record for each master
record to be updated
– Contains total amount to be added to
amount field in corresponding master
record
• Initially, record read from both OldMaster and Trans-File
• Comparison of M-Acct-No and T-AcctNo determines next step
13-21
1) T-Acct-No = M-Acct-No
• Means transaction record exists with
same account number as master record
• Perform regular update, adding TransFile amount to Old-Master amount,
storing result in New-Master field
• Write record to New-Master file
• Read next record from both Old-Master
and Trans-File
13-22
2) T-Acct-No > M-Acct-No
• Means master record exists for which
there is no corresponding transaction
record
• Write record from Old-Master to NewMaster as is, since no changes need to
be made to it
• Read next record from Old-Master
13-23
3) T-Acct-No < M-Acct-No
• Means transaction record exists for
which there is no corresponding master
record
• Two ways to process this transaction
– Create record in New-Master file for this
transaction
– May assume that T-Acct-No is invalid since
no match found in Old-Master file and treat
as error condition
13-24
Use of HIGH-VALUES
• Refers to largest value in computer's
collating sequence
• Used so all records from both OldMaster and Trans-File are processed
• May reach end of Old-Master file before
reaching end of Trans-File or vice versa
13-25
Use of HIGH-VALUES
• When last record read from Old-Master,
M-Acct-No set to HIGH-VALUES
– For all remaining transaction records
T-Acct-No < M-Acct-No
– Processed as new accounts and added to
New-Master
13-26
Use of HIGH-VALUES
• When last record read from Trans-File,
T-Acct-No set to HIGH-VALUES
– For all remaining Old-Master records
T-Acct-No > M-Acct-No
– Old-Master records added to New-Master
without changes
13-27
Use of HIGH-VALUES
• Loop to process records ends only
when both account numbers equal
HIGH-VALUES
• May be used only with fields defined as
alphanumeric
– Define account number fields with PIC of
Xs even though fields contain numbers
13-28
Validity Checking in Updating
• Code field may be added to each
transaction record to indicate whether
transaction is
– New account to be added
– Update to existing account
– Deletion of existing account
• Comparison of keys and transaction
code type enable program to detect
other update errors
13-29
Multiple Transaction Records
• To process more than one change for
each master record requires different
update procedure
• In accounts receivable file example,
transaction record may be created for
each purchase or credit by customer
• Amounts in all transaction records for
one customer need to be added to
amount in Old-Master file record
13-30
Multiple Transaction Records
• Add loop to regular update routine to
read and process multiple transaction
records for same Old-Master record
– Continue to read records from Trans-File
until T-Acct-No Not = M-Acct-No
13-31
Balanced Line Algorithm
• Technique to update master file
– With any number of transactions
– With checks for error conditions
• Viewed as most efficient and effective
sequential file updating method
• Two new fields used to control updating
– WS-Control-Key
– WS-Allocated-Switch
13-32
WS-Control-Key
• Determines type of processing
• Called control or active key field
• Set to smaller of M-Acct-No or
T-Acct-No
• Then comparison of M-Acct-No or
Acct-No to WS-Control-Key used to
control further processing
T-
13-33
WS-Allocated-Switch
• Used for error control
– To ensure records processed correctly
– To detect erroneous codes in transactions
• Set to 'YES' when record should be
written to New-Master file
• Set to 'NO' if record should not be
written to New-Master file
13-34
1) M-Acct-No < T-Acct-No
• WS-Control-Key set to M-Acct-No
• WS-Allocated-Switch set to 'YES'
because WS-Control-Key and M-AcctNo are same
• Since M-Acct-No and T-Acct-No not
equal, Old-Master has no transactions
– Old-Master record written to New-Master
record as is
13-35
2) M-Acct-No = T-Acct-No
• WS-Control-Key set to M-Acct-No
• WS-Allocated-Switch set to 'YES'
because WS-Control-Key and
M-Acct-No are same
• Transactions with T-Acct-No =
Acct-No processed
M-
13-36
2) M-Acct-No = T-Acct-No
• Processing transactions with T-Acct-No
= M-Acct-No
– Updates posted to New-Master
– Additions displayed as errors because WSAllocated-Switch set to 'YES' (master
record with this M-Acct-No already exists)
– Deletions move 'NO' to WS-AllocatedSwitch to ensure this Old-Master record is
not written to New-Master file
13-37
3) M-Acct-No > T-Acct-No
• WS-Control-Key set to T-Acct-No
• WS-Allocated-Switch set to 'NO'
because WS-Control-Key not equal to
M-Acct-No
– No master record exists for this transaction
13-38
3) M-Acct-No > T-Acct-No
• Only additions acceptable
– Reset WS-ALLOCATED-SWITCH to 'YES'
– New-Master record created from
transaction record
• Update or deletion transaction treated
as error
13-39
Updating Master Disk in Place
• May read a master disk record, make
changes directly to same record, and
rewrite it or update it in place
• Only two files needed
– Master-File
– Trans-File
OPEN as I-O
OPEN as INPUT
• Use REWRITE statement to replace
master disk record, currently in storage,
that was accessed by preceding READ
13-40
Updating Master Disk in Place
• To delete a record, establish each
record with an activity code field
– For example, Code-X = 1 if record is
active, or 2 if record is inactive
• All master records initially active (1 in
Code-X)
• Master record deactivated by changing
activity code to 2
13-41
Updating Master Disk in Place
• New records cannot be added in
sequence when file open for I-O
• Can add records at end of file by
opening file in EXTEND mode
OPEN EXTEND file-name
• Disk automatically positioned at end of
file, immediately after last record
• Sort file after records added to arrange
them in sequence
13-42
Chapter Summary
• Sequential updating by creating new
master uses three files
– Incoming master file
– Transaction file with change records
– New output master file that will incorporate
all changes
13-43
Chapter Summary
• Sequential updating technique
– All three files must be in sequence by
same key field
– Record read from each file
– Routine performed depends on whether
key fields match
13-44
Chapter Summary
• Sequential updating technique
– Transaction record may include coded field
to designate update, deletion, addition
– Use HIGH-VALUES to ensure all records in
both old master and transaction files are
processed
• Balanced line algorithm used for
sequential updates
13-45
Chapter Summary
• Can also update records in sequential
file by rewriting them in place
– Must open file as I-O
• Records can be added to end of
sequential file
– Open in EXTEND mode
13-46
Copyright © 2003 John Wiley & Sons, Inc. All rights reserved.
Reproduction or translation of this work beyond that permitted in Section
117 of the 1976 United States Copyright Act without the express written
permission of the copyright owner is unlawful. Request for further
information should be addressed to the Permissions Department, John
Wiley & Sons, Inc. The purchaser may make back-up copies for his/her
own use only and not for distribution or resale. The Publisher assumes no
responsibility for errors, omissions, or damages, caused by the use of these
programs or from the use of the information contained herein.
13-47