VISIO LOGIC FLOW SUPPORT INFORMATION -------------------------- PROCESS PROFILES -------------------------- loop profiles loop ENRL loop EBT if STerm match EBT date = compare EBT date against ENRL LAST_ENRL_DT_STMP, return newest one if STerm unmatched EBT add record with STerm, date = ENRL LAST_ENRL_DT_STMP if EBT STerm < Current Term Code, return "Earlier" if EBT STerm > Currrent Term Code, return "Later" if EBT STerm = Currrent Term Code, return "Same" loop ENRL-D loop EDBT if STerm match EDBT date = compare EDBT date against ENRL-D ENRL_ACTION_DT, return newest one EDBT date = compare EDBT date against ENRL-D DTTM_STAMP_SEC, return newest one if Sterm unmatched EDBT add record with STerm if EDBT STerm < Current Term Code, return "Earlier" if EDBT STerm > Currrent Term Code, return "Later" if EDBT STerm = Currrent Term Code, return "Same" if ENRL-D date ENRL_ACTION_DT exists, use if ENRL-D date ENRL_ACTION_DT empty, use ENRL-D DTTM_STAMP_SEC Build Enrollment By Term lccFBuildEnrollmentByTerm loop profiles loop EBT loop ENRL if EBT STerm = ENRL SSTRM add status codes: STDNT_ENRL_STATUS, ENRL_STATUS_REASON, Active/Inactive (by codes) if code = Active if reason = Active, enrolled if reason = Inactivpe, not enrolled if code = Inactive not enrolled loop status codes: build output for vetting tool, ex: ENRL:WDRW if enrollments = 0: "Not enrolled, No enrolled classes" else if enrollmentsActive = 0: "Dropped, No active enrolled classes." else if enrollmentsActive < lccIEnrollments: Active in some enrolled classes, Active enrolled classes is smaller than enrollments." else Active in all enrolled classes, Active enrolled classes equals enrollments." Build Enrollment Detail By Term lccFBuildEnrollmentDetailByTerm loop profiles no logic used at this time Build Profile Status Code lccFBuildProfileStatusCode loop profiles runs 4 iterations, in order of priority, once status code set, further iterations skipped Iterations 1 - check for same term 2 - check if dropped and then if later 3 - earlier term 4 - later term loop EBT ITERATION #1 if EBT Term = Current Term Code: "Active in some enrolled classes" status code: Same reason: Active in some same enrolled classes if EBT Status Code = "Active in all enrolled classes" status code: Same reason: Active in all same enrolled classes if EBT Status Code = "Not Enrolled" internal logic boolen lccBSameTermNotEnrolled = false if EBT Status Code = "Dropped" internal logic boolen lccBSameTermDropped = true ITERATION #2 if SameTermNotEnrolled = true OR SameTermDropped = true if Status Code = "" if EBT Term - Current Term Code >= 0 if EBT Status = "Active in some enrolled classes": return "Later" if SameTermNotEnrolled = true: reason = "Not enrolled in same term classes, but Active in some later enrolled classes" else reason = "Dropped all same enrolled classes, but Active in some later enrolled classes if EBT Status = "Active in all enrolled classes": return "Later" if SameTermNotEnrolled = true: reason = "Not enrolled in same term classes, but Active in some later enrolled classes" else reason = "Dropped all same enrolled classes, but Active in some later enrolled classes" ITERATION #3 if Status Code = "" if EBT Term - Current Term Code >= 0 if EBT Status = "Active in some enrolled classes": return "Earlier": reason = "Active in some earlier enrolled classes" if EBT Status = "Active in all enrolled classes": return "Earlier": reason = "Active in all earlier enrolled classes" ITERATION #4 if Status Code = "" if EBT Term - Current Term Code >= 0 if EBT Status = "Active in some enrolled classes": return "Later": reason = "Active in some later enrolled classes" if EBT Status = "Active in all enrolled classes": return "Later": reason = "Active in all later enrolled classes" AFTER ALL ITERATIONS if Status Code = "": Status Code = "None" if Reason = "": reason = "Student not within -Term Minus Range [...] -Term Plus Range [...]." Build Application By Term lccFBuildApplicationByTerm loop profiles loop AG add ABT record loop ABT if AG Entry Term = AG Entry Term set Non Primary For Term = true Build Application Status Code lccFBuildApplicationStatusCode loop profiles loop AG loop EBT Iterations 0 - if AG Entry Term = EBT Term ASSC = AG Entry Term if EBT enrollments active > 0 AND Verify RBR Term Credits "Same" = true EBT Same = true: "same term with active course" 1 - if AG Entry Term = EBT Term if EBT enrollments active = 0: EBT Dropped = true: "same term with all dropped courses" 2 - if EBT Dropped = true if AG Entry Term < EBT Term if enrollments active > 0: EBT Dropped Later = true: "same term with all dropped courses, but active in future course" 3 - if EBT Same = false AND EBT Dropped = false AND EBT Dropped Later = false if AG Entry Term > EBT Term if enrollments active > 0: EBT Earlier = true: "earlier term" 4 - if EBT Same = false AND EBT Dropped = false AND EBT Dropped Later = false AND EBT Earlier = false if AG Entry Term < EBT Term if enrollments active > 0: EBT Later = true: "later term" if EBT Same = false AND EBT Dropped = false AND EBT Earlier = false AND EBT Later = false "No status code determined" else if EBT Same = true AND Verify RBR Term Credits = true Status = "Same" Status Same = true Status Code Date = MIN Enrl Date By Terms else if EBT Dropped Later = true AND Verify RBR Term Credits = true Status = "Later" Status Dropped Later = true Status Later = true Status Code Date = MIN Enrl Date By Terms else if EBT Dropped = true AND Verify RBR Term Credits = true Status = "Dropped" Status Dropped = true Status Code Date = MAX Drop Date By Terms else if EBT Earlier = true AND Verify RBR Term Credits = true Status = "Earlier" Status Earlier = true Status Code Date = MIN Enrl Date By Terms else if EBT Later = true AND Verify RBR Term Credits = true Status = "Later" Status Later = true Status Code Date = MIN Enrl Date By Terms else Status = "NO CODE verified" if ASSC count > 1 loop ASSC if ASSC valid = true if ASSC Term = ASSC+1 Term Valid = false loop ASSC if ASSC valid = true loop status codes if not found, add (prevents duplicates on student profile) Check Term Session Date loop TRK Status Codes loop Term Enrollment Sessions Table if Date Today >= Begin Date AND <= Begin Date + Padding Forward Days Begin Date position = TRK Status Code Loop Id if Date Today >= Census Date AND <= Census Date + Padding Forward Days Census Date position = TRK Status Code Loop Id if Date Today >= Census Date AND <= End Date if classes contain at least 1 E:WDRW if classes do not contain any active (ex: E:ENRL, E:EWAT) Census Date position = TRK Status Code Loop Id if Date Today >= Sixty Percent Date AND <= Sixty Percent Date + Padding Forward Days Sixty Percent Date position = TRK Status Code Loop Id if Date Today >= End Date AND <= End Date + Padding Forward Days End Date position = TRK Status Code Loop Id Build Tracking Status Codes lccFBuildTrackingStatusCodes loop profiles loop ASSC if ASSC valid = true loop TRK if TRK Scope = "Registration" if TRK Status Code = ASSC Status Found = true Number = TRK Number if Found = true AND TRK Date = ASSC Status Code Date Number + 1 if Found = false OR (Found = true AND DateMatch = false) add TRK ASSC Status = Status + Number if TRK Scope = "Enrollment" loop Enrollment Session Dates if Begin Date TRK Found Add Status Code Dates if Census Date TRK Found Add Status Code Dates if Withdrew Date TRK Found Add Status Code Dates if Sixty Percent Date TRK Found Add Status Code Dates if End Date TRK Found Add Status Code Dates loop Enrollment Session Dates Date Match = Status Code Date Found Check if Found = True AND Date Match = False Number + 1 if Found = False OR (Found = True AND Datematch = False) loop Status Code Dates if Code = "Begin Day", Date = Session Table Begin Date if Code = "Census Day", Date = Session Table Census Date if Code = "Withdrew", Date = Last Drop Date if Code = "Sixty Percent Day", Date = Session Table Sixty Percent Date if Code = "End Day", Date = Session Table End Date