Below is a sample record of the resulting data generated when a prospect fills out a web based form:
Awesome, Jay
Goldcoast Road

Las Vegas
NV
12345
US
5555551212
[email protected]
Fall
Freshman
DCL command procedure for reading in and processing web form data :
$!
$! Description: Pulls information entered on Admissions web based form into SIS.
$!
$! Retrieve current academic year.
$!
$ OPEN/READ/ERROR=Open_failure current_term_file SI$DATA:CURRENT_TERM.DAT
$ OPEN/WRITE output_term_file SI$DATA:WEBTERM.DAT
$!
$ READ/ERROR=Read_failure current_term_file current_term_record
$ CLOSE current_term_file
$
$ current_acad_year = F$EXTRACT(0, 2, current_term_record)
$ WRITE output_term_file current_acad_year
$ CLOSE output_term_file
$!
$! Retrieve last social security number starting point used.
$!
$ OPEN/READ input_file SI$DATA:WEBSSN.DAT
$ READ input_file input_record
$ start_ssn = f$extract(0,9,input_record)
$ CLOSE input_file
$ DELETE SI$DATA:WEBSSN.DAT;*
$!
$! Create FOCUS program to retrieve last social security number used.
$!
$ OPEN/WRITE output_file SI$COM:WEBSSN.COM
$!
$ output_record = "$ DEFINE FOC$DIR1 SI$DATA"
$ WRITE output_file output_record
$ output_record = "$ DEFINE FOC$DIR2 SI$FEX,SI$MFD"
$ WRITE output_file output_record
$ output_record = "$ SET DEFAULT SI$FEX:"
$ WRITE output_file output_record
$ output_record = "$ FOCUS"
$ WRITE output_file output_record
$ output_record = "EXEC WEBSSN LSSN=''start_ssn' "
$ WRITE output_file output_record
$ output_record = "FIN"
$ WRITE output_file output_record
$ output_record = "$ SET DEFAULT SI$COM:"
$ WRITE output_file output_record
$ output_record = "$ EXIT"
$ WRITE output_file output_record
$!
$ CLOSE output_file
$ SUB SI$COM:WEBSSN
$ SYNCHRONIZE WEBSSN
$ COPY SI$FEX:WEBSSN.FTM; SI$DATA:WEBSSN.DAT;
$ COPY SI$FEX:WEBSSN.FTM; SI$DATA:WEBSSN.IN;
$!
$! Create FOCUS program to generate file of student information to check
$! for possible duplicates.
$!
$ DELETE SI$DATA:WEBNAME.FTM;*
$ OPEN/WRITE output_file SI$COM:WEBNAME.COM
$!
$ output_record = "$ DEFINE FOC$DIR1 SI$DATA"
$ WRITE output_file output_record
$ output_record = "$ DEFINE FOC$DIR2 SI$FEX,SI$MFD"
$ WRITE output_file output_record
$ output_record = "$ SET DEFAULT SI$FEX:"
$ WRITE output_file output_record
$ output_record = "$ FOCUS"
$ WRITE output_file output_record
$ output_record = "EXEC WEBNAME"
$ WRITE output_file output_record
$ output_record = "FIN"
$ WRITE output_file output_record
$ output_record = "$ SET DEFAULT SI$COM:"
$ WRITE output_file output_record
$ output_record = "$ EXIT"
$ WRITE output_file output_record
$!
$ CLOSE output_file
$ SUB SI$COM:WEBNAME
$ SYNCHRONIZE WEBNAME
$!
$! Create batch transactions to bring in web data into SIS.
$!
$ COPY SI$DATA:EMPTY_PLAY.DOC SI$DATA:SISWEBTRANS.DOC;
$ COPY SI$DATA:EMPTY_PLAY.DOC SI$DATA:SISWEBRPT.DOC;
$Read_File:
$!
$ IF (F$SEARCH("{Directory containing "raw" web data}:WEBFORM.DOC;*",1) .NES. "") THEN GOTO Sis_Trans

$ GOTO Batch_header
$!
$Sis_Trans:
$!
$ ASSIGN {Directory containing "raw" web data}WEBFORM.DOC INDATA
$ ASSIGN SI$DATA:WEBTRANS.DOC OUTTRANS
$ ASSIGN SI$DATA:WEBRPT.DOC PRTEXC
$ ASSIGN SI$DATA:WEBREV.DOC REVDATA
$ ASSIGN SI$DATA:WEBSSN.IN SSNDATA
$ ASSIGN SI$DATA:WEBSSN.OUT OUTSSN
$ ASSIGN SI$FEX:WEBNAME.FTM COPYAA
$ ASSIGN SI$DATA:WEBTERM.DAT INYEAR
$!
$ RUN SI$EXE:WEBFORM.EXE
$ RENAME {Directory containing "raw" web data}WEBFORM.DOC; {Directory containing "raw" web data}WEBFORM.BAK;

$ CONVERT/APPEND SI$DATA:WEBTRANS.DOC; SI$DATA:SISWEBTRANS.DOC;
$ CONVERT/APPEND SI$DATA:WEBRPT.DOC; SI$DATA:SISWEBRPT.DOC;
$ COPY SI$DATA:WEBSSN.OUT; SI$DATA:WEBSSN.IN;
$!
$ GOTO Read_File
$!
$Batch_header:
$!
$! Insert the appropriate SIS batch header.
$!
$ OPEN/READ intran_file SI$DATA:SISWEBTRANS.DOC
$ OPEN/WRITE outtemp_file SI$DATA:WEBTEMP.DOC
$ output_record = "$$$MSC502 WEB FORM ADD YAM WEBFORM"
$ WRITE outtemp_file output_record
$!
$Read_Trans:
$!
$ READ/END_OF_FILE=Exit_Proc intran_file input_record
$ WRITE outtemp_file input_record
$ GOTO Read_Trans
$!
$Exit_Proc:
$!
$ CLOSE intran_file
$ CLOSE outtemp_file
$ COPY SI$DATA:WEBTEMP.DOC SI$DATA:SISWEBTRANS.DOC;
$!
$! Clean up
$!
$ DELETE SI$COM:WEBNAME.COM;*
$ DELETE SI$COM:WEBSSN.COM;*
$ DELETE SI$DATA:WEBREV.DOC;*
$ DELETE SI$DATA:WEBRPT.DOC;*
$ DELETE SI$DATA:WEBTRANS.DOC;*
$ DELETE SI$DATA:WEBSSN.IN;*
$ DELETE SI$DATA:WEBSSN.OUT;*
$ DELETE SI$DATA:WEBTERM.DAT;*
$ DELETE SI$DATA:WEBTEMP.DOC;*
$ DELETE SI$FEX:WEBSSN.FTM;*
$!
$Exit:
$ EXIT
$!
$ Open_failure:
$ WRITE SYS$OUTPUT "Cannot open the SI$DATA:CURRENT_TERM.DAT file."
$ GOTO Exit
$!
$ Read_failure:
$ WRITE SYS$OUTPUT -
"Cannot read the required record of SI$DATA:CURRENT_TERM.DAT."
$ GOTO Exit
$ EXIT
FOCUS code for WEBSSN.FEX :
-*    Description: To determine the latest student id number used
-*                 which will be the starting point for creating the
-*                 the new students from web data.
-*
  JOIN CLEAR *
  SET MORE=OFF, ALL=PASS, ASNAMES=ON, NODATA=' '
