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