*H**ANAT8304202504022005546LINUX                            4CAUC     04.2          
*C**                                FATEMP  WFDLE26B                        F S   NN0000        
*D01NAT8304F FATEMP  WFDLE26B                        ZWDNH   ZWDNH           S      
*D02            2025040218301802025040218301800000052676    
*D03LINUX   
*D04                 ISO_8859-1:1987
*S*************************************************************************         
*S***       
*S***                              WolffPack    
*S***       
*S*** Program  : WFDLE26B           
*S*** System   : FINANCIER          
*S*** Title    : 2025-26 Direct Lending XML for export      
*S*** Function : Creates the XML for Direct Lending export records      
*S***            using the sequential file created in WFDLNyyB.         
*S***       
*S***            COD Schema Version 5.0c        
*S***       
*S***      Copyright 1995 - 2025 WolffPack, Inc.  All rights reserved.  
*S***       
*S*************************************************************************         
*S**DEFINE DATA         
*S**  GLOBAL USING WWGDA
*S***       
*S**  LOCAL USING WWREQIBD          
*S**  LOCAL USING WFDLE26D          
*S**  LOCAL USING WWCONST           
*S**  LOCAL 
*S***       
*S*** Note: '@' inserted in initial values and programmatically         
*S***       replaced with the hex representation for '"' to 
*S***       avoid the Natural compiler's default conversion of          
*S***       double-quotes to single-quotes      
*S***       
*S*** DOCUMENT BLOCK    
*S***       
*S**01 #XML-LINE1       
*S**  02 #XML-L1 (A21) INIT <'<?xml version=@1.0@?>'>       
*S**01 #XML-L2          
*S**  02 #SEG1(A59)     
*S** INIT <'<CommonRecord xmlns=@http://www.ed.gov/FSA/COD/2024/v5.0c@ '>           
*S**  02 #SEG2(A54)     
*S** INIT <'xmlns:xsi=@http://www.w3.org/2001/XMLSchema-instance@ '>    
*S**  02 #SEG3(A57)     
*S** INIT <'xsi:schemaLocation=@http://www.ed.gov/FSA/COD/2024/v5.0c '> 
*S**  02 #SEG4(A22)     
*S** INIT <'CommonRecord5.0c.xsd@>'>
*S**01 REDEFINE #XML-L2 
*S**  02 #XML-LINE2(A192)           
*S***       
*S**01 #TRANSDATA-BEG   
*S**  02 #TRANSDATA-S  (A18) INIT <'<TransmissionData>'>    
*S**  02 #FILLER       (A82)        
*S***       
*S**01 #DOCUMENT-OUT    
*S**  02 #DOCID-S      (A12) INIT <'<DocumentID>'>          
*S**  02 #DOCUMENT-ID  (A30)        
*S**  02 REDEFINE #DOCUMENT-ID      
*S**    03 #DOCID-DT   (A10)        
*S**    03 #DOCID-T    (A1)         
*S**    03 #DOCID-TM   (A10)        
*S**    03 #DOCID-SEC  (A1)         
*S**    03 #DOCID-SCHL (A8)         
*S**  02 #DOCID-E      (A13) INIT <'</DocumentID>'>         
*S**  02 #FILLER       (A45)        
*S***       
*S**01 #CREATE-OUT      
*S**  02 #CREATE-S     (A17) INIT <'<CreatedDateTime>'>     
*S**  02 #CREATE-DT    (A22)        
*S**  02 REDEFINE #CREATE-DT        
*S**    03 #CRT-DATE   (A10)        
*S**    03 #CRT-T      (A1)         
*S**    03 #CRT-TIME   (A10)        
*S**    03 #CRT-SEC    (A1)         
*S**  02 #CREATE-E     (A18) INIT <'</CreatedDateTime>'>    
*S**  02 #FILLER       (A43)        
*S***       
*S**01 #SOURCE-BEG      
*S**  02 #SOURCE-S     (A8)  INIT <'<Source>'>  
*S**  02 #FILLER       (A92)        
*S**01 #SCHOOL-BEG      
*S**  02 #SCHOOL-S     (A8)  INIT <'<School>'>  
*S**  02 #FILLER       (A92)        
*S**01 #SCHOOL-OUT      
*S**  02 #SCHOOLID-S   (A11) INIT <'<RoutingID>'>           
*S**  02 #SCHOOLID     (A8)         
*S**  02 #SCHOOLID-E   (A12) INIT <'</RoutingID>'>          
*S**  02 #FILLER       (A69)        
*S**01 #SCHOOL-END      
*S**  02 #SCHOOL-E     (A9)  INIT <'</School>'> 
*S**  02 #FILLER       (A91)        
*S**01 #SOURCE-END      
*S**  02 #SOURCE-E     (A9)  INIT <'</Source>'> 
*S**  02 #FILLER       (A91)        
*S***       
*S**01 #DEST-BEG        
*S**  02 #DEST-S       (A13) INIT <'<Destination>'>         
*S**  02 #FILLER       (A87)        
*S**01 #COD-BEG         
*S**  02 #COD-S        (A5)  INIT <'<COD>'>     
*S**  02 #FILLER       (A95)        
*S**01 #COD-OUT         
*S**  02 #CODID-S      (A11) INIT <'<RoutingID>'>           
*S**  02 #CODID        (A8)  INIT <'00000001'>  
*S**  02 #CODID-E      (A12) INIT <'</RoutingID>'>          
*S**  02 #FILLER       (A69)        
*S**01 #COD-END         
*S**  02 #COD-E        (A6)  INIT <'</COD>'>    
*S**  02 #FILLER       (A94)        
*S**01 #DEST-END        
*S**  02 #DEST-E       (A14) INIT <'</Destination>'>        
*S**  02 #FILLER       (A86)        
*S***       
*S**01 #SOFTWARE-BEG    
*S**  02 #SOFTWARE-S   (A10) INIT <'<Software>'>
*S**  02 #FILLER       (A90)        
*S**01 #SW-PROVIDER-OUT 
*S**  02 #SW-PROVIDER-S(A18) INIT <'<SoftwareProvider>'>    
*S**  02 #SW-PROVIDER  (A9)  INIT <'WolffPack'> 
*S**  02 #SW-PROVIDER-E(A19) INIT <'</SoftwareProvider>'>   
*S**  02 #FILLER       (A54)        
*S**01 #SW-VERSION-OUT  
*S**  02 #SW-VERSION-S (A17) INIT <'<SoftwareVersion>'>     
*S**  02 #SW-VERSION   (A6)  INIT <'FIN-V1'>    
*S**  02 #SW-VERSION-E (A18) INIT <'</SoftwareVersion>'>    
*S**  02 #FILLER       (A59)        
*S**01 #SOFTWARE-END    
*S**  02 #SOFTWARE-E   (A11) INIT <'</Software>'>           
*S**  02 #FILLER       (A89)        
*S***       
*S**01 #FULLRESP-OUT    
*S**  02 #FULL-RESP-S  (A18) INIT <'<FullResponseCode>'>    
*S**  02 #FULL-RESP    (A1)  INIT <'F'>         
*S**  02 #FULL-RESP-E  (A19) INIT <'</FullResponseCode>'>   
*S**  02 #FILLER       (A62)        
*S**01 #TRANSDATA-END   
*S**  02 #TRANSDATA-E  (A19) INIT <'</TransmissionData>'>   
*S**  02 #FILLER       (A81)        
*S***       
*S*** ENTITY BLOCK      
*S***       
*S**01 #RPTSCHL-BEG     
*S**  02 #RPTSCHL-S    (A17) INIT <'<ReportingSchool>'>     
*S**  02 #FILLER       (A83)        
*S**01 #RPTSCHL-OUT     
*S**  02 #RPTSCHLID-S  (A11) INIT <'<RoutingID>'>           
*S**  02 #RPTSCHLID    (A8)         
*S**  02 #RPTSCHLID-E  (A12) INIT <'</RoutingID>'>          
*S**  02 #FILLER       (A69)        
*S***       
*S**01 #RPTSUMM-BEG     
*S**  02 #RPTSUMM      (A26) INIT <'<ReportedFinancialSummary>'>        
*S**  02 #FILLER       (A74)        
*S***       
*S**01 #FINTYPE-OUT     
*S**  02 #FINAWD-TYPE-S(A20) INIT <'<FinancialAwardType>'>  
*S**  02 #FINAWD-TYPE  (A14)        
*S**  02 #FINAWD-TYPE-E(A21) INIT <'</FinancialAwardType>'> 
*S**  02 #FILLER       (A45)        
*S***       
*S**01 #FINYR-OUT       
*S**  02 #FINAWD-YR-S  (A20) INIT <'<FinancialAwardYear>'>  
*S**  02 #FINAWD-YR    (A4)         
*S**  02 #FINAWD-YR-E  (A21) INIT <'</FinancialAwardYear>'> 
*S**  02 #FILLER       (A55)        
*S***       
*S**01 #COUNT-OUT       
*S**  02 #TOT-COUNT-S  (A12) INIT <'<TotalCount>'>          
*S**  02 #TOT-COUNT    (A9)         
*S**  02 #TOT-COUNT-E  (A13) INIT <'</TotalCount>'>         
*S**  02 #FILLER       (A66)        
*S***       
*S**01 #TOT-AWD-OUT     
*S**  02 #TOT-RPT-AWD-S(A20) INIT <'<TotalReportedAward>'>  
*S**  02 #TOT-RPT-AWD  (A16)        
*S**  02 #TOT-RPT-AWD-E(A21) INIT <'</TotalReportedAward>'> 
*S**  02 #FILLER       (A43)        
*S***       
*S**01 #TOT-DSB-OUT     
*S**  02 #TOT-RPT-DSB-S(A27) INIT <'<TotalReportedDisbursement>'>       
*S**  02 #TOT-RPT-DSB  (A16)        
*S**  02 #TOT-RPT-DSB-E(A28) INIT <'</TotalReportedDisbursement>'>      
*S**  02 #FILLER       (A29)        
*S***       
*S**01 #RPTSUMM-END     
*S**  02 #RPT-SUMM-E   (A27) INIT <'</ReportedFinancialSummary>'>       
*S**  02 #FILLER       (A73)        
*S***       
*S**01 #ATTSCHL-BEG     
*S**  02 #ATTSCHL-S    (A16) INIT <'<AttendedSchool>'>      
*S**  02 #FILLER       (A84)        
*S**01 #ATTSCHL-OUT     
*S**  02 #ATTSCHLID-S  (A11) INIT <'<RoutingID>'>           
*S**  02 #ATTSCHLID    (A8)         
*S**  02 #ATTSCHLID-E  (A12) INIT <'</RoutingID>'>          
*S**  02 #FILLER       (A69)        
*S***       
*S*** PERSON BLOCK      
*S***       
*S**01 #STUDENT-BEG     
*S**  02 #STUDENT-S    (A9)  INIT <'<Student>'> 
*S**  02 #FILLER       (A91)        
*S**01 #STUINDEX-BEG    
*S**  02 #STUINDEX-S   (A7)  INIT <'<Index>'>   
*S**  02 #FILLER       (A93)        
*S**01 #STUDENT-SSN-OUT 
*S**  02 #STU-SSN-S    (A5)  INIT <'<SSN>'>     
*S**  02 #STU-SSN      (A9)         
*S**  02 #STU-SSN-E    (A6)  INIT <'</SSN>'>    
*S**  02 #FILLER       (A80)        
*S**01 #STUDENT-DOB-OUT 
*S**  02 #STU-DOB-S    (A11) INIT <'<BirthDate>'>           
*S**  02 #STU-DOB      (A10)        
*S**  02 #STU-DOB-E    (A12) INIT <'</BirthDate>'>          
*S**  02 #FILLER       (A67)        
*S**01 #STUDENT-LAST-OUT
*S**  02 #STU-LAST-S   (A10) INIT <'<LastName>'>
*S**  02 #STU-LAST     (A35)        
*S**  02 #STU-LAST-E   (A11) INIT <'</LastName>'>           
*S**  02 #FILLER       (A44)        
*S**01 #STUINDEX-END    
*S**  02 #STUINDEX-E   (A8)  INIT <'</Index>'>  
*S**  02 #FILLER       (A92)        
*S***       
*S**01 #STU-PERSID-BEG  
*S**  02 #STU-PERSID-S (A19) INIT <'<PersonIdentifiers>'>   
*S**  02 #FILLER       (A81)        
*S**01 #STUDENT-SID-OUT 
*S**  02 #STU-SID-S    (A24) INIT <'<SchoolAssignedPersonID>'>          
*S**  02 #STU-SID      (A9)         
*S**  02 #STU-SID-E    (A25) INIT <'</SchoolAssignedPersonID>'>         
*S**  02 #FILLER       (A42)        
*S**01 #STU-PERSID-END  
*S**  02 #STU-PERSID-E (A20) INIT <'</PersonIdentifiers>'>  
*S**  02 #FILLER       (A80)        
*S***       
*S**01 #STU-NAME-BEG    
*S**  02 #STU-NAME-S   (A6)  INIT <'<Name>'>    
*S**  02 #FILLER       (A94)        
*S**01 #STU-FIRST-OUT   
*S**  02 #STU-FIRST-S  (A11) INIT <'<FirstName>'>           
*S**  02 #STU-FIRST    (A35)        
*S**  02 #STU-FIRST-E  (A12) INIT <'</FirstName>'>          
*S**  02 #FILLER       (A42)        
*S**01 #STU-MI-OUT      
*S**  02 #STU-MI-S     (A12) INIT <'<MiddleName>'>          
*S**  02 #STU-MI       (A35)        
*S**  02 #STU-MI-E     (A13) INIT <'</MiddleName>'>         
*S**  02 #FILLER       (A40)        
*S**01 #STU-NAME-END    
*S**  02 #STU-NAME-E   (A7) INIT <'</Name>'>    
*S**  02 #FILLER       (A93)        
*S***       
*S**01 #STU-CONTACT-BEG 
*S**  02 #STU-CONT-S   (A10) INIT <'<Contacts>'>
*S**  02 #FILLER       (A90)        
*S**01 #STU-ADDRESS-BEG 
*S**  02 #STU-ADDR-S   (A18) INIT <'<PermanentAddress>'>    
*S**  02 #FILLER       (A82)        
*S**01 #STU-STREET-OUT  
*S**  02 #STU-STRT-S   (A13) INIT <'<AddressLine>'>         
*S**  02 #STU-STRT     (A40)        
*S**  02 #STU-STRT-E   (A14) INIT <'</AddressLine>'>        
*S**  02 #FILLER       (A33)        
*S**01 #STU-CITY-OUT    
*S**  02 #STU-CITY-S   (A6)  INIT  <'<City>'>   
*S**  02 #STU-CITY     (A30)        
*S**  02 #STU-CITY-E   (A7)  INIT  <'</City>'>  
*S**  02 #FILLER       (A57)        
*S**01 #STU-STATE-OUT   
*S**  02 #STU-STATE-S  (A19) INIT <'<StateProvinceCode>'>   
*S**  02 #STU-STATE    (A2)         
*S**  02 #STU-STATE-E  (A20) INIT <'</StateProvinceCode>'>  
*S**  02 #FILLER       (A59)        
*S**01 #STU-COUNTRY-OUT 
*S**  02 #STU-CNTRY-S  (A13) INIT <'<CountryCode>'>         
*S**  02 #STU-CNTRY    (A2)         
*S**  02 #STU-CNTRY-E  (A14) INIT <'</CountryCode>'>        
*S**  02 #FILLER       (A71)        
*S**01 #STU-ZIP-OUT     
*S**  02 #STU-ZIP-S    (A12) INIT <'<PostalCode>'>          
*S**  02 #STU-ZIP      (A10)        
*S**  02 #STU-ZIP-E    (A13) INIT <'</PostalCode>'>         
*S**  02 #FILLER       (A65)        
*S**01 #STU-ADDRESS-END 
*S**  02 #STU-ADDR-E   (A19) INIT <'</PermanentAddress>'>   
*S**  02 #FILLER       (A81)        
*S**01 #STU-CONTACT-END 
*S**  02 #STU-CONT-E   (A11) INIT <'</Contacts>'>           
*S**  02 #FILLER       (A89)        
*S***       
*S**01 #STU-CIT-BEG     
*S**  02 #STU-CITIZ-S  (A13) INIT <'<Citizenship>'>         
*S**  02 #FILLER       (A87)        
*S**01 #STU-CIT-OUT     
*S**  02 #STU-CIT-S    (A23) INIT <'<CitizenshipStatusCode>'>           
*S**  02 #STU-CIT      (A1)         
*S**  02 #STU-CIT-E    (A24) INIT <'</CitizenshipStatusCode>'>          
*S**  02 #FILLER       (A52)        
*S**01 #STU-CIT-END     
*S**  02 #STU-CITIZ-E  (A14) INIT <'</Citizenship>'>        
*S**  02 #FILLER       (A86)        
*S***       
*S**01 #BORROWER-BEG    
*S**  02 #BORROWER-S   (A10) INIT <'<Borrower>'>
*S**  02 #FILLER       (A90)        
*S**01 #BORINDEX-BEG    
*S**  02 #BORINDEX-S   (A7)  INIT <'<Index>'>   
*S**  02 #FILLER       (A93)        
*S**01 #BORROWER-SSN-OUT
*S**  02 #BOR-SSN-S    (A5)  INIT <'<SSN>'>     
*S**  02 #BOR-SSN      (A9)         
*S**  02 #BOR-SSN-E    (A6)  INIT <'</SSN>'>    
*S**  02 #FILLER       (A80)        
*S**01 #BORROWER-DOB-OUT
*S**  02 #BOR-DOB-S    (A11) INIT <'<BirthDate>'>           
*S**  02 #BOR-DOB      (A10)        
*S**  02 #BOR-DOB-E    (A12) INIT <'</BirthDate>'>          
*S**  02 #FILLER       (A67)        
*S**01 #BORROWER-LAST-OUT           
*S**  02 #BOR-LAST-S   (A10) INIT <'<LastName>'>
*S**  02 #BOR-LAST     (A35)        
*S**  02 #BOR-LAST-E   (A11) INIT <'</LastName>'>           
*S**  02 #FILLER       (A44)        
*S**01 #BORINDEX-END    
*S**  02 #BORINDEX-E   (A8)  INIT <'</Index>'>  
*S**  02 #FILLER       (A92)        
*S***       
*S**01 #BORNOTE-BEG     
*S**  02 #BORNOTE-S    (A6)  INIT <'<Note>'>    
*S**  02 #FILLER       (A94)        
*S**01 #BOR-ID-OUT      
*S**  02 #BOR-ID-S     (A19) INIT <'<SchoolNoteMessage>'>   
*S**  02 #BOR-ID       (A9)         
*S**  02 #BOR-ID-E     (A20) INIT <'</SchoolNoteMessage>'>  
*S**  02 #FILLER       (A52)        
*S**01 #BORNOTE-END     
*S**  02 #BORNOTE-E    (A7)  INIT <'</Note>'>   
*S**  02 #FILLER       (A93)        
*S***       
*S**01 #BOR-NAME-BEG    
*S**  02 #BOR-NAME-S   (A6)  INIT <'<Name>'>    
*S**  02 #FILLER       (A94)        
*S**01 #BOR-FIRST-OUT   
*S**  02 #BOR-FIRST-S  (A11) INIT <'<FirstName>'>           
*S**  02 #BOR-FIRST    (A35)        
*S**  02 #BOR-FIRST-E  (A12) INIT <'</FirstName>'>          
*S**  02 #FILLER       (A42)        
*S**01 #BOR-MI-OUT      
*S**  02 #BOR-MI-S     (A12) INIT <'<MiddleName>'>          
*S**  02 #BOR-MI       (A35)        
*S**  02 #BOR-MI-E     (A13) INIT <'</MiddleName>'>         
*S**  02 #FILLER       (A40)        
*S**01 #BOR-NAME-END    
*S**  02 #BOR-NAME-E   (A7) INIT <'</Name>'>    
*S**  02 #FILLER       (A93)        
*S***       
*S**01 #BOR-CONTACT-BEG 
*S**  02 #BOR-CONT-S   (A10) INIT <'<Contacts>'>
*S**  02 #FILLER       (A90)        
*S**01 #BOR-ADDRESS-BEG 
*S**  02 #BOR-ADDR-S   (A18) INIT <'<PermanentAddress>'>    
*S**  02 #FILLER       (A82)        
*S**01 #BOR-STREET-OUT  
*S**  02 #BOR-STRT-S   (A13) INIT <'<AddressLine>'>         
*S**  02 #BOR-STRT     (A40)        
*S**  02 #BOR-STRT-E   (A14) INIT <'</AddressLine>'>        
*S**  02 #FILLER       (A33)        
*S**01 #BOR-CITY-OUT    
*S**  02 #BOR-CITY-S   (A6)  INIT  <'<City>'>   
*S**  02 #BOR-CITY     (A30)        
*S**  02 #BOR-CITY-E   (A7)  INIT  <'</City>'>  
*S**  02 #FILLER       (A57)        
*S**01 #BOR-STATE-OUT   
*S**  02 #BOR-STATE-S  (A19) INIT <'<StateProvinceCode>'>   
*S**  02 #BOR-STATE    (A2)         
*S**  02 #BOR-STATE-E  (A20) INIT <'</StateProvinceCode>'>  
*S**  02 #FILLER       (A59)        
*S**01 #BOR-COUNTRY-OUT 
*S**  02 #BOR-CNTRY-S  (A13) INIT <'<CountryCode>'>         
*S**  02 #BOR-CNTRY    (A2)         
*S**  02 #BOR-CNTRY-E  (A14) INIT <'</CountryCode>'>        
*S**  02 #FILLER       (A71)        
*S**01 #BOR-ZIP-OUT     
*S**  02 #BOR-ZIP-S    (A12) INIT <'<PostalCode>'>          
*S**  02 #BOR-ZIP      (A10)        
*S**  02 #BOR-ZIP-E    (A13) INIT <'</PostalCode>'>         
*S**  02 #FILLER       (A65)        
*S**01 #BOR-ADDRESS-END 
*S**  02 #BOR-ADDR-E   (A19) INIT <'</PermanentAddress>'>   
*S**  02 #FILLER       (A81)        
*S**01 #BOR-CONTACT-END 
*S**  02 #BOR-CONT-E   (A11) INIT <'</Contacts>'>           
*S**  02 #FILLER       (A89)        
*S***       
*S**01 #BOR-CIT-BEG     
*S**  02 #BOR-CITIZ-S  (A13) INIT <'<Citizenship>'>         
*S**  02 #FILLER       (A87)        
*S**01 #BOR-CIT-OUT     
*S**  02 #BOR-CIT-S    (A23) INIT <'<CitizenshipStatusCode>'>           
*S**  02 #BOR-CIT      (A1)         
*S**  02 #BOR-CIT-E    (A24) INIT<'</CitizenshipStatusCode>'>           
*S**  02 #FILLER       (A52)        
*S**01 #BOR-CIT-END     
*S**  02 #BOR-CITIZ-E  (A14) INIT <'</Citizenship>'>        
*S**  02 #FILLER       (A86)        
*S***       
*S**01 #BOR-OVP-OUT     
*S**  02 #BOR-DEF-OVP-S(A20) INIT <'<DefaultOverpayCode>'>  
*S**  02 #BOR-DEF-OVP  (A1)         
*S**  02 #BOR-DEF-OVP-E(A21) INIT <'</DefaultOverpayCode>'> 
*S**  02 #FILLER       (A58)        
*S***       
*S**01 #BORROWER-END    
*S**  02 #BORROWER-E   (A11) INIT <'</Borrower>'>           
*S**  02 #FILLER       (A89)        
*S***       
*S*** AWARD BLOCK       
*S***       
*S**01 #LOANINFO-OUT    
*S**  02 #LOANINFO(A32) 
*S**  02 #FILLER(A68)   
*S***       
*S**01 #DLINFO-1(A32) INIT <'<DLLoanInformation AwardKey=@1@>'> /* Sub  
*S**01 #DLINFO-2(A32) INIT <'<DLLoanInformation AwardKey=@2@>'> /* Usub 
*S**01 #DLINFO-3(A32) INIT <'<DLLoanInformation AwardKey=@3@>'> /* Plus 
*S***       
*S**01 #AWD-TAG-OUT     
*S**  02 #AWD-TAG(A16)  
*S**  02 #FILLER(A84)   
*S***       
*S**01 #DL-SUB(A14)   INIT <'<DLSubsidized>'>   
*S**01 #DL-UNSUB(A16) INIT <'<DLUnsubsidized>'> 
*S**01 #DL-PLUS(A8)   INIT <'<DLPLUS>'>         
*S***       
*S**01 #AWD-TAG-END-OUT 
*S**  02 #AWD-TAG-END(A17)          
*S**  02 #FILLER(A83)   
*S***       
*S**01 #DL-SUB-END(A15)   INIT <'</DLSubsidized>'>          
*S**01 #DL-UNSUB-END(A17) INIT <'</DLUnsubsidized>'>        
*S**01 #DL-PLUS-END(A9)   INIT <'</DLPLUS>'>    
*S***       
*S**01 #ORIG-FEE-OUT    
*S**  02 #ORIG-FEE-S(A23) INIT <'<OriginationFeePercent>'>  
*S**  02 #ORIG-FEE (A7) 
*S**  02 #ORIG-FEE-E(A24) INIT <'</OriginationFeePercent>'> 
*S**  02 #FILLER (A46)  
*S***       
*S**01 #ORIG-REB-OUT    
*S**  02 #ORIG-REB-S(A23) INIT <'<InterestRebatePercent>'>  
*S**  02 #ORIG-REB(A7)  
*S**  02 #ORIG-REB-E(A24) INIT <'</InterestRebatePercent>'> 
*S**  02 #FILLER (A46)  
*S***       
*S**01 #PNOTE-PRT-OUT   
*S**  02 #PN-PRINT-S(A25) INIT <'<PromissoryNotePrintCode>'>
*S**  02 #PN-PRINT (A1) 
*S**  02 #PN-PRINT-E(A26) INIT <'</PromissoryNotePrintCode>'>           
*S**  02 #FILLER (A48)  
*S***       
*S**01 #DISC-PRT-OUT    
*S**  02 #DS-PRINT-S(A30)  INIT <'<DisclosureStatementPrintCode>'>      
*S**  02 #DS-PRINT (A1) 
*S**  02 #DS-PRINT-E(A31)  INIT <'</DisclosureStatementPrintCode>'>     
*S**  02 #FILLER (A38)  
*S***       
*S**01 #STU-CLASS-OUT   
*S**  02 #STU-CLASS-S(A18) INIT <'<StudentLevelCode>'>      
*S**  02 #STU-CLASS(A1) 
*S**  02 #STU-CLASS-E(A19) INIT <'</StudentLevelCode>'>     
*S**  02 #FILLER (A62)  
*S***       
*S**01 #AWD-BEG-OUT     
*S**  02 #LOAN-BEG-DT-S(A25) INIT <'<FinancialAwardBeginDate>'>         
*S**  02 #LOAN-BEG-DT (A10)         
*S**  02 #LOAN-BEG-DT-E(A26) INIT <'</FinancialAwardBeginDate>'>        
*S**  02 #FILLER (A39)  
*S***       
*S**01 #AWD-END-OUT     
*S**  02 #LOAN-END-DT-S(A23) INIT <'<FinancialAwardEndDate>'>           
*S**  02 #LOAN-END-DT (A10)         
*S**  02 #LOAN-END-DT-E(A24) INIT <'</FinancialAwardEndDate>'>          
*S**  02 #FILLER (A43)  
*S***       
*S**01 #ACAD-BEG-OUT    
*S**  02 #ACAD-BEG-DT-S(A23) INIT <'<AcademicYearBeginDate>'>           
*S**  02 #ACAD-BEG-DT (A10)         
*S**  02 #ACAD-BEG-DT-E(A24) INIT <'</AcademicYearBeginDate>'>          
*S**  02 #FILLER (A45)  
*S***       
*S**01 #ACAD-END-OUT    
*S**  02 #ACAD-END-DT-S(A21) INIT <'<AcademicYearEndDate>'> 
*S**  02 #ACAD-END-DT (A10)         
*S**  02 #ACAD-END-DT-E(A22) INIT <'</AcademicYearEndDate>'>
*S**  02 #FILLER (A47)  
*S***       
*S***       
*S**01 #LOANKEY-OUT     
*S**  02 #LOAN-KEY-S(A10)  INIT <'<AwardKey>'>  
*S**  02 #LOAN-KEY(N2)  
*S**  02 #LOAN-KEY-E(A11) INIT <'</AwardKey>'>  
*S**  02 #FILLER (A77)  
*S***       
*S**01 #AWDYR-OUT       
*S**  02 #FIN-AWDYR-S(A20)   INIT <'<FinancialAwardYear>'>  
*S**  02 #FIN-AWDYR (A4)
*S**  02 #FIN-AWDYR-E(A21)   INIT <'</FinancialAwardYear>'> 
*S**  02 #FILLER (A55)  
*S***       
*S**01 #FPSTRAN-OUT     
*S**  02 #FPS-TRAN-S(A22)    INIT <'<FPSTransactionNumber>'>
*S**  02 #FPS-TRAN (A2) 
*S**  02 #FPS-TRAN-E(A23)    INIT <'</FPSTransactionNumber>'>           
*S**  02 #FILLER (A53)  
*S***       
*S**01 #AWDAMT-OUT      
*S**  02 #FIN-AWD-AMT-S(A22) INIT <'<FinancialAwardAmount>'>
*S**  02 #FIN-AWD-AMT (A8)          
*S**  02 #FIN-AWD-AMT-E(A23) INIT <'</FinancialAwardAmount>'>           
*S**  02 #FILLER (A47)  
*S***       
*S**01 #LOAN-NBR-OUT    
*S**  02 #LOAN-NBR-S(A22)  INIT <'<FinancialAwardNumber>'>  
*S**  02 #LOAN-NBR (N3) 
*S**  02 #LOAN-NBR-E(A23)  INIT <'</FinancialAwardNumber>'> 
*S**  02 #FILLER (A52)  
*S**01 #LOAN-NBR-HOLD(A3)           
*S***       
*S**01 #LOANID-OUT      
*S**  02 #LOAN-ID-S(A18) INIT <'<FinancialAwardID>'>        
*S**  02 #LOAN-ID (A23) 
*S**  02 #LOAN-ID-E(A19) INIT <'</FinancialAwardID>'>       
*S**  02 #FILLER (A40)  
*S***       
*S**01 #LOAN-ATTD-COST-OUT          
*S**  02 #LOAN-ATTD-COST-S(A26) INIT <'<DirectLoanAttendanceCost>'>     
*S**  02 #LOAN-ATTD-COST(A9)        
*S**  02 #LOAN-ATTD-COST-E(A27) INIT <'</DirectLoanAttendanceCost>'>    
*S**  02 #FILLER (A38)  
*S***       
*S**01 #LOAN-CREATE-OUT 
*S**  02 #LOAN-DT-S(A26) INIT <'<FinancialAwardCreateDate>'>
*S**  02 #LOAN-DT (A10) 
*S**  02 #LOAN-DT-E(A27) INIT <'</FinancialAwardCreateDate>'>           
*S**  02 #FILLER (A37)  
*S***       
*S**01 #HPPA-OUT        
*S**  02 #HPPA-ELIG-S(A15) INIT <'<HPPAIndicator>'>         
*S**  02 #HPPA-ELIG(A5) 
*S**  02 #HPPA-ELIG-E(A16) INIT <'</HPPAIndicator>'>        
*S**  02 #FILLER (A64)  
*S***       
*S**01 #ADDL-UNS-OUT    
*S**  02 #ADDL-UNS-ELIG-S(A44)      
*S**               INIT <'<AdditionalUnsubsidizedEligibilityIndicator>'>
*S**  02 #ADDL-UNS-ELIG(A5)         
*S**  02 #ADDL-UNS-ELIG-E(A45)      
*S**               INIT <'</AdditionalUnsubsidizedEligibilityIndicator>'>           
*S**  02 #FILLER (A6)   
*S***       
*S**01 #STU-OVP-OUT     
*S**  02 #STU-DEF-OVP-S(A20) INIT <'<DefaultOverpayCode>'>  
*S**  02 #STU-DEF-OVP (A1)          
*S**  02 #STU-DEF-OVP-E(A21) INIT <'</DefaultOverpayCode>'> 
*S**  02 #FILLER (A58)  
*S***       
*S**01 #STU-DEP-OUT     
*S**  02 #STU-DEP-S(A22) INIT <'<DependencyStatusCode>'>    
*S**  02 #STU-DEP (A1)  
*S**  02 #STU-DEP-E(A23) INIT <'</DependencyStatusCode>'>   
*S**  02 #FILLER (A54)  
*S***       
*S**01 #ATB-CODE-OUT    
*S**  02 #ATB-CODE-S   (A24) INIT <'<StudentEligibilityCode>'>          
*S**  02 #ATB-CODE     (A2)         
*S**  02 #ATB-CODE-E   (A25) INIT <'</StudentEligibilityCode>'>         
*S**  02 #FILLER       (A49)        
*S**01 #ATB-ADMN-OUT    
*S**  02 #ATB-ADMN-S   (A39)        
*S**                   INIT <'<AbilityToBenefitTestAdministratorCode>'> 
*S**  02 #ATB-ADMN     (A2)         
*S**  02 #ATB-ADMN-E   (A40)        
*S**                   INIT <'</AbilityToBenefitTestAdministratorCode>'>
*S**  02 #FILLER       (A19)        
*S**01 #ATB-TEST-OUT    
*S**  02 #ATB-TEST-S   (A26) INIT <'<AbilityToBenefitTestCode>'>        
*S**  02 #ATB-TEST     (A2)         
*S**  02 #ATB-TEST-E   (A27) INIT <'</AbilityToBenefitTestCode>'>       
*S**  02 #FILLER       (A45)        
*S**01 #ATB-DATE-OUT    
*S**  02 #ATB-DATE-S   (A32) INIT <'<AbilityToBenefitCompletionDate>'>  
*S**  02 #ATB-DATE     (A10)        
*S**  02 #ATB-DATE-E   (A33) INIT <'</AbilityToBenefitCompletionDate>'> 
*S**  02 #FILLER       (A25)        
*S**01 #ATB-STATE-OUT   
*S**  02 #ATB-STATE-S  (A27) INIT <'<AbilityToBenefitStateCode>'>       
*S**  02 #ATB-STATE    (A2)         
*S**  02 #ATB-STATE-E  (A28) INIT <'</AbilityToBenefitStateCode>'>      
*S**  02 #FILLER       (A43)        
*S***       
*S*** DISB BLOCK        
*S**01 #DISB-START-OUT  
*S**  02 #DISB-NBR-S(A22)    INIT <'<Disbursement Number=@'>
*S**  02 #DISB-NBR (N2) 
*S**  02 #DISB-NBR-E(A2)     INIT <'@>'>        
*S**  02 #FILLER (A74)  
*S***       
*S**01 #DISBAMT-OUT     
*S**  02 #DISB-AMT-S(A20)    INIT <'<DisbursementAmount>'>  
*S**  02 #DISB-AMT (A8) 
*S**  02 #DISB-AMT-E(A21)    INIT <'</DisbursementAmount>'> 
*S**  02 #FILLER (A51)  
*S***       
*S**01 #DISBDT-OUT      
*S**  02 #DISB-DT-S(A18)     INIT <'<DisbursementDate>'>    
*S**  02 #DISB-DT (A10) 
*S**  02 #DISB-DT-E(A19)     INIT <'</DisbursementDate>'>   
*S**  02 #FILLER (A53)  
*S***       
*S**01 #DISB-REL-OUT    
*S**  02 #DISB-RLS-S(A30)    INIT <'<DisbursementReleaseIndicator>'>    
*S**  02 #DISB-RLS (A5) 
*S**  02 #DISB-RLS-E(A31)    INIT <'</DisbursementReleaseIndicator>'>   
*S**  02 #FILLER (A34)  
*S***       
*S**01 #DISB-SEQ-OUT    
*S**  02 #DISB-SEQ-S(A28)    INIT <'<DisbursementSequenceNumber>'>      
*S**  02 #DISB-SEQ(N2)  
*S**  02 #DISB-SEQ-E(A29)    INIT <'</DisbursementSequenceNumber>'>     
*S**  02 #FILLER (A41)  
*S***       
*S**01 #DISB-FIRST-OUT  
*S**  02 #DISB-FIRST-S(A28)    INIT <'<FirstDisbursementIndicator>'>    
*S**  02 #DISB-FIRST (A5)           
*S**  02 #DISB-FIRST-E(A29)    INIT <'</FirstDisbursementIndicator>'>   
*S**  02 #FILLER (A38)  
*S***       
*S**01 #DISB-NET-OUT    
*S**  02 #DISB-NET-S(A23)    INIT <'<DisbursementNetAmount>'>           
*S**  02 #DISB-NET (A8) 
*S**  02 #DISB-NET-E(A24)    INIT <'</DisbursementNetAmount>'>          
*S**  02 #FILLER (A45)  
*S***       
*S**01 #DISB-FEE-OUT    
*S**  02 #DISB-FEE-S(A23)    INIT <'<DisbursementFeeAmount>'>           
*S**  02 #DISB-FEE (A8) 
*S**  02 #DISB-FEE-E(A24)    INIT <'</DisbursementFeeAmount>'>          
*S**  02 #FILLER (A45)  
*S***       
*S**01 #DISB-REB-OUT    
*S**  02 #DISB-REB-S(A22)    INIT <'<InterestRebateAmount>'>
*S**  02 #DISB-REB (A8) 
*S**  02 #DISB-REB-E(A23)    INIT <'</InterestRebateAmount>'>           
*S**  02 #FILLER (A47)  
*S***       
*S**01 #DISB-PAYPD-DATE-OUT         
*S**  02 #DISB-PAYPD-S(A24)  INIT <'<PaymentPeriodStartDate>'>          
*S**  02 #DISB-PAYPD-DATE(A10)      
*S**  02 #DISB-PAYPD-E(A25)  INIT <'</PaymentPeriodStartDate>'>         
*S**  02 #FILLER (A41)  
*S***       
*S**01 #DISB-PAYPD-END-DATE-OUT     
*S**  02 #DISB-PAYPD-END-S(A22) INIT <'<PaymentPeriodEndDate>'>         
*S**  02 #DISB-PAYPD-END-DATE(A10)  
*S**  02 #DISB-PAYPD-END-E(A23) INIT <'</PaymentPeriodEndDate>'>        
*S**  02 #FILLER (A45)  
*S***       
*S**01 #DISB-ENR-STATUS-OUT         
*S**  02 #DISB-ENR-STATUS-S(A18) INIT <'<EnrollmentStatus>'>
*S**  02 #DISB-ENR-STATUS(A1)       
*S**  02 #DISB-ENR-STATUS-E(A19) INIT <'</EnrollmentStatus>'>           
*S**  02 #FILLER (A62)  
*S***       
*S**01 #DISB-CIP-CODE-OUT           
*S**  02 #DISB-CIP-CODE-S(A16)   INIT <'<ProgramCIPCode>'>  
*S**  02 #DISB-CIP-CODE(A7)         
*S**  02 #DISB-CIP-CODE-E(A17)   INIT <'</ProgramCIPCode>'> 
*S**  02 #FILLER (A60)  
*S***       
*S**01 #DISB-ENRSCH-OUT 
*S**  02 #DISB-ENRSCH-S(A22) INIT <'<EnrollmentSchoolCode>'>
*S**  02 #DISB-ENRSCH (A8)          
*S**  02 #DISB-ENRSCH-E(A23) INIT <'</EnrollmentSchoolCode>'>           
*S**  02 #FILLER (A47)  
*S***       
*S**01 #PGM-LGTH-Y-OUT  
*S**  02 #PGM-LGTH-YRS-S(A25) INIT <'<PublishedPgmLengthYears>'>        
*S**  02 #PGM-LGTH-YRS (A7)         
*S**  02 #PGM-LGTH-YRS-E(A26) INIT <'</PublishedPgmLengthYears>'>       
*S**  02 #FILLER (A42)  
*S***       
*S**01 #PGM-LGTH-M-OUT  
*S**  02 #PGM-LGTH-MOS-S(A26) INIT <'<PublishedPgmLengthMonths>'>       
*S**  02 #PGM-LGTH-MOS(A7)          
*S**  02 #PGM-LGTH-MOS-E(A27) INIT <'</PublishedPgmLengthMonths>'>      
*S**  02 #FILLER (A39)  
*S***       
*S**01 #PGM-LGTH-W-OUT  
*S**  02 #PGM-LGTH-WKS-S(A25) INIT <'<PublishedPgmLengthWeeks>'>        
*S**  02 #PGM-LGTH-WKS(A7)          
*S**  02 #PGM-LGTH-WKS-E(A26) INIT <'</PublishedPgmLengthWeeks>'>       
*S**  02 #FILLER (A42)  
*S***       
*S**01 #PGM-ACAD-W-OUT  
*S**  02 #PGM-ACAD-WKS-S(A27) INIT <'<WeeksProgramsAcademicYear>'>      
*S**  02 #PGM-ACAD-WKS (A7)         
*S**  02 #PGM-ACAD-WKS-E(A28) INIT <'</WeeksProgramsAcademicYear>'>     
*S**  02 #FILLER (A38)  
*S***       
*S**01 #SPEC-PGM-OUT    
*S**  02 #SPEC-PGM-S(A17) INIT <'<SpecialPrograms>'>        
*S**  02 #SPEC-PGM (A1) 
*S**  02 #SPEC-PGM-E(A18) INIT <'</SpecialPrograms>'>       
*S**  02 #FILLER (A64)  
*S***       
*S**01 #CRED-LEVEL-OUT  
*S**  02 #CRED-LEV-S(A24) INIT <'<ProgramCredentialLevel>'> 
*S**  02 #CRED-LEV (A2) 
*S**  02 #CRED-LEV-E(A25) INIT <'</ProgramCredentialLevel>'>
*S**  02 #FILLER (A49)  
*S***       
*S**01 #DISB-CIP-CODE-YEAR-OUT      
*S**  02 #DISB-CIP-CODE-YEAR-S (A20)  INIT <'<ProgramCIPCodeYear>'>     
*S**  02 #DISB-CIP-CODE-YEAR (A4)   
*S**  02 #DISB-CIP-CODE-YEAR-E(A21)   INIT <'</ProgramCIPCodeYear>'>    
*S**  02 #FILLER(A55)   
*S***       
*S**01 #DISB-END-OUT    
*S**  02 #DISB-E(A15)        INIT <'</Disbursement>'>       
*S**  02 #FILLER (A85)  
*S***       
*S**01 #LOANINFO-END    
*S** 02 #DL-E        (A20) INIT <'</DLLoanInformation>'>    
*S** 02 #FILLER      (A80)          
*S***       
*S** 01 #STUDENT-END    
*S**   02 #STUDENT-E  (A10) INIT <'</Student>'> 
*S**   02 #FILLER     (A90)         
*S***       
*S** 01 #ATTSCHL-END    
*S**   02 #ATTSCHL-E  (A17) INIT <'</AttendedSchool>'>      
*S**   02 #FILLER     (A83)         
*S** 01 #RPTSCHL-END    
*S**   02 #RPTSCHL-E  (A18) INIT <'</ReportingSchool>'>     
*S**   02 #FILLER     (A82)         
*S** 01 #END-REC        
*S**   02 #COMMONREC-E(A15) INIT <'</CommonRecord>'>        
*S**   02 #FILLER     (A85)         
*S***       
*S** 01 #SUMMARY-COUNTER (P7)       
*S** 01 #READ-COUNTER (P7)          
*S** 01 #WRITE-COUNTER (P7)         
*S** 01 #XML-COUNTER (P7)           
*S***       
*S** 01 #SUB1(P3)       
*S** 01 #AWD-EXISTS (L) INIT <FALSE>
*S** 01 #SUB (L)        
*S** 01 #USUB (L)       
*S** 01 #PLUS (L)       
*S** 01 #WORK-FIELD(A50)
*S** 01 #LINE-OUT(A90)  
*S**END-DEFINE          
*S***       
*S*** Define printers, formats, headings        
*S**EJECT OFF(1)        
*S**FORMAT(1) LS=80 PS=60 ZP=ON IS=OFF ES=OFF SG=OFF        
*S***       
*S*** Load Parameters   
*S**MOVE ##PASS-TEMP TO PASS-BATCH-FLDS         
*S***       
*S**PERFORM TRANSLATE-QUOTES-TO-HEX 
*S**WRITE WORK FILE 3 VARIABLE #XML-LINE1       
*S**WRITE WORK FILE 3 VARIABLE #XML-LINE2       
*S**ADD 2 TO #XML-COUNTER           
*S***       
*S**PROG.   
*S**REPEAT  
*S**READ WORK FILE 1 WFDLS26D       
*S** IF (WFDLS26D.#EXPORT-PROGRAM NOT = 'DLSubsidized   ' AND           
*S**     WFDLS26D.#EXPORT-PROGRAM NOT = 'DLUnsubsidized' AND
*S**     WFDLS26D.#EXPORT-PROGRAM NOT = 'DLPLUS') OR        
*S**    (WFDLS26D.#EXPORT-FAO NOT = #INPUT-FAO) OR          
*S**    (WFDLS26D.#EXPORT-AIDYEAR NOT = #INPUT-AID-YEAR)    
*S**   SKIP(1) 3        
*S**   WRITE(1) 3T 'Input parameters do not match summary file'         
*S**   SKIP(1) 1        
*S**   WRITE(1) 3T 'Correct invalid or missing parameters and re-run job'           
*S**   TERMINATE        
*S** END-IF 
*S** ADD 1 TO #SUMMARY-COUNTER      
*S***       
*S** IF #SUMMARY-COUNTER = 1        
*S**   PERFORM SCHOOL-SETUP         
*S** END-IF 
*S** PERFORM RPT-SUMMARY-SETUP      
*S**END-WORK
*S***       
*S** WRITE WORK FILE 3 VARIABLE #ATTSCHL-BEG    
*S*** WRITE WORK FILE 3 VARIABLE #ATTSCHL-OUT   
*S** COMPRESS #ATTSCHLID-S #ATTSCHLID #ATTSCHLID-E /* #ATTSCHL-OUT      
*S**   INTO #LINE-OUT LEAVING NO SPACE          
*S** WRITE WORK FILE 3 VARIABLE #LINE-OUT       
*S** ADD 2 TO #XML-COUNTER          
*S***       
*S**READ WORK FILE 2 WFDLE26D       
*S** IF (WFDLS26D.#EXPORT-PROGRAM NOT = 'DLSubsidized' AND  
*S**     WFDLS26D.#EXPORT-PROGRAM NOT = 'DLUnsubsidized' AND
*S**     WFDLS26D.#EXPORT-PROGRAM NOT = 'DLPLUS') OR        
*S**    (WFDLS26D.#EXPORT-FAO NOT = #INPUT-FAO) OR          
*S**    (WFDLS26D.#EXPORT-AIDYEAR NOT = #INPUT-AID-YEAR)    
*S**    SKIP(1) 3       
*S**    WRITE(1) 3T 'Input parameters do not match student file'        
*S**    SKIP(1) 1       
*S**    WRITE(1) 3T 'Correct invalid or missing parameters and re-run job'          
*S**    TERMINATE       
*S** END-IF 
*S** ADD 1 TO #READ-COUNTER         
*S***       
*S** RESET INITIAL #STUDENT-SSN-OUT #STUDENT-DOB-OUT #STUDENT-LAST-OUT  
*S**               #STUDENT-SID-OUT #STU-FIRST-OUT #STU-MI-OUT          
*S**               #STU-STREET-OUT #STU-CITY-OUT #STU-STATE-OUT         
*S**               #STU-COUNTRY-OUT #STU-ZIP-OUT #STU-CIT-OUT           
*S**               #BORROWER-SSN-OUT #BORROWER-DOB-OUT #BORROWER-LAST-OUT           
*S**               #BOR-ID-OUT #BOR-FIRST-OUT #BOR-MI-OUT   
*S**               #BOR-STREET-OUT #BOR-CITY-OUT #BOR-STATE-OUT         
*S**               #BOR-COUNTRY-OUT #BOR-ZIP-OUT #BOR-CIT-OUT           
*S**               #BOR-OVP-OUT #LOANINFO-OUT   
*S**               #ORIG-FEE-OUT #ORIG-REB-OUT #PNOTE-PRT-OUT           
*S**               #DISC-PRT-OUT #STU-CLASS-OUT #AWD-BEG-OUT
*S**               #AWD-END-OUT #ACAD-BEG-OUT #ACAD-END-OUT 
*S**               #LOANKEY-OUT #AWDYR-OUT #FPSTRAN-OUT     
*S**               #AWDAMT-OUT #LOAN-NBR-OUT #LOANID-OUT    
*S**               #LOAN-CREATE-OUT #HPPA-OUT #ADDL-UNS-OUT 
*S**               #STU-OVP-OUT #STU-DEP-OUT    
*S**               #ATB-CODE-OUT #ATB-ADMN-OUT #ATB-TEST-OUT
*S**               #ATB-DATE-OUT #ATB-STATE-OUT 
*S***       
*S** PERFORM LOANTYPE-SETUP         
*S** PERFORM STUDENT-SETUP          
*S** PERFORM LOAN-INFO-SETUP        
*S** PERFORM AWARD-SETUP
*S** IF #PLUS           
*S**   PERFORM BORROWER-SETUP       
*S** END-IF 
*S** FOR #SUB1 = 1 TO 12
*S**   IF #E-DISB-NUMBER(#SUB1) > 0 
*S**     PERFORM DISB-SETUP         
*S**     PERFORM TRANSLATE-QUOTES-TO-HEX        
*S**   ELSE 
*S**     ESCAPE BOTTOM  
*S**   END-IF           
*S** END-FOR
*S** WRITE WORK FILE 3 VARIABLE #AWD-TAG-END    
*S** WRITE WORK FILE 3 VARIABLE #STUDENT-END    
*S** ADD 2 TO #XML-COUNTER          
*S** ADD 1 TO #WRITE-COUNTER        
*S***       
*S** IF (#INPUT-RUNMODE = 'TRIAL' OR = 'SAMPLE') AND        
*S**     #INPUT-LIMIT-COUNT > 0     
*S**   IF #WRITE-COUNTER GE #INPUT-LIMIT-COUNT  
*S**     ESCAPE BOTTOM IMMEDIATE    
*S**   END-IF           
*S** END-IF 
*S**END-WORK
*S***       
*S**WRITE WORK FILE 3 VARIABLE #ATTSCHL-END     
*S**WRITE WORK FILE 3 VARIABLE #RPTSCHL-END     
*S**WRITE WORK FILE 3 VARIABLE #END-REC         
*S**ADD 3 TO #XML-COUNTER           
*S**ESCAPE BOTTOM (PROG.) IMMEDIATE 
*S**END-REPEAT          
*S***       
*S*** Print job statistics          
*S**  WRITE(1) NOTITLE  
*S**    15T 'FINANCIER processing:' /           
*S**    17T 'Summary records read:' 
*S**                        (I) 55T #SUMMARY-COUNTER (EM=Z,ZZZ,ZZ9) /   
*S**    17T 'Student records read:' 
*S**                        (I) 55T #READ-COUNTER (EM=Z,ZZZ,ZZ9) //     
*S**    17T 'Student records exported:'         
*S**                        (I) 55T #WRITE-COUNTER (EM=Z,ZZZ,ZZ9) /     
*S**    17T 'XML lines written:'    
*S**                        (I) 55T #XML-COUNTER (EM=Z,ZZZ,ZZ9) /       
*S***       
*S***       
*S*************************************************************************         
*S**DEFINE SUBROUTINE SCHOOL-SETUP  
*S*************************************************************************         
*S**  MOVE EDITED *DATX(EM=YYYY-MM-DD) TO #DOCID-DT         
*S**  MOVE #DOCID-DT  TO #CRT-DATE  
*S**  MOVE *TIME TO #DOCID-TM       
*S**                #CRT-TIME       
*S**  MOVE WFDLS26D.#EXPORT-ENTITY  TO #SCHOOLID
*S**                                   #DOCID-SCHL          
*S**                                   #RPTSCHLID           
*S**                                   #ATTSCHLID           
*S**  MOVE 'T'   TO #DOCID-T        
*S**                #CRT-T          
*S**  MOVE '0'   TO #DOCID-SEC      
*S**                #CRT-SEC        
*S***       
*S** WRITE WORK FILE 3 VARIABLE #TRANSDATA-BEG  
*S*** WRITE WORK FILE 3 VARIABLE #DOCUMENT-OUT  
*S** MOVE LEFT JUSTIFIED #DOCID-DT TO #DOCID-DT /* #DOCUMENT-OUT        
*S** COMPRESS #DOCID-S #DOCUMENT-ID #DOCID-E   /* #DOCUMENT-OUT         
*S**   INTO #LINE-OUT LEAVING NO SPACE          
*S** WRITE WORK FILE 3 VARIABLE #LINE-OUT       
*S** WRITE WORK FILE 3 VARIABLE #CREATE-OUT     
*S** WRITE WORK FILE 3 VARIABLE #SOURCE-BEG     
*S** WRITE WORK FILE 3 VARIABLE #SCHOOL-BEG     
*S*** WRITE WORK FILE 3 VARIABLE #SCHOOL-OUT    
*S** COMPRESS #SCHOOLID-S #SCHOOLID #SCHOOLID-E   /* #SCHOOL-OUT        
*S**   INTO #LINE-OUT LEAVING NO SPACE          
*S** WRITE WORK FILE 3 VARIABLE #LINE-OUT       
*S** WRITE WORK FILE 3 VARIABLE #SCHOOL-END     
*S** WRITE WORK FILE 3 VARIABLE #SOURCE-END     
*S** WRITE WORK FILE 3 VARIABLE #DEST-BEG       
*S** WRITE WORK FILE 3 VARIABLE #COD-BEG        
*S** WRITE WORK FILE 3 VARIABLE #COD-OUT        
*S** WRITE WORK FILE 3 VARIABLE #COD-END        
*S** WRITE WORK FILE 3 VARIABLE #DEST-END       
*S** WRITE WORK FILE 3 VARIABLE #SOFTWARE-BEG   
*S** WRITE WORK FILE 3 VARIABLE #SW-PROVIDER-OUT
*S** WRITE WORK FILE 3 VARIABLE #SW-VERSION-OUT 
*S** WRITE WORK FILE 3 VARIABLE #SOFTWARE-END   
*S** WRITE WORK FILE 3 VARIABLE #FULLRESP-OUT   
*S** WRITE WORK FILE 3 VARIABLE #TRANSDATA-END  
*S** WRITE WORK FILE 3 VARIABLE #RPTSCHL-BEG    
*S*** WRITE WORK FILE 3 VARIABLE #RPTSCHL-OUT   
*S** COMPRESS #RPTSCHLID-S #RPTSCHLID #RPTSCHLID-E /* #RPTSCHL-OUT      
*S**   INTO #LINE-OUT LEAVING NO SPACE          
*S** WRITE WORK FILE 3 VARIABLE #LINE-OUT       
*S** ADD 21 TO #XML-COUNTER         
*S**END-SUBROUTINE /* SCHOOL-SETUP  
*S***       
*S*************************************************************************         
*S**DEFINE SUBROUTINE LOANTYPE-SETUP
*S*************************************************************************         
*S**  RESET #SUB #USUB #PLUS        
*S**  DECIDE ON FIRST VALUE OF WFDLE26D.#EXPORT-PROGRAM     
*S**     VALUE 'DLSubsidized  '     
*S**        ASSIGN #SUB = TRUE      
*S**        MOVE #DLINFO-1 TO #LOANINFO         
*S**        MOVE #DL-SUB   TO #AWD-TAG          
*S**        MOVE #DL-SUB-END TO #AWD-TAG-END    
*S**        MOVE 1         TO #LOAN-KEY         
*S**     VALUE 'DLUnsubsidized'     
*S**        ASSIGN #USUB = TRUE     
*S**        MOVE #DLINFO-2 TO #LOANINFO         
*S**        MOVE #DL-UNSUB TO #AWD-TAG          
*S**        MOVE #DL-UNSUB-END TO #AWD-TAG-END  
*S**        MOVE 2         TO #LOAN-KEY         
*S**     VALUE 'DLPLUS        '     
*S**        ASSIGN #PLUS = TRUE     
*S**        MOVE #DLINFO-3 TO #LOANINFO         
*S**        MOVE #DL-PLUS  TO #AWD-TAG          
*S**        MOVE #DL-PLUS-END TO #AWD-TAG-END   
*S**        MOVE 3         TO #LOAN-KEY         
*S**     NONE           
*S**        WRITE 'invalid pgm'     
*S** END-DECIDE         
*S**END-SUBROUTINE /* LOANTYPE-SETUP
*S***       
*S*************************************************************************         
*S**DEFINE SUBROUTINE RPT-SUMMARY-SETUP         
*S*************************************************************************         
*S**  IF #E-SUMM-STUDENT > 0        
*S**    MOVE WFDLS26D.#EXPORT-PROGRAM TO #FINAWD-TYPE       
*S**    MOVE WFDLS26D.#EXPORT-AIDYEAR TO #FINAWD-YR         
*S**    MOVE EDITED #E-SUMM-STUDENT(EM=ZZZZZZZZ9)      TO #TOT-COUNT    
*S**    MOVE EDITED #E-SUMM-AWARD(EM=ZZZZZZZZZZZZ9.99) TO #TOT-RPT-AWD  
*S**    MOVE EDITED #E-SUMM-DISB(EM=ZZZZZZZZZZZZ9.99)  TO #TOT-RPT-DSB  
*S***       
*S**    WRITE WORK FILE 3 VARIABLE #RPTSUMM-BEG 
*S***   WRITE WORK FILE 3 VARIABLE #FINTYPE-OUT 
*S**    COMPRESS #FINAWD-TYPE-S #FINAWD-TYPE #FINAWD-TYPE-E /* #FINTYPE-OUT         
*S**      INTO #LINE-OUT LEAVING NO SPACE       
*S**    WRITE WORK FILE 3 VARIABLE #LINE-OUT    
*S**    WRITE WORK FILE 3 VARIABLE #FINYR-OUT   
*S***   WRITE WORK FILE 3 VARIABLE #COUNT-OUT   
*S**    MOVE LEFT JUSTIFIED #TOT-COUNT TO #TOT-COUNT  /* #COUNT-OUT     
*S**    COMPRESS #TOT-COUNT-S #TOT-COUNT #TOT-COUNT-E /* #COUNT-OUT     
*S**      INTO #LINE-OUT LEAVING NO SPACE       
*S**    WRITE WORK FILE 3 VARIABLE #LINE-OUT    
*S***   WRITE WORK FILE 3 VARIABLE #TOT-AWD-OUT 
*S**    MOVE LEFT JUSTIFIED #TOT-RPT-AWD TO #TOT-RPT-AWD    /* #TOT-AWD-OUT         
*S**    COMPRESS #TOT-RPT-AWD-S #TOT-RPT-AWD #TOT-RPT-AWD-E /* #TOT-AWD-OUT         
*S**      INTO #LINE-OUT LEAVING NO SPACE       
*S**    WRITE WORK FILE 3 VARIABLE #LINE-OUT    
*S***   WRITE WORK FILE 3 VARIABLE #TOT-DSB-OUT 
*S**    MOVE LEFT JUSTIFIED #TOT-RPT-DSB TO #TOT-RPT-DSB    /* #TOT-DSB-OUT         
*S**    COMPRESS #TOT-RPT-DSB-S #TOT-RPT-DSB #TOT-RPT-DSB-E /* #TOT-DSB-OUT         
*S**      INTO #LINE-OUT LEAVING NO SPACE       
*S**    WRITE WORK FILE 3 VARIABLE #LINE-OUT    
*S**    WRITE WORK FILE 3 VARIABLE #RPTSUMM-END 
*S**    ADD 7 TO #XML-COUNTER       
*S**  END-IF
*S**END-SUBROUTINE /* RPT-SUMMARY-SETUP         
*S***       
*S*************************************************************************         
*S**DEFINE SUBROUTINE STUDENT-SETUP 
*S*************************************************************************         
*S**  MOVE #E-ORIG-STU-SSN      TO #STU-SSN     
*S**  MOVE EDITED #E-ORIG-STU-DOB(EM=YYYY-MM-DD) TO #STU-DOB
*S**  MOVE #E-ORIG-STU-LAST     TO #STU-LAST    
*S**  EXAMINE #STU-LAST FOR ' ' DELETE          
*S**  MOVE #E-ORIG-STUDENT-ID   TO #STU-SID     
*S**  MOVE #E-ORIG-STU-FIRST    TO #STU-FIRST   
*S**  MOVE #E-ORIG-STU-MI       TO #STU-MI      
*S**  MOVE #E-ORIG-STU-AD-STRT  TO #WORK-FIELD  
*S**  EXAMINE #WORK-FIELD '&' REPLACE '&amp;'   
*S**  EXAMINE #WORK-FIELD SINGLE-QUOTE REPLACE '&apos;'     
*S**  MOVE #WORK-FIELD  TO #STU-STRT
*S**  MOVE #E-ORIG-STU-AD-CITY  TO #WORK-FIELD  
*S**  EXAMINE #WORK-FIELD '&' REPLACE '&amp;'   
*S**  EXAMINE #WORK-FIELD SINGLE-QUOTE REPLACE '&apos;'     
*S**  MOVE #WORK-FIELD  TO #STU-CITY
*S**  MOVE #E-ORIG-STU-AD-STATE TO #STU-STATE   
*S**  MOVE #E-ORIG-STU-AD-ZIP   TO #STU-ZIP     
*S**  MOVE #E-ORIG-STU-CIT      TO #STU-CIT     
*S***       
*S**  WRITE WORK FILE 3 VARIABLE #STUDENT-BEG   
*S**  WRITE WORK FILE 3 VARIABLE #STUINDEX-BEG  
*S**  WRITE WORK FILE 3 VARIABLE #STUDENT-SSN-OUT           
*S**  WRITE WORK FILE 3 VARIABLE #STUDENT-DOB-OUT           
*S*** WRITE WORK FILE 3 VARIABLE #STUDENT-LAST-OUT          
*S**  COMPRESS #STU-LAST-S #STU-LAST #STU-LAST-E /* #STUDENT-LAST-OUT   
*S**    INTO #LINE-OUT LEAVING NO SPACE         
*S**  WRITE WORK FILE 3 VARIABLE #LINE-OUT      
*S**  WRITE WORK FILE 3 VARIABLE #STUINDEX-END  
*S**  WRITE WORK FILE 3 VARIABLE #STU-PERSID-BEG
*S**  WRITE WORK FILE 3 VARIABLE #STUDENT-SID-OUT           
*S**  WRITE WORK FILE 3 VARIABLE #STU-PERSID-END
*S**  WRITE WORK FILE 3 VARIABLE #STU-NAME-BEG  
*S*** WRITE WORK FILE 3 VARIABLE #STU-FIRST-OUT 
*S**  COMPRESS #STU-FIRST-S #STU-FIRST #STU-FIRST-E /* #STU-FIRST-OUT   
*S**    INTO #LINE-OUT LEAVING NO SPACE         
*S**  WRITE WORK FILE 3 VARIABLE #LINE-OUT      
*S*** WRITE WORK FILE 3 VARIABLE #STU-MI-OUT    
*S**  IF #STU-MI NE ' ' 
*S**    COMPRESS #STU-MI-S #STU-MI #STU-MI-E /* #STU-MI-OUT 
*S**      INTO #LINE-OUT LEAVING NO SPACE       
*S**    WRITE WORK FILE 3 VARIABLE #LINE-OUT    
*S**    ADD 1 TO #XML-COUNTER       
*S**  END-IF
*S**  WRITE WORK FILE 3 VARIABLE #STU-NAME-END  
*S**  WRITE WORK FILE 3 VARIABLE #STU-CONTACT-BEG           
*S**  WRITE WORK FILE 3 VARIABLE #STU-ADDRESS-BEG           
*S*** WRITE WORK FILE 3 VARIABLE #STU-STREET-OUT
*S**  COMPRESS #STU-STRT-S #STU-STRT #STU-STRT-E /* #STU-STREET-OUT     
*S**    INTO #LINE-OUT LEAVING NO SPACE         
*S**  WRITE WORK FILE 3 VARIABLE #LINE-OUT      
*S*** WRITE WORK FILE 3 VARIABLE #STU-CITY-OUT  
*S**  COMPRESS #STU-CITY-S #STU-CITY #STU-CITY-E /* #STU-CITY-OUT       
*S**    INTO #LINE-OUT LEAVING NO SPACE         
*S**  WRITE WORK FILE 3 VARIABLE #LINE-OUT      
*S*** WRITE WORK FILE 3 VARIABLE #STU-STATE-OUT 
*S**  COMPRESS #STU-STATE-S #STU-STATE #STU-STATE-E /* #STU-STATE-OUT   
*S**    INTO #LINE-OUT LEAVING NO SPACE         
*S**  WRITE WORK FILE 3 VARIABLE #LINE-OUT      
*S*** WRITE WORK FILE 3 VARIABLE #STU-ZIP-OUT   
*S**  COMPRESS #STU-ZIP-S #STU-ZIP #STU-ZIP-E /* #STU-ZIP-OUT           
*S**    INTO #LINE-OUT LEAVING NO SPACE         
*S**  WRITE WORK FILE 3 VARIABLE #LINE-OUT      
*S**  WRITE WORK FILE 3 VARIABLE #STU-ADDRESS-END           
*S**  WRITE WORK FILE 3 VARIABLE #STU-CONTACT-END           
*S**  WRITE WORK FILE 3 VARIABLE #STU-CIT-BEG   
*S**  WRITE WORK FILE 3 VARIABLE #STU-CIT-OUT   
*S**  WRITE WORK FILE 3 VARIABLE #STU-CIT-END   
*S**  ADD 23 TO #XML-COUNTER        
*S**END-SUBROUTINE /* STUDENT-SETUP 
*S***       
*S*************************************************************************         
*S**DEFINE SUBROUTINE LOAN-INFO-SETUP           
*S*************************************************************************         
*S**  MOVE EDITED #E-ORIG-FEE-PCT(EM=ZZ9.999) TO #ORIG-FEE  
*S**  MOVE EDITED #E-ORIG-REB-PCT(EM=ZZ9.999) TO #ORIG-REB  
*S**  MOVE #E-ORIG-PN-PRINT TO #PN-PRINT        
*S**  MOVE #E-ORIG-DS-PRINT TO #DS-PRINT        
*S**  MOVE #E-ORIG-STU-CLASS TO #STU-CLASS      
*S**  MOVE EDITED #E-ORIG-LOAN-BEG-DATE(EM=YYYY-MM-DD) TO #LOAN-BEG-DT  
*S**  MOVE EDITED #E-ORIG-LOAN-END-DATE(EM=YYYY-MM-DD) TO #LOAN-END-DT  
*S**  MOVE EDITED #E-ORIG-ACAD-BEG-DATE(EM=YYYY-MM-DD) TO #ACAD-BEG-DT  
*S**  MOVE EDITED #E-ORIG-ACAD-END-DATE(EM=YYYY-MM-DD) TO #ACAD-END-DT  
*S***       
*S***       
*S**  WRITE WORK FILE 3 VARIABLE #LOANINFO-OUT  
*S*** WRITE WORK FILE 3 VARIABLE #ORIG-FEE-OUT  
*S**  MOVE LEFT JUSTIFIED #ORIG-FEE TO #ORIG-FEE /* #ORIG-FEE-OUT       
*S**  COMPRESS #ORIG-FEE-S #ORIG-FEE #ORIG-FEE-E /* #ORIG-FEE-OUT       
*S**    INTO #LINE-OUT LEAVING NO SPACE         
*S**  WRITE WORK FILE 3 VARIABLE #LINE-OUT      
*S*** WRITE WORK FILE 3 VARIABLE #ORIG-REB-OUT  
*S**  MOVE LEFT JUSTIFIED #ORIG-REB TO #ORIG-REB /* #ORIG-REB-OUT       
*S**  COMPRESS #ORIG-REB-S #ORIG-REB #ORIG-REB-E /* #ORIG-REB-OUT       
*S**    INTO #LINE-OUT LEAVING NO SPACE         
*S**  WRITE WORK FILE 3 VARIABLE #LINE-OUT      
*S**  WRITE WORK FILE 3 VARIABLE #PNOTE-PRT-OUT 
*S**  WRITE WORK FILE 3 VARIABLE #DISC-PRT-OUT  
*S**  WRITE WORK FILE 3 VARIABLE #STU-CLASS-OUT 
*S*** WRITE WORK FILE 3 VARIABLE #AWD-BEG-OUT   
*S**  MOVE LEFT JUSTIFIED #LOAN-BEG-DT TO #LOAN-BEG-DT  /* #AWD-BEG-OUT 
*S**  COMPRESS #LOAN-BEG-DT-S #LOAN-BEG-DT #LOAN-BEG-DT-E /* #AWD-BEG-OUT           
*S**    INTO #LINE-OUT LEAVING NO SPACE         
*S**  WRITE WORK FILE 3 VARIABLE #LINE-OUT      
*S*** WRITE WORK FILE 3 VARIABLE #AWD-END-OUT   
*S**  MOVE LEFT JUSTIFIED #LOAN-END-DT TO #LOAN-END-DT  /* #AWD-END-OUT 
*S**  COMPRESS #LOAN-END-DT-S #LOAN-END-DT #LOAN-END-DT-E /* #AWD-END-OUT           
*S**    INTO #LINE-OUT LEAVING NO SPACE         
*S**  WRITE WORK FILE 3 VARIABLE #LINE-OUT      
*S*** WRITE WORK FILE 3 VARIABLE #ACAD-BEG-OUT  
*S**  MOVE LEFT JUSTIFIED #ACAD-BEG-DT TO #ACAD-BEG-DT  /* #ACAD-BEG-OUT
*S**  COMPRESS #ACAD-BEG-DT-S #ACAD-BEG-DT #ACAD-BEG-DT-E /* #ACAD-BEG-OUT          
*S**    INTO #LINE-OUT LEAVING NO SPACE         
*S**  WRITE WORK FILE 3 VARIABLE #LINE-OUT      
*S*** WRITE WORK FILE 3 VARIABLE #ACAD-END-OUT  
*S**  MOVE LEFT JUSTIFIED #ACAD-END-DT TO #ACAD-END-DT  /* #ACAD-END-OUT
*S**  COMPRESS #ACAD-END-DT-S #ACAD-END-DT #ACAD-END-DT-E /* #ACAD-END-OUT          
*S**    INTO #LINE-OUT LEAVING NO SPACE         
*S**  WRITE WORK FILE 3 VARIABLE #LINE-OUT      
*S**  WRITE WORK FILE 3 VARIABLE #LOANINFO-END  
*S**  ADD 9 TO #XML-COUNTER         
*S**END-SUBROUTINE /* LOAN-INFO-SETUP           
*S***       
*S*************************************************************************         
*S**DEFINE SUBROUTINE AWARD-SETUP   
*S*************************************************************************         
*S**  MOVE WFDLE26D.#EXPORT-AIDYEAR       TO #FIN-AWDYR     
*S**  MOVE #E-ORIG-TRANS-NO  TO #FPS-TRAN       
*S**  MOVE EDITED #E-ORIG-AWARD(EM=ZZZZ9.99) TO #FIN-AWD-AMT
*S**  MOVE #E-ORIG-STU-DEP     TO #STU-DEP      
*S**  MOVE #E-ORIG-STU-DEF-OVP TO #STU-DEF-OVP  
*S**  MOVE #E-ORIG-LOAN-ID     TO #LOAN-ID      
*S**  MOVE EDITED #E-ORIG-ATTD-COST(EM=999999999) TO #LOAN-ATTD-COST    
*S**  MOVE SUBSTRING(#E-ORIG-LOAN-ID,21,3) TO #LOAN-NBR-HOLD
*S**  ASSIGN #LOAN-NBR = VAL(#LOAN-NBR-HOLD)    
*S**  MOVE EDITED #E-ORIG-LOAN-DATE(EM=YYYY-MM-DD) TO #LOAN-DT          
*S**  IF #E-ORIG-HPPA-ELIG = 'Y'    
*S**    MOVE 'true' TO #HPPA-ELIG   
*S**  ELSE  
*S**    MOVE 'false' TO #HPPA-ELIG  
*S**  END-IF
*S**  IF #E-ORIG-ADDL-UNS-ELIG = 'Y'
*S**    MOVE 'true' TO #ADDL-UNS-ELIG           
*S**  ELSE  
*S**    MOVE 'false' TO #ADDL-UNS-ELIG          
*S**  END-IF
*S***       
*S**  MOVE #E-ORIG-ATB-CODE                       TO #ATB-CODE          
*S**  MOVE #E-ORIG-ATB-ADMN                       TO #ATB-ADMN          
*S**  MOVE #E-ORIG-ATB-TEST                       TO #ATB-TEST          
*S**  MOVE EDITED #E-ORIG-ATB-DATE(EM=YYYY-MM-DD) TO #ATB-DATE          
*S**  MOVE #E-ORIG-ATB-STATE                      TO #ATB-STATE         
*S***       
*S**  WRITE WORK FILE 3 VARIABLE #AWD-TAG-OUT   
*S**  WRITE WORK FILE 3 VARIABLE #LOANKEY-OUT   
*S**  WRITE WORK FILE 3 VARIABLE #AWDYR-OUT     
*S**  IF #FPS-TRAN NE ' '           
*S**    WRITE WORK FILE 3 VARIABLE #FPSTRAN-OUT 
*S**    ADD 1 TO #XML-COUNTER       
*S**  END-IF
*S*** WRITE WORK FILE 3 VARIABLE #AWDAMT-OUT    
*S**  MOVE LEFT JUSTIFIED #FIN-AWD-AMT TO #FIN-AWD-AMT    /* #AWDAMT-OUT
*S**  COMPRESS #FIN-AWD-AMT-S #FIN-AWD-AMT #FIN-AWD-AMT-E /* #AWDAMT-OUT
*S**    INTO #LINE-OUT LEAVING NO SPACE         
*S**  WRITE WORK FILE 3 VARIABLE #LINE-OUT      
*S**  IF #STU-DEP NE ' '
*S**    WRITE WORK FILE 3 VARIABLE #STU-DEP-OUT 
*S**  END-IF
*S**  WRITE WORK FILE 3 VARIABLE #STU-OVP-OUT   
*S***       
*S**  WRITE WORK FILE 3 VARIABLE #LOAN-NBR-OUT  
*S*** WRITE WORK FILE 3 VARIABLE #LOANID-OUT    
*S**  COMPRESS #LOAN-ID-S #LOAN-ID #LOAN-ID-E          /*#LOANID-OUT    
*S**  INTO #LINE-OUT LEAVING NO SPACE           
*S**  WRITE WORK FILE 3 VARIABLE #LINE-OUT      
*S***       
*S*** WRITE WORK FILE 3 VARIABLE #LOAN-ATTD-COST-OUT        
*S**  COMPRESS #LOAN-ATTD-COST-S #LOAN-ATTD-COST #LOAN-ATTD-COST-E      
*S**  INTO #LINE-OUT LEAVING NO SPACE           
*S**  WRITE WORK FILE 3 VARIABLE #LINE-OUT      
*S***       
*S**  WRITE WORK FILE 3 VARIABLE #LOAN-CREATE-OUT           
*S***       
*S**  IF #ATB-CODE NE ' '           
*S***   WRITE WORK FILE 3 VARIABLE #ATB-CODE-OUT
*S**    COMPRESS #ATB-CODE-S #ATB-CODE #ATB-CODE-E   /*#ATB-CODE-OUT    
*S**    INTO #LINE-OUT LEAVING NO SPACE         
*S**    WRITE WORK FILE 3 VARIABLE #LINE-OUT    
*S**    ADD 1 TO #XML-COUNTER       
*S**    IF #ATB-ADMN NE ' '         
*S***     WRITE WORK FILE 3 VARIABLE #ATB-ADMN-OUT          
*S**      COMPRESS #ATB-ADMN-S #ATB-ADMN #ATB-ADMN-E   /*#ATB-ADMN-OUT  
*S**      INTO #LINE-OUT LEAVING NO SPACE       
*S**      WRITE WORK FILE 3 VARIABLE #LINE-OUT  
*S**      ADD 1 TO #XML-COUNTER     
*S**    END-IF          
*S**    IF #ATB-TEST NE ' '         
*S***     WRITE WORK FILE 3 VARIABLE #ATB-TEST-OUT          
*S**      COMPRESS #ATB-TEST-S #ATB-TEST #ATB-TEST-E   /*#ATB-TEST-OUT  
*S**      INTO #LINE-OUT LEAVING NO SPACE       
*S**      WRITE WORK FILE 3 VARIABLE #LINE-OUT  
*S**      ADD 1 TO #XML-COUNTER     
*S**    END-IF          
*S**    IF #ATB-STATE NE ' '        
*S***     WRITE WORK FILE 3 VARIABLE #ATB-STATE-OUT         
*S**      COMPRESS #ATB-STATE-S #ATB-STATE #ATB-STATE-E   /*#ATB-STATE-OUT          
*S**      INTO #LINE-OUT LEAVING NO SPACE       
*S**      WRITE WORK FILE 3 VARIABLE #LINE-OUT  
*S**      ADD 1 TO #XML-COUNTER     
*S**    END-IF          
*S**    IF #ATB-DATE NE ' '         
*S***     WRITE WORK FILE 3 VARIABLE #ATB-DATE-OUT          
*S**      MOVE LEFT JUSTIFIED #ATB-DATE TO #ATB-DATE        /*#ATB-DATE-OUT         
*S**      COMPRESS #ATB-DATE-S #ATB-DATE #ATB-DATE-E        /*#ATB-DATE-OUT         
*S**      INTO #LINE-OUT LEAVING NO SPACE       
*S**      WRITE WORK FILE 3 VARIABLE #LINE-OUT  
*S**      ADD 1 TO #XML-COUNTER     
*S**    END-IF          
*S**  END-IF
*S***       
*S**  IF #USUB          
*S**    IF #HPPA-ELIG NE ' '        
*S**      WRITE WORK FILE 3 VARIABLE #HPPA-OUT  
*S**      ADD 1 TO #XML-COUNTER     
*S**    END-IF          
*S**    IF #ADDL-UNS-ELIG NE ' '    
*S**      WRITE WORK FILE 3 VARIABLE #ADDL-UNS-OUT          
*S**      ADD 1 TO #XML-COUNTER     
*S**    END-IF          
*S**  END-IF
*S**  ADD 10 TO #XML-COUNTER        
*S**END-SUBROUTINE /* AWARD-SETUP   
*S***       
*S*************************************************************************         
*S**DEFINE SUBROUTINE BORROWER-SETUP
*S*************************************************************************         
*S**  MOVE #E-ORIG-PAR-SSN   TO #BOR-SSN        
*S**  MOVE EDITED #E-ORIG-PAR-DOB(EM=YYYY-MM-DD) TO #BOR-DOB
*S**  MOVE #E-ORIG-PAR-LAST  TO #BOR-LAST       
*S**  MOVE #E-ORIG-PAR-FIRST TO #BOR-FIRST      
*S**  MOVE #E-ORIG-PAR-MI    TO #BOR-MI         
*S**  MOVE #E-ORIG-PARENT-ID TO #BOR-ID         
*S**  MOVE #E-ORIG-PAR-AD-STRT  TO #WORK-FIELD  
*S**  EXAMINE #WORK-FIELD '&' REPLACE '&amp;'   
*S**  EXAMINE #WORK-FIELD SINGLE-QUOTE REPLACE '&apos;'     
*S**  MOVE #WORK-FIELD  TO #BOR-STRT
*S**  MOVE #E-ORIG-PAR-AD-CITY  TO #WORK-FIELD  
*S**  EXAMINE #WORK-FIELD '&' REPLACE '&amp;'   
*S**  EXAMINE #WORK-FIELD SINGLE-QUOTE REPLACE '&apos;'     
*S**  MOVE #WORK-FIELD  TO #BOR-CITY
*S**  MOVE #E-ORIG-PAR-AD-STATE TO  #BOR-STATE  
*S**  MOVE #E-ORIG-PAR-AD-CNTRY TO  #BOR-CNTRY  
*S**  MOVE #E-ORIG-PAR-AD-ZIP   TO  #BOR-ZIP    
*S**  MOVE #E-ORIG-PAR-CIT      TO  #BOR-CIT    
*S**  MOVE #E-ORIG-PAR-DEF-OVP  TO  #BOR-DEF-OVP
*S***       
*S**  WRITE WORK FILE 3 VARIABLE #BORROWER-BEG  
*S**  WRITE WORK FILE 3 VARIABLE #BORINDEX-BEG  
*S**  WRITE WORK FILE 3 VARIABLE #BORROWER-SSN-OUT          
*S**  WRITE WORK FILE 3 VARIABLE #BORROWER-DOB-OUT          
*S*** WRITE WORK FILE 3 VARIABLE #BORROWER-LAST-OUT         
*S**  COMPRESS #BOR-LAST-S #BOR-LAST #BOR-LAST-E /* #BORROWER-LAST-OUT  
*S**    INTO #LINE-OUT LEAVING NO SPACE         
*S**  WRITE WORK FILE 3 VARIABLE #LINE-OUT      
*S**  WRITE WORK FILE 3 VARIABLE #BORINDEX-END  
*S**  WRITE WORK FILE 3 VARIABLE #BOR-NAME-BEG  
*S*** WRITE WORK FILE 3 VARIABLE #BOR-FIRST-OUT 
*S**  COMPRESS #BOR-FIRST-S #BOR-FIRST #BOR-FIRST-E /* #BOR-FIRST-OUT   
*S**    INTO #LINE-OUT LEAVING NO SPACE         
*S**  WRITE WORK FILE 3 VARIABLE #LINE-OUT      
*S*** WRITE WORK FILE 3 VARIABLE #BOR-MI-OUT    
*S**  IF #BOR-MI NE ' ' 
*S**    COMPRESS #BOR-MI-S #BOR-MI #BOR-MI-E /* #BOR-MI-OUT 
*S**      INTO #LINE-OUT LEAVING NO SPACE       
*S**    WRITE WORK FILE 3 VARIABLE #LINE-OUT    
*S**    ADD 1 TO #XML-COUNTER       
*S**  END-IF
*S**  WRITE WORK FILE 3 VARIABLE #BOR-NAME-END  
*S**  WRITE WORK FILE 3 VARIABLE #BOR-CONTACT-BEG           
*S**  WRITE WORK FILE 3 VARIABLE #BOR-ADDRESS-BEG           
*S*** WRITE WORK FILE 3 VARIABLE #BOR-STREET-OUT
*S**  COMPRESS #BOR-STRT-S #BOR-STRT #BOR-STRT-E /* #BOR-STREET-OUT     
*S**    INTO #LINE-OUT LEAVING NO SPACE         
*S**  WRITE WORK FILE 3 VARIABLE #LINE-OUT      
*S*** WRITE WORK FILE 3 VARIABLE #BOR-CITY-OUT  
*S**  COMPRESS #BOR-CITY-S #BOR-CITY #BOR-CITY-E /* #BOR-CITY-OUT       
*S**    INTO #LINE-OUT LEAVING NO SPACE         
*S**  WRITE WORK FILE 3 VARIABLE #LINE-OUT      
*S*** WRITE WORK FILE 3 VARIABLE #BOR-STATE-OUT 
*S**  COMPRESS #BOR-STATE-S #BOR-STATE #BOR-STATE-E /* #BOR-STATE-OUT   
*S**    INTO #LINE-OUT LEAVING NO SPACE         
*S**  WRITE WORK FILE 3 VARIABLE #LINE-OUT      
*S*** WRITE WORK FILE 3 VARIABLE #BOR-ZIP-OUT   
*S**  COMPRESS #BOR-ZIP-S #BOR-ZIP #BOR-ZIP-E /* #BOR-ZIP-OUT           
*S**    INTO #LINE-OUT LEAVING NO SPACE         
*S**  WRITE WORK FILE 3 VARIABLE #LINE-OUT      
*S**  IF #BOR-CNTRY NE ' '          
*S***   WRITE WORK FILE 3 VARIABLE #BOR-COUNTRY-OUT         
*S**    COMPRESS #BOR-CNTRY-S #BOR-CNTRY #BOR-CNTRY-E /* #BOR-ZIP-OUT   
*S**      INTO #LINE-OUT LEAVING NO SPACE       
*S**    WRITE WORK FILE 3 VARIABLE #LINE-OUT    
*S**    ADD 1 TO #XML-COUNTER       
*S**  END-IF
*S**  WRITE WORK FILE 3 VARIABLE #BOR-ADDRESS-END           
*S**  WRITE WORK FILE 3 VARIABLE #BOR-CONTACT-END           
*S**  WRITE WORK FILE 3 VARIABLE #BOR-CIT-BEG   
*S**  WRITE WORK FILE 3 VARIABLE #BOR-CIT-OUT   
*S**  WRITE WORK FILE 3 VARIABLE #BOR-CIT-END   
*S**  WRITE WORK FILE 3 VARIABLE #BORNOTE-BEG   
*S**  WRITE WORK FILE 3 VARIABLE #BOR-ID-OUT    
*S**  WRITE WORK FILE 3 VARIABLE #BORNOTE-END   
*S*** WRITE WORK FILE 3 VARIABLE #BOR-OVP-OUT   
*S**  COMPRESS #BOR-DEF-OVP-S #BOR-DEF-OVP #BOR-DEF-OVP-E /* #BOR-OVP-OUT           
*S**    INTO #LINE-OUT LEAVING NO SPACE         
*S**  WRITE WORK FILE 3 VARIABLE #LINE-OUT      
*S**  WRITE WORK FILE 3 VARIABLE #BORROWER-END  
*S**  ADD 24 TO #XML-COUNTER        
*S**END-SUBROUTINE /* BORROWER-SETUP
*S***       
*S*************************************************************************         
*S**DEFINE SUBROUTINE DISB-SETUP    
*S*************************************************************************         
*S**  MOVE #E-DISB-NUMBER(#SUB1) TO #DISB-NBR   
*S**  MOVE #E-DISB-SEQ(#SUB1)  TO #DISB-SEQ     
*S**  MOVE EDITED #E-DISB-AMOUNT(#SUB1)(EM=ZZZZ9.99) TO #DISB-AMT       
*S**  MOVE EDITED #E-DISB-FEE(#SUB1)(EM=ZZZZ9.99) TO #DISB-FEE          
*S**  MOVE EDITED #E-DISB-REB(#SUB1)(EM=ZZZZ9.99) TO #DISB-REB          
*S**  MOVE EDITED #E-DISB-NET(#SUB1)(EM=ZZZZ9.99) TO #DISB-NET          
*S*****     
*S***** If we have a cancel, we need the disbursement date to be        
*S***** outside of the loan period. We add one day to end of loan       
*S***** period and use that for disb date.      
*S*****     
*S**  IF  #E-ORIG-AWARD > 0 AND #E-DISB-AMOUNT(#SUB1) = 0   
*S**    ADD 1 TO #E-ORIG-LOAN-END-DATE          
*S**    MOVE EDITED #E-ORIG-LOAN-END-DATE (EM=YYYY-MM-DD)   
*S**                 TO #DISB-DT    
*S**  ELSE  
*S**    MOVE EDITED #E-DISB-DATE(#SUB1) (EM=YYYY-MM-DD) TO #DISB-DT     
*S**  END-IF
*S**  MOVE EDITED #E-DISB-PAYPD-START-DATE(#SUB1) (EM=YYYY-MM-DD) TO    
*S**       #DISB-PAYPD-DATE         
*S**  MOVE EDITED #E-DISB-PAYPD-END-DATE(#SUB1) (EM=YYYY-MM-DD) TO      
*S**       #DISB-PAYPD-END-DATE     
*S**  IF #E-DISB-ENR-STATUS(#SUB1) = 'T'        
*S**    MOVE 'Q' TO #DISB-ENR-STATUS
*S**   ELSE 
*S**     IF (#E-DISB-ENR-STATUS(#SUB1) = 'L' OR = 'N')      
*S**       MOVE 'H' TO #DISB-ENR-STATUS         
*S**      ELSE          
*S**        MOVE #E-DISB-ENR-STATUS(#SUB1) TO #DISB-ENR-STATUS          
*S**     END-IF         
*S**  END-IF
*S**  MOVE #E-DISB-CIP-CODE(#SUB1)  TO #DISB-CIP-CODE       
*S**  MOVE #E-DISB-CIP-CODE-YEAR(#SUB1) TO #DISB-CIP-CODE-YEAR          
*S**  IF #E-DISB-FIRST(#SUB1) = 'Y' 
*S**    MOVE 'true' TO #DISB-FIRST  
*S**  ELSE  
*S**    MOVE 'false' TO #DISB-FIRST 
*S**  END-IF
*S**  IF #E-DISB-REL(#SUB1) = 'Y'   
*S**     MOVE 'true' TO #DISB-RLS   
*S**  ELSE  
*S**     MOVE 'false' TO #DISB-RLS  
*S**  END-IF
*S***       
*S**  MOVE #EXPORT-OPEID TO #DISB-ENRSCH        
*S***       
*S*****only ONE of the below can be transmitted 
*S**  MOVE EDITED #E-DISB-PGM-LGTH-YRS(#SUB1)(EM=ZZ9.999) TO #PGM-LGTH-YRS          
*S**  MOVE EDITED #E-DISB-PGM-LGTH-MOS(#SUB1)(EM=ZZ9.999) TO #PGM-LGTH-MOS          
*S**  MOVE EDITED #E-DISB-PGM-LGTH-WKS(#SUB1)(EM=ZZ9.999) TO #PGM-LGTH-WKS          
*S***       
*S**  MOVE EDITED #E-DISB-PGM-ACAD-WKS(#SUB1)(EM=ZZ9.999) TO #PGM-ACAD-WKS          
*S**  MOVE #E-DISB-SPEC-PGM(#SUB1)                TO #SPEC-PGM          
*S**  MOVE #E-DISB-CRED-LEV(#SUB1)                TO #CRED-LEV          
*S***       
*S**  WRITE WORK FILE 3 VARIABLE #DISB-START-OUT
*S*** WRITE WORK FILE 3 VARIABLE #DISBAMT-OUT   
*S**  MOVE LEFT JUSTIFIED #DISB-AMT TO #DISB-AMT /*#DISBAMT-OUT         
*S**  COMPRESS #DISB-AMT-S #DISB-AMT #DISB-AMT-E /*#DISBAMT-OUT         
*S**  INTO #LINE-OUT LEAVING NO SPACE           
*S**  WRITE WORK FILE 3 VARIABLE #LINE-OUT      
*S*** WRITE WORK FILE 3 VARIABLE #DISBDT-OUT    
*S**  MOVE LEFT JUSTIFIED #DISB-DT TO #DISB-DT   /*#DISBDT-OUT          
*S**  COMPRESS #DISB-DT-S #DISB-DT #DISB-DT-E    /*#DISBDT-OUT          
*S**  INTO #LINE-OUT LEAVING NO SPACE           
*S**  WRITE WORK FILE 3 VARIABLE #LINE-OUT      
*S*** WRITE WORK FILE 3 VARIABLE #DISB-REL-OUT  
*S**  COMPRESS #DISB-RLS-S #DISB-RLS #DISB-RLS-E /*#DISB-REL-OUT        
*S**  INTO #LINE-OUT LEAVING NO SPACE           
*S**  WRITE WORK FILE 3 VARIABLE #LINE-OUT      
*S**  WRITE WORK FILE 3 VARIABLE #DISB-SEQ-OUT  
*S*** WRITE WORK FILE 3 VARIABLE #DISB-ENRSCH-OUT           
*S**  COMPRESS #DISB-ENRSCH-S #DISB-ENRSCH #DISB-ENRSCH-E /*#DISB-ENRSCH-OUT        
*S**  INTO #LINE-OUT LEAVING NO SPACE           
*S**  WRITE WORK FILE 3 VARIABLE #LINE-OUT      
*S**  IF #DISB-FIRST = 'true'       
*S**    WRITE WORK FILE 3 VARIABLE #DISB-FIRST-OUT          
*S**    ADD 1 TO #XML-COUNTER       
*S**  END-IF
*S***       
*S**  IF #DISB-PAYPD-DATE NE ' '    
*S**    MOVE LEFT JUSTIFIED #DISB-PAYPD-DATE TO #DISB-PAYPD-DATE        
*S**    COMPRESS #DISB-PAYPD-S #DISB-PAYPD-DATE #DISB-PAYPD-E /* #DISP-PAYPD        
*S**    INTO #LINE-OUT LEAVING NO SPACE         
*S**    WRITE WORK FILE 3 VARIABLE #LINE-OUT    
*S**    ADD 1 TO #XML-COUNTER       
*S**  END-IF
*S***       
*S**  IF #DISB-PAYPD-END-DATE NE ' '
*S**    MOVE LEFT JUSTIFIED #DISB-PAYPD-END-DATE TO #DISB-PAYPD-END-DATE
*S**    COMPRESS #DISB-PAYPD-END-S #DISB-PAYPD-END-DATE #DISB-PAYPD-END-E           
*S**    INTO #LINE-OUT LEAVING NO SPACE         
*S**    WRITE WORK FILE 3 VARIABLE #LINE-OUT    
*S**    ADD 1 TO #XML-COUNTER       
*S**  END-IF
*S***  WRITE WORK FILE 3 VARIABLE #DISB-ENR-STATUS-OUT      
*S**  IF #DISB-ENR-STATUS NE ' '    
*S**    COMPRESS #DISB-ENR-STATUS-S #DISB-ENR-STATUS #DISB-ENR-STATUS-E 
*S**    INTO #LINE-OUT LEAVING NO SPACE         
*S**    WRITE WORK FILE 3 VARIABLE #lINE-OUT    
*S**    ADD 1 TO #XML-COUNTER       
*S**  END-IF
*S***       
*S*** WRITE WORK FILE 3 VARIABLE #DISB-CIP-CODE-OUT         
*S**  IF #DISB-CIP-CODE NE ' '      
*S**    COMPRESS #DISB-CIP-CODE-S #DISB-CIP-CODE #DISB-CIP-CODE-E /*CIP-OUT         
*S**    INTO #LINE-OUT LEAVING NO SPACE         
*S**    WRITE WORK FILE 3 VARIABLE #LINE-OUT    
*S**    ADD 1 TO #XML-COUNTER       
*S**  END-IF
*S***       
*S**  IF VAL(#PGM-LGTH-YRS) > 0     
*S**    MOVE LEFT JUSTIFIED #PGM-LGTH-YRS TO #PGM-LGTH-YRS  
*S**    COMPRESS #PGM-LGTH-YRS-S #PGM-LGTH-YRS #PGM-LGTH-YRS-E          
*S**      INTO #LINE-OUT LEAVING NO SPACE              /* #PGM-LGTH-Y-OUT           
*S**    WRITE WORK FILE 3 VARIABLE #LINE-OUT    
*S**   ELSE 
*S**    IF VAL(#PGM-LGTH-MOS) > 0   
*S**      MOVE LEFT JUSTIFIED #PGM-LGTH-MOS TO #PGM-LGTH-MOS
*S**      COMPRESS #PGM-LGTH-MOS-S #PGM-LGTH-MOS #PGM-LGTH-MOS-E        
*S**        INTO #LINE-OUT LEAVING NO SPACE           /* #PGM-LGTH-M-OUT
*S**      WRITE WORK FILE 3 VARIABLE #LINE-OUT  
*S**     ELSE           
*S**      IF VAL(#PGM-LGTH-WKS) > 0 
*S**        MOVE LEFT JUSTIFIED #PGM-LGTH-WKS TO #PGM-LGTH-WKS          
*S**        COMPRESS #PGM-LGTH-WKS-S #PGM-LGTH-WKS #PGM-LGTH-WKS-E      
*S**          INTO #LINE-OUT LEAVING NO SPACE        /* #PGM-LGTH-W-OUT 
*S**        WRITE WORK FILE 3 VARIABLE #LINE-OUT
*S**      END-IF        
*S**    END-IF          
*S**  END-IF
*S**  IF (VAL(#PGM-LGTH-MOS)> 0) OR (VAL(#PGM-LGTH-WKS)> 0) OR          
*S**     (#SPEC-PGM = 'P')          
*S**    MOVE LEFT JUSTIFIED #PGM-ACAD-WKS TO #PGM-ACAD-WKS  
*S**    COMPRESS #PGM-ACAD-WKS-S #PGM-ACAD-WKS #PGM-ACAD-WKS-E          
*S**      INTO #LINE-OUT LEAVING NO SPACE         /* #PGM-ACAD-W-OUT    
*S**    WRITE WORK FILE 3 VARIABLE #LINE-OUT    
*S**  END-IF
*S**  IF #SPEC-PGM NE ' '           
*S**    COMPRESS #SPEC-PGM-S #SPEC-PGM #SPEC-PGM-E          
*S**      INTO #LINE-OUT LEAVING NO SPACE         /* #SPEC-PGM-OUT      
*S**    WRITE WORK FILE 3 VARIABLE #LINE-OUT    
*S**    ADD 1 TO #XML-COUNTER       
*S**  END-IF
*S**  IF VAL(#CRED-LEV) > 0         
*S**    MOVE LEFT JUSTIFIED #CRED-LEV TO #CRED-LEV          
*S**    COMPRESS #CRED-LEV-S #CRED-LEV #CRED-LEV-E          
*S**      INTO #LINE-OUT LEAVING NO SPACE          /* #CRED-LEVEL-OUT   
*S**    WRITE WORK FILE 3 VARIABLE #LINE-OUT    
*S**    ADD 1 TO #XML-COUNTER       
*S**  END-IF
*S**  IF #DISB-CIP-CODE NE ' ' /* IF we  have a cip code then output yr 
*S**    COMPRESS #DISB-CIP-CODE-YEAR-S #DISB-CIP-CODE-YEAR  
*S**             #DISB-CIP-CODE-YEAR-E          
*S**      INTO #LINE-OUT LEAVING NO SPACE       
*S**    WRITE WORK FILE 3 VARIABLE #LINE-OUT    
*S**    ADD 1 TO #XML-COUNTER       
*S**  END-IF
*S*** WRITE WORK FILE 3 VARIABLE #DISB-NET-OUT  
*S**  MOVE LEFT JUSTIFIED #DISB-NET TO #DISB-NET /*#DISB-NET-OUT        
*S**  COMPRESS #DISB-NET-S #DISB-NET #DISB-NET-E /*#DISB-NET-OUT        
*S**  INTO #LINE-OUT LEAVING NO SPACE           
*S**  WRITE WORK FILE 3 VARIABLE #LINE-OUT      
*S*** WRITE WORK FILE 3 VARIABLE #DISB-FEE-OUT  
*S**  MOVE LEFT JUSTIFIED #DISB-FEE TO #DISB-FEE /*#DISB-FEE-OUT        
*S**  COMPRESS #DISB-FEE-S #DISB-FEE #DISB-FEE-E /*#DISB-FEE-OUT        
*S**  INTO #LINE-OUT LEAVING NO SPACE           
*S**  WRITE WORK FILE 3 VARIABLE #LINE-OUT      
*S*** WRITE WORK FILE 3 VARIABLE #DISB-REB-OUT  
*S**  MOVE LEFT JUSTIFIED #DISB-REB TO #DISB-REB /*#DISB-REB-OUT        
*S**  COMPRESS #DISB-REB-S #DISB-REB #DISB-REB-E /*#DISB-REB-OUT        
*S**  INTO #LINE-OUT LEAVING NO SPACE           
*S**  WRITE WORK FILE 3 VARIABLE #LINE-OUT      
*S**  WRITE WORK FILE 3 VARIABLE #DISB-END-OUT  
*S**  ADD 11 TO #XML-COUNTER        
*S**END-SUBROUTINE /* DISB-SETUP    
*S***       
*S*************************************************************************         
*S**DEFINE SUBROUTINE TRANSLATE-QUOTES-TO-HEX   
*S*************************************************************************         
*S** EXAMINE #XML-L1 '@' REPLACE DOUBLE-QUOTE   
*S** EXAMINE #SEG1 '@' REPLACE DOUBLE-QUOTE     
*S** EXAMINE #SEG2 '@' REPLACE DOUBLE-QUOTE     
*S** EXAMINE #SEG3 '@' REPLACE DOUBLE-QUOTE     
*S** EXAMINE #SEG4 '@' REPLACE DOUBLE-QUOTE     
*S** EXAMINE #DLINFO-1 '@' REPLACE DOUBLE-QUOTE 
*S** EXAMINE #DLINFO-2 '@' REPLACE DOUBLE-QUOTE 
*S** EXAMINE #DLINFO-3 '@' REPLACE DOUBLE-QUOTE 
*S** EXAMINE #DISB-NBR-S '@' REPLACE DOUBLE-QUOTE           
*S** EXAMINE #DISB-NBR-E '@' REPLACE DOUBLE-QUOTE           
*S**END-SUBROUTINE /* TRANSLATE-QUOTES-TO-HEX   
*S**END     
*C**                                FATEMP  WFDLI26B                        F S   NN0000        
*D01NAT8304F FATEMP  WFDLI26B                        ZWDNH   ZWDNH           S      
*D02            2025040219294902025040219294900000016342    
*D03LINUX   
*D04                 ISO_8859-1:1987
*S*************************************************************************         
*S***       
*S***                              WolffPack    
*S***       
*S*** Program  : WFDLI26B           
*S*** System   : FINANCIER          
*S*** Title    : 2025-26 DL XML Import into PDA 
*S*** Function : Reads the XML from DL import records and creates       
*S***            files to be input for WFDLAyyB.
*S***       
*S***            COD Schema Version 5.0c        
*S***       
*S***      Copyright 1995 - 2025 WolffPack, Inc.  All rights reserved.  
*S***       
*S*************************************************************************         
*S**DEFINE DATA         
*S**  GLOBAL USING WWGDA
*S***       
*S**  LOCAL USING WWREQIBD          
*S**  LOCAL USING WFDLI26D          
*S**  LOCAL USING WWCONST           
*S**  LOCAL 
*S***       
*S** 01 #LONG-STRING(A200)          
*S***       
*S** 01 #XML-STRING(A100)           
*S** 01 REDEFINE #XML-STRING        
*S**   02 #STRING-A(A1/100)         
*S***       
*S** 01 #STRING-TOT(N3) 
*S** 01 #TAG-NAME(A61)  
*S** 01 REDEFINE #TAG-NAME          
*S**   02 #TAG-N(A1/61) 
*S** 01 #TAG-VALUE(A50) 
*S** 01 REDEFINE #TAG-VALUE         
*S**   02 #TAG-V(A1/50) 
*S** 01 #END-TAG-NAME-POS (N20)     
*S** 01 #END-TAG (N20)  
*S** 01 #LOC(A3)        
*S** 01 #SUB(P5)        
*S** 01 #SUB2(P5)       
*S** 01 #SUBE(P5)       
*S** 01 #SUBF(P5)       
*S** 01 #SUBT(P5) INIT <0>          
*S** 01 #SUBV(P5) INIT <0>          
*S** 01 #SUBM(P5)       
*S** 01 #SUBU(P5)       
*S** 01 #D(P3)          
*S** 01 #A-E(P3)        
*S** 01 #S-E(P3)        
*S** 01 #D-E(P3)        
*S** 01 #ATT-E(P3)      
*S** 01 #R-E(P3)        
*S** 01 #X-E(P3)        
*S** 01 #A-F(P3)        
*S** 01 #D-F(P3)        
*S** 01 #S-F(P3)        
*S** 01 #EQUALSIGNS (N1)
*S** 01 #STD-COUNTER (P7)           
*S** 01 #AWD-EXISTS (L) INIT <FALSE>
*S** 01 #LOOP (N1)      
*S** 01 #N    (N2)      
*S** 01 #CONTINUE-LOADING(L)INIT <FALSE>        
*S** 01 END-OF-STUDENT(L)INIT <FALSE>           
*S** 01 #END-DOC (L)    
*S** 01 #COUNT-LT(N1)   
*S** 01 #CHK-TYPE(A14)  
*S** 01 #CHK-YEAR(A4)   
*S** 01 #TYPE(L)        
*S** 01 #YEAR(L)        
*S***       
*S** 01 #SUMMARY-COUNTER (P7)       
*S** 01 #READ-COUNTER (P7)          
*S** 01 #WRITE-STD-COUNTER(P7)      
*S** 01 #WRITE-SUM-COUNTER(P7)      
*S**END-DEFINE          
*S***       
*S*** Load Parameters   
*S**MOVE ##PASS-TEMP TO PASS-BATCH-FLDS         
*S**PROG.   
*S**REPEAT  
*S**READ WORK FILE 3 #LONG-STRING   
*S**MOVE SUBSTRING(#LONG-STRING,1,100) TO #XML-STRING       
*S**ADD 1 TO #READ-COUNTER          
*S** IF #XML-STRING = ' '           
*S**   ESCAPE TOP       
*S** END-IF 
*S** MOVE LEFT #XML-STRING TO #XML-STRING       
*S***       
*S** IF SUBSTRING(#XML-STRING,1,9) = '<Receipt>'
*S**   ESCAPE BOTTOM (PROG.) IMMEDIATE          
*S** END-IF 
*S***       
*S** EXAMINE #XML-STRING FOR ' ' GIVING LENGTH #STRING-TOT  
*S** IF #CONTINUE-LOADING = FALSE   
*S**   IF SUBSTRING(#XML-STRING,1,17) = '<ReportingSchool>' 
*S**     ASSIGN #CONTINUE-LOADING = TRUE        
*S**   ELSE 
*S**     ESCAPE TOP     
*S**   END-IF           
*S** END-IF 
*S***       
*S** EXAMINE #XML-STRING FOR '=' GIVING #EQUALSIGNS         
*S** DECIDE ON FIRST VALUE OF #EQUALSIGNS       
*S**   VALUE 0          
*S**     EXAMINE #XML-STRING FOR '<' GIVING #COUNT-LT       
*S**     EXAMINE #XML-STRING FOR '>' GIVING POSITION #END-TAG-NAME-POS  
*S**     IF #COUNT-LT = 2           
*S**       PERFORM GET-TAG-NAME     
*S**       PERFORM GET-TAG-VALUE    
*S**     ELSE           
*S**       PERFORM GET-TAG-NAME     
*S**     END-IF         
*S**     PERFORM EVAL-TAG-NAME      
*S**   VALUE 1          
*S**     EXAMINE #XML-STRING FOR '=' GIVING POSITION #END-TAG-NAME-POS  
*S**     PERFORM GET-TAG-NAME       
*S**     ADD 1 TO #END-TAG-NAME-POS 
*S**     PERFORM GET-TAG-VALUE      
*S**     PERFORM EVAL-TAG-NAME      
*S**   NONE 
*S**     IGNORE         
*S** END-DECIDE         
*S***       
*S** IF #YEAR AND #TYPE 
*S**   IF (#CHK-TYPE NE 'DLSubsidized' AND      
*S**       #CHK-TYPE NE 'DLUnsubsidized' AND    
*S**       #CHK-TYPE NE 'DLPLUS') OR
*S**      #CHK-YEAR NOT = #INPUT-AID-YEAR       
*S**     SKIP(1) 3      
*S**     WRITE(1) 3T 'Input parameters do not match XML file'           
*S**     WRITE(1) 3T '  Program: ' #CHK-TYPE    
*S**     WRITE(1) 3T '  AidYear: ' #CHK-YEAR    
*S**     SKIP(1) 1      
*S**     WRITE(1) 3T 'Correct invalid or missing parameters and re-run job'         
*S**     TERMINATE      
*S**   END-IF           
*S** END-IF 
*S***       
*S** IF END-OF-STUDENT = TRUE       
*S**   PERFORM REMOVE-WARNINGS      
*S**   WRITE WORK FILE 2 WFDLI26D   
*S**   ADD 1 TO #WRITE-STD-COUNTER  
*S**   RESET #SUB #SUBT #SUB2 #SUBV 
*S**         #IMPORT-ORIGINATION #IMPORT-DISBURSEMENT(*)    
*S**   ASSIGN END-OF-STUDENT = FALSE
*S** END-IF 
*S***       
*S** IF #END-DOC = TRUE 
*S**   ESCAPE BOTTOM IMMEDIATE      
*S** END-IF 
*S***       
*S** IF (#INPUT-RUNMODE = 'TRIAL' OR = 'SAMPLE') AND        
*S**   #INPUT-LIMIT-COUNT > 0       
*S**    IF #STD-COUNTER GE #INPUT-LIMIT-COUNT   
*S**      ESCAPE BOTTOM IMMEDIATE   
*S**    END-IF          
*S** END-IF 
*S**END-WORK
*S**MOVE 'DL' TO WFDLT26D.#IMPORT-PROGRAM       
*S**WRITE WORK FILE 1 WFDLT26D      
*S**ADD 1 TO #WRITE-SUM-COUNTER     
*S**ESCAPE BOTTOM (PROG.) IMMEDIATE 
*S**END-REPEAT          
*S***       
*S**  WRITE(1) NOTITLE  
*S**    15T 'FINANCIER processing:' /           
*S**    17T 'XML lines read:'       
*S**                        (I) 55T #READ-COUNTER (EM=Z,ZZZ,ZZ9) //     
*S**    17T 'Student records written:'          
*S**                        (I) 55T #WRITE-STD-COUNTER (EM=Z,ZZZ,ZZ9) / 
*S**    17T 'Summary records written:'          
*S**                        (I) 55T #WRITE-SUM-COUNTER (EM=Z,ZZZ,ZZ9) / 
*S***       
*S*************************************************************************         
*S**DEFINE SUBROUTINE GET-TAG-NAME  
*S*************************************************************************         
*S**  RESET #SUBT #SUB #TAG-NAME    
*S**  FOR #SUB = 1 TO #END-TAG-NAME-POS         
*S**    ADD 1 TO #SUBT  
*S**    MOVE #STRING-A(#SUB) TO #TAG-N(#SUBT)   
*S**  END-FOR           
*S**END-SUBROUTINE      
*S***       
*S*************************************************************************         
*S**DEFINE SUBROUTINE GET-TAG-VALUE 
*S*************************************************************************         
*S**  RESET #SUBV #SUB2 #TAG-VALUE  
*S**  COMPUTE #END-TAG-NAME-POS = #END-TAG-NAME-POS + 1     
*S**  FOR #SUB2 = #END-TAG-NAME-POS  TO #STRING-TOT         
*S**    ADD 1 TO #SUBV  
*S**    IF (#STRING-A(#SUB2) NE '<') AND        
*S**       (#STRING-A(#SUB2) NE DOUBLE-QUOTE)   
*S**      MOVE #STRING-A(#SUB2) TO #TAG-V(#SUBV)
*S**    ELSE
*S**      ESCAPE BOTTOM 
*S**    END-IF          
*S**  END-FOR           
*S**END-SUBROUTINE      
*S***       
*S**************************************************************************        
*S**DEFINE SUBROUTINE EVAL-TAG-NAME 
*S************************************************************************          
*S**  MOVE LEFT #TAG-NAME TO #TAG-NAME          
*S**  MOVE LEFT #TAG-VALUE TO #TAG-VALUE        
*S***       
*S**  DECIDE FOR FIRST CONDITION    
*S**    /*  
*S**    /* Tags related to the <ReportingSchool> block      
*S**    WHEN #TAG-NAME = '<ReportingSchool>'    
*S**      ASSIGN #LOC = 'RPT'       
*S**    WHEN #TAG-NAME = '<FinancialAwardType>' 
*S**      ASSIGN #TYPE = TRUE       
*S**      MOVE #TAG-VALUE TO #CHK-TYPE          
*S**    WHEN #TAG-NAME = '<FinancialAwardYear>' 
*S**      ASSIGN #YEAR = TRUE       
*S**      MOVE #TAG-VALUE TO WFDLI26D.#IMPORT-AIDYEAR       
*S**                         WFDLT26D.#IMPORT-AIDYEAR       
*S**                         #CHK-YEAR          
*S**    /*  
*S**    /* Tags related to the <AttendedSchool> block       
*S**    WHEN #TAG-NAME = '<AttendedSchool>'     
*S**      ASSIGN #LOC = 'ATT'       
*S**    WHEN #TAG-NAME = '<RoutingID>' AND #LOC = 'ATT'     
*S**      MOVE #TAG-VALUE TO WFDLI26D.#IMPORT-ENTITY        
*S**                         WFDLT26D.#IMPORT-ENTITY        
*S**    /*  
*S**    /* Tags related to the <Student> block  
*S**    WHEN #TAG-NAME = '<Student>'
*S**      ASSIGN #LOC = 'STD'       
*S**      RESET #D #D-E #A-E #S-E #A-F #D-F #S-F
*S**    WHEN #TAG-NAME = '<SSN>' AND #LOC = 'STD'           
*S**      MOVE #TAG-VALUE TO #I-ORIG-SSN        
*S**    WHEN #TAG-NAME = '<BirthDate>' AND #LOC = 'STD'     
*S**      MOVE EDITED #TAG-VALUE TO #I-ORIG-DOB(EM=YYYY-MM-DD)          
*S**    WHEN #TAG-NAME = '<LastName>' AND #LOC = 'STD'      
*S**      MOVE #TAG-VALUE TO #I-ORIG-LAST       
*S**    WHEN #TAG-NAME = '<SchoolAssignedPersonID>'         
*S**      MOVE #TAG-VALUE TO #I-ORIG-STUDENT-ID 
*S**    WHEN #TAG-NAME = '<SubsidizedUsageLimitApplies>'    
*S**      IF #TAG-VALUE = 'true'    
*S**        MOVE 'Y' TO #I-ORIG-SUB-LIM-APPLIES 
*S**      ELSE          
*S**        MOVE 'N' TO #I-ORIG-SUB-LIM-APPLIES 
*S**      END-IF        
*S**    WHEN #TAG-NAME = '<SumActualSubUsagePeriods>'       
*S**      ASSIGN #I-ORIG-SUM-ACT-SUB-USE-PDS = VAL(#TAG-VALUE)          
*S**      MOVE 999.9  TO #I-ORIG-SUM-ACT-TEACH-USE-PDS      
*S**    /*  
*S**    /* Tags related to the various type Award blocks    
*S**    WHEN #TAG-NAME = '<DLSubsidized>'       
*S**      ASSIGN #LOC = 'AWD'       
*S**      MOVE 'DLSubsidized' TO WFDLI26D.#IMPORT-PROGRAM   
*S**    WHEN #TAG-NAME = '<DLUnsubsidized>'     
*S**      ASSIGN #LOC = 'AWD'       
*S**      MOVE 'DLUnsubsidized' TO WFDLI26D.#IMPORT-PROGRAM 
*S**    WHEN #TAG-NAME = '<DLPLUS>' 
*S**      ASSIGN #LOC = 'AWD'       
*S**      MOVE 'DLPLUS' TO WFDLI26D.#IMPORT-PROGRAM         
*S**    /*  
*S**    WHEN #TAG-NAME = '<FinancialAwardID>'   
*S**      MOVE #TAG-VALUE TO #I-ORIG-LOAN-ID    
*S**    WHEN #TAG-NAME = '<FinancialAwardCreateDate>'       
*S**      MOVE EDITED #TAG-VALUE TO #I-ORIG-LOAN-DATE(EM=YYYY-MM-DD)    
*S**    WHEN #TAG-NAME = '<FinancialAwardBeginDate>'        
*S**      MOVE EDITED #TAG-VALUE TO #I-ORIG-LOAN-BEG-DATE(EM=YYYY-MM-DD)
*S**    WHEN #TAG-NAME = '<FinancialAwardEndDate>'          
*S**      MOVE EDITED #TAG-VALUE TO #I-ORIG-LOAN-END-DATE(EM=YYYY-MM-DD)
*S**    WHEN #TAG-NAME = '<FinancialAwardAmount>'           
*S**      ASSIGN #I-ORIG-AWARD = VAL(#TAG-VALUE)
*S**    WHEN #TAG-NAME = '<OriginationFeePercent>'          
*S**      ASSIGN #I-ORIG-FEE-PCT = VAL(#TAG-VALUE)          
*S**    WHEN #TAG-NAME = '<OriginationRebatePercent>'       
*S**      ASSIGN #I-ORIG-REB-PCT = VAL(#TAG-VALUE)          
*S**    /*  
*S**    WHEN #TAG-NAME = '<MPNID>'  
*S**      MOVE #TAG-VALUE TO #I-ORIG-MPN-ID     
*S**    WHEN #TAG-NAME = '<EMPNIndicator>'      
*S**      IF #TAG-VALUE = 'true'    
*S**        MOVE 'Y' TO #I-ORIG-MPN-ELEC        
*S**      ELSE          
*S**        MOVE 'N' TO #I-ORIG-MPN-ELEC        
*S**      END-IF        
*S**    WHEN #TAG-NAME = '<MPNStatusCode>'      
*S**      MOVE #TAG-VALUE TO #I-ORIG-MPN-STAT   
*S**    WHEN #TAG-NAME = '<MPNLinkIndicator>'   
*S**      IF #TAG-VALUE = 'true'    
*S**        MOVE 'Y' TO #I-ORIG-MPN-LINK        
*S**      ELSE          
*S**        MOVE 'N' TO #I-ORIG-MPN-LINK        
*S**      END-IF        
*S**    WHEN #TAG-NAME = '<BookedDate>'         
*S**      MOVE EDITED #TAG-VALUE TO #I-ORIG-BOOK-DATE(EM=YYYY-MM-DD)    
*S**    WHEN #TAG-NAME = '<CreditDecisionStatus>'           
*S**      MOVE #TAG-VALUE TO #I-ORIG-CRED-STAT  
*S**    WHEN #TAG-NAME = '<EndorserAmount>'     
*S**      ASSIGN #I-ORIG-CRED-END-AMT = VAL(#TAG-VALUE)     
*S**    /*  
*S**    WHEN #TAG-NAME = '<CreditActionStatus>' 
*S**      MOVE #TAG-VALUE TO #I-PLUS-CRED-ACTION
*S**    WHEN #TAG-NAME = '<PLUSCounselingCompleteDate>'     
*S**    MOVE EDITED #TAG-VALUE TO #I-PLUS-COUNSEL-COMP-DATE(EM=YYYY-MM-DD)          
*S**    WHEN #TAG-NAME = '<CreditRequirementsMet>'          
*S**      IF #TAG-VALUE = 'true'    
*S**        MOVE 'Y' TO #I-PLUS-CRED-REQ-MET    
*S**      ELSE          
*S**        MOVE 'N' TO #I-PLUS-CRED-REQ-MET    
*S**      END-IF        
*S**    WHEN #TAG-NAME = '<EndorserApproved>'   
*S**      IF #TAG-VALUE = 'true'    
*S**        MOVE 'Y' TO #I-PLUS-ENDORSER-APP    
*S**      ELSE          
*S**        MOVE 'N' TO #I-PLUS-ENDORSER-APP    
*S**      END-IF        
*S**    WHEN #TAG-NAME = '<InformedBorrowingComplete>'      
*S**      IF #TAG-VALUE = 'true'    
*S**        MOVE 'Y' TO #I-ORIG-IB-COMPLETE     
*S**      ELSE          
*S**        MOVE 'N' TO #I-ORIG-IB-COMPLETE     
*S**      END-IF        
*S**    WHEN #TAG-NAME = '<InformedBorrowingCompletionDate>'
*S**      MOVE EDITED #TAG-VALUE TO #I-ORIG-IB-COMPLETE-DATE (EM=YYYY-MM-DD)        
*S**    WHEN #TAG-NAME = '<InformedBorrowingID>'
*S**      MOVE #TAG-VALUE TO #I-ORIG-IB-ID      
*S**    /*  
*S**    /* Tags related to the <Borrower> block (in the DLPlus Award block)         
*S**    WHEN #TAG-NAME = '<SSN>' AND #LOC = 'AWD'           
*S**      MOVE #TAG-VALUE TO #I-ORIG-PAR-SSN    
*S**    WHEN #TAG-NAME = '<BirthDate>' AND #LOC = 'AWD'     
*S**      MOVE EDITED #TAG-VALUE TO #I-ORIG-PAR-DOB(EM=YYYY-MM-DD)      
*S**    WHEN #TAG-NAME = '<LastName>' AND #LOC = 'AWD'      
*S**      MOVE #TAG-VALUE TO #I-ORIG-PAR-LAST   
*S**    WHEN #TAG-NAME = '<SchoolNoteMessage>'  
*S**      MOVE #TAG-VALUE TO #I-ORIG-PARENT-ID  
*S**    /*  
*S**    /* Tags related to the Disbursement blocks          
*S**    WHEN #TAG-NAME = '<Disbursement Number='
*S**      ASSIGN #LOC = 'DSB'       
*S**      RESET #D-E #D-F           
*S**      ADD 1 TO #D   
*S**      ASSIGN #I-DISB-NUMBER(#D) = VAL(#TAG-VALUE)       
*S**    WHEN #TAG-NAME = '<DisbursementSequenceNumber>'     
*S**      ASSIGN #I-DISB-SEQ(#D) = VAL(#TAG-VALUE)          
*S**    WHEN #TAG-NAME = '<DisbursementAmount>' 
*S**      ASSIGN #I-DISB-AMOUNT(#D) = VAL(#TAG-VALUE)       
*S**    WHEN #TAG-NAME = '<DisbursementFeeAmount>'          
*S**      ASSIGN #I-DISB-FEE(#D) = VAL(#TAG-VALUE)          
*S**    WHEN #TAG-NAME = '<DisbursementRebateAmount>'       
*S**      ASSIGN #I-DISB-REB(#D) = VAL(#TAG-VALUE)          
*S**    WHEN #TAG-NAME = '<DisbursementNetAmount>'          
*S**      ASSIGN #I-DISB-NET(#D) = VAL(#TAG-VALUE)          
*S**    WHEN #TAG-NAME = '<DisbursementDate>'   
*S**      MOVE EDITED #TAG-VALUE TO #I-DISB-DATE(#D)(EM=YYYY-MM-DD)     
*S**    WHEN #TAG-NAME = '<DisbursementReleaseIndicator>'   
*S**      IF #TAG-VALUE = 'true'    
*S**        MOVE 'Y' TO #I-DISB-REL(#D)         
*S**      ELSE          
*S**        MOVE 'N' TO #I-DISB-REL(#D)         
*S**      END-IF        
*S**    WHEN #TAG-NAME = '<FirstDisbursementIndicator>'     
*S**      MOVE #TAG-VALUE TO #I-DISB-FIRST(#D)  
*S**    /*  
*S**    /* Tags containing COD Response information to various blocks   
*S**    WHEN #TAG-NAME = '<DocumentTypeCode>'   
*S**      MOVE #TAG-VALUE TO #I-DOCT-TYPE       
*S**    WHEN #TAG-NAME = '<ProcessDate>'        
*S**      MOVE EDITED #TAG-VALUE TO #I-DOCT-PROC-DATE(EM=YYYY-MM-DD)    
*S**    WHEN #TAG-NAME = '<DocumentStatusCode>' 
*S**      MOVE #TAG-VALUE TO #I-DOCT-RESP       
*S**    /*  
*S**    WHEN #TAG-NAME = '<ResponseCode>'       
*S**      DECIDE ON FIRST VALUE OF #LOC         
*S**        VALUE 'RPT' 
*S**          MOVE #TAG-VALUE TO #I-REPT-RESP   
*S**        VALUE 'ATT' 
*S**          MOVE #TAG-VALUE TO #I-ATTN-RESP   
*S**        VALUE 'STD' 
*S**          MOVE #TAG-VALUE TO #I-STDN-RESP   
*S**        VALUE 'AWD' 
*S**          MOVE #TAG-VALUE TO #I-AWRD-RESP   
*S**        VALUE 'DSB' 
*S**          MOVE #TAG-VALUE TO #I-DISB-RESP(#D)           
*S**        NONE        
*S**          IGNORE    
*S**      END-DECIDE    
*S**    WHEN #TAG-NAME = '<ResponseErrorCode>'  
*S**      DECIDE ON FIRST VALUE OF #LOC         
*S**        VALUE 'REC' 
*S**          IF #X-E < 10          
*S**            ADD 1 TO #X-E       
*S**          END-IF    
*S**          MOVE #TAG-VALUE TO #I-DOCT-ERR-CODE(#X-E)     
*S**        VALUE 'RPT' 
*S**          IF #R-E < 10          
*S**            ADD 1 TO #R-E       
*S**          END-IF    
*S**          MOVE #TAG-VALUE TO #I-REPT-ERR-CODE(#R-E)     
*S**        VALUE 'ATT' 
*S**          IF #ATT-E < 10        
*S**            ADD 1 TO #ATT-E     
*S**          END-IF    
*S**          MOVE #TAG-VALUE TO #I-ATTN-ERR-CODE(#ATT-E)   
*S**        VALUE 'STD' 
*S**          IF #S-E < 10          
*S**            ADD 1 TO #S-E       
*S**          END-IF    
*S**          MOVE #TAG-VALUE TO #I-STDN-ERR-CODE(#S-E)     
*S**        VALUE 'AWD' 
*S**          IF #A-E < 10          
*S**            ADD 1 TO #A-E       
*S**          END-IF    
*S**          MOVE #TAG-VALUE TO #I-AWRD-ERR-CODE(#A-E)     
*S**        VALUE 'DSB' 
*S**          IF #D-E < 10          
*S**            ADD 1 TO #D-E       
*S**          END-IF    
*S**          MOVE #TAG-VALUE TO #I-DISB-ERR-CODE(#D,#D-E)  
*S**       NONE         
*S**          IGNORE    
*S**      END-DECIDE    
*S**    WHEN #TAG-NAME = '<ResponseErrorField>' 
*S**      DECIDE ON FIRST VALUE OF #LOC         
*S**        VALUE 'REC' 
*S**          MOVE #TAG-VALUE TO #I-DOCT-ERR-FIELD(#X-E)    
*S**        VALUE 'RPT' 
*S**          MOVE #TAG-VALUE TO #I-REPT-ERR-FIELD(#R-E)    
*S**        VALUE 'ATT' 
*S**          MOVE #TAG-VALUE TO #I-ATTN-ERR-FIELD(#ATT-E)  
*S**        VALUE 'STD' 
*S**          MOVE #TAG-VALUE TO #I-STDN-ERR-FIELD(#S-E)    
*S**        VALUE 'AWD' 
*S**          MOVE #TAG-VALUE TO #I-AWRD-ERR-FIELD(#A-E)    
*S**        VALUE 'DSB' 
*S**          MOVE #TAG-VALUE TO #I-DISB-ERR-FIELD(#D,#D-E) 
*S**        NONE        
*S**          IGNORE    
*S**      END-DECIDE    
*S**    /*  
*S**    /* Tags that mark the ends of blocks    
*S**    WHEN #TAG-NAME = '</DLSubsidized>'      
*S**                OR = '</DLUnsubsidized>'    
*S**                OR = '</DLPLUS>'
*S**      ASSIGN #LOC = 'STD'       
*S**    WHEN #TAG-NAME = '</Student>'           
*S**      ASSIGN #LOC = 'ATT'       
*S**      ASSIGN END-OF-STUDENT = TRUE          
*S**    WHEN #TAG-NAME = '</AttendedSchool>'    
*S**      ASSIGN #LOC = 'RPT'       
*S**    WHEN #TAG-NAME = '</ReportingSchool>'   
*S**      ASSIGN #LOC = 'REC'       
*S**    WHEN #TAG-NAME = '</CommonRecord>'      
*S**      ASSIGN #END-DOC = TRUE    
*S**    WHEN NONE       
*S**      IGNORE        
*S**  END-DECIDE        
*S**  /*    
*S**  RESET #TAG-VALUE #TAG-NAME    
*S**END-SUBROUTINE      
*S***       
*S*************************************************************************         
*S**DEFINE SUBROUTINE REMOVE-WARNINGS           
*S*************************************************************************         
*S**  /*    
*S**  /* Address warnings           
*S**  FOR #SUBE = 1 TO 10           
*S**    IF #I-STDN-ERR-CODE(#SUBE) = ' '        
*S**      ESCAPE BOTTOM 
*S**    END-IF          
*S**    IF #I-STDN-ERR-CODE(#SUBE) = '120'      
*S**      FOR #SUB = #SUBE TO 10    
*S**        IF #I-STDN-ERR-CODE(#SUB) = ' '     
*S**          ESCAPE BOTTOM         
*S**        END-IF      
*S**        IF #SUB = 10
*S**          MOVE ' ' TO #I-STDN-ERR-CODE(#SUB)
*S**                      #I-STDN-ERR-FIELD(#SUB)           
*S**        ELSE        
*S**          MOVE #I-STDN-ERR-CODE(#SUB+1)  TO #I-STDN-ERR-CODE(#SUB)  
*S**          MOVE #I-STDN-ERR-FIELD(#SUB+1) TO #I-STDN-ERR-FIELD(#SUB) 
*S**        END-IF      
*S**      END-FOR       
*S**      SUBTRACT 1 FROM #SUBE     
*S**    END-IF          
*S**  END-FOR           
*S**  /*    
*S**  /* Anticipated disbursement warnings      
*S**  FOR #D = 1 TO 12  
*S**    IF #I-DISB-NUMBER(#D) NOT > 0           
*S**      ESCAPE BOTTOM 
*S**    END-IF          
*S**    FOR #SUBE = 1 TO 10         
*S**      IF #I-DISB-ERR-CODE(#D,#SUBE) = ' '   
*S**        ESCAPE BOTTOM           
*S**      END-IF        
*S**      IF #I-DISB-ERR-CODE(#D,#SUBE) = '054' 
*S**        FOR #SUB = #SUBE TO 10  
*S**          IF #I-DISB-ERR-CODE(#D,#SUB) = ' '
*S**            ESCAPE BOTTOM       
*S**          END-IF    
*S**          IF #SUB = 10          
*S**            MOVE ' ' TO #I-DISB-ERR-CODE(#D,#SUB)       
*S**                        #I-DISB-ERR-FIELD(#D,#SUB)      
*S**          ELSE      
*S**            MOVE #I-DISB-ERR-CODE(#D,#SUB+1)
*S**                                        TO #I-DISB-ERR-CODE(#D,#SUB)
*S**            MOVE #I-DISB-ERR-FIELD(#D,#SUB+1)           
*S**                                        TO #I-DISB-ERR-FIELD(#D,#SUB)           
*S**          END-IF    
*S**        END-FOR     
*S**        SUBTRACT 1 FROM #SUBE   
*S**      END-IF        
*S**    END-FOR         
*S**  END-FOR           
*S**END-SUBROUTINE /* REMOVE-WARNINGS           
*S**END     
*C**                                FATEMP  WFFLE26B                        F S   NN0000        
*D01NAT8304F FATEMP  WFFLE26B                        ZWDNH   ZWDNH           S      
*D02            2025040218292502025040218292500000039027    
*D03LINUX   
*D04                 ISO_8859-1:1987
*S*************************************************************************         
*S***       
*S***                              WolffPack    
*S***       
*S*** Program  : WFFLE26B           
*S*** System   : FINANCIER          
*S*** Title    : Federal Grant XML Export       
*S*** Function : This program converts the fixed records produced       
*S***            by WFFLRyyB to Federal Grant XML documents and         
*S***            exports them for transmission to COD.      
*S***       
*S***            COD Schema Version 5.0c        
*S***       
*S***      Copyright 1995 - 2025 WolffPack, Inc.  All rights reserved.  
*S***       
*S*************************************************************************         
*S**DEFINE DATA         
*S**  GLOBAL USING WWGDA
*S***       
*S**  LOCAL USING WWREQIBD          
*S**  LOCAL USING WFFLE26D          
*S**  LOCAL USING WWCONST           
*S**  LOCAL 
*S***       
*S*** Note: '@' inserted in initial values and programmatically         
*S***       replaced with the hex representation for '"' to 
*S***       avoid the Natural compiler's default conversion of          
*S***       double-quotes to single-quotes      
*S***       
*S*** DOCUMENT BLOCK    
*S***       
*S**01 #XML-LINE1       
*S**  02 #XML-L1 (A21) INIT <'<?xml version=@1.0@?>'>       
*S**01 #XML-L2          
*S**  02 #SEG1(A59)     
*S** INIT <'<CommonRecord xmlns=@http://www.ed.gov/FSA/COD/2024/v5.0c@ '>           
*S**  02 #SEG2(A54)     
*S** INIT <'xmlns:xsi=@http://www.w3.org/2001/XMLSchema-instance@ '>    
*S**  02 #SEG3(A57)     
*S** INIT <'xsi:schemaLocation=@http://www.ed.gov/FSA/COD/2024/v5.0c '> 
*S**  02 #SEG4(A22)     
*S** INIT <'CommonRecord5.0c.xsd@>'>
*S**01 REDEFINE #XML-L2 
*S**  02 #XML-LINE2(A192)           
*S***       
*S**01 #TRANSDATA-BEG   
*S**  02 #TRANSDATA-S  (A18) INIT <'<TransmissionData>'>    
*S**  02 #FILLER       (A82)        
*S***       
*S**01 #DOC-OUT         
*S**  02 #DOCID-S      (A12) INIT <'<DocumentID>'>          
*S**  02 #DOCUMENT-ID  (A30)        
*S**  02 REDEFINE #DOCUMENT-ID      
*S**    03 #DOCID-DT   (A10)        
*S**    03 #DOCID-T    (A1)         
*S**    03 #DOCID-TM   (A10)        
*S**    03 #DOCID-SEC  (A1)         
*S**    03 #DOCID-SCHL (A8)         
*S**  02 #DOCID-E      (A13) INIT <'</DocumentID>'>         
*S**  02 #FILLER       (A45)        
*S**01 #CREATE-OUT      
*S**  02 #CREATE-S     (A17) INIT <'<CreatedDateTime>'>     
*S**  02 #CREATE-DT    (A22)        
*S**  02 REDEFINE #CREATE-DT        
*S**    03 #CRT-DATE   (A10)        
*S**    03 #CRT-T      (A1)         
*S**    03 #CRT-TIME   (A10)        
*S**    03 #CRT-SEC    (A1)         
*S**  02 #CREATE-E     (A18) INIT <'</CreatedDateTime>'>    
*S**  02 #FILLER       (A43)        
*S***       
*S**01 #SOURCE-BEG      
*S**  02 #SOURCE-S     (A8)  INIT <'<Source>'>  
*S**  02 #FILLER       (A92)        
*S**01 #SCHOOL-BEG      
*S**  02 #SCHOOL-S     (A8)  INIT <'<School>'>  
*S**  02 #FILLER       (A92)        
*S**01 #SCHOOL-OUT      
*S**  02 #SCHOOLID-S   (A11) INIT <'<RoutingID>'>           
*S**  02 #SCHOOLID     (A8)         
*S**  02 #SCHOOLID-E   (A12) INIT <'</RoutingID>'>          
*S**  02 #FILLER       (A69)        
*S**01 #SCHOOL-END      
*S**  02 #SCHOOL-E     (A9)  INIT <'</School>'> 
*S**  02 #FILLER       (A91)        
*S**01 #SOURCE-END      
*S**  02 #SOURCE-E     (A9)  INIT <'</Source>'> 
*S**  02 #FILLER       (A91)        
*S**01 #DEST-BEG        
*S**  02 #DEST-S       (A13) INIT <'<Destination>'>         
*S**  02 #FILLER       (A87)        
*S**01 #COD-BEG         
*S**  02 #COD-S        (A5)  INIT <'<COD>'>     
*S**  02 #FILLER       (A95)        
*S**01 #COD-OUT         
*S**  02 #CODID-S      (A11) INIT <'<RoutingID>'>           
*S**  02 #CODID        (A8)  INIT <'00000001'>  
*S**  02 #CODID-E      (A12) INIT <'</RoutingID>'>          
*S**  02 #FILLER       (A69)        
*S**01 #COD-END         
*S**  02 #COD-E        (A6)  INIT <'</COD>'>    
*S**  02 #FILLER       (A94)        
*S**01 #DEST-END        
*S**  02 #DEST-E       (A14) INIT <'</Destination>'>        
*S**  02 #FILLER       (A86)        
*S***       
*S**01 #SOFTWARE-BEG    
*S**  02 #SOFTWARE-S   (A10) INIT <'<Software>'>
*S**  02 #FILLER       (A90)        
*S**01 #SW-PROVIDER-OUT 
*S**  02 #SW-PROVIDER-S(A18) INIT <'<SoftwareProvider>'>    
*S**  02 #SW-PROVIDER  (A9)  INIT <'WolffPack'> 
*S**  02 #SW-PROVIDER-E(A19) INIT <'</SoftwareProvider>'>   
*S**  02 #FILLER       (A54)        
*S**01 #SW-VERSION-OUT  
*S**  02 #SW-VERSION-S (A17) INIT <'<SoftwareVersion>'>     
*S**  02 #SW-VERSION   (A6)  INIT <'FIN-V1'>    
*S**  02 #SW-VERSION-E (A18) INIT <'</SoftwareVersion>'>    
*S**  02 #FILLER       (A59)        
*S**01 #SOFTWARE-END    
*S**  02 #SOFTWARE-E   (A11) INIT <'</Software>'>           
*S**  02 #FILLER       (A89)        
*S**01 #FULLRESP-OUT    
*S**  02 #FULL-RESP-S  (A18) INIT <'<FullResponseCode>'>    
*S**  02 #FULL-RESP    (A1)  INIT <'F'>         
*S**  02 #FULL-RESP-E  (A19) INIT <'</FullResponseCode>'>   
*S**  02 #FILLER       (A62)        
*S**01 #TRANSDATA-END   
*S**  02 #TRANSDATA-E  (A19) INIT <'</TransmissionData>'>   
*S**  02 #FILLER       (A81)        
*S***       
*S*** ENTITY BLOCK      
*S***       
*S**01 #RPTSCHL-BEG     
*S**  02 #RPTSCHL-S    (A17) INIT <'<ReportingSchool>'>     
*S**  02 #FILLER       (A83)        
*S**01 #RPTSCHL-OUT     
*S**  02 #RPTSCHLID-S  (A11) INIT <'<RoutingID>'>           
*S**  02 #RPTSCHLID    (A8)         
*S**  02 #RPTSCHLID-E  (A12) INIT <'</RoutingID>'>          
*S**  02 #FILLER       (A69)        
*S***       
*S**01 #RPT-SUMMARY-BEG 
*S**  02 #RPTSUMM      (A26) INIT <'<ReportedFinancialSummary>'>        
*S**  02 #FILLER       (A74)        
*S**01 #FINTYPE-OUT    (A100)       
*S**01 #FINTYPE-OUT-PELL
*S**  02 #FINAWD-PELL-S(A20) INIT <'<FinancialAwardType>'>  
*S**  02 #FINAWD-PELL  (A4)  INIT <'Pell'>      
*S**  02 #FINAWD-PELL-E(A21) INIT <'</FinancialAwardType>'> 
*S**  02 #FILLER       (A55)        
*S**01 REDEFINE #FINTYPE-OUT-PELL   
*S**  02 #FINTYPE-PELL (A100)       
*S**01 #FINTYPE-OUT-TEACH           
*S**  02 #FINAWD-TEACH-S(A20) INIT <'<FinancialAwardType>'> 
*S**  02 #FINAWD-TEACH  (A5)  INIT <'TEACH'>    
*S**  02 #FINAWD-TEACH-E(A21) INIT <'</FinancialAwardType>'>
*S**  02 #FILLER        (A54)       
*S**01 REDEFINE #FINTYPE-OUT-TEACH  
*S**  02 #FINTYPE-TEACH(A100)       
*S**01 #FINAWD-OUT      
*S**  02 #FINAWD-YR-S  (A20) INIT <'<FinancialAwardYear>'>  
*S**  02 #FINAWD-YR    (A4)         
*S**  02 #FINAWD-YR-E  (A21) INIT <'</FinancialAwardYear>'> 
*S**  02 #FILLER       (A55)        
*S**01 #COUNT-OUT       
*S**  02 #TOT-COUNT-S  (A12) INIT <'<TotalCount>'>          
*S**  02 #TOT-COUNT    (A9)         
*S**  02 #TOT-COUNT-E  (A13) INIT <'</TotalCount>'>         
*S**  02 #FILLER       (A66)        
*S**01 #TOTAWD-OUT      
*S**  02 #TOT-RPT-AWD-S(A20) INIT <'<TotalReportedAward>'>  
*S**  02 #TOT-RPT-AWD  (A16)        
*S**  02 #TOT-RPT-AWD-E(A21) INIT <'</TotalReportedAward>'> 
*S**  02 #FILLER       (A43)        
*S**01 #TOTDSB-OUT      
*S**  02 #TOT-RPT-DSB-S(A27) INIT <'<TotalReportedDisbursement>'>       
*S**  02 #TOT-RPT-DSB  (A16)        
*S**  02 #TOT-RPT-DSB-E(A28) INIT <'</TotalReportedDisbursement>'>      
*S**  02 #FILLER       (A29)        
*S**01 #RPT-SUMMARY-END 
*S**  02 #RPT-SUMM-E   (A27) INIT <'</ReportedFinancialSummary>'>       
*S**  02 #FILLER       (A73)        
*S***       
*S**01 #ATTSCHL-BEG     
*S**  02 #ATTSCHL-S    (A16) INIT <'<AttendedSchool>'>      
*S**  02 #FILLER       (A84)        
*S**01 #ATTSCHL-OUT     
*S**  02 #ATTSCHLID-S  (A11) INIT <'<RoutingID>'>           
*S**  02 #ATTSCHLID    (A8)         
*S**  02 #ATTSCHLID-E  (A12) INIT <'</RoutingID>'>          
*S**  02 #FILLER       (A69)        
*S***       
*S*** PERSON BLOCK      
*S***       
*S**01 #STUDENT-BEG     
*S**  02 #STUDENT-S    (A9)  INIT <'<Student>'> 
*S**  02 #FILLER       (A91)        
*S**01 #STUINDEX-BEG    
*S**  02 #STUINDEX-S   (A7)  INIT <'<Index>'>   
*S**  02 #FILLER       (A93)        
*S**01 #STUDENT-SSN-OUT 
*S**  02 #STU-SSN-S    (A5)  INIT <'<SSN>'>     
*S**  02 #STU-SSN      (A9)         
*S**  02 #STU-SSN-E    (A6)  INIT <'</SSN>'>    
*S**  02 #FILLER       (A80)        
*S**01 #STUDENT-DOB-OUT 
*S**  02 #STU-DOB-S    (A11) INIT <'<BirthDate>'>           
*S**  02 #STU-DOB      (A10)        
*S**  02 #STU-DOB-E    (A12) INIT <'</BirthDate>'>          
*S**  02 #FILLER       (A67)        
*S**01 #STUDENT-LAST-OUT
*S**  02 #STU-LAST-S   (A10) INIT <'<LastName>'>
*S**  02 #STU-LAST     (A35)        
*S**  02 #STU-LAST-E   (A11) INIT <'</LastName>'>           
*S**  02 #FILLER       (A44)        
*S**01 #STUINDEX-END    
*S**  02 #STUINDEX-E   (A8)  INIT <'</Index>'>  
*S**  02 #FILLER       (A92)        
*S***       
*S**01 #STU-PERSID-BEG  
*S**  02 #STU-PERSID-S (A19) INIT <'<PersonIdentifiers>'>   
*S**  02 #FILLER       (A81)        
*S**01 #STUDENT-SID-OUT 
*S**  02 #STU-SID-S    (A24) INIT <'<SchoolAssignedPersonID>'>          
*S**  02 #STU-SID      (A9)         
*S**  02 #STU-SID-E    (A25) INIT <'</SchoolAssignedPersonID>'>         
*S**  02 #FILLER       (A42)        
*S**01 #STU-PERSID-END  
*S**  02 #STU-PERSID-E (A20) INIT <'</PersonIdentifiers>'>  
*S**  02 #FILLER       (A80)        
*S***       
*S**01 #STU-NAME-BEG    
*S**  02 #STU-NAME-S   (A6)  INIT <'<Name>'>    
*S**  02 #FILLER       (A94)        
*S**01 #STU-FIRST-OUT   
*S**  02 #STU-FIRST-S  (A11) INIT <'<FirstName>'>           
*S**  02 #STU-FIRST    (A35)        
*S**  02 #STU-FIRST-E  (A12) INIT <'</FirstName>'>          
*S**  02 #FILLER       (A42)        
*S**01 #STU-MI-OUT      
*S**  02 #STU-MI-S     (A12) INIT <'<MiddleName>'>          
*S**  02 #STU-MI       (A35)        
*S**  02 #STU-MI-E     (A13) INIT <'</MiddleName>'>         
*S**  02 #FILLER       (A40)        
*S**01 #STU-NAME-END    
*S**  02 #STU-NAME-E   (A7) INIT <'</Name>'>    
*S**  02 #FILLER       (A93)        
*S***       
*S**01 #STU-CONTACT-BEG 
*S**  02 #STU-CONT-S   (A10) INIT <'<Contacts>'>
*S**  02 #FILLER       (A90)        
*S**01 #STU-ADDRESS-BEG 
*S**  02 #STU-ADDR-S   (A18) INIT <'<PermanentAddress>'>    
*S**  02 #FILLER       (A82)        
*S**01 #STU-STREET-OUT  
*S**  02 #STU-STRT-S   (A13) INIT <'<AddressLine>'>         
*S**  02 #STU-STRT     (A40)        
*S**  02 #STU-STRT-E   (A14) INIT <'</AddressLine>'>        
*S**  02 #FILLER       (A33)        
*S**01 #STU-CITY-OUT    
*S**  02 #STU-CITY-S   (A6)  INIT  <'<City>'>   
*S**  02 #STU-CITY     (A30)        
*S**  02 #STU-CITY-E   (A7)  INIT  <'</City>'>  
*S**  02 #FILLER       (A57)        
*S**01 #STU-STATE-OUT   
*S**  02 #STU-STATE-S  (A19) INIT <'<StateProvinceCode>'>   
*S**  02 #STU-STATE    (A2)         
*S**  02 #STU-STATE-E  (A20) INIT <'</StateProvinceCode>'>  
*S**  02 #FILLER       (A59)        
*S**01 #STU-COUNTRY-OUT 
*S**  02 #STU-CNTRY-S  (A13) INIT <'<CountryCode>'>         
*S**  02 #STU-CNTRY    (A2)         
*S**  02 #STU-CNTRY-E  (A14) INIT <'</CountryCode>'>        
*S**  02 #FILLER       (A71)        
*S**01 #STU-ZIP-OUT     
*S**  02 #STU-ZIP-S    (A12) INIT <'<PostalCode>'>          
*S**  02 #STU-ZIP      (A10)        
*S**  02 #STU-ZIP-E    (A13) INIT <'</PostalCode>'>         
*S**  02 #FILLER       (A65)        
*S**01 #STU-ADDRESS-END 
*S**  02 #STU-ADDR-E   (A19) INIT <'</PermanentAddress>'>   
*S**  02 #FILLER       (A81)        
*S**01 #STU-CONTACT-END 
*S**  02 #STU-CONT-E   (A11) INIT <'</Contacts>'>           
*S**  02 #FILLER       (A89)        
*S***       
*S**01 #STU-CIT-BEG     
*S**  02 #STU-CITIZ-S  (A13) INIT <'<Citizenship>'>         
*S**  02 #FILLER       (A87)        
*S**01 #STU-CIT-OUT     
*S**  02 #STU-CIT-S    (A23) INIT <'<CitizenshipStatusCode>'>           
*S**  02 #STU-CIT      (A1)         
*S**  02 #STU-CIT-E    (A24) INIT <'</CitizenshipStatusCode>'>          
*S**  02 #FILLER       (A52)        
*S**01 #STU-CIT-END     
*S**  02 #STU-CITIZ-E  (A14) INIT <'</Citizenship>'>        
*S**  02 #FILLER       (A86)        
*S***       
*S*** AWARD BLOCK       
*S***       
*S**01 #AWD-BEG         
*S**  02 #AWD-TAG      (A30)        
*S**  02 #FILLER       (A70)        
*S***       
*S**01 #FG-PELL        (A30) INIT <'<Pell>'>    
*S**01 #FG-TEACH       (A30) INIT <'<TEACH>'>   
*S***       
*S**01 #AWD-END         
*S**  02 #AWD-TAG-END  (A31)        
*S**  02 #FILLER       (A69)        
*S***       
*S**01 #FG-PELL-END    (A31) INIT <'</Pell>'>   
*S**01 #FG-TEACH-END   (A31) INIT <'</TEACH>'>  
*S***       
*S**01 #AWARD-YR-OUT    
*S**  02 #FIN-AWDYR-S  (A20) INIT <'<FinancialAwardYear>'>  
*S**  02 #FIN-AWDYR    (A4)         
*S**  02 #FIN-AWDYR-E  (A21) INIT <'</FinancialAwardYear>'> 
*S**  02 #FILLER       (A55)        
*S**01 #FPSTRAN-OUT     
*S**  02 #FPS-TRAN-S   (A22) INIT <'<FPSTransactionNumber>'>
*S**  02 #FPS-TRAN     (A2)         
*S**  02 #FPS-TRAN-E   (A23) INIT <'</FPSTransactionNumber>'>           
*S**  02 #FILLER       (A53)        
*S***       
*S**01 #AWD-AMT-OUT     
*S**  02 #FIN-AWD-AMT-S(A22) INIT <'<FinancialAwardAmount>'>
*S**  02 #FIN-AWD-AMT  (A8)         
*S**  02 #FIN-AWD-AMT-E(A23) INIT <'</FinancialAwardAmount>'>           
*S**  02 #FILLER       (A47)        
*S**01 #AWARD-UPD-BEG   
*S**  02 #AWDNOTE-S    (A6)  INIT <'<Note>'>    
*S**  02 #FILLER       (A94)        
*S**01 #AWARD-UPD-OUT   
*S**  02 #AWARD-UPD-S  (A19) INIT <'<SchoolNoteMessage>'>   
*S**  02 #AWARD-UPD    (A4)         
*S**  02 #AWARD-UPD-E  (A20) INIT <'</SchoolNoteMessage>'>  
*S**  02 #FILLER       (A57)        
*S**01 #AWARD-UPD-END   
*S**  02 #AWDNOTE-E    (A7)  INIT <'</Note>'>   
*S**  02 #FILLER       (A93)        
*S**01 #AWARD-ID-OUT    
*S**  02 #AWARD-ID-S   (A18) INIT <'<FinancialAwardID>'>    
*S**  02 #AWARD-ID     (A21)        
*S**  02 #AWARD-ID-E   (A19) INIT <'</FinancialAwardID>'>   
*S**  02 #FILLER       (A42)        
*S**01 #AWARD-NUM-OUT   
*S**  02 #AWARD-NUM-S  (A22) INIT <'<FinancialAwardNumber>'>
*S**  02 #AWARD-NUM    (N3)         
*S**  02 #AWARD-NUM-E  (A23) INIT <'</FinancialAwardNumber>'>           
*S**  02 #FILLER       (A52)        
*S**01 #YR-COL-OUT      
*S**  02 #YR-COL-S     (A18) INIT <'<StudentLevelCode>'>    
*S**  02 #YR-COL       (A1)         
*S**  02 #YR-COL-E     (A19) INIT <'</StudentLevelCode>'>   
*S**  02 #FILLER       (A62)        
*S**01 #COST-OUT        
*S**  02 #COST-S       (A16) INIT <'<AttendanceCost>'>      
*S**  02 #COST         (A8)         
*S**  02 #COST-E       (A17) INIT <'</AttendanceCost>'>     
*S**  02 #FILLER       (A59)        
*S**01 #VERSTAT-OUT     
*S**  02 #VERSTAT-S    (A24) INIT <'<VerificationStatusCode>'>          
*S**  02 #VERSTAT      (A1)         
*S**  02 #VERSTAT-E    (A25) INIT <'</VerificationStatusCode>'>         
*S**  02 #FILLER       (A50)        
*S**01 #ENR-OUT         
*S**  02 #ENR-DT-S     (A16) INIT <'<EnrollmentDate>'>      
*S**  02 #ENR-DT       (A10)        
*S**  02 #ENR-DT-E     (A17) INIT <'</EnrollmentDate>'>     
*S**  02 #FILLER       (A57)        
*S***       
*S**01 #ATB-CODE-OUT    
*S**  02 #ATB-CODE-S   (A24) INIT <'<StudentEligibilityCode>'>          
*S**  02 #ATB-CODE     (A2)         
*S**  02 #ATB-CODE-E   (A25) INIT <'</StudentEligibilityCode>'>         
*S**  02 #FILLER       (A49)        
*S**01 #ATB-ADMN-OUT    
*S**  02 #ATB-ADMN-S   (A39)        
*S**                   INIT <'<AbilityToBenefitTestAdministratorCode>'> 
*S**  02 #ATB-ADMN     (A2)         
*S**  02 #ATB-ADMN-E   (A40)        
*S**                   INIT <'</AbilityToBenefitTestAdministratorCode>'>
*S**  02 #FILLER       (A19)        
*S**01 #ATB-TEST-OUT    
*S**  02 #ATB-TEST-S   (A26) INIT <'<AbilityToBenefitTestCode>'>        
*S**  02 #ATB-TEST     (A2)         
*S**  02 #ATB-TEST-E   (A27) INIT <'</AbilityToBenefitTestCode>'>       
*S**  02 #FILLER       (A45)        
*S**01 #ATB-DATE-OUT    
*S**  02 #ATB-DATE-S   (A32) INIT <'<AbilityToBenefitCompletionDate>'>  
*S**  02 #ATB-DATE     (A10)        
*S**  02 #ATB-DATE-E   (A33) INIT <'</AbilityToBenefitCompletionDate>'> 
*S**  02 #FILLER       (A25)        
*S**01 #ATB-STATE-OUT   
*S**  02 #ATB-STATE-S  (A27) INIT <'<AbilityToBenefitStateCode>'>       
*S**  02 #ATB-STATE    (A2)         
*S**  02 #ATB-STATE-E  (A28) INIT <'</AbilityToBenefitStateCode>'>      
*S**  02 #FILLER       (A43)        
*S***       
*S**01 #AEI-OUT         
*S**  02 #AEI-S        (A32) INIT <'<AdditionalEligibilityIndicator>'>  
*S**  02 #AEI          (A5)         
*S**  02 #AEI-E        (A33) INIT <'</AdditionalEligibilityIndicator>'> 
*S**  02 #FILLER       (A30)        
*S***       
*S*** DISB BLOCK        
*S**01 #DISB-NBR-OUT    
*S**  02 #DISB-NBR-S   (A22) INIT <'<Disbursement Number=@'>
*S**  02 #DISB-NBR     (N2)         
*S**  02 #DISB-NBR-E   (A2) INIT <'@>'>         
*S**  02 #FILLER       (A74)        
*S***       
*S**01 #DISB-DP-BEG     
*S**  02 #DPNOTE-S     (A6)  INIT <'<Note>'>    
*S**  02 #FILLER       (A94)        
*S**01 #DISB-DP-OUT     
*S**  02 #DISB-DP-S    (A19) INIT <'<SchoolNoteMessage>'>   
*S**  02 #DISB-DP      (A1)         
*S**  02 #DISB-DP-E    (A20) INIT <'</SchoolNoteMessage>'>  
*S**  02 #FILLER       (A60)        
*S**01 #DISB-DP-END     
*S**  02 #DPNOTE-S     (A7)  INIT <'</Note>'>   
*S**  02 #FILLER       (A93)        
*S***       
*S**01 #DISB-AMT-OUT    
*S**  02 #DISB-AMT-S   (A20) INIT <'<DisbursementAmount>'>  
*S**  02 #DISB-AMT     (A8)         
*S**  02 #DISB-AMT-E   (A21) INIT <'</DisbursementAmount>'> 
*S**  02 #FILLER       (A51)        
*S***       
*S**01 #DISB-DT-OUT     
*S**  02 #DISB-DT-S    (A18) INIT <'<DisbursementDate>'>    
*S**  02 #DISB-DT      (A10)        
*S**  02 #DISB-DT-E    (A19) INIT <'</DisbursementDate>'>   
*S**  02 #FILLER       (A53)        
*S***       
*S**01 #DISB-RLS-OUT    
*S**  02 #DISB-RLS-S   (A30) INIT <'<DisbursementReleaseIndicator>'>    
*S**  02 #DISB-RLS     (A5)         
*S**  02 #DISB-RLS-E   (A31) INIT <'</DisbursementReleaseIndicator>'>   
*S**  02 #FILLER       (A34)        
*S***       
*S**01 #DISB-SEQ-OUT    
*S**  02 #DISB-SEQ-S   (A28) INIT <'<DisbursementSequenceNumber>'>      
*S**  02 #DISB-SEQ     (N2)         
*S**  02 #DISB-SEQ-E   (A29) INIT <'</DisbursementSequenceNumber>'>     
*S**  02 #FILLER       (A41)        
*S***       
*S**01 #DISB-ENRSCH-OUT 
*S**  02 #DISB-ENRSCH-S(A22) INIT <'<EnrollmentSchoolCode>'>
*S**  02 #DISB-ENRSCH  (A8)         
*S**  02 #DISB-ENRSCH-E(A23) INIT <'</EnrollmentSchoolCode>'>           
*S**  02 #FILLER       (A47)        
*S***       
*S**01 #DISB-PAYPD-DATE-OUT         
*S**  02 #DISB-PAYPD-S(A24) INIT <'<PaymentPeriodStartDate>'>           
*S**  02 #DISB-PAYPD-DATE(A10)      
*S**  02 #DISB-PAYPD-E(A25) INIT <'</PaymentPeriodStartDate>'>          
*S***       
*S**01 #DISB-PAYPD-END-OUT          
*S**  02 #DISB-PAYPD-END-S(A22) INIT <'<PaymentPeriodEndDate>'>         
*S**  02 #DISB-PAYPD-END-DATE(A10)  
*S**  02 #DISB-PAYPD-END-E(A23) INIT <'</PaymentPeriodEndDate>'>        
*S***       
*S**01 #DISB-ENR-STATUS-OUT         
*S**  02 #DISB-ENR-STATUS-S(A18) INIT <'<EnrollmentStatus>'>
*S**  02 #DISB-ENR-STATUS(A1)       
*S**  02 #DISB-ENR-STATUS-E(A19) INIT <'</EnrollmentStatus>'>           
*S***       
*S**01 #DISB-ENR-INTENS-OUT         
*S**  02 #DISB-ENR-INTENS-S(A21) INIT <'<EnrollmentIntensity>'>         
*S**  02 #DISB-ENR-INTENS(N3)       
*S**  02 #DISB-ENR-INTENS-E(A22) INIT <'</EnrollmentIntensity>'>        
*S**  02 #FILLER (A54)  
*S***       
*S**01 #DISB-CIP-CODE-OUT           
*S**  02 #DISB-CIP-CODE-S(A16)   INIT <'<ProgramCIPCode>'>  
*S**  02 #DISB-CIP-CODE(A20)        
*S**  02 #DISB-CIP-CODE-E(A17)   INIT <'</ProgramCIPCode>'> 
*S**  02 #FILLER (A47)  
*S***       
*S**01 #PGM-LGTH-Y-OUT  
*S**  02 #PGM-LGTH-YRS-S(A25) INIT <'<PublishedPgmLengthYears>'>        
*S**  02 #PGM-LGTH-YRS (A7)         
*S**  02 #PGM-LGTH-YRS-E(A26) INIT <'</PublishedPgmLengthYears>'>       
*S**  02 #FILLER (A42)  
*S***       
*S**01 #PGM-LGTH-M-OUT  
*S**  02 #PGM-LGTH-MOS-S(A26) INIT <'<PublishedPgmLengthMonths>'>       
*S**  02 #PGM-LGTH-MOS(A7)          
*S**  02 #PGM-LGTH-MOS-E(A27) INIT <'</PublishedPgmLengthMonths>'>      
*S**  02 #FILLER (A39)  
*S***       
*S**01 #PGM-LGTH-W-OUT  
*S**  02 #PGM-LGTH-WKS-S(A25) INIT <'<PublishedPgmLengthWeeks>'>        
*S**  02 #PGM-LGTH-WKS(A7)          
*S**  02 #PGM-LGTH-WKS-E(A26) INIT <'</PublishedPgmLengthWeeks>'>       
*S**  02 #FILLER (A42)  
*S***       
*S**01 #PGM-ACAD-W-OUT  
*S**  02 #PGM-ACAD-WKS-S(A27) INIT <'<WeeksProgramsAcademicYear>'>      
*S**  02 #PGM-ACAD-WKS (A7)         
*S**  02 #PGM-ACAD-WKS-E(A28) INIT <'</WeeksProgramsAcademicYear>'>     
*S**  02 #FILLER (A38)  
*S***       
*S**01 #SPEC-PGM-OUT    
*S**  02 #SPEC-PGM-S(A17) INIT <'<SpecialPrograms>'>        
*S**  02 #SPEC-PGM (A1) 
*S**  02 #SPEC-PGM-E(A18) INIT <'</SpecialPrograms>'>       
*S**  02 #FILLER (A64)  
*S***       
*S**01 #CRED-LEVEL-OUT  
*S**  02 #CRED-LEV-S(A24) INIT <'<ProgramCredentialLevel>'> 
*S**  02 #CRED-LEV (A2) 
*S**  02 #CRED-LEV-E(A25) INIT <'</ProgramCredentialLevel>'>
*S**  02 #FILLER (A49)  
*S***       
*S**01 #DISB-CIP-CODE-YEAR-OUT      
*S**  02 #DISB-CIP-CODE-YEAR-S (A20) INIT <'<ProgramCIPCodeYear>'>      
*S**  02 #DISB-CIP-CODE-YEAR (A4)   
*S**  02 #DISB-CIP-CODE-YEAR-E(A21)  INIT <'</ProgramCIPCodeYear>'>     
*S**  02 #FILLER (A55)  
*S***       
*S**01 #DISB-END        
*S**  02 #DISB-E       (A15) INIT <'</Disbursement>'>       
*S**  02 #FILLER       (A85)        
*S***       
*S** 01 #STUDENT-END    
*S**   02 #STUDENT-E   (A10) INIT <'</Student>'>
*S**   02 #FILLER      (A90)        
*S** 01 #ATTSCHL-END    
*S**   02 #ATTSCHL-E   (A17) INIT <'</AttendedSchool>'>     
*S**   02 #FILLER      (A83)        
*S** 01 #RPTSCHL-END    
*S**   02 #RPTSCHL-E   (A18) INIT <'</ReportingSchool>'>    
*S**   02 #FILLER      (A82)        
*S** 01 #END-REC        
*S**   02 #COMMONREC-E (A15) INIT <'</CommonRecord>'>       
*S**   02 #FILLER(A85)  
*S***       
*S** 01 #PELL(L)        
*S** 01 #TEACH(L)       
*S***       
*S** 01 #SUMMARY-COUNTER (P7)       
*S** 01 #READ-COUNTER (P7)          
*S** 01 #WRITE-COUNTER (P7)         
*S** 01 #XML-COUNTER (P7)           
*S***       
*S** 01 #SUB (P3)       
*S** 01 #WORK-FIELD (A50)           
*S** 01 #LINE-OUT(A90)  
*S**END-DEFINE          
*S***       
*S*** Define printers, formats, headings        
*S**EJECT OFF(1)        
*S**FORMAT(1) LS=80 PS=60 ZP=ON IS=OFF ES=OFF SG=OFF        
*S***       
*S*** Load Parameters   
*S**MOVE ##PASS-TEMP TO PASS-BATCH-FLDS         
*S***       
*S**PERFORM TRANSLATE-QUOTES-TO-HEX 
*S**WRITE WORK FILE 3 VARIABLE #XML-LINE1       
*S**WRITE WORK FILE 3 VARIABLE #XML-LINE2       
*S**ADD 2 TO #XML-COUNTER           
*S***       
*S**PROG.   
*S**REPEAT  
*S**READ WORK FILE 1 WFFLS26D       
*S** IF (WFFLS26D.#EXPORT-PROGRAM NOT = 'Pell' AND          
*S**     WFFLS26D.#EXPORT-PROGRAM NOT = 'TEACH') OR         
*S**    WFFLS26D.#EXPORT-FAO NOT = #INPUT-FAO OR
*S**    WFFLS26D.#EXPORT-AIDYEAR NOT = #INPUT-AID-YEAR      
*S**   SKIP(1) 3        
*S**   WRITE(1) 3T 'Input parameters do not match summary file'         
*S**   SKIP(1) 1        
*S**   WRITE(1) 3T 'Correct invalid or missing parameters and re-run job'           
*S**   TERMINATE        
*S** END-IF 
*S** ADD 1 TO #SUMMARY-COUNTER      
*S***       
*S** IF #SUMMARY-COUNTER = 1        
*S**   PERFORM DOCUMENT-SETUP       
*S** END-IF 
*S** PERFORM RPT-SUMMARY-SETUP      
*S**END-WORK
*S***       
*S** WRITE WORK FILE 3 VARIABLE #ATTSCHL-BEG    
*S*** WRITE WORK FILE 3 VARIABLE #ATTSCHL-OUT   
*S** COMPRESS #ATTSCHLID-S #ATTSCHLID #ATTSCHLID-E  /* #ATTSCHL-OUT     
*S**   INTO #LINE-OUT LEAVING NO SPACE          
*S** WRITE WORK FILE 3 VARIABLE #LINE-OUT       
*S** ADD 2 TO #XML-COUNTER          
*S***       
*S**READ WORK FILE 2 WFFLE26D       
*S**  IF (WFFLE26D.#EXPORT-PROGRAM NOT = 'Pell' AND         
*S**      WFFLE26D.#EXPORT-PROGRAM NOT = 'TEACH') OR        
*S**     WFFLE26D.#EXPORT-FAO NOT = #INPUT-FAO OR           
*S**     WFFLE26D.#EXPORT-AIDYEAR NOT = #INPUT-AID-YEAR     
*S**    SKIP(1) 3       
*S**    WRITE(1) 3T 'Input parameters do not match student file'        
*S**    SKIP(1) 1       
*S**    WRITE(1) 3T 'Correct invalid or missing parameters and re-run job'          
*S**    TERMINATE       
*S**  END-IF
*S**  ADD 1 TO #READ-COUNTER        
*S***       
*S**  RESET #PELL #TEACH
*S**  RESET INITIAL #STUDENT-SSN-OUT #STUDENT-DOB-OUT       
*S**                #STUDENT-LAST-OUT #STUDENT-SID-OUT      
*S**                #STU-FIRST-OUT #STU-MI-OUT  
*S**                #STU-STREET-OUT #STU-CITY-OUT #STU-STATE-OUT        
*S**                #STU-COUNTRY-OUT #STU-ZIP-OUT           
*S**                #AWARD-YR-OUT #FPSTRAN-OUT #AWD-AMT-OUT 
*S**                #AWARD-UPD-OUT #AWARD-ID-OUT #AWARD-NUM-OUT         
*S**                #YR-COL-OUT #COST-OUT #VERSTAT-OUT #ENR-OUT         
*S**                #ATB-CODE-OUT #ATB-ADMN-OUT #ATB-TEST-OUT           
*S**                #ATB-DATE-OUT #ATB-STATE-OUT
*S**                #AEI-OUT        
*S**  PERFORM TRANSLATE-QUOTES-TO-HEX           
*S***       
*S**  PERFORM STUDENT-SETUP         
*S**  PERFORM AWARD-SETUP           
*S**  FOR #SUB = 1 TO 12
*S**    IF #E-DISB-NUMBER(#SUB) > 0 
*S**      PERFORM DISB-SETUP        
*S**      RESET INITIAL #DISB-NBR-OUT #DISB-AMT-OUT #DISB-DT-OUT        
*S**                    #DISB-RLS-OUT #DISB-SEQ-OUT #DISB-DP-OUT        
*S**      PERFORM TRANSLATE-QUOTES-TO-HEX       
*S**    ELSE
*S**      ESCAPE BOTTOM 
*S**    END-IF          
*S**  END-FOR           
*S**  WRITE WORK FILE 3 VARIABLE #AWD-TAG-END   
*S**  WRITE WORK FILE 3 VARIABLE #STUDENT-END   
*S**  ADD 2 TO #XML-COUNTER         
*S**  ADD 1 TO #WRITE-COUNTER       
*S***       
*S**  IF (#INPUT-RUNMODE = 'TRIAL' OR = 'SAMPLE') AND       
*S**      #INPUT-LIMIT-COUNT > 0    
*S**    IF #WRITE-COUNTER GE #INPUT-LIMIT-COUNT 
*S**      ESCAPE BOTTOM IMMEDIATE   
*S**    END-IF          
*S**  END-IF
*S**END-WORK
*S***       
*S**WRITE WORK FILE 3 VARIABLE #ATTSCHL-END     
*S**WRITE WORK FILE 3 VARIABLE #RPTSCHL-END     
*S**WRITE WORK FILE 3 VARIABLE #END-REC         
*S**ADD 3 TO #XML-COUNTER           
*S**ESCAPE BOTTOM (PROG.) IMMEDIATE 
*S**END-REPEAT          
*S***       
*S*** Print job statistics          
*S**  WRITE(1) NOTITLE  
*S**    15T 'FINANCIER processing:' /           
*S**    17T 'Summary records read:' 
*S**                        (I) 55T #SUMMARY-COUNTER (EM=Z,ZZZ,ZZ9) /   
*S**    17T 'Student records read:' 
*S**                        (I) 55T #READ-COUNTER (EM=Z,ZZZ,ZZ9) //     
*S**    17T 'Student records exported:'         
*S**                        (I) 55T #WRITE-COUNTER (EM=Z,ZZZ,ZZ9) /     
*S**    17T 'XML lines written:'    
*S**                        (I) 55T #XML-COUNTER (EM=Z,ZZZ,ZZ9) /       
*S***       
*S***       
*S*************************************************************************         
*S**DEFINE SUBROUTINE DOCUMENT-SETUP
*S*************************************************************************         
*S**  MOVE EDITED *DATX(EM=YYYY-MM-DD) TO #DOCID-DT         
*S**  MOVE #DOCID-DT  TO #CRT-DATE  
*S**  MOVE *TIME TO #DOCID-TM       
*S**                #CRT-TIME       
*S**  MOVE WFFLS26D.#EXPORT-ENTITY  TO #SCHOOLID
*S**                                   #DOCID-SCHL          
*S**                                   #RPTSCHLID           
*S**                                   #ATTSCHLID           
*S**  MOVE 'T'   TO #DOCID-T        
*S**                #CRT-T          
*S**  MOVE '0'   TO #DOCID-SEC      
*S**                #CRT-SEC        
*S***       
*S**  WRITE WORK FILE 3 VARIABLE #TRANSDATA-BEG 
*S*** WRITE WORK FILE 3 VARIABLE #DOC-OUT       
*S**  MOVE LEFT JUSTIFIED #DOCID-DT TO #DOCID-DT  /* #DOC-OUT           
*S**  COMPRESS #DOCID-S #DOCUMENT-ID #DOCID-E     /* #DOC-OUT           
*S**    INTO #LINE-OUT LEAVING NO SPACE         
*S**  WRITE WORK FILE 3 VARIABLE #LINE-OUT      
*S**  WRITE WORK FILE 3 VARIABLE #CREATE-OUT    
*S**  WRITE WORK FILE 3 VARIABLE #SOURCE-BEG    
*S**  WRITE WORK FILE 3 VARIABLE #SCHOOL-BEG    
*S*** WRITE WORK FILE 3 VARIABLE #SCHOOL-OUT    
*S**  COMPRESS #SCHOOLID-S #SCHOOLID #SCHOOLID-E   /* #SCHOOL-OUT       
*S**    INTO #LINE-OUT LEAVING NO SPACE         
*S**  WRITE WORK FILE 3 VARIABLE #LINE-OUT      
*S**  WRITE WORK FILE 3 VARIABLE #SCHOOL-END    
*S**  WRITE WORK FILE 3 VARIABLE #SOURCE-END    
*S**  WRITE WORK FILE 3 VARIABLE #DEST-BEG      
*S**  WRITE WORK FILE 3 VARIABLE #COD-BEG       
*S**  WRITE WORK FILE 3 VARIABLE #COD-OUT       
*S**  WRITE WORK FILE 3 VARIABLE #COD-END       
*S**  WRITE WORK FILE 3 VARIABLE #DEST-END      
*S**  WRITE WORK FILE 3 VARIABLE #SOFTWARE-BEG  
*S**  WRITE WORK FILE 3 VARIABLE #SW-PROVIDER-OUT           
*S**  WRITE WORK FILE 3 VARIABLE #SW-VERSION-OUT
*S**  WRITE WORK FILE 3 VARIABLE #SOFTWARE-END  
*S**  WRITE WORK FILE 3 VARIABLE #FULLRESP-OUT  
*S**  WRITE WORK FILE 3 VARIABLE #TRANSDATA-END 
*S**  WRITE WORK FILE 3 VARIABLE #RPTSCHL-BEG   
*S*** WRITE WORK FILE 3 VARIABLE #RPTSCHL-OUT   
*S**  COMPRESS #RPTSCHLID-S #RPTSCHLID #RPTSCHLID-E   /* #RPTSCHL-OUT   
*S**    INTO #LINE-OUT LEAVING NO SPACE         
*S**  WRITE WORK FILE 3 VARIABLE #LINE-OUT      
*S**  ADD 21 TO #XML-COUNTER        
*S**END-SUBROUTINE /* DOCUMENT-SETUP
*S***       
*S*************************************************************************         
*S**DEFINE SUBROUTINE RPT-SUMMARY-SETUP         
*S*************************************************************************         
*S**  IF #E-SUMM-STUDENT > 0        
*S**    DECIDE ON FIRST VALUE OF WFFLS26D.#EXPORT-PROGRAM   
*S**      VALUE 'Pell'  
*S**        MOVE #FINTYPE-PELL TO #FINTYPE-OUT  
*S**      VALUE 'TEACH' 
*S**        MOVE #FINTYPE-TEACH TO #FINTYPE-OUT 
*S**      NONE          
*S**        IGNORE      
*S**    END-DECIDE      
*S**    MOVE WFFLS26D.#EXPORT-AIDYEAR TO #FINAWD-YR         
*S**    MOVE EDITED #E-SUMM-STUDENT(EM=ZZZZZZZZ9) TO #TOT-COUNT         
*S**    MOVE EDITED #E-SUMM-AWARD(EM=ZZZZZZZZZZZZ9.99)  TO #TOT-RPT-AWD 
*S**    MOVE EDITED #E-SUMM-DISB(EM=ZZZZZZZZZZZZ9.99)   TO #TOT-RPT-DSB 
*S***       
*S**    WRITE WORK FILE 3 VARIABLE #RPT-SUMMARY-BEG         
*S**    WRITE WORK FILE 3 VARIABLE #FINTYPE-OUT 
*S**    WRITE WORK FILE 3 VARIABLE #FINAWD-OUT  
*S***   WRITE WORK FILE 3 VARIABLE #COUNT-OUT   
*S**    MOVE LEFT JUSTIFIED #TOT-COUNT TO #TOT-COUNT      /* #COUNT-OUT 
*S**    COMPRESS #TOT-COUNT-S #TOT-COUNT #TOT-COUNT-E     /* #COUNT-OUT 
*S**      INTO #LINE-OUT LEAVING NO SPACE       
*S**    WRITE WORK FILE 3 VARIABLE #LINE-OUT    
*S***   WRITE WORK FILE 3 VARIABLE #TOTAWD-OUT  
*S**    MOVE LEFT JUSTIFIED #TOT-RPT-AWD TO #TOT-RPT-AWD    /* #TOTAWD-OUT          
*S**    COMPRESS #TOT-RPT-AWD-S #TOT-RPT-AWD #TOT-RPT-AWD-E /* #TOTAWD-OUT          
*S**      INTO #LINE-OUT LEAVING NO SPACE       
*S**    WRITE WORK FILE 3 VARIABLE #LINE-OUT    
*S***   WRITE WORK FILE 3 VARIABLE #TOTDSB-OUT  
*S**    MOVE LEFT JUSTIFIED #TOT-RPT-DSB TO #TOT-RPT-DSB    /* #TOTDSB-OUT          
*S**    COMPRESS #TOT-RPT-DSB-S #TOT-RPT-DSB #TOT-RPT-DSB-E /* #TOTDSB-OUT          
*S**      INTO #LINE-OUT LEAVING NO SPACE       
*S**    WRITE WORK FILE 3 VARIABLE #LINE-OUT    
*S**    WRITE WORK FILE 3 VARIABLE #RPT-SUMMARY-END         
*S**    ADD 7 TO #XML-COUNTER       
*S**  END-IF
*S**END-SUBROUTINE /* RPT-SUMMARY-SETUP         
*S***       
*S*************************************************************************         
*S**DEFINE SUBROUTINE STUDENT-SETUP 
*S*************************************************************************         
*S**  MOVE #E-ORIG-SSN        TO #STU-SSN       
*S**  MOVE EDITED #E-ORIG-DOB(EM=YYYY-MM-DD) TO #STU-DOB    
*S**  MOVE #E-ORIG-LAST       TO #STU-LAST      
*S**  MOVE #E-ORIG-STUDENT-ID TO #STU-SID       
*S**  MOVE #E-ORIG-FIRST      TO #STU-FIRST     
*S**  MOVE #E-ORIG-MI         TO #STU-MI        
*S**  MOVE #E-ORIG-AD-STRT TO #WORK-FIELD       
*S**  EXAMINE #WORK-FIELD '&' REPLACE '&amp;'   
*S**  EXAMINE #WORK-FIELD SINGLE-QUOTE REPLACE '&apos;'     
*S**  MOVE #WORK-FIELD        TO #STU-STRT      
*S**  MOVE #E-ORIG-AD-CITY TO #WORK-FIELD       
*S**  EXAMINE #WORK-FIELD '&' REPLACE '&amp;'   
*S**  EXAMINE #WORK-FIELD SINGLE-QUOTE REPLACE '&apos;'     
*S**  MOVE #WORK-FIELD        TO #STU-CITY      
*S**  MOVE #E-ORIG-AD-STATE   TO #STU-STATE     
*S**  MOVE #E-ORIG-AD-ZIP     TO #STU-ZIP       
*S**  MOVE #E-ORIG-CIT        TO #STU-CIT       
*S***       
*S**  WRITE WORK FILE 3 VARIABLE #STUDENT-BEG   
*S**  WRITE WORK FILE 3 VARIABLE #STUINDEX-BEG  
*S**  WRITE WORK FILE 3 VARIABLE #STUDENT-SSN-OUT           
*S**  WRITE WORK FILE 3 VARIABLE #STUDENT-DOB-OUT           
*S*** WRITE WORK FILE 3 VARIABLE #STUDENT-LAST-OUT          
*S**  COMPRESS #STU-LAST-S #STU-LAST #STU-LAST-E /* #STUDENT-LAST-OUT   
*S**    INTO #LINE-OUT LEAVING NO SPACE         
*S**  WRITE WORK FILE 3 VARIABLE #LINE-OUT      
*S**  WRITE WORK FILE 3 VARIABLE #STUINDEX-END  
*S**  WRITE WORK FILE 3 VARIABLE #STU-PERSID-BEG
*S**  WRITE WORK FILE 3 VARIABLE #STUDENT-SID-OUT           
*S**  WRITE WORK FILE 3 VARIABLE #STU-PERSID-END
*S**  WRITE WORK FILE 3 VARIABLE #STU-NAME-BEG  
*S*** WRITE WORK FILE 3 VARIABLE #STU-FIRST-OUT 
*S**  COMPRESS #STU-FIRST-S #STU-FIRST #STU-FIRST-E /* #STU-FIRST-OUT   
*S**    INTO #LINE-OUT LEAVING NO SPACE         
*S**  WRITE WORK FILE 3 VARIABLE #LINE-OUT      
*S*** WRITE WORK FILE 3 VARIABLE #STU-MI-OUT    
*S**  IF #STU-MI NE ' ' 
*S**    COMPRESS #STU-MI-S #STU-MI #STU-MI-E          /* #STU-MI-OUT    
*S**      INTO #LINE-OUT LEAVING NO SPACE       
*S**    WRITE WORK FILE 3 VARIABLE #LINE-OUT    
*S**    ADD 1 TO #XML-COUNTER       
*S**  END-IF
*S**  WRITE WORK FILE 3 VARIABLE #STU-NAME-END  
*S**  WRITE WORK FILE 3 VARIABLE #STU-CONTACT-BEG           
*S**  WRITE WORK FILE 3 VARIABLE #STU-ADDRESS-BEG           
*S*** WRITE WORK FILE 3 VARIABLE #STU-STREET-OUT
*S**  COMPRESS #STU-STRT-S #STU-STRT #STU-STRT-E   /*#STU-STRT-E        
*S**    INTO #LINE-OUT LEAVING NO SPACE         
*S**  WRITE WORK FILE 3 VARIABLE #LINE-OUT      
*S*** WRITE WORK FILE 3 VARIABLE #STU-CITY-OUT  
*S**  COMPRESS #STU-CITY-S #STU-CITY #STU-CITY-E /* #STU-CITY-OUT       
*S**    INTO #LINE-OUT LEAVING NO SPACE         
*S**  WRITE WORK FILE 3 VARIABLE #LINE-OUT      
*S*** WRITE WORK FILE 3 VARIABLE #STU-STATE-OUT 
*S**  COMPRESS #STU-STATE-S #STU-STATE #STU-STATE-E   /* #STU-STATE-OUT 
*S**    INTO #LINE-OUT LEAVING NO SPACE         
*S**  WRITE WORK FILE 3 VARIABLE #LINE-OUT      
*S*** WRITE WORK FILE 3 VARIABLE #STU-ZIP-OUT   
*S**  COMPRESS #STU-ZIP-S #STU-ZIP #STU-ZIP-E /* #STU-ZIP-OUT           
*S**    INTO #LINE-OUT LEAVING NO SPACE         
*S**  WRITE WORK FILE 3 VARIABLE #LINE-OUT      
*S**  WRITE WORK FILE 3 VARIABLE #STU-ADDRESS-END           
*S**  WRITE WORK FILE 3 VARIABLE #STU-CONTACT-END           
*S**  WRITE WORK FILE 3 VARIABLE #STU-CIT-BEG   
*S*** WRITE WORK FILE 3 VARIABLE #STU-CIT-OUT   
*S**  COMPRESS #STU-CIT-S #STU-CIT #STU-CIT-E     /* #STU-CIT-OUT       
*S**    INTO #LINE-OUT LEAVING NO SPACE         
*S**  WRITE WORK FILE 3 VARIABLE #LINE-OUT      
*S**  WRITE WORK FILE 3 VARIABLE #STU-CIT-END   
*S**  ADD 23 TO #XML-COUNTER        
*S**END-SUBROUTINE /* STUDENT-SETUP 
*S***       
*S*************************************************************************         
*S**DEFINE SUBROUTINE AWARD-SETUP   
*S*************************************************************************         
*S**  DECIDE ON FIRST VALUE OF WFFLE26D.#EXPORT-PROGRAM     
*S**    VALUE 'Pell'    
*S**      ASSIGN #PELL  = TRUE      
*S**      MOVE #FG-PELL      TO #AWD-TAG        
*S**      MOVE #FG-PELL-END  TO #AWD-TAG-END    
*S**    VALUE 'TEACH'   
*S**      ASSIGN #TEACH = TRUE      
*S**      MOVE #FG-TEACH     TO #AWD-TAG        
*S**      MOVE #FG-TEACH-END TO #AWD-TAG-END    
*S**    NONE
*S**      IGNORE        
*S**  END-DECIDE        
*S***       
*S**  MOVE WFFLE26D.#EXPORT-AIDYEAR               TO #FIN-AWDYR         
*S**  MOVE #E-ORIG-TRANS-NO                       TO #FPS-TRAN          
*S**  MOVE EDITED #E-ORIG-AWARD(EM=ZZZZ9.99)      TO #FIN-AWD-AMT       
*S**  MOVE #E-ORIG-UPDATE                         TO #AWARD-UPD         
*S**  MOVE #E-ORIG-GRANT-ID                       TO #AWARD-ID          
*S**  MOVE #E-ORIG-GRANT-NUM                      TO #AWARD-NUM         
*S**  MOVE #E-ORIG-YR-COL                         TO #YR-COL
*S**  MOVE EDITED #E-ORIG-BUDGET(EM=ZZZZ9.99)     TO #COST  
*S**  MOVE #E-ORIG-VER-STATUS                     TO #VERSTAT           
*S**  MOVE EDITED #E-ORIG-ENR-DATE(EM=YYYY-MM-DD) TO #ENR-DT
*S**  MOVE #E-ORIG-ATB-CODE                       TO #ATB-CODE          
*S**  MOVE #E-ORIG-ATB-ADMN                       TO #ATB-ADMN          
*S**  MOVE #E-ORIG-ATB-TEST                       TO #ATB-TEST          
*S**  MOVE EDITED #E-ORIG-ATB-DATE(EM=YYYY-MM-DD) TO #ATB-DATE          
*S**  MOVE #E-ORIG-ATB-STATE                      TO #ATB-STATE         
*S**  IF #E-ORIG-AEI = 'Y'          
*S**     MOVE 'true' TO #AEI        
*S**  ELSE  
*S**     MOVE 'false' TO #AEI       
*S**  END-IF
*S***       
*S**  WRITE WORK FILE 3 VARIABLE #AWD-BEG       
*S**  WRITE WORK FILE 3 VARIABLE #AWARD-YR-OUT  
*S**  WRITE WORK FILE 3 VARIABLE #FPSTRAN-OUT   
*S*** WRITE WORK FILE 3 VARIABLE #AWD-AMT-OUT   
*S**  MOVE LEFT JUSTIFIED #FIN-AWD-AMT TO #FIN-AWD-AMT    /* #AWD-AMT-OUT           
*S**  COMPRESS #FIN-AWD-AMT-S #FIN-AWD-AMT #FIN-AWD-AMT-E /* #AWD-AMT-OUT           
*S**    INTO #LINE-OUT LEAVING NO SPACE         
*S**  WRITE WORK FILE 3 VARIABLE #LINE-OUT      
*S**  WRITE WORK FILE 3 VARIABLE #AWARD-UPD-BEG 
*S**  WRITE WORK FILE 3 VARIABLE #AWARD-UPD-OUT 
*S**  WRITE WORK FILE 3 VARIABLE #AWARD-UPD-END 
*S**  ADD 7 TO #XML-COUNTER         
*S***       
*S**  IF #TEACH         
*S**    WRITE WORK FILE 3 VARIABLE #AWARD-NUM-OUT           
*S**    WRITE WORK FILE 3 VARIABLE #AWARD-ID-OUT
*S**    WRITE WORK FILE 3 VARIABLE #YR-COL-OUT  
*S**    ADD 3 TO #XML-COUNTER       
*S**  END-IF
*S***       
*S**  IF #PELL          
*S***   WRITE WORK FILE 3 VARIABLE #COST-OUT    
*S**    MOVE LEFT JUSTIFIED #COST TO #COST   /* #COST       
*S**    COMPRESS #COST-S #COST #COST-E       /* #COST       
*S**      INTO #LINE-OUT LEAVING NO SPACE       
*S**    WRITE WORK FILE 3 VARIABLE #LINE-OUT    
*S**    ADD 1 TO #XML-COUNTER       
*S**    IF #VERSTAT NE ' '          
*S**      WRITE WORK FILE 3 VARIABLE #VERSTAT-OUT           
*S**      ADD 1 TO #XML-COUNTER     
*S**    END-IF          
*S**  END-IF
*S***       
*S*** WRITE WORK FILE 3 VARIABLE #ENR-OUT       
*S**  MOVE LEFT JUSTIFIED #ENR-DT TO #ENR-DT      /* #ENR-OUT           
*S**  COMPRESS #ENR-DT-S #ENR-DT #ENR-DT-E        /* #ENR-OUT           
*S**    INTO #LINE-OUT LEAVING NO SPACE         
*S**  WRITE WORK FILE 3 VARIABLE #LINE-OUT      
*S**  ADD 1 TO #XML-COUNTER         
*S***       
*S**  IF #PELL          
*S***   WRITE WORK FILE 3 VARIABLE #AEI-OUT     
*S**    COMPRESS #AEI-S #AEI #AEI-E /* #AEI-OUT 
*S**      INTO #LINE-OUT LEAVING NO SPACE       
*S**    WRITE WORK FILE 3 VARIABLE #LINE-OUT    
*S**    ADD 1 TO #XML-COUNTER       
*S**  END-IF
*S***       
*S**  IF #ATB-CODE NE ' '           
*S***   WRITE WORK FILE 3 VARIABLE #ATB-CODE-OUT
*S**    COMPRESS #ATB-CODE-S #ATB-CODE #ATB-CODE-E /* #ATB-CODE-OUT     
*S**      INTO #LINE-OUT LEAVING NO SPACE       
*S**    WRITE WORK FILE 3 VARIABLE #LINE-OUT    
*S**    ADD 1 TO #XML-COUNTER       
*S**    IF #ATB-ADMN NE ' '         
*S***     WRITE WORK FILE 3 VARIABLE #ATB-ADMN-OUT          
*S**      COMPRESS #ATB-ADMN-S #ATB-ADMN #ATB-ADMN-E /* #ATB-ADMN-OUT   
*S**        INTO #LINE-OUT LEAVING NO SPACE     
*S**      WRITE WORK FILE 3 VARIABLE #LINE-OUT  
*S**      ADD 1 TO #XML-COUNTER     
*S**    END-IF          
*S**    IF #ATB-TEST NE ' '         
*S***     WRITE WORK FILE 3 VARIABLE #ATB-TEST-OUT          
*S**      COMPRESS #ATB-TEST-S #ATB-TEST #ATB-TEST-E /* #ATB-TEST-OUT   
*S**        INTO #LINE-OUT LEAVING NO SPACE     
*S**      WRITE WORK FILE 3 VARIABLE #LINE-OUT  
*S**      ADD 1 TO #XML-COUNTER     
*S**    END-IF          
*S**    IF #ATB-STATE NE ' '        
*S***     WRITE WORK FILE 3 VARIABLE #ATB-STATE-OUT         
*S**      COMPRESS #ATB-STATE-S #ATB-STATE #ATB-STATE-E /* #ATB-STATE-OUT           
*S**        INTO #LINE-OUT LEAVING NO SPACE     
*S**      WRITE WORK FILE 3 VARIABLE #LINE-OUT  
*S**      ADD 1 TO #XML-COUNTER     
*S**    END-IF          
*S**    IF #ATB-DATE NE ' '         
*S***     WRITE WORK FILE 3 VARIABLE #ATB-DATE-OUT          
*S**      COMPRESS #ATB-DATE-S #ATB-DATE #ATB-DATE-E /* #ATB-DATE-OUT   
*S**        INTO #LINE-OUT LEAVING NO SPACE     
*S**      WRITE WORK FILE 3 VARIABLE #LINE-OUT  
*S**      ADD 1 TO #XML-COUNTER     
*S**    END-IF          
*S**  END-IF
*S***       
*S**END-SUBROUTINE /* AWARD-SETUP   
*S***       
*S*************************************************************************         
*S**DEFINE SUBROUTINE DISB-SETUP    
*S*************************************************************************         
*S**  MOVE #E-DISB-NUMBER(#SUB) TO #DISB-NBR    
*S**  MOVE #E-DISB-DP(#SUB) TO #DISB-DP         
*S**  MOVE EDITED #E-DISB-AMOUNT(#SUB)(EM=ZZZZ9.99) TO #DISB-AMT        
*S**  MOVE EDITED #E-DISB-DATE(#SUB) (EM=YYYY-MM-DD) TO #DISB-DT        
*S**  IF #E-DISB-REL(#SUB) = 'Y'    
*S**     MOVE 'true' TO #DISB-RLS   
*S**  ELSE  
*S**     MOVE 'false' TO #DISB-RLS  
*S**  END-IF
*S**  MOVE #E-DISB-SEQ(#SUB)  TO #DISB-SEQ      
*S**  IF #E-DISB-ENR-STATUS(#SUB) = 'T'         
*S**    MOVE 'Q' TO #DISB-ENR-STATUS
*S**  ELSE  
*S**    IF #E-DISB-ENR-STATUS(#SUB) = 'N'       
*S**      MOVE 'H' TO #DISB-ENR-STATUS          
*S**    ELSE
*S**      MOVE #E-DISB-ENR-STATUS(#SUB) TO #DISB-ENR-STATUS 
*S**    END-IF          
*S**  END-IF
*S***       
*S**  MOVE #E-DISB-ENR-INTENSITY(#SUB) TO #DISB-ENR-INTENS  
*S**  MOVE #E-DISB-CIP-CODE(#SUB) TO #DISB-CIP-CODE         
*S**  MOVE #E-DISB-CIP-CODE-YEAR(#SUB) TO #DISB-CIP-CODE-YEAR           
*S**  MOVE #EXPORT-OPEID TO #DISB-ENRSCH        
*S***       
*S**  MOVE EDITED #E-DISB-PAYPD-START-DATE(#SUB) (EM=YYYY-MM-DD) TO     
*S**       #DISB-PAYPD-DATE         
*S**  MOVE EDITED #E-DISB-PAYPD-END-DATE(#SUB) (EM=YYYY-MM-DD) TO       
*S**       #DISB-PAYPD-END-DATE     
*S***       
*S*****only ONE of the below can be transmitted 
*S**  MOVE EDITED #E-DISB-PGM-LGTH-YRS(#SUB)(EM=ZZ9.999) TO #PGM-LGTH-YRS           
*S**  MOVE EDITED #E-DISB-PGM-LGTH-MOS(#SUB)(EM=ZZ9.999) TO #PGM-LGTH-MOS           
*S**  MOVE EDITED #E-DISB-PGM-LGTH-WKS(#SUB)(EM=ZZ9.999) TO #PGM-LGTH-WKS           
*S***       
*S**  MOVE EDITED #E-DISB-PGM-ACAD-WKS(#SUB)(EM=ZZ9.999) TO #PGM-ACAD-WKS           
*S**  MOVE #E-DISB-SPEC-PGM(#SUB)                TO #SPEC-PGM           
*S**  MOVE #E-DISB-CRED-LEV(#SUB)                TO #CRED-LEV           
*S***       
*S**  WRITE WORK FILE 3 VARIABLE #DISB-NBR-OUT  
*S*** WRITE WORK FILE 3 VARIABLE #DISB-AMT-OUT  
*S**  MOVE LEFT JUSTIFIED #DISB-AMT TO #DISB-AMT  /* #DISB-AMT-OUT      
*S**  COMPRESS #DISB-AMT-S #DISB-AMT #DISB-AMT-E  /* #DISB-AMT-OUT      
*S**    INTO #LINE-OUT LEAVING NO SPACE         
*S**  WRITE WORK FILE 3 VARIABLE #LINE-OUT      
*S**  WRITE WORK FILE 3 VARIABLE #DISB-DT-OUT   
*S*** WRITE WORK FILE 3 VARIABLE #DISB-RLS-OUT  
*S**  COMPRESS #DISB-RLS-S #DISB-RLS #DISB-RLS-E /* #DISB-RLS           
*S**    INTO #LINE-OUT LEAVING NO SPACE         
*S**  WRITE WORK FILE 3 VARIABLE #LINE-OUT      
*S**  WRITE WORK FILE 3 VARIABLE #DISB-SEQ-OUT  
*S*** WRITE WORK FILE 3 VARIABLE #DISB-ENRSCH-OUT           
*S**  COMPRESS #DISB-ENRSCH-S #DISB-ENRSCH #DISB-ENRSCH-E   
*S**                                                   /* #DISB-ENRSCH-OUT          
*S**    INTO #LINE-OUT LEAVING NO SPACE         
*S**  WRITE WORK FILE 3 VARIABLE #LINE-OUT      
*S***       
*S**    IF #DISB-PAYPD-DATE NE ' '  
*S**      MOVE LEFT JUSTIFIED #DISB-PAYPD-DATE TO #DISB-PAYPD-DATE      
*S**    COMPRESS #DISB-PAYPD-S #DISB-PAYPD-DATE #DISB-PAYPD-E  /*#DISB-PAYPD        
*S**        INTO #LINE-OUT LEAVING NO SPACE     
*S**      WRITE WORK FILE 3 VARIABLE  #LINE-OUT 
*S**      ADD 1 TO #XML-COUNTER     
*S**    END-IF          
*S**    IF #DISB-PAYPD-END-DATE NE ' '          
*S**      MOVE LEFT JUSTIFIED #DISB-PAYPD-END-DATE TO #DISB-PAYPD-END-DATE          
*S**    COMPRESS #DISB-PAYPD-END-S #DISB-PAYPD-END-DATE #DISB-PAYPD-END-E           
*S**        INTO #LINE-OUT LEAVING NO SPACE     
*S**      WRITE WORK FILE 3 VARIABLE  #LINE-OUT 
*S**      ADD 1 TO #XML-COUNTER     
*S**    END-IF          
*S***       
*S**  IF #DISB-ENR-STATUS NE ' '    
*S**    COMPRESS #DISB-ENR-STATUS-S #DISB-ENR-STATUS #DISB-ENR-STATUS-E 
*S**                                               /* #DISB-ENR-STATUS-OUT          
*S**      INTO #LINE-OUT LEAVING NO SPACE       
*S**    WRITE WORK FILE 3 VARIABLE #LINE-OUT    
*S**    ADD 1 TO #XML-COUNTER       
*S**  END-IF
*S**  IF #PELL          
*S**      COMPRESS #DISB-ENR-INTENS-S #DISB-ENR-INTENS #DISB-ENR-INTENS-E           
*S**      INTO #LINE-OUT LEAVING NO SPACE       
*S**      WRITE WORK FILE 3 VARIABLE #lINE-OUT  
*S**      ADD 1 TO #XML-COUNTER     
*S**  END-IF
*S**  IF #DISB-CIP-CODE NE ' '      
*S**    COMPRESS #DISB-CIP-CODE-S #DISB-CIP-CODE #DISB-CIP-CODE-E       
*S**                                              /* #DISB-CIP-CODE-OUT 
*S**      INTO #LINE-OUT LEAVING NO SPACE       
*S**    WRITE WORK FILE 3 VARIABLE #LINE-OUT    
*S**    ADD 1 TO #XML-COUNTER       
*S**  END-IF
*S***       
*S**  IF VAL(#PGM-LGTH-YRS) > 0     
*S**    MOVE LEFT JUSTIFIED #PGM-LGTH-YRS TO #PGM-LGTH-YRS  
*S**    COMPRESS #PGM-LGTH-YRS-S #PGM-LGTH-YRS #PGM-LGTH-YRS-E          
*S**      INTO #LINE-OUT LEAVING NO SPACE              /* #PGM-LGTH-Y-OUT           
*S**    WRITE WORK FILE 3 VARIABLE #LINE-OUT    
*S**    ADD 1 TO #XML-COUNTER       
*S**   ELSE 
*S**    IF VAL(#PGM-LGTH-MOS) > 0   
*S**      MOVE LEFT JUSTIFIED #PGM-LGTH-MOS TO #PGM-LGTH-MOS
*S**      COMPRESS #PGM-LGTH-MOS-S #PGM-LGTH-MOS #PGM-LGTH-MOS-E        
*S**        INTO #LINE-OUT LEAVING NO SPACE           /* #PGM-LGTH-M-OUT
*S**      WRITE WORK FILE 3 VARIABLE #LINE-OUT  
*S**      ADD 1 TO #XML-COUNTER     
*S**     ELSE           
*S**      IF VAL(#PGM-LGTH-WKS) > 0 
*S**        MOVE LEFT JUSTIFIED #PGM-LGTH-WKS TO #PGM-LGTH-WKS          
*S**        COMPRESS #PGM-LGTH-WKS-S #PGM-LGTH-WKS #PGM-LGTH-WKS-E      
*S**          INTO #LINE-OUT LEAVING NO SPACE        /* #PGM-LGTH-W-OUT 
*S**        WRITE WORK FILE 3 VARIABLE #LINE-OUT
*S**        ADD 1 TO #XML-COUNTER   
*S**      END-IF        
*S**    END-IF          
*S**  END-IF
*S**  IF (VAL(#PGM-LGTH-MOS)> 0) OR (VAL(#PGM-LGTH-WKS)> 0) OR          
*S**     (#SPEC-PGM = 'P')          
*S**    MOVE LEFT JUSTIFIED #PGM-ACAD-WKS TO #PGM-ACAD-WKS  
*S**    COMPRESS #PGM-ACAD-WKS-S #PGM-ACAD-WKS #PGM-ACAD-WKS-E          
*S**      INTO #LINE-OUT LEAVING NO SPACE         /* #PGM-ACAD-W-OUT    
*S**    WRITE WORK FILE 3 VARIABLE #LINE-OUT    
*S**    ADD 1 TO #XML-COUNTER       
*S**  END-IF
*S**  IF #SPEC-PGM NE ' '           
*S**    COMPRESS #SPEC-PGM-S #SPEC-PGM #SPEC-PGM-E          
*S**      INTO #LINE-OUT LEAVING NO SPACE         /* #SPEC-PGM-OUT      
*S**    WRITE WORK FILE 3 VARIABLE #LINE-OUT    
*S**    ADD 1 TO #XML-COUNTER       
*S**  END-IF
*S**  IF VAL(#CRED-LEV) > 0         
*S**    MOVE LEFT JUSTIFIED #CRED-LEV TO #CRED-LEV          
*S**    COMPRESS #CRED-LEV-S #CRED-LEV #CRED-LEV-E          
*S**      INTO #LINE-OUT LEAVING NO SPACE          /* #CRED-LEVEL-OUT   
*S**    WRITE WORK FILE 3 VARIABLE #LINE-OUT    
*S**    ADD 1 TO #XML-COUNTER       
*S**  END-IF
*S**  IF #DISB-CIP-CODE NE ' '  /*IF we have a cip code then output yr  
*S**    COMPRESS #DISB-CIP-CODE-YEAR-S #DISB-CIP-CODE-YEAR  
*S**             #DISB-CIP-CODE-YEAR-E          
*S**        INTO #LINE-OUT LEAVING NO SPACE     
*S**      WRITE WORK FILE 3 VARIABLE  #LINE-OUT 
*S**      ADD 1 TO #XML-COUNTER     
*S**  END-IF
*S**  WRITE WORK FILE 3 VARIABLE #DISB-DP-BEG   
*S**  WRITE WORK FILE 3 VARIABLE #DISB-DP-OUT   
*S**  WRITE WORK FILE 3 VARIABLE #DISB-DP-END   
*S**  ADD 9 TO #XML-COUNTER         
*S***       
*S**  WRITE WORK FILE 3 VARIABLE #DISB-END      
*S**  ADD 1 TO #XML-COUNTER         
*S**END-SUBROUTINE /* DISB-SETUP    
*S***       
*S*************************************************************************         
*S**DEFINE SUBROUTINE TRANSLATE-QUOTES-TO-HEX   
*S*************************************************************************         
*S**  EXAMINE #XML-L1 '@' REPLACE DOUBLE-QUOTE  
*S**  EXAMINE #SEG1 '@' REPLACE DOUBLE-QUOTE    
*S**  EXAMINE #SEG2 '@' REPLACE DOUBLE-QUOTE    
*S**  EXAMINE #SEG3 '@' REPLACE DOUBLE-QUOTE    
*S**  EXAMINE #SEG4 '@' REPLACE DOUBLE-QUOTE    
*S**  EXAMINE #DISB-NBR-S '@' REPLACE DOUBLE-QUOTE          
*S**  EXAMINE #DISB-NBR-E '@' REPLACE DOUBLE-QUOTE          
*S**END-SUBROUTINE /* TRANSLATE-QUOTES-TO-HEX   
*S**END     
*C**                                FATEMP  WFFLI26B                        F S   NN0000        
*D01NAT8304F FATEMP  WFFLI26B                        ZWDNH   ZWDNH           S      
*D02            2025040219300402025040219300400000015000    
*D03LINUX   
*D04                 ISO_8859-1:1987
*S*************************************************************************         
*S***       
*S***                              WolffPack    
*S***       
*S*** Program  : WFFLI26B           
*S*** System   : FINANCIER          
*S*** Title    : Federal Grant XML Import       
*S*** Function : This program imports Federal Grant XML documents       
*S***            transmitted from COD and converts them to fixed        
*S***            records to be processed by WFFLAyyB.       
*S***       
*S***            COD Schema Version 5.0c        
*S***       
*S***      Copyright 1995 - 2025 WolffPack, Inc.  All rights reserved.  
*S***       
*S*************************************************************************         
*S**DEFINE DATA         
*S**  GLOBAL USING WWGDA
*S***       
*S**  LOCAL USING WWREQIBD          
*S**  LOCAL USING WFFLI26D          
*S**  LOCAL USING WWCONST           
*S**  LOCAL 
*S***       
*S** 01 #LONG-STRING    
*S**  02 #L1 (A250)     
*S**  02 #L2 (A150)     
*S***       
*S** 01 #XML-STRING(A100)           
*S** 01 REDEFINE #XML-STRING        
*S**   02 #STRING-A(A1/100)         
*S***       
*S** 01 #STRING-TOT(N3) 
*S** 01 #TAG-NAME(A50)  
*S** 01 REDEFINE #TAG-NAME          
*S**   02 #TAG-N(A1/50) 
*S** 01 #TAG-VALUE(A50) 
*S** 01 REDEFINE #TAG-VALUE         
*S**   02 #TAG-V(A1/50) 
*S** 01 #END-TAG-NAME-POS (N20)     
*S** 01 #END-TAG (N20)  
*S** 01 #LOC(A3)        
*S** 01 #SUB(P5)        
*S** 01 #SUB2(P5)       
*S** 01 #SUBE(P5)       
*S** 01 #SUBF(P5)       
*S** 01 #SUBT(P5) INIT <0>          
*S** 01 #SUBV(P5) INIT <0>          
*S** 01 #SUBM(P5)       
*S** 01 #SUBU(P5)       
*S** 01 #D(P3)          
*S** 01 #A-E(P3)        
*S** 01 #S-E(P3)        
*S** 01 #D-E(P3)        
*S** 01 #ATT-E(P3)      
*S** 01 #R-E(P3)        
*S** 01 #X-E(P3)        
*S** 01 #A-F(P3)        
*S** 01 #D-F(P3)        
*S** 01 #S-F(P3)        
*S** 01 #EQUALSIGNS (N1)
*S** 01 #STD-COUNTER (P7)           
*S** 01 #AWD-EXISTS (L) INIT <FALSE>
*S** 01 #LOOP (N1)      
*S** 01 #N    (N2)      
*S** 01 #CONTINUE-LOADING(L)INIT <FALSE>        
*S** 01 END-OF-STUDENT(L)INIT <FALSE>           
*S** 01 #END-DOC (L)    
*S** 01 #COUNT-LT(N1)   
*S** 01 #CHK-TYPE(A30)  
*S** 01 #CHK-YEAR(A4)   
*S** 01 #TYPE(L)        
*S** 01 #YEAR(L)        
*S***       
*S** 01 #SUMMARY-COUNTER (P7)       
*S** 01 #READ-COUNTER (P7)          
*S** 01 #WRITE-STD-COUNTER(P7)      
*S** 01 #WRITE-SUM-COUNTER(P7)      
*S**END-DEFINE          
*S***       
*S*** Load Parameters   
*S**MOVE ##PASS-TEMP TO PASS-BATCH-FLDS         
*S**PROG.   
*S**REPEAT  
*S**READ WORK FILE 3 #LONG-STRING   
*S**MOVE SUBSTRING(#L1,1,100) TO #XML-STRING    
*S**ADD 1 TO #READ-COUNTER          
*S** IF #XML-STRING = ' '           
*S**   ESCAPE TOP       
*S** END-IF 
*S** MOVE LEFT #XML-STRING TO #XML-STRING       
*S***       
*S** IF SUBSTRING(#XML-STRING,1,9) = '<Receipt>'
*S**   ESCAPE BOTTOM (PROG.) IMMEDIATE          
*S** END-IF 
*S***       
*S** EXAMINE #XML-STRING FOR ' ' GIVING LENGTH #STRING-TOT  
*S** IF #CONTINUE-LOADING = FALSE   
*S**   IF SUBSTRING(#XML-STRING,1,17) = '<ReportingSchool>' 
*S**     ASSIGN #CONTINUE-LOADING = TRUE        
*S**   ELSE 
*S**     ESCAPE TOP     
*S**   END-IF           
*S** END-IF 
*S***       
*S** EXAMINE #XML-STRING FOR '=' GIVING #EQUALSIGNS         
*S** DECIDE ON FIRST VALUE OF #EQUALSIGNS       
*S**   VALUE 0          
*S**     EXAMINE #XML-STRING FOR '<' GIVING #COUNT-LT       
*S**     EXAMINE #XML-STRING FOR '>' GIVING POSITION #END-TAG-NAME-POS  
*S**     IF #COUNT-LT = 2           
*S**       PERFORM GET-TAG-NAME     
*S**       PERFORM GET-TAG-VALUE    
*S**     ELSE           
*S**       PERFORM GET-TAG-NAME     
*S**     END-IF         
*S**     PERFORM EVAL-TAG-NAME      
*S**   VALUE 1          
*S**     EXAMINE #XML-STRING FOR '=' GIVING POSITION #END-TAG-NAME-POS  
*S**     PERFORM GET-TAG-NAME       
*S**     ADD 1 TO #END-TAG-NAME-POS 
*S**     PERFORM GET-TAG-VALUE      
*S**     PERFORM EVAL-TAG-NAME      
*S**   NONE 
*S**     IGNORE         
*S** END-DECIDE         
*S***       
*S** IF #YEAR AND #TYPE 
*S**   IF (#CHK-TYPE NE 'Pell' AND  
*S**       #CHK-TYPE NE 'TEACH') OR 
*S**      #CHK-YEAR NOT = #INPUT-AID-YEAR       
*S**     SKIP(1) 3      
*S**     WRITE(1) 3T 'Input parameters do not match XML file'           
*S**     WRITE(1) 3T '  Program: ' #CHK-TYPE    
*S**     WRITE(1) 3T '  AidYear: ' #CHK-YEAR    
*S**     SKIP(1) 1      
*S**     WRITE(1) 3T 'Correct invalid or missing parameters and re-run job'         
*S**     TERMINATE      
*S**   END-IF           
*S** END-IF 
*S***       
*S** IF END-OF-STUDENT = TRUE       
*S**   PERFORM REMOVE-WARNINGS      
*S**   WRITE WORK FILE 2 WFFLI26D   
*S**   ADD 1 TO #WRITE-STD-COUNTER  
*S**   RESET #SUB #SUBT #SUB2 #SUBV 
*S**         #IMPORT-ORIGINATION #IMPORT-DISBURSEMENT(*)    
*S**   ASSIGN END-OF-STUDENT = FALSE
*S** END-IF 
*S***       
*S** IF #END-DOC = TRUE 
*S**   ESCAPE BOTTOM IMMEDIATE      
*S** END-IF 
*S***       
*S** IF (#INPUT-RUNMODE = 'TRIAL' OR = 'SAMPLE') AND        
*S**   #INPUT-LIMIT-COUNT > 0       
*S**    IF #STD-COUNTER GE #INPUT-LIMIT-COUNT   
*S**      ESCAPE BOTTOM IMMEDIATE   
*S**    END-IF          
*S** END-IF 
*S**END-WORK
*S**MOVE 'FederalGrant' TO WFFLT26D.#IMPORT-PROGRAM         
*S**WRITE WORK FILE 1 WFFLT26D      
*S**ADD 1 TO #WRITE-SUM-COUNTER     
*S**ESCAPE BOTTOM (PROG.) IMMEDIATE 
*S**END-REPEAT          
*S***       
*S**  WRITE(1) NOTITLE  
*S**    15T 'FINANCIER processing:' /           
*S**    17T 'XML lines read:'       
*S**                        (I) 55T #READ-COUNTER (EM=Z,ZZZ,ZZ9) //     
*S**    17T 'Student records written:'          
*S**                        (I) 55T #WRITE-STD-COUNTER (EM=Z,ZZZ,ZZ9) / 
*S**    17T 'Summary records written:'          
*S**                        (I) 55T #WRITE-SUM-COUNTER (EM=Z,ZZZ,ZZ9) / 
*S***       
*S*************************************************************************         
*S**DEFINE SUBROUTINE GET-TAG-NAME  
*S*************************************************************************         
*S**  RESET #SUBT #SUB #TAG-NAME    
*S**  FOR #SUB = 1 TO #END-TAG-NAME-POS         
*S**    ADD 1 TO #SUBT  
*S**    MOVE #STRING-A(#SUB) TO #TAG-N(#SUBT)   
*S**  END-FOR           
*S**END-SUBROUTINE      
*S***       
*S*************************************************************************         
*S**DEFINE SUBROUTINE GET-TAG-VALUE 
*S*************************************************************************         
*S**  RESET #SUBV #SUB2 #TAG-VALUE  
*S**  COMPUTE #END-TAG-NAME-POS = #END-TAG-NAME-POS + 1     
*S**  FOR #SUB2 = #END-TAG-NAME-POS  TO #STRING-TOT         
*S**    ADD 1 TO #SUBV  
*S**    IF (#STRING-A(#SUB2) NE '<') AND        
*S**       (#STRING-A(#SUB2) NE DOUBLE-QUOTE)   
*S**      MOVE #STRING-A(#SUB2) TO #TAG-V(#SUBV)
*S**    ELSE
*S**      ESCAPE BOTTOM 
*S**    END-IF          
*S**  END-FOR           
*S**END-SUBROUTINE      
*S***       
*S**************************************************************************        
*S**DEFINE SUBROUTINE EVAL-TAG-NAME 
*S************************************************************************          
*S**  MOVE LEFT #TAG-NAME TO #TAG-NAME          
*S**  MOVE LEFT #TAG-VALUE TO #TAG-VALUE        
*S***       
*S**  DECIDE FOR FIRST CONDITION    
*S**    /*  
*S**    /* Tags related to the <ReportingSchool> block      
*S**    WHEN #TAG-NAME = '<ReportingSchool>'    
*S**      ASSIGN #LOC = 'RPT'       
*S**    WHEN #TAG-NAME = '<FinancialAwardType>' 
*S**      ASSIGN #TYPE = TRUE       
*S**      DECIDE ON FIRST VALUE OF #TAG-VALUE   
*S**        VALUE 'Pell'
*S**          MOVE 'Pell'  TO #CHK-TYPE         
*S**        VALUE 'TEACH'           
*S**          MOVE 'TEACH' TO #CHK-TYPE         
*S**        NONE        
*S**          RESET #CHK-TYPE       
*S**      END-DECIDE    
*S**    WHEN #TAG-NAME = '<FinancialAwardYear>' 
*S**      ASSIGN #YEAR = TRUE       
*S**      MOVE #TAG-VALUE TO WFFLI26D.#IMPORT-AIDYEAR       
*S**                         WFFLT26D.#IMPORT-AIDYEAR       
*S**                         #CHK-YEAR          
*S**    /*  
*S**    /* Tags related to the <AttendedSchool> block       
*S**    WHEN #TAG-NAME = '<AttendedSchool>'     
*S**      ASSIGN #LOC = 'ATT'       
*S**    WHEN #TAG-NAME = '<RoutingID>' AND #LOC = 'ATT'     
*S**      MOVE #TAG-VALUE TO WFFLI26D.#IMPORT-ENTITY        
*S**                         WFFLT26D.#IMPORT-ENTITY        
*S**    /*  
*S**    /* Tags related to the <Student> block  
*S**    WHEN #TAG-NAME = '<Student>'
*S**      ASSIGN #LOC = 'STD'       
*S**      RESET #D #D-E #A-E #S-E #A-F #D-F #S-F
*S**    WHEN #TAG-NAME = '<SSN>'    
*S**      MOVE #TAG-VALUE TO #I-ORIG-SSN        
*S**    WHEN #TAG-NAME = '<BirthDate>'          
*S**      MOVE EDITED #TAG-VALUE TO #I-ORIG-DOB(EM=YYYY-MM-DD)          
*S**    WHEN #TAG-NAME = '<LastName>'           
*S**      MOVE #TAG-VALUE TO #I-ORIG-LAST       
*S**    WHEN #TAG-NAME = '<SchoolAssignedPersonID>'         
*S**      MOVE #TAG-VALUE TO #I-ORIG-STUDENT-ID 
*S**    /*  
*S**    /* Tags related to the various type Award blocks    
*S**    WHEN #TAG-NAME = '<Pell>'   
*S**      ASSIGN #LOC = 'AWD'       
*S**      MOVE 'Pell'  TO WFFLI26D.#IMPORT-PROGRAM          
*S**                      #CHK-TYPE 
*S**    WHEN #TAG-NAME = '<TEACH>'  
*S**      ASSIGN #LOC = 'AWD'       
*S**      MOVE 'TEACH' TO WFFLI26D.#IMPORT-PROGRAM          
*S**                      #CHK-TYPE 
*S**    WHEN #TAG-NAME = '<SchoolNoteMessage>' AND #LOC = 'AWD'         
*S**      MOVE #TAG-VALUE TO #I-ORIG-UPDATE     
*S**    /*  
*S**    WHEN #TAG-NAME = '<FinancialAwardNumber>'           
*S**      ASSIGN #I-ORIG-GRANT-NUM = VAL(#TAG-VALUE)        
*S**    WHEN #TAG-NAME = '<FPSTransactionNumber>'           
*S**      MOVE #TAG-VALUE TO #I-ORIG-TRANS-NO   
*S**    WHEN #TAG-NAME = '<FinancialAwardAmount>'           
*S**      ASSIGN #I-ORIG-AWARD = VAL(#TAG-VALUE)
*S**    WHEN #TAG-NAME = '<EnrollmentDate>'     
*S**      MOVE EDITED #TAG-VALUE TO #I-ORIG-ENR-DATE(EM=YYYY-MM-DD)     
*S**    WHEN #TAG-NAME = '<AttendanceCost>'     
*S**      ASSIGN #I-ORIG-BUDGET = VAL(#TAG-VALUE)           
*S**    WHEN #TAG-NAME = '<VerificationStatusCode>'         
*S**      MOVE #TAG-VALUE TO #I-ORIG-VER-STATUS 
*S**    WHEN #TAG-NAME = '<EligibilityPaymentReasonCode>'   
*S**      MOVE #TAG-VALUE TO #I-ORIG-PMT-RSN    
*S**    WHEN #TAG-NAME = '<RigorousHighSchoolProgramCode>'  
*S**      MOVE #TAG-VALUE TO #I-ORIG-HS-PROG    
*S**    WHEN #TAG-NAME = '<ProgramCIPCode>'     
*S**      MOVE #TAG-VALUE TO #I-ORIG-CIP        
*S**    WHEN #TAG-NAME = '<StudentLevelCode>'   
*S**      MOVE #TAG-VALUE TO #I-ORIG-YR-COL     
*S**    /*  
*S**    WHEN #TAG-NAME = '<ScheduledGrant>'     
*S**      ASSIGN #I-ORIG-SCHED-GRANT = VAL(#TAG-VALUE)      
*S**    WHEN #TAG-NAME = '<LifetimeEligibilityUsed>'        
*S**      ASSIGN #I-ORIG-GRANT-LEU = VAL(#TAG-VALUE)        
*S**    WHEN #TAG-NAME = '<YTDDisbursementAmount>'          
*S**      ASSIGN #I-ORIG-DISB-YTD = VAL(#TAG-VALUE)         
*S**    WHEN #TAG-NAME = '<AgreementToServeID>' 
*S**      MOVE #TAG-VALUE TO #I-ORIG-ATS-ID     
*S**    WHEN #TAG-NAME = '<ElectronicAgreementToServeIndicator>'        
*S**      IF #TAG-VALUE = 'true'    
*S**        MOVE 'Y' TO #I-ORIG-ATS-ELEC        
*S**      ELSE          
*S**        MOVE 'N' TO #I-ORIG-ATS-ELEC        
*S**      END-IF        
*S**    WHEN #TAG-NAME = '<AgreementToServeStatusCode>'     
*S**      MOVE #TAG-VALUE TO #I-ORIG-ATS-STAT   
*S**    WHEN #TAG-NAME = '<AgreementToServeLinkIndicator>'  
*S**      IF #TAG-VALUE = 'true'    
*S**        MOVE 'Y' TO #I-ORIG-ATS-LINK        
*S**      ELSE          
*S**        MOVE 'N' TO #I-ORIG-ATS-LINK        
*S**      END-IF        
*S**    /*  
*S**    /* Tags related to the Disbursement blocks          
*S**    WHEN #TAG-NAME = '<Disbursement Number='
*S**      ASSIGN #LOC = 'DSB'       
*S**      RESET #D-E #D-F           
*S**      ADD 1 TO #D   
*S**      ASSIGN #I-DISB-NUMBER(#D) = VAL(#TAG-VALUE)       
*S**    WHEN #TAG-NAME = '<SchoolNoteMessage>' AND #LOC = 'DSB'         
*S**      MOVE #TAG-VALUE TO #I-DISB-DP(#D)     
*S**    WHEN #TAG-NAME = '<DisbursementSequenceNumber>'     
*S**      ASSIGN #I-DISB-SEQ(#D) = VAL(#TAG-VALUE)          
*S**    WHEN #TAG-NAME = '<DisbursementAmount>' 
*S**      ASSIGN #I-DISB-AMOUNT(#D) = VAL(#TAG-VALUE)       
*S**    WHEN #TAG-NAME = '<DisbursementDate>'   
*S**      MOVE EDITED #TAG-VALUE TO #I-DISB-DATE(#D)(EM=YYYY-MM-DD)     
*S**    WHEN #TAG-NAME = '<DisbursementReleaseIndicator>'   
*S**      IF #TAG-VALUE = 'true'    
*S**        MOVE 'Y' TO #I-DISB-REL(#D)         
*S**      ELSE          
*S**        MOVE 'N' TO #I-DISB-REL(#D)         
*S**      END-IF        
*S**    /*  
*S**    /* Tags containing COD Response information to various blocks   
*S**    WHEN #TAG-NAME = '<DocumentTypeCode>'   
*S**      MOVE #TAG-VALUE TO #I-DOCT-TYPE       
*S**    WHEN #TAG-NAME = '<ProcessDate>'        
*S**      MOVE EDITED #TAG-VALUE TO #I-DOCT-PROC-DATE(EM=YYYY-MM-DD)    
*S**    WHEN #TAG-NAME = '<DocumentStatusCode>' 
*S**      MOVE #TAG-VALUE TO #I-DOCT-RESP       
*S**    /*  
*S**    WHEN #TAG-NAME = '<ResponseCode>'       
*S**      DECIDE ON FIRST VALUE OF #LOC         
*S**        VALUE 'RPT' 
*S**          MOVE #TAG-VALUE TO #I-REPT-RESP   
*S**        VALUE 'ATT' 
*S**          MOVE #TAG-VALUE TO #I-ATTN-RESP   
*S**        VALUE 'STD' 
*S**          MOVE #TAG-VALUE TO #I-STDN-RESP   
*S**        VALUE 'AWD' 
*S**          MOVE #TAG-VALUE TO #I-AWRD-RESP   
*S**        VALUE 'DSB' 
*S**          MOVE #TAG-VALUE TO #I-DISB-RESP(#D)           
*S**        NONE        
*S**          IGNORE    
*S**      END-DECIDE    
*S**    WHEN #TAG-NAME = '<ResponseErrorCode>'  
*S**      DECIDE ON FIRST VALUE OF #LOC         
*S**        VALUE 'REC' 
*S**          IF #X-E < 10          
*S**            ADD 1 TO #X-E       
*S**          END-IF    
*S**          MOVE #TAG-VALUE TO #I-DOCT-ERR-CODE(#X-E)     
*S**        VALUE 'RPT' 
*S**          IF #R-E < 10          
*S**            ADD 1 TO #R-E       
*S**          END-IF    
*S**          MOVE #TAG-VALUE TO #I-REPT-ERR-CODE(#R-E)     
*S**        VALUE 'ATT' 
*S**          IF #ATT-E < 10        
*S**            ADD 1 TO #ATT-E     
*S**          END-IF    
*S**          MOVE #TAG-VALUE TO #I-ATTN-ERR-CODE(#ATT-E)   
*S**        VALUE 'STD' 
*S**          IF #S-E < 10          
*S**            ADD 1 TO #S-E       
*S**          END-IF    
*S**          MOVE #TAG-VALUE TO #I-STDN-ERR-CODE(#S-E)     
*S**        VALUE 'AWD' 
*S**          IF #A-E < 10          
*S**            ADD 1 TO #A-E       
*S**          END-IF    
*S**          MOVE #TAG-VALUE TO #I-AWRD-ERR-CODE(#A-E)     
*S**        VALUE 'DSB' 
*S**          IF #D-E < 10          
*S**            ADD 1 TO #D-E       
*S**          END-IF    
*S**          MOVE #TAG-VALUE TO #I-DISB-ERR-CODE(#D,#D-E)  
*S**       NONE         
*S**          IGNORE    
*S**      END-DECIDE    
*S**    WHEN #TAG-NAME = '<ResponseErrorField>' 
*S**      DECIDE ON FIRST VALUE OF #LOC         
*S**        VALUE 'REC' 
*S**          MOVE #TAG-VALUE TO #I-DOCT-ERR-FIELD(#X-E)    
*S**        VALUE 'RPT' 
*S**          MOVE #TAG-VALUE TO #I-REPT-ERR-FIELD(#R-E)    
*S**        VALUE 'ATT' 
*S**          MOVE #TAG-VALUE TO #I-ATTN-ERR-FIELD(#ATT-E)  
*S**        VALUE 'STD' 
*S**          MOVE #TAG-VALUE TO #I-STDN-ERR-FIELD(#S-E)    
*S**        VALUE 'AWD' 
*S**          MOVE #TAG-VALUE TO #I-AWRD-ERR-FIELD(#A-E)    
*S**        VALUE 'DSB' 
*S**          MOVE #TAG-VALUE TO #I-DISB-ERR-FIELD(#D,#D-E) 
*S**        NONE        
*S**          IGNORE    
*S**      END-DECIDE    
*S**    WHEN #TAG-NAME = '<FSACode>'
*S**      IF #LOC = 'STD'           
*S**        ADD 1 TO #S-F           
*S**        MOVE #TAG-VALUE TO #I-STDN-FSA-CODE(#S-F)       
*S**      END-IF        
*S**      IF #LOC = 'AWD'           
*S**        ADD 1 TO #A-F           
*S**        MOVE #TAG-VALUE TO #I-AWRD-FSA-CODE(#A-F)       
*S**      END-IF        
*S**      IF #LOC = 'DSB'           
*S**        ADD 1 TO #D-F           
*S**        MOVE #TAG-VALUE TO #I-DISB-FSA-CODE(#D,#D-F)    
*S**      END-IF        
*S**    /*  
*S**    /* Tags that mark the ends of blocks    
*S**    WHEN #TAG-NAME = '</Pell>'  
*S**                OR = '</TEACH>' 
*S**      ASSIGN #LOC = 'STD'       
*S**    WHEN #TAG-NAME = '</Student>'           
*S**      ASSIGN #LOC = 'ATT'       
*S**      ASSIGN END-OF-STUDENT = TRUE          
*S**    WHEN #TAG-NAME = '</AttendedSchool>'    
*S**      ASSIGN #LOC = 'RPT'       
*S**    WHEN #TAG-NAME = '</ReportingSchool>'   
*S**      ASSIGN #LOC = 'REC'       
*S**    WHEN #TAG-NAME = '</CommonRecord>'      
*S**      ASSIGN #END-DOC = TRUE    
*S**    WHEN NONE       
*S**      IGNORE        
*S**  END-DECIDE        
*S**  /*    
*S**  RESET #TAG-VALUE #TAG-NAME    
*S**END-SUBROUTINE      
*S***       
*S*************************************************************************         
*S**DEFINE SUBROUTINE REMOVE-WARNINGS           
*S*************************************************************************         
*S**  /*    
*S**  /* Address warnings           
*S**  FOR #SUBE = 1 TO 10           
*S**    IF #I-STDN-ERR-CODE(#SUBE) = ' '        
*S**      ESCAPE BOTTOM 
*S**    END-IF          
*S**    IF #I-STDN-ERR-CODE(#SUBE) = '120'      
*S**      FOR #SUB = #SUBE TO 10    
*S**        IF #I-STDN-ERR-CODE(#SUB) = ' '     
*S**          ESCAPE BOTTOM         
*S**        END-IF      
*S**        IF #SUB = 10
*S**          MOVE ' ' TO #I-STDN-ERR-CODE(#SUB)
*S**                      #I-STDN-ERR-FIELD(#SUB)           
*S**        ELSE        
*S**          MOVE #I-STDN-ERR-CODE(#SUB+1)  TO #I-STDN-ERR-CODE(#SUB)  
*S**          MOVE #I-STDN-ERR-FIELD(#SUB+1) TO #I-STDN-ERR-FIELD(#SUB) 
*S**        END-IF      
*S**      END-FOR       
*S**      SUBTRACT 1 FROM #SUBE     
*S**    END-IF          
*S**  END-FOR           
*S**  /*    
*S**  /* Anticipated disbursement warnings      
*S**  FOR #D = 1 TO 12  
*S**    IF #I-DISB-NUMBER(#D) NOT > 0           
*S**      ESCAPE BOTTOM 
*S**    END-IF          
*S**    FOR #SUBE = 1 TO 10         
*S**      IF #I-DISB-ERR-CODE(#D,#SUBE) = ' '   
*S**        ESCAPE BOTTOM           
*S**      END-IF        
*S**      IF #I-DISB-ERR-CODE(#D,#SUBE) = '054' 
*S**        FOR #SUB = #SUBE TO 10  
*S**          IF #I-DISB-ERR-CODE(#D,#SUB) = ' '
*S**            ESCAPE BOTTOM       
*S**          END-IF    
*S**          IF #SUB = 10          
*S**            MOVE ' ' TO #I-DISB-ERR-CODE(#D,#SUB)       
*S**                        #I-DISB-ERR-FIELD(#D,#SUB)      
*S**          ELSE      
*S**            MOVE #I-DISB-ERR-CODE(#D,#SUB+1)
*S**                                        TO #I-DISB-ERR-CODE(#D,#SUB)
*S**            MOVE #I-DISB-ERR-FIELD(#D,#SUB+1)           
*S**                                        TO #I-DISB-ERR-FIELD(#D,#SUB)           
*S**          END-IF    
*S**        END-FOR     
*S**        SUBTRACT 1 FROM #SUBE   
*S**      END-IF        
*S**    END-FOR         
*S**  END-FOR           
*S**END-SUBROUTINE /* REMOVE-WARNINGS           
*S**END     
*E          