-*
  DEFINE FILE AAFILE
  THS_REC/A3 = EDIT(STU_ID, '999$$$$$$');
  END
  TABLE FILE AAFILE
  PRINT STU_NAME 
  BY STU_ID
  IF THS_REC EQ '000'
  IF STU_ID GE '&LSSN'
  ON TABLE HOLD AS AATEMP1
  END
-*
  TABLE FILE AATEMP1
  PRINT STU_NAME BY HIGHEST STU_ID 
  ON TABLE HOLD AS AATEMP2
  END
-*
  TABLE FILE AATEMP2
  PRINT STU_NAME BY STU_ID 
  IF RECORDLIMIT EQ 1
  ON TABLE SAVE AS WEBSSN
  END
  JOIN CLEAR *
-*
-GOTO CLEANUP;
-*
-CLEANUP
  VMS IF F$SEARCH("SI$FEX:AATEMP%.FTM") .NES. "" THEN DEL SI$FEX:AATEMP%.FTM;*
  VMS IF F$SEARCH("SI$FEX:AATEMP%.MAS") .NES. "" THEN DEL SI$FEX:AATEMP%.MAS;*
-EXIT
FOCUS code for WEBNAME.FEX :
-*    Description: To create a flat file of student information used
-*                 for finding any possible duplicates when adding
-*                 new students from web data.
-*
  JOIN CLEAR *
  SET MORE=OFF, ALL=PASS, ASNAMES=ON, NODATA=' '
-*
  TABLE FILE AAFILE
  PRINT CO_OP_STUDENT STU_NAME BY STU_ID
  ON TABLE HOLD AS AATEMP1
  END
-*
  JOIN STU_ID IN AATEMP1 TO STU_ID IN ADFILE AS J1
  DEFINE FILE AATEMP1
  HOLD_NAME/A32 = UPCASE (32, STU_NAME, HOLD_NAME);
  HOLD_STREET/A32 = UPCASE (32, STREET_1, HOLD_STREET);
  HOLD_CITY/A20 = UPCASE (20, CITY, HOLD_CITY);
  END
  TABLE FILE AATEMP1
  PRINT HOLD_STREET HOLD_CITY HOLD_NAME CO_OP_STUDENT BY STU_ID 
  ON TABLE SAVE AS WEBNAME
  END
  JOIN CLEAR *
-*
-GOTO CLEANUP;
-*
-CLEANUP
  VMS IF F$SEARCH("SI$FEX:AATEMP%.FTM") .NES. "" THEN DEL SI$FEX:AATEMP%.FTM;*
  VMS IF F$SEARCH("SI$FEX:AATEMP%.MAS") .NES. "" THEN DEL SI$FEX:AATEMP%.MAS;*
-EXIT
COBOL Program :
IDENTIFICATION DIVISION.
PROGRAM-ID. 	WEBFORM.
AUTHOR.		YOU KNOW WHO.
DATE-WRITTEN.	
DATE-COMPILED.	
SECURITY.	NONE.

***********************************************************************
*                                                                     *
*  THIS PROGRAM WILL READ IN AND FORMAT THE INFORMATION SUBMITTED ON  *
*  A WEB BASED FORM AND BUILD SIS TRANSACTIONS.                       *
*                                                                     *
***********************************************************************

ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SOURCE-COMPUTER.	ALPHASERVER.
OBJECT-COMPUTER.	ALPHASERVER.

INPUT-OUTPUT SECTION.
FILE-CONTROL.
    SELECT REV-DATA-FILE
      ASSIGN TO REVDATA.
    SELECT IN-DATA-FILE
      ASSIGN TO INDATA.
    SELECT IN-SSN-FILE
      ASSIGN TO SSNDATA.
    SELECT OUT-SSN-FILE
      ASSIGN TO OUTSSN.
    SELECT OUT-TRANS-FILE
      ASSIGN TO OUTTRANS.
    SELECT EXCEPTION-REPORT-FILE
      ASSIGN TO PRTEXC.
    SELECT COPY-AA-FILE
      ASSIGN TO COPYAA.
    SELECT CUR-YEAR-FILE
      ASSIGN TO INYEAR.
*
DATA DIVISION.
FILE SECTION.

FD 	IN-DATA-FILE
	RECORD CONTAINS 80 CHARACTERS
    	DATA RECORD IS INPUT-DATA-RECORD.

01 	INPUT-DATA-RECORD			PIC X(80).

FD 	OUT-SSN-FILE
	RECORD CONTAINS 41 CHARACTERS
    	DATA RECORD IS OUT-SSN-RECORD.

01 	OUT-SSN-RECORD				PIC X(41).

FD 	IN-SSN-FILE
	RECORD CONTAINS 41 CHARACTERS
    	DATA RECORD IS IN-SSN-RECORD.

01 	IN-SSN-RECORD				PIC X(41).

FD 	REV-DATA-FILE
    	LABEL RECORDS ARE OMITTED
    	DATA RECORD IS REV-DATA-RECORD.

01 	REV-DATA-RECORD.
	03  FILLER				PIC X(80).

FD	OUT-TRANS-FILE
    	LABEL RECORDS ARE OMITTED
    	DATA RECORD IS OUT-TRANS-RECORD.

01	OUT-TRANS-RECORD.
	03  FILLER				PIC X(128).

FD	EXCEPTION-REPORT-FILE
    	LABEL RECORDS ARE OMITTED
    	DATA RECORD IS EXCEPTION-REPORT-RECORD.

01	EXCEPTION-REPORT-RECORD.
	03  FILLER				PIC X(80).

FD 	COPY-AA-FILE
	RECORD CONTAINS 94 CHARACTERS
    	DATA RECORD IS INPUT-AA-RECORD.

01 	INPUT-AA-RECORD				PIC X(94).

FD 	CUR-YEAR-FILE
	RECORD CONTAINS 2 CHARACTERS
    	DATA RECORD IS IN-CUR-YEAR-RECORD.

01 	IN-CUR-YEAR-RECORD			PIC X(02).

WORKING-STORAGE SECTION.

01	WS-HOLD-AA-RECORD.
	03  WS-HOLD-AA-SSN			PIC X(09)	VALUE
								SPACES.
	03  WS-HOLD-AA-STREET.
	    05  DUP-HOLD-AA-STREET		PIC X(20)	VALUE
								SPACES.
	    05  REST-HOLD-AA-STREET		PIC X(12)	VALUE
								SPACES.
	03  WS-HOLD-AA-CITY.
	    05  DUP-HOLD-AA-CITY		PIC X(10)	VALUE
								SPACES.
	    05  REST-HOLD-AA-CITY		PIC X(10)	VALUE
								SPACES.
	03  WS-HOLD-AA-NAME.
	    05  DUP-HOLD-AA-NAME		PIC X(20)	VALUE
								SPACES.
	    05  REST-HOLD-AA-NAME		PIC X(12)	VALUE
								SPACES.
	03  FILLER				PIC X(01)	VALUE
								SPACES.
	
01	WS-IN-SSN-RECORD.
	03  WS-IN-SSN-REC-NUM			PIC 9(09)	VALUE
								ZEROS.
	03  WS-IN-SSN-REC-NAME			PIC X(32)	VALUE
								SPACES.

01	WS-HOLD-SSN-RECORD.
	03  WS-HOLD-SSN-REC-NUM			PIC X(09)	VALUE
								ZEROS.
	03  WS-HOLD-SSN-REC-NAME		PIC X(32)	VALUE
								SPACES.

01	WS-OUT-SSN-RECORD.
	03  WS-OUT-SSN-REC-NUM			PIC X(09)	VALUE
								ZEROS.
	03  WS-OUT-SSN-REC-NAME			PIC X(32)	VALUE
								SPACES.

01 	CHECK-RECORD.
	05  CHECK-FIELD				PIC X(08)	VALUE 
							        SPACES.
	05  FILLER				PIC X(72)	VALUE
								SPACES.

01 	WEB-DATA-RECORD.
	05  WEB-DATA-FIELD			PIC X(80)	VALUE 
							        SPACES.
	05  WEB-DATA-NAME REDEFINES WEB-DATA-FIELD.
	    07  WEB-FULL-NAME			PIC X(32).
	    07  WEB-FULL-NAME-2			PIC X(28).

	05  WEB-DATA-STREET1 REDEFINES WEB-DATA-FIELD.
	    07  WEB-FULL-STREET1		PIC X(32).
	    07  WEB-FULL-STREET1-2		PIC X(28).

	05  WEB-DATA-STREET2 REDEFINES WEB-DATA-FIELD.
	    07  WEB-FULL-STREET2		PIC X(32).
	    07  WEB-FULL-STREET2-2		PIC X(28).

	05  WEB-DATA-CITY REDEFINES WEB-DATA-FIELD.
	    07  WEB-FULL-CITY			PIC X(20).
	    07  WEB-FULL-CITY-2			PIC X(40).

	05  WEB-DATA-STATE REDEFINES WEB-DATA-FIELD.
	    07  WEB-FULL-STATE			PIC X(02).

	05  WEB-DATA-ZIP REDEFINES WEB-DATA-FIELD.
	    07  WEB-FULL-ZIP			PIC X(10).
	    07  WEB-FULL-ZIP-2			PIC X(50).

	05  WEB-DATA-COUNTRY REDEFINES WEB-DATA-FIELD.
	    07  WEB-FULL-COUNTRY		PIC X(02).

	05  WEB-DATA-PHONE REDEFINES WEB-DATA-FIELD.
	    07  WEB-FULL-PHONE			PIC X(10).
	    07  WEB-FULL-PHONE-2		PIC X(50).

	05  WEB-DATA-EMAIL REDEFINES WEB-DATA-FIELD.
	    07  WEB-FULL-EMAIL.
	        09  WEB-EMAIL-1			PIC X(60).
	        09  WEB-EMAIL-2			PIC X(15).

	05  WEB-DATA-TERM-FALL REDEFINES WEB-DATA-FIELD.
	    07  WEB-FULL-TERM-FALL-LIT		PIC X(05).
	    07  WEB-FULL-TERM-FALL-YR.
	    	09  WEB-FULL-TERM-FALL-YR-P1	PIC X(02).
	    	09  WEB-FULL-TERM-FALL-YR-P2	PIC X(02).
	    07  FILLER				PIC X(11).

	05  WEB-DATA-TERM-SPRING REDEFINES WEB-DATA-FIELD.
	    07  WEB-FULL-TERM-SPRING-LIT	PIC X(07).
	    07  WEB-FULL-TERM-SPRING-YR.
	    	09  WEB-FULL-TERM-SPRING-YR-P1	PIC X(02).
	    	09  WEB-FULL-TERM-SPRING-YR-P2	PIC X(02).
	    07  FILLER				PIC X(09).

	05  WEB-DATA-TERM-SUMMER REDEFINES WEB-DATA-FIELD.
	    07  WEB-FULL-TERM-SUMMER-LIT	PIC X(07).
	    07  WEB-FULL-TERM-SUMMER-YR.
	    	09  WEB-FULL-TERM-SUMMER-YR-P1	PIC X(02).
	    	09  WEB-FULL-TERM-SUMMER-YR-P2	PIC X(02).
	    07  FILLER				PIC X(09).

	05  WEB-DATA-LVL REDEFINES WEB-DATA-FIELD.
	    07  WEB-FULL-LVL			PIC X(20).

01	TRANS-SIS-OUT				PIC X(128)	VALUE
								SPACES.

01	TRANS-02A.
	05  TRANS-02A-CODE			PIC X(03)	VALUE
								"02A".
	05  TRANS-02A-ID			PIC 9(09)	VALUE
								ZEROS.
	05  FILLER				PIC X(08)	VALUE
								SPACES.
	05  TRANS-02A-NAME			PIC X(32)	VALUE
								SPACES.
	05  FILLER				PIC X(76)	VALUE
								SPACES.

01	TRANS-03M.
	05  TRANS-03M-CODE			PIC X(03)	VALUE
								"03M".
	05  TRANS-03M-ID			PIC 9(09)	VALUE
								ZEROS.
	05  FILLER				PIC X(03)	VALUE
								SPACES.
	05  TRANS-03M-ADDR-TYPE			PIC X(01)	VALUE
								"P".
	05  FILLER				PIC X(04)	VALUE
								SPACES.
	05  TRANS-03M-STREET1			PIC X(32)	VALUE
								SPACES.
	05  TRANS-03M-STREET2			PIC X(32)	VALUE
								SPACES.
	05  TRANS-03M-CITY			PIC X(20)	VALUE
								SPACES.
	05  TRANS-03M-STATE			PIC X(02)	VALUE
								SPACES.
	05  TRANS-03M-ZIP-CODE			PIC X(09)	VALUE
								SPACES.
	05  TRANS-03M-COUNTRY			PIC X(02)	VALUE
								SPACES.
	05  TRANS-03M-PHONE-NUMBER		PIC X(10)	VALUE
								SPACES.
	05  FILLER				PIC X(01)	VALUE
								SPACES.

01	TRANS-18A.
	05  TRANS-18A-CODE			PIC X(03)	VALUE
								"18A".
	05  TRANS-18A-ID			PIC 9(09)	VALUE
								ZEROS.
	05  FILLER				PIC X(08)	VALUE
								SPACES.
	05  TRANS-18A-EMAIL			PIC X(75)	VALUE
								SPACES.
	05  FILLER				PIC X(33)	VALUE
								SPACES.

01	TRANS-34E.
	05  TRANS-34E-CODE			PIC X(03)	VALUE
								"34E".
	05  TRANS-34E-ID			PIC 9(09)	VALUE
								ZEROS.
	05  FILLER				PIC X(10)	VALUE
								SPACES.
	05  TRANS-34E-PRSPCT-SOURCE		PIC X(03)	VALUE
								"NET".
	05  FILLER				PIC X(12)	VALUE
								SPACES.
	05  TRANS-34E-PRSPCT-LVL		PIC X(01)	VALUE
								SPACES.
	05  TRANS-34E-PRE-APP-TERM.
	    07  TRANS-34E-PRE-APP-TERM-YR	PIC X(02)	VALUE
								SPACES.
	    07  TRANS-34E-PRE-APP-TERM-CODE	PIC X(01)	VALUE
								SPACES.
	05  FILLER				PIC X(87)	VALUE
								SPACES.

01 	MORE-RECORDS-FLAG			PIC X(03)	VALUE 
								"YES".
	88  MORE-RECORDS					VALUE 
								"YES".
	88  NO-MORE-RECORDS					VALUE 
                                                                "NO ".

01 	AA-CHECK-FLAG				PIC X(03)	VALUE 
								"YES".
	88  NEXT-AA-RECORD					VALUE 
								"YES".
	88  POSS-DUP-AA						VALUE 
                                                                "DUP".
	88  NO-MORE-AA						VALUE 
                                                                "END".

01 	FIND-RIGHT-REC-FLAG			PIC X(03)	VALUE 
								"NO ".
	88  RIGHT-REC						VALUE 
								"YES".
	88  NOT-RIGHT-REC					VALUE 
                                                                "NO ".
01	WS-ARRAY-LIST.
	05  WS-ARRAY-ENTRY OCCURS 200 TIMES.
	    30  WS-ARRAY-IND			PIC X(80)	VALUE 
								SPACES.
01	WS-INDEX				PIC 9(01)	VALUE
								ZEROS.

01	WS-INDEX-ZIP				PIC 9(01)	VALUE
								ZEROS.

01	WS-REPORT-LAYOUT.
	03  WS-REPORT-TYPE			PIC X(20)	VALUE
								SPACES.
	03  WS-REPORT-LIT			PIC X(60)	VALUE
								SPACES.

01	WS-HOLD-NAME				PIC X(60)	VALUE
								SPACES.
01	WS-HOLD-STREET1				PIC X(60)	VALUE
								SPACES.
01	WS-HOLD-STREET2				PIC X(60)	VALUE
								SPACES.
01	WS-HOLD-CITY				PIC X(60)	VALUE
								SPACES.
01	WS-HOLD-ZIP				PIC X(60)	VALUE
								SPACES.
01	WS-HOLD-PHONE-NUMBER			PIC X(60)	VALUE
								SPACES.
01	WS-HOLD-EMAIL				PIC X(60)	VALUE
								SPACES.
01	WS-HOLD-PRSPCT-TERM			PIC X(20)	VALUE
								SPACES.
01	WS-HOLD-PRSPCT-LVL			PIC X(20)	VALUE
								SPACES.

01	WS-DATA-EDIT-SSN			PIC X(60)	VALUE
								SPACES.
01	WS-DATA-EDIT-NAME			PIC X(60)	VALUE
								SPACES.
01	WS-DATA-EDIT-STREET1			PIC X(60)	VALUE
								SPACES.
01	WS-DATA-EDIT-STREET2			PIC X(60)	VALUE
								SPACES.
01	WS-DATA-EDIT-CITY			PIC X(60)	VALUE
								SPACES.
01	WS-DATA-EDIT-ZIP			PIC X(60)	VALUE
								SPACES.
01	WS-DATA-EDIT-PHONE-NUMBER		PIC X(60)	VALUE
								SPACES.

01	UPPER-HOLD-NAME.
	03  DUP-HOLD-NAME			PIC X(20)	VALUE
								SPACES.
	03  REST-HOLD-NAME			PIC X(12)	VALUE
								SPACES.

01	UPPER-HOLD-STREET.
	03  DUP-HOLD-STREET			PIC X(20)	VALUE
								SPACES.
	03  REST-HOLD-STREET			PIC X(12)	VALUE
								SPACES.

01	UPPER-HOLD-CITY.
	03  DUP-HOLD-CITY			PIC X(10)	VALUE
								SPACES.
	03  REST-HOLD-CITY			PIC X(10)	VALUE
								SPACES.

01	WS-ZIP-ALL-IN.
	03  WS-ZIP-DIGITS-IN OCCURS 60 TIMES.
	    05  WS-ZIP-IND-IN			PIC X(01)	VALUE
								SPACES.

01	WS-ZIP-ALL-OUT.
	03  WS-ZIP-DIGITS-OUT OCCURS 9 TIMES.
	    05  WS-ZIP-IND-OUT			PIC X(01)	VALUE
								SPACES.

01	WS-AT-END-KEY				PIC X(03)	VALUE
								SPACES.

01	CUR-YEAR-FIELD				PIC X(02)	VALUE
								SPACES.

PROCEDURE DIVISION.
0001-MAIN.

	OPEN INPUT IN-DATA-FILE.
	OPEN INPUT CUR-YEAR-FILE.
	OPEN OUTPUT REV-DATA-FILE.
	OPEN OUTPUT OUT-TRANS-FILE.

	READ CUR-YEAR-FILE INTO CUR-YEAR-FIELD
	     AT END MOVE "NO " TO MORE-RECORDS-FLAG.

	MOVE 1 TO WS-INDEX.

	MOVE "YES" TO MORE-RECORDS-FLAG.
	
	PERFORM 0100-LOAD-DATA-FILE UNTIL NO-MORE-RECORDS.

	SUBTRACT 1 FROM WS-INDEX.

	PERFORM 0101-REV-ELEMENTS 20 TIMES.

	CLOSE IN-DATA-FILE
	      REV-DATA-FILE
	      CUR-YEAR-FILE.

	OPEN INPUT REV-DATA-FILE
	     OUTPUT EXCEPTION-REPORT-FILE.

	MOVE "SIS Batch Transactions From Web Form Input" TO
	     EXCEPTION-REPORT-RECORD.
	WRITE EXCEPTION-REPORT-RECORD.
	MOVE SPACES TO EXCEPTION-REPORT-RECORD.
	WRITE EXCEPTION-REPORT-RECORD.

	MOVE "YES" TO MORE-RECORDS-FLAG.
	
	PERFORM 0102-INITIALIZE UNTIL RIGHT-REC OR NO-MORE-RECORDS.

	IF MORE-RECORDS THEN
	    MOVE SPACES TO WEB-DATA-RECORD
	    MOVE CHECK-RECORD TO WEB-DATA-RECORD 
            PERFORM 0201-GET-WEB-DATA.
	    
	CLOSE REV-DATA-FILE
	      OUT-TRANS-FILE
	      EXCEPTION-REPORT-FILE.

	STOP RUN.

0100-LOAD-DATA-FILE.

	MOVE SPACES TO INPUT-DATA-RECORD.
	READ IN-DATA-FILE INTO WS-ARRAY-IND (WS-INDEX)
	     AT END MOVE "NO " TO MORE-RECORDS-FLAG.
	ADD 1 TO WS-INDEX.
	
0101-REV-ELEMENTS.

	MOVE SPACES TO REV-DATA-RECORD.	
	MOVE WS-ARRAY-IND (WS-INDEX) TO REV-DATA-RECORD.
	WRITE REV-DATA-RECORD.
	SUBTRACT 1 FROM WS-INDEX.

0102-INITIALIZE.

	READ REV-DATA-FILE INTO CHECK-RECORD
	     AT END MOVE "NO " TO MORE-RECORDS-FLAG.

	IF (CHECK-FIELD IS EQUAL TO "Freshman") OR 
	   (CHECK-FIELD IS EQUAL TO "Graduate") OR 
	   (CHECK-FIELD IS EQUAL TO "Transfer") THEN
	     MOVE "YES" TO FIND-RIGHT-REC-FLAG.

0201-GET-WEB-DATA.

	MOVE SPACES TO TRANS-02A.
	MOVE SPACES TO TRANS-03M.
	MOVE SPACES TO TRANS-18A.
	MOVE SPACES TO TRANS-34E.

	PERFORM 0301-34E-RECORD-LVL.

	READ REV-DATA-FILE INTO WEB-DATA-RECORD
	     AT END MOVE "NO " TO MORE-RECORDS-FLAG.

	PERFORM 0302-34E-RECORD-TERM.

	READ REV-DATA-FILE INTO WEB-DATA-RECORD
	     AT END MOVE "NO " TO MORE-RECORDS-FLAG.

	PERFORM 0303-CREATE-18A-RECORD.

	READ REV-DATA-FILE INTO WEB-DATA-RECORD
	     AT END MOVE "NO " TO MORE-RECORDS-FLAG.

	PERFORM 0304-CREATE-03M-RECORD.

	READ REV-DATA-FILE INTO WEB-DATA-RECORD
	     AT END MOVE "NO " TO MORE-RECORDS-FLAG.

	PERFORM 0305-CREATE-02A-RECORD.

	PERFORM 0400-CREATE-BATCH-TRANSACTION.

0301-34E-RECORD-LVL.

	MOVE WEB-FULL-LVL TO WS-HOLD-PRSPCT-LVL.
	EVALUATE WEB-FULL-LVL
	    WHEN "Freshman            "
	        MOVE "F" TO TRANS-34E-PRSPCT-LVL
	    WHEN "Transfer            "
	        MOVE "T" TO TRANS-34E-PRSPCT-LVL
	    WHEN "Graduate            "
	        MOVE "G" TO TRANS-34E-PRSPCT-LVL
	END-EVALUATE.

0302-34E-RECORD-TERM.

        IF WEB-FULL-TERM-FALL-LIT IS EQUAL TO "Fall " THEN
            MOVE WEB-DATA-TERM-FALL TO WS-HOLD-PRSPCT-TERM
            MOVE "F" TO TRANS-34E-PRE-APP-TERM-CODE
            IF (WEB-FULL-TERM-FALL-YR-P1 IS EQUAL TO CUR-YEAR-FIELD) OR
               (WEB-FULL-TERM-FALL-YR-P1 IS EQUAL TO "  ") THEN
                MOVE CUR-YEAR-FIELD TO TRANS-34E-PRE-APP-TERM-YR
            ELSE IF (WEB-FULL-TERM-FALL-YR-P1 IS NOT EQUAL TO "20") AND
                    (WEB-FULL-TERM-FALL-YR-P1 IS NOT EQUAL TO "19") THEN
                     MOVE WEB-FULL-TERM-FALL-YR-P1 TO
                          TRANS-34E-PRE-APP-TERM-YR
            ELSE MOVE WEB-FULL-TERM-FALL-YR-P2 TO
                      TRANS-34E-PRE-APP-TERM-YR.

	IF WEB-FULL-TERM-SPRING-LIT IS EQUAL TO "Spring " THEN
	    MOVE WEB-DATA-TERM-SPRING TO WS-HOLD-PRSPCT-TERM
	    MOVE "S" TO TRANS-34E-PRE-APP-TERM-CODE
            IF (WEB-FULL-TERM-SPRING-YR-P1 IS EQUAL TO CUR-YEAR-FIELD) OR
               (WEB-FULL-TERM-SPRING-YR-P1 IS EQUAL TO "  ") THEN
                MOVE CUR-YEAR-FIELD TO TRANS-34E-PRE-APP-TERM-YR
            ELSE IF (WEB-FULL-TERM-SPRING-YR-P1 IS NOT EQUAL TO "20") AND
                    (WEB-FULL-TERM-SPRING-YR-P1 IS NOT EQUAL TO "19") THEN
                     MOVE WEB-FULL-TERM-SPRING-YR-P1 TO
                          TRANS-34E-PRE-APP-TERM-YR
            ELSE MOVE WEB-FULL-TERM-SPRING-YR-P2 TO
                      TRANS-34E-PRE-APP-TERM-YR.

	IF WEB-FULL-TERM-SUMMER-LIT IS EQUAL TO "Summer " THEN
	    MOVE WEB-DATA-TERM-SUMMER TO WS-HOLD-PRSPCT-TERM
	    MOVE "M" TO TRANS-34E-PRE-APP-TERM-CODE
            IF (WEB-FULL-TERM-SUMMER-YR-P1 IS EQUAL TO CUR-YEAR-FIELD) OR
               (WEB-FULL-TERM-SUMMER-YR-P1 IS EQUAL TO "  ") THEN
                MOVE CUR-YEAR-FIELD TO TRANS-34E-PRE-APP-TERM-YR
            ELSE IF (WEB-FULL-TERM-SUMMER-YR-P1 IS NOT EQUAL TO "20") AND
                    (WEB-FULL-TERM-SUMMER-YR-P1 IS NOT EQUAL TO "19") THEN
                     MOVE WEB-FULL-TERM-SUMMER-YR-P1 TO
                          TRANS-34E-PRE-APP-TERM-YR
            ELSE MOVE WEB-FULL-TERM-SUMMER-YR-P2 TO
                      TRANS-34E-PRE-APP-TERM-YR.

