*S****SAG GENERATOR: WW-OBJECT-SUBP                   Version: 3.2.2    
*S****SAG TITLE: WFISR27O           
*S****SAG SYSTEM: FINANCIER         
*S****SAG OBJECT-DESC: Record       
*S****SAG PRIME-FILE: WF-ISIR-2627  
*S****SAG PRIME-KEY: WF-ISIR-KEY    
*S****SAG HOLD-FIELD: WW-HOLD       
*S****SAG OBJECT-PDA: WFISR27D      
*S****SAG RESTRICTED-PDA: WFISR27R  
*S****SAG DESCS(1): This subprogram performs I/O functions for the      
*S****SAG DESCS(2): WF-ISIR-2627 userview/file using the WF-ISIR-KEY    
*S****SAG DESCS(3): primary superdescriptor.    
*S*************************************************************************         
*S***       
*S***                              WolffPack    
*S***       
*S*** Subprogram: WFISR27O          
*S*** System    : FINANCIER         
*S*** Title     : WFISR27O          
*S*** Function  : This subprogram performs I/O functions for the        
*S***             WF-ISIR-2627 userview/file using the WF-ISIR-KEY      
*S***             primary superdescriptor.      
*S***       
*S***       
*S***      Copyright 1995 - 2026 WolffPack, Inc.  All rights reserved.  
*S***       
*S*************************************************************************         
*S**DEFINE DATA         
*S**  GLOBAL USING WWGDA
*S**  PARAMETER USING WWPDA         
*S***       
*S**  PARAMETER USING WFISR27D      
*S**  PARAMETER USING WFISR27R      
*S**  PARAMETER USING WWAOBJ        
*S***       
*S**  LOCAL 
*S***       
*S*** Miscellaneous local variables.
*S**  01 #CURRENT-FIELD(A32) /* Current field name being proccessed     
*S**  01 #DB-CALL(A1)        /* D=Delete, U=Update, S=Store 
*S**  01 #D1(P3)             /* Temporary indices for MU and PE         
*S**  01 #D2(P3)        
*S**  01 #OBJECT(A20) INIT<'Record'>
*S**  01 #OLD-REC(L)         /* Record existed before.      
*S**  01 #SAVE-REC(L)        /* True if record is non-null. 
*S**  01 #DISP-BACKOUT(L) INIT<TRUE>    /* Display message on BACKOUT TRANS         
*S**  01 #SAVE-MSG(A79)      /* Save previously defined messages        
*S***       
*S*** Views used to build object.   
*S***       
*S*** View for histogram on NEXT action.        
*S**  01 NEXT-VIEW VIEW OF WF-ISIR-2627         
*S**    02 WF-ISIR-KEY  
*S***       
*S*** Primary object entity.        
*S**  01 WF-ISIR-2627 VIEW OF WF-ISIR-2627      
*S**    02 WW-STUDENT-ID
*S**    02 WF-FAO       
*S**    02 WW-SYSTEM    
*S**      03 WW-HOLD    
*S**      03 WW-CDATE   
*S**      03 WW-MDATE   
*S**    02 WF-ISIR      
*S**      03 WF-IS-C-BATCH-YR       
*S**      03 WF-IS-FAFSA-UUID       
*S**      03 WF-IS-TRANS-UUID       
*S**      03 WF-IS-PERSON-UUID      
*S**      03 WF-IS-C-TRANS-NO       
*S**      03 WF-IS-C-DEP-MODEL      
*S**      03 WF-IS-C-APP-SRCE       
*S**      03 WF-IS-C-APP-RCPT-DATE  
*S**      03 WF-IS-C-TRAN-SRCE      
*S**      03 WF-IS-C-TRAN-TYPE      
*S**      03 WF-IS-C-TRAN-LANG      
*S**      03 WF-IS-C-TRAN-RCPT-DATE 
*S**      03 WF-IS-C-TRAN-PROC-DATE 
*S**      03 WF-IS-C-TRAN-STATUS    
*S**      03 WF-IS-C-RENEWAL-DATA-USED          
*S**      03 WF-IS-C-FPS-CORR-RSN   
*S**      03 WF-IS-C-SAI-CHG-FLAG   
*S**      03 WF-IS-C-SAI
*S**      03 WF-IS-C-SAI-PROV       
*S**      03 WF-IS-C-SAI-FORMULA    
*S**      03 WF-IS-C-SAI-COMP-TYPE  
*S**      03 WF-IS-C-MAX-PELL-IND   
*S**      03 WF-IS-C-MIN-PELL-IND   
*S**      03 WF-IS-ISIR-VERSION-FLAG
*S**      03 WF-IS-FILLER1          
*S**      03 WF-IS-S-NM-FIRST       
*S**      03 WF-IS-S-NM-MIDDLE      
*S**      03 WF-IS-S-NM-LAST        
*S**      03 WF-IS-S-NM-SUFFIX      
*S**      03 WF-IS-S-DOB
*S**      03 WF-IS-S-SSN
*S**      03 WF-IS-S-ITIN           
*S**      03 WF-IS-S-AD-PHONE       
*S**      03 WF-IS-S-EMAIL          
*S**      03 WF-IS-S-AD-STRT        
*S**      03 WF-IS-S-AD-CITY        
*S**      03 WF-IS-S-AD-STATE       
*S**      03 WF-IS-S-AD-ZIP         
*S**      03 WF-IS-S-AD-COUNTRY     
*S**      03 WF-IS-FILLER2          
*S**      03 WF-IS-S-MAR
*S**      03 WF-IS-S-YR-COL         
*S**      03 WF-IS-S-BACH-DEG       
*S**      03 WF-IS-S-TCH-CERT       
*S**      03 WF-IS-S-TEST-ACTV      
*S**      03 WF-IS-S-TEST-VET       
*S**      03 WF-IS-S-TEST-DEP       
*S**      03 WF-IS-S-TEST-PAR-DECD  
*S**      03 WF-IS-S-TEST-WARD      
*S**      03 WF-IS-S-TEST-FOST      
*S**      03 WF-IS-S-TEST-EMAN      
*S**      03 WF-IS-S-TEST-GUAR      
*S**      03 WF-IS-S-TEST-PERS-NO   
*S**      03 WF-IS-S-TEST-UYSS      
*S**      03 WF-IS-S-TEST-UGEN      
*S**      03 WF-IS-S-TEST-UHS       
*S**      03 WF-IS-S-TEST-UTRIO     
*S**      03 WF-IS-S-TEST-UFAA      
*S**      03 WF-IS-S-TEST-UOTHER-NO 
*S**      03 WF-IS-S-TEST-UN-CIRC   
*S**      03 WF-IS-S-TEST-UNSUB     
*S**      03 WF-IS-S-FAM-SIZE       
*S**      03 WF-IS-S-FAM-COL        
*S**      03 WF-IS-S-CIT
*S**      03 WF-IS-S-ALIEN          
*S**      03 WF-IS-S-RES
*S**      03 WF-IS-S-RES-DATE       
*S**      03 WF-IS-S-PARS-COLG      
*S**      03 WF-IS-S-PARS-KDUTY     
*S**      03 WF-IS-S-HS-GED         
*S**      03 WF-IS-S-HS-NAME        
*S**      03 WF-IS-S-HS-CITY        
*S**      03 WF-IS-S-HS-STATE       
*S**      03 WF-IS-S-HSE-NAME       
*S**      03 WF-IS-S-HSE-STATE      
*S**      03 WF-IS-S-MT-EITC        
*S**      03 WF-IS-S-MT-HOME        
*S**      03 WF-IS-S-MT-LUNCH       
*S**      03 WF-IS-S-MT-MEDC        
*S**      03 WF-IS-S-MT-36B         
*S**      03 WF-IS-S-MT-SNAP        
*S**      03 WF-IS-S-MT-SSI         
*S**      03 WF-IS-S-MT-TANF        
*S**      03 WF-IS-S-MT-WIC         
*S**      03 WF-IS-S-MT-NONE        
*S**      03 WF-IS-S-1040R          
*S**      03 WF-IS-S-NON-US         
*S**      03 WF-IS-S-JOINT          
*S**      03 WF-IS-S-FILE-STAT      
*S**      03 WF-IS-S-INC
*S**      03 WF-IS-S-U-INT          
*S**      03 WF-IS-S-U-DST-IRA      
*S**      03 WF-IS-S-U-ROLL-IRA     
*S**      03 WF-IS-S-U-DST-PEN      
*S**      03 WF-IS-S-U-ROLL-PEN     
*S**      03 WF-IS-S-AGI
*S**      03 WF-IS-S-FED-TAX        
*S**      03 WF-IS-S-TAX-CREDIT     
*S**      03 WF-IS-S-DED-PAY        
*S**      03 WF-IS-S-EDCR           
*S**      03 WF-IS-S-ABD-EFH        
*S**      03 WF-IS-S-SCHEDC-AMT     
*S**      03 WF-IS-S-GRNT           
*S**      03 WF-IS-S-FGN-INC-EXC    
*S**      03 WF-IS-S-U-CSUP         
*S**      03 WF-IS-S-CASH           
*S**      03 WF-IS-S-INV
*S**      03 WF-IS-S-BUS-FRM        
*S**      03 WF-IS-A-COL1           
*S**      03 WF-IS-A-COL2           
*S**      03 WF-IS-A-COL3           
*S**      03 WF-IS-A-COL4           
*S**      03 WF-IS-A-COL5           
*S**      03 WF-IS-A-COL6           
*S**      03 WF-IS-A-COL7           
*S**      03 WF-IS-A-COL8           
*S**      03 WF-IS-A-COL9           
*S**      03 WF-IS-A-COL10          
*S**      03 WF-IS-A-COL11          
*S**      03 WF-IS-A-COL12          
*S**      03 WF-IS-A-COL13          
*S**      03 WF-IS-A-COL14          
*S**      03 WF-IS-A-COL15          
*S**      03 WF-IS-A-COL16          
*S**      03 WF-IS-A-COL17          
*S**      03 WF-IS-A-COL18          
*S**      03 WF-IS-A-COL19          
*S**      03 WF-IS-A-COL20          
*S**      03 WF-IS-S-CONSENT        
*S**      03 WF-IS-S-SGN
*S**      03 WF-IS-S-SGN-DATE       
*S**      03 WF-IS-FILLER3          
*S**      03 WF-IS-SP-NM-FIRST      
*S**      03 WF-IS-SP-NM-MIDDLE     
*S**      03 WF-IS-SP-NM-LAST       
*S**      03 WF-IS-SP-SUFFIX        
*S**      03 WF-IS-SP-DOB           
*S**      03 WF-IS-SP-SSN           
*S**      03 WF-IS-SP-ITIN          
*S**      03 WF-IS-SP-PHONE         
*S**      03 WF-IS-SP-EMAIL         
*S**      03 WF-IS-SP-AD-STRT       
*S**      03 WF-IS-SP-AD-CITY       
*S**      03 WF-IS-SP-AD-STATE      
*S**      03 WF-IS-SP-AD-ZIP        
*S**      03 WF-IS-SP-AD-COUNTRY    
*S**      03 WF-IS-SP-1040R         
*S**      03 WF-IS-SP-NON-US        
*S**      03 WF-IS-SP-FILE-STAT     
*S**      03 WF-IS-SP-INC           
*S**      03 WF-IS-SP-U-INT         
*S**      03 WF-IS-SP-U-DST-IRA     
*S**      03 WF-IS-SP-U-ROLL-IRA    
*S**      03 WF-IS-SP-U-DST-PEN     
*S**      03 WF-IS-SP-U-ROLL-PEN    
*S**      03 WF-IS-SP-AGI           
*S**      03 WF-IS-SP-FED-TAX       
*S**      03 WF-IS-SP-DED-PAY       
*S**      03 WF-IS-SP-EDCR          
*S**      03 WF-IS-SP-ABD-EFH       
*S**      03 WF-IS-SP-SCHEDC-AMT    
*S**      03 WF-IS-SP-FGN-INC-EXC   
*S**      03 WF-IS-SP-CONSENT       
*S**      03 WF-IS-SP-SGN           
*S**      03 WF-IS-SP-SGN-DATE      
*S**      03 WF-IS-FILLER4          
*S**      03 WF-IS-P1-NM-FIRST      
*S**      03 WF-IS-P1-NM-MIDDLE     
*S**      03 WF-IS-P1-NM-LAST       
*S**      03 WF-IS-P1-SUFFIX        
*S**      03 WF-IS-P1-DOB           
*S**      03 WF-IS-P1-SSN           
*S**      03 WF-IS-P1-ITIN          
*S**      03 WF-IS-P1-PHONE         
*S**      03 WF-IS-P1-EMAIL         
*S**      03 WF-IS-P1-AD-STRT       
*S**      03 WF-IS-P1-AD-CITY       
*S**      03 WF-IS-P1-AD-STATE      
*S**      03 WF-IS-P1-AD-ZIP        
*S**      03 WF-IS-P1-AD-COUNTRY    
*S**      03 WF-IS-P1-MAR           
*S**      03 WF-IS-P1-RES           
*S**      03 WF-IS-P1-RES-DATE      
*S**      03 WF-IS-P1-FAM-SIZE      
*S**      03 WF-IS-P1-FAM-COL       
*S**      03 WF-IS-P1-MT-EITC       
*S**      03 WF-IS-P1-MT-HOME       
*S**      03 WF-IS-P1-MT-LUNCH      
*S**      03 WF-IS-P1-MT-MEDC       
*S**      03 WF-IS-P1-MT-36B        
*S**      03 WF-IS-P1-MT-SNAP       
*S**      03 WF-IS-P1-MT-SSI        
*S**      03 WF-IS-P1-MT-TANF       
*S**      03 WF-IS-P1-MT-WIC        
*S**      03 WF-IS-P1-MT-NONE       
*S**      03 WF-IS-P1-1040R         
*S**      03 WF-IS-P1-NON-US        
*S**      03 WF-IS-P1-JOINT         
*S**      03 WF-IS-P1-FILE-STAT     
*S**      03 WF-IS-P1-INC           
*S**      03 WF-IS-P1-U-INT         
*S**      03 WF-IS-P1-U-DST-IRA     
*S**      03 WF-IS-P1-U-ROLL-IRA    
*S**      03 WF-IS-P1-U-DST-PEN     
*S**      03 WF-IS-P1-U-ROLL-PEN    
*S**      03 WF-IS-P1-AGI           
*S**      03 WF-IS-P1-FED-TAX       
*S**      03 WF-IS-P1-TAX-CREDIT    
*S**      03 WF-IS-P1-DED-PAY       
*S**      03 WF-IS-P1-EDCR          
*S**      03 WF-IS-P1-ABD-EFH       
*S**      03 WF-IS-P1-SCHEDC-AMT    
*S**      03 WF-IS-P1-GRANT         
*S**      03 WF-IS-P1-FGN-INC-EXC   
*S**      03 WF-IS-P1-U-CSUP        
*S**      03 WF-IS-P1-CASH          
*S**      03 WF-IS-P1-INV           
*S**      03 WF-IS-P1-BUS-FRM       
*S**      03 WF-IS-P1-CONSENT       
*S**      03 WF-IS-P1-SGN           
*S**      03 WF-IS-P1-SGN-DATE      
*S**      03 WF-IS-FILLER5          
*S**      03 WF-IS-P2-NM-FIRST      
*S**      03 WF-IS-P2-NM-MIDDLE     
*S**      03 WF-IS-P2-NM-LAST       
*S**      03 WF-IS-P2-SUFFIX        
*S**      03 WF-IS-P2-DOB           
*S**      03 WF-IS-P2-SSN           
*S**      03 WF-IS-P2-ITIN          
*S**      03 WF-IS-P2-PHONE         
*S**      03 WF-IS-P2-EMAIL         
*S**      03 WF-IS-P2-AD-STRT       
*S**      03 WF-IS-P2-AD-CITY       
*S**      03 WF-IS-P2-AD-STATE      
*S**      03 WF-IS-P2-AD-ZIP        
*S**      03 WF-IS-P2-AD-COUNTRY    
*S**      03 WF-IS-P2-1040R         
*S**      03 WF-IS-P2-NON-US        
*S**      03 WF-IS-P2-FILE-STAT     
*S**      03 WF-IS-P2-INC           
*S**      03 WF-IS-P2-U-INT         
*S**      03 WF-IS-P2-U-DST-IRA     
*S**      03 WF-IS-P2-U-ROLL-IRA    
*S**      03 WF-IS-P2-U-DST-PEN     
*S**      03 WF-IS-P2-U-ROLL-PEN    
*S**      03 WF-IS-P2-AGI           
*S**      03 WF-IS-P2-FED-TAX       
*S**      03 WF-IS-P2-DED-PAY       
*S**      03 WF-IS-P2-EDCR          
*S**      03 WF-IS-P2-ABD-EFH       
*S**      03 WF-IS-P2-SCHEDC-AMT    
*S**      03 WF-IS-P2-FGN-INC-EXC   
*S**      03 WF-IS-P2-CONSENT       
*S**      03 WF-IS-P2-SGN           
*S**      03 WF-IS-P2-SGN-DATE      
*S**      03 WF-IS-FILLER6          
*S**      03 WF-IS-A-PREP-FIRST     
*S**      03 WF-IS-A-PREP-LAST      
*S**      03 WF-IS-A-PREP-SSN       
*S**      03 WF-IS-A-PREP-EIN       
*S**      03 WF-IS-A-PREP-AFFL      
*S**      03 WF-IS-A-PREP-STRT      
*S**      03 WF-IS-A-PREP-CITY      
*S**      03 WF-IS-A-PREP-STATE     
*S**      03 WF-IS-A-PREP-ZIP       
*S**      03 WF-IS-A-PREP-SGN       
*S**      03 WF-IS-A-PREP-SGN-DATE  
*S**      03 WF-IS-FILLER7          
*S**      03 WF-IS-S-AFFIRM         
*S**      03 WF-IS-SP-AFFIRM        
*S**      03 WF-IS-P1-AFFIRM        
*S**      03 WF-IS-P2-AFFIRM        
*S**      03 WF-IS-S-CNST-DATE      
*S**      03 WF-IS-SP-CNST-DATE     
*S**      03 WF-IS-P1-CNST-DATE     
*S**      03 WF-IS-P2-CNST-DATE     
*S**      03 WF-IS-S-TRANU-MATCH    
*S**      03 WF-IS-SP-TRANU-MATCH   
*S**      03 WF-IS-P1-TRANU-MATCH   
*S**      03 WF-IS-P2-TRANU-MATCH   
*S**      03 WF-IS-C-COR-TRAN       
*S**      03 WF-IS-F-PROF-JUDG      
*S**      03 WF-IS-F-DEP-OVR        
*S**      03 WF-IS-F-COLLEGE        
*S**      03 WF-IS-F-SIGN           
*S**      03 WF-IS-F-IASG           
*S**      03 WF-IS-C-CHILD-HERO     
*S**      03 WF-IS-C-ETI-DEST       
*S**      03 WF-IS-S-SGN-SRC        
*S**      03 WF-IS-SP-SGN-SRC       
*S**      03 WF-IS-P1-SGN-SRC       
*S**      03 WF-IS-P2-SGN-SRC       
*S**      03 WF-IS-SPEC-HAND        
*S**      03 WF-IS-C-ADDR-CHG       
*S**      03 WF-IS-C-PUSHED         
*S**      03 WF-IS-C-REJ-CHG        
*S**      03 WF-IS-C-VER-TRACK      
*S**      03 WF-IS-C-VER
*S**      03 WF-IS-INCARCERATED     
*S**      03 WF-IS-C-NSLDS-TRAN     
*S**      03 WF-IS-C-VER-NSL        
*S**      03 WF-IS-C-MATCH-HS       
*S**      03 WF-IS-S-FWS
*S**      03 WF-IS-SP-FWS           
*S**      03 WF-IS-P1-FWS           
*S**      03 WF-IS-P2-FWS           
*S**      03 WF-IS-P1-FC1-DNW       
*S**      03 WF-IS-P1-FC1-NW        
*S**      03 WF-IS-P1-FC1-APA       
*S**      03 WF-IS-P1-FC1-CA        
*S**      03 WF-IS-S-FC1-NW         
*S**      03 WF-IS-S-FC1-APA        
*S**      03 WF-IS-S-FC1-CA         
*S**      03 WF-IS-CAS-FAM-SIZE     
*S**      03 WF-IS-CAP-FAM-SIZE     
*S**      03 WF-IS-CF-S-NM-FIRST    
*S**      03 WF-IS-CF-S-NM-MIDDLE   
*S**      03 WF-IS-CF-S-NM-LAST     
*S**      03 WF-IS-CF-S-SUFFIX      
*S**      03 WF-IS-CF-S-DOB         
*S**      03 WF-IS-CF-S-SSN         
*S**      03 WF-IS-CF-S-ITIN        
*S**      03 WF-IS-CF-S-PHONE       
*S**      03 WF-IS-CF-S-EMAIL       
*S**      03 WF-IS-CF-S-AD-STRT     
*S**      03 WF-IS-CF-S-AD-CITY     
*S**      03 WF-IS-CF-S-AD-STATE    
*S**      03 WF-IS-CF-S-AD-ZIP      
*S**      03 WF-IS-CF-S-AD-COUNTRY  
*S**      03 WF-IS-CF-S-MAR         
*S**      03 WF-IS-CF-S-YR-COL      
*S**      03 WF-IS-CF-S-BACH-DEG    
*S**      03 WF-IS-CF-S-TCH-CERT    
*S**      03 WF-IS-CF-S-ACTV        
*S**      03 WF-IS-CF-S-VET         
*S**      03 WF-IS-CF-S-DEP         
*S**      03 WF-IS-CF-S-PAR-DECD    
*S**      03 WF-IS-CF-S-WARD        
*S**      03 WF-IS-CF-S-FOST        
*S**      03 WF-IS-CF-S-EMAN        
*S**      03 WF-IS-CF-S-GUAR        
*S**      03 WF-IS-CF-S-PERS-NO     
*S**      03 WF-IS-CF-S-UYSS        
*S**      03 WF-IS-CF-S-UGEN        
*S**      03 WF-IS-CF-S-UHS         
*S**      03 WF-IS-CF-S-UTRIO       
*S**      03 WF-IS-CF-S-UFAA        
*S**      03 WF-IS-CF-S-UOTHER-NO   
*S**      03 WF-IS-CF-S-UN-CIRC     
*S**      03 WF-IS-CF-S-UNSUB       
*S**      03 WF-IS-CF-S-FAM-SIZE    
*S**      03 WF-IS-CF-S-FAM-COL     
*S**      03 WF-IS-CF-S-CIT         
*S**      03 WF-IS-CF-S-ALIEN       
*S**      03 WF-IS-CF-S-RES         
*S**      03 WF-IS-CF-S-RES-DATE    
*S**      03 WF-IS-CF-S-PARS-COLG   
*S**      03 WF-IS-CF-S-PARS-KDUTY  
*S**      03 WF-IS-CF-S-GED         
*S**      03 WF-IS-CF-S-HS-NAME     
*S**      03 WF-IS-CF-S-HS-CITY     
*S**      03 WF-IS-CF-S-HS-STATE    
*S**      03 WF-IS-CF-S-HSE-NAME    
*S**      03 WF-IS-CF-S-HSE-STATE   
*S**      03 WF-IS-CF-S-EITC        
*S**      03 WF-IS-CF-S-HOME        
*S**      03 WF-IS-CF-S-LUNCH       
*S**      03 WF-IS-CF-S-MEDC        
*S**      03 WF-IS-CF-S-36B         
*S**      03 WF-IS-CF-S-SNAP        
*S**      03 WF-IS-CF-S-SSI         
*S**      03 WF-IS-CF-S-TANF        
*S**      03 WF-IS-CF-S-WIC         
*S**      03 WF-IS-CF-S-NONE        
*S**      03 WF-IS-CF-S-1040R       
*S**      03 WF-IS-CF-S-NON-US      
*S**      03 WF-IS-CF-S-JOINT       
*S**      03 WF-IS-CF-S-FILE-STAT   
*S**      03 WF-IS-CF-S-INC         
*S**      03 WF-IS-CF-S-U-INT       
*S**      03 WF-IS-CF-S-U-DST-IRA   
*S**      03 WF-IS-CF-S-U-ROLL-IRA  
*S**      03 WF-IS-CF-S-U-DST-PEN   
*S**      03 WF-IS-CF-S-U-ROLL-PEN  
*S**      03 WF-IS-CF-S-AGI         
*S**      03 WF-IS-CF-S-FED-TAX     
*S**      03 WF-IS-CF-S-TAX-CRD     
*S**      03 WF-IS-CF-S-DED-PAY     
*S**      03 WF-IS-CF-S-EDCR        
*S**      03 WF-IS-CF-S-ABD-EFH     
*S**      03 WF-IS-CF-S-SCHEDC-AMT  
*S**      03 WF-IS-CF-S-GRNT        
*S**      03 WF-IS-CF-S-FGN-INC-EXC 
*S**      03 WF-IS-CF-S-CSUP        
*S**      03 WF-IS-CF-S-BUS-FRM     
*S**      03 WF-IS-CF-S-INV         
*S**      03 WF-IS-CF-S-CASH        
*S**      03 WF-IS-CF-S-COL1        
*S**      03 WF-IS-CF-S-COL2        
*S**      03 WF-IS-CF-S-COL3        
*S**      03 WF-IS-CF-S-COL4        
*S**      03 WF-IS-CF-S-COL5        
*S**      03 WF-IS-CF-S-COL6        
*S**      03 WF-IS-CF-S-COL7        
*S**      03 WF-IS-CF-S-COL8        
*S**      03 WF-IS-CF-S-COL9        
*S**      03 WF-IS-CF-S-COL10       
*S**      03 WF-IS-CF-S-COL11       
*S**      03 WF-IS-CF-S-COL12       
*S**      03 WF-IS-CF-S-COL13       
*S**      03 WF-IS-CF-S-COL14       
*S**      03 WF-IS-CF-S-COL15       
*S**      03 WF-IS-CF-S-COL16       
*S**      03 WF-IS-CF-S-COL17       
*S**      03 WF-IS-CF-S-COL18       
*S**      03 WF-IS-CF-S-COL19       
*S**      03 WF-IS-CF-S-COL20       
*S**      03 WF-IS-CF-S-CONSENT     
*S**      03 WF-IS-CF-S-SGN         
*S**      03 WF-IS-CF-S-SGN-DATE    
*S**      03 WF-IS-CF-SP-NM-FIRST   
*S**      03 WF-IS-CF-SP-NM-MIDDLE  
*S**      03 WF-IS-CF-SP-NM-LAST    
*S**      03 WF-IS-CF-SP-SUFFIX     
*S**      03 WF-IS-CF-SP-DOB        
*S**      03 WF-IS-CF-SP-SSN        
*S**      03 WF-IS-CF-SP-ITIN       
*S**      03 WF-IS-CF-SP-PHONE      
*S**      03 WF-IS-CF-SP-EMAIL      
*S**      03 WF-IS-CF-SP-AD-STRT    
*S**      03 WF-IS-CF-SP-AD-CITY    
*S**      03 WF-IS-CF-SP-AD-STATE   
*S**      03 WF-IS-CF-SP-AD-ZIP     
*S**      03 WF-IS-CF-SP-COUNTRY    
*S**      03 WF-IS-CF-SP-1040R      
*S**      03 WF-IS-CF-SP-NON-US     
*S**      03 WF-IS-CF-SP-FILE-STAT  
*S**      03 WF-IS-CF-SP-INC        
*S**      03 WF-IS-CF-SP-U-INT      
*S**      03 WF-IS-CF-SP-U-DST-IRA  
*S**      03 WF-IS-CF-SP-U-ROLL-IRA 
*S**      03 WF-IS-CF-SP-U-DST-PEN  
*S**      03 WF-IS-CF-SP-U-ROLL-PEN 
*S**      03 WF-IS-CF-SP-AGI        
*S**      03 WF-IS-CF-SP-FED-TAX    
*S**      03 WF-IS-CF-SP-DED-PAY    
*S**      03 WF-IS-CF-SP-EDCR       
*S**      03 WF-IS-CF-SP-ABD-EFH    
*S**      03 WF-IS-CF-SP-SCHEDC-AMT 
*S**      03 WF-IS-CF-SP-FGN-INC-EXC
*S**      03 WF-IS-CF-SP-CONSENT    
*S**      03 WF-IS-CF-SP-SGN        
*S**      03 WF-IS-CF-SP-SGN-DATE   
*S**      03 WF-IS-CF-P1-NM-FIRST   
*S**      03 WF-IS-CF-P1-NM-MIDDLE  
*S**      03 WF-IS-CF-P1-NM-LAST    
*S**      03 WF-IS-CF-P1-SUFFIX     
*S**      03 WF-IS-CF-P1-DOB        
*S**      03 WF-IS-CF-P1-SSN        
*S**      03 WF-IS-CF-P1-ITIN       
*S**      03 WF-IS-CF-P1-PHONE      
*S**      03 WF-IS-CF-P1-EMAIL      
*S**      03 WF-IS-CF-P1-AD-STRT    
*S**      03 WF-IS-CF-P1-AD-CITY    
*S**      03 WF-IS-CF-P1-AD-STATE   
*S**      03 WF-IS-CF-P1-AD-ZIP     
*S**      03 WF-IS-CF-P1-COUNTRY    
*S**      03 WF-IS-CF-P1-MAR        
*S**      03 WF-IS-CF-P1-RES        
*S**      03 WF-IS-CF-P1-RES-DATE   
*S**      03 WF-IS-CF-P1-FAM-SIZE   
*S**      03 WF-IS-CF-P1-FAM-COL    
*S**      03 WF-IS-CF-P1-EITC       
*S**      03 WF-IS-CF-P1-HOME       
*S**      03 WF-IS-CF-P1-LUNCH      
*S**      03 WF-IS-CF-P1-MEDC       
*S**      03 WF-IS-CF-P1-36B        
*S**      03 WF-IS-CF-P1-SNAP       
*S**      03 WF-IS-CF-P1-SSI        
*S**      03 WF-IS-CF-P1-TANF       
*S**      03 WF-IS-CF-P1-WIC        
*S**      03 WF-IS-CF-P1-NONE       
*S**      03 WF-IS-CF-P1-1040R      
*S**      03 WF-IS-CF-P1-NON-US     
*S**      03 WF-IS-CF-P1-JOINT      
*S**      03 WF-IS-CF-P1-FILE-STAT  
*S**      03 WF-IS-CF-P1-INC        
*S**      03 WF-IS-CF-P1-U-INT      
*S**      03 WF-IS-CF-P1-U-DST-IRA  
*S**      03 WF-IS-CF-P1-U-ROLL-IRA 
*S**      03 WF-IS-CF-P1-U-DST-PEN  
*S**      03 WF-IS-CF-P1-U-ROLL-PEN 
*S**      03 WF-IS-CF-P1-AGI        
*S**      03 WF-IS-CF-P1-FED-TAX    
*S**      03 WF-IS-CF-P1-TAX-CRD    
*S**      03 WF-IS-CF-P1-DED-PAY    
*S**      03 WF-IS-CF-P1-EDCR       
*S**      03 WF-IS-CF-P1-ABD-EFH    
*S**      03 WF-IS-CF-P1-SCHEDC-AMT 
*S**      03 WF-IS-CF-P1-GRNT       
*S**      03 WF-IS-CF-P1-FGN-INC-EXC
*S**      03 WF-IS-CF-P1-CSUP       
*S**      03 WF-IS-CF-P1-INV        
*S**      03 WF-IS-CF-P1-CASH       
*S**      03 WF-IS-CF-P1-BUS-FRM    
*S**      03 WF-IS-CF-P1-CONSENT    
*S**      03 WF-IS-CF-P1-SGN        
*S**      03 WF-IS-CF-P1-SGN-DATE   
*S**      03 WF-IS-CF-P2-NM-FIRST   
*S**      03 WF-IS-CF-P2-NM-MIDDLE  
*S**      03 WF-IS-CF-P2-NM-LAST    
*S**      03 WF-IS-CF-P2-SUFFIX     
*S**      03 WF-IS-CF-P2-DOB        
*S**      03 WF-IS-CF-P2-SSN        
*S**      03 WF-IS-CF-P2-ITIN       
*S**      03 WF-IS-CF-P2-PHONE      
*S**      03 WF-IS-CF-P2-EMAIL      
*S**      03 WF-IS-CF-P2-AD-STRT    
*S**      03 WF-IS-CF-P2-AD-CITY    
*S**      03 WF-IS-CF-P2-AD-STATE   
*S**      03 WF-IS-CF-P2-AD-ZIP     
*S**      03 WF-IS-CF-P2-AD-COUNTRY 
*S**      03 WF-IS-CF-P2-1040R      
*S**      03 WF-IS-CF-P2-NON-US     
*S**      03 WF-IS-CF-P2-FILE-STAT  
*S**      03 WF-IS-CF-P2-INC        
*S**      03 WF-IS-CF-P2-U-INT      
*S**      03 WF-IS-CF-P2-U-DST-IRA  
*S**      03 WF-IS-CF-P2-U-ROLL-IRA 
*S**      03 WF-IS-CF-P2-U-DST-PEN  
*S**      03 WF-IS-CF-P2-U-ROLL-PEN 
*S**      03 WF-IS-CF-P2-AGI        
*S**      03 WF-IS-CF-P2-FED-TAX    
*S**      03 WF-IS-CF-P2-DED-PAY    
*S**      03 WF-IS-CF-P2-EDCR       
*S**      03 WF-IS-CF-P2-ABD-EFH    
*S**      03 WF-IS-CF-P2-SCHEDC-AMT 
*S**      03 WF-IS-CF-P2-FGN-INC-EXC
*S**      03 WF-IS-CF-P2-CONSENT    
*S**      03 WF-IS-CF-P2-SGN        
*S**      03 WF-IS-CF-P2-SGN-DATE   
*S**      03 WF-IS-C-MATCH-DHS      
*S**      03 WF-IS-C-MATCH-DHS2     
*S**      03 WF-IS-C-VER-DHS        
*S**      03 WF-IS-C-MATCH-NSL      
*S**      03 WF-IS-C-NSLDS-PS1      
*S**      03 WF-IS-C-NSLDS-PS2      
*S**      03 WF-IS-C-NSLDS-PS3      
*S**      03 WF-IS-C-MATCH-CIT      
*S**      03 WF-IS-C-S-MATCH-SSN    
*S**      03 WF-IS-C-SP-MATCH-SSN   
*S**      03 WF-IS-C-P1-MATCH-SSN   
*S**      03 WF-IS-C-P2-MATCH-SSN   
*S**      03 WF-IS-C-MATCH-VA       
*S**      03 WF-IS-C-COM01          
*S**      03 WF-IS-C-COM02          
*S**      03 WF-IS-C-COM03          
*S**      03 WF-IS-C-COM04          
*S**      03 WF-IS-C-COM05          
*S**      03 WF-IS-C-COM06          
*S**      03 WF-IS-C-COM07          
*S**      03 WF-IS-C-COM08          
*S**      03 WF-IS-C-COM09          
*S**      03 WF-IS-C-COM10          
*S**      03 WF-IS-C-COM11          
*S**      03 WF-IS-C-COM12          
*S**      03 WF-IS-C-COM13          
*S**      03 WF-IS-C-COM14          
*S**      03 WF-IS-C-COM15          
*S**      03 WF-IS-C-COM16          
*S**      03 WF-IS-C-COM17          
*S**      03 WF-IS-C-COM18          
*S**      03 WF-IS-C-COM19          
*S**      03 WF-IS-C-COM20          
*S**      03 WF-IS-C-DRUG-HOLD      
*S**      03 WF-IS-C-GRAD           
*S**      03 WF-IS-C-PELL-ELIG      
*S**      03 WF-IS-C-REPROC-RSN     
*S**      03 WF-IS-C-CFLAG          
*S**      03 WF-IS-C-CFLAG-CHG      
*S**      03 WF-IS-C-ELEC-INST      
*S**      03 WF-IS-C-REJ-RSNS       
*S**      03 WF-IS-C-ETI
*S**      03 WF-IS-C-SSN-NM-CHG     
*S**      03 WF-IS-C-VER-HS         
*S**      03 WF-IS-C-VER-CHG        
*S**      03 WF-IS-C-USER-DATA      
*S**      03 WF-IS-WORKF-PGM        
*S**      03 WF-IS-FILLER8A         
*S**      03 WF-IS-FILLER8B         
*S**      03 WF-IS-L-NSLDS1         
*S**      03 WF-IS-L-NSLDS2         
*S**      03 WF-IS-L-NSLDS3         
*S**      03 WF-IS-L-NSLDS4         
*S**      03 WF-IS-L-NSLDS5         
*S**      03 WF-IS-L-NSLDS6         
*S**      03 WF-IS-L-NSLDS7         
*S**      03 WF-IS-L-NSLDS8         
*S**      03 WF-IS-L-NSLDS9         
*S**      03 WF-IS-L-NSLDS10        
*S**      03 WF-IS-L-NSLDS11        
*S**      03 WF-IS-FILLER10         
*S**      03 WF-IS-FILLER11         
*S**      03 WF-IS-FTI-LABEL-START  
*S**      03 WF-IS-FTI-S-RET-YEAR   
*S**      03 WF-IS-FTI-S-FILE-STAT  
*S**      03 WF-IS-FTI-S-AGI        
*S**      03 WF-IS-FTI-S-EXE        
*S**      03 WF-IS-FTI-S-DEPS       
*S**      03 WF-IS-FTI-S-TOT-INC    
*S**      03 WF-IS-FTI-S-TOT-FED-TAX
*S**      03 WF-IS-FTI-S-EDCR       
*S**      03 WF-IS-FTI-S-DST-IRA    
*S**      03 WF-IS-FTI-S-DED-PAY    
*S**      03 WF-IS-FTI-S-U-INT      
*S**      03 WF-IS-FTI-S-DST-PEN    
*S**      03 WF-IS-FTI-S-SCHEDC-NET 
*S**      03 WF-IS-FTI-S-SCHEDA     
*S**      03 WF-IS-FTI-S-SCHEDB     
*S**      03 WF-IS-FTI-S-SCHEDD     
*S**      03 WF-IS-FTI-S-SCHEDE     
*S**      03 WF-IS-FTI-S-SCHEDF     
*S**      03 WF-IS-FTI-S-SCHEDH     
*S**      03 WF-IS-FTI-S-IRS-RESP   
*S**      03 WF-IS-FTI-SP-RET-YEAR  
*S**      03 WF-IS-FTI-SP-FILE-STAT 
*S**      03 WF-IS-FTI-SP-AGI       
*S**      03 WF-IS-FTI-SP-EXE       
*S**      03 WF-IS-FTI-SP-DEPS      
*S**      03 WF-IS-FTI-SP-TOT-INC   
*S**      03 WF-IS-FTI-SP-TOT-FED-TAX           
*S**      03 WF-IS-FTI-SP-EDCR      
*S**      03 WF-IS-FTI-SP-DST-IRA   
*S**      03 WF-IS-FTI-SP-DED-PAY   
*S**      03 WF-IS-FTI-SP-U-INT     
*S**      03 WF-IS-FTI-SP-DST-PEN   
*S**      03 WF-IS-FTI-SP-SCHEDC-NET
*S**      03 WF-IS-FTI-SP-SCHEDA    
*S**      03 WF-IS-FTI-SP-SCHEDB    
*S**      03 WF-IS-FTI-SP-SCHEDD    
*S**      03 WF-IS-FTI-SP-SCHEDE    
*S**      03 WF-IS-FTI-SP-SCHEDF    
*S**      03 WF-IS-FTI-SP-SCHEDH    
*S**      03 WF-IS-FTI-SP-IRS-RESP  
*S**      03 WF-IS-FTI-P1-RET-YEAR  
*S**      03 WF-IS-FTI-P1-FILE-STAT 
*S**      03 WF-IS-FTI-P1-AGI       
*S**      03 WF-IS-FTI-P1-EXE       
*S**      03 WF-IS-FTI-P1-DEPS      
*S**      03 WF-IS-FTI-P1-TOT-INC   
*S**      03 WF-IS-FTI-P1-TOT-FED-TAX           
*S**      03 WF-IS-FTI-P1-EDCR      
*S**      03 WF-IS-FTI-P1-DST-IRA   
*S**      03 WF-IS-FTI-P1-DED-PAY   
*S**      03 WF-IS-FTI-P1-U-INT     
*S**      03 WF-IS-FTI-P1-DST-PEN   
*S**      03 WF-IS-FTI-P1-SCHEDC-NET
*S**      03 WF-IS-FTI-P1-SCHEDA    
*S**      03 WF-IS-FTI-P1-SCHEDB    
*S**      03 WF-IS-FTI-P1-SCHEDD    
*S**      03 WF-IS-FTI-P1-SCHEDE    
*S**      03 WF-IS-FTI-P1-SCHEDF    
*S**      03 WF-IS-FTI-P1-SCHEDH    
*S**      03 WF-IS-FTI-P1-IRS-RESP  
*S**      03 WF-IS-FTI-P2-RET-YEAR  
*S**      03 WF-IS-FTI-P2-FILE-STAT 
*S**      03 WF-IS-FTI-P2-AGI       
*S**      03 WF-IS-FTI-P2-EXE       
*S**      03 WF-IS-FTI-P2-DEPS      
*S**      03 WF-IS-FTI-P2-TOT-INC   
*S**      03 WF-IS-FTI-P2-TOT-FED-TAX           
*S**      03 WF-IS-FTI-P2-EDCR      
*S**      03 WF-IS-FTI-P2-DST-IRA   
*S**      03 WF-IS-FTI-P2-DED-PAY   
*S**      03 WF-IS-FTI-P2-U-INT     
*S**      03 WF-IS-FTI-P2-DST-PEN   
*S**      03 WF-IS-FTI-P2-SCHEDC-NET
*S**      03 WF-IS-FTI-P2-SCHEDA    
*S**      03 WF-IS-FTI-P2-SCHEDB    
*S**      03 WF-IS-FTI-P2-SCHEDD    
*S**      03 WF-IS-FTI-P2-SCHEDE    
*S**      03 WF-IS-FTI-P2-SCHEDF    
*S**      03 WF-IS-FTI-P2-SCHEDH    
*S**      03 WF-IS-FTI-P2-IRS-RESP  
*S**      03 WF-IS-FILLER12         
*S**      03 WF-IS-S-TOT-INC        
*S**      03 WF-IS-P-TOT-INC        
*S**      03 WF-IS-FISAP-TOT-INC    
*S**      03 WF-IS-P1-FC1-ATI       
*S**      03 WF-IS-P1-FC1-PAYR      
*S**      03 WF-IS-P1-FC1-IPA       
*S**      03 WF-IS-P1-FC1-EEA       
*S**      03 WF-IS-P1-FC1-AI        
*S**      03 WF-IS-P1-FC1-AAI       
*S**      03 WF-IS-P1-FC1-CONT      
*S**      03 WF-IS-S-FC1-PAYR       
*S**      03 WF-IS-S-FC1-IPA        
*S**      03 WF-IS-S-FC1-NEG-AAI    
*S**      03 WF-IS-S-FC1-EEA        
*S**      03 WF-IS-S-FC1-ATI        
*S**      03 WF-IS-S-FC1-AI         
*S**      03 WF-IS-S-FC1-CI         
*S**      03 WF-IS-S-FC1-AAI        
*S**      03 WF-IS-S-FC1-AAI-CONT   
*S**      03 WF-IS-FTI-LABEL-END    
*S**      03 WF-IS-FILLER13         
*S**END-DEFINE          
*S***       
*S***       
*S*** Populate WW-GDA from WW-PDA   
*S**MOVE BY POSITION WW-PDA TO WW-GDA           
*S***       
*S***       
*S*** Initialize output fields.     
*S**ASSIGN #SAVE-MSG = ##MSG        
*S**RESET WWAOBJ.OUTPUTS ##MSG ##MSG-DATA(*) ##RETURN-CODE  
*S***       
*S*** Build up prime key of the object.         
*S**MOVE BY NAME WFISR27D TO WFISR27D-ID.STRUCTURE          
*S***       
*S*************************************************************************         
*S***       
*S*** Set up repeat to allow escape from within a subroutine.           
*S**PROG.   
*S**REPEAT  
*S***       
*S*** Decide what to do based on function supplied.         
*S**  DECIDE ON FIRST VALUE WWAOBJ.#FUNCTION    
*S**    VALUE 'GET' /* Read the object          
*S**      /*
*S**      /* Object exists, get object          
*S**      PERFORM GET-OBJECT        
*S**      PERFORM SET-OBJECT-ID     
*S**    VALUE 'NEXT' /* Read the next higher object         
*S**      /*
*S**      /* Histogram for next higher value from one in object.        
*S**      HISTOGRAM(2) NEXT-VIEW FOR WF-ISIR-KEY
*S**                   STARTING FROM WFISR27D-ID
*S**        IF NEXT-VIEW.WF-ISIR-KEY NE WFISR27D-ID THEN    
*S**          ASSIGN WFISR27D-ID = NEXT-VIEW.WF-ISIR-KEY    
*S**          MOVE BY NAME WFISR27D-ID.STRUCTURE TO WFISR27D
*S**          PERFORM GET-OBJECT    
*S**          ASSIGN ##MSG-DATA(1) = #OBJECT    
*S**          ESCAPE BOTTOM         
*S**        END-IF      
*S**      END-HISTOGRAM 
*S**      /*
*S**      /* No records beyond current record.  
*S**      IF NOT WWAOBJ.#EXISTS     
*S**        ASSIGN ##MSG = 'End of data reached'
*S**        ASSIGN ##RETURN-CODE = 'W'          /* Warning. 
*S**      END-IF        
*S**    VALUE 'UPDATE','DELETE' /* Modify or purge current object       
*S**      /*
*S**      /* Make sure the record was held prior to updating.           
*S**      IF WFISR27D-ID NE WFISR27R.HELD-ID THEN           
*S**        ASSIGN ##MSG = 'Record not in held status'      
*S**        PERFORM PROCESS-ERROR   
*S**      END-IF        
*S**      PERFORM HOLD-OBJECT       
*S**      PERFORM SET-OBJECT-ID     
*S**      IF WWAOBJ.#FUNCTION = 'DELETE'        
*S**        ASSIGN ##MSG = 'Record purged successfully'     
*S**      END-IF        
*S**    VALUE 'EXISTS' /* Existence check       
*S**      PERFORM CLEAR 
*S**      PERFORM CHECK-EXISTENCE   
*S**    VALUE 'STORE' /* Add new object         
*S**      PERFORM CREATE-OBJECT     
*S**      PERFORM SET-OBJECT-ID     
*S**    VALUE 'INITIALIZE'          
*S**      PERFORM CLEAR 
*S**    ANY 
*S**      PERFORM RELOAD-MSG        
*S**      MOVE BY POSITION WW-GDA TO WW-PDA     
*S**      ESCAPE BOTTOM(PROG.) IMMEDIATE /* All done.       
*S**    NONE /* Unknown action code 
*S**      ASSIGN ##MSG-DATA(1) = #OBJECT        
*S**      ASSIGN ##MSG-DATA(2) = WWAOBJ.#FUNCTION           
*S**      ASSIGN ##MSG = 'Invalid:1:function specified::2:' 
*S**      PERFORM PROCESS-ERROR     
*S**  END-DECIDE        
*S***       
*S*************************************************************************         
*S**DEFINE SUBROUTINE PROCESS-ERROR 
*S*************************************************************************         
*S***       
*S**  IF ##MSG-DATA(1) = ' '               /* Set default for :1:.      
*S**    PERFORM SET-OBJECT-ID       
*S**  END-IF
*S**  ASSIGN ##RETURN-CODE = 'E' /* Error.      
*S**  IF #DISP-BACKOUT  
*S**    WRITE 'Issuing Backout transaction for action:' #FUNCTION       
*S**          / '  in subprogram' *PROGRAM      
*S**  END-IF
*S**  BACKOUT TRANSACTION           
*S**  MOVE BY POSITION WW-GDA TO WW-PDA         
*S**  ESCAPE BOTTOM(PROG.) IMMEDIATE
*S**END-SUBROUTINE /* PROCESS-ERROR 
*S***       
*S**END-REPEAT          
*S***       
*S***       
*S*************************************************************************         
*S**DEFINE SUBROUTINE CREATE-OBJECT 
*S*************************************************************************         
*S***       
*S**  ASSIGN WFISR27D.WW-CDATE = *DATX          
*S***       
*S*** Don't allow the key to be null.           
*S**  IF WFISR27D-ID = NEXT-VIEW.WF-ISIR-KEY /* Compare with null       
*S**    ASSIGN ##MSG-DATA(1) = #OBJECT          
*S**    ASSIGN ##MSG = ':1:identifier is required'          
*S**    PERFORM PROCESS-ERROR       
*S**  END-IF
*S**  /*    
*S**  /* If object already exist, return with error.        
*S**  PERFORM CHECK-EXISTENCE       
*S**  IF WWAOBJ.#EXISTS THEN        
*S**    ASSIGN ##MSG = ':1:already exists'      
*S**    PERFORM PROCESS-ERROR       
*S**  END-IF
*S**  PERFORM EDIT-OBJECT /* Pre-edit object header         
*S**  ASSIGN WF-ISIR-2627.WW-HOLD = *TIMN       
*S**  ASSIGN WFISR27R.INTERVENING-UPD-FLD =     
*S**    WF-ISIR-2627.WW-HOLD        
*S**  ASSIGN WFISR27R.HELD-ID = WFISR27D-ID     
*S**  STORE WF-ISIR-2627
*S**END-SUBROUTINE /* CREATE-OBJECT 
*S***       
*S*************************************************************************         
*S**DEFINE SUBROUTINE GET-OBJECT    
*S*************************************************************************         
*S***       
*S*** Get the primary object record.
*S**  PERFORM CLEAR     
*S**  FIND WF-ISIR-2627 WITH WF-ISIR-KEY = WFISR27D-ID      
*S**    IF NO RECORDS FOUND         
*S**      /*
*S**      /* Return the fact that the object does not exist.
*S**      ESCAPE ROUTINE
*S**    END-NOREC       
*S**    ASSIGN WWAOBJ.#EXISTS = TRUE
*S**    /*  
*S**    /* "Hold" the record by capturing the value of the update flag. 
*S**    ASSIGN WFISR27R.INTERVENING-UPD-FLD =   
*S**           WF-ISIR-2627.WW-HOLD 
*S**    /*  
*S**    /* Shift primary entity information to object       
*S**    MOVE BY NAME WF-ISIR-2627 TO WFISR27D   
*S**    ASSIGN WFISR27R.HELD-ID = WFISR27D-ID   
*S**  END-FIND          
*S**END-SUBROUTINE /* GET-OBJECT    
*S***       
*S*************************************************************************         
*S**DEFINE SUBROUTINE HOLD-OBJECT   
*S*************************************************************************         
*S***       
*S*** Get primary entity and process it.        
*S**  HOLD-PRIME.       
*S**  FIND WF-ISIR-2627 WITH        
*S**      WF-ISIR-KEY = WFISR27D-ID 
*S**    IF NO RECORDS FOUND         
*S**      /*
*S**      /* Trying to process an object that doesn't exist.
*S**      ASSIGN ##MSG = 'Intervening purge, please try again'          
*S**      RESET WFISR27R
*S**      PERFORM PROCESS-ERROR     
*S**    END-NOREC       
*S**    IF WFISR27R.INTERVENING-UPD-FLD NE      
*S**       WF-ISIR-2627.WW-HOLD THEN
*S**      ASSIGN ##MSG = 'Intervening update, please try again'         
*S**      RESET WFISR27R
*S**      PERFORM PROCESS-ERROR     
*S**    END-IF          
*S**    ASSIGN WWAOBJ.#EXISTS = TRUE
*S**    PERFORM EDIT-OBJECT /* Pre-edit object header       
*S**    DECIDE ON EVERY VALUE WWAOBJ.#FUNCTION  
*S**      VALUE 'UPDATE'
*S**        ASSIGN WF-ISIR-2627.WW-HOLD = *TIMN 
*S**        ASSIGN WF-ISIR-2627.WW-MDATE = *DATX
*S**        ASSIGN WFISR27R.INTERVENING-UPD-FLD =           
*S**          WF-ISIR-2627.WW-HOLD  
*S**        UPDATE(HOLD-PRIME.)     
*S**      VALUE 'DELETE'
*S**        DELETE(HOLD-PRIME.)     
*S**        RESET WFISR27R.HELD-ID  
*S**      NONE IGNORE   
*S**    END-DECIDE      
*S**  END-FIND          
*S**END-SUBROUTINE /* HOLD-OBJECT   
*S***       
*S*************************************************************************         
*S**DEFINE SUBROUTINE CHECK-AND-UPDATE-OBJECT /* Process all sub-entities           
*S*************************************************************************         
*S***       
*S**  ESCAPE ROUTINE /* No sub-entities         
*S**END-SUBROUTINE /* CHECK-AND-UPDATE-OBJECT   
*S***       
*S*************************************************************************         
*S**DEFINE SUBROUTINE EDIT-OBJECT   
*S*************************************************************************         
*S***       
*S**  IF WWAOBJ.#FUNCTION = 'UPDATE' OR = 'STORE'           
*S**    /*  
*S**    /* Load file view           
*S**    MOVE BY NAME WFISR27D TO WF-ISIR-2627   
*S**  END-IF
*S**END-SUBROUTINE /* EDIT-OBJECT   
*S***       
*S*************************************************************************         
*S**DEFINE SUBROUTINE CHECK-EXISTENCE           
*S*************************************************************************         
*S***       
*S*** Check whether object currently exists.    
*S**  EXISTENCE-CHECK.  
*S**  HISTOGRAM(1) NEXT-VIEW FOR WF-ISIR-KEY    
*S**               FROM WFISR27D-ID THRU WFISR27D-ID        
*S**    ASSIGN WWAOBJ.#EXISTS = TRUE
*S**  END-HISTOGRAM     
*S**END-SUBROUTINE /* CHECK-EXISTENCE           
*S***       
*S*************************************************************************         
*S**DEFINE SUBROUTINE CLEAR         
*S*************************************************************************         
*S***       
*S**  MOVE BY NAME WFISR27D TO WFISR27D-ID.STRUCTURE /* Capture key.    
*S**  RESET WFISR27D WFISR27R       
*S**  /*    
*S**  /* Reset redefined components whose formats differ from base field
*S*** RESET WFISR27D.WF-IS-FED-ID1  
*S**  MOVE BY NAME WFISR27D-ID.STRUCTURE TO WFISR27D /* Restore key.    
*S**END-SUBROUTINE /* CLEAR         
*S***       
*S*************************************************************************         
*S**DEFINE SUBROUTINE GET-DB-CALL   
*S*************************************************************************         
*S***       
*S**INCLUDE WWDBCALL    
*S**END-SUBROUTINE /* GET-DB-CALL   
*S***       
*S*************************************************************************         
*S**DEFINE SUBROUTINE SET-OBJECT-ID 
*S*************************************************************************         
*S***       
*S**  COMPRESS WFISR27D.WF-FAO      
*S**       '-' WFISR27D.WW-STUDENT-ID           
*S**        TO ##MSG-DATA(1) LEAVING NO         
*S**  COMPRESS #OBJECT ##MSG-DATA(1) TO ##MSG-DATA(1)       
*S**END-SUBROUTINE /* SET-OBJECT-ID 
*S***       
*S*************************************************************************         
*S**DEFINE SUBROUTINE RELOAD-MSG    
*S*************************************************************************         
*S***       
*S*** If no messages set in subprogram, reset passed message
*S**  IF ##MSG = ' '    
*S**    ASSIGN ##MSG = #SAVE-MSG    
*S**  END-IF
*S**END-SUBROUTINE /* RELOAD-MSG    
*S**END     