0303-CREATE-18A-RECORD.

	MOVE WEB-FULL-EMAIL TO TRANS-18A-EMAIL.
	MOVE WEB-DATA-EMAIL TO WS-HOLD-EMAIL.

0304-CREATE-03M-RECORD.

	MOVE WEB-FULL-PHONE TO TRANS-03M-PHONE-NUMBER.
	MOVE WEB-DATA-PHONE TO WS-HOLD-PHONE-NUMBER.
	IF WEB-FULL-PHONE-2 IS NOT EQUAL TO SPACES THEN
	    MOVE "Student phone number is more than 10 digits long. ***" TO
	        WS-DATA-EDIT-PHONE-NUMBER.

	READ REV-DATA-FILE INTO WEB-DATA-RECORD
	     AT END MOVE "NO " TO MORE-RECORDS-FLAG.
	MOVE WEB-FULL-COUNTRY TO TRANS-03M-COUNTRY.

	READ REV-DATA-FILE INTO WEB-DATA-RECORD
	     AT END MOVE "NO " TO MORE-RECORDS-FLAG.
	PERFORM 0601-LOOK-AT-ZIP.
	MOVE WEB-FULL-ZIP TO TRANS-03M-ZIP-CODE.
	MOVE WEB-DATA-ZIP TO WS-HOLD-ZIP.
	IF WEB-FULL-ZIP-2 IS NOT EQUAL TO SPACES THEN
	    MOVE "Student zip code is more than 10 digits long. ***" TO
	        WS-DATA-EDIT-ZIP.

	READ REV-DATA-FILE INTO WEB-DATA-RECORD
	     AT END MOVE "NO " TO MORE-RECORDS-FLAG.
	MOVE WEB-FULL-STATE TO TRANS-03M-STATE.

	READ REV-DATA-FILE INTO WEB-DATA-RECORD
	     AT END MOVE "NO " TO MORE-RECORDS-FLAG.
	MOVE WEB-FULL-CITY TO TRANS-03M-CITY.
	MOVE WEB-DATA-CITY TO WS-HOLD-CITY.
	IF WEB-FULL-CITY-2 IS NOT EQUAL TO SPACES THEN
	    MOVE "Student city is more than 20 characters long. ***" TO
	        WS-DATA-EDIT-CITY.

	READ REV-DATA-FILE INTO WEB-DATA-RECORD
	     AT END MOVE "NO " TO MORE-RECORDS-FLAG.
	MOVE WEB-FULL-STREET2 TO TRANS-03M-STREET2.
	MOVE WEB-DATA-STREET2 TO WS-HOLD-STREET2.
	IF WEB-FULL-STREET2-2 IS NOT EQUAL TO SPACES THEN
	    MOVE "Student street 2 is more than 32 characters long. ***" TO
	        WS-DATA-EDIT-STREET2.

	READ REV-DATA-FILE INTO WEB-DATA-RECORD
	     AT END MOVE "NO " TO MORE-RECORDS-FLAG.
	MOVE WEB-FULL-STREET1 TO TRANS-03M-STREET1.
	MOVE WEB-DATA-STREET1 TO WS-HOLD-STREET1.
	IF WEB-FULL-STREET1-2 IS NOT EQUAL TO SPACES THEN
	    MOVE "Student street 1 is more than 32 characters long. ***" TO
	        WS-DATA-EDIT-STREET1.

0305-CREATE-02A-RECORD.

	IF WEB-FULL-NAME IS EQUAL TO SPACES THEN
	    MOVE SPACES TO WS-REPORT-LAYOUT
	    MOVE "*** ERROR : " TO WS-REPORT-TYPE
	    MOVE "Student name is blank; transaction not built. ***" TO
	        WS-REPORT-LIT
	    MOVE WS-REPORT-LAYOUT TO EXCEPTION-REPORT-RECORD
	    WRITE EXCEPTION-REPORT-RECORD
	    CLOSE REV-DATA-FILE
	      OUT-TRANS-FILE
	      EXCEPTION-REPORT-FILE
	    STOP RUN
	ELSE
	    PERFORM 0603-DETER-NEW-SSN
	    MOVE WEB-FULL-NAME TO TRANS-02A-NAME
	    MOVE WEB-DATA-NAME TO WS-HOLD-NAME
	    IF WEB-FULL-NAME-2 IS NOT EQUAL TO SPACES THEN
	        MOVE "Student name is more than 32 characters long. ***" TO
	            WS-DATA-EDIT-NAME.

0400-CREATE-BATCH-TRANSACTION.

	MOVE SPACES TO EXCEPTION-REPORT-RECORD.
	WRITE EXCEPTION-REPORT-RECORD.

	MOVE WS-IN-SSN-REC-NUM TO TRANS-34E-ID.
	MOVE WS-IN-SSN-REC-NUM TO TRANS-18A-ID.
	MOVE WS-IN-SSN-REC-NUM TO TRANS-03M-ID.
	MOVE WS-IN-SSN-REC-NUM TO TRANS-02A-ID.

	PERFORM 0501-OUTPUT-02A-INFO.

	PERFORM 0502-OUTPUT-03M-INFO.

	PERFORM 0503-OUTPUT-18A-INFO.

	PERFORM 0504-OUTPUT-34E-INFO.

	MOVE SPACES TO EXCEPTION-REPORT-RECORD.
	WRITE EXCEPTION-REPORT-RECORD.

0501-OUTPUT-02A-INFO.

	MOVE "02A" TO TRANS-02A-CODE.
	MOVE SPACES TO TRANS-SIS-OUT.
	MOVE TRANS-02A TO TRANS-SIS-OUT.
	MOVE TRANS-SIS-OUT TO OUT-TRANS-RECORD.
	WRITE OUT-TRANS-RECORD.

	MOVE SPACES TO EXCEPTION-REPORT-RECORD.
	MOVE SPACES TO WS-REPORT-LAYOUT.
	MOVE "Student ID :" TO WS-REPORT-TYPE.
	MOVE TRANS-02A-ID TO WS-REPORT-LIT.
	MOVE WS-REPORT-LAYOUT TO EXCEPTION-REPORT-RECORD.
	WRITE EXCEPTION-REPORT-RECORD.

	MOVE WS-HOLD-NAME TO UPPER-HOLD-NAME.
	MOVE WS-HOLD-STREET1 TO UPPER-HOLD-STREET.
	MOVE WS-HOLD-CITY TO UPPER-HOLD-CITY.
	PERFORM 0604-CHECK-DUP-REC.

	IF WS-DATA-EDIT-SSN IS NOT EQUAL TO SPACES THEN
	    MOVE SPACES TO WS-REPORT-LAYOUT
	    MOVE "*** ERROR : " TO WS-REPORT-TYPE
	    MOVE WS-DATA-EDIT-SSN TO WS-REPORT-LIT
	    MOVE WS-REPORT-LAYOUT TO EXCEPTION-REPORT-RECORD
	    WRITE EXCEPTION-REPORT-RECORD.

	MOVE SPACES TO EXCEPTION-REPORT-RECORD.
	MOVE SPACES TO WS-REPORT-LAYOUT.
	MOVE "Student Name :" TO WS-REPORT-TYPE.
	MOVE WS-HOLD-NAME TO WS-REPORT-LIT.
	MOVE WS-REPORT-LAYOUT TO EXCEPTION-REPORT-RECORD.
	WRITE EXCEPTION-REPORT-RECORD.

	IF WS-DATA-EDIT-NAME IS NOT EQUAL TO SPACES THEN
	    MOVE SPACES TO WS-REPORT-LAYOUT
	    MOVE "*** ERROR : " TO WS-REPORT-TYPE
	    MOVE WS-DATA-EDIT-NAME TO WS-REPORT-LIT
	    MOVE WS-REPORT-LAYOUT TO EXCEPTION-REPORT-RECORD
	    WRITE EXCEPTION-REPORT-RECORD.

0502-OUTPUT-03M-INFO.

	MOVE "03M" TO TRANS-03M-CODE.
	MOVE "P" TO TRANS-03M-ADDR-TYPE.
	MOVE SPACES TO TRANS-SIS-OUT.
	MOVE TRANS-03M TO TRANS-SIS-OUT.
	MOVE TRANS-SIS-OUT TO OUT-TRANS-RECORD.
	WRITE OUT-TRANS-RECORD.

	MOVE SPACES TO EXCEPTION-REPORT-RECORD.
	IF TRANS-03M-STREET1 IS NOT EQUAL TO SPACES THEN
	    MOVE SPACES TO WS-REPORT-LAYOUT
	    MOVE "Street 1 :" TO WS-REPORT-TYPE
	    MOVE WS-HOLD-STREET1 TO WS-REPORT-LIT
	    MOVE WS-REPORT-LAYOUT TO EXCEPTION-REPORT-RECORD
	    WRITE EXCEPTION-REPORT-RECORD.

	IF WS-DATA-EDIT-STREET1 IS NOT EQUAL TO SPACES THEN
	    MOVE SPACES TO WS-REPORT-LAYOUT
	    MOVE "*** ERROR : " TO WS-REPORT-TYPE
	    MOVE WS-DATA-EDIT-STREET1 TO WS-REPORT-LIT
	    MOVE WS-REPORT-LAYOUT TO EXCEPTION-REPORT-RECORD
	    WRITE EXCEPTION-REPORT-RECORD.

	MOVE SPACES TO EXCEPTION-REPORT-RECORD.
	IF TRANS-03M-STREET2 IS NOT EQUAL TO SPACES THEN
	    MOVE SPACES TO WS-REPORT-LAYOUT
	    MOVE "Street 2 :" TO WS-REPORT-TYPE
	    MOVE WS-HOLD-STREET2 TO WS-REPORT-LIT
	    MOVE WS-REPORT-LAYOUT TO EXCEPTION-REPORT-RECORD
	    WRITE EXCEPTION-REPORT-RECORD.

	IF WS-DATA-EDIT-STREET2 IS NOT EQUAL TO SPACES THEN
	    MOVE SPACES TO WS-REPORT-LAYOUT
	    MOVE "*** ERROR : " TO WS-REPORT-TYPE
	    MOVE WS-DATA-EDIT-STREET2 TO WS-REPORT-LIT
	    MOVE WS-REPORT-LAYOUT TO EXCEPTION-REPORT-RECORD
	    WRITE EXCEPTION-REPORT-RECORD.

	MOVE SPACES TO EXCEPTION-REPORT-RECORD.
	IF TRANS-03M-CITY IS NOT EQUAL TO SPACES THEN
	    MOVE SPACES TO WS-REPORT-LAYOUT
	    MOVE "City :" TO WS-REPORT-TYPE
	    MOVE WS-HOLD-CITY TO WS-REPORT-LIT
	    MOVE WS-REPORT-LAYOUT TO EXCEPTION-REPORT-RECORD
	    WRITE EXCEPTION-REPORT-RECORD.

	IF WS-DATA-EDIT-CITY IS NOT EQUAL TO SPACES THEN
	    MOVE SPACES TO WS-REPORT-LAYOUT
	    MOVE "*** ERROR : " TO WS-REPORT-TYPE
	    MOVE WS-DATA-EDIT-CITY TO WS-REPORT-LIT
	    MOVE WS-REPORT-LAYOUT TO EXCEPTION-REPORT-RECORD
	    WRITE EXCEPTION-REPORT-RECORD.

	MOVE SPACES TO EXCEPTION-REPORT-RECORD.
	IF TRANS-03M-STATE IS NOT EQUAL TO SPACES THEN
	    MOVE SPACES TO WS-REPORT-LAYOUT
	    MOVE "State :" TO WS-REPORT-TYPE
	    MOVE TRANS-03M-STATE TO WS-REPORT-LIT
	    MOVE WS-REPORT-LAYOUT TO EXCEPTION-REPORT-RECORD
	    WRITE EXCEPTION-REPORT-RECORD.

	MOVE SPACES TO EXCEPTION-REPORT-RECORD.
	IF TRANS-03M-ZIP-CODE IS NOT EQUAL TO SPACES THEN
	    MOVE SPACES TO WS-REPORT-LAYOUT
	    MOVE "Zip Code :" TO WS-REPORT-TYPE
	    MOVE WS-HOLD-ZIP TO WS-REPORT-LIT
	    MOVE WS-REPORT-LAYOUT TO EXCEPTION-REPORT-RECORD
	    WRITE EXCEPTION-REPORT-RECORD.

	IF WS-DATA-EDIT-ZIP IS NOT EQUAL TO SPACES THEN
	    MOVE SPACES TO WS-REPORT-LAYOUT
	    MOVE "*** ERROR : " TO WS-REPORT-TYPE
	    MOVE WS-DATA-EDIT-ZIP TO WS-REPORT-LIT
	    MOVE WS-REPORT-LAYOUT TO EXCEPTION-REPORT-RECORD
	    WRITE EXCEPTION-REPORT-RECORD.

	MOVE SPACES TO EXCEPTION-REPORT-RECORD.
	IF TRANS-03M-COUNTRY IS NOT EQUAL TO SPACES THEN
	    MOVE SPACES TO WS-REPORT-LAYOUT
	    MOVE "Country :" TO WS-REPORT-TYPE
	    MOVE TRANS-03M-COUNTRY TO WS-REPORT-LIT
	    MOVE WS-REPORT-LAYOUT TO EXCEPTION-REPORT-RECORD
	    WRITE EXCEPTION-REPORT-RECORD.

	MOVE SPACES TO EXCEPTION-REPORT-RECORD.
	IF TRANS-03M-PHONE-NUMBER IS NOT EQUAL TO SPACES THEN
	    MOVE SPACES TO WS-REPORT-LAYOUT
	    MOVE "Phone Number :" TO WS-REPORT-TYPE
	    MOVE WS-HOLD-PHONE-NUMBER TO WS-REPORT-LIT
	    MOVE WS-REPORT-LAYOUT TO EXCEPTION-REPORT-RECORD
	    WRITE EXCEPTION-REPORT-RECORD.

	IF WS-DATA-EDIT-PHONE-NUMBER IS NOT EQUAL TO SPACES THEN
	    MOVE SPACES TO WS-REPORT-LAYOUT
	    MOVE "*** ERROR : " TO WS-REPORT-TYPE
	    MOVE WS-DATA-EDIT-PHONE-NUMBER TO WS-REPORT-LIT
	    MOVE WS-REPORT-LAYOUT TO EXCEPTION-REPORT-RECORD
	    WRITE EXCEPTION-REPORT-RECORD.

0503-OUTPUT-18A-INFO.

	MOVE "18A" TO TRANS-18A-CODE.
	MOVE SPACES TO TRANS-SIS-OUT.
	MOVE TRANS-18A TO TRANS-SIS-OUT.
	MOVE TRANS-SIS-OUT TO OUT-TRANS-RECORD.
	WRITE OUT-TRANS-RECORD.

	MOVE SPACES TO EXCEPTION-REPORT-RECORD.
	IF TRANS-18A-EMAIL IS NOT EQUAL TO SPACES THEN
	    MOVE SPACES TO WS-REPORT-LAYOUT
	    MOVE "E-mail :" TO WS-REPORT-TYPE
	    MOVE WS-HOLD-EMAIL TO WS-REPORT-LIT
	    MOVE WS-REPORT-LAYOUT TO EXCEPTION-REPORT-RECORD
	    WRITE EXCEPTION-REPORT-RECORD.

0504-OUTPUT-34E-INFO.

	MOVE "34E" TO TRANS-34E-CODE.
	MOVE "NET" TO TRANS-34E-PRSPCT-SOURCE.
	MOVE SPACES TO TRANS-SIS-OUT.
	MOVE TRANS-34E TO TRANS-SIS-OUT.
	MOVE TRANS-SIS-OUT TO OUT-TRANS-RECORD.
	WRITE OUT-TRANS-RECORD.

	MOVE SPACES TO EXCEPTION-REPORT-RECORD.
	MOVE SPACES TO WS-REPORT-LAYOUT.
	MOVE "Prospect Term :" TO WS-REPORT-TYPE.
	MOVE WS-HOLD-PRSPCT-TERM TO WS-REPORT-LIT.
	MOVE WS-REPORT-LAYOUT TO EXCEPTION-REPORT-RECORD.
	WRITE EXCEPTION-REPORT-RECORD.

	MOVE SPACES TO EXCEPTION-REPORT-RECORD.
	MOVE SPACES TO WS-REPORT-LAYOUT.
	MOVE "Prospect Level :" TO WS-REPORT-TYPE.
	MOVE WS-HOLD-PRSPCT-LVL TO WS-REPORT-LIT.
	MOVE WS-REPORT-LAYOUT TO EXCEPTION-REPORT-RECORD.
	WRITE EXCEPTION-REPORT-RECORD.

0601-LOOK-AT-ZIP.

	MOVE SPACES TO WS-ZIP-ALL-IN.
	MOVE SPACES TO WS-ZIP-ALL-OUT.
	MOVE WEB-DATA-ZIP TO WS-ZIP-ALL-IN.
	MOVE 1 TO WS-INDEX.
	MOVE 1 TO WS-INDEX-ZIP.
	PERFORM 0602-LOOK-AT-ZIP-DIGIT UNTIL WS-INDEX-ZIP IS EQUAL TO 10.
	MOVE WS-ZIP-ALL-OUT TO WEB-FULL-ZIP.

0602-LOOK-AT-ZIP-DIGIT.

	IF WS-ZIP-IND-IN (WS-INDEX) IS NOT EQUAL TO "-" THEN
	    MOVE WS-ZIP-IND-IN (WS-INDEX) TO WS-ZIP-IND-OUT (WS-INDEX-ZIP)
	    ADD 1 TO WS-INDEX-ZIP.
	ADD 1 TO WS-INDEX.

0603-DETER-NEW-SSN.

	OPEN INPUT IN-SSN-FILE.
	OPEN OUTPUT OUT-SSN-FILE.
	READ IN-SSN-FILE INTO WS-HOLD-SSN-RECORD
	    AT END MOVE "END" TO WS-AT-END-KEY.
	MOVE WS-HOLD-SSN-REC-NUM TO WS-IN-SSN-REC-NUM.
	MOVE WS-HOLD-SSN-REC-NAME TO WS-IN-SSN-REC-NAME.
	ADD 1 TO WS-IN-SSN-REC-NUM.
	MOVE WS-IN-SSN-REC-NUM TO WS-OUT-SSN-REC-NUM.
	MOVE WS-IN-SSN-REC-NAME TO WS-OUT-SSN-REC-NAME.
	MOVE WS-OUT-SSN-RECORD TO OUT-SSN-RECORD.
	WRITE OUT-SSN-RECORD.
	CLOSE IN-SSN-FILE
	      OUT-SSN-FILE.

0604-CHECK-DUP-REC.

	OPEN INPUT COPY-AA-FILE.

	READ COPY-AA-FILE INTO WS-HOLD-AA-RECORD
	    AT END MOVE "END" TO AA-CHECK-FLAG.

	PERFORM 0605-READ-AA-REC UNTIL POSS-DUP-AA OR NO-MORE-AA.

	CLOSE COPY-AA-FILE.

0605-READ-AA-REC.

	CALL "STR$UPCASE" USING BY DESCRIPTOR UPPER-HOLD-NAME
                                              UPPER-HOLD-NAME.
	CALL "STR$UPCASE" USING BY DESCRIPTOR UPPER-HOLD-STREET
                                              UPPER-HOLD-STREET.
	CALL "STR$UPCASE" USING BY DESCRIPTOR UPPER-HOLD-CITY
                                              UPPER-HOLD-CITY.

	IF (DUP-HOLD-NAME IS EQUAL TO DUP-HOLD-AA-NAME) AND
	   (DUP-HOLD-STREET IS EQUAL TO DUP-HOLD-AA-STREET) AND
	   (DUP-HOLD-CITY IS EQUAL TO DUP-HOLD-AA-CITY) THEN
	    MOVE "Possible duplicate record; please check.  ***" TO
	        WS-DATA-EDIT-SSN
	    MOVE "DUP" TO AA-CHECK-FLAG.

	READ COPY-AA-FILE INTO WS-HOLD-AA-RECORD
	    AT END MOVE "END" TO AA-CHECK-FLAG.

 

This page hosted by Get your own Free Homepage

Hosted by www.Geocities.ws

1