ISIR Processing Scripts
These are the prompts for scripts related to Institutional Student Information Record (ISIR) processing, including verification, corrections, and document requirements.
ISIR Used in Packaging
Name: isirUsedInPackaging
Purpose: Selects the ISIR that should be used in packaging for an Award Year.
In Baseline Config: Yes
Return Type: IIsirRecordAPI
# Oracle SFP Platform Script Documentation Generator
Your task is to create comprehensive, contextual comments for this Oracle SFP Platform Groovy script.
CRITICAL REQUIREMENTS:
1. Follow exact comment format specified
2. Include all three aspects for every section
3. Mark non-applicable aspects as "N/A"
4. Provide business context and financial impact
5. Detail all API interactions and data flows
## Script Purpose and Context
The script being analyzed is: "isirUsedInPackaging"
Primary Function: Selects the ISIR that should be used in packaging for an Award Year
Expected Output Type: IIsirRecordAPI
This script is part of the Oracle SFP Platform ecosystem and interacts with platform-specific APIs and data structures.
You must analyze this script in the context of financial aid processing workflows, ensuring compliance with:
1. Federal financial aid regulations
2. Academic progress requirements
3. Institutional policies
4. Program-specific rules
Your analysis must detail:
1. All conditional logic and its business implications
2. All boundary checks and their validation purposes
3. All calculations and their financial aid impact
4. Error handling and data validation
5. Integration points with platform APIs
## Available Platform Methods and Integrations
The script has access to the following Oracle SFP Platform integrations.
When commenting the code, you MUST explain how these specific methods and bindings are being used:
allAwardYearIsirs
Purpose: Provides access to all ISIRs for the student, accessible per award year.
Type: IAllAwardYearIsirsAPI
Available Methods:
No methods available
awy
Purpose: The award year of the funding element being evaluated.
Type: Integer
Available Methods:
No methods available
awyPeriod
Purpose: The period of the award year of the funding element being evaluated.
Type: IAwardYearAPI
Available Methods:
* asList
- Returns: IAwardYearsAPI
- Function: Returns an IAwardYearsAPI instance containing only this Award Year.'
* getEndYear
- Returns: int
- Function: Gets the end year of this Award Year, for example 2023 for Award Year 2022-2023.'
* getNext
- Returns: IAwardYearAPI
- Function: Gets the Award Year that follows this one chronologically.'
* getPrevious
- Returns: IAwardYearAPI
- Function: Gets the Award Year that precedes this one chronologically.'
* getStartYear
- Returns: int
- Function: Gets the start year of this Award Year, for example 2022 for Award Year 2022-2023.'
* getYear
- Returns: int
- Function: Short for getEndYear().'
coa
Purpose: Provides access to all Cost of Attendance information for the student.
Type: ICoaAPI
Available Methods:
* getActiveCoa
- Returns: int
- Function: Gets the active cost of attendance.'
* getActualCoa
- Returns: int
- Function: Gets the actual cost of attendance.'
* getComponents
- Returns: ICoaComponentsAPI
- Function: Gets the COA components.'
* getPellCoa
- Returns: int
- Function: Gets the PELL cost of attendance.'
* getTotalCoa
- Returns: int
- Function: Gets the total cost of attendance.'
* in
- Returns: ICoaAPI
- Function: Filters by term.'
* in
- Returns: ICoaAPI
- Function: Filters by academic year.'
* inAcademicYear
- Returns: ICoaAPI
- Function: Filters by academic year.'
* inTerm
- Returns: ICoaAPI
- Function: Filters by term.'
cod
Purpose: Information received from COD for the student.
Type: ICodAPI
Available Methods:
* getCracs
- Returns: IList<ICounselingCodInfoAPI>
- Function: No description available'
* getCrats
- Returns: IList<ICratInfoAPI>
- Function: No description available'
* getCrcos
- Returns: IList<ICrcoInfoAPI>
- Function: No description available'
* getCrcses
- Returns: IList<ICrcsInfoAPI>
- Function: No description available'
* getCrecs
- Returns: IList<ICounselingCodInfoAPI>
- Function: No description available'
* getCrpns
- Returns: IList<ICrpnInfoAPI>
- Function: No description available'
* getCrsps
- Returns: IList<ICrspInfoAPI>
- Function: No description available'
commonLineLoans
Purpose: Collection of CommonLine Loans currently matched to the student.
Type: ICommonLineLoansAPI
Available Methods:
No methods available
disbursements
Purpose: Information about all student disbursements.
Type: IDisbursementsAPI
Available Methods:
* filterSeqNos
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for sequence numbers passing a given predicate.'
* filterStatuses
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for disbursement statuses passing a given predicate.'
* getCancelled
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for disbursements that have been cancelled.'
* getDisbursed
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for disbursements
that have not been cancelled (see getCancelled(boolean), include disbursed payments
and whose individual Total Disbursement Amounts are positive.'
* getIncrementalDisbursementAmount
- Returns: BigDecimal
- Function: No description available'
* getLateDisbursement
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for disbursements with the given Late Disbursement
Indicator.'
* getPpDisbursementAmount
- Returns: BigDecimal
- Function: No description available'
* getLatestPayments
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data with only latest payments.'
* getLockingPp
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for (non-)payment period-locking disbursements'
* getPpAppliedAmount
- Returns: BigDecimal
- Function: No description available'
* getPwd
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for disbursements with the given PWD Indicator.'
* getSeqNos
- Returns: Set<Integer>
- Function: No description available'
* getStatuses
- Returns: ISet<String>
- Function: No description available'
* getTotalDisbursementAmount
- Returns: BigDecimal
- Function: No description available'
* getWithSeqNo
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for a given sequence number.'
* getWithSeqNos
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for the given sequence numbers.'
* getWithStatus
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for the given disbursement status.'
* getWithStatuses
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for given disbursement statuses.'
* hasBeenCancelled
- Returns: boolean
- Function: No description available'
* isDisbursed
- Returns: boolean
- Function: No description available'
* isLateDisbursement
- Returns: boolean
- Function: No description available'
* isLockingPp
- Returns: boolean
- Function: No description available'
* isPwd
- Returns: boolean
- Function: No description available'
* getPpMaxDisbursementAmount
- Returns: BigDecimal
- Function: No description available'
* getPpTotalDecreasedAmount
- Returns: BigDecimal
- Function: No description available'
dloan
Purpose: Information related to Direct Loans.
Type: IDloanAPI
Available Methods:
* getLifetimeLimit
- Returns: int
- Function: No description available'
* getRemainingNsldsLimit
- Returns: int
- Function: No description available'
enrollment
Purpose: Information for the enrollment this script is being evaluated for.
Type: IEnrollmentAPI
Available Methods:
* belongsTo
- Returns: boolean
- Function: Checks if this enrollment belongs to a student.'
* getBindings
- Returns: IEnrollmentBindingsAPI
- Function: Gets bindings for this enrollment.'
* getEnrollmentStatus
- Returns: String
- Function: Gets the enrollment status.'
* getProgramStartDate
- Returns: LocalDate
- Function: Gets the program start date.'
* isEffective
- Returns: boolean
- Function: Checks if this enrollment is effective.'
enrollments
Purpose: Enrollments information.
Type: IEnrollmentsAPI
Available Methods:
* getHigherPriorityThan
- Returns: List<IEnrollmentAPI>
- Function: Gets a list of enrollments with higher priority than a given enrollment.'
* getOtherThan
- Returns: List<IEnrollmentAPI>
- Function: Gets a list of the enrollments that are different from this enrollment, no
matter the priority.'
fafsaAwardYearInfoList
Purpose: Binding that allows scripts to access the FAFSA regulatory dates configuration.
Type: IFafsaAwardYearInfoListAPI
Available Methods:
* distinct
- Returns: IFafsaAwardYearInfoListAPI
- Function: Creates a copy of this object by removing repeated occurrences of elements.'
financialPlan
Purpose: Information about the student's current financial plan.
Type: IFinancialPlanAPI
Available Methods:
* filterCommonLineUniqueIds
- Returns: T
- Function: Creates a narrowed-down, independent collection of data for CommonLine Unique Ids passing a given predicate.'
* getAcyCoa
- Returns: int
- Function: Deprecated.
Consider using the coa binding (ICoaAPI).'
* getAcyUnpackagedAmount
- Returns: BigDecimal
- Function: Deprecated.
Consider using the coa binding (ICoaAPI).'
* getCarryOn
- Returns: BigDecimal
- Function: No description available'
* getCommonLineUniqueIds
- Returns: Set<ICommonLineUniqueId>
- Function: No description available'
* getEnrollmentIntensities
- Returns: ISet<BigDecimal>
- Function: No description available'
* getEnrollmentStatuses
- Returns: ISet<String>
- Function: No description available'
* getFundStatuses
- Returns: ISet<String>
- Function: No description available'
* getMaxAmount
- Returns: BigDecimal
- Function: No description available'
* getProratedLimit
- Returns: BigDecimal
- Function: No description available'
* getVersion
- Returns: int
- Function: Gets the package version.'
* getWithCommonLineUniqueId
- Returns: T
- Function: Creates a narrowed-down, independent collection of data for the given CommonLine Unique Ids.'
* getWithCommonLineUniqueIds
- Returns: T
- Function: Creates a narrowed-down, independent collection of data for the given CommonLine Unique Ids.'
* isEligible
- Returns: boolean
- Function: No description available'
* isIsirUsedForCalculation
- Returns: boolean
- Function: Identifies ISIRs used while calculating this Financial Plan.'
* isProrated
- Returns: boolean
- Function: No description available'
* isUnmatchedCommonLineLoan
- Returns: boolean
- Function: Checks if a given CommonLine Loan (probably coming from the commonLineLoan binding) has not been matched
yet in the fund collection.'
fundAcceptance
Purpose: Provides access to all Fund Acceptance information for the student.
Type: IFundAcceptanceAPI
Available Methods:
* getWithStatuses
- Returns: T
- Function: Creates a narrowed-down, independent collection of fund acceptance data for given fund acceptance statuses.'
* filterNullableStatuses
- Returns: T
- Function: Creates a narrowed-down, independent collection of fund acceptance data for fund acceptance statuses passing a given predicate.'
* filterStatuses
- Returns: T
- Function: Creates a narrowed-down, independent collection of fund acceptance data for fund acceptance statuses passing a given predicate.'
* getNullableStatuses
- Returns: ISet<String>
- Function: No description available'
* getStatuses
- Returns: ISet<String>
- Function: No description available'
* getValidatedAcceptedAmount
- Returns: BigDecimal
- Function: No description available'
* getWithStatus
- Returns: T
- Function: Creates a narrowed-down, independent collection of fund acceptance data for the given fund acceptance status.'
fundCodeConfig
Purpose: Provides information about fund code configuration.
Type: IFundCodeConfigAPI
Available Methods:
* getFundCodesByPriority
- Returns: List<String>
- Function: No description available'
* getHigherPriorityFundCodes
- Returns: List<String>
- Function: No description available'
helper
Purpose: Helper interface with utility methods.
Type: IGroovyScriptHelper
Available Methods:
* filterCourses
- Returns: ICourseFilterAPI
- Function: No description available'
* getAwardYear
- Returns: IAwardYearHelperAPI
- Function: Returns Award Year-specific helper.'
* getIntegerFromSignedIsirNumber
- Returns: Integer
- Function: Parses a number represented in ISIR format to Integer.'
* getIsirDate
- Returns: Date
- Function: No description available'
* getIsirDateFormatStr
- Returns: String
- Function: No description available'
* getSignedIsirNumberFromInteger
- Returns: String
- Function: No description available'
* isirRecordsDifferForListedFields
- Returns: boolean
- Function: No description available'
* mapRanges
- Returns: IRangeMapStarterAPI
- Function: No description available'
* newAwardYearPeriod
- Returns: IAwardYearAPI
- Function: Returns the Award Year having a given end year.'
* newPeriod
- Returns: IPeriod
- Function: Returns the IPeriod for one single day.'
* newPeriod
- Returns: IPeriod
- Function: Returns a IPeriod given its start and end dates.'
isirRecords
Purpose: Provides access to the current ISIRs - the ones with the highest CPS number - in each award year.
Type: IIsirsAPI
Available Methods:
* getCurrentIsirForAwardYear
- Returns: IIsirRecordAPI
- Function: Gets the current ISIR (see explanation in the header to this interface) for a given Award
Year, if present.'
* getCurrentIsirForAwardYear
- Returns: IIsirRecordAPI
- Function: Gets the current ISIR (see explanation in the header to this interface) for a given Award
Year, if present.'
log
Purpose: Provides logging capability to scripts.
Type: IScriptLoggerAPI
Available Methods:
* debug
- Returns: boolean
- Function: No description available'
* debug
- Returns: void
- Function: No description available'
* error
- Returns: void
- Function: No description available'
* info
- Returns: boolean
- Function: No description available'
* info
- Returns: void
- Function: No description available'
* warn
- Returns: void
- Function: No description available'
previousFinancialPlan
Purpose: Provides access to previous financial plans.
Type: IPreviousFinancialPlanAPI
Available Methods:
* effectiveAt
- Returns: T
- Function: Gets a previous financial plan that was effective at a given time.'
* effectiveAt
- Returns: T
- Function: Gets a previous financial plan that was effective on a given local date.'
* effectiveAt
- Returns: T
- Function: Gets a previous financial plan that was effective at a given local time.'
* withVersion
- Returns: T
- Function: Gets a previous financial plan with a given version.'
program
Purpose: Information about the student's primary program.
Type: IProgramAPI
Available Methods:
* exists
- Returns: boolean
- Function: No description available'
* getAcademicCompletionDate
- Returns: LocalDate
- Function: No description available'
* getAcademicStatus
- Returns: String
- Function: No description available'
* getAdmissionStatus
- Returns: String
- Function: No description available'
* getAssessedUnits
- Returns: BigDecimal
- Function: No description available'
* getAydUnits
- Returns: BigDecimal
- Function: No description available'
* getAydWeeks
- Returns: Integer
- Function: No description available'
* getCharges
- Returns: List<IChargeAPI>
- Function: No description available'
* getCode
- Returns: String
- Function: No description available'
* getCollege
- Returns: String
- Function: No description available'
* getCourses
- Returns: ICoursesAPI
- Function: No description available'
* getDateOfDetermination
- Returns: LocalDate
- Function: No description available'
* getDescription
- Returns: String
- Function: No description available'
* getEnrollmentStatus
- Returns: String
- Function: No description available'
* getEnrollmentStatusEffectiveDate
- Returns: LocalDate
- Function: No description available'
* getEnrollmentStatusSubType
- Returns: String
- Function: No description available'
* getExternalProgramId
- Returns: String
- Function: No description available'
* getFaEligibleIndicator
- Returns: Boolean
- Function: No description available'
* getGpa
- Returns: BigDecimal
- Function: No description available'
* getManualSapEvaluationIndicator
- Returns: Boolean
- Function: No description available'
* getModality
- Returns: String
- Function: No description available'
* getOfficialLastDateOfAttendance
- Returns: LocalDate
- Function: No description available'
* getOpeId
- Returns: String
- Function: No description available'
* getPrimaryLocation
- Returns: String
- Function: No description available'
* getProgramLengthMeasurementUnit
- Returns: String
- Function: No description available'
* getProgramLengthNumberOfUnits
- Returns: int
- Function: No description available'
* getProgramMeasurementUnit
- Returns: String
- Function: No description available'
* getProgramType
- Returns: String
- Function: No description available'
* getRequiredGpa
- Returns: BigDecimal
- Function: No description available'
* getSpecialPrograms
- Returns: String
- Function: No description available'
* getStartDate
- Returns: LocalDate
- Function: No description available'
* getStudentResources
- Returns: List<IStudentResourceAPI>
- Function: No description available'
* getTermAcys
- Returns: ISimpleNumberedPeriods<ITermAcademicYearAPI>
- Function: No description available'
* getTerms
- Returns: ITermPeriodsAPI
- Function: No description available'
* getTermType
- Returns: String
- Function: No description available'
* getTotalAcceptedTransferUnits
- Returns: BigDecimal
- Function: No description available'
* getTotalRequiredUnits
- Returns: BigDecimal
- Function: No description available'
* isBbayTerm
- Returns: boolean
- Function: No description available'
* isGraduate
- Returns: boolean
- Function: No description available'
* isProgramTerm
- Returns: boolean
- Function: No description available'
* isTerm
- Returns: boolean
- Function: No description available'
* isUndergraduate
- Returns: boolean
- Function: No description available'
r2t4
Purpose: Provides access to all R2T4 information for the student.
Type: IR2t4API
Available Methods:
* filterOldas
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for OLDAs passing a given predicate.'
* filterProcessStatuses
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for process statuses passing a given predicate.'
* getGrossAmountDecreased
- Returns: BigDecimal
- Function: No description available'
* getNetAmountDecreased
- Returns: BigDecimal
- Function: No description available'
* getNullableOldas
- Returns: ISet<LocalDate>
- Function: No description available'
* getNullableProcessStatuses
- Returns: ISet<String>
- Function: No description available'
* getOldas
- Returns: ISet<LocalDate>
- Function: No description available'
* getProcessStatuses
- Returns: ISet<String>
- Function: No description available'
* getWithLatest
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for the given isLatest status.'
* getWithOlda
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for the given process OLDA.'
* getWithOldas
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for given process OLDAs.'
* getWithProcessStatus
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for the given process status.'
* getWithProcessStatuses
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for given process statuses.'
* isEligibleForPWD
- Returns: boolean
- Function: No description available'
* isLatest
- Returns: boolean
- Function: Checks if at least one R2T4 process in the collection is the latest.'
receivedDocuments
Purpose: Provides access to all documents received for the student.
Type: IMultiAwardYearReceivedDocsAPI
Available Methods:
* forAwardYear
- Returns: IReceivedDocs
- Function: Returns the collection of active received documents (IReceivedDocs) for an award year on an on-demand,
cached basis.'
sap
Purpose: Information about the student's latest SAP.
Type: ISapAPI
Available Methods:
* getLatestStatus
- Returns: String
- Function: No description available'
* getLatestStatus
- Returns: String
- Function: Gets the status for a given period for the student.'
student
Purpose: Student information.
Type: IFasStudentAPI
Available Methods:
* getAddressState
- Returns: String
- Function: Gets the federal state in the student's main mailing address, as a two-letter acronym.'
* getBahIndicator
- Returns: Boolean
- Function: Gets the school employee dependet status.'
* getCampusCode
- Returns: String
- Function: Gets the campus code.'
* getCompletionDate
- Returns: Date
- Function: Gets the completion date.'
* getDateOfBirth
- Returns: ISecureLocalDate
- Function: Gets the date of birth.'
* getDependencyStatus
- Returns: String
- Function: Gets the dependency status.'
* getDeterminationDate
- Returns: Date
- Function: Gets the determination date.'
* getDocuments
- Returns: Map<String,IReceivedDoc>
- Function: Gets the student's documents, indexed by document code.'
* getEmail
- Returns: String
- Function: Gets the e-mail.'
* getEnrollmentStatus
- Returns: String
- Function: Gets the enrollment status.'
* getExternalStudentId
- Returns: String
- Function: Gets the external student ID (unique per student).'
* getFinancialAidRequested
- Returns: Boolean
- Function: Gets the financial aid request status.'
* getFirstName
- Returns: String
- Function: Gets the first name.'
* getGender
- Returns: String
- Function: Gets the gender.'
* getHighSchoolEquivalency
- Returns: Boolean
- Function: Gets the high school equivalency status.'
* getLastName
- Returns: String
- Function: Gets the last name.'
* getMiddleName
- Returns: String
- Function: Gets the middle name.'
* getPersonId
- Returns: Long
- Function: Gets the person ID.'
* getProgramType
- Returns: String
- Function: Gets the program type.'
* getRecentFinancialAidHistoryRecords
- Returns: IRecentFahRecordsAPI
- Function: Gets the recent financial aid records.'
* getSchoolCode
- Returns: String
- Function: Gets the school code.'
* getSchoolEmployee
- Returns: Boolean
- Function: Gets the school employee status.'
* getSchoolEmployeeDependent
- Returns: Boolean
- Function: Gets the school employee dependent status.'
* getSsn
- Returns: ISocialSecurityNumber
- Function: Gets the SSN.'
* getStudentId
- Returns: Long
- Function: Gets the student ID (or enrollment ID, unique per enrollment).'
studentGroups
Purpose: Student Group information.
Type: IStudentGroupsAPI
Available Methods:
* getPeriodsIntersectingWithGroupForThePeriod
- Returns: List<? extends IPeriod>
- Function: Find the periods student was in the given group in the specified period of time'
* isInGroupAtAnyPointInThePeriod
- Returns: boolean
- Function: Checks if student was in the given group in the specified period at any point of time.'
* isInGroupAtDate
- Returns: boolean
- Function: Checks if student was in the given group on the given date.'
* isInGroupDuringCompletePeriod
- Returns: boolean
- Function: Checks if student was in the given group in the specified period for the whole time.'
* numberOfDaysInGroupForThePeriod
- Returns: int
- Function: Count number of days student was in the given group in the specified period of time'
* getActiveGroupsAtAnyPointInThePeriod
- Returns: List<String>
- Function: Find the student's groups active at any point during specified period of time'
* getActiveGroupsAtDate
- Returns: List<String>
- Function: Find the student's active groups at the given date'
* getActiveGroupsDuringCompletePeriod
- Returns: List<String>
- Function: Find the student's groups active during whole specified period of time'
IMPORTANT REQUIREMENTS:
1. Each method usage must be explained in its full context
2. All data transformations must be detailed
3. Error handling for each method must be specified
4. Business implications of method results must be clear
## COMMENTING REQUIREMENTS
Your task is to create COMPREHENSIVE, CONTEXTUAL comments for this Oracle SFP Platform script.
FILE-LEVEL DOCUMENTATION REQUIREMENTS:
1. File Header (Using /** ... */ format):
MUST INCLUDE (15+ lines):
- Script name and version
- Primary purpose and functionality
- All key calculations performed
- Critical business rules enforced
- Boundary conditions and limits
- Financial aid implications
- Required inputs and expected outputs
- Error handling approach
- Integration points
- Compliance considerations
SECTION-LEVEL DOCUMENTATION REQUIREMENTS:
Every logical code section must include detailed comments for ALL three aspects:
1. CONDITIONALS Section:
Format:
// CONDITIONALS:
// Check [number]: [specific condition being evaluated]
// Variables: [list of variables and methods involved]
// Purpose: [detailed business reason for this check]
// Logic:
// - [step-by-step breakdown of the condition]
// - [how variables are used]
// - [any transformations applied]
// Success Path: [what happens when condition is true]
// Failure Path: [what happens when condition is false]
// Business Rules: [specific rules being enforced]
// Error Handling: [how errors are managed]
// Financial Impact: [effect on aid calculations]
// If N/A, explicitly state: "CONDITIONALS: N/A"
2. BOUNDARY CHECKS Section:
Format:
// BOUNDARY CHECKS:
// Check [number]: [specific limit being enforced]
// Source: [where boundary values come from]
// Variables: [variables and methods involved]
// Validation:
// - [how boundaries are checked]
// - [validation method details]
// Edge Cases:
// - [specific edge cases handled]
// - [how each is managed]
// Error Handling: [boundary violation management]
// Impact: [effect of boundary violations]
// If N/A, explicitly state: "BOUNDARY CHECKS: N/A"
3. ARITHMETIC Section:
Format:
// ARITHMETIC:
// Operation [number]: [name of calculation]
// Formula: [complete mathematical expression]
// Variables:
// - [each variable and its purpose]
// - [data types and units]
// Steps:
// 1. [detailed step-by-step breakdown]
// 2. [intermediate calculations]
// 3. [transformations applied]
// Business Context: [why this calculation is needed]
// Result: [meaning of the output]
// Financial Impact: [effect on aid calculations]
// Limitations: [any mathematical constraints]
// If N/A, explicitly state: "ARITHMETIC: N/A"
ADDITIONAL REQUIREMENTS:
1. Complex Logic Sections:
- Must break down multi-step operations
- Explain interactions between components
- Detail data flow and transformations
2. Error Handling:
- Document all error conditions
- Explain recovery procedures
- Detail logging and reporting
3. API Interactions:
- Document all platform method calls
- Explain data transformations
- Detail error handling
4. Financial Aid Impact:
- Explain effects on aid calculations
- Document regulatory compliance
- Detail student eligibility impact
Example Section With All Aspects:
// CONDITIONALS:
// Check 1: Payment Period Status Validation
// Variables: getLoanPaymentPeriods(), period.getStatus(), period.getStartDate()
// Purpose: Ensure only valid, active payment periods are included
// Logic:
// - Retrieve all loan payment periods
// - Filter based on status (!= "CANCELED")
// - Compare start dates with reference date
// Success Path: Period included in calculations
// Failure Path: Period excluded from totals
// Business Rules: Canceled periods must not affect grade level
// Error Handling: Invalid periods logged and skipped
// Financial Impact: Affects available loan amounts
//
// BOUNDARY CHECKS:
// Check 1: Payment Period Date Validation
// Source: Academic Calendar Configuration
// Variables: period.getStartDate(), referenceDate
// Validation:
// - Compare period start date with reference date
// - Ensure dates are not null
// Edge Cases:
// - Null dates are excluded
// - Future dates are filtered
// Error Handling: Invalid dates logged and skipped
// Impact: Prevents future periods from affecting current calculation
//
// ARITHMETIC:
// Operation 1: Payment Period Units Summation
// Formula: sum(validPeriods.map(period => period.getUnits()))
// Variables:
// - period.getUnits(): Decimal, represents credit hours
// - validPeriods: Array of filtered payment periods
// Steps:
// 1. Filter valid payment periods
// 2. Extract units from each period
// 3. Sum all units using reduce
// Business Context: Calculate total completed units for grade level
// Result: Total units affecting grade level
// Financial Impact: Determines loan eligibility amounts
// Limitations: Cannot exceed program maximum units
## Groovy Script for Analysis
```groovy
//file:noinspection UnnecessaryQualifiedReference
@groovy.transform.BaseScript(com.oracle.sfp.scripting.api.sdk.autocomplete.IsirUsedInPackagingScript)
package CHANGE_ME // this should be updated to your actual package name
import com.oracle.sfp.scripting.api.*
import com.oracle.sfp.scripting.api.util.*
//get all compatible ISIRs for the Award Year where no reject codes exist and a SAI exists
def awardYearISIRs = allAwardYearIsirs.forAwardYear(awy).getCompatibleWithPackaging().findAll{it.getRejectCodes().isEmpty() && it.getField(IsirField.TXID_SAI).getOrNull() != null}
//if a Valid or Unverified ISIR exists, then return it
def validOrUnverifiedISIR = awardYearISIRs.find{["Valid", "Unverified"].contains(it.isirStatus)}
if (validOrUnverifiedISIR != null) {
return validOrUnverifiedISIR
}
//if a Corrected ISIR exists, then return it if the ISIR had been previously Valid or Unverified
def previouslyValidOrUnverifiedCorrectedISIR = awardYearISIRs.find{it.isirStatus == "Corrected" && ["Valid", "Unverified"].contains(it.getIsirStatusBeforeCorrection())}
if (previouslyValidOrUnverifiedCorrectedISIR != null) {
return previouslyValidOrUnverifiedCorrectedISIR
}
//if a Corrected ISIR exists, then return it
def correctedISIR = awardYearISIRs.find{it.isirStatus == "Corrected"}
if (correctedISIR != null) {
return correctedISIR
}
//if a Pending ISIR exists, then return it
def pendingISIR = awardYearISIRs.find{it.isirStatus == "Pending"}
if (pendingISIR != null) {
return pendingISIR
}
//if no ISIRs exist in the Award Year that fit the criteria above, then no ISIR will be returned
return null
```
## COMMENT GENERATION REQUIREMENTS:
1. Add comprehensive comments following the exact format specified
2. Every logical section must include all three aspects:
- CONDITIONALS
- BOUNDARY CHECKS
- ARITHMETIC
3. Mark any non-applicable aspect as "N/A" explicitly
4. Ensure line-by-line explanation of complex logic
5. Detail all financial aid implications
DO NOT modify the code itself. Add comments only.
REMEMBER:
- Comments must be exhaustively detailed
- Every logical section needs all three aspects
- Financial aid impact must be clear
- Business rules must be explicit
Return ONLY the fully commented Groovy script. No other text or explanations.
ISIR C-Code Auto Clearing
Name: isirCCodeAutoCodeClearingLogic
Purpose: Determine if an ISIR c-code is auto cleared.
In Baseline Config: Yes
Return Type: Boolean
# Oracle SFP Platform Script Documentation Generator
Your task is to create comprehensive, contextual comments for this Oracle SFP Platform Groovy script.
CRITICAL REQUIREMENTS:
1. Follow exact comment format specified
2. Include all three aspects for every section
3. Mark non-applicable aspects as "N/A"
4. Provide business context and financial impact
5. Detail all API interactions and data flows
## Script Purpose and Context
The script being analyzed is: "isirCCodeAutoCodeClearingLogic"
Primary Function: Determine if an ISIR c-code is auto cleared.
Expected Output Type: Boolean
This script is part of the Oracle SFP Platform ecosystem and interacts with platform-specific APIs and data structures.
You must analyze this script in the context of financial aid processing workflows, ensuring compliance with:
1. Federal financial aid regulations
2. Academic progress requirements
3. Institutional policies
4. Program-specific rules
Your analysis must detail:
1. All conditional logic and its business implications
2. All boundary checks and their validation purposes
3. All calculations and their financial aid impact
4. Error handling and data validation
5. Integration points with platform APIs
## Available Platform Methods and Integrations
The script has access to the following Oracle SFP Platform integrations.
When commenting the code, you MUST explain how these specific methods and bindings are being used:
AGGREGATES_PERKINS_FLAGS
Purpose: Constant value for the FahRecordType enum.
Type: FahRecordType
Available Methods:
No methods available
throwsDocumentIsFaUnacceptableExceptionParam
Purpose: This binding can be set within a Groovy script to control whether a subsequent call to
IReceivedDoc.isAcceptable() or IReceivedDocDocumentAPI.isAcceptable() triggers an exception or not when a
document is unnaceptable. The default value is true.
Type: Boolean
Available Methods:
No methods available
GRANT_PAYMENT
Purpose: Constant value for the FahRecordType enum.
Type: FahRecordType
Available Methods:
No methods available
LOAN_DETAIL
Purpose: Constant value for the FahRecordType enum.
Type: FahRecordType
Available Methods:
No methods available
OVERPAYMENT
Purpose: Constant value for the FahRecordType enum.
Type: FahRecordType
Available Methods:
No methods available
allAwardYearReceivedDocuments
Purpose: Provides access to all documents received for the student.
Type: IMultiAwardYearReceivedDocsAPI
Available Methods:
* forAwardYear
- Returns: IReceivedDocs
- Function: Returns the collection of active received documents (IReceivedDocs) for an award year on an on-demand,
cached basis.'
coa
Purpose: Provides access to all Cost of Attendance information for the student.
Type: ICoaAPI
Available Methods:
* getActiveCoa
- Returns: int
- Function: Gets the active cost of attendance.'
* getActualCoa
- Returns: int
- Function: Gets the actual cost of attendance.'
* getComponents
- Returns: ICoaComponentsAPI
- Function: Gets the COA components.'
* getPellCoa
- Returns: int
- Function: Gets the PELL cost of attendance.'
* getTotalCoa
- Returns: int
- Function: Gets the total cost of attendance.'
* in
- Returns: ICoaAPI
- Function: Filters by term.'
* in
- Returns: ICoaAPI
- Function: Filters by academic year.'
* inAcademicYear
- Returns: ICoaAPI
- Function: Filters by academic year.'
* inTerm
- Returns: ICoaAPI
- Function: Filters by term.'
disbursements
Purpose: Information about all student disbursements.
Type: IDisbursementsAPI
Available Methods:
* filterSeqNos
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for sequence numbers passing a given predicate.'
* filterStatuses
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for disbursement statuses passing a given predicate.'
* getCancelled
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for disbursements that have been cancelled.'
* getDisbursed
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for disbursements
that have not been cancelled (see getCancelled(boolean), include disbursed payments
and whose individual Total Disbursement Amounts are positive.'
* getIncrementalDisbursementAmount
- Returns: BigDecimal
- Function: No description available'
* getLateDisbursement
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for disbursements with the given Late Disbursement
Indicator.'
* getPpDisbursementAmount
- Returns: BigDecimal
- Function: No description available'
* getLatestPayments
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data with only latest payments.'
* getLockingPp
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for (non-)payment period-locking disbursements'
* getPpAppliedAmount
- Returns: BigDecimal
- Function: No description available'
* getPwd
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for disbursements with the given PWD Indicator.'
* getSeqNos
- Returns: Set<Integer>
- Function: No description available'
* getStatuses
- Returns: ISet<String>
- Function: No description available'
* getTotalDisbursementAmount
- Returns: BigDecimal
- Function: No description available'
* getWithSeqNo
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for a given sequence number.'
* getWithSeqNos
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for the given sequence numbers.'
* getWithStatus
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for the given disbursement status.'
* getWithStatuses
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for given disbursement statuses.'
* hasBeenCancelled
- Returns: boolean
- Function: No description available'
* isDisbursed
- Returns: boolean
- Function: No description available'
* isLateDisbursement
- Returns: boolean
- Function: No description available'
* isLockingPp
- Returns: boolean
- Function: No description available'
* isPwd
- Returns: boolean
- Function: No description available'
* getPpMaxDisbursementAmount
- Returns: BigDecimal
- Function: No description available'
* getPpTotalDecreasedAmount
- Returns: BigDecimal
- Function: No description available'
dloan
Purpose: Information related to Direct Loans.
Type: IDloanAPI
Available Methods:
* getLifetimeLimit
- Returns: int
- Function: No description available'
* getRemainingNsldsLimit
- Returns: int
- Function: No description available'
enrollment
Purpose: Information for the enrollment this script is being evaluated for.
Type: IEnrollmentAPI
Available Methods:
* belongsTo
- Returns: boolean
- Function: Checks if this enrollment belongs to a student.'
* getBindings
- Returns: IEnrollmentBindingsAPI
- Function: Gets bindings for this enrollment.'
* getEnrollmentStatus
- Returns: String
- Function: Gets the enrollment status.'
* getProgramStartDate
- Returns: LocalDate
- Function: Gets the program start date.'
* isEffective
- Returns: boolean
- Function: Checks if this enrollment is effective.'
enrollments
Purpose: Enrollments information.
Type: IEnrollmentsAPI
Available Methods:
* getHigherPriorityThan
- Returns: List<IEnrollmentAPI>
- Function: Gets a list of enrollments with higher priority than a given enrollment.'
* getOtherThan
- Returns: List<IEnrollmentAPI>
- Function: Gets a list of the enrollments that are different from this enrollment, no
matter the priority.'
financialPlan
Purpose: Information about the student's current financial plan.
Type: IFinancialPlanAPI
Available Methods:
* filterCommonLineUniqueIds
- Returns: T
- Function: Creates a narrowed-down, independent collection of data for CommonLine Unique Ids passing a given predicate.'
* getAcyCoa
- Returns: int
- Function: Deprecated.
Consider using the coa binding (ICoaAPI).'
* getAcyUnpackagedAmount
- Returns: BigDecimal
- Function: Deprecated.
Consider using the coa binding (ICoaAPI).'
* getCarryOn
- Returns: BigDecimal
- Function: No description available'
* getCommonLineUniqueIds
- Returns: Set<ICommonLineUniqueId>
- Function: No description available'
* getEnrollmentIntensities
- Returns: ISet<BigDecimal>
- Function: No description available'
* getEnrollmentStatuses
- Returns: ISet<String>
- Function: No description available'
* getFundStatuses
- Returns: ISet<String>
- Function: No description available'
* getMaxAmount
- Returns: BigDecimal
- Function: No description available'
* getProratedLimit
- Returns: BigDecimal
- Function: No description available'
* getVersion
- Returns: int
- Function: Gets the package version.'
* getWithCommonLineUniqueId
- Returns: T
- Function: Creates a narrowed-down, independent collection of data for the given CommonLine Unique Ids.'
* getWithCommonLineUniqueIds
- Returns: T
- Function: Creates a narrowed-down, independent collection of data for the given CommonLine Unique Ids.'
* isEligible
- Returns: boolean
- Function: No description available'
* isIsirUsedForCalculation
- Returns: boolean
- Function: Identifies ISIRs used while calculating this Financial Plan.'
* isProrated
- Returns: boolean
- Function: No description available'
* isUnmatchedCommonLineLoan
- Returns: boolean
- Function: Checks if a given CommonLine Loan (probably coming from the commonLineLoan binding) has not been matched
yet in the fund collection.'
fundAcceptance
Purpose: Provides access to all Fund Acceptance information for the student.
Type: IFundAcceptanceAPI
Available Methods:
* getWithStatuses
- Returns: T
- Function: Creates a narrowed-down, independent collection of fund acceptance data for given fund acceptance statuses.'
* filterNullableStatuses
- Returns: T
- Function: Creates a narrowed-down, independent collection of fund acceptance data for fund acceptance statuses passing a given predicate.'
* filterStatuses
- Returns: T
- Function: Creates a narrowed-down, independent collection of fund acceptance data for fund acceptance statuses passing a given predicate.'
* getNullableStatuses
- Returns: ISet<String>
- Function: No description available'
* getStatuses
- Returns: ISet<String>
- Function: No description available'
* getValidatedAcceptedAmount
- Returns: BigDecimal
- Function: No description available'
* getWithStatus
- Returns: T
- Function: Creates a narrowed-down, independent collection of fund acceptance data for the given fund acceptance status.'
fundCodeConfig
Purpose: Provides information about fund code configuration.
Type: IFundCodeConfigAPI
Available Methods:
* getFundCodesByPriority
- Returns: List<String>
- Function: No description available'
* getHigherPriorityFundCodes
- Returns: List<String>
- Function: No description available'
helper
Purpose: Helper interface with utility methods.
Type: IGroovyScriptHelper
Available Methods:
* filterCourses
- Returns: ICourseFilterAPI
- Function: No description available'
* getAwardYear
- Returns: IAwardYearHelperAPI
- Function: Returns Award Year-specific helper.'
* getIntegerFromSignedIsirNumber
- Returns: Integer
- Function: Parses a number represented in ISIR format to Integer.'
* getIsirDate
- Returns: Date
- Function: No description available'
* getIsirDateFormatStr
- Returns: String
- Function: No description available'
* getSignedIsirNumberFromInteger
- Returns: String
- Function: No description available'
* isirRecordsDifferForListedFields
- Returns: boolean
- Function: No description available'
* mapRanges
- Returns: IRangeMapStarterAPI
- Function: No description available'
* newAwardYearPeriod
- Returns: IAwardYearAPI
- Function: Returns the Award Year having a given end year.'
* newPeriod
- Returns: IPeriod
- Function: Returns the IPeriod for one single day.'
* newPeriod
- Returns: IPeriod
- Function: Returns a IPeriod given its start and end dates.'
isirCorrection
Purpose: ISIR correction information.
Type: IIsirCorrectionRecordAPI
Available Methods:
* getAwardYearIndicator
- Returns: String
- Function: No description available'
* getEdeFederalSchoolCode
- Returns: String
- Function: No description available'
* getEmailAddress
- Returns: String
- Function: No description available'
* getFieldCorrections
- Returns: Map<String,String>
- Function: No description available'
* getHighSchoolName
- Returns: String
- Function: No description available'
* getOriginalId
- Returns: String
- Function: No description available'
* getParentsEmailAddress
- Returns: String
- Function: No description available'
* getStudentSsn
- Returns: ISocialSecurityNumber
- Function: No description available'
* getTransactionDataSourceTypeCode
- Returns: String
- Function: No description available'
* getTransactionNumber
- Returns: String
- Function: No description available'
* getTransactionReceiptDate
- Returns: LocalDate
- Function: No description available'
* hasIsirCorrection
- Returns: boolean
- Function: No description available'
isirRecord
Purpose: The ISIR being evaluated.
Type: IIsirRecordAPI
Available Methods:
* getActiveIsirForAwardYear
- Returns: Boolean
- Function: Gets the active ISIR for award year status.'
* getAllFields
- Returns: @NonNull Map<IsirField<?>,IIsirFieldValue<?>>
- Function: Retrieves all field values (WARNING: can only be used with 2025+ ISIRs).'
* getAssumptions
- Returns: List<IAssumptionAPI>
- Function: Get the assumptions.'
* getAwardYear
- Returns: String
- Function: Gets the award year.'
* getCommentCodes
- Returns: List<ICommentCodeAPI>
- Function: Get the comment codes.'
* getCpsTransNumber
- Returns: String
- Function: Gets the CPS transaction number.'
* getCurrentSsn
- Returns: ISocialSecurityNumber
- Function: Gets the student's current SSN.'
* getDiscrepancies
- Returns: List<IDiscrepancyAPI>
- Function: Get the discrepancies.'
* getField
- Returns: <T> @NonNull IIsirFieldValue<T>
- Function: Retrieves the value of a given field (WARNING: can only be used with 2025+ ISIRs).'
* getFirstName
- Returns: String
- Function: Gets the student's first name.'
* getHighlightFlags
- Returns: List<IHighlightFlagAPI>
- Function: Get the highlight flags.'
* getIsirFieldValue
- Returns: String
- Function: Gets the value of an ISIR field (WARNING: This method can only be used up to 2024 award year).'
* getIsirFieldValueOrNull
- Returns: String
- Function: Gets the value of an ISIR field (WARNING: This method can only be used up to 2024 award year).'
* getIsirFieldValues
- Returns: Map<String,String>
- Function: Get a map containing all ISIR fields (WARNING: This method can only be used up to 2024 award year).'
* getIsirIdOriginalNameId
- Returns: String
- Function: Gets the student's original name ID.'
* getIsirIdSsn
- Returns: ISocialSecurityNumber
- Function: Gets the student's original SSN.'
* getIsirIdYearIndicator
- Returns: String
- Function: Gets the ISIR's year indicator.'
* getIsirStatus
- Returns: String
- Function: Gets the ISIR status.'
* getIsirStatusBeforeCorrection
- Returns: String
- Function: When ISIR Status is Corrected returns the previous ISIR Status.'
* getLastName
- Returns: String
- Function: Gets the student's last name.'
* getMiddleName
- Returns: String
- Function: Gets the student's middle name.'
* getReceivedDate
- Returns: Date
- Function: Gets the system receipt date of the ISIR.'
* getRejectCodes
- Returns: List<IRejectCodeAPI>
- Function: Get the reject codes.'
* getSchoolCode1
- Returns: String
- Function: Gets the school code 1.'
* getSchoolCode10
- Returns: String
- Function: Gets the school code 10.'
* getSchoolCode2
- Returns: String
- Function: Gets the school code 2.'
* getSchoolCode3
- Returns: String
- Function: Gets the school code 3.'
* getSchoolCode4
- Returns: String
- Function: Gets the school code 4.'
* getSchoolCode5
- Returns: String
- Function: Gets the school code 5.'
* getSchoolCode6
- Returns: String
- Function: Gets the school code 6.'
* getSchoolCode7
- Returns: String
- Function: Gets the school code 7.'
* getSchoolCode8
- Returns: String
- Function: Gets the school code 8.'
* getSchoolCode9
- Returns: String
- Function: Gets the school code 9.'
* isCompatibleWithPackaging
- Returns: boolean
- Function: Checks if this ISIR satisfies minimal acceptance criteria for automatic Financial
Aid Package Calculation.'
* isUnverified
- Returns: boolean
- Function: Gets the ISIR verification status.'
log
Purpose: Provides logging capability to scripts.
Type: IScriptLoggerAPI
Available Methods:
* debug
- Returns: boolean
- Function: No description available'
* debug
- Returns: void
- Function: No description available'
* error
- Returns: void
- Function: No description available'
* info
- Returns: boolean
- Function: No description available'
* info
- Returns: void
- Function: No description available'
* warn
- Returns: void
- Function: No description available'
nsldsGuarantorServicers
Purpose: List of all guarantors and servicers.
Type: IGuarantorServicersListAPI
Available Methods:
* getAwardYear
- Returns: String
- Function: No description available'
* getGuarantorServicerName
- Returns: String
- Function: No description available'
previousFinancialPlan
Purpose: Provides access to previous financial plans.
Type: IPreviousFinancialPlanAPI
Available Methods:
* effectiveAt
- Returns: T
- Function: Gets a previous financial plan that was effective at a given time.'
* effectiveAt
- Returns: T
- Function: Gets a previous financial plan that was effective on a given local date.'
* effectiveAt
- Returns: T
- Function: Gets a previous financial plan that was effective at a given local time.'
* withVersion
- Returns: T
- Function: Gets a previous financial plan with a given version.'
program
Purpose: Information about the student's primary program.
Type: IProgramAPI
Available Methods:
* exists
- Returns: boolean
- Function: No description available'
* getAcademicCompletionDate
- Returns: LocalDate
- Function: No description available'
* getAcademicStatus
- Returns: String
- Function: No description available'
* getAdmissionStatus
- Returns: String
- Function: No description available'
* getAssessedUnits
- Returns: BigDecimal
- Function: No description available'
* getAydUnits
- Returns: BigDecimal
- Function: No description available'
* getAydWeeks
- Returns: Integer
- Function: No description available'
* getCharges
- Returns: List<IChargeAPI>
- Function: No description available'
* getCode
- Returns: String
- Function: No description available'
* getCollege
- Returns: String
- Function: No description available'
* getCourses
- Returns: ICoursesAPI
- Function: No description available'
* getDateOfDetermination
- Returns: LocalDate
- Function: No description available'
* getDescription
- Returns: String
- Function: No description available'
* getEnrollmentStatus
- Returns: String
- Function: No description available'
* getEnrollmentStatusEffectiveDate
- Returns: LocalDate
- Function: No description available'
* getEnrollmentStatusSubType
- Returns: String
- Function: No description available'
* getExternalProgramId
- Returns: String
- Function: No description available'
* getFaEligibleIndicator
- Returns: Boolean
- Function: No description available'
* getGpa
- Returns: BigDecimal
- Function: No description available'
* getManualSapEvaluationIndicator
- Returns: Boolean
- Function: No description available'
* getModality
- Returns: String
- Function: No description available'
* getOfficialLastDateOfAttendance
- Returns: LocalDate
- Function: No description available'
* getOpeId
- Returns: String
- Function: No description available'
* getPrimaryLocation
- Returns: String
- Function: No description available'
* getProgramLengthMeasurementUnit
- Returns: String
- Function: No description available'
* getProgramLengthNumberOfUnits
- Returns: int
- Function: No description available'
* getProgramMeasurementUnit
- Returns: String
- Function: No description available'
* getProgramType
- Returns: String
- Function: No description available'
* getRequiredGpa
- Returns: BigDecimal
- Function: No description available'
* getSpecialPrograms
- Returns: String
- Function: No description available'
* getStartDate
- Returns: LocalDate
- Function: No description available'
* getStudentResources
- Returns: List<IStudentResourceAPI>
- Function: No description available'
* getTermAcys
- Returns: ISimpleNumberedPeriods<ITermAcademicYearAPI>
- Function: No description available'
* getTerms
- Returns: ITermPeriodsAPI
- Function: No description available'
* getTermType
- Returns: String
- Function: No description available'
* getTotalAcceptedTransferUnits
- Returns: BigDecimal
- Function: No description available'
* getTotalRequiredUnits
- Returns: BigDecimal
- Function: No description available'
* isBbayTerm
- Returns: boolean
- Function: No description available'
* isGraduate
- Returns: boolean
- Function: No description available'
* isProgramTerm
- Returns: boolean
- Function: No description available'
* isTerm
- Returns: boolean
- Function: No description available'
* isUndergraduate
- Returns: boolean
- Function: No description available'
r2t4
Purpose: Provides access to all R2T4 information for the student.
Type: IR2t4API
Available Methods:
* filterOldas
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for OLDAs passing a given predicate.'
* filterProcessStatuses
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for process statuses passing a given predicate.'
* getGrossAmountDecreased
- Returns: BigDecimal
- Function: No description available'
* getNetAmountDecreased
- Returns: BigDecimal
- Function: No description available'
* getNullableOldas
- Returns: ISet<LocalDate>
- Function: No description available'
* getNullableProcessStatuses
- Returns: ISet<String>
- Function: No description available'
* getOldas
- Returns: ISet<LocalDate>
- Function: No description available'
* getProcessStatuses
- Returns: ISet<String>
- Function: No description available'
* getWithLatest
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for the given isLatest status.'
* getWithOlda
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for the given process OLDA.'
* getWithOldas
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for given process OLDAs.'
* getWithProcessStatus
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for the given process status.'
* getWithProcessStatuses
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for given process statuses.'
* isEligibleForPWD
- Returns: boolean
- Function: No description available'
* isLatest
- Returns: boolean
- Function: Checks if at least one R2T4 process in the collection is the latest.'
receivedDocuments
Purpose: Active documents for the student for the award year of the ISIR being evaluated.
Type: IReceivedDocs
Available Methods:
* get
- Returns: IReceivedDoc
- Function: Return doc for specified code and Student, if it exists.'
* get
- Returns: IReceivedDoc
- Function: Return doc for specified code and owners, if it exists.'
* get
- Returns: IReceivedDoc
- Function: Return doc for specified code, owners, and subtype, if it exists.'
* getDocumentsForDocCode
- Returns: List<IReceivedDoc>
- Function: Return list with doc or doc subtpyes for specified code and Student, if it exists.'
* getDocumentsForDocCode
- Returns: List<IReceivedDoc>
- Function: Return list with doc or doc subtpyes for specified code and owners, if it exists.'
* getValidDocCodes
- Returns: Set<String>
- Function: No description available'
* hasDoc
- Returns: boolean
- Function: No description available'
* hasDoc
- Returns: boolean
- Function: Return true if doc exists with the right code and owners'
* noDocs
- Returns: boolean
- Function: No description available'
* put
- Returns: void
- Function: No description available'
* put
- Returns: void
- Function: No description available'
recentFahRecords
Purpose: All Financial Aid History records associated with the student.
Type: IRecentFahRecordsAPI
Available Methods:
* hasRecordsOfType
- Returns: boolean
- Function: No description available'
* overlapsLoan
- Returns: boolean
- Function: No description available'
* getRecords
- Returns: List<IFahRecordAPI>
- Function: No description available'
* getRecordsByType
- Returns: List<IFahRecordAPI>
- Function: No description available'
student
Purpose: Student information.
Type: IFasStudentAPI
Available Methods:
* getAddressState
- Returns: String
- Function: Gets the federal state in the student's main mailing address, as a two-letter acronym.'
* getBahIndicator
- Returns: Boolean
- Function: Gets the school employee dependet status.'
* getCampusCode
- Returns: String
- Function: Gets the campus code.'
* getCompletionDate
- Returns: Date
- Function: Gets the completion date.'
* getDateOfBirth
- Returns: ISecureLocalDate
- Function: Gets the date of birth.'
* getDependencyStatus
- Returns: String
- Function: Gets the dependency status.'
* getDeterminationDate
- Returns: Date
- Function: Gets the determination date.'
* getDocuments
- Returns: Map<String,IReceivedDoc>
- Function: Gets the student's documents, indexed by document code.'
* getEmail
- Returns: String
- Function: Gets the e-mail.'
* getEnrollmentStatus
- Returns: String
- Function: Gets the enrollment status.'
* getExternalStudentId
- Returns: String
- Function: Gets the external student ID (unique per student).'
* getFinancialAidRequested
- Returns: Boolean
- Function: Gets the financial aid request status.'
* getFirstName
- Returns: String
- Function: Gets the first name.'
* getGender
- Returns: String
- Function: Gets the gender.'
* getHighSchoolEquivalency
- Returns: Boolean
- Function: Gets the high school equivalency status.'
* getLastName
- Returns: String
- Function: Gets the last name.'
* getMiddleName
- Returns: String
- Function: Gets the middle name.'
* getPersonId
- Returns: Long
- Function: Gets the person ID.'
* getProgramType
- Returns: String
- Function: Gets the program type.'
* getRecentFinancialAidHistoryRecords
- Returns: IRecentFahRecordsAPI
- Function: Gets the recent financial aid records.'
* getSchoolCode
- Returns: String
- Function: Gets the school code.'
* getSchoolEmployee
- Returns: Boolean
- Function: Gets the school employee status.'
* getSchoolEmployeeDependent
- Returns: Boolean
- Function: Gets the school employee dependent status.'
* getSsn
- Returns: ISocialSecurityNumber
- Function: Gets the SSN.'
* getStudentId
- Returns: Long
- Function: Gets the student ID (or enrollment ID, unique per enrollment).'
studentFollowUp
Purpose: Binding that can be populated by the script to flag the c-code as "Student Follow-Up".
Type: IStudentFollowUp
Available Methods:
* getStudentFollowUpReason
- Returns: String
- Function: No description available'
* isStudentFollowUpRequired
- Returns: boolean
- Function: No description available'
* setStudentFollowUpReason
- Returns: void
- Function: No description available'
* setStudentFollowUpRequired
- Returns: void
- Function: No description available'
IMPORTANT REQUIREMENTS:
1. Each method usage must be explained in its full context
2. All data transformations must be detailed
3. Error handling for each method must be specified
4. Business implications of method results must be clear
## COMMENTING REQUIREMENTS
Your task is to create COMPREHENSIVE, CONTEXTUAL comments for this Oracle SFP Platform script.
FILE-LEVEL DOCUMENTATION REQUIREMENTS:
1. File Header (Using /** ... */ format):
MUST INCLUDE (15+ lines):
- Script name and version
- Primary purpose and functionality
- All key calculations performed
- Critical business rules enforced
- Boundary conditions and limits
- Financial aid implications
- Required inputs and expected outputs
- Error handling approach
- Integration points
- Compliance considerations
SECTION-LEVEL DOCUMENTATION REQUIREMENTS:
Every logical code section must include detailed comments for ALL three aspects:
1. CONDITIONALS Section:
Format:
// CONDITIONALS:
// Check [number]: [specific condition being evaluated]
// Variables: [list of variables and methods involved]
// Purpose: [detailed business reason for this check]
// Logic:
// - [step-by-step breakdown of the condition]
// - [how variables are used]
// - [any transformations applied]
// Success Path: [what happens when condition is true]
// Failure Path: [what happens when condition is false]
// Business Rules: [specific rules being enforced]
// Error Handling: [how errors are managed]
// Financial Impact: [effect on aid calculations]
// If N/A, explicitly state: "CONDITIONALS: N/A"
2. BOUNDARY CHECKS Section:
Format:
// BOUNDARY CHECKS:
// Check [number]: [specific limit being enforced]
// Source: [where boundary values come from]
// Variables: [variables and methods involved]
// Validation:
// - [how boundaries are checked]
// - [validation method details]
// Edge Cases:
// - [specific edge cases handled]
// - [how each is managed]
// Error Handling: [boundary violation management]
// Impact: [effect of boundary violations]
// If N/A, explicitly state: "BOUNDARY CHECKS: N/A"
3. ARITHMETIC Section:
Format:
// ARITHMETIC:
// Operation [number]: [name of calculation]
// Formula: [complete mathematical expression]
// Variables:
// - [each variable and its purpose]
// - [data types and units]
// Steps:
// 1. [detailed step-by-step breakdown]
// 2. [intermediate calculations]
// 3. [transformations applied]
// Business Context: [why this calculation is needed]
// Result: [meaning of the output]
// Financial Impact: [effect on aid calculations]
// Limitations: [any mathematical constraints]
// If N/A, explicitly state: "ARITHMETIC: N/A"
ADDITIONAL REQUIREMENTS:
1. Complex Logic Sections:
- Must break down multi-step operations
- Explain interactions between components
- Detail data flow and transformations
2. Error Handling:
- Document all error conditions
- Explain recovery procedures
- Detail logging and reporting
3. API Interactions:
- Document all platform method calls
- Explain data transformations
- Detail error handling
4. Financial Aid Impact:
- Explain effects on aid calculations
- Document regulatory compliance
- Detail student eligibility impact
Example Section With All Aspects:
// CONDITIONALS:
// Check 1: Payment Period Status Validation
// Variables: getLoanPaymentPeriods(), period.getStatus(), period.getStartDate()
// Purpose: Ensure only valid, active payment periods are included
// Logic:
// - Retrieve all loan payment periods
// - Filter based on status (!= "CANCELED")
// - Compare start dates with reference date
// Success Path: Period included in calculations
// Failure Path: Period excluded from totals
// Business Rules: Canceled periods must not affect grade level
// Error Handling: Invalid periods logged and skipped
// Financial Impact: Affects available loan amounts
//
// BOUNDARY CHECKS:
// Check 1: Payment Period Date Validation
// Source: Academic Calendar Configuration
// Variables: period.getStartDate(), referenceDate
// Validation:
// - Compare period start date with reference date
// - Ensure dates are not null
// Edge Cases:
// - Null dates are excluded
// - Future dates are filtered
// Error Handling: Invalid dates logged and skipped
// Impact: Prevents future periods from affecting current calculation
//
// ARITHMETIC:
// Operation 1: Payment Period Units Summation
// Formula: sum(validPeriods.map(period => period.getUnits()))
// Variables:
// - period.getUnits(): Decimal, represents credit hours
// - validPeriods: Array of filtered payment periods
// Steps:
// 1. Filter valid payment periods
// 2. Extract units from each period
// 3. Sum all units using reduce
// Business Context: Calculate total completed units for grade level
// Result: Total units affecting grade level
// Financial Impact: Determines loan eligibility amounts
// Limitations: Cannot exceed program maximum units
## Groovy Script for Analysis
```groovy
//file:noinspection UnnecessaryQualifiedReference
@groovy.transform.BaseScript(com.oracle.sfp.scripting.api.sdk.autocomplete.IsirCCodeAutoCodeClearingLogicScript)
package CHANGE_ME // this should be updated to your actual package name
import com.oracle.sfp.scripting.api.*
import com.oracle.sfp.scripting.api.util.*
studentFollowUp.studentFollowUpRequired = true;
return false;
```
## COMMENT GENERATION REQUIREMENTS:
1. Add comprehensive comments following the exact format specified
2. Every logical section must include all three aspects:
- CONDITIONALS
- BOUNDARY CHECKS
- ARITHMETIC
3. Mark any non-applicable aspect as "N/A" explicitly
4. Ensure line-by-line explanation of complex logic
5. Detail all financial aid implications
DO NOT modify the code itself. Add comments only.
REMEMBER:
- Comments must be exhaustively detailed
- Every logical section needs all three aspects
- Financial aid impact must be clear
- Business rules must be explicit
Return ONLY the fully commented Groovy script. No other text or explanations.
ISIR Assumption Auto Code Clearing
Name: isirAssumptionAutoCodeClearingLogic
Purpose: Determine if an ISIR assumption is auto cleared.
In Baseline Config: No
Return Type: Boolean
# Oracle SFP Platform Script Documentation Generator
Your task is to create comprehensive, contextual comments for this Oracle SFP Platform Groovy script.
CRITICAL REQUIREMENTS:
1. Follow exact comment format specified
2. Include all three aspects for every section
3. Mark non-applicable aspects as "N/A"
4. Provide business context and financial impact
5. Detail all API interactions and data flows
## Script Purpose and Context
The script being analyzed is: "isirAssumptionAutoCodeClearingLogic"
Primary Function: Determine if an ISIR assumption is auto cleared.
Expected Output Type: Boolean
This script is part of the Oracle SFP Platform ecosystem and interacts with platform-specific APIs and data structures.
You must analyze this script in the context of financial aid processing workflows, ensuring compliance with:
1. Federal financial aid regulations
2. Academic progress requirements
3. Institutional policies
4. Program-specific rules
Your analysis must detail:
1. All conditional logic and its business implications
2. All boundary checks and their validation purposes
3. All calculations and their financial aid impact
4. Error handling and data validation
5. Integration points with platform APIs
## Available Platform Methods and Integrations
The script has access to the following Oracle SFP Platform integrations.
When commenting the code, you MUST explain how these specific methods and bindings are being used:
AGGREGATES_PERKINS_FLAGS
Purpose: Constant value for the FahRecordType enum.
Type: FahRecordType
Available Methods:
No methods available
GRANT_PAYMENT
Purpose: Constant value for the FahRecordType enum.
Type: FahRecordType
Available Methods:
No methods available
LOAN_DETAIL
Purpose: Constant value for the FahRecordType enum.
Type: FahRecordType
Available Methods:
No methods available
OVERPAYMENT
Purpose: Constant value for the FahRecordType enum.
Type: FahRecordType
Available Methods:
No methods available
allAwardYearReceivedDocuments
Purpose: Provides access to all documents received for the student.
Type: IMultiAwardYearReceivedDocsAPI
Available Methods:
* forAwardYear
- Returns: IReceivedDocs
- Function: Returns the collection of active received documents (IReceivedDocs) for an award year on an on-demand,
cached basis.'
coa
Purpose: Provides access to all Cost of Attendance information for the student.
Type: ICoaAPI
Available Methods:
* getActiveCoa
- Returns: int
- Function: Gets the active cost of attendance.'
* getActualCoa
- Returns: int
- Function: Gets the actual cost of attendance.'
* getComponents
- Returns: ICoaComponentsAPI
- Function: Gets the COA components.'
* getPellCoa
- Returns: int
- Function: Gets the PELL cost of attendance.'
* getTotalCoa
- Returns: int
- Function: Gets the total cost of attendance.'
* in
- Returns: ICoaAPI
- Function: Filters by term.'
* in
- Returns: ICoaAPI
- Function: Filters by academic year.'
* inAcademicYear
- Returns: ICoaAPI
- Function: Filters by academic year.'
* inTerm
- Returns: ICoaAPI
- Function: Filters by term.'
disbursements
Purpose: Information about all student disbursements.
Type: IDisbursementsAPI
Available Methods:
* filterSeqNos
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for sequence numbers passing a given predicate.'
* filterStatuses
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for disbursement statuses passing a given predicate.'
* getCancelled
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for disbursements that have been cancelled.'
* getDisbursed
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for disbursements
that have not been cancelled (see getCancelled(boolean), include disbursed payments
and whose individual Total Disbursement Amounts are positive.'
* getIncrementalDisbursementAmount
- Returns: BigDecimal
- Function: No description available'
* getLateDisbursement
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for disbursements with the given Late Disbursement
Indicator.'
* getPpDisbursementAmount
- Returns: BigDecimal
- Function: No description available'
* getLatestPayments
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data with only latest payments.'
* getLockingPp
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for (non-)payment period-locking disbursements'
* getPpAppliedAmount
- Returns: BigDecimal
- Function: No description available'
* getPwd
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for disbursements with the given PWD Indicator.'
* getSeqNos
- Returns: Set<Integer>
- Function: No description available'
* getStatuses
- Returns: ISet<String>
- Function: No description available'
* getTotalDisbursementAmount
- Returns: BigDecimal
- Function: No description available'
* getWithSeqNo
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for a given sequence number.'
* getWithSeqNos
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for the given sequence numbers.'
* getWithStatus
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for the given disbursement status.'
* getWithStatuses
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for given disbursement statuses.'
* hasBeenCancelled
- Returns: boolean
- Function: No description available'
* isDisbursed
- Returns: boolean
- Function: No description available'
* isLateDisbursement
- Returns: boolean
- Function: No description available'
* isLockingPp
- Returns: boolean
- Function: No description available'
* isPwd
- Returns: boolean
- Function: No description available'
* getPpMaxDisbursementAmount
- Returns: BigDecimal
- Function: No description available'
* getPpTotalDecreasedAmount
- Returns: BigDecimal
- Function: No description available'
dloan
Purpose: Information related to Direct Loans.
Type: IDloanAPI
Available Methods:
* getLifetimeLimit
- Returns: int
- Function: No description available'
* getRemainingNsldsLimit
- Returns: int
- Function: No description available'
enrollment
Purpose: Information for the enrollment this script is being evaluated for.
Type: IEnrollmentAPI
Available Methods:
* belongsTo
- Returns: boolean
- Function: Checks if this enrollment belongs to a student.'
* getBindings
- Returns: IEnrollmentBindingsAPI
- Function: Gets bindings for this enrollment.'
* getEnrollmentStatus
- Returns: String
- Function: Gets the enrollment status.'
* getProgramStartDate
- Returns: LocalDate
- Function: Gets the program start date.'
* isEffective
- Returns: boolean
- Function: Checks if this enrollment is effective.'
enrollments
Purpose: Enrollments information.
Type: IEnrollmentsAPI
Available Methods:
* getHigherPriorityThan
- Returns: List<IEnrollmentAPI>
- Function: Gets a list of enrollments with higher priority than a given enrollment.'
* getOtherThan
- Returns: List<IEnrollmentAPI>
- Function: Gets a list of the enrollments that are different from this enrollment, no
matter the priority.'
financialPlan
Purpose: Information about the student's current financial plan.
Type: IFinancialPlanAPI
Available Methods:
* filterCommonLineUniqueIds
- Returns: T
- Function: Creates a narrowed-down, independent collection of data for CommonLine Unique Ids passing a given predicate.'
* getAcyCoa
- Returns: int
- Function: Deprecated.
Consider using the coa binding (ICoaAPI).'
* getAcyUnpackagedAmount
- Returns: BigDecimal
- Function: Deprecated.
Consider using the coa binding (ICoaAPI).'
* getCarryOn
- Returns: BigDecimal
- Function: No description available'
* getCommonLineUniqueIds
- Returns: Set<ICommonLineUniqueId>
- Function: No description available'
* getEnrollmentIntensities
- Returns: ISet<BigDecimal>
- Function: No description available'
* getEnrollmentStatuses
- Returns: ISet<String>
- Function: No description available'
* getFundStatuses
- Returns: ISet<String>
- Function: No description available'
* getMaxAmount
- Returns: BigDecimal
- Function: No description available'
* getProratedLimit
- Returns: BigDecimal
- Function: No description available'
* getVersion
- Returns: int
- Function: Gets the package version.'
* getWithCommonLineUniqueId
- Returns: T
- Function: Creates a narrowed-down, independent collection of data for the given CommonLine Unique Ids.'
* getWithCommonLineUniqueIds
- Returns: T
- Function: Creates a narrowed-down, independent collection of data for the given CommonLine Unique Ids.'
* isEligible
- Returns: boolean
- Function: No description available'
* isIsirUsedForCalculation
- Returns: boolean
- Function: Identifies ISIRs used while calculating this Financial Plan.'
* isProrated
- Returns: boolean
- Function: No description available'
* isUnmatchedCommonLineLoan
- Returns: boolean
- Function: Checks if a given CommonLine Loan (probably coming from the commonLineLoan binding) has not been matched
yet in the fund collection.'
fundAcceptance
Purpose: Provides access to all Fund Acceptance information for the student.
Type: IFundAcceptanceAPI
Available Methods:
* getWithStatuses
- Returns: T
- Function: Creates a narrowed-down, independent collection of fund acceptance data for given fund acceptance statuses.'
* filterNullableStatuses
- Returns: T
- Function: Creates a narrowed-down, independent collection of fund acceptance data for fund acceptance statuses passing a given predicate.'
* filterStatuses
- Returns: T
- Function: Creates a narrowed-down, independent collection of fund acceptance data for fund acceptance statuses passing a given predicate.'
* getNullableStatuses
- Returns: ISet<String>
- Function: No description available'
* getStatuses
- Returns: ISet<String>
- Function: No description available'
* getValidatedAcceptedAmount
- Returns: BigDecimal
- Function: No description available'
* getWithStatus
- Returns: T
- Function: Creates a narrowed-down, independent collection of fund acceptance data for the given fund acceptance status.'
fundCodeConfig
Purpose: Provides information about fund code configuration.
Type: IFundCodeConfigAPI
Available Methods:
* getFundCodesByPriority
- Returns: List<String>
- Function: No description available'
* getHigherPriorityFundCodes
- Returns: List<String>
- Function: No description available'
helper
Purpose: Helper interface with utility methods.
Type: IGroovyScriptHelper
Available Methods:
* filterCourses
- Returns: ICourseFilterAPI
- Function: No description available'
* getAwardYear
- Returns: IAwardYearHelperAPI
- Function: Returns Award Year-specific helper.'
* getIntegerFromSignedIsirNumber
- Returns: Integer
- Function: Parses a number represented in ISIR format to Integer.'
* getIsirDate
- Returns: Date
- Function: No description available'
* getIsirDateFormatStr
- Returns: String
- Function: No description available'
* getSignedIsirNumberFromInteger
- Returns: String
- Function: No description available'
* isirRecordsDifferForListedFields
- Returns: boolean
- Function: No description available'
* mapRanges
- Returns: IRangeMapStarterAPI
- Function: No description available'
* newAwardYearPeriod
- Returns: IAwardYearAPI
- Function: Returns the Award Year having a given end year.'
* newPeriod
- Returns: IPeriod
- Function: Returns the IPeriod for one single day.'
* newPeriod
- Returns: IPeriod
- Function: Returns a IPeriod given its start and end dates.'
isirCorrection
Purpose: ISIR correction information.
Type: IIsirCorrectionRecordAPI
Available Methods:
* getAwardYearIndicator
- Returns: String
- Function: No description available'
* getEdeFederalSchoolCode
- Returns: String
- Function: No description available'
* getEmailAddress
- Returns: String
- Function: No description available'
* getFieldCorrections
- Returns: Map<String,String>
- Function: No description available'
* getHighSchoolName
- Returns: String
- Function: No description available'
* getOriginalId
- Returns: String
- Function: No description available'
* getParentsEmailAddress
- Returns: String
- Function: No description available'
* getStudentSsn
- Returns: ISocialSecurityNumber
- Function: No description available'
* getTransactionDataSourceTypeCode
- Returns: String
- Function: No description available'
* getTransactionNumber
- Returns: String
- Function: No description available'
* getTransactionReceiptDate
- Returns: LocalDate
- Function: No description available'
* hasIsirCorrection
- Returns: boolean
- Function: No description available'
isirRecord
Purpose: The ISIR being evaluated.
Type: IIsirRecordAPI
Available Methods:
* getActiveIsirForAwardYear
- Returns: Boolean
- Function: Gets the active ISIR for award year status.'
* getAllFields
- Returns: @NonNull Map<IsirField<?>,IIsirFieldValue<?>>
- Function: Retrieves all field values (WARNING: can only be used with 2025+ ISIRs).'
* getAssumptions
- Returns: List<IAssumptionAPI>
- Function: Get the assumptions.'
* getAwardYear
- Returns: String
- Function: Gets the award year.'
* getCommentCodes
- Returns: List<ICommentCodeAPI>
- Function: Get the comment codes.'
* getCpsTransNumber
- Returns: String
- Function: Gets the CPS transaction number.'
* getCurrentSsn
- Returns: ISocialSecurityNumber
- Function: Gets the student's current SSN.'
* getDiscrepancies
- Returns: List<IDiscrepancyAPI>
- Function: Get the discrepancies.'
* getField
- Returns: <T> @NonNull IIsirFieldValue<T>
- Function: Retrieves the value of a given field (WARNING: can only be used with 2025+ ISIRs).'
* getFirstName
- Returns: String
- Function: Gets the student's first name.'
* getHighlightFlags
- Returns: List<IHighlightFlagAPI>
- Function: Get the highlight flags.'
* getIsirFieldValue
- Returns: String
- Function: Gets the value of an ISIR field (WARNING: This method can only be used up to 2024 award year).'
* getIsirFieldValueOrNull
- Returns: String
- Function: Gets the value of an ISIR field (WARNING: This method can only be used up to 2024 award year).'
* getIsirFieldValues
- Returns: Map<String,String>
- Function: Get a map containing all ISIR fields (WARNING: This method can only be used up to 2024 award year).'
* getIsirIdOriginalNameId
- Returns: String
- Function: Gets the student's original name ID.'
* getIsirIdSsn
- Returns: ISocialSecurityNumber
- Function: Gets the student's original SSN.'
* getIsirIdYearIndicator
- Returns: String
- Function: Gets the ISIR's year indicator.'
* getIsirStatus
- Returns: String
- Function: Gets the ISIR status.'
* getIsirStatusBeforeCorrection
- Returns: String
- Function: When ISIR Status is Corrected returns the previous ISIR Status.'
* getLastName
- Returns: String
- Function: Gets the student's last name.'
* getMiddleName
- Returns: String
- Function: Gets the student's middle name.'
* getReceivedDate
- Returns: Date
- Function: Gets the system receipt date of the ISIR.'
* getRejectCodes
- Returns: List<IRejectCodeAPI>
- Function: Get the reject codes.'
* getSchoolCode1
- Returns: String
- Function: Gets the school code 1.'
* getSchoolCode10
- Returns: String
- Function: Gets the school code 10.'
* getSchoolCode2
- Returns: String
- Function: Gets the school code 2.'
* getSchoolCode3
- Returns: String
- Function: Gets the school code 3.'
* getSchoolCode4
- Returns: String
- Function: Gets the school code 4.'
* getSchoolCode5
- Returns: String
- Function: Gets the school code 5.'
* getSchoolCode6
- Returns: String
- Function: Gets the school code 6.'
* getSchoolCode7
- Returns: String
- Function: Gets the school code 7.'
* getSchoolCode8
- Returns: String
- Function: Gets the school code 8.'
* getSchoolCode9
- Returns: String
- Function: Gets the school code 9.'
* isCompatibleWithPackaging
- Returns: boolean
- Function: Checks if this ISIR satisfies minimal acceptance criteria for automatic Financial
Aid Package Calculation.'
* isUnverified
- Returns: boolean
- Function: Gets the ISIR verification status.'
log
Purpose: Provides logging capability to scripts.
Type: IScriptLoggerAPI
Available Methods:
* debug
- Returns: boolean
- Function: No description available'
* debug
- Returns: void
- Function: No description available'
* error
- Returns: void
- Function: No description available'
* info
- Returns: boolean
- Function: No description available'
* info
- Returns: void
- Function: No description available'
* warn
- Returns: void
- Function: No description available'
nsldsGuarantorServicers
Purpose: List of all guarantors and servicers.
Type: IGuarantorServicersListAPI
Available Methods:
* getAwardYear
- Returns: String
- Function: No description available'
* getGuarantorServicerName
- Returns: String
- Function: No description available'
previousFinancialPlan
Purpose: Provides access to previous financial plans.
Type: IPreviousFinancialPlanAPI
Available Methods:
* effectiveAt
- Returns: T
- Function: Gets a previous financial plan that was effective at a given time.'
* effectiveAt
- Returns: T
- Function: Gets a previous financial plan that was effective on a given local date.'
* effectiveAt
- Returns: T
- Function: Gets a previous financial plan that was effective at a given local time.'
* withVersion
- Returns: T
- Function: Gets a previous financial plan with a given version.'
program
Purpose: Information about the student's primary program.
Type: IProgramAPI
Available Methods:
* exists
- Returns: boolean
- Function: No description available'
* getAcademicCompletionDate
- Returns: LocalDate
- Function: No description available'
* getAcademicStatus
- Returns: String
- Function: No description available'
* getAdmissionStatus
- Returns: String
- Function: No description available'
* getAssessedUnits
- Returns: BigDecimal
- Function: No description available'
* getAydUnits
- Returns: BigDecimal
- Function: No description available'
* getAydWeeks
- Returns: Integer
- Function: No description available'
* getCharges
- Returns: List<IChargeAPI>
- Function: No description available'
* getCode
- Returns: String
- Function: No description available'
* getCollege
- Returns: String
- Function: No description available'
* getCourses
- Returns: ICoursesAPI
- Function: No description available'
* getDateOfDetermination
- Returns: LocalDate
- Function: No description available'
* getDescription
- Returns: String
- Function: No description available'
* getEnrollmentStatus
- Returns: String
- Function: No description available'
* getEnrollmentStatusEffectiveDate
- Returns: LocalDate
- Function: No description available'
* getEnrollmentStatusSubType
- Returns: String
- Function: No description available'
* getExternalProgramId
- Returns: String
- Function: No description available'
* getFaEligibleIndicator
- Returns: Boolean
- Function: No description available'
* getGpa
- Returns: BigDecimal
- Function: No description available'
* getManualSapEvaluationIndicator
- Returns: Boolean
- Function: No description available'
* getModality
- Returns: String
- Function: No description available'
* getOfficialLastDateOfAttendance
- Returns: LocalDate
- Function: No description available'
* getOpeId
- Returns: String
- Function: No description available'
* getPrimaryLocation
- Returns: String
- Function: No description available'
* getProgramLengthMeasurementUnit
- Returns: String
- Function: No description available'
* getProgramLengthNumberOfUnits
- Returns: int
- Function: No description available'
* getProgramMeasurementUnit
- Returns: String
- Function: No description available'
* getProgramType
- Returns: String
- Function: No description available'
* getRequiredGpa
- Returns: BigDecimal
- Function: No description available'
* getSpecialPrograms
- Returns: String
- Function: No description available'
* getStartDate
- Returns: LocalDate
- Function: No description available'
* getStudentResources
- Returns: List<IStudentResourceAPI>
- Function: No description available'
* getTermAcys
- Returns: ISimpleNumberedPeriods<ITermAcademicYearAPI>
- Function: No description available'
* getTerms
- Returns: ITermPeriodsAPI
- Function: No description available'
* getTermType
- Returns: String
- Function: No description available'
* getTotalAcceptedTransferUnits
- Returns: BigDecimal
- Function: No description available'
* getTotalRequiredUnits
- Returns: BigDecimal
- Function: No description available'
* isBbayTerm
- Returns: boolean
- Function: No description available'
* isGraduate
- Returns: boolean
- Function: No description available'
* isProgramTerm
- Returns: boolean
- Function: No description available'
* isTerm
- Returns: boolean
- Function: No description available'
* isUndergraduate
- Returns: boolean
- Function: No description available'
r2t4
Purpose: Provides access to all R2T4 information for the student.
Type: IR2t4API
Available Methods:
* filterOldas
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for OLDAs passing a given predicate.'
* filterProcessStatuses
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for process statuses passing a given predicate.'
* getGrossAmountDecreased
- Returns: BigDecimal
- Function: No description available'
* getNetAmountDecreased
- Returns: BigDecimal
- Function: No description available'
* getNullableOldas
- Returns: ISet<LocalDate>
- Function: No description available'
* getNullableProcessStatuses
- Returns: ISet<String>
- Function: No description available'
* getOldas
- Returns: ISet<LocalDate>
- Function: No description available'
* getProcessStatuses
- Returns: ISet<String>
- Function: No description available'
* getWithLatest
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for the given isLatest status.'
* getWithOlda
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for the given process OLDA.'
* getWithOldas
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for given process OLDAs.'
* getWithProcessStatus
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for the given process status.'
* getWithProcessStatuses
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for given process statuses.'
* isEligibleForPWD
- Returns: boolean
- Function: No description available'
* isLatest
- Returns: boolean
- Function: Checks if at least one R2T4 process in the collection is the latest.'
receivedDocuments
Purpose: Active documents for the student for the award year of the ISIR being evaluated.
Type: IReceivedDocs
Available Methods:
* get
- Returns: IReceivedDoc
- Function: Return doc for specified code and Student, if it exists.'
* get
- Returns: IReceivedDoc
- Function: Return doc for specified code and owners, if it exists.'
* get
- Returns: IReceivedDoc
- Function: Return doc for specified code, owners, and subtype, if it exists.'
* getDocumentsForDocCode
- Returns: List<IReceivedDoc>
- Function: Return list with doc or doc subtpyes for specified code and Student, if it exists.'
* getDocumentsForDocCode
- Returns: List<IReceivedDoc>
- Function: Return list with doc or doc subtpyes for specified code and owners, if it exists.'
* getValidDocCodes
- Returns: Set<String>
- Function: No description available'
* hasDoc
- Returns: boolean
- Function: No description available'
* hasDoc
- Returns: boolean
- Function: Return true if doc exists with the right code and owners'
* noDocs
- Returns: boolean
- Function: No description available'
* put
- Returns: void
- Function: No description available'
* put
- Returns: void
- Function: No description available'
recentFahRecords
Purpose: All Financial Aid History records associated with the student.
Type: IRecentFahRecordsAPI
Available Methods:
* hasRecordsOfType
- Returns: boolean
- Function: No description available'
* overlapsLoan
- Returns: boolean
- Function: No description available'
* getRecords
- Returns: List<IFahRecordAPI>
- Function: No description available'
* getRecordsByType
- Returns: List<IFahRecordAPI>
- Function: No description available'
student
Purpose: Student information.
Type: IFasStudentAPI
Available Methods:
* getAddressState
- Returns: String
- Function: Gets the federal state in the student's main mailing address, as a two-letter acronym.'
* getBahIndicator
- Returns: Boolean
- Function: Gets the school employee dependet status.'
* getCampusCode
- Returns: String
- Function: Gets the campus code.'
* getCompletionDate
- Returns: Date
- Function: Gets the completion date.'
* getDateOfBirth
- Returns: ISecureLocalDate
- Function: Gets the date of birth.'
* getDependencyStatus
- Returns: String
- Function: Gets the dependency status.'
* getDeterminationDate
- Returns: Date
- Function: Gets the determination date.'
* getDocuments
- Returns: Map<String,IReceivedDoc>
- Function: Gets the student's documents, indexed by document code.'
* getEmail
- Returns: String
- Function: Gets the e-mail.'
* getEnrollmentStatus
- Returns: String
- Function: Gets the enrollment status.'
* getExternalStudentId
- Returns: String
- Function: Gets the external student ID (unique per student).'
* getFinancialAidRequested
- Returns: Boolean
- Function: Gets the financial aid request status.'
* getFirstName
- Returns: String
- Function: Gets the first name.'
* getGender
- Returns: String
- Function: Gets the gender.'
* getHighSchoolEquivalency
- Returns: Boolean
- Function: Gets the high school equivalency status.'
* getLastName
- Returns: String
- Function: Gets the last name.'
* getMiddleName
- Returns: String
- Function: Gets the middle name.'
* getPersonId
- Returns: Long
- Function: Gets the person ID.'
* getProgramType
- Returns: String
- Function: Gets the program type.'
* getRecentFinancialAidHistoryRecords
- Returns: IRecentFahRecordsAPI
- Function: Gets the recent financial aid records.'
* getSchoolCode
- Returns: String
- Function: Gets the school code.'
* getSchoolEmployee
- Returns: Boolean
- Function: Gets the school employee status.'
* getSchoolEmployeeDependent
- Returns: Boolean
- Function: Gets the school employee dependent status.'
* getSsn
- Returns: ISocialSecurityNumber
- Function: Gets the SSN.'
* getStudentId
- Returns: Long
- Function: Gets the student ID (or enrollment ID, unique per enrollment).'
studentFollowUp
Purpose: Binding that can be populated by the script to flag the assumption as "Student Follow-Up".
Type: IStudentFollowUp
Available Methods:
* getStudentFollowUpReason
- Returns: String
- Function: No description available'
* isStudentFollowUpRequired
- Returns: boolean
- Function: No description available'
* setStudentFollowUpReason
- Returns: void
- Function: No description available'
* setStudentFollowUpRequired
- Returns: void
- Function: No description available'
throwsDocumentIsFaUnacceptableExceptionParam
Purpose: This binding can be set within a Groovy script to control whether a subsequent call to
IReceivedDoc.isAcceptable() or IReceivedDocDocumentAPI.isAcceptable() triggers an exception or not when a
document is unnaceptable. The default value is true.
Type: Boolean
Available Methods:
No methods available
IMPORTANT REQUIREMENTS:
1. Each method usage must be explained in its full context
2. All data transformations must be detailed
3. Error handling for each method must be specified
4. Business implications of method results must be clear
## COMMENTING REQUIREMENTS
Your task is to create COMPREHENSIVE, CONTEXTUAL comments for this Oracle SFP Platform script.
FILE-LEVEL DOCUMENTATION REQUIREMENTS:
1. File Header (Using /** ... */ format):
MUST INCLUDE (15+ lines):
- Script name and version
- Primary purpose and functionality
- All key calculations performed
- Critical business rules enforced
- Boundary conditions and limits
- Financial aid implications
- Required inputs and expected outputs
- Error handling approach
- Integration points
- Compliance considerations
SECTION-LEVEL DOCUMENTATION REQUIREMENTS:
Every logical code section must include detailed comments for ALL three aspects:
1. CONDITIONALS Section:
Format:
// CONDITIONALS:
// Check [number]: [specific condition being evaluated]
// Variables: [list of variables and methods involved]
// Purpose: [detailed business reason for this check]
// Logic:
// - [step-by-step breakdown of the condition]
// - [how variables are used]
// - [any transformations applied]
// Success Path: [what happens when condition is true]
// Failure Path: [what happens when condition is false]
// Business Rules: [specific rules being enforced]
// Error Handling: [how errors are managed]
// Financial Impact: [effect on aid calculations]
// If N/A, explicitly state: "CONDITIONALS: N/A"
2. BOUNDARY CHECKS Section:
Format:
// BOUNDARY CHECKS:
// Check [number]: [specific limit being enforced]
// Source: [where boundary values come from]
// Variables: [variables and methods involved]
// Validation:
// - [how boundaries are checked]
// - [validation method details]
// Edge Cases:
// - [specific edge cases handled]
// - [how each is managed]
// Error Handling: [boundary violation management]
// Impact: [effect of boundary violations]
// If N/A, explicitly state: "BOUNDARY CHECKS: N/A"
3. ARITHMETIC Section:
Format:
// ARITHMETIC:
// Operation [number]: [name of calculation]
// Formula: [complete mathematical expression]
// Variables:
// - [each variable and its purpose]
// - [data types and units]
// Steps:
// 1. [detailed step-by-step breakdown]
// 2. [intermediate calculations]
// 3. [transformations applied]
// Business Context: [why this calculation is needed]
// Result: [meaning of the output]
// Financial Impact: [effect on aid calculations]
// Limitations: [any mathematical constraints]
// If N/A, explicitly state: "ARITHMETIC: N/A"
ADDITIONAL REQUIREMENTS:
1. Complex Logic Sections:
- Must break down multi-step operations
- Explain interactions between components
- Detail data flow and transformations
2. Error Handling:
- Document all error conditions
- Explain recovery procedures
- Detail logging and reporting
3. API Interactions:
- Document all platform method calls
- Explain data transformations
- Detail error handling
4. Financial Aid Impact:
- Explain effects on aid calculations
- Document regulatory compliance
- Detail student eligibility impact
Example Section With All Aspects:
// CONDITIONALS:
// Check 1: Payment Period Status Validation
// Variables: getLoanPaymentPeriods(), period.getStatus(), period.getStartDate()
// Purpose: Ensure only valid, active payment periods are included
// Logic:
// - Retrieve all loan payment periods
// - Filter based on status (!= "CANCELED")
// - Compare start dates with reference date
// Success Path: Period included in calculations
// Failure Path: Period excluded from totals
// Business Rules: Canceled periods must not affect grade level
// Error Handling: Invalid periods logged and skipped
// Financial Impact: Affects available loan amounts
//
// BOUNDARY CHECKS:
// Check 1: Payment Period Date Validation
// Source: Academic Calendar Configuration
// Variables: period.getStartDate(), referenceDate
// Validation:
// - Compare period start date with reference date
// - Ensure dates are not null
// Edge Cases:
// - Null dates are excluded
// - Future dates are filtered
// Error Handling: Invalid dates logged and skipped
// Impact: Prevents future periods from affecting current calculation
//
// ARITHMETIC:
// Operation 1: Payment Period Units Summation
// Formula: sum(validPeriods.map(period => period.getUnits()))
// Variables:
// - period.getUnits(): Decimal, represents credit hours
// - validPeriods: Array of filtered payment periods
// Steps:
// 1. Filter valid payment periods
// 2. Extract units from each period
// 3. Sum all units using reduce
// Business Context: Calculate total completed units for grade level
// Result: Total units affecting grade level
// Financial Impact: Determines loan eligibility amounts
// Limitations: Cannot exceed program maximum units
## Groovy Script for Analysis
```groovy
N/A - There is no baseline config. This is a placeholder.
```
## COMMENT GENERATION REQUIREMENTS:
1. Add comprehensive comments following the exact format specified
2. Every logical section must include all three aspects:
- CONDITIONALS
- BOUNDARY CHECKS
- ARITHMETIC
3. Mark any non-applicable aspect as "N/A" explicitly
4. Ensure line-by-line explanation of complex logic
5. Detail all financial aid implications
DO NOT modify the code itself. Add comments only.
REMEMBER:
- Comments must be exhaustively detailed
- Every logical section needs all three aspects
- Financial aid impact must be clear
- Business rules must be explicit
Return ONLY the fully commented Groovy script. No other text or explanations.
ISIR Highlight Auto Code Clearing
Name: isirHighlightAutoCodeClearingLogic
Purpose: Determine if an ISIR highlight is auto cleared.
In Baseline Config: No
Return Type: Boolean
# Oracle SFP Platform Script Documentation Generator
Your task is to create comprehensive, contextual comments for this Oracle SFP Platform Groovy script.
CRITICAL REQUIREMENTS:
1. Follow exact comment format specified
2. Include all three aspects for every section
3. Mark non-applicable aspects as "N/A"
4. Provide business context and financial impact
5. Detail all API interactions and data flows
## Script Purpose and Context
The script being analyzed is: "isirHighlightAutoCodeClearingLogic"
Primary Function: Determine if an ISIR highlight is auto cleared.
Expected Output Type: Boolean
This script is part of the Oracle SFP Platform ecosystem and interacts with platform-specific APIs and data structures.
You must analyze this script in the context of financial aid processing workflows, ensuring compliance with:
1. Federal financial aid regulations
2. Academic progress requirements
3. Institutional policies
4. Program-specific rules
Your analysis must detail:
1. All conditional logic and its business implications
2. All boundary checks and their validation purposes
3. All calculations and their financial aid impact
4. Error handling and data validation
5. Integration points with platform APIs
## Available Platform Methods and Integrations
The script has access to the following Oracle SFP Platform integrations.
When commenting the code, you MUST explain how these specific methods and bindings are being used:
AGGREGATES_PERKINS_FLAGS
Purpose: Constant value for the FahRecordType enum.
Type: FahRecordType
Available Methods:
No methods available
GRANT_PAYMENT
Purpose: Constant value for the FahRecordType enum.
Type: FahRecordType
Available Methods:
No methods available
LOAN_DETAIL
Purpose: Constant value for the FahRecordType enum.
Type: FahRecordType
Available Methods:
No methods available
OVERPAYMENT
Purpose: Constant value for the FahRecordType enum.
Type: FahRecordType
Available Methods:
No methods available
allAwardYearReceivedDocuments
Purpose: Provides access to all documents received for the student.
Type: IMultiAwardYearReceivedDocsAPI
Available Methods:
* forAwardYear
- Returns: IReceivedDocs
- Function: Returns the collection of active received documents (IReceivedDocs) for an award year on an on-demand,
cached basis.'
coa
Purpose: Provides access to all Cost of Attendance information for the student.
Type: ICoaAPI
Available Methods:
* getActiveCoa
- Returns: int
- Function: Gets the active cost of attendance.'
* getActualCoa
- Returns: int
- Function: Gets the actual cost of attendance.'
* getComponents
- Returns: ICoaComponentsAPI
- Function: Gets the COA components.'
* getPellCoa
- Returns: int
- Function: Gets the PELL cost of attendance.'
* getTotalCoa
- Returns: int
- Function: Gets the total cost of attendance.'
* in
- Returns: ICoaAPI
- Function: Filters by term.'
* in
- Returns: ICoaAPI
- Function: Filters by academic year.'
* inAcademicYear
- Returns: ICoaAPI
- Function: Filters by academic year.'
* inTerm
- Returns: ICoaAPI
- Function: Filters by term.'
disbursements
Purpose: Information about all student disbursements.
Type: IDisbursementsAPI
Available Methods:
* filterSeqNos
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for sequence numbers passing a given predicate.'
* filterStatuses
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for disbursement statuses passing a given predicate.'
* getCancelled
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for disbursements that have been cancelled.'
* getDisbursed
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for disbursements
that have not been cancelled (see getCancelled(boolean), include disbursed payments
and whose individual Total Disbursement Amounts are positive.'
* getIncrementalDisbursementAmount
- Returns: BigDecimal
- Function: No description available'
* getLateDisbursement
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for disbursements with the given Late Disbursement
Indicator.'
* getPpDisbursementAmount
- Returns: BigDecimal
- Function: No description available'
* getLatestPayments
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data with only latest payments.'
* getLockingPp
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for (non-)payment period-locking disbursements'
* getPpAppliedAmount
- Returns: BigDecimal
- Function: No description available'
* getPwd
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for disbursements with the given PWD Indicator.'
* getSeqNos
- Returns: Set<Integer>
- Function: No description available'
* getStatuses
- Returns: ISet<String>
- Function: No description available'
* getTotalDisbursementAmount
- Returns: BigDecimal
- Function: No description available'
* getWithSeqNo
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for a given sequence number.'
* getWithSeqNos
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for the given sequence numbers.'
* getWithStatus
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for the given disbursement status.'
* getWithStatuses
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for given disbursement statuses.'
* hasBeenCancelled
- Returns: boolean
- Function: No description available'
* isDisbursed
- Returns: boolean
- Function: No description available'
* isLateDisbursement
- Returns: boolean
- Function: No description available'
* isLockingPp
- Returns: boolean
- Function: No description available'
* isPwd
- Returns: boolean
- Function: No description available'
* getPpMaxDisbursementAmount
- Returns: BigDecimal
- Function: No description available'
* getPpTotalDecreasedAmount
- Returns: BigDecimal
- Function: No description available'
dloan
Purpose: Information related to Direct Loans.
Type: IDloanAPI
Available Methods:
* getLifetimeLimit
- Returns: int
- Function: No description available'
* getRemainingNsldsLimit
- Returns: int
- Function: No description available'
enrollment
Purpose: Information for the enrollment this script is being evaluated for.
Type: IEnrollmentAPI
Available Methods:
* belongsTo
- Returns: boolean
- Function: Checks if this enrollment belongs to a student.'
* getBindings
- Returns: IEnrollmentBindingsAPI
- Function: Gets bindings for this enrollment.'
* getEnrollmentStatus
- Returns: String
- Function: Gets the enrollment status.'
* getProgramStartDate
- Returns: LocalDate
- Function: Gets the program start date.'
* isEffective
- Returns: boolean
- Function: Checks if this enrollment is effective.'
enrollments
Purpose: Enrollments information.
Type: IEnrollmentsAPI
Available Methods:
* getHigherPriorityThan
- Returns: List<IEnrollmentAPI>
- Function: Gets a list of enrollments with higher priority than a given enrollment.'
* getOtherThan
- Returns: List<IEnrollmentAPI>
- Function: Gets a list of the enrollments that are different from this enrollment, no
matter the priority.'
financialPlan
Purpose: Information about the student's current financial plan.
Type: IFinancialPlanAPI
Available Methods:
* filterCommonLineUniqueIds
- Returns: T
- Function: Creates a narrowed-down, independent collection of data for CommonLine Unique Ids passing a given predicate.'
* getAcyCoa
- Returns: int
- Function: Deprecated.
Consider using the coa binding (ICoaAPI).'
* getAcyUnpackagedAmount
- Returns: BigDecimal
- Function: Deprecated.
Consider using the coa binding (ICoaAPI).'
* getCarryOn
- Returns: BigDecimal
- Function: No description available'
* getCommonLineUniqueIds
- Returns: Set<ICommonLineUniqueId>
- Function: No description available'
* getEnrollmentIntensities
- Returns: ISet<BigDecimal>
- Function: No description available'
* getEnrollmentStatuses
- Returns: ISet<String>
- Function: No description available'
* getFundStatuses
- Returns: ISet<String>
- Function: No description available'
* getMaxAmount
- Returns: BigDecimal
- Function: No description available'
* getProratedLimit
- Returns: BigDecimal
- Function: No description available'
* getVersion
- Returns: int
- Function: Gets the package version.'
* getWithCommonLineUniqueId
- Returns: T
- Function: Creates a narrowed-down, independent collection of data for the given CommonLine Unique Ids.'
* getWithCommonLineUniqueIds
- Returns: T
- Function: Creates a narrowed-down, independent collection of data for the given CommonLine Unique Ids.'
* isEligible
- Returns: boolean
- Function: No description available'
* isIsirUsedForCalculation
- Returns: boolean
- Function: Identifies ISIRs used while calculating this Financial Plan.'
* isProrated
- Returns: boolean
- Function: No description available'
* isUnmatchedCommonLineLoan
- Returns: boolean
- Function: Checks if a given CommonLine Loan (probably coming from the commonLineLoan binding) has not been matched
yet in the fund collection.'
fundAcceptance
Purpose: Provides access to all Fund Acceptance information for the student.
Type: IFundAcceptanceAPI
Available Methods:
* getWithStatuses
- Returns: T
- Function: Creates a narrowed-down, independent collection of fund acceptance data for given fund acceptance statuses.'
* filterNullableStatuses
- Returns: T
- Function: Creates a narrowed-down, independent collection of fund acceptance data for fund acceptance statuses passing a given predicate.'
* filterStatuses
- Returns: T
- Function: Creates a narrowed-down, independent collection of fund acceptance data for fund acceptance statuses passing a given predicate.'
* getNullableStatuses
- Returns: ISet<String>
- Function: No description available'
* getStatuses
- Returns: ISet<String>
- Function: No description available'
* getValidatedAcceptedAmount
- Returns: BigDecimal
- Function: No description available'
* getWithStatus
- Returns: T
- Function: Creates a narrowed-down, independent collection of fund acceptance data for the given fund acceptance status.'
fundCodeConfig
Purpose: Provides information about fund code configuration.
Type: IFundCodeConfigAPI
Available Methods:
* getFundCodesByPriority
- Returns: List<String>
- Function: No description available'
* getHigherPriorityFundCodes
- Returns: List<String>
- Function: No description available'
helper
Purpose: Helper interface with utility methods.
Type: IGroovyScriptHelper
Available Methods:
* filterCourses
- Returns: ICourseFilterAPI
- Function: No description available'
* getAwardYear
- Returns: IAwardYearHelperAPI
- Function: Returns Award Year-specific helper.'
* getIntegerFromSignedIsirNumber
- Returns: Integer
- Function: Parses a number represented in ISIR format to Integer.'
* getIsirDate
- Returns: Date
- Function: No description available'
* getIsirDateFormatStr
- Returns: String
- Function: No description available'
* getSignedIsirNumberFromInteger
- Returns: String
- Function: No description available'
* isirRecordsDifferForListedFields
- Returns: boolean
- Function: No description available'
* mapRanges
- Returns: IRangeMapStarterAPI
- Function: No description available'
* newAwardYearPeriod
- Returns: IAwardYearAPI
- Function: Returns the Award Year having a given end year.'
* newPeriod
- Returns: IPeriod
- Function: Returns the IPeriod for one single day.'
* newPeriod
- Returns: IPeriod
- Function: Returns a IPeriod given its start and end dates.'
isirCorrection
Purpose: ISIR correction information.
Type: IIsirCorrectionRecordAPI
Available Methods:
* getAwardYearIndicator
- Returns: String
- Function: No description available'
* getEdeFederalSchoolCode
- Returns: String
- Function: No description available'
* getEmailAddress
- Returns: String
- Function: No description available'
* getFieldCorrections
- Returns: Map<String,String>
- Function: No description available'
* getHighSchoolName
- Returns: String
- Function: No description available'
* getOriginalId
- Returns: String
- Function: No description available'
* getParentsEmailAddress
- Returns: String
- Function: No description available'
* getStudentSsn
- Returns: ISocialSecurityNumber
- Function: No description available'
* getTransactionDataSourceTypeCode
- Returns: String
- Function: No description available'
* getTransactionNumber
- Returns: String
- Function: No description available'
* getTransactionReceiptDate
- Returns: LocalDate
- Function: No description available'
* hasIsirCorrection
- Returns: boolean
- Function: No description available'
isirRecord
Purpose: The ISIR being evaluated.
Type: IIsirRecordAPI
Available Methods:
* getActiveIsirForAwardYear
- Returns: Boolean
- Function: Gets the active ISIR for award year status.'
* getAllFields
- Returns: @NonNull Map<IsirField<?>,IIsirFieldValue<?>>
- Function: Retrieves all field values (WARNING: can only be used with 2025+ ISIRs).'
* getAssumptions
- Returns: List<IAssumptionAPI>
- Function: Get the assumptions.'
* getAwardYear
- Returns: String
- Function: Gets the award year.'
* getCommentCodes
- Returns: List<ICommentCodeAPI>
- Function: Get the comment codes.'
* getCpsTransNumber
- Returns: String
- Function: Gets the CPS transaction number.'
* getCurrentSsn
- Returns: ISocialSecurityNumber
- Function: Gets the student's current SSN.'
* getDiscrepancies
- Returns: List<IDiscrepancyAPI>
- Function: Get the discrepancies.'
* getField
- Returns: <T> @NonNull IIsirFieldValue<T>
- Function: Retrieves the value of a given field (WARNING: can only be used with 2025+ ISIRs).'
* getFirstName
- Returns: String
- Function: Gets the student's first name.'
* getHighlightFlags
- Returns: List<IHighlightFlagAPI>
- Function: Get the highlight flags.'
* getIsirFieldValue
- Returns: String
- Function: Gets the value of an ISIR field (WARNING: This method can only be used up to 2024 award year).'
* getIsirFieldValueOrNull
- Returns: String
- Function: Gets the value of an ISIR field (WARNING: This method can only be used up to 2024 award year).'
* getIsirFieldValues
- Returns: Map<String,String>
- Function: Get a map containing all ISIR fields (WARNING: This method can only be used up to 2024 award year).'
* getIsirIdOriginalNameId
- Returns: String
- Function: Gets the student's original name ID.'
* getIsirIdSsn
- Returns: ISocialSecurityNumber
- Function: Gets the student's original SSN.'
* getIsirIdYearIndicator
- Returns: String
- Function: Gets the ISIR's year indicator.'
* getIsirStatus
- Returns: String
- Function: Gets the ISIR status.'
* getIsirStatusBeforeCorrection
- Returns: String
- Function: When ISIR Status is Corrected returns the previous ISIR Status.'
* getLastName
- Returns: String
- Function: Gets the student's last name.'
* getMiddleName
- Returns: String
- Function: Gets the student's middle name.'
* getReceivedDate
- Returns: Date
- Function: Gets the system receipt date of the ISIR.'
* getRejectCodes
- Returns: List<IRejectCodeAPI>
- Function: Get the reject codes.'
* getSchoolCode1
- Returns: String
- Function: Gets the school code 1.'
* getSchoolCode10
- Returns: String
- Function: Gets the school code 10.'
* getSchoolCode2
- Returns: String
- Function: Gets the school code 2.'
* getSchoolCode3
- Returns: String
- Function: Gets the school code 3.'
* getSchoolCode4
- Returns: String
- Function: Gets the school code 4.'
* getSchoolCode5
- Returns: String
- Function: Gets the school code 5.'
* getSchoolCode6
- Returns: String
- Function: Gets the school code 6.'
* getSchoolCode7
- Returns: String
- Function: Gets the school code 7.'
* getSchoolCode8
- Returns: String
- Function: Gets the school code 8.'
* getSchoolCode9
- Returns: String
- Function: Gets the school code 9.'
* isCompatibleWithPackaging
- Returns: boolean
- Function: Checks if this ISIR satisfies minimal acceptance criteria for automatic Financial
Aid Package Calculation.'
* isUnverified
- Returns: boolean
- Function: Gets the ISIR verification status.'
log
Purpose: Provides logging capability to scripts.
Type: IScriptLoggerAPI
Available Methods:
* debug
- Returns: boolean
- Function: No description available'
* debug
- Returns: void
- Function: No description available'
* error
- Returns: void
- Function: No description available'
* info
- Returns: boolean
- Function: No description available'
* info
- Returns: void
- Function: No description available'
* warn
- Returns: void
- Function: No description available'
nsldsGuarantorServicers
Purpose: List of all guarantors and servicers.
Type: IGuarantorServicersListAPI
Available Methods:
* getAwardYear
- Returns: String
- Function: No description available'
* getGuarantorServicerName
- Returns: String
- Function: No description available'
previousFinancialPlan
Purpose: Provides access to previous financial plans.
Type: IPreviousFinancialPlanAPI
Available Methods:
* effectiveAt
- Returns: T
- Function: Gets a previous financial plan that was effective at a given time.'
* effectiveAt
- Returns: T
- Function: Gets a previous financial plan that was effective on a given local date.'
* effectiveAt
- Returns: T
- Function: Gets a previous financial plan that was effective at a given local time.'
* withVersion
- Returns: T
- Function: Gets a previous financial plan with a given version.'
program
Purpose: Information about the student's primary program.
Type: IProgramAPI
Available Methods:
* exists
- Returns: boolean
- Function: No description available'
* getAcademicCompletionDate
- Returns: LocalDate
- Function: No description available'
* getAcademicStatus
- Returns: String
- Function: No description available'
* getAdmissionStatus
- Returns: String
- Function: No description available'
* getAssessedUnits
- Returns: BigDecimal
- Function: No description available'
* getAydUnits
- Returns: BigDecimal
- Function: No description available'
* getAydWeeks
- Returns: Integer
- Function: No description available'
* getCharges
- Returns: List<IChargeAPI>
- Function: No description available'
* getCode
- Returns: String
- Function: No description available'
* getCollege
- Returns: String
- Function: No description available'
* getCourses
- Returns: ICoursesAPI
- Function: No description available'
* getDateOfDetermination
- Returns: LocalDate
- Function: No description available'
* getDescription
- Returns: String
- Function: No description available'
* getEnrollmentStatus
- Returns: String
- Function: No description available'
* getEnrollmentStatusEffectiveDate
- Returns: LocalDate
- Function: No description available'
* getEnrollmentStatusSubType
- Returns: String
- Function: No description available'
* getExternalProgramId
- Returns: String
- Function: No description available'
* getFaEligibleIndicator
- Returns: Boolean
- Function: No description available'
* getGpa
- Returns: BigDecimal
- Function: No description available'
* getManualSapEvaluationIndicator
- Returns: Boolean
- Function: No description available'
* getModality
- Returns: String
- Function: No description available'
* getOfficialLastDateOfAttendance
- Returns: LocalDate
- Function: No description available'
* getOpeId
- Returns: String
- Function: No description available'
* getPrimaryLocation
- Returns: String
- Function: No description available'
* getProgramLengthMeasurementUnit
- Returns: String
- Function: No description available'
* getProgramLengthNumberOfUnits
- Returns: int
- Function: No description available'
* getProgramMeasurementUnit
- Returns: String
- Function: No description available'
* getProgramType
- Returns: String
- Function: No description available'
* getRequiredGpa
- Returns: BigDecimal
- Function: No description available'
* getSpecialPrograms
- Returns: String
- Function: No description available'
* getStartDate
- Returns: LocalDate
- Function: No description available'
* getStudentResources
- Returns: List<IStudentResourceAPI>
- Function: No description available'
* getTermAcys
- Returns: ISimpleNumberedPeriods<ITermAcademicYearAPI>
- Function: No description available'
* getTerms
- Returns: ITermPeriodsAPI
- Function: No description available'
* getTermType
- Returns: String
- Function: No description available'
* getTotalAcceptedTransferUnits
- Returns: BigDecimal
- Function: No description available'
* getTotalRequiredUnits
- Returns: BigDecimal
- Function: No description available'
* isBbayTerm
- Returns: boolean
- Function: No description available'
* isGraduate
- Returns: boolean
- Function: No description available'
* isProgramTerm
- Returns: boolean
- Function: No description available'
* isTerm
- Returns: boolean
- Function: No description available'
* isUndergraduate
- Returns: boolean
- Function: No description available'
r2t4
Purpose: Provides access to all R2T4 information for the student.
Type: IR2t4API
Available Methods:
* filterOldas
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for OLDAs passing a given predicate.'
* filterProcessStatuses
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for process statuses passing a given predicate.'
* getGrossAmountDecreased
- Returns: BigDecimal
- Function: No description available'
* getNetAmountDecreased
- Returns: BigDecimal
- Function: No description available'
* getNullableOldas
- Returns: ISet<LocalDate>
- Function: No description available'
* getNullableProcessStatuses
- Returns: ISet<String>
- Function: No description available'
* getOldas
- Returns: ISet<LocalDate>
- Function: No description available'
* getProcessStatuses
- Returns: ISet<String>
- Function: No description available'
* getWithLatest
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for the given isLatest status.'
* getWithOlda
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for the given process OLDA.'
* getWithOldas
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for given process OLDAs.'
* getWithProcessStatus
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for the given process status.'
* getWithProcessStatuses
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for given process statuses.'
* isEligibleForPWD
- Returns: boolean
- Function: No description available'
* isLatest
- Returns: boolean
- Function: Checks if at least one R2T4 process in the collection is the latest.'
receivedDocuments
Purpose: Active documents for the student for the award year of the ISIR being evaluated.
Type: IReceivedDocs
Available Methods:
* get
- Returns: IReceivedDoc
- Function: Return doc for specified code and Student, if it exists.'
* get
- Returns: IReceivedDoc
- Function: Return doc for specified code and owners, if it exists.'
* get
- Returns: IReceivedDoc
- Function: Return doc for specified code, owners, and subtype, if it exists.'
* getDocumentsForDocCode
- Returns: List<IReceivedDoc>
- Function: Return list with doc or doc subtpyes for specified code and Student, if it exists.'
* getDocumentsForDocCode
- Returns: List<IReceivedDoc>
- Function: Return list with doc or doc subtpyes for specified code and owners, if it exists.'
* getValidDocCodes
- Returns: Set<String>
- Function: No description available'
* hasDoc
- Returns: boolean
- Function: No description available'
* hasDoc
- Returns: boolean
- Function: Return true if doc exists with the right code and owners'
* noDocs
- Returns: boolean
- Function: No description available'
* put
- Returns: void
- Function: No description available'
* put
- Returns: void
- Function: No description available'
recentFahRecords
Purpose: All Financial Aid History records associated with the student.
Type: IRecentFahRecordsAPI
Available Methods:
* hasRecordsOfType
- Returns: boolean
- Function: No description available'
* overlapsLoan
- Returns: boolean
- Function: No description available'
* getRecords
- Returns: List<IFahRecordAPI>
- Function: No description available'
* getRecordsByType
- Returns: List<IFahRecordAPI>
- Function: No description available'
student
Purpose: Student information.
Type: IFasStudentAPI
Available Methods:
* getAddressState
- Returns: String
- Function: Gets the federal state in the student's main mailing address, as a two-letter acronym.'
* getBahIndicator
- Returns: Boolean
- Function: Gets the school employee dependet status.'
* getCampusCode
- Returns: String
- Function: Gets the campus code.'
* getCompletionDate
- Returns: Date
- Function: Gets the completion date.'
* getDateOfBirth
- Returns: ISecureLocalDate
- Function: Gets the date of birth.'
* getDependencyStatus
- Returns: String
- Function: Gets the dependency status.'
* getDeterminationDate
- Returns: Date
- Function: Gets the determination date.'
* getDocuments
- Returns: Map<String,IReceivedDoc>
- Function: Gets the student's documents, indexed by document code.'
* getEmail
- Returns: String
- Function: Gets the e-mail.'
* getEnrollmentStatus
- Returns: String
- Function: Gets the enrollment status.'
* getExternalStudentId
- Returns: String
- Function: Gets the external student ID (unique per student).'
* getFinancialAidRequested
- Returns: Boolean
- Function: Gets the financial aid request status.'
* getFirstName
- Returns: String
- Function: Gets the first name.'
* getGender
- Returns: String
- Function: Gets the gender.'
* getHighSchoolEquivalency
- Returns: Boolean
- Function: Gets the high school equivalency status.'
* getLastName
- Returns: String
- Function: Gets the last name.'
* getMiddleName
- Returns: String
- Function: Gets the middle name.'
* getPersonId
- Returns: Long
- Function: Gets the person ID.'
* getProgramType
- Returns: String
- Function: Gets the program type.'
* getRecentFinancialAidHistoryRecords
- Returns: IRecentFahRecordsAPI
- Function: Gets the recent financial aid records.'
* getSchoolCode
- Returns: String
- Function: Gets the school code.'
* getSchoolEmployee
- Returns: Boolean
- Function: Gets the school employee status.'
* getSchoolEmployeeDependent
- Returns: Boolean
- Function: Gets the school employee dependent status.'
* getSsn
- Returns: ISocialSecurityNumber
- Function: Gets the SSN.'
* getStudentId
- Returns: Long
- Function: Gets the student ID (or enrollment ID, unique per enrollment).'
studentFollowUp
Purpose: Binding that can be populated by the script to flag the highlight as "Student Follow-Up".
Type: IStudentFollowUp
Available Methods:
* getStudentFollowUpReason
- Returns: String
- Function: No description available'
* isStudentFollowUpRequired
- Returns: boolean
- Function: No description available'
* setStudentFollowUpReason
- Returns: void
- Function: No description available'
* setStudentFollowUpRequired
- Returns: void
- Function: No description available'
throwsDocumentIsFaUnacceptableExceptionParam
Purpose: This binding can be set within a Groovy script to control whether a subsequent call to
IReceivedDoc.isAcceptable() or IReceivedDocDocumentAPI.isAcceptable() triggers an exception or not when a
document is unnaceptable. The default value is true.
Type: Boolean
Available Methods:
No methods available
IMPORTANT REQUIREMENTS:
1. Each method usage must be explained in its full context
2. All data transformations must be detailed
3. Error handling for each method must be specified
4. Business implications of method results must be clear
## COMMENTING REQUIREMENTS
Your task is to create COMPREHENSIVE, CONTEXTUAL comments for this Oracle SFP Platform script.
FILE-LEVEL DOCUMENTATION REQUIREMENTS:
1. File Header (Using /** ... */ format):
MUST INCLUDE (15+ lines):
- Script name and version
- Primary purpose and functionality
- All key calculations performed
- Critical business rules enforced
- Boundary conditions and limits
- Financial aid implications
- Required inputs and expected outputs
- Error handling approach
- Integration points
- Compliance considerations
SECTION-LEVEL DOCUMENTATION REQUIREMENTS:
Every logical code section must include detailed comments for ALL three aspects:
1. CONDITIONALS Section:
Format:
// CONDITIONALS:
// Check [number]: [specific condition being evaluated]
// Variables: [list of variables and methods involved]
// Purpose: [detailed business reason for this check]
// Logic:
// - [step-by-step breakdown of the condition]
// - [how variables are used]
// - [any transformations applied]
// Success Path: [what happens when condition is true]
// Failure Path: [what happens when condition is false]
// Business Rules: [specific rules being enforced]
// Error Handling: [how errors are managed]
// Financial Impact: [effect on aid calculations]
// If N/A, explicitly state: "CONDITIONALS: N/A"
2. BOUNDARY CHECKS Section:
Format:
// BOUNDARY CHECKS:
// Check [number]: [specific limit being enforced]
// Source: [where boundary values come from]
// Variables: [variables and methods involved]
// Validation:
// - [how boundaries are checked]
// - [validation method details]
// Edge Cases:
// - [specific edge cases handled]
// - [how each is managed]
// Error Handling: [boundary violation management]
// Impact: [effect of boundary violations]
// If N/A, explicitly state: "BOUNDARY CHECKS: N/A"
3. ARITHMETIC Section:
Format:
// ARITHMETIC:
// Operation [number]: [name of calculation]
// Formula: [complete mathematical expression]
// Variables:
// - [each variable and its purpose]
// - [data types and units]
// Steps:
// 1. [detailed step-by-step breakdown]
// 2. [intermediate calculations]
// 3. [transformations applied]
// Business Context: [why this calculation is needed]
// Result: [meaning of the output]
// Financial Impact: [effect on aid calculations]
// Limitations: [any mathematical constraints]
// If N/A, explicitly state: "ARITHMETIC: N/A"
ADDITIONAL REQUIREMENTS:
1. Complex Logic Sections:
- Must break down multi-step operations
- Explain interactions between components
- Detail data flow and transformations
2. Error Handling:
- Document all error conditions
- Explain recovery procedures
- Detail logging and reporting
3. API Interactions:
- Document all platform method calls
- Explain data transformations
- Detail error handling
4. Financial Aid Impact:
- Explain effects on aid calculations
- Document regulatory compliance
- Detail student eligibility impact
Example Section With All Aspects:
// CONDITIONALS:
// Check 1: Payment Period Status Validation
// Variables: getLoanPaymentPeriods(), period.getStatus(), period.getStartDate()
// Purpose: Ensure only valid, active payment periods are included
// Logic:
// - Retrieve all loan payment periods
// - Filter based on status (!= "CANCELED")
// - Compare start dates with reference date
// Success Path: Period included in calculations
// Failure Path: Period excluded from totals
// Business Rules: Canceled periods must not affect grade level
// Error Handling: Invalid periods logged and skipped
// Financial Impact: Affects available loan amounts
//
// BOUNDARY CHECKS:
// Check 1: Payment Period Date Validation
// Source: Academic Calendar Configuration
// Variables: period.getStartDate(), referenceDate
// Validation:
// - Compare period start date with reference date
// - Ensure dates are not null
// Edge Cases:
// - Null dates are excluded
// - Future dates are filtered
// Error Handling: Invalid dates logged and skipped
// Impact: Prevents future periods from affecting current calculation
//
// ARITHMETIC:
// Operation 1: Payment Period Units Summation
// Formula: sum(validPeriods.map(period => period.getUnits()))
// Variables:
// - period.getUnits(): Decimal, represents credit hours
// - validPeriods: Array of filtered payment periods
// Steps:
// 1. Filter valid payment periods
// 2. Extract units from each period
// 3. Sum all units using reduce
// Business Context: Calculate total completed units for grade level
// Result: Total units affecting grade level
// Financial Impact: Determines loan eligibility amounts
// Limitations: Cannot exceed program maximum units
## Groovy Script for Analysis
```groovy
N/A - There is no baseline config. This is a placeholder.
```
## COMMENT GENERATION REQUIREMENTS:
1. Add comprehensive comments following the exact format specified
2. Every logical section must include all three aspects:
- CONDITIONALS
- BOUNDARY CHECKS
- ARITHMETIC
3. Mark any non-applicable aspect as "N/A" explicitly
4. Ensure line-by-line explanation of complex logic
5. Detail all financial aid implications
DO NOT modify the code itself. Add comments only.
REMEMBER:
- Comments must be exhaustively detailed
- Every logical section needs all three aspects
- Financial aid impact must be clear
- Business rules must be explicit
Return ONLY the fully commented Groovy script. No other text or explanations.
ISIR Reject Code Auto Code Clearing
Name: isirRejectCodeAutoCodeClearingLogic
Purpose: Determine if an ISIR reject code is auto cleared.
In Baseline Config: No
Return Type: Boolean
# Oracle SFP Platform Script Documentation Generator
Your task is to create comprehensive, contextual comments for this Oracle SFP Platform Groovy script.
CRITICAL REQUIREMENTS:
1. Follow exact comment format specified
2. Include all three aspects for every section
3. Mark non-applicable aspects as "N/A"
4. Provide business context and financial impact
5. Detail all API interactions and data flows
## Script Purpose and Context
The script being analyzed is: "isirRejectCodeAutoCodeClearingLogic"
Primary Function: Determine if an ISIR reject code is auto cleared.
Expected Output Type: Boolean
This script is part of the Oracle SFP Platform ecosystem and interacts with platform-specific APIs and data structures.
You must analyze this script in the context of financial aid processing workflows, ensuring compliance with:
1. Federal financial aid regulations
2. Academic progress requirements
3. Institutional policies
4. Program-specific rules
Your analysis must detail:
1. All conditional logic and its business implications
2. All boundary checks and their validation purposes
3. All calculations and their financial aid impact
4. Error handling and data validation
5. Integration points with platform APIs
## Available Platform Methods and Integrations
The script has access to the following Oracle SFP Platform integrations.
When commenting the code, you MUST explain how these specific methods and bindings are being used:
AGGREGATES_PERKINS_FLAGS
Purpose: Constant value for the FahRecordType enum.
Type: FahRecordType
Available Methods:
No methods available
GRANT_PAYMENT
Purpose: Constant value for the FahRecordType enum.
Type: FahRecordType
Available Methods:
No methods available
LOAN_DETAIL
Purpose: Constant value for the FahRecordType enum.
Type: FahRecordType
Available Methods:
No methods available
OVERPAYMENT
Purpose: Constant value for the FahRecordType enum.
Type: FahRecordType
Available Methods:
No methods available
allAwardYearReceivedDocuments
Purpose: Provides access to all documents received for the student.
Type: IMultiAwardYearReceivedDocsAPI
Available Methods:
* forAwardYear
- Returns: IReceivedDocs
- Function: Returns the collection of active received documents (IReceivedDocs) for an award year on an on-demand,
cached basis.'
coa
Purpose: Provides access to all Cost of Attendance information for the student.
Type: ICoaAPI
Available Methods:
* getActiveCoa
- Returns: int
- Function: Gets the active cost of attendance.'
* getActualCoa
- Returns: int
- Function: Gets the actual cost of attendance.'
* getComponents
- Returns: ICoaComponentsAPI
- Function: Gets the COA components.'
* getPellCoa
- Returns: int
- Function: Gets the PELL cost of attendance.'
* getTotalCoa
- Returns: int
- Function: Gets the total cost of attendance.'
* in
- Returns: ICoaAPI
- Function: Filters by term.'
* in
- Returns: ICoaAPI
- Function: Filters by academic year.'
* inAcademicYear
- Returns: ICoaAPI
- Function: Filters by academic year.'
* inTerm
- Returns: ICoaAPI
- Function: Filters by term.'
disbursements
Purpose: Information about all student disbursements.
Type: IDisbursementsAPI
Available Methods:
* filterSeqNos
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for sequence numbers passing a given predicate.'
* filterStatuses
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for disbursement statuses passing a given predicate.'
* getCancelled
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for disbursements that have been cancelled.'
* getDisbursed
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for disbursements
that have not been cancelled (see getCancelled(boolean), include disbursed payments
and whose individual Total Disbursement Amounts are positive.'
* getIncrementalDisbursementAmount
- Returns: BigDecimal
- Function: No description available'
* getLateDisbursement
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for disbursements with the given Late Disbursement
Indicator.'
* getPpDisbursementAmount
- Returns: BigDecimal
- Function: No description available'
* getLatestPayments
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data with only latest payments.'
* getLockingPp
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for (non-)payment period-locking disbursements'
* getPpAppliedAmount
- Returns: BigDecimal
- Function: No description available'
* getPwd
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for disbursements with the given PWD Indicator.'
* getSeqNos
- Returns: Set<Integer>
- Function: No description available'
* getStatuses
- Returns: ISet<String>
- Function: No description available'
* getTotalDisbursementAmount
- Returns: BigDecimal
- Function: No description available'
* getWithSeqNo
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for a given sequence number.'
* getWithSeqNos
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for the given sequence numbers.'
* getWithStatus
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for the given disbursement status.'
* getWithStatuses
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for given disbursement statuses.'
* hasBeenCancelled
- Returns: boolean
- Function: No description available'
* isDisbursed
- Returns: boolean
- Function: No description available'
* isLateDisbursement
- Returns: boolean
- Function: No description available'
* isLockingPp
- Returns: boolean
- Function: No description available'
* isPwd
- Returns: boolean
- Function: No description available'
* getPpMaxDisbursementAmount
- Returns: BigDecimal
- Function: No description available'
* getPpTotalDecreasedAmount
- Returns: BigDecimal
- Function: No description available'
dloan
Purpose: Information related to Direct Loans.
Type: IDloanAPI
Available Methods:
* getLifetimeLimit
- Returns: int
- Function: No description available'
* getRemainingNsldsLimit
- Returns: int
- Function: No description available'
enrollment
Purpose: Information for the enrollment this script is being evaluated for.
Type: IEnrollmentAPI
Available Methods:
* belongsTo
- Returns: boolean
- Function: Checks if this enrollment belongs to a student.'
* getBindings
- Returns: IEnrollmentBindingsAPI
- Function: Gets bindings for this enrollment.'
* getEnrollmentStatus
- Returns: String
- Function: Gets the enrollment status.'
* getProgramStartDate
- Returns: LocalDate
- Function: Gets the program start date.'
* isEffective
- Returns: boolean
- Function: Checks if this enrollment is effective.'
enrollments
Purpose: Enrollments information.
Type: IEnrollmentsAPI
Available Methods:
* getHigherPriorityThan
- Returns: List<IEnrollmentAPI>
- Function: Gets a list of enrollments with higher priority than a given enrollment.'
* getOtherThan
- Returns: List<IEnrollmentAPI>
- Function: Gets a list of the enrollments that are different from this enrollment, no
matter the priority.'
financialPlan
Purpose: Information about the student's current financial plan.
Type: IFinancialPlanAPI
Available Methods:
* filterCommonLineUniqueIds
- Returns: T
- Function: Creates a narrowed-down, independent collection of data for CommonLine Unique Ids passing a given predicate.'
* getAcyCoa
- Returns: int
- Function: Deprecated.
Consider using the coa binding (ICoaAPI).'
* getAcyUnpackagedAmount
- Returns: BigDecimal
- Function: Deprecated.
Consider using the coa binding (ICoaAPI).'
* getCarryOn
- Returns: BigDecimal
- Function: No description available'
* getCommonLineUniqueIds
- Returns: Set<ICommonLineUniqueId>
- Function: No description available'
* getEnrollmentIntensities
- Returns: ISet<BigDecimal>
- Function: No description available'
* getEnrollmentStatuses
- Returns: ISet<String>
- Function: No description available'
* getFundStatuses
- Returns: ISet<String>
- Function: No description available'
* getMaxAmount
- Returns: BigDecimal
- Function: No description available'
* getProratedLimit
- Returns: BigDecimal
- Function: No description available'
* getVersion
- Returns: int
- Function: Gets the package version.'
* getWithCommonLineUniqueId
- Returns: T
- Function: Creates a narrowed-down, independent collection of data for the given CommonLine Unique Ids.'
* getWithCommonLineUniqueIds
- Returns: T
- Function: Creates a narrowed-down, independent collection of data for the given CommonLine Unique Ids.'
* isEligible
- Returns: boolean
- Function: No description available'
* isIsirUsedForCalculation
- Returns: boolean
- Function: Identifies ISIRs used while calculating this Financial Plan.'
* isProrated
- Returns: boolean
- Function: No description available'
* isUnmatchedCommonLineLoan
- Returns: boolean
- Function: Checks if a given CommonLine Loan (probably coming from the commonLineLoan binding) has not been matched
yet in the fund collection.'
fundAcceptance
Purpose: Provides access to all Fund Acceptance information for the student.
Type: IFundAcceptanceAPI
Available Methods:
* getWithStatuses
- Returns: T
- Function: Creates a narrowed-down, independent collection of fund acceptance data for given fund acceptance statuses.'
* filterNullableStatuses
- Returns: T
- Function: Creates a narrowed-down, independent collection of fund acceptance data for fund acceptance statuses passing a given predicate.'
* filterStatuses
- Returns: T
- Function: Creates a narrowed-down, independent collection of fund acceptance data for fund acceptance statuses passing a given predicate.'
* getNullableStatuses
- Returns: ISet<String>
- Function: No description available'
* getStatuses
- Returns: ISet<String>
- Function: No description available'
* getValidatedAcceptedAmount
- Returns: BigDecimal
- Function: No description available'
* getWithStatus
- Returns: T
- Function: Creates a narrowed-down, independent collection of fund acceptance data for the given fund acceptance status.'
fundCodeConfig
Purpose: Provides information about fund code configuration.
Type: IFundCodeConfigAPI
Available Methods:
* getFundCodesByPriority
- Returns: List<String>
- Function: No description available'
* getHigherPriorityFundCodes
- Returns: List<String>
- Function: No description available'
helper
Purpose: Helper interface with utility methods.
Type: IGroovyScriptHelper
Available Methods:
* filterCourses
- Returns: ICourseFilterAPI
- Function: No description available'
* getAwardYear
- Returns: IAwardYearHelperAPI
- Function: Returns Award Year-specific helper.'
* getIntegerFromSignedIsirNumber
- Returns: Integer
- Function: Parses a number represented in ISIR format to Integer.'
* getIsirDate
- Returns: Date
- Function: No description available'
* getIsirDateFormatStr
- Returns: String
- Function: No description available'
* getSignedIsirNumberFromInteger
- Returns: String
- Function: No description available'
* isirRecordsDifferForListedFields
- Returns: boolean
- Function: No description available'
* mapRanges
- Returns: IRangeMapStarterAPI
- Function: No description available'
* newAwardYearPeriod
- Returns: IAwardYearAPI
- Function: Returns the Award Year having a given end year.'
* newPeriod
- Returns: IPeriod
- Function: Returns the IPeriod for one single day.'
* newPeriod
- Returns: IPeriod
- Function: Returns a IPeriod given its start and end dates.'
isirCorrection
Purpose: ISIR correction information.
Type: IIsirCorrectionRecordAPI
Available Methods:
* getAwardYearIndicator
- Returns: String
- Function: No description available'
* getEdeFederalSchoolCode
- Returns: String
- Function: No description available'
* getEmailAddress
- Returns: String
- Function: No description available'
* getFieldCorrections
- Returns: Map<String,String>
- Function: No description available'
* getHighSchoolName
- Returns: String
- Function: No description available'
* getOriginalId
- Returns: String
- Function: No description available'
* getParentsEmailAddress
- Returns: String
- Function: No description available'
* getStudentSsn
- Returns: ISocialSecurityNumber
- Function: No description available'
* getTransactionDataSourceTypeCode
- Returns: String
- Function: No description available'
* getTransactionNumber
- Returns: String
- Function: No description available'
* getTransactionReceiptDate
- Returns: LocalDate
- Function: No description available'
* hasIsirCorrection
- Returns: boolean
- Function: No description available'
isirRecord
Purpose: The ISIR being evaluated.
Type: IIsirRecordAPI
Available Methods:
* getActiveIsirForAwardYear
- Returns: Boolean
- Function: Gets the active ISIR for award year status.'
* getAllFields
- Returns: @NonNull Map<IsirField<?>,IIsirFieldValue<?>>
- Function: Retrieves all field values (WARNING: can only be used with 2025+ ISIRs).'
* getAssumptions
- Returns: List<IAssumptionAPI>
- Function: Get the assumptions.'
* getAwardYear
- Returns: String
- Function: Gets the award year.'
* getCommentCodes
- Returns: List<ICommentCodeAPI>
- Function: Get the comment codes.'
* getCpsTransNumber
- Returns: String
- Function: Gets the CPS transaction number.'
* getCurrentSsn
- Returns: ISocialSecurityNumber
- Function: Gets the student's current SSN.'
* getDiscrepancies
- Returns: List<IDiscrepancyAPI>
- Function: Get the discrepancies.'
* getField
- Returns: <T> @NonNull IIsirFieldValue<T>
- Function: Retrieves the value of a given field (WARNING: can only be used with 2025+ ISIRs).'
* getFirstName
- Returns: String
- Function: Gets the student's first name.'
* getHighlightFlags
- Returns: List<IHighlightFlagAPI>
- Function: Get the highlight flags.'
* getIsirFieldValue
- Returns: String
- Function: Gets the value of an ISIR field (WARNING: This method can only be used up to 2024 award year).'
* getIsirFieldValueOrNull
- Returns: String
- Function: Gets the value of an ISIR field (WARNING: This method can only be used up to 2024 award year).'
* getIsirFieldValues
- Returns: Map<String,String>
- Function: Get a map containing all ISIR fields (WARNING: This method can only be used up to 2024 award year).'
* getIsirIdOriginalNameId
- Returns: String
- Function: Gets the student's original name ID.'
* getIsirIdSsn
- Returns: ISocialSecurityNumber
- Function: Gets the student's original SSN.'
* getIsirIdYearIndicator
- Returns: String
- Function: Gets the ISIR's year indicator.'
* getIsirStatus
- Returns: String
- Function: Gets the ISIR status.'
* getIsirStatusBeforeCorrection
- Returns: String
- Function: When ISIR Status is Corrected returns the previous ISIR Status.'
* getLastName
- Returns: String
- Function: Gets the student's last name.'
* getMiddleName
- Returns: String
- Function: Gets the student's middle name.'
* getReceivedDate
- Returns: Date
- Function: Gets the system receipt date of the ISIR.'
* getRejectCodes
- Returns: List<IRejectCodeAPI>
- Function: Get the reject codes.'
* getSchoolCode1
- Returns: String
- Function: Gets the school code 1.'
* getSchoolCode10
- Returns: String
- Function: Gets the school code 10.'
* getSchoolCode2
- Returns: String
- Function: Gets the school code 2.'
* getSchoolCode3
- Returns: String
- Function: Gets the school code 3.'
* getSchoolCode4
- Returns: String
- Function: Gets the school code 4.'
* getSchoolCode5
- Returns: String
- Function: Gets the school code 5.'
* getSchoolCode6
- Returns: String
- Function: Gets the school code 6.'
* getSchoolCode7
- Returns: String
- Function: Gets the school code 7.'
* getSchoolCode8
- Returns: String
- Function: Gets the school code 8.'
* getSchoolCode9
- Returns: String
- Function: Gets the school code 9.'
* isCompatibleWithPackaging
- Returns: boolean
- Function: Checks if this ISIR satisfies minimal acceptance criteria for automatic Financial
Aid Package Calculation.'
* isUnverified
- Returns: boolean
- Function: Gets the ISIR verification status.'
log
Purpose: Provides logging capability to scripts.
Type: IScriptLoggerAPI
Available Methods:
* debug
- Returns: boolean
- Function: No description available'
* debug
- Returns: void
- Function: No description available'
* error
- Returns: void
- Function: No description available'
* info
- Returns: boolean
- Function: No description available'
* info
- Returns: void
- Function: No description available'
* warn
- Returns: void
- Function: No description available'
nsldsGuarantorServicers
Purpose: List of all guarantors and servicers.
Type: IGuarantorServicersListAPI
Available Methods:
* getAwardYear
- Returns: String
- Function: No description available'
* getGuarantorServicerName
- Returns: String
- Function: No description available'
previousFinancialPlan
Purpose: Provides access to previous financial plans.
Type: IPreviousFinancialPlanAPI
Available Methods:
* effectiveAt
- Returns: T
- Function: Gets a previous financial plan that was effective at a given time.'
* effectiveAt
- Returns: T
- Function: Gets a previous financial plan that was effective on a given local date.'
* effectiveAt
- Returns: T
- Function: Gets a previous financial plan that was effective at a given local time.'
* withVersion
- Returns: T
- Function: Gets a previous financial plan with a given version.'
program
Purpose: Information about the student's primary program.
Type: IProgramAPI
Available Methods:
* exists
- Returns: boolean
- Function: No description available'
* getAcademicCompletionDate
- Returns: LocalDate
- Function: No description available'
* getAcademicStatus
- Returns: String
- Function: No description available'
* getAdmissionStatus
- Returns: String
- Function: No description available'
* getAssessedUnits
- Returns: BigDecimal
- Function: No description available'
* getAydUnits
- Returns: BigDecimal
- Function: No description available'
* getAydWeeks
- Returns: Integer
- Function: No description available'
* getCharges
- Returns: List<IChargeAPI>
- Function: No description available'
* getCode
- Returns: String
- Function: No description available'
* getCollege
- Returns: String
- Function: No description available'
* getCourses
- Returns: ICoursesAPI
- Function: No description available'
* getDateOfDetermination
- Returns: LocalDate
- Function: No description available'
* getDescription
- Returns: String
- Function: No description available'
* getEnrollmentStatus
- Returns: String
- Function: No description available'
* getEnrollmentStatusEffectiveDate
- Returns: LocalDate
- Function: No description available'
* getEnrollmentStatusSubType
- Returns: String
- Function: No description available'
* getExternalProgramId
- Returns: String
- Function: No description available'
* getFaEligibleIndicator
- Returns: Boolean
- Function: No description available'
* getGpa
- Returns: BigDecimal
- Function: No description available'
* getManualSapEvaluationIndicator
- Returns: Boolean
- Function: No description available'
* getModality
- Returns: String
- Function: No description available'
* getOfficialLastDateOfAttendance
- Returns: LocalDate
- Function: No description available'
* getOpeId
- Returns: String
- Function: No description available'
* getPrimaryLocation
- Returns: String
- Function: No description available'
* getProgramLengthMeasurementUnit
- Returns: String
- Function: No description available'
* getProgramLengthNumberOfUnits
- Returns: int
- Function: No description available'
* getProgramMeasurementUnit
- Returns: String
- Function: No description available'
* getProgramType
- Returns: String
- Function: No description available'
* getRequiredGpa
- Returns: BigDecimal
- Function: No description available'
* getSpecialPrograms
- Returns: String
- Function: No description available'
* getStartDate
- Returns: LocalDate
- Function: No description available'
* getStudentResources
- Returns: List<IStudentResourceAPI>
- Function: No description available'
* getTermAcys
- Returns: ISimpleNumberedPeriods<ITermAcademicYearAPI>
- Function: No description available'
* getTerms
- Returns: ITermPeriodsAPI
- Function: No description available'
* getTermType
- Returns: String
- Function: No description available'
* getTotalAcceptedTransferUnits
- Returns: BigDecimal
- Function: No description available'
* getTotalRequiredUnits
- Returns: BigDecimal
- Function: No description available'
* isBbayTerm
- Returns: boolean
- Function: No description available'
* isGraduate
- Returns: boolean
- Function: No description available'
* isProgramTerm
- Returns: boolean
- Function: No description available'
* isTerm
- Returns: boolean
- Function: No description available'
* isUndergraduate
- Returns: boolean
- Function: No description available'
r2t4
Purpose: Provides access to all R2T4 information for the student.
Type: IR2t4API
Available Methods:
* filterOldas
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for OLDAs passing a given predicate.'
* filterProcessStatuses
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for process statuses passing a given predicate.'
* getGrossAmountDecreased
- Returns: BigDecimal
- Function: No description available'
* getNetAmountDecreased
- Returns: BigDecimal
- Function: No description available'
* getNullableOldas
- Returns: ISet<LocalDate>
- Function: No description available'
* getNullableProcessStatuses
- Returns: ISet<String>
- Function: No description available'
* getOldas
- Returns: ISet<LocalDate>
- Function: No description available'
* getProcessStatuses
- Returns: ISet<String>
- Function: No description available'
* getWithLatest
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for the given isLatest status.'
* getWithOlda
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for the given process OLDA.'
* getWithOldas
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for given process OLDAs.'
* getWithProcessStatus
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for the given process status.'
* getWithProcessStatuses
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for given process statuses.'
* isEligibleForPWD
- Returns: boolean
- Function: No description available'
* isLatest
- Returns: boolean
- Function: Checks if at least one R2T4 process in the collection is the latest.'
receivedDocuments
Purpose: Active documents for the student for the award year of the ISIR being evaluated.
Type: IReceivedDocs
Available Methods:
* get
- Returns: IReceivedDoc
- Function: Return doc for specified code and Student, if it exists.'
* get
- Returns: IReceivedDoc
- Function: Return doc for specified code and owners, if it exists.'
* get
- Returns: IReceivedDoc
- Function: Return doc for specified code, owners, and subtype, if it exists.'
* getDocumentsForDocCode
- Returns: List<IReceivedDoc>
- Function: Return list with doc or doc subtpyes for specified code and Student, if it exists.'
* getDocumentsForDocCode
- Returns: List<IReceivedDoc>
- Function: Return list with doc or doc subtpyes for specified code and owners, if it exists.'
* getValidDocCodes
- Returns: Set<String>
- Function: No description available'
* hasDoc
- Returns: boolean
- Function: No description available'
* hasDoc
- Returns: boolean
- Function: Return true if doc exists with the right code and owners'
* noDocs
- Returns: boolean
- Function: No description available'
* put
- Returns: void
- Function: No description available'
* put
- Returns: void
- Function: No description available'
recentFahRecords
Purpose: All Financial Aid History records associated with the student.
Type: IRecentFahRecordsAPI
Available Methods:
* hasRecordsOfType
- Returns: boolean
- Function: No description available'
* overlapsLoan
- Returns: boolean
- Function: No description available'
* getRecords
- Returns: List<IFahRecordAPI>
- Function: No description available'
* getRecordsByType
- Returns: List<IFahRecordAPI>
- Function: No description available'
student
Purpose: Student information.
Type: IFasStudentAPI
Available Methods:
* getAddressState
- Returns: String
- Function: Gets the federal state in the student's main mailing address, as a two-letter acronym.'
* getBahIndicator
- Returns: Boolean
- Function: Gets the school employee dependet status.'
* getCampusCode
- Returns: String
- Function: Gets the campus code.'
* getCompletionDate
- Returns: Date
- Function: Gets the completion date.'
* getDateOfBirth
- Returns: ISecureLocalDate
- Function: Gets the date of birth.'
* getDependencyStatus
- Returns: String
- Function: Gets the dependency status.'
* getDeterminationDate
- Returns: Date
- Function: Gets the determination date.'
* getDocuments
- Returns: Map<String,IReceivedDoc>
- Function: Gets the student's documents, indexed by document code.'
* getEmail
- Returns: String
- Function: Gets the e-mail.'
* getEnrollmentStatus
- Returns: String
- Function: Gets the enrollment status.'
* getExternalStudentId
- Returns: String
- Function: Gets the external student ID (unique per student).'
* getFinancialAidRequested
- Returns: Boolean
- Function: Gets the financial aid request status.'
* getFirstName
- Returns: String
- Function: Gets the first name.'
* getGender
- Returns: String
- Function: Gets the gender.'
* getHighSchoolEquivalency
- Returns: Boolean
- Function: Gets the high school equivalency status.'
* getLastName
- Returns: String
- Function: Gets the last name.'
* getMiddleName
- Returns: String
- Function: Gets the middle name.'
* getPersonId
- Returns: Long
- Function: Gets the person ID.'
* getProgramType
- Returns: String
- Function: Gets the program type.'
* getRecentFinancialAidHistoryRecords
- Returns: IRecentFahRecordsAPI
- Function: Gets the recent financial aid records.'
* getSchoolCode
- Returns: String
- Function: Gets the school code.'
* getSchoolEmployee
- Returns: Boolean
- Function: Gets the school employee status.'
* getSchoolEmployeeDependent
- Returns: Boolean
- Function: Gets the school employee dependent status.'
* getSsn
- Returns: ISocialSecurityNumber
- Function: Gets the SSN.'
* getStudentId
- Returns: Long
- Function: Gets the student ID (or enrollment ID, unique per enrollment).'
studentFollowUp
Purpose: Binding that can be populated by the script to flag the reject code as "Student Follow-Up".
Type: IStudentFollowUp
Available Methods:
* getStudentFollowUpReason
- Returns: String
- Function: No description available'
* isStudentFollowUpRequired
- Returns: boolean
- Function: No description available'
* setStudentFollowUpReason
- Returns: void
- Function: No description available'
* setStudentFollowUpRequired
- Returns: void
- Function: No description available'
throwsDocumentIsFaUnacceptableExceptionParam
Purpose: This binding can be set within a Groovy script to control whether a subsequent call to
IReceivedDoc.isAcceptable() or IReceivedDocDocumentAPI.isAcceptable() triggers an exception or not when a
document is unnaceptable. The default value is true.
Type: Boolean
Available Methods:
No methods available
IMPORTANT REQUIREMENTS:
1. Each method usage must be explained in its full context
2. All data transformations must be detailed
3. Error handling for each method must be specified
4. Business implications of method results must be clear
## COMMENTING REQUIREMENTS
Your task is to create COMPREHENSIVE, CONTEXTUAL comments for this Oracle SFP Platform script.
FILE-LEVEL DOCUMENTATION REQUIREMENTS:
1. File Header (Using /** ... */ format):
MUST INCLUDE (15+ lines):
- Script name and version
- Primary purpose and functionality
- All key calculations performed
- Critical business rules enforced
- Boundary conditions and limits
- Financial aid implications
- Required inputs and expected outputs
- Error handling approach
- Integration points
- Compliance considerations
SECTION-LEVEL DOCUMENTATION REQUIREMENTS:
Every logical code section must include detailed comments for ALL three aspects:
1. CONDITIONALS Section:
Format:
// CONDITIONALS:
// Check [number]: [specific condition being evaluated]
// Variables: [list of variables and methods involved]
// Purpose: [detailed business reason for this check]
// Logic:
// - [step-by-step breakdown of the condition]
// - [how variables are used]
// - [any transformations applied]
// Success Path: [what happens when condition is true]
// Failure Path: [what happens when condition is false]
// Business Rules: [specific rules being enforced]
// Error Handling: [how errors are managed]
// Financial Impact: [effect on aid calculations]
// If N/A, explicitly state: "CONDITIONALS: N/A"
2. BOUNDARY CHECKS Section:
Format:
// BOUNDARY CHECKS:
// Check [number]: [specific limit being enforced]
// Source: [where boundary values come from]
// Variables: [variables and methods involved]
// Validation:
// - [how boundaries are checked]
// - [validation method details]
// Edge Cases:
// - [specific edge cases handled]
// - [how each is managed]
// Error Handling: [boundary violation management]
// Impact: [effect of boundary violations]
// If N/A, explicitly state: "BOUNDARY CHECKS: N/A"
3. ARITHMETIC Section:
Format:
// ARITHMETIC:
// Operation [number]: [name of calculation]
// Formula: [complete mathematical expression]
// Variables:
// - [each variable and its purpose]
// - [data types and units]
// Steps:
// 1. [detailed step-by-step breakdown]
// 2. [intermediate calculations]
// 3. [transformations applied]
// Business Context: [why this calculation is needed]
// Result: [meaning of the output]
// Financial Impact: [effect on aid calculations]
// Limitations: [any mathematical constraints]
// If N/A, explicitly state: "ARITHMETIC: N/A"
ADDITIONAL REQUIREMENTS:
1. Complex Logic Sections:
- Must break down multi-step operations
- Explain interactions between components
- Detail data flow and transformations
2. Error Handling:
- Document all error conditions
- Explain recovery procedures
- Detail logging and reporting
3. API Interactions:
- Document all platform method calls
- Explain data transformations
- Detail error handling
4. Financial Aid Impact:
- Explain effects on aid calculations
- Document regulatory compliance
- Detail student eligibility impact
Example Section With All Aspects:
// CONDITIONALS:
// Check 1: Payment Period Status Validation
// Variables: getLoanPaymentPeriods(), period.getStatus(), period.getStartDate()
// Purpose: Ensure only valid, active payment periods are included
// Logic:
// - Retrieve all loan payment periods
// - Filter based on status (!= "CANCELED")
// - Compare start dates with reference date
// Success Path: Period included in calculations
// Failure Path: Period excluded from totals
// Business Rules: Canceled periods must not affect grade level
// Error Handling: Invalid periods logged and skipped
// Financial Impact: Affects available loan amounts
//
// BOUNDARY CHECKS:
// Check 1: Payment Period Date Validation
// Source: Academic Calendar Configuration
// Variables: period.getStartDate(), referenceDate
// Validation:
// - Compare period start date with reference date
// - Ensure dates are not null
// Edge Cases:
// - Null dates are excluded
// - Future dates are filtered
// Error Handling: Invalid dates logged and skipped
// Impact: Prevents future periods from affecting current calculation
//
// ARITHMETIC:
// Operation 1: Payment Period Units Summation
// Formula: sum(validPeriods.map(period => period.getUnits()))
// Variables:
// - period.getUnits(): Decimal, represents credit hours
// - validPeriods: Array of filtered payment periods
// Steps:
// 1. Filter valid payment periods
// 2. Extract units from each period
// 3. Sum all units using reduce
// Business Context: Calculate total completed units for grade level
// Result: Total units affecting grade level
// Financial Impact: Determines loan eligibility amounts
// Limitations: Cannot exceed program maximum units
## Groovy Script for Analysis
```groovy
N/A - There is no baseline config. This is a placeholder.
```
## COMMENT GENERATION REQUIREMENTS:
1. Add comprehensive comments following the exact format specified
2. Every logical section must include all three aspects:
- CONDITIONALS
- BOUNDARY CHECKS
- ARITHMETIC
3. Mark any non-applicable aspect as "N/A" explicitly
4. Ensure line-by-line explanation of complex logic
5. Detail all financial aid implications
DO NOT modify the code itself. Add comments only.
REMEMBER:
- Comments must be exhaustively detailed
- Every logical section needs all three aspects
- Financial aid impact must be clear
- Business rules must be explicit
Return ONLY the fully commented Groovy script. No other text or explanations.
ISIR Verification Clearance Rules
Name: isirVerificationClearanceRules
Purpose: Determine if an ISIR verification is auto cleared.
In Baseline Config: Yes
Return Type: Boolean
# Oracle SFP Platform Script Documentation Generator
Your task is to create comprehensive, contextual comments for this Oracle SFP Platform Groovy script.
CRITICAL REQUIREMENTS:
1. Follow exact comment format specified
2. Include all three aspects for every section
3. Mark non-applicable aspects as "N/A"
4. Provide business context and financial impact
5. Detail all API interactions and data flows
## Script Purpose and Context
The script being analyzed is: "isirVerificationClearanceRules"
Primary Function: Determine if an ISIR verification is auto cleared.
Expected Output Type: Boolean
This script is part of the Oracle SFP Platform ecosystem and interacts with platform-specific APIs and data structures.
You must analyze this script in the context of financial aid processing workflows, ensuring compliance with:
1. Federal financial aid regulations
2. Academic progress requirements
3. Institutional policies
4. Program-specific rules
Your analysis must detail:
1. All conditional logic and its business implications
2. All boundary checks and their validation purposes
3. All calculations and their financial aid impact
4. Error handling and data validation
5. Integration points with platform APIs
## Available Platform Methods and Integrations
The script has access to the following Oracle SFP Platform integrations.
When commenting the code, you MUST explain how these specific methods and bindings are being used:
AGGREGATES_PERKINS_FLAGS
Purpose: Constant value for the FahRecordType enum.
Type: FahRecordType
Available Methods:
No methods available
GRANT_PAYMENT
Purpose: Constant value for the FahRecordType enum.
Type: FahRecordType
Available Methods:
No methods available
LOAN_DETAIL
Purpose: Constant value for the FahRecordType enum.
Type: FahRecordType
Available Methods:
No methods available
OVERPAYMENT
Purpose: Constant value for the FahRecordType enum.
Type: FahRecordType
Available Methods:
No methods available
allAwardYearReceivedDocuments
Purpose: Provides access to all documents received for the student.
Type: IMultiAwardYearReceivedDocsAPI
Available Methods:
* forAwardYear
- Returns: IReceivedDocs
- Function: Returns the collection of active received documents (IReceivedDocs) for an award year on an on-demand,
cached basis.'
coa
Purpose: Provides access to all Cost of Attendance information for the student.
Type: ICoaAPI
Available Methods:
* getActiveCoa
- Returns: int
- Function: Gets the active cost of attendance.'
* getActualCoa
- Returns: int
- Function: Gets the actual cost of attendance.'
* getComponents
- Returns: ICoaComponentsAPI
- Function: Gets the COA components.'
* getPellCoa
- Returns: int
- Function: Gets the PELL cost of attendance.'
* getTotalCoa
- Returns: int
- Function: Gets the total cost of attendance.'
* in
- Returns: ICoaAPI
- Function: Filters by term.'
* in
- Returns: ICoaAPI
- Function: Filters by academic year.'
* inAcademicYear
- Returns: ICoaAPI
- Function: Filters by academic year.'
* inTerm
- Returns: ICoaAPI
- Function: Filters by term.'
disbursements
Purpose: Information about all student disbursements.
Type: IDisbursementsAPI
Available Methods:
* filterSeqNos
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for sequence numbers passing a given predicate.'
* filterStatuses
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for disbursement statuses passing a given predicate.'
* getCancelled
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for disbursements that have been cancelled.'
* getDisbursed
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for disbursements
that have not been cancelled (see getCancelled(boolean), include disbursed payments
and whose individual Total Disbursement Amounts are positive.'
* getIncrementalDisbursementAmount
- Returns: BigDecimal
- Function: No description available'
* getLateDisbursement
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for disbursements with the given Late Disbursement
Indicator.'
* getPpDisbursementAmount
- Returns: BigDecimal
- Function: No description available'
* getLatestPayments
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data with only latest payments.'
* getLockingPp
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for (non-)payment period-locking disbursements'
* getPpAppliedAmount
- Returns: BigDecimal
- Function: No description available'
* getPwd
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for disbursements with the given PWD Indicator.'
* getSeqNos
- Returns: Set<Integer>
- Function: No description available'
* getStatuses
- Returns: ISet<String>
- Function: No description available'
* getTotalDisbursementAmount
- Returns: BigDecimal
- Function: No description available'
* getWithSeqNo
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for a given sequence number.'
* getWithSeqNos
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for the given sequence numbers.'
* getWithStatus
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for the given disbursement status.'
* getWithStatuses
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for given disbursement statuses.'
* hasBeenCancelled
- Returns: boolean
- Function: No description available'
* isDisbursed
- Returns: boolean
- Function: No description available'
* isLateDisbursement
- Returns: boolean
- Function: No description available'
* isLockingPp
- Returns: boolean
- Function: No description available'
* isPwd
- Returns: boolean
- Function: No description available'
* getPpMaxDisbursementAmount
- Returns: BigDecimal
- Function: No description available'
* getPpTotalDecreasedAmount
- Returns: BigDecimal
- Function: No description available'
dloan
Purpose: Information related to Direct Loans.
Type: IDloanAPI
Available Methods:
* getLifetimeLimit
- Returns: int
- Function: No description available'
* getRemainingNsldsLimit
- Returns: int
- Function: No description available'
enrollment
Purpose: Information for the enrollment this script is being evaluated for.
Type: IEnrollmentAPI
Available Methods:
* belongsTo
- Returns: boolean
- Function: Checks if this enrollment belongs to a student.'
* getBindings
- Returns: IEnrollmentBindingsAPI
- Function: Gets bindings for this enrollment.'
* getEnrollmentStatus
- Returns: String
- Function: Gets the enrollment status.'
* getProgramStartDate
- Returns: LocalDate
- Function: Gets the program start date.'
* isEffective
- Returns: boolean
- Function: Checks if this enrollment is effective.'
enrollments
Purpose: Enrollments information.
Type: IEnrollmentsAPI
Available Methods:
* getHigherPriorityThan
- Returns: List<IEnrollmentAPI>
- Function: Gets a list of enrollments with higher priority than a given enrollment.'
* getOtherThan
- Returns: List<IEnrollmentAPI>
- Function: Gets a list of the enrollments that are different from this enrollment, no
matter the priority.'
financialPlan
Purpose: Information about the student's current financial plan.
Type: IFinancialPlanAPI
Available Methods:
* filterCommonLineUniqueIds
- Returns: T
- Function: Creates a narrowed-down, independent collection of data for CommonLine Unique Ids passing a given predicate.'
* getAcyCoa
- Returns: int
- Function: Deprecated.
Consider using the coa binding (ICoaAPI).'
* getAcyUnpackagedAmount
- Returns: BigDecimal
- Function: Deprecated.
Consider using the coa binding (ICoaAPI).'
* getCarryOn
- Returns: BigDecimal
- Function: No description available'
* getCommonLineUniqueIds
- Returns: Set<ICommonLineUniqueId>
- Function: No description available'
* getEnrollmentIntensities
- Returns: ISet<BigDecimal>
- Function: No description available'
* getEnrollmentStatuses
- Returns: ISet<String>
- Function: No description available'
* getFundStatuses
- Returns: ISet<String>
- Function: No description available'
* getMaxAmount
- Returns: BigDecimal
- Function: No description available'
* getProratedLimit
- Returns: BigDecimal
- Function: No description available'
* getVersion
- Returns: int
- Function: Gets the package version.'
* getWithCommonLineUniqueId
- Returns: T
- Function: Creates a narrowed-down, independent collection of data for the given CommonLine Unique Ids.'
* getWithCommonLineUniqueIds
- Returns: T
- Function: Creates a narrowed-down, independent collection of data for the given CommonLine Unique Ids.'
* isEligible
- Returns: boolean
- Function: No description available'
* isIsirUsedForCalculation
- Returns: boolean
- Function: Identifies ISIRs used while calculating this Financial Plan.'
* isProrated
- Returns: boolean
- Function: No description available'
* isUnmatchedCommonLineLoan
- Returns: boolean
- Function: Checks if a given CommonLine Loan (probably coming from the commonLineLoan binding) has not been matched
yet in the fund collection.'
fundAcceptance
Purpose: Provides access to all Fund Acceptance information for the student.
Type: IFundAcceptanceAPI
Available Methods:
* getWithStatuses
- Returns: T
- Function: Creates a narrowed-down, independent collection of fund acceptance data for given fund acceptance statuses.'
* filterNullableStatuses
- Returns: T
- Function: Creates a narrowed-down, independent collection of fund acceptance data for fund acceptance statuses passing a given predicate.'
* filterStatuses
- Returns: T
- Function: Creates a narrowed-down, independent collection of fund acceptance data for fund acceptance statuses passing a given predicate.'
* getNullableStatuses
- Returns: ISet<String>
- Function: No description available'
* getStatuses
- Returns: ISet<String>
- Function: No description available'
* getValidatedAcceptedAmount
- Returns: BigDecimal
- Function: No description available'
* getWithStatus
- Returns: T
- Function: Creates a narrowed-down, independent collection of fund acceptance data for the given fund acceptance status.'
fundCodeConfig
Purpose: Provides information about fund code configuration.
Type: IFundCodeConfigAPI
Available Methods:
* getFundCodesByPriority
- Returns: List<String>
- Function: No description available'
* getHigherPriorityFundCodes
- Returns: List<String>
- Function: No description available'
helper
Purpose: Helper interface with utility methods.
Type: IGroovyScriptHelper
Available Methods:
* filterCourses
- Returns: ICourseFilterAPI
- Function: No description available'
* getAwardYear
- Returns: IAwardYearHelperAPI
- Function: Returns Award Year-specific helper.'
* getIntegerFromSignedIsirNumber
- Returns: Integer
- Function: Parses a number represented in ISIR format to Integer.'
* getIsirDate
- Returns: Date
- Function: No description available'
* getIsirDateFormatStr
- Returns: String
- Function: No description available'
* getSignedIsirNumberFromInteger
- Returns: String
- Function: No description available'
* isirRecordsDifferForListedFields
- Returns: boolean
- Function: No description available'
* mapRanges
- Returns: IRangeMapStarterAPI
- Function: No description available'
* newAwardYearPeriod
- Returns: IAwardYearAPI
- Function: Returns the Award Year having a given end year.'
* newPeriod
- Returns: IPeriod
- Function: Returns the IPeriod for one single day.'
* newPeriod
- Returns: IPeriod
- Function: Returns a IPeriod given its start and end dates.'
isirRecord
Purpose: The ISIR being evaluated.
Type: IIsirRecordAPI
Available Methods:
* getActiveIsirForAwardYear
- Returns: Boolean
- Function: Gets the active ISIR for award year status.'
* getAllFields
- Returns: @NonNull Map<IsirField<?>,IIsirFieldValue<?>>
- Function: Retrieves all field values (WARNING: can only be used with 2025+ ISIRs).'
* getAssumptions
- Returns: List<IAssumptionAPI>
- Function: Get the assumptions.'
* getAwardYear
- Returns: String
- Function: Gets the award year.'
* getCommentCodes
- Returns: List<ICommentCodeAPI>
- Function: Get the comment codes.'
* getCpsTransNumber
- Returns: String
- Function: Gets the CPS transaction number.'
* getCurrentSsn
- Returns: ISocialSecurityNumber
- Function: Gets the student's current SSN.'
* getDiscrepancies
- Returns: List<IDiscrepancyAPI>
- Function: Get the discrepancies.'
* getField
- Returns: <T> @NonNull IIsirFieldValue<T>
- Function: Retrieves the value of a given field (WARNING: can only be used with 2025+ ISIRs).'
* getFirstName
- Returns: String
- Function: Gets the student's first name.'
* getHighlightFlags
- Returns: List<IHighlightFlagAPI>
- Function: Get the highlight flags.'
* getIsirFieldValue
- Returns: String
- Function: Gets the value of an ISIR field (WARNING: This method can only be used up to 2024 award year).'
* getIsirFieldValueOrNull
- Returns: String
- Function: Gets the value of an ISIR field (WARNING: This method can only be used up to 2024 award year).'
* getIsirFieldValues
- Returns: Map<String,String>
- Function: Get a map containing all ISIR fields (WARNING: This method can only be used up to 2024 award year).'
* getIsirIdOriginalNameId
- Returns: String
- Function: Gets the student's original name ID.'
* getIsirIdSsn
- Returns: ISocialSecurityNumber
- Function: Gets the student's original SSN.'
* getIsirIdYearIndicator
- Returns: String
- Function: Gets the ISIR's year indicator.'
* getIsirStatus
- Returns: String
- Function: Gets the ISIR status.'
* getIsirStatusBeforeCorrection
- Returns: String
- Function: When ISIR Status is Corrected returns the previous ISIR Status.'
* getLastName
- Returns: String
- Function: Gets the student's last name.'
* getMiddleName
- Returns: String
- Function: Gets the student's middle name.'
* getReceivedDate
- Returns: Date
- Function: Gets the system receipt date of the ISIR.'
* getRejectCodes
- Returns: List<IRejectCodeAPI>
- Function: Get the reject codes.'
* getSchoolCode1
- Returns: String
- Function: Gets the school code 1.'
* getSchoolCode10
- Returns: String
- Function: Gets the school code 10.'
* getSchoolCode2
- Returns: String
- Function: Gets the school code 2.'
* getSchoolCode3
- Returns: String
- Function: Gets the school code 3.'
* getSchoolCode4
- Returns: String
- Function: Gets the school code 4.'
* getSchoolCode5
- Returns: String
- Function: Gets the school code 5.'
* getSchoolCode6
- Returns: String
- Function: Gets the school code 6.'
* getSchoolCode7
- Returns: String
- Function: Gets the school code 7.'
* getSchoolCode8
- Returns: String
- Function: Gets the school code 8.'
* getSchoolCode9
- Returns: String
- Function: Gets the school code 9.'
* isCompatibleWithPackaging
- Returns: boolean
- Function: Checks if this ISIR satisfies minimal acceptance criteria for automatic Financial
Aid Package Calculation.'
* isUnverified
- Returns: boolean
- Function: Gets the ISIR verification status.'
receivedDocuments
Purpose: Active documents for the student for the award year of the ISIR being evaluated.
Type: IReceivedDocs
Available Methods:
* get
- Returns: IReceivedDoc
- Function: Return doc for specified code and Student, if it exists.'
* get
- Returns: IReceivedDoc
- Function: Return doc for specified code and owners, if it exists.'
* get
- Returns: IReceivedDoc
- Function: Return doc for specified code, owners, and subtype, if it exists.'
* getDocumentsForDocCode
- Returns: List<IReceivedDoc>
- Function: Return list with doc or doc subtpyes for specified code and Student, if it exists.'
* getDocumentsForDocCode
- Returns: List<IReceivedDoc>
- Function: Return list with doc or doc subtpyes for specified code and owners, if it exists.'
* getValidDocCodes
- Returns: Set<String>
- Function: No description available'
* hasDoc
- Returns: boolean
- Function: No description available'
* hasDoc
- Returns: boolean
- Function: Return true if doc exists with the right code and owners'
* noDocs
- Returns: boolean
- Function: No description available'
* put
- Returns: void
- Function: No description available'
* put
- Returns: void
- Function: No description available'
recentFahRecords
Purpose: All Financial Aid History records associated with the student.
Type: IRecentFahRecordsAPI
Available Methods:
* hasRecordsOfType
- Returns: boolean
- Function: No description available'
* overlapsLoan
- Returns: boolean
- Function: No description available'
* getRecords
- Returns: List<IFahRecordAPI>
- Function: No description available'
* getRecordsByType
- Returns: List<IFahRecordAPI>
- Function: No description available'
student
Purpose: Student information.
Type: IFasStudentAPI
Available Methods:
* getAddressState
- Returns: String
- Function: Gets the federal state in the student's main mailing address, as a two-letter acronym.'
* getBahIndicator
- Returns: Boolean
- Function: Gets the school employee dependet status.'
* getCampusCode
- Returns: String
- Function: Gets the campus code.'
* getCompletionDate
- Returns: Date
- Function: Gets the completion date.'
* getDateOfBirth
- Returns: ISecureLocalDate
- Function: Gets the date of birth.'
* getDependencyStatus
- Returns: String
- Function: Gets the dependency status.'
* getDeterminationDate
- Returns: Date
- Function: Gets the determination date.'
* getDocuments
- Returns: Map<String,IReceivedDoc>
- Function: Gets the student's documents, indexed by document code.'
* getEmail
- Returns: String
- Function: Gets the e-mail.'
* getEnrollmentStatus
- Returns: String
- Function: Gets the enrollment status.'
* getExternalStudentId
- Returns: String
- Function: Gets the external student ID (unique per student).'
* getFinancialAidRequested
- Returns: Boolean
- Function: Gets the financial aid request status.'
* getFirstName
- Returns: String
- Function: Gets the first name.'
* getGender
- Returns: String
- Function: Gets the gender.'
* getHighSchoolEquivalency
- Returns: Boolean
- Function: Gets the high school equivalency status.'
* getLastName
- Returns: String
- Function: Gets the last name.'
* getMiddleName
- Returns: String
- Function: Gets the middle name.'
* getPersonId
- Returns: Long
- Function: Gets the person ID.'
* getProgramType
- Returns: String
- Function: Gets the program type.'
* getRecentFinancialAidHistoryRecords
- Returns: IRecentFahRecordsAPI
- Function: Gets the recent financial aid records.'
* getSchoolCode
- Returns: String
- Function: Gets the school code.'
* getSchoolEmployee
- Returns: Boolean
- Function: Gets the school employee status.'
* getSchoolEmployeeDependent
- Returns: Boolean
- Function: Gets the school employee dependent status.'
* getSsn
- Returns: ISocialSecurityNumber
- Function: Gets the SSN.'
* getStudentId
- Returns: Long
- Function: Gets the student ID (or enrollment ID, unique per enrollment).'
throwsDocumentIsFaUnacceptableExceptionParam
Purpose: This binding can be set within a Groovy script to control whether a subsequent call to
IReceivedDoc.isAcceptable() or IReceivedDocDocumentAPI.isAcceptable() triggers an exception or not when a
document is unnaceptable. The default value is true.
Type: Boolean
Available Methods:
No methods available
log
Purpose: Provides logging capability to scripts.
Type: IScriptLoggerAPI
Available Methods:
* debug
- Returns: boolean
- Function: No description available'
* debug
- Returns: void
- Function: No description available'
* error
- Returns: void
- Function: No description available'
* info
- Returns: boolean
- Function: No description available'
* info
- Returns: void
- Function: No description available'
* warn
- Returns: void
- Function: No description available'
nsldsGuarantorServicers
Purpose: List of all guarantors and servicers.
Type: IGuarantorServicersListAPI
Available Methods:
* getAwardYear
- Returns: String
- Function: No description available'
* getGuarantorServicerName
- Returns: String
- Function: No description available'
previousFinancialPlan
Purpose: Provides access to previous financial plans.
Type: IPreviousFinancialPlanAPI
Available Methods:
* effectiveAt
- Returns: T
- Function: Gets a previous financial plan that was effective at a given time.'
* effectiveAt
- Returns: T
- Function: Gets a previous financial plan that was effective on a given local date.'
* effectiveAt
- Returns: T
- Function: Gets a previous financial plan that was effective at a given local time.'
* withVersion
- Returns: T
- Function: Gets a previous financial plan with a given version.'
program
Purpose: Information about the student's primary program.
Type: IProgramAPI
Available Methods:
* exists
- Returns: boolean
- Function: No description available'
* getAcademicCompletionDate
- Returns: LocalDate
- Function: No description available'
* getAcademicStatus
- Returns: String
- Function: No description available'
* getAdmissionStatus
- Returns: String
- Function: No description available'
* getAssessedUnits
- Returns: BigDecimal
- Function: No description available'
* getAydUnits
- Returns: BigDecimal
- Function: No description available'
* getAydWeeks
- Returns: Integer
- Function: No description available'
* getCharges
- Returns: List<IChargeAPI>
- Function: No description available'
* getCode
- Returns: String
- Function: No description available'
* getCollege
- Returns: String
- Function: No description available'
* getCourses
- Returns: ICoursesAPI
- Function: No description available'
* getDateOfDetermination
- Returns: LocalDate
- Function: No description available'
* getDescription
- Returns: String
- Function: No description available'
* getEnrollmentStatus
- Returns: String
- Function: No description available'
* getEnrollmentStatusEffectiveDate
- Returns: LocalDate
- Function: No description available'
* getEnrollmentStatusSubType
- Returns: String
- Function: No description available'
* getExternalProgramId
- Returns: String
- Function: No description available'
* getFaEligibleIndicator
- Returns: Boolean
- Function: No description available'
* getGpa
- Returns: BigDecimal
- Function: No description available'
* getManualSapEvaluationIndicator
- Returns: Boolean
- Function: No description available'
* getModality
- Returns: String
- Function: No description available'
* getOfficialLastDateOfAttendance
- Returns: LocalDate
- Function: No description available'
* getOpeId
- Returns: String
- Function: No description available'
* getPrimaryLocation
- Returns: String
- Function: No description available'
* getProgramLengthMeasurementUnit
- Returns: String
- Function: No description available'
* getProgramLengthNumberOfUnits
- Returns: int
- Function: No description available'
* getProgramMeasurementUnit
- Returns: String
- Function: No description available'
* getProgramType
- Returns: String
- Function: No description available'
* getRequiredGpa
- Returns: BigDecimal
- Function: No description available'
* getSpecialPrograms
- Returns: String
- Function: No description available'
* getStartDate
- Returns: LocalDate
- Function: No description available'
* getStudentResources
- Returns: List<IStudentResourceAPI>
- Function: No description available'
* getTermAcys
- Returns: ISimpleNumberedPeriods<ITermAcademicYearAPI>
- Function: No description available'
* getTerms
- Returns: ITermPeriodsAPI
- Function: No description available'
* getTermType
- Returns: String
- Function: No description available'
* getTotalAcceptedTransferUnits
- Returns: BigDecimal
- Function: No description available'
* getTotalRequiredUnits
- Returns: BigDecimal
- Function: No description available'
* isBbayTerm
- Returns: boolean
- Function: No description available'
* isGraduate
- Returns: boolean
- Function: No description available'
* isProgramTerm
- Returns: boolean
- Function: No description available'
* isTerm
- Returns: boolean
- Function: No description available'
* isUndergraduate
- Returns: boolean
- Function: No description available'
r2t4
Purpose: Provides access to all R2T4 information for the student.
Type: IR2t4API
Available Methods:
* filterOldas
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for OLDAs passing a given predicate.'
* filterProcessStatuses
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for process statuses passing a given predicate.'
* getGrossAmountDecreased
- Returns: BigDecimal
- Function: No description available'
* getNetAmountDecreased
- Returns: BigDecimal
- Function: No description available'
* getNullableOldas
- Returns: ISet<LocalDate>
- Function: No description available'
* getNullableProcessStatuses
- Returns: ISet<String>
- Function: No description available'
* getOldas
- Returns: ISet<LocalDate>
- Function: No description available'
* getProcessStatuses
- Returns: ISet<String>
- Function: No description available'
* getWithLatest
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for the given isLatest status.'
* getWithOlda
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for the given process OLDA.'
* getWithOldas
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for given process OLDAs.'
* getWithProcessStatus
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for the given process status.'
* getWithProcessStatuses
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for given process statuses.'
* isEligibleForPWD
- Returns: boolean
- Function: No description available'
* isLatest
- Returns: boolean
- Function: Checks if at least one R2T4 process in the collection is the latest.'
IMPORTANT REQUIREMENTS:
1. Each method usage must be explained in its full context
2. All data transformations must be detailed
3. Error handling for each method must be specified
4. Business implications of method results must be clear
## COMMENTING REQUIREMENTS
Your task is to create COMPREHENSIVE, CONTEXTUAL comments for this Oracle SFP Platform script.
FILE-LEVEL DOCUMENTATION REQUIREMENTS:
1. File Header (Using /** ... */ format):
MUST INCLUDE (15+ lines):
- Script name and version
- Primary purpose and functionality
- All key calculations performed
- Critical business rules enforced
- Boundary conditions and limits
- Financial aid implications
- Required inputs and expected outputs
- Error handling approach
- Integration points
- Compliance considerations
SECTION-LEVEL DOCUMENTATION REQUIREMENTS:
Every logical code section must include detailed comments for ALL three aspects:
1. CONDITIONALS Section:
Format:
// CONDITIONALS:
// Check [number]: [specific condition being evaluated]
// Variables: [list of variables and methods involved]
// Purpose: [detailed business reason for this check]
// Logic:
// - [step-by-step breakdown of the condition]
// - [how variables are used]
// - [any transformations applied]
// Success Path: [what happens when condition is true]
// Failure Path: [what happens when condition is false]
// Business Rules: [specific rules being enforced]
// Error Handling: [how errors are managed]
// Financial Impact: [effect on aid calculations]
// If N/A, explicitly state: "CONDITIONALS: N/A"
2. BOUNDARY CHECKS Section:
Format:
// BOUNDARY CHECKS:
// Check [number]: [specific limit being enforced]
// Source: [where boundary values come from]
// Variables: [variables and methods involved]
// Validation:
// - [how boundaries are checked]
// - [validation method details]
// Edge Cases:
// - [specific edge cases handled]
// - [how each is managed]
// Error Handling: [boundary violation management]
// Impact: [effect of boundary violations]
// If N/A, explicitly state: "BOUNDARY CHECKS: N/A"
3. ARITHMETIC Section:
Format:
// ARITHMETIC:
// Operation [number]: [name of calculation]
// Formula: [complete mathematical expression]
// Variables:
// - [each variable and its purpose]
// - [data types and units]
// Steps:
// 1. [detailed step-by-step breakdown]
// 2. [intermediate calculations]
// 3. [transformations applied]
// Business Context: [why this calculation is needed]
// Result: [meaning of the output]
// Financial Impact: [effect on aid calculations]
// Limitations: [any mathematical constraints]
// If N/A, explicitly state: "ARITHMETIC: N/A"
ADDITIONAL REQUIREMENTS:
1. Complex Logic Sections:
- Must break down multi-step operations
- Explain interactions between components
- Detail data flow and transformations
2. Error Handling:
- Document all error conditions
- Explain recovery procedures
- Detail logging and reporting
3. API Interactions:
- Document all platform method calls
- Explain data transformations
- Detail error handling
4. Financial Aid Impact:
- Explain effects on aid calculations
- Document regulatory compliance
- Detail student eligibility impact
Example Section With All Aspects:
// CONDITIONALS:
// Check 1: Payment Period Status Validation
// Variables: getLoanPaymentPeriods(), period.getStatus(), period.getStartDate()
// Purpose: Ensure only valid, active payment periods are included
// Logic:
// - Retrieve all loan payment periods
// - Filter based on status (!= "CANCELED")
// - Compare start dates with reference date
// Success Path: Period included in calculations
// Failure Path: Period excluded from totals
// Business Rules: Canceled periods must not affect grade level
// Error Handling: Invalid periods logged and skipped
// Financial Impact: Affects available loan amounts
//
// BOUNDARY CHECKS:
// Check 1: Payment Period Date Validation
// Source: Academic Calendar Configuration
// Variables: period.getStartDate(), referenceDate
// Validation:
// - Compare period start date with reference date
// - Ensure dates are not null
// Edge Cases:
// - Null dates are excluded
// - Future dates are filtered
// Error Handling: Invalid dates logged and skipped
// Impact: Prevents future periods from affecting current calculation
//
// ARITHMETIC:
// Operation 1: Payment Period Units Summation
// Formula: sum(validPeriods.map(period => period.getUnits()))
// Variables:
// - period.getUnits(): Decimal, represents credit hours
// - validPeriods: Array of filtered payment periods
// Steps:
// 1. Filter valid payment periods
// 2. Extract units from each period
// 3. Sum all units using reduce
// Business Context: Calculate total completed units for grade level
// Result: Total units affecting grade level
// Financial Impact: Determines loan eligibility amounts
// Limitations: Cannot exceed program maximum units
## Groovy Script for Analysis
```groovy
//file:noinspection UnnecessaryQualifiedReference
@groovy.transform.BaseScript(com.oracle.sfp.scripting.api.sdk.autocomplete.IsirVerificationClearanceRulesScript)
package CHANGE_ME // this should be updated to your actual package name
import com.oracle.sfp.scripting.api.*
import com.oracle.sfp.scripting.api.util.*
/*
Due to the changes to ISIR Verification for 24/25 we are no longer automatically triggering ISIR corrections within our
baseline configuration. An ISIR Verification task will be created once all acceptable documentation is received for a
Financial Aid Administrator to review. If Oracle determines that there is additional logic that can be added to increase
ISIR Verification Automation we will enhance our baseline configuration in future releases.
*/
//Note: if script returns true then auto code clear, if it returns false then create a task
//Student ISIR variables
def isirFPS_INCARCERATEDAPPLICANTFLAG = isirRecord.getField(IsirField.FPS_INCARCERATEDAPPLICANTFLAG).getOrNull()
def isirSTUDENT_FILED1040OR1040NR = isirRecord.getField(IsirField.STUDENT_FILED1040OR1040NR).getOrNull()
def isirSTUDENT_FILEDNONUSTAXRETURN = isirRecord.getField(IsirField.STUDENT_FILEDNONUSTAXRETURN).getOrNull()
def isirSTUDENTFTIM_IRSRESPONSECODE_FTI = isirRecord.getField(IsirField.STUDENTFTIM_IRSRESPONSECODE_FTI).getOrNull()
def isirSTUDENTFTIM_UNTAXEDIRADISTRIBUTIONS_FTI = isirRecord.getField(IsirField.STUDENTFTIM_UNTAXEDIRADISTRIBUTIONS_FTI).getOrNull()
def isirSTUDENTFTIM_IRADEDUCTIBLEANDPAYMENTS_FTI = isirRecord.getField(IsirField.STUDENTFTIM_IRADEDUCTIBLEANDPAYMENTS_FTI).getOrNull()
def isirSTUDENT_UNTAXEDPORTIONSOFIRADISTRIBUTIONS = isirRecord.getField(IsirField.STUDENT_UNTAXEDPORTIONSOFIRADISTRIBUTIONS).getOrNull()
def isirSTUDENT_IRAROLLOVER = isirRecord.getField(IsirField.STUDENT_IRAROLLOVER).getOrNull()
def isirSTUDENT_FOREIGNEARNEDINCOMEEXCLUSION = isirRecord.getField(IsirField.STUDENT_FOREIGNEARNEDINCOMEEXCLUSION).getOrNull()
//Parent ISIR variables
def isirPARENT_FILED1040OR1040NR = isirRecord.getField(IsirField.PARENT_FILED1040OR1040NR).getOrNull()
def isirPARENTFTIM_IRSRESPONSECODE_FTI = isirRecord.getField(IsirField.PARENTFTIM_IRSRESPONSECODE_FTI).getOrNull()
def isirPARENT_FILEDNONUSTAXRETURN = isirRecord.getField(IsirField.PARENT_FILEDNONUSTAXRETURN).getOrNull()
def isirPARENTFTIM_UNTAXEDIRADISTRIBUTIONS_FTI = isirRecord.getField(IsirField.PARENTFTIM_UNTAXEDIRADISTRIBUTIONS_FTI).getOrNull()
def isirPARENTFTIM_IRADEDUCTIBLEANDPAYMENTS_FTI = isirRecord.getField(IsirField.PARENTFTIM_IRADEDUCTIBLEANDPAYMENTS_FTI).getOrNull()
def isirPARENT_UNTAXEDPORTIONSOFIRADISTRIBUTIONS = isirRecord.getField(IsirField.PARENT_UNTAXEDPORTIONSOFIRADISTRIBUTIONS).getOrNull()
def isirPARENT_IRAROLLOVER = isirRecord.getField(IsirField.PARENT_IRAROLLOVER).getOrNull()
def isirPARENT_UPDATEDFAMILYSIZE = isirRecord.getField(IsirField.PARENT_UPDATEDFAMILYSIZE).getOrNull()
def isirFPS_ASSUMEDPARENTFAMILYSIZE = isirRecord.getField(IsirField.FPS_ASSUMEDPARENTFAMILYSIZE).getOrNull()
def isirPARENT_FOREIGNEARNEDINCOMEEXCLUSION = isirRecord.getField(IsirField.PARENT_FOREIGNEARNEDINCOMEEXCLUSION).getOrNull()
//Parent Spouse ISIR variables
def isirPARENTSPOUSE_IRAROLLOVER = isirRecord.getField(IsirField.PARENTSPOUSE_IRAROLLOVER).getOrNull()
def isirPARENTSPOUSE_UNTAXEDPORTIONSOFIRADISTRIBUTIONS = isirRecord.getField(IsirField.PARENTSPOUSE_UNTAXEDPORTIONSOFIRADISTRIBUTIONS).getOrNull()
def isirPARENTSPOUSEFTIM_IRADEDUCTIBLEANDPAYMENTS_FTI = isirRecord.getField(IsirField.PARENTSPOUSEFTIM_IRADEDUCTIBLEANDPAYMENTS_FTI).getOrNull()
def isirPARENTSPOUSEFTIM_UNTAXEDIRADISTRIBUTIONS_FTI = isirRecord.getField(IsirField.PARENTSPOUSEFTIM_UNTAXEDIRADISTRIBUTIONS_FTI).getOrNull()
def isirPARENTSPOUSE_FILED1040OR1040NR = isirRecord.getField(IsirField.PARENTSPOUSE_FILED1040OR1040NR).getOrNull()
def isirPARENTSPOUSEFTIM_IRSRESPONSECODE_FTI = isirRecord.getField(IsirField.PARENTSPOUSEFTIM_IRSRESPONSECODE_FTI).getOrNull()
def isirPARENTSPOUSE_FILEDNONUSTAXRETURN = isirRecord.getField(IsirField.PARENTSPOUSE_FILEDNONUSTAXRETURN).getOrNull()
def isirPARENTSPOUSE_TAXRETURNFILINGSTATUS = isirRecord.getField(IsirField.PARENTSPOUSE_TAXRETURNFILINGSTATUS).getOrNull()
def isirPARENTSPOUSE_FOREIGNEARNEDINCOMEEXCLUSION = isirRecord.getField(IsirField.PARENTSPOUSE_FOREIGNEARNEDINCOMEEXCLUSION).getOrNull()
//Custom documents received variables
boolean IdentificationDocsReceived = false
boolean SOEPDocsReceived = false
//Custom documents received check
if ((receivedDocuments.hasDoc("DriversLicense", "Student") && receivedDocuments.get("DriversLicense", "Student").isAcceptable()) || (receivedDocuments.hasDoc("NonDriversLicenseID", "Student") && receivedDocuments.get("NonDriversLicenseID", "Student").isAcceptable()) || (receivedDocuments.hasDoc("StateIssuedID", "Student") && receivedDocuments.get("StateIssuedID", "Student").isAcceptable()) || (receivedDocuments.hasDoc("Passport", "Student") && receivedDocuments.get("Passport", "Student").isAcceptable())) {
IdentificationDocsReceived = true
}
if ((receivedDocuments.hasDoc("SOEP-Campus", "Student") && receivedDocuments.get("SOEP-Campus", "Student").isAcceptable()) || (receivedDocuments.hasDoc("SOEP-Notary", "Student") && receivedDocuments.get("SOEP-Notary", "Student").isAcceptable())) {
SOEPDocsReceived = true
}
//If student is incarcerated and has custom documents then exit the script
if ((isirFPS_INCARCERATEDAPPLICANTFLAG == "1" || isirFPS_INCARCERATEDAPPLICANTFLAG == "2" || isirFPS_INCARCERATEDAPPLICANTFLAG == "3") && IdentificationDocsReceived && SOEPDocsReceived) {
return true
}
//Student auto code clearing logic
if ((isirSTUDENT_FILED1040OR1040NR == "1" || isirSTUDENT_FILED1040OR1040NR == null) && [null, "203", "206", "212", "214"].contains(isirSTUDENTFTIM_IRSRESPONSECODE_FTI)) {
if ((receivedDocuments.hasDoc("1040", "Student") && receivedDocuments.get("1040", "Student").isAcceptable()) || (receivedDocuments.hasDoc("1040x", "Student") && receivedDocuments.get("1040x", "Student").isAcceptable()) || (receivedDocuments.hasDoc("TaxReturnTranscript", "Student") && receivedDocuments.get("TaxReturnTranscript", "Student").isAcceptable())) {
return false
}
}
if (isirSTUDENT_FILED1040OR1040NR == "2" && isirSTUDENT_FILEDNONUSTAXRETURN == "1") {
if (receivedDocuments.hasDoc("ForeignTaxTranscript", "Student") && receivedDocuments.get("ForeignTaxTranscript", "Student").isAcceptable()) {
return false
}
}
if (isirSTUDENT_FILED1040OR1040NR == "2" && (isirSTUDENT_FILEDNONUSTAXRETURN == "2" || isirSTUDENT_FILEDNONUSTAXRETURN == null)) {
if ((receivedDocuments.hasDoc("NonFilingStatement", "Student") && receivedDocuments.get("NonFilingStatement", "Student").isAcceptable()) || (receivedDocuments.hasDoc("W2", "Student") && receivedDocuments.get("W2", "Student").isAcceptable()) || (receivedDocuments.hasDoc("1099G", "Student") && receivedDocuments.get("1099G", "Student").isAcceptable()) || (receivedDocuments.hasDoc("SelfEmploymentStatement", "Student") && receivedDocuments.get("SelfEmploymentStatement", "Student").isAcceptable())) {
return false
}
}
//Parent auto code clearing logic
if ((isirPARENT_FILED1040OR1040NR == "1" || isirPARENT_FILED1040OR1040NR == null) && [null, "203", "206", "212", "214"].contains(isirPARENTFTIM_IRSRESPONSECODE_FTI)) {
if ((receivedDocuments.hasDoc("1040", "Parent") && receivedDocuments.get("1040", "Parent").isAcceptable()) || (receivedDocuments.hasDoc("1040x", "Parent") && receivedDocuments.get("1040x", "Parent").isAcceptable()) || (receivedDocuments.hasDoc("TaxReturnTranscript", "Parent") && receivedDocuments.get("TaxReturnTranscript", "Parent").isAcceptable())) {
return false
}
}
if ((isirPARENT_FILED1040OR1040NR == "1" || isirPARENT_FILED1040OR1040NR == null) && isirPARENT_FILEDNONUSTAXRETURN == "1") {
if ((receivedDocuments.hasDoc("1040", "Parent") && receivedDocuments.get("1040", "Parent").isAcceptable()) || (receivedDocuments.hasDoc("1040x", "Parent") && receivedDocuments.get("1040x", "Parent").isAcceptable()) || (receivedDocuments.hasDoc("TaxReturnTranscript", "Parent") && receivedDocuments.get("TaxReturnTranscript", "Parent").isAcceptable())) {
return false
}
}
if (isirPARENT_FILED1040OR1040NR == "2" && isirPARENT_FILEDNONUSTAXRETURN == "2") {
if (receivedDocuments.hasDoc("ForeignTaxTranscript", "Parent") && receivedDocuments.get("ForeignTaxTranscript", "Parent").isAcceptable()) {
return false
}
}
if (isirPARENT_FILED1040OR1040NR == "2" && isirPARENT_FILEDNONUSTAXRETURN == "3") {
if ((receivedDocuments.hasDoc("NonFilingStatement", "Parent") && receivedDocuments.get("NonFilingStatement", "Parent").isAcceptable()) || (receivedDocuments.hasDoc("ForeignTaxTranscript", "Parent") && receivedDocuments.get("ForeignTaxTranscript", "Parent").isAcceptable())) {
return false
}
}
if (isirPARENT_FILED1040OR1040NR == "2" && ["4", "5", "6"].contains(isirPARENT_FILEDNONUSTAXRETURN)) {
if ((receivedDocuments.hasDoc("NonFilingStatement", "Parent") && receivedDocuments.get("NonFilingStatement", "Parent").isAcceptable()) || (receivedDocuments.hasDoc("W2", "Parent") && receivedDocuments.get("W2", "Parent").isAcceptable()) || (receivedDocuments.hasDoc("1099G", "Parent") && receivedDocuments.get("1099G", "Parent").isAcceptable()) || (receivedDocuments.hasDoc("SelfEmploymentStatement", "Parent") && receivedDocuments.get("SelfEmploymentStatement", "Parent").isAcceptable())) {
return false
}
}
//Parent Spouse auto code clearing logic
if (isirPARENTSPOUSE_TAXRETURNFILINGSTATUS == "3" && (isirPARENTSPOUSE_FILED1040OR1040NR == "1" || isirPARENTSPOUSE_FILED1040OR1040NR == null) && [null, "203", "206", "212", "214"].contains(isirPARENTSPOUSEFTIM_IRSRESPONSECODE_FTI)) {
if ((receivedDocuments.hasDoc("1040", "Parent Spouse") && receivedDocuments.get("1040", "Parent Spouse").isAcceptable()) || (receivedDocuments.hasDoc("1040x", "Parent Spouse") && receivedDocuments.get("1040x", "Parent Spouse").isAcceptable()) || (receivedDocuments.hasDoc("TaxReturnTranscript", "Parent Spouse") && receivedDocuments.get("TaxReturnTranscript", "Parent Spouse").isAcceptable())) {
return false
}
}
if (isirPARENTSPOUSE_TAXRETURNFILINGSTATUS == "3" && (isirPARENTSPOUSE_FILED1040OR1040NR == "1" || isirPARENTSPOUSE_FILED1040OR1040NR == null) && isirPARENTSPOUSE_FILEDNONUSTAXRETURN == "1") {
if ((receivedDocuments.hasDoc("1040", "Parent Spouse") && receivedDocuments.get("1040", "Parent Spouse").isAcceptable()) || (receivedDocuments.hasDoc("1040x", "Parent Spouse") && receivedDocuments.get("1040x", "Parent Spouse").isAcceptable()) || (receivedDocuments.hasDoc("TaxReturnTranscript", "Parent Spouse") && receivedDocuments.get("TaxReturnTranscript", "Parent Spouse").isAcceptable())) {
return false
}
}
if (isirPARENTSPOUSE_TAXRETURNFILINGSTATUS == "3" && isirPARENTSPOUSE_FILED1040OR1040NR == "2" && isirPARENTSPOUSE_FILEDNONUSTAXRETURN == "2") {
if (receivedDocuments.hasDoc("ForeignTaxTranscript", "Parent Spouse") && receivedDocuments.get("ForeignTaxTranscript", "Parent Spouse").isAcceptable()) {
return false
}
}
if (isirPARENTSPOUSE_TAXRETURNFILINGSTATUS == "3" && isirPARENTSPOUSE_FILED1040OR1040NR == "2" && isirPARENTSPOUSE_FILEDNONUSTAXRETURN == "3") {
if ((receivedDocuments.hasDoc("NonFilingStatement", "Parent Spouse") && receivedDocuments.get("NonFilingStatement", "Parent Spouse").isAcceptable()) || (receivedDocuments.hasDoc("ForeignTaxTranscript", "Parent Spouse") && receivedDocuments.get("ForeignTaxTranscript", "Parent Spouse").isAcceptable())) {
return false
}
}
if (isirPARENTSPOUSE_TAXRETURNFILINGSTATUS == "3" && isirPARENTSPOUSE_FILED1040OR1040NR == "2" && ["4", "5", "6"].contains(isirPARENTSPOUSE_FILEDNONUSTAXRETURN)) {
if ((receivedDocuments.hasDoc("NonFilingStatement", "Parent Spouse") && receivedDocuments.get("NonFilingStatement", "Parent Spouse").isAcceptable()) || (receivedDocuments.hasDoc("W2", "Parent Spouse") && receivedDocuments.get("W2", "Parent Spouse").isAcceptable()) || (receivedDocuments.hasDoc("1099G", "Parent Spouse") && receivedDocuments.get("1099G", "Parent Spouse").isAcceptable()) || (receivedDocuments.hasDoc("SelfEmploymentStatement", "Parent Spouse") && receivedDocuments.get("SelfEmploymentStatement", "Parent Spouse").isAcceptable())) {
return false
}
}
//Student rollover information auto code clearing logic
if (isirSTUDENTFTIM_UNTAXEDIRADISTRIBUTIONS_FTI > 0 || isirSTUDENTFTIM_IRADEDUCTIBLEANDPAYMENTS_FTI > 0 || isirSTUDENT_UNTAXEDPORTIONSOFIRADISTRIBUTIONS > 0 || isirSTUDENT_IRAROLLOVER > 0) {
if (receivedDocuments.hasDoc("RolloverStatement", "Student") && receivedDocuments.get("RolloverStatement", "Student").isAcceptable()) {
return false
}
}
//Parent rollover information auto code clearing logic
if (isirPARENTFTIM_UNTAXEDIRADISTRIBUTIONS_FTI > 0 || isirPARENTFTIM_IRADEDUCTIBLEANDPAYMENTS_FTI > 0 || isirPARENT_UNTAXEDPORTIONSOFIRADISTRIBUTIONS > 0 || isirPARENT_IRAROLLOVER > 0) {
if (receivedDocuments.hasDoc("RolloverStatement", "Parent") && receivedDocuments.get("RolloverStatement", "Parent").isAcceptable()) {
return false
}
}
//Parent Spouse rollover information auto code clearing logic
if (isirPARENTSPOUSEFTIM_UNTAXEDIRADISTRIBUTIONS_FTI > 0 || isirPARENTSPOUSEFTIM_IRADEDUCTIBLEANDPAYMENTS_FTI > 0 || isirPARENTSPOUSE_UNTAXEDPORTIONSOFIRADISTRIBUTIONS > 0 || isirPARENTSPOUSE_IRAROLLOVER > 0) {
if (receivedDocuments.hasDoc("RolloverStatement", "Parent Spouse") && receivedDocuments.get("RolloverStatement", "Parent Spouse").isAcceptable()) {
return false
}
}
//Student Foreign Income Exclusion auto code clearing logic
if (isirSTUDENT_FOREIGNEARNEDINCOMEEXCLUSION != null && (isirSTUDENT_FOREIGNEARNEDINCOMEEXCLUSION > 0 || isirSTUDENT_FOREIGNEARNEDINCOMEEXCLUSION < 0)) {
if ((receivedDocuments.hasDoc("1040", "Student") && receivedDocuments.get("1040", "Student").isAcceptable()) || (receivedDocuments.hasDoc("1040x", "Student") && receivedDocuments.get("1040x", "Student").isAcceptable()) || (receivedDocuments.hasDoc("TaxReturnTranscript", "Student") && receivedDocuments.get("TaxReturnTranscript", "Student").isAcceptable()) || (receivedDocuments.hasDoc("ForeignTaxTranscript", "Student") && receivedDocuments.get("ForeignTaxTranscript", "Student").isAcceptable())) {
return false
}
}
//Parent Foreign Income Exclusion auto code clearing logic
if (isirPARENT_FOREIGNEARNEDINCOMEEXCLUSION != null && (isirPARENT_FOREIGNEARNEDINCOMEEXCLUSION > 0 || isirPARENT_FOREIGNEARNEDINCOMEEXCLUSION < 0)) {
if ((receivedDocuments.hasDoc("1040", "Parent") && receivedDocuments.get("1040", "Parent").isAcceptable()) || (receivedDocuments.hasDoc("1040x", "Parent") && receivedDocuments.get("1040x", "Parent").isAcceptable()) || (receivedDocuments.hasDoc("TaxReturnTranscript", "Parent") && receivedDocuments.get("TaxReturnTranscript", "Parent").isAcceptable()) || (receivedDocuments.hasDoc("ForeignTaxTranscript", "Parent") && receivedDocuments.get("ForeignTaxTranscript", "Parent").isAcceptable())) {
return false
}
}
//Parent Spouse Foreign Income Exclusion auto code clearing logic
if (isirPARENTSPOUSE_FOREIGNEARNEDINCOMEEXCLUSION != null && (isirPARENTSPOUSE_FOREIGNEARNEDINCOMEEXCLUSION > 0 || isirPARENTSPOUSE_FOREIGNEARNEDINCOMEEXCLUSION < 0)) {
if ((receivedDocuments.hasDoc("1040", "Parent Spouse") && receivedDocuments.get("1040", "Parent Spouse").isAcceptable()) || (receivedDocuments.hasDoc("1040x", "Parent Spouse") && receivedDocuments.get("1040x", "Parent Spouse").isAcceptable()) || (receivedDocuments.hasDoc("TaxReturnTranscript", "Parent Spouse") && receivedDocuments.get("TaxReturnTranscript", "Parent Spouse").isAcceptable()) || (receivedDocuments.hasDoc("ForeignTaxTranscript", "Parent Spouse") && receivedDocuments.get("ForeignTaxTranscript", "Parent Spouse").isAcceptable())) {
return false
}
}
//Family size auto code clearing logic
if (isirPARENT_UPDATEDFAMILYSIZE != null || isirFPS_ASSUMEDPARENTFAMILYSIZE != null) {
if (receivedDocuments.hasDoc("VW-Dep", "Student") && receivedDocuments.get("VW-Dep", "Student").isAcceptable()) {
return false
}
}
return true
```
## COMMENT GENERATION REQUIREMENTS:
1. Add comprehensive comments following the exact format specified
2. Every logical section must include all three aspects:
- CONDITIONALS
- BOUNDARY CHECKS
- ARITHMETIC
3. Mark any non-applicable aspect as "N/A" explicitly
4. Ensure line-by-line explanation of complex logic
5. Detail all financial aid implications
DO NOT modify the code itself. Add comments only.
REMEMBER:
- Comments must be exhaustively detailed
- Every logical section needs all three aspects
- Financial aid impact must be clear
- Business rules must be explicit
Return ONLY the fully commented Groovy script. No other text or explanations.
ISIR Use Subsequent ISIR
Name: isirUseSubsequentIsir
Purpose: Define which fields on ISIR will trigger an ISIR review when subsequent ISIRs enter SFP for a Student.
In Baseline Config: Yes
Return Type: Boolean
# Oracle SFP Platform Script Documentation Generator
Your task is to create comprehensive, contextual comments for this Oracle SFP Platform Groovy script.
CRITICAL REQUIREMENTS:
1. Follow exact comment format specified
2. Include all three aspects for every section
3. Mark non-applicable aspects as "N/A"
4. Provide business context and financial impact
5. Detail all API interactions and data flows
## Script Purpose and Context
The script being analyzed is: "isirUseSubsequentIsir"
Primary Function: Define which fields on ISIR will trigger an ISIR review when subsequent ISIRs enter SFP for a Student.
Expected Output Type: Boolean
This script is part of the Oracle SFP Platform ecosystem and interacts with platform-specific APIs and data structures.
You must analyze this script in the context of financial aid processing workflows, ensuring compliance with:
1. Federal financial aid regulations
2. Academic progress requirements
3. Institutional policies
4. Program-specific rules
Your analysis must detail:
1. All conditional logic and its business implications
2. All boundary checks and their validation purposes
3. All calculations and their financial aid impact
4. Error handling and data validation
5. Integration points with platform APIs
## Available Platform Methods and Integrations
The script has access to the following Oracle SFP Platform integrations.
When commenting the code, you MUST explain how these specific methods and bindings are being used:
helper
Purpose: Helper interface with utility methods.
Type: IGroovyScriptHelper
Available Methods:
* filterCourses
- Returns: ICourseFilterAPI
- Function: No description available'
* getAwardYear
- Returns: IAwardYearHelperAPI
- Function: Returns Award Year-specific helper.'
* getIntegerFromSignedIsirNumber
- Returns: Integer
- Function: Parses a number represented in ISIR format to Integer.'
* getIsirDate
- Returns: Date
- Function: No description available'
* getIsirDateFormatStr
- Returns: String
- Function: No description available'
* getSignedIsirNumberFromInteger
- Returns: String
- Function: No description available'
* isirRecordsDifferForListedFields
- Returns: boolean
- Function: No description available'
* mapRanges
- Returns: IRangeMapStarterAPI
- Function: No description available'
* newAwardYearPeriod
- Returns: IAwardYearAPI
- Function: Returns the Award Year having a given end year.'
* newPeriod
- Returns: IPeriod
- Function: Returns the IPeriod for one single day.'
* newPeriod
- Returns: IPeriod
- Function: Returns a IPeriod given its start and end dates.'
latestIsirRecord
Purpose: The student's latest ISIR record.
Type: IIsirRecordAPI
Available Methods:
* getActiveIsirForAwardYear
- Returns: Boolean
- Function: Gets the active ISIR for award year status.'
* getAllFields
- Returns: @NonNull Map<IsirField<?>,IIsirFieldValue<?>>
- Function: Retrieves all field values (WARNING: can only be used with 2025+ ISIRs).'
* getAssumptions
- Returns: List<IAssumptionAPI>
- Function: Get the assumptions.'
* getAwardYear
- Returns: String
- Function: Gets the award year.'
* getCommentCodes
- Returns: List<ICommentCodeAPI>
- Function: Get the comment codes.'
* getCpsTransNumber
- Returns: String
- Function: Gets the CPS transaction number.'
* getCurrentSsn
- Returns: ISocialSecurityNumber
- Function: Gets the student's current SSN.'
* getDiscrepancies
- Returns: List<IDiscrepancyAPI>
- Function: Get the discrepancies.'
* getField
- Returns: <T> @NonNull IIsirFieldValue<T>
- Function: Retrieves the value of a given field (WARNING: can only be used with 2025+ ISIRs).'
* getFirstName
- Returns: String
- Function: Gets the student's first name.'
* getHighlightFlags
- Returns: List<IHighlightFlagAPI>
- Function: Get the highlight flags.'
* getIsirFieldValue
- Returns: String
- Function: Gets the value of an ISIR field (WARNING: This method can only be used up to 2024 award year).'
* getIsirFieldValueOrNull
- Returns: String
- Function: Gets the value of an ISIR field (WARNING: This method can only be used up to 2024 award year).'
* getIsirFieldValues
- Returns: Map<String,String>
- Function: Get a map containing all ISIR fields (WARNING: This method can only be used up to 2024 award year).'
* getIsirIdOriginalNameId
- Returns: String
- Function: Gets the student's original name ID.'
* getIsirIdSsn
- Returns: ISocialSecurityNumber
- Function: Gets the student's original SSN.'
* getIsirIdYearIndicator
- Returns: String
- Function: Gets the ISIR's year indicator.'
* getIsirStatus
- Returns: String
- Function: Gets the ISIR status.'
* getIsirStatusBeforeCorrection
- Returns: String
- Function: When ISIR Status is Corrected returns the previous ISIR Status.'
* getLastName
- Returns: String
- Function: Gets the student's last name.'
* getMiddleName
- Returns: String
- Function: Gets the student's middle name.'
* getReceivedDate
- Returns: Date
- Function: Gets the system receipt date of the ISIR.'
* getRejectCodes
- Returns: List<IRejectCodeAPI>
- Function: Get the reject codes.'
* getSchoolCode1
- Returns: String
- Function: Gets the school code 1.'
* getSchoolCode10
- Returns: String
- Function: Gets the school code 10.'
* getSchoolCode2
- Returns: String
- Function: Gets the school code 2.'
* getSchoolCode3
- Returns: String
- Function: Gets the school code 3.'
* getSchoolCode4
- Returns: String
- Function: Gets the school code 4.'
* getSchoolCode5
- Returns: String
- Function: Gets the school code 5.'
* getSchoolCode6
- Returns: String
- Function: Gets the school code 6.'
* getSchoolCode7
- Returns: String
- Function: Gets the school code 7.'
* getSchoolCode8
- Returns: String
- Function: Gets the school code 8.'
* getSchoolCode9
- Returns: String
- Function: Gets the school code 9.'
* isCompatibleWithPackaging
- Returns: boolean
- Function: Checks if this ISIR satisfies minimal acceptance criteria for automatic Financial
Aid Package Calculation.'
* isUnverified
- Returns: boolean
- Function: Gets the ISIR verification status.'
log
Purpose: Provides logging capability to scripts.
Type: IScriptLoggerAPI
Available Methods:
* debug
- Returns: boolean
- Function: No description available'
* debug
- Returns: void
- Function: No description available'
* error
- Returns: void
- Function: No description available'
* info
- Returns: boolean
- Function: No description available'
* info
- Returns: void
- Function: No description available'
* warn
- Returns: void
- Function: No description available'
previousFinancialPlan
Purpose: Provides access to previous financial plans.
Type: IPreviousFinancialPlanAPI
Available Methods:
* effectiveAt
- Returns: T
- Function: Gets a previous financial plan that was effective at a given time.'
* effectiveAt
- Returns: T
- Function: Gets a previous financial plan that was effective on a given local date.'
* effectiveAt
- Returns: T
- Function: Gets a previous financial plan that was effective at a given local time.'
* withVersion
- Returns: T
- Function: Gets a previous financial plan with a given version.'
previousIsirRecord
Purpose: The student's previous ISIR record.
Type: IIsirRecordAPI
Available Methods:
* getActiveIsirForAwardYear
- Returns: Boolean
- Function: Gets the active ISIR for award year status.'
* getAllFields
- Returns: @NonNull Map<IsirField<?>,IIsirFieldValue<?>>
- Function: Retrieves all field values (WARNING: can only be used with 2025+ ISIRs).'
* getAssumptions
- Returns: List<IAssumptionAPI>
- Function: Get the assumptions.'
* getAwardYear
- Returns: String
- Function: Gets the award year.'
* getCommentCodes
- Returns: List<ICommentCodeAPI>
- Function: Get the comment codes.'
* getCpsTransNumber
- Returns: String
- Function: Gets the CPS transaction number.'
* getCurrentSsn
- Returns: ISocialSecurityNumber
- Function: Gets the student's current SSN.'
* getDiscrepancies
- Returns: List<IDiscrepancyAPI>
- Function: Get the discrepancies.'
* getField
- Returns: <T> @NonNull IIsirFieldValue<T>
- Function: Retrieves the value of a given field (WARNING: can only be used with 2025+ ISIRs).'
* getFirstName
- Returns: String
- Function: Gets the student's first name.'
* getHighlightFlags
- Returns: List<IHighlightFlagAPI>
- Function: Get the highlight flags.'
* getIsirFieldValue
- Returns: String
- Function: Gets the value of an ISIR field (WARNING: This method can only be used up to 2024 award year).'
* getIsirFieldValueOrNull
- Returns: String
- Function: Gets the value of an ISIR field (WARNING: This method can only be used up to 2024 award year).'
* getIsirFieldValues
- Returns: Map<String,String>
- Function: Get a map containing all ISIR fields (WARNING: This method can only be used up to 2024 award year).'
* getIsirIdOriginalNameId
- Returns: String
- Function: Gets the student's original name ID.'
* getIsirIdSsn
- Returns: ISocialSecurityNumber
- Function: Gets the student's original SSN.'
* getIsirIdYearIndicator
- Returns: String
- Function: Gets the ISIR's year indicator.'
* getIsirStatus
- Returns: String
- Function: Gets the ISIR status.'
* getIsirStatusBeforeCorrection
- Returns: String
- Function: When ISIR Status is Corrected returns the previous ISIR Status.'
* getLastName
- Returns: String
- Function: Gets the student's last name.'
* getMiddleName
- Returns: String
- Function: Gets the student's middle name.'
* getReceivedDate
- Returns: Date
- Function: Gets the system receipt date of the ISIR.'
* getRejectCodes
- Returns: List<IRejectCodeAPI>
- Function: Get the reject codes.'
* getSchoolCode1
- Returns: String
- Function: Gets the school code 1.'
* getSchoolCode10
- Returns: String
- Function: Gets the school code 10.'
* getSchoolCode2
- Returns: String
- Function: Gets the school code 2.'
* getSchoolCode3
- Returns: String
- Function: Gets the school code 3.'
* getSchoolCode4
- Returns: String
- Function: Gets the school code 4.'
* getSchoolCode5
- Returns: String
- Function: Gets the school code 5.'
* getSchoolCode6
- Returns: String
- Function: Gets the school code 6.'
* getSchoolCode7
- Returns: String
- Function: Gets the school code 7.'
* getSchoolCode8
- Returns: String
- Function: Gets the school code 8.'
* getSchoolCode9
- Returns: String
- Function: Gets the school code 9.'
* isCompatibleWithPackaging
- Returns: boolean
- Function: Checks if this ISIR satisfies minimal acceptance criteria for automatic Financial
Aid Package Calculation.'
* isUnverified
- Returns: boolean
- Function: Gets the ISIR verification status.'
program
Purpose: Information about the student's primary program.
Type: IProgramAPI
Available Methods:
* exists
- Returns: boolean
- Function: No description available'
* getAcademicCompletionDate
- Returns: LocalDate
- Function: No description available'
* getAcademicStatus
- Returns: String
- Function: No description available'
* getAdmissionStatus
- Returns: String
- Function: No description available'
* getAssessedUnits
- Returns: BigDecimal
- Function: No description available'
* getAydUnits
- Returns: BigDecimal
- Function: No description available'
* getAydWeeks
- Returns: Integer
- Function: No description available'
* getCharges
- Returns: List<IChargeAPI>
- Function: No description available'
* getCode
- Returns: String
- Function: No description available'
* getCollege
- Returns: String
- Function: No description available'
* getCourses
- Returns: ICoursesAPI
- Function: No description available'
* getDateOfDetermination
- Returns: LocalDate
- Function: No description available'
* getDescription
- Returns: String
- Function: No description available'
* getEnrollmentStatus
- Returns: String
- Function: No description available'
* getEnrollmentStatusEffectiveDate
- Returns: LocalDate
- Function: No description available'
* getEnrollmentStatusSubType
- Returns: String
- Function: No description available'
* getExternalProgramId
- Returns: String
- Function: No description available'
* getFaEligibleIndicator
- Returns: Boolean
- Function: No description available'
* getGpa
- Returns: BigDecimal
- Function: No description available'
* getManualSapEvaluationIndicator
- Returns: Boolean
- Function: No description available'
* getModality
- Returns: String
- Function: No description available'
* getOfficialLastDateOfAttendance
- Returns: LocalDate
- Function: No description available'
* getOpeId
- Returns: String
- Function: No description available'
* getPrimaryLocation
- Returns: String
- Function: No description available'
* getProgramLengthMeasurementUnit
- Returns: String
- Function: No description available'
* getProgramLengthNumberOfUnits
- Returns: int
- Function: No description available'
* getProgramMeasurementUnit
- Returns: String
- Function: No description available'
* getProgramType
- Returns: String
- Function: No description available'
* getRequiredGpa
- Returns: BigDecimal
- Function: No description available'
* getSpecialPrograms
- Returns: String
- Function: No description available'
* getStartDate
- Returns: LocalDate
- Function: No description available'
* getStudentResources
- Returns: List<IStudentResourceAPI>
- Function: No description available'
* getTermAcys
- Returns: ISimpleNumberedPeriods<ITermAcademicYearAPI>
- Function: No description available'
* getTerms
- Returns: ITermPeriodsAPI
- Function: No description available'
* getTermType
- Returns: String
- Function: No description available'
* getTotalAcceptedTransferUnits
- Returns: BigDecimal
- Function: No description available'
* getTotalRequiredUnits
- Returns: BigDecimal
- Function: No description available'
* isBbayTerm
- Returns: boolean
- Function: No description available'
* isGraduate
- Returns: boolean
- Function: No description available'
* isProgramTerm
- Returns: boolean
- Function: No description available'
* isTerm
- Returns: boolean
- Function: No description available'
* isUndergraduate
- Returns: boolean
- Function: No description available'
r2t4
Purpose: Provides access to all R2T4 information for the student.
Type: IR2t4API
Available Methods:
* filterOldas
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for OLDAs passing a given predicate.'
* filterProcessStatuses
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for process statuses passing a given predicate.'
* getGrossAmountDecreased
- Returns: BigDecimal
- Function: No description available'
* getNetAmountDecreased
- Returns: BigDecimal
- Function: No description available'
* getNullableOldas
- Returns: ISet<LocalDate>
- Function: No description available'
* getNullableProcessStatuses
- Returns: ISet<String>
- Function: No description available'
* getOldas
- Returns: ISet<LocalDate>
- Function: No description available'
* getProcessStatuses
- Returns: ISet<String>
- Function: No description available'
* getWithLatest
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for the given isLatest status.'
* getWithOlda
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for the given process OLDA.'
* getWithOldas
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for given process OLDAs.'
* getWithProcessStatus
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for the given process status.'
* getWithProcessStatuses
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for given process statuses.'
* isEligibleForPWD
- Returns: boolean
- Function: No description available'
* isLatest
- Returns: boolean
- Function: Checks if at least one R2T4 process in the collection is the latest.'
receivedDocuments
Purpose: Provides access to all documents received for the student.
Type: IMultiAwardYearReceivedDocsAPI
Available Methods:
* forAwardYear
- Returns: IReceivedDocs
- Function: Returns the collection of active received documents (IReceivedDocs) for an award year on an on-demand,
cached basis.'
student
Purpose: Student information.
Type: IFasStudentAPI
Available Methods:
* getAddressState
- Returns: String
- Function: Gets the federal state in the student's main mailing address, as a two-letter acronym.'
* getBahIndicator
- Returns: Boolean
- Function: Gets the school employee dependet status.'
* getCampusCode
- Returns: String
- Function: Gets the campus code.'
* getCompletionDate
- Returns: Date
- Function: Gets the completion date.'
* getDateOfBirth
- Returns: ISecureLocalDate
- Function: Gets the date of birth.'
* getDependencyStatus
- Returns: String
- Function: Gets the dependency status.'
* getDeterminationDate
- Returns: Date
- Function: Gets the determination date.'
* getDocuments
- Returns: Map<String,IReceivedDoc>
- Function: Gets the student's documents, indexed by document code.'
* getEmail
- Returns: String
- Function: Gets the e-mail.'
* getEnrollmentStatus
- Returns: String
- Function: Gets the enrollment status.'
* getExternalStudentId
- Returns: String
- Function: Gets the external student ID (unique per student).'
* getFinancialAidRequested
- Returns: Boolean
- Function: Gets the financial aid request status.'
* getFirstName
- Returns: String
- Function: Gets the first name.'
* getGender
- Returns: String
- Function: Gets the gender.'
* getHighSchoolEquivalency
- Returns: Boolean
- Function: Gets the high school equivalency status.'
* getLastName
- Returns: String
- Function: Gets the last name.'
* getMiddleName
- Returns: String
- Function: Gets the middle name.'
* getPersonId
- Returns: Long
- Function: Gets the person ID.'
* getProgramType
- Returns: String
- Function: Gets the program type.'
* getRecentFinancialAidHistoryRecords
- Returns: IRecentFahRecordsAPI
- Function: Gets the recent financial aid records.'
* getSchoolCode
- Returns: String
- Function: Gets the school code.'
* getSchoolEmployee
- Returns: Boolean
- Function: Gets the school employee status.'
* getSchoolEmployeeDependent
- Returns: Boolean
- Function: Gets the school employee dependent status.'
* getSsn
- Returns: ISocialSecurityNumber
- Function: Gets the SSN.'
* getStudentId
- Returns: Long
- Function: Gets the student ID (or enrollment ID, unique per enrollment).'
allAwardYearIsirs
Purpose: Provides access to all ISIRs for the student, accessible per award year.
Type: IAllAwardYearIsirsAPI
Available Methods:
No methods available
awardYearPellTables
Purpose: PELL tables.
Type: IAwardYearPellTablesAPI
Available Methods:
* forAwardYear
- Returns: IPellTableAPI
- Function: Returns the collection of all Pell Tables (IPellTableAPI) for an award year on an on-demand,
cached basis.'
awy
Purpose: The award year of the student's latest ISIR record.
Type: Integer
Available Methods:
No methods available
coa
Purpose: Provides access to all Cost of Attendance information for the student.
Type: ICoaAPI
Available Methods:
* getActiveCoa
- Returns: int
- Function: Gets the active cost of attendance.'
* getActualCoa
- Returns: int
- Function: Gets the actual cost of attendance.'
* getComponents
- Returns: ICoaComponentsAPI
- Function: Gets the COA components.'
* getPellCoa
- Returns: int
- Function: Gets the PELL cost of attendance.'
* getTotalCoa
- Returns: int
- Function: Gets the total cost of attendance.'
* in
- Returns: ICoaAPI
- Function: Filters by term.'
* in
- Returns: ICoaAPI
- Function: Filters by academic year.'
* inAcademicYear
- Returns: ICoaAPI
- Function: Filters by academic year.'
* inTerm
- Returns: ICoaAPI
- Function: Filters by term.'
disbursements
Purpose: Information about all student disbursements.
Type: IDisbursementsAPI
Available Methods:
* filterSeqNos
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for sequence numbers passing a given predicate.'
* filterStatuses
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for disbursement statuses passing a given predicate.'
* getCancelled
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for disbursements that have been cancelled.'
* getDisbursed
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for disbursements
that have not been cancelled (see getCancelled(boolean), include disbursed payments
and whose individual Total Disbursement Amounts are positive.'
* getIncrementalDisbursementAmount
- Returns: BigDecimal
- Function: No description available'
* getLateDisbursement
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for disbursements with the given Late Disbursement
Indicator.'
* getPpDisbursementAmount
- Returns: BigDecimal
- Function: No description available'
* getLatestPayments
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data with only latest payments.'
* getLockingPp
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for (non-)payment period-locking disbursements'
* getPpAppliedAmount
- Returns: BigDecimal
- Function: No description available'
* getPwd
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for disbursements with the given PWD Indicator.'
* getSeqNos
- Returns: Set<Integer>
- Function: No description available'
* getStatuses
- Returns: ISet<String>
- Function: No description available'
* getTotalDisbursementAmount
- Returns: BigDecimal
- Function: No description available'
* getWithSeqNo
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for a given sequence number.'
* getWithSeqNos
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for the given sequence numbers.'
* getWithStatus
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for the given disbursement status.'
* getWithStatuses
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for given disbursement statuses.'
* hasBeenCancelled
- Returns: boolean
- Function: No description available'
* isDisbursed
- Returns: boolean
- Function: No description available'
* isLateDisbursement
- Returns: boolean
- Function: No description available'
* isLockingPp
- Returns: boolean
- Function: No description available'
* isPwd
- Returns: boolean
- Function: No description available'
* getPpMaxDisbursementAmount
- Returns: BigDecimal
- Function: No description available'
* getPpTotalDecreasedAmount
- Returns: BigDecimal
- Function: No description available'
dloan
Purpose: Information related to Direct Loans.
Type: IDloanAPI
Available Methods:
* getLifetimeLimit
- Returns: int
- Function: No description available'
* getRemainingNsldsLimit
- Returns: int
- Function: No description available'
enrollment
Purpose: Information for the enrollment this script is being evaluated for.
Type: IEnrollmentAPI
Available Methods:
* belongsTo
- Returns: boolean
- Function: Checks if this enrollment belongs to a student.'
* getBindings
- Returns: IEnrollmentBindingsAPI
- Function: Gets bindings for this enrollment.'
* getEnrollmentStatus
- Returns: String
- Function: Gets the enrollment status.'
* getProgramStartDate
- Returns: LocalDate
- Function: Gets the program start date.'
* isEffective
- Returns: boolean
- Function: Checks if this enrollment is effective.'
enrollments
Purpose: Enrollments information.
Type: IEnrollmentsAPI
Available Methods:
* getHigherPriorityThan
- Returns: List<IEnrollmentAPI>
- Function: Gets a list of enrollments with higher priority than a given enrollment.'
* getOtherThan
- Returns: List<IEnrollmentAPI>
- Function: Gets a list of the enrollments that are different from this enrollment, no
matter the priority.'
financialPlan
Purpose: Information about the student's current financial plan.
Type: IFinancialPlanAPI
Available Methods:
* filterCommonLineUniqueIds
- Returns: T
- Function: Creates a narrowed-down, independent collection of data for CommonLine Unique Ids passing a given predicate.'
* getAcyCoa
- Returns: int
- Function: Deprecated.
Consider using the coa binding (ICoaAPI).'
* getAcyUnpackagedAmount
- Returns: BigDecimal
- Function: Deprecated.
Consider using the coa binding (ICoaAPI).'
* getCarryOn
- Returns: BigDecimal
- Function: No description available'
* getCommonLineUniqueIds
- Returns: Set<ICommonLineUniqueId>
- Function: No description available'
* getEnrollmentIntensities
- Returns: ISet<BigDecimal>
- Function: No description available'
* getEnrollmentStatuses
- Returns: ISet<String>
- Function: No description available'
* getFundStatuses
- Returns: ISet<String>
- Function: No description available'
* getMaxAmount
- Returns: BigDecimal
- Function: No description available'
* getProratedLimit
- Returns: BigDecimal
- Function: No description available'
* getVersion
- Returns: int
- Function: Gets the package version.'
* getWithCommonLineUniqueId
- Returns: T
- Function: Creates a narrowed-down, independent collection of data for the given CommonLine Unique Ids.'
* getWithCommonLineUniqueIds
- Returns: T
- Function: Creates a narrowed-down, independent collection of data for the given CommonLine Unique Ids.'
* isEligible
- Returns: boolean
- Function: No description available'
* isIsirUsedForCalculation
- Returns: boolean
- Function: Identifies ISIRs used while calculating this Financial Plan.'
* isProrated
- Returns: boolean
- Function: No description available'
* isUnmatchedCommonLineLoan
- Returns: boolean
- Function: Checks if a given CommonLine Loan (probably coming from the commonLineLoan binding) has not been matched
yet in the fund collection.'
fundAcceptance
Purpose: Provides access to all Fund Acceptance information for the student.
Type: IFundAcceptanceAPI
Available Methods:
* getWithStatuses
- Returns: T
- Function: Creates a narrowed-down, independent collection of fund acceptance data for given fund acceptance statuses.'
* filterNullableStatuses
- Returns: T
- Function: Creates a narrowed-down, independent collection of fund acceptance data for fund acceptance statuses passing a given predicate.'
* filterStatuses
- Returns: T
- Function: Creates a narrowed-down, independent collection of fund acceptance data for fund acceptance statuses passing a given predicate.'
* getNullableStatuses
- Returns: ISet<String>
- Function: No description available'
* getStatuses
- Returns: ISet<String>
- Function: No description available'
* getValidatedAcceptedAmount
- Returns: BigDecimal
- Function: No description available'
* getWithStatus
- Returns: T
- Function: Creates a narrowed-down, independent collection of fund acceptance data for the given fund acceptance status.'
fundCodeConfig
Purpose: Provides information about fund code configuration.
Type: IFundCodeConfigAPI
Available Methods:
* getFundCodesByPriority
- Returns: List<String>
- Function: No description available'
* getHigherPriorityFundCodes
- Returns: List<String>
- Function: No description available'
IMPORTANT REQUIREMENTS:
1. Each method usage must be explained in its full context
2. All data transformations must be detailed
3. Error handling for each method must be specified
4. Business implications of method results must be clear
## COMMENTING REQUIREMENTS
Your task is to create COMPREHENSIVE, CONTEXTUAL comments for this Oracle SFP Platform script.
FILE-LEVEL DOCUMENTATION REQUIREMENTS:
1. File Header (Using /** ... */ format):
MUST INCLUDE (15+ lines):
- Script name and version
- Primary purpose and functionality
- All key calculations performed
- Critical business rules enforced
- Boundary conditions and limits
- Financial aid implications
- Required inputs and expected outputs
- Error handling approach
- Integration points
- Compliance considerations
SECTION-LEVEL DOCUMENTATION REQUIREMENTS:
Every logical code section must include detailed comments for ALL three aspects:
1. CONDITIONALS Section:
Format:
// CONDITIONALS:
// Check [number]: [specific condition being evaluated]
// Variables: [list of variables and methods involved]
// Purpose: [detailed business reason for this check]
// Logic:
// - [step-by-step breakdown of the condition]
// - [how variables are used]
// - [any transformations applied]
// Success Path: [what happens when condition is true]
// Failure Path: [what happens when condition is false]
// Business Rules: [specific rules being enforced]
// Error Handling: [how errors are managed]
// Financial Impact: [effect on aid calculations]
// If N/A, explicitly state: "CONDITIONALS: N/A"
2. BOUNDARY CHECKS Section:
Format:
// BOUNDARY CHECKS:
// Check [number]: [specific limit being enforced]
// Source: [where boundary values come from]
// Variables: [variables and methods involved]
// Validation:
// - [how boundaries are checked]
// - [validation method details]
// Edge Cases:
// - [specific edge cases handled]
// - [how each is managed]
// Error Handling: [boundary violation management]
// Impact: [effect of boundary violations]
// If N/A, explicitly state: "BOUNDARY CHECKS: N/A"
3. ARITHMETIC Section:
Format:
// ARITHMETIC:
// Operation [number]: [name of calculation]
// Formula: [complete mathematical expression]
// Variables:
// - [each variable and its purpose]
// - [data types and units]
// Steps:
// 1. [detailed step-by-step breakdown]
// 2. [intermediate calculations]
// 3. [transformations applied]
// Business Context: [why this calculation is needed]
// Result: [meaning of the output]
// Financial Impact: [effect on aid calculations]
// Limitations: [any mathematical constraints]
// If N/A, explicitly state: "ARITHMETIC: N/A"
ADDITIONAL REQUIREMENTS:
1. Complex Logic Sections:
- Must break down multi-step operations
- Explain interactions between components
- Detail data flow and transformations
2. Error Handling:
- Document all error conditions
- Explain recovery procedures
- Detail logging and reporting
3. API Interactions:
- Document all platform method calls
- Explain data transformations
- Detail error handling
4. Financial Aid Impact:
- Explain effects on aid calculations
- Document regulatory compliance
- Detail student eligibility impact
Example Section With All Aspects:
// CONDITIONALS:
// Check 1: Payment Period Status Validation
// Variables: getLoanPaymentPeriods(), period.getStatus(), period.getStartDate()
// Purpose: Ensure only valid, active payment periods are included
// Logic:
// - Retrieve all loan payment periods
// - Filter based on status (!= "CANCELED")
// - Compare start dates with reference date
// Success Path: Period included in calculations
// Failure Path: Period excluded from totals
// Business Rules: Canceled periods must not affect grade level
// Error Handling: Invalid periods logged and skipped
// Financial Impact: Affects available loan amounts
//
// BOUNDARY CHECKS:
// Check 1: Payment Period Date Validation
// Source: Academic Calendar Configuration
// Variables: period.getStartDate(), referenceDate
// Validation:
// - Compare period start date with reference date
// - Ensure dates are not null
// Edge Cases:
// - Null dates are excluded
// - Future dates are filtered
// Error Handling: Invalid dates logged and skipped
// Impact: Prevents future periods from affecting current calculation
//
// ARITHMETIC:
// Operation 1: Payment Period Units Summation
// Formula: sum(validPeriods.map(period => period.getUnits()))
// Variables:
// - period.getUnits(): Decimal, represents credit hours
// - validPeriods: Array of filtered payment periods
// Steps:
// 1. Filter valid payment periods
// 2. Extract units from each period
// 3. Sum all units using reduce
// Business Context: Calculate total completed units for grade level
// Result: Total units affecting grade level
// Financial Impact: Determines loan eligibility amounts
// Limitations: Cannot exceed program maximum units
## Groovy Script for Analysis
```groovy
//file:noinspection UnnecessaryQualifiedReference
@groovy.transform.BaseScript(com.oracle.sfp.scripting.api.sdk.autocomplete.IsirUseSubsequentIsirScript)
package CHANGE_ME // this should be updated to your actual package name
import com.oracle.sfp.scripting.api.*
import com.oracle.sfp.scripting.api.util.*
def isirTXID_TRANSACTIONSOURCE = latestIsirRecord.getField(IsirField.TXID_TRANSACTIONSOURCE).getOrNull()
if (isirTXID_TRANSACTIONSOURCE != null) {
return true
}
```
## COMMENT GENERATION REQUIREMENTS:
1. Add comprehensive comments following the exact format specified
2. Every logical section must include all three aspects:
- CONDITIONALS
- BOUNDARY CHECKS
- ARITHMETIC
3. Mark any non-applicable aspect as "N/A" explicitly
4. Ensure line-by-line explanation of complex logic
5. Detail all financial aid implications
DO NOT modify the code itself. Add comments only.
REMEMBER:
- Comments must be exhaustively detailed
- Every logical section needs all three aspects
- Financial aid impact must be clear
- Business rules must be explicit
Return ONLY the fully commented Groovy script. No other text or explanations.
ISIR Discrepancy Evaluation
Name: isirDiscrepancyEvaluation
Purpose: Determine whether an ISIR correction for a given ISIR field is required.
In Baseline Config: Yes
Return Type: Void
# Oracle SFP Platform Script Documentation Generator
Your task is to create comprehensive, contextual comments for this Oracle SFP Platform Groovy script.
CRITICAL REQUIREMENTS:
1. Follow exact comment format specified
2. Include all three aspects for every section
3. Mark non-applicable aspects as "N/A"
4. Provide business context and financial impact
5. Detail all API interactions and data flows
## Script Purpose and Context
The script being analyzed is: "isirDiscrepancyEvaluation"
Primary Function: Determine whether an ISIR correction for a given ISIR field is required, and if so, what value from what source to
correct the ISIR field to.
Expected Output Type: Void
This script is part of the Oracle SFP Platform ecosystem and interacts with platform-specific APIs and data structures.
You must analyze this script in the context of financial aid processing workflows, ensuring compliance with:
1. Federal financial aid regulations
2. Academic progress requirements
3. Institutional policies
4. Program-specific rules
Your analysis must detail:
1. All conditional logic and its business implications
2. All boundary checks and their validation purposes
3. All calculations and their financial aid impact
4. Error handling and data validation
5. Integration points with platform APIs
## Available Platform Methods and Integrations
The script has access to the following Oracle SFP Platform integrations.
When commenting the code, you MUST explain how these specific methods and bindings are being used:
allAwardYearIsirs
Purpose: Provides access to all ISIRs for the student, accessible per award year.
Type: IAllAwardYearIsirsAPI
Available Methods:
No methods available
allAwardYearReceivedDocuments
Purpose: Provides access to all documents received for the student.
Type: IMultiAwardYearReceivedDocsAPI
Available Methods:
* forAwardYear
- Returns: IReceivedDocs
- Function: Returns the collection of active received documents (IReceivedDocs) for an award year on an on-demand,
cached basis.'
coa
Purpose: Provides access to all Cost of Attendance information for the student.
Type: ICoaAPI
Available Methods:
* getActiveCoa
- Returns: int
- Function: Gets the active cost of attendance.'
* getActualCoa
- Returns: int
- Function: Gets the actual cost of attendance.'
* getComponents
- Returns: ICoaComponentsAPI
- Function: Gets the COA components.'
* getPellCoa
- Returns: int
- Function: Gets the PELL cost of attendance.'
* getTotalCoa
- Returns: int
- Function: Gets the total cost of attendance.'
* in
- Returns: ICoaAPI
- Function: Filters by term.'
* in
- Returns: ICoaAPI
- Function: Filters by academic year.'
* inAcademicYear
- Returns: ICoaAPI
- Function: Filters by academic year.'
* inTerm
- Returns: ICoaAPI
- Function: Filters by term.'
disbursements
Purpose: Information about all student disbursements.
Type: IDisbursementsAPI
Available Methods:
* filterSeqNos
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for sequence numbers passing a given predicate.'
* filterStatuses
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for disbursement statuses passing a given predicate.'
* getCancelled
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for disbursements that have been cancelled.'
* getDisbursed
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for disbursements
that have not been cancelled (see getCancelled(boolean), include disbursed payments
and whose individual Total Disbursement Amounts are positive.'
* getIncrementalDisbursementAmount
- Returns: BigDecimal
- Function: No description available'
* getLateDisbursement
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for disbursements with the given Late Disbursement
Indicator.'
* getPpDisbursementAmount
- Returns: BigDecimal
- Function: No description available'
* getLatestPayments
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data with only latest payments.'
* getLockingPp
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for (non-)payment period-locking disbursements'
* getPpAppliedAmount
- Returns: BigDecimal
- Function: No description available'
* getPwd
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for disbursements with the given PWD Indicator.'
* getSeqNos
- Returns: Set<Integer>
- Function: No description available'
* getStatuses
- Returns: ISet<String>
- Function: No description available'
* getTotalDisbursementAmount
- Returns: BigDecimal
- Function: No description available'
* getWithSeqNo
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for a given sequence number.'
* getWithSeqNos
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for the given sequence numbers.'
* getWithStatus
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for the given disbursement status.'
* getWithStatuses
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for given disbursement statuses.'
* hasBeenCancelled
- Returns: boolean
- Function: No description available'
* isDisbursed
- Returns: boolean
- Function: No description available'
* isLateDisbursement
- Returns: boolean
- Function: No description available'
* isLockingPp
- Returns: boolean
- Function: No description available'
* isPwd
- Returns: boolean
- Function: No description available'
* getPpMaxDisbursementAmount
- Returns: BigDecimal
- Function: No description available'
* getPpTotalDecreasedAmount
- Returns: BigDecimal
- Function: No description available'
discrepancyEvaluationResult
Purpose: Binding that shall be populated by the script with the discrepancy evaluation result.
Type: IDiscrepancyEvaluationResultAPI
Available Methods:
* getStudentFollowUpReason
- Returns: String
- Function: Gets the student follow-up reason.'
* isNeedManualReview
- Returns: boolean
- Function: Gets the manual review status.'
* getAssumptionOverride
- Returns: String
- Function: Gets the assumption override.'
* getCorrectedValue
- Returns: String
- Function: Gets the corrected value.'
* getEmailAddress
- Returns: String
- Function: Gets the email address.'
* getHasDiscrepancy
- Returns: boolean
- Function: Gets the discrepancy existence status.'
* getHighSchoolName
- Returns: String
- Function: Gets the high school name.'
* getMessage
- Returns: String
- Function: Gets the discrepancy message.'
* getParentsEmailAddress
- Returns: String
- Function: Gets the parent's email address.'
* getRejectOverride
- Returns: String
- Function: Gets the reject override.'
* isStudentFollowUpRequired
- Returns: boolean
- Function: Gets the student follow-up required status.'
* setAssumptionOverride
- Returns: void
- Function: Sets the assumption override.'
* setCorrectedValue
- Returns: void
- Function: Sets the corrected value.'
* setEmailAddress
- Returns: void
- Function: Sets the email address.'
* setHasDiscrepancy
- Returns: void
- Function: Sets the discrepancy existence status.'
* setHighSchoolName
- Returns: void
- Function: Sets the high school name.'
* setMessage
- Returns: void
- Function: Sets the discrepancy message.'
* setNeedManualReview
- Returns: void
- Function: Sets the manual review status.'
* setParentsEmailAddress
- Returns: void
- Function: Sets the parent's email address.'
* setRejectOverride
- Returns: void
- Function: Sets the reject override.'
* setStudentFollowUpReason
- Returns: void
- Function: Sets the student follow-up reason.'
* setStudentFollowUpRequired
- Returns: void
- Function: Sets the student follow-up required status.'
dloan
Purpose: Information related to Direct Loans.
Type: IDloanAPI
Available Methods:
* getLifetimeLimit
- Returns: int
- Function: No description available'
* getRemainingNsldsLimit
- Returns: int
- Function: No description available'
enrollment
Purpose: Information for the enrollment this script is being evaluated for.
Type: IEnrollmentAPI
Available Methods:
* belongsTo
- Returns: boolean
- Function: Checks if this enrollment belongs to a student.'
* getBindings
- Returns: IEnrollmentBindingsAPI
- Function: Gets bindings for this enrollment.'
* getEnrollmentStatus
- Returns: String
- Function: Gets the enrollment status.'
* getProgramStartDate
- Returns: LocalDate
- Function: Gets the program start date.'
* isEffective
- Returns: boolean
- Function: Checks if this enrollment is effective.'
enrollments
Purpose: Enrollments information.
Type: IEnrollmentsAPI
Available Methods:
* getHigherPriorityThan
- Returns: List<IEnrollmentAPI>
- Function: Gets a list of enrollments with higher priority than a given enrollment.'
* getOtherThan
- Returns: List<IEnrollmentAPI>
- Function: Gets a list of the enrollments that are different from this enrollment, no
matter the priority.'
financialPlan
Purpose: Information about the student's current financial plan.
Type: IFinancialPlanAPI
Available Methods:
* filterCommonLineUniqueIds
- Returns: T
- Function: Creates a narrowed-down, independent collection of data for CommonLine Unique Ids passing a given predicate.'
* getAcyCoa
- Returns: int
- Function: Deprecated.
Consider using the coa binding (ICoaAPI).'
* getAcyUnpackagedAmount
- Returns: BigDecimal
- Function: Deprecated.
Consider using the coa binding (ICoaAPI).'
* getCarryOn
- Returns: BigDecimal
- Function: No description available'
* getCommonLineUniqueIds
- Returns: Set<ICommonLineUniqueId>
- Function: No description available'
* getEnrollmentIntensities
- Returns: ISet<BigDecimal>
- Function: No description available'
* getEnrollmentStatuses
- Returns: ISet<String>
- Function: No description available'
* getFundStatuses
- Returns: ISet<String>
- Function: No description available'
* getMaxAmount
- Returns: BigDecimal
- Function: No description available'
* getProratedLimit
- Returns: BigDecimal
- Function: No description available'
* getVersion
- Returns: int
- Function: Gets the package version.'
* getWithCommonLineUniqueId
- Returns: T
- Function: Creates a narrowed-down, independent collection of data for the given CommonLine Unique Ids.'
* getWithCommonLineUniqueIds
- Returns: T
- Function: Creates a narrowed-down, independent collection of data for the given CommonLine Unique Ids.'
* isEligible
- Returns: boolean
- Function: No description available'
* isIsirUsedForCalculation
- Returns: boolean
- Function: Identifies ISIRs used while calculating this Financial Plan.'
* isProrated
- Returns: boolean
- Function: No description available'
* isUnmatchedCommonLineLoan
- Returns: boolean
- Function: Checks if a given CommonLine Loan (probably coming from the commonLineLoan binding) has not been matched
yet in the fund collection.'
fundAcceptance
Purpose: Provides access to all Fund Acceptance information for the student.
Type: IFundAcceptanceAPI
Available Methods:
* getWithStatuses
- Returns: T
- Function: Creates a narrowed-down, independent collection of fund acceptance data for given fund acceptance statuses.'
* filterNullableStatuses
- Returns: T
- Function: Creates a narrowed-down, independent collection of fund acceptance data for fund acceptance statuses passing a given predicate.'
* filterStatuses
- Returns: T
- Function: Creates a narrowed-down, independent collection of fund acceptance data for fund acceptance statuses passing a given predicate.'
* getNullableStatuses
- Returns: ISet<String>
- Function: No description available'
* getStatuses
- Returns: ISet<String>
- Function: No description available'
* getValidatedAcceptedAmount
- Returns: BigDecimal
- Function: No description available'
* getWithStatus
- Returns: T
- Function: Creates a narrowed-down, independent collection of fund acceptance data for the given fund acceptance status.'
fundCodeConfig
Purpose: Provides information about fund code configuration.
Type: IFundCodeConfigAPI
Available Methods:
* getFundCodesByPriority
- Returns: List<String>
- Function: No description available'
* getHigherPriorityFundCodes
- Returns: List<String>
- Function: No description available'
helper
Purpose: Helper interface with utility methods.
Type: IGroovyScriptHelper
Available Methods:
* filterCourses
- Returns: ICourseFilterAPI
- Function: No description available'
* getAwardYear
- Returns: IAwardYearHelperAPI
- Function: Returns Award Year-specific helper.'
* getIntegerFromSignedIsirNumber
- Returns: Integer
- Function: Parses a number represented in ISIR format to Integer.'
* getIsirDate
- Returns: Date
- Function: No description available'
* getIsirDateFormatStr
- Returns: String
- Function: No description available'
* getSignedIsirNumberFromInteger
- Returns: String
- Function: No description available'
* isirRecordsDifferForListedFields
- Returns: boolean
- Function: No description available'
* mapRanges
- Returns: IRangeMapStarterAPI
- Function: No description available'
* newAwardYearPeriod
- Returns: IAwardYearAPI
- Function: Returns the Award Year having a given end year.'
* newPeriod
- Returns: IPeriod
- Function: Returns the IPeriod for one single day.'
* newPeriod
- Returns: IPeriod
- Function: Returns a IPeriod given its start and end dates.'
isirRecord
Purpose: The ISIR being evaluated.
Type: IIsirRecordAPI
Available Methods:
* getActiveIsirForAwardYear
- Returns: Boolean
- Function: Gets the active ISIR for award year status.'
* getAllFields
- Returns: @NonNull Map<IsirField<?>,IIsirFieldValue<?>>
- Function: Retrieves all field values (WARNING: can only be used with 2025+ ISIRs).'
* getAssumptions
- Returns: List<IAssumptionAPI>
- Function: Get the assumptions.'
* getAwardYear
- Returns: String
- Function: Gets the award year.'
* getCommentCodes
- Returns: List<ICommentCodeAPI>
- Function: Get the comment codes.'
* getCpsTransNumber
- Returns: String
- Function: Gets the CPS transaction number.'
* getCurrentSsn
- Returns: ISocialSecurityNumber
- Function: Gets the student's current SSN.'
* getDiscrepancies
- Returns: List<IDiscrepancyAPI>
- Function: Get the discrepancies.'
* getField
- Returns: <T> @NonNull IIsirFieldValue<T>
- Function: Retrieves the value of a given field (WARNING: can only be used with 2025+ ISIRs).'
* getFirstName
- Returns: String
- Function: Gets the student's first name.'
* getHighlightFlags
- Returns: List<IHighlightFlagAPI>
- Function: Get the highlight flags.'
* getIsirFieldValue
- Returns: String
- Function: Gets the value of an ISIR field (WARNING: This method can only be used up to 2024 award year).'
* getIsirFieldValueOrNull
- Returns: String
- Function: Gets the value of an ISIR field (WARNING: This method can only be used up to 2024 award year).'
* getIsirFieldValues
- Returns: Map<String,String>
- Function: Get a map containing all ISIR fields (WARNING: This method can only be used up to 2024 award year).'
* getIsirIdOriginalNameId
- Returns: String
- Function: Gets the student's original name ID.'
* getIsirIdSsn
- Returns: ISocialSecurityNumber
- Function: Gets the student's original SSN.'
* getIsirIdYearIndicator
- Returns: String
- Function: Gets the ISIR's year indicator.'
* getIsirStatus
- Returns: String
- Function: Gets the ISIR status.'
* getIsirStatusBeforeCorrection
- Returns: String
- Function: When ISIR Status is Corrected returns the previous ISIR Status.'
* getLastName
- Returns: String
- Function: Gets the student's last name.'
* getMiddleName
- Returns: String
- Function: Gets the student's middle name.'
* getReceivedDate
- Returns: Date
- Function: Gets the system receipt date of the ISIR.'
* getRejectCodes
- Returns: List<IRejectCodeAPI>
- Function: Get the reject codes.'
* getSchoolCode1
- Returns: String
- Function: Gets the school code 1.'
* getSchoolCode10
- Returns: String
- Function: Gets the school code 10.'
* getSchoolCode2
- Returns: String
- Function: Gets the school code 2.'
* getSchoolCode3
- Returns: String
- Function: Gets the school code 3.'
* getSchoolCode4
- Returns: String
- Function: Gets the school code 4.'
* getSchoolCode5
- Returns: String
- Function: Gets the school code 5.'
* getSchoolCode6
- Returns: String
- Function: Gets the school code 6.'
* getSchoolCode7
- Returns: String
- Function: Gets the school code 7.'
* getSchoolCode8
- Returns: String
- Function: Gets the school code 8.'
* getSchoolCode9
- Returns: String
- Function: Gets the school code 9.'
* isCompatibleWithPackaging
- Returns: boolean
- Function: Checks if this ISIR satisfies minimal acceptance criteria for automatic Financial
Aid Package Calculation.'
* isUnverified
- Returns: boolean
- Function: Gets the ISIR verification status.'
log
Purpose: Provides logging capability to scripts.
Type: IScriptLoggerAPI
Available Methods:
* debug
- Returns: boolean
- Function: No description available'
* debug
- Returns: void
- Function: No description available'
* error
- Returns: void
- Function: No description available'
* info
- Returns: boolean
- Function: No description available'
* info
- Returns: void
- Function: No description available'
* warn
- Returns: void
- Function: No description available'
previousFinancialPlan
Purpose: Provides access to previous financial plans.
Type: IPreviousFinancialPlanAPI
Available Methods:
* effectiveAt
- Returns: T
- Function: Gets a previous financial plan that was effective at a given time.'
* effectiveAt
- Returns: T
- Function: Gets a previous financial plan that was effective on a given local date.'
* effectiveAt
- Returns: T
- Function: Gets a previous financial plan that was effective at a given local time.'
* withVersion
- Returns: T
- Function: Gets a previous financial plan with a given version.'
previousIsirRecords
Purpose: Previous ISIR records with the same award year as the ISIR being evaluated, ordered by descending CPS numbers.
Type: List
Available Methods:
No methods available
r2t4
Purpose: Provides access to all R2T4 information for the student.
Type: IR2t4API
Available Methods:
* filterOldas
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for OLDAs passing a given predicate.'
* filterProcessStatuses
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for process statuses passing a given predicate.'
* getGrossAmountDecreased
- Returns: BigDecimal
- Function: No description available'
* getNetAmountDecreased
- Returns: BigDecimal
- Function: No description available'
* getNullableOldas
- Returns: ISet<LocalDate>
- Function: No description available'
* getNullableProcessStatuses
- Returns: ISet<String>
- Function: No description available'
* getOldas
- Returns: ISet<LocalDate>
- Function: No description available'
* getProcessStatuses
- Returns: ISet<String>
- Function: No description available'
* getWithLatest
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for the given isLatest status.'
* getWithOlda
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for the given process OLDA.'
* getWithOldas
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for given process OLDAs.'
* getWithProcessStatus
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for the given process status.'
* getWithProcessStatuses
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for given process statuses.'
* isEligibleForPWD
- Returns: boolean
- Function: No description available'
* isLatest
- Returns: boolean
- Function: Checks if at least one R2T4 process in the collection is the latest.'
receivedDocuments
Purpose: Active documents for the student for the award year of the ISIR being evaluated.
Type: IReceivedDocs
Available Methods:
* get
- Returns: IReceivedDoc
- Function: Return doc for specified code and Student, if it exists.'
* get
- Returns: IReceivedDoc
- Function: Return doc for specified code and owners, if it exists.'
* get
- Returns: IReceivedDoc
- Function: Return doc for specified code, owners, and subtype, if it exists.'
* getDocumentsForDocCode
- Returns: List<IReceivedDoc>
- Function: Return list with doc or doc subtpyes for specified code and Student, if it exists.'
* getDocumentsForDocCode
- Returns: List<IReceivedDoc>
- Function: Return list with doc or doc subtpyes for specified code and owners, if it exists.'
* getValidDocCodes
- Returns: Set<String>
- Function: No description available'
* hasDoc
- Returns: boolean
- Function: No description available'
* hasDoc
- Returns: boolean
- Function: Return true if doc exists with the right code and owners'
* noDocs
- Returns: boolean
- Function: No description available'
* put
- Returns: void
- Function: No description available'
* put
- Returns: void
- Function: No description available'
student
Purpose: Student information.
Type: IFasStudentAPI
Available Methods:
* getAddressState
- Returns: String
- Function: Gets the federal state in the student's main mailing address, as a two-letter acronym.'
* getBahIndicator
- Returns: Boolean
- Function: Gets the school employee dependet status.'
* getCampusCode
- Returns: String
- Function: Gets the campus code.'
* getCompletionDate
- Returns: Date
- Function: Gets the completion date.'
* getDateOfBirth
- Returns: ISecureLocalDate
- Function: Gets the date of birth.'
* getDependencyStatus
- Returns: String
- Function: Gets the dependency status.'
* getDeterminationDate
- Returns: Date
- Function: Gets the determination date.'
* getDocuments
- Returns: Map<String,IReceivedDoc>
- Function: Gets the student's documents, indexed by document code.'
* getEmail
- Returns: String
- Function: Gets the e-mail.'
* getEnrollmentStatus
- Returns: String
- Function: Gets the enrollment status.'
* getExternalStudentId
- Returns: String
- Function: Gets the external student ID (unique per student).'
* getFinancialAidRequested
- Returns: Boolean
- Function: Gets the financial aid request status.'
* getFirstName
- Returns: String
- Function: Gets the first name.'
* getGender
- Returns: String
- Function: Gets the gender.'
* getHighSchoolEquivalency
- Returns: Boolean
- Function: Gets the high school equivalency status.'
* getLastName
- Returns: String
- Function: Gets the last name.'
* getMiddleName
- Returns: String
- Function: Gets the middle name.'
* getPersonId
- Returns: Long
- Function: Gets the person ID.'
* getProgramType
- Returns: String
- Function: Gets the program type.'
* getRecentFinancialAidHistoryRecords
- Returns: IRecentFahRecordsAPI
- Function: Gets the recent financial aid records.'
* getSchoolCode
- Returns: String
- Function: Gets the school code.'
* getSchoolEmployee
- Returns: Boolean
- Function: Gets the school employee status.'
* getSchoolEmployeeDependent
- Returns: Boolean
- Function: Gets the school employee dependent status.'
* getSsn
- Returns: ISocialSecurityNumber
- Function: Gets the SSN.'
* getStudentId
- Returns: Long
- Function: Gets the student ID (or enrollment ID, unique per enrollment).'
throwsDocumentIsFaUnacceptableExceptionParam
Purpose: This binding can be set within a Groovy script to control whether a subsequent call to
IReceivedDoc.isAcceptable() or IReceivedDocDocumentAPI.isAcceptable() triggers an exception or not when a
document is unnaceptable. The default value is true.
Type: Boolean
Available Methods:
No methods available
IMPORTANT REQUIREMENTS:
1. Each method usage must be explained in its full context
2. All data transformations must be detailed
3. Error handling for each method must be specified
4. Business implications of method results must be clear
## COMMENTING REQUIREMENTS
Your task is to create COMPREHENSIVE, CONTEXTUAL comments for this Oracle SFP Platform script.
FILE-LEVEL DOCUMENTATION REQUIREMENTS:
1. File Header (Using /** ... */ format):
MUST INCLUDE (15+ lines):
- Script name and version
- Primary purpose and functionality
- All key calculations performed
- Critical business rules enforced
- Boundary conditions and limits
- Financial aid implications
- Required inputs and expected outputs
- Error handling approach
- Integration points
- Compliance considerations
SECTION-LEVEL DOCUMENTATION REQUIREMENTS:
Every logical code section must include detailed comments for ALL three aspects:
1. CONDITIONALS Section:
Format:
// CONDITIONALS:
// Check [number]: [specific condition being evaluated]
// Variables: [list of variables and methods involved]
// Purpose: [detailed business reason for this check]
// Logic:
// - [step-by-step breakdown of the condition]
// - [how variables are used]
// - [any transformations applied]
// Success Path: [what happens when condition is true]
// Failure Path: [what happens when condition is false]
// Business Rules: [specific rules being enforced]
// Error Handling: [how errors are managed]
// Financial Impact: [effect on aid calculations]
// If N/A, explicitly state: "CONDITIONALS: N/A"
2. BOUNDARY CHECKS Section:
Format:
// BOUNDARY CHECKS:
// Check [number]: [specific limit being enforced]
// Source: [where boundary values come from]
// Variables: [variables and methods involved]
// Validation:
// - [how boundaries are checked]
// - [validation method details]
// Edge Cases:
// - [specific edge cases handled]
// - [how each is managed]
// Error Handling: [boundary violation management]
// Impact: [effect of boundary violations]
// If N/A, explicitly state: "BOUNDARY CHECKS: N/A"
3. ARITHMETIC Section:
Format:
// ARITHMETIC:
// Operation [number]: [name of calculation]
// Formula: [complete mathematical expression]
// Variables:
// - [each variable and its purpose]
// - [data types and units]
// Steps:
// 1. [detailed step-by-step breakdown]
// 2. [intermediate calculations]
// 3. [transformations applied]
// Business Context: [why this calculation is needed]
// Result: [meaning of the output]
// Financial Impact: [effect on aid calculations]
// Limitations: [any mathematical constraints]
// If N/A, explicitly state: "ARITHMETIC: N/A"
ADDITIONAL REQUIREMENTS:
1. Complex Logic Sections:
- Must break down multi-step operations
- Explain interactions between components
- Detail data flow and transformations
2. Error Handling:
- Document all error conditions
- Explain recovery procedures
- Detail logging and reporting
3. API Interactions:
- Document all platform method calls
- Explain data transformations
- Detail error handling
4. Financial Aid Impact:
- Explain effects on aid calculations
- Document regulatory compliance
- Detail student eligibility impact
Example Section With All Aspects:
// CONDITIONALS:
// Check 1: Payment Period Status Validation
// Variables: getLoanPaymentPeriods(), period.getStatus(), period.getStartDate()
// Purpose: Ensure only valid, active payment periods are included
// Logic:
// - Retrieve all loan payment periods
// - Filter based on status (!= "CANCELED")
// - Compare start dates with reference date
// Success Path: Period included in calculations
// Failure Path: Period excluded from totals
// Business Rules: Canceled periods must not affect grade level
// Error Handling: Invalid periods logged and skipped
// Financial Impact: Affects available loan amounts
//
// BOUNDARY CHECKS:
// Check 1: Payment Period Date Validation
// Source: Academic Calendar Configuration
// Variables: period.getStartDate(), referenceDate
// Validation:
// - Compare period start date with reference date
// - Ensure dates are not null
// Edge Cases:
// - Null dates are excluded
// - Future dates are filtered
// Error Handling: Invalid dates logged and skipped
// Impact: Prevents future periods from affecting current calculation
//
// ARITHMETIC:
// Operation 1: Payment Period Units Summation
// Formula: sum(validPeriods.map(period => period.getUnits()))
// Variables:
// - period.getUnits(): Decimal, represents credit hours
// - validPeriods: Array of filtered payment periods
// Steps:
// 1. Filter valid payment periods
// 2. Extract units from each period
// 3. Sum all units using reduce
// Business Context: Calculate total completed units for grade level
// Result: Total units affecting grade level
// Financial Impact: Determines loan eligibility amounts
// Limitations: Cannot exceed program maximum units
## Groovy Script for Analysis
```groovy
//file:noinspection UnnecessaryQualifiedReference
@groovy.transform.BaseScript(com.oracle.sfp.scripting.api.sdk.autocomplete.IsirDiscrepancyEvaluationScript)
package CHANGE_ME // this should be updated to your actual package name
import com.oracle.sfp.scripting.api.*
import com.oracle.sfp.scripting.api.util.*
//Variable definitions
def isirSPOUSE_FILED1040OR1040NR = isirRecord.getField(IsirField.SPOUSE_FILED1040OR1040NR).getOrNull()
def docValue = ""
//1040 discrepancy rules
if (receivedDocuments.hasDoc("1040","Student Spouse") && receivedDocuments.get("1040","Student Spouse").isAcceptable()) {
if (receivedDocuments.get("1040", "Student Spouse").getDocumentField("AC1084") != null && !receivedDocuments.get("1040", "Student Spouse").getDocumentField("AC1084").isAllWhitespace()) {
docValue = receivedDocuments.get("1040", "Student Spouse").getDocumentField("AC1084")
if ((docValue == "1040" || docValue == "1040NR") && (isirSPOUSE_FILED1040OR1040NR == "2" || isirSPOUSE_FILED1040OR1040NR == null)) {
discrepancyEvaluationResult.hasDiscrepancy = true
discrepancyEvaluationResult.correctedValue = "1"
return
}
}
}
//1040x discrepancy rules
if (receivedDocuments.hasDoc("1040x","Student Spouse") && receivedDocuments.get("1040x","Student Spouse").isAcceptable()) {
if (receivedDocuments.get("1040x", "Student Spouse").getDocumentField("AC1084") != null && !receivedDocuments.get("1040x", "Student Spouse").getDocumentField("AC1084").isAllWhitespace()) {
docValue = receivedDocuments.get("1040x", "Student Spouse").getDocumentField("AC1084")
if ((docValue == "1040" || docValue == "1040NR") && (isirSPOUSE_FILED1040OR1040NR == "2" || isirSPOUSE_FILED1040OR1040NR == null)) {
discrepancyEvaluationResult.hasDiscrepancy = true
discrepancyEvaluationResult.correctedValue = "1"
return
}
}
}
//Tax Transcript discrepancy rules
if (receivedDocuments.hasDoc("TaxReturnTranscript","Student Spouse") && receivedDocuments.get("TaxReturnTranscript","Student Spouse").isAcceptable()) {
if (receivedDocuments.get("TaxReturnTranscript", "Student Spouse").getDocumentField("AC1084") != null && !receivedDocuments.get("TaxReturnTranscript", "Student Spouse").getDocumentField("AC1084").isAllWhitespace()) {
docValue = receivedDocuments.get("TaxReturnTranscript", "Student Spouse").getDocumentField("AC1084")
if ((docValue == "1040" || docValue == "1040NR") && (isirSPOUSE_FILED1040OR1040NR == "2" || isirSPOUSE_FILED1040OR1040NR == null)) {
discrepancyEvaluationResult.hasDiscrepancy = true
discrepancyEvaluationResult.correctedValue = "1"
return
}
}
}
```
## COMMENT GENERATION REQUIREMENTS:
1. Add comprehensive comments following the exact format specified
2. Every logical section must include all three aspects:
- CONDITIONALS
- BOUNDARY CHECKS
- ARITHMETIC
3. Mark any non-applicable aspect as "N/A" explicitly
4. Ensure line-by-line explanation of complex logic
5. Detail all financial aid implications
DO NOT modify the code itself. Add comments only.
REMEMBER:
- Comments must be exhaustively detailed
- Every logical section needs all three aspects
- Financial aid impact must be clear
- Business rules must be explicit
Return ONLY the fully commented Groovy script. No other text or explanations.
ISIR Highlights Documents Required
Name: isirHighlightsDocumentsRequired
Purpose: Determine the documents required to resolve an ISIR highlight.
In Baseline Config: No
Return Type: Void
# Oracle SFP Platform Script Documentation Generator
Your task is to create comprehensive, contextual comments for this Oracle SFP Platform Groovy script.
CRITICAL REQUIREMENTS:
1. Follow exact comment format specified
2. Include all three aspects for every section
3. Mark non-applicable aspects as "N/A"
4. Provide business context and financial impact
5. Detail all API interactions and data flows
## Script Purpose and Context
The script being analyzed is: "isirHighlightsDocumentsRequired"
Primary Function: Determine documents required to resolve an ISIR highlight.
Expected Output Type: Void
This script is part of the Oracle SFP Platform ecosystem and interacts with platform-specific APIs and data structures.
You must analyze this script in the context of financial aid processing workflows, ensuring compliance with:
1. Federal financial aid regulations
2. Academic progress requirements
3. Institutional policies
4. Program-specific rules
Your analysis must detail:
1. All conditional logic and its business implications
2. All boundary checks and their validation purposes
3. All calculations and their financial aid impact
4. Error handling and data validation
5. Integration points with platform APIs
## Available Platform Methods and Integrations
The script has access to the following Oracle SFP Platform integrations.
When commenting the code, you MUST explain how these specific methods and bindings are being used:
AGGREGATES_PERKINS_FLAGS
Purpose: Constant value for the FahRecordType enum.
Type: FahRecordType
Available Methods:
No methods available
GRANT_PAYMENT
Purpose: Constant value for the FahRecordType enum.
Type: FahRecordType
Available Methods:
No methods available
LOAN_DETAIL
Purpose: Constant value for the FahRecordType enum.
Type: FahRecordType
Available Methods:
No methods available
OVERPAYMENT
Purpose: Constant value for the FahRecordType enum.
Type: FahRecordType
Available Methods:
No methods available
allAwardYearReceivedDocuments
Purpose: Provides access to all documents received for the student.
Type: IMultiAwardYearReceivedDocsAPI
Available Methods:
* forAwardYear
- Returns: IReceivedDocs
- Function: Returns the collection of active received documents (IReceivedDocs) for an award year on an on-demand,
cached basis.'
coa
Purpose: Provides access to all Cost of Attendance information for the student.
Type: ICoaAPI
Available Methods:
* getActiveCoa
- Returns: int
- Function: Gets the active cost of attendance.'
* getActualCoa
- Returns: int
- Function: Gets the actual cost of attendance.'
* getComponents
- Returns: ICoaComponentsAPI
- Function: Gets the COA components.'
* getPellCoa
- Returns: int
- Function: Gets the PELL cost of attendance.'
* getTotalCoa
- Returns: int
- Function: Gets the total cost of attendance.'
* in
- Returns: ICoaAPI
- Function: Filters by term.'
* in
- Returns: ICoaAPI
- Function: Filters by academic year.'
* inAcademicYear
- Returns: ICoaAPI
- Function: Filters by academic year.'
* inTerm
- Returns: ICoaAPI
- Function: Filters by term.'
disbursements
Purpose: Information about all student disbursements.
Type: IDisbursementsAPI
Available Methods:
* filterSeqNos
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for sequence numbers passing a given predicate.'
* filterStatuses
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for disbursement statuses passing a given predicate.'
* getCancelled
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for disbursements that have been cancelled.'
* getDisbursed
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for disbursements
that have not been cancelled (see getCancelled(boolean), include disbursed payments
and whose individual Total Disbursement Amounts are positive.'
* getIncrementalDisbursementAmount
- Returns: BigDecimal
- Function: No description available'
* getLateDisbursement
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for disbursements with the given Late Disbursement
Indicator.'
* getPpDisbursementAmount
- Returns: BigDecimal
- Function: No description available'
* getLatestPayments
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data with only latest payments.'
* getLockingPp
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for (non-)payment period-locking disbursements'
* getPpAppliedAmount
- Returns: BigDecimal
- Function: No description available'
* getPwd
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for disbursements with the given PWD Indicator.'
* getSeqNos
- Returns: Set<Integer>
- Function: No description available'
* getStatuses
- Returns: ISet<String>
- Function: No description available'
* getTotalDisbursementAmount
- Returns: BigDecimal
- Function: No description available'
* getWithSeqNo
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for a given sequence number.'
* getWithSeqNos
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for the given sequence numbers.'
* getWithStatus
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for the given disbursement status.'
* getWithStatuses
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for given disbursement statuses.'
* hasBeenCancelled
- Returns: boolean
- Function: No description available'
* isDisbursed
- Returns: boolean
- Function: No description available'
* isLateDisbursement
- Returns: boolean
- Function: No description available'
* isLockingPp
- Returns: boolean
- Function: No description available'
* isPwd
- Returns: boolean
- Function: No description available'
* getPpMaxDisbursementAmount
- Returns: BigDecimal
- Function: No description available'
* getPpTotalDecreasedAmount
- Returns: BigDecimal
- Function: No description available'
dloan
Purpose: Information related to Direct Loans.
Type: IDloanAPI
Available Methods:
* getLifetimeLimit
- Returns: int
- Function: No description available'
* getRemainingNsldsLimit
- Returns: int
- Function: No description available'
documentRequest
Purpose: Binding that shall be populated by the script with the selected documents.
Type: IIsirRequiredDocsAPI
Available Methods:
* addAnyDocuments
- Returns: void
- Function: Adds a list of documents, any one in the list is required.'
* addAnyDocuments
- Returns: void
- Function: Adds a list of documents, any one in the list is required.'
* addDocument
- Returns: void
- Function: Adds a required document.'
* addDocument
- Returns: void
- Function: Adds a required document.'
* addDocument
- Returns: void
- Function: Adds a required document.'
* any
- Returns: IIsirRequiredDocsAPI
- Function: No description available'
* clear
- Returns: void
- Function: Clears all docs.'
* doc
- Returns: IIsirRequiredDocsAPI
- Function: No description available'
* getAdditionalDocRequestMessages
- Returns: List<String>
- Function: No description available'
* getValidDocCodes
- Returns: Set<String>
- Function: No description available'
* hasDocument
- Returns: boolean
- Function: Returns true if the document has been added, either as a regular request
or an 'any' request.'
* hasDocument
- Returns: boolean
- Function: Returns true if the document has been added, either as a regular request
or an 'any' request.'
* isEmpty
- Returns: boolean
- Function: Checks if these requirements are empty.'
* setValidDocCodes
- Returns: void
- Function: No description available'
enrollment
Purpose: Information for the enrollment this script is being evaluated for.
Type: IEnrollmentAPI
Available Methods:
* belongsTo
- Returns: boolean
- Function: Checks if this enrollment belongs to a student.'
* getBindings
- Returns: IEnrollmentBindingsAPI
- Function: Gets bindings for this enrollment.'
* getEnrollmentStatus
- Returns: String
- Function: Gets the enrollment status.'
* getProgramStartDate
- Returns: LocalDate
- Function: Gets the program start date.'
* isEffective
- Returns: boolean
- Function: Checks if this enrollment is effective.'
enrollments
Purpose: Enrollments information.
Type: IEnrollmentsAPI
Available Methods:
* getHigherPriorityThan
- Returns: List<IEnrollmentAPI>
- Function: Gets a list of enrollments with higher priority than a given enrollment.'
* getOtherThan
- Returns: List<IEnrollmentAPI>
- Function: Gets a list of the enrollments that are different from this enrollment, no
matter the priority.'
financialPlan
Purpose: Information about the student's current financial plan.
Type: IFinancialPlanAPI
Available Methods:
* filterCommonLineUniqueIds
- Returns: T
- Function: Creates a narrowed-down, independent collection of data for CommonLine Unique Ids passing a given predicate.'
* getAcyCoa
- Returns: int
- Function: Deprecated.
Consider using the coa binding (ICoaAPI).'
* getAcyUnpackagedAmount
- Returns: BigDecimal
- Function: Deprecated.
Consider using the coa binding (ICoaAPI).'
* getCarryOn
- Returns: BigDecimal
- Function: No description available'
* getCommonLineUniqueIds
- Returns: Set<ICommonLineUniqueId>
- Function: No description available'
* getEnrollmentIntensities
- Returns: ISet<BigDecimal>
- Function: No description available'
* getEnrollmentStatuses
- Returns: ISet<String>
- Function: No description available'
* getFundStatuses
- Returns: ISet<String>
- Function: No description available'
* getMaxAmount
- Returns: BigDecimal
- Function: No description available'
* getProratedLimit
- Returns: BigDecimal
- Function: No description available'
* getVersion
- Returns: int
- Function: Gets the package version.'
* getWithCommonLineUniqueId
- Returns: T
- Function: Creates a narrowed-down, independent collection of data for the given CommonLine Unique Ids.'
* getWithCommonLineUniqueIds
- Returns: T
- Function: Creates a narrowed-down, independent collection of data for the given CommonLine Unique Ids.'
* isEligible
- Returns: boolean
- Function: No description available'
* isIsirUsedForCalculation
- Returns: boolean
- Function: Identifies ISIRs used while calculating this Financial Plan.'
* isProrated
- Returns: boolean
- Function: No description available'
* isUnmatchedCommonLineLoan
- Returns: boolean
- Function: Checks if a given CommonLine Loan (probably coming from the commonLineLoan binding) has not been matched
yet in the fund collection.'
fundAcceptance
Purpose: Provides access to all Fund Acceptance information for the student.
Type: IFundAcceptanceAPI
Available Methods:
* getWithStatuses
- Returns: T
- Function: Creates a narrowed-down, independent collection of fund acceptance data for given fund acceptance statuses.'
* filterNullableStatuses
- Returns: T
- Function: Creates a narrowed-down, independent collection of fund acceptance data for fund acceptance statuses passing a given predicate.'
* filterStatuses
- Returns: T
- Function: Creates a narrowed-down, independent collection of fund acceptance data for fund acceptance statuses passing a given predicate.'
* getNullableStatuses
- Returns: ISet<String>
- Function: No description available'
* getStatuses
- Returns: ISet<String>
- Function: No description available'
* getValidatedAcceptedAmount
- Returns: BigDecimal
- Function: No description available'
* getWithStatus
- Returns: T
- Function: Creates a narrowed-down, independent collection of fund acceptance data for the given fund acceptance status.'
fundCodeConfig
Purpose: Provides information about fund code configuration.
Type: IFundCodeConfigAPI
Available Methods:
* getFundCodesByPriority
- Returns: List<String>
- Function: No description available'
* getHigherPriorityFundCodes
- Returns: List<String>
- Function: No description available'
helper
Purpose: Helper interface with utility methods.
Type: IGroovyScriptHelper
Available Methods:
* filterCourses
- Returns: ICourseFilterAPI
- Function: No description available'
* getAwardYear
- Returns: IAwardYearHelperAPI
- Function: Returns Award Year-specific helper.'
* getIntegerFromSignedIsirNumber
- Returns: Integer
- Function: Parses a number represented in ISIR format to Integer.'
* getIsirDate
- Returns: Date
- Function: No description available'
* getIsirDateFormatStr
- Returns: String
- Function: No description available'
* getSignedIsirNumberFromInteger
- Returns: String
- Function: No description available'
* isirRecordsDifferForListedFields
- Returns: boolean
- Function: No description available'
* mapRanges
- Returns: IRangeMapStarterAPI
- Function: No description available'
* newAwardYearPeriod
- Returns: IAwardYearAPI
- Function: Returns the Award Year having a given end year.'
* newPeriod
- Returns: IPeriod
- Function: Returns the IPeriod for one single day.'
* newPeriod
- Returns: IPeriod
- Function: Returns a IPeriod given its start and end dates.'
isirRecord
Purpose: The ISIR being evaluated.
Type: IIsirRecordAPI
Available Methods:
* getActiveIsirForAwardYear
- Returns: Boolean
- Function: Gets the active ISIR for award year status.'
* getAllFields
- Returns: @NonNull Map<IsirField<?>,IIsirFieldValue<?>>
- Function: Retrieves all field values (WARNING: can only be used with 2025+ ISIRs).'
* getAssumptions
- Returns: List<IAssumptionAPI>
- Function: Get the assumptions.'
* getAwardYear
- Returns: String
- Function: Gets the award year.'
* getCommentCodes
- Returns: List<ICommentCodeAPI>
- Function: Get the comment codes.'
* getCpsTransNumber
- Returns: String
- Function: Gets the CPS transaction number.'
* getCurrentSsn
- Returns: ISocialSecurityNumber
- Function: Gets the student's current SSN.'
* getDiscrepancies
- Returns: List<IDiscrepancyAPI>
- Function: Get the discrepancies.'
* getField
- Returns: <T> @NonNull IIsirFieldValue<T>
- Function: Retrieves the value of a given field (WARNING: can only be used with 2025+ ISIRs).'
* getFirstName
- Returns: String
- Function: Gets the student's first name.'
* getHighlightFlags
- Returns: List<IHighlightFlagAPI>
- Function: Get the highlight flags.'
* getIsirFieldValue
- Returns: String
- Function: Gets the value of an ISIR field (WARNING: This method can only be used up to 2024 award year).'
* getIsirFieldValueOrNull
- Returns: String
- Function: Gets the value of an ISIR field (WARNING: This method can only be used up to 2024 award year).'
* getIsirFieldValues
- Returns: Map<String,String>
- Function: Get a map containing all ISIR fields (WARNING: This method can only be used up to 2024 award year).'
* getIsirIdOriginalNameId
- Returns: String
- Function: Gets the student's original name ID.'
* getIsirIdSsn
- Returns: ISocialSecurityNumber
- Function: Gets the student's original SSN.'
* getIsirIdYearIndicator
- Returns: String
- Function: Gets the ISIR's year indicator.'
* getIsirStatus
- Returns: String
- Function: Gets the ISIR status.'
* getIsirStatusBeforeCorrection
- Returns: String
- Function: When ISIR Status is Corrected returns the previous ISIR Status.'
* getLastName
- Returns: String
- Function: Gets the student's last name.'
* getMiddleName
- Returns: String
- Function: Gets the student's middle name.'
* getReceivedDate
- Returns: Date
- Function: Gets the system receipt date of the ISIR.'
* getRejectCodes
- Returns: List<IRejectCodeAPI>
- Function: Get the reject codes.'
* getSchoolCode1
- Returns: String
- Function: Gets the school code 1.'
* getSchoolCode10
- Returns: String
- Function: Gets the school code 10.'
* getSchoolCode2
- Returns: String
- Function: Gets the school code 2.'
* getSchoolCode3
- Returns: String
- Function: Gets the school code 3.'
* getSchoolCode4
- Returns: String
- Function: Gets the school code 4.'
* getSchoolCode5
- Returns: String
- Function: Gets the school code 5.'
* getSchoolCode6
- Returns: String
- Function: Gets the school code 6.'
* getSchoolCode7
- Returns: String
- Function: Gets the school code 7.'
* getSchoolCode8
- Returns: String
- Function: Gets the school code 8.'
* getSchoolCode9
- Returns: String
- Function: Gets the school code 9.'
* isCompatibleWithPackaging
- Returns: boolean
- Function: Checks if this ISIR satisfies minimal acceptance criteria for automatic Financial
Aid Package Calculation.'
* isUnverified
- Returns: boolean
- Function: Gets the ISIR verification status.'
log
Purpose: Provides logging capability to scripts.
Type: IScriptLoggerAPI
Available Methods:
* debug
- Returns: boolean
- Function: No description available'
* debug
- Returns: void
- Function: No description available'
* error
- Returns: void
- Function: No description available'
* info
- Returns: boolean
- Function: No description available'
* info
- Returns: void
- Function: No description available'
* warn
- Returns: void
- Function: No description available'
nsldsGuarantorServicers
Purpose: List of all guarantors and servicers.
Type: IGuarantorServicersListAPI
Available Methods:
* getAwardYear
- Returns: String
- Function: No description available'
* getGuarantorServicerName
- Returns: String
- Function: No description available'
previousFinancialPlan
Purpose: Provides access to previous financial plans.
Type: IPreviousFinancialPlanAPI
Available Methods:
* effectiveAt
- Returns: T
- Function: Gets a previous financial plan that was effective at a given time.'
* effectiveAt
- Returns: T
- Function: Gets a previous financial plan that was effective on a given local date.'
* effectiveAt
- Returns: T
- Function: Gets a previous financial plan that was effective at a given local time.'
* withVersion
- Returns: T
- Function: Gets a previous financial plan with a given version.'
program
Purpose: Information about the student's primary program.
Type: IProgramAPI
Available Methods:
* exists
- Returns: boolean
- Function: No description available'
* getAcademicCompletionDate
- Returns: LocalDate
- Function: No description available'
* getAcademicStatus
- Returns: String
- Function: No description available'
* getAdmissionStatus
- Returns: String
- Function: No description available'
* getAssessedUnits
- Returns: BigDecimal
- Function: No description available'
* getAydUnits
- Returns: BigDecimal
- Function: No description available'
* getAydWeeks
- Returns: Integer
- Function: No description available'
* getCharges
- Returns: List<IChargeAPI>
- Function: No description available'
* getCode
- Returns: String
- Function: No description available'
* getCollege
- Returns: String
- Function: No description available'
* getCourses
- Returns: ICoursesAPI
- Function: No description available'
* getDateOfDetermination
- Returns: LocalDate
- Function: No description available'
* getDescription
- Returns: String
- Function: No description available'
* getEnrollmentStatus
- Returns: String
- Function: No description available'
* getEnrollmentStatusEffectiveDate
- Returns: LocalDate
- Function: No description available'
* getEnrollmentStatusSubType
- Returns: String
- Function: No description available'
* getExternalProgramId
- Returns: String
- Function: No description available'
* getFaEligibleIndicator
- Returns: Boolean
- Function: No description available'
* getGpa
- Returns: BigDecimal
- Function: No description available'
* getManualSapEvaluationIndicator
- Returns: Boolean
- Function: No description available'
* getModality
- Returns: String
- Function: No description available'
* getOfficialLastDateOfAttendance
- Returns: LocalDate
- Function: No description available'
* getOpeId
- Returns: String
- Function: No description available'
* getPrimaryLocation
- Returns: String
- Function: No description available'
* getProgramLengthMeasurementUnit
- Returns: String
- Function: No description available'
* getProgramLengthNumberOfUnits
- Returns: int
- Function: No description available'
* getProgramMeasurementUnit
- Returns: String
- Function: No description available'
* getProgramType
- Returns: String
- Function: No description available'
* getRequiredGpa
- Returns: BigDecimal
- Function: No description available'
* getSpecialPrograms
- Returns: String
- Function: No description available'
* getStartDate
- Returns: LocalDate
- Function: No description available'
* getStudentResources
- Returns: List<IStudentResourceAPI>
- Function: No description available'
* getTermAcys
- Returns: ISimpleNumberedPeriods<ITermAcademicYearAPI>
- Function: No description available'
* getTerms
- Returns: ITermPeriodsAPI
- Function: No description available'
* getTermType
- Returns: String
- Function: No description available'
* getTotalAcceptedTransferUnits
- Returns: BigDecimal
- Function: No description available'
* getTotalRequiredUnits
- Returns: BigDecimal
- Function: No description available'
* isBbayTerm
- Returns: boolean
- Function: No description available'
* isGraduate
- Returns: boolean
- Function: No description available'
* isProgramTerm
- Returns: boolean
- Function: No description available'
* isTerm
- Returns: boolean
- Function: No description available'
* isUndergraduate
- Returns: boolean
- Function: No description available'
r2t4
Purpose: Provides access to all R2T4 information for the student.
Type: IR2t4API
Available Methods:
* filterOldas
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for OLDAs passing a given predicate.'
* filterProcessStatuses
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for process statuses passing a given predicate.'
* getGrossAmountDecreased
- Returns: BigDecimal
- Function: No description available'
* getNetAmountDecreased
- Returns: BigDecimal
- Function: No description available'
* getNullableOldas
- Returns: ISet<LocalDate>
- Function: No description available'
* getNullableProcessStatuses
- Returns: ISet<String>
- Function: No description available'
* getOldas
- Returns: ISet<LocalDate>
- Function: No description available'
* getProcessStatuses
- Returns: ISet<String>
- Function: No description available'
* getWithLatest
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for the given isLatest status.'
* getWithOlda
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for the given process OLDA.'
* getWithOldas
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for given process OLDAs.'
* getWithProcessStatus
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for the given process status.'
* getWithProcessStatuses
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for given process statuses.'
* isEligibleForPWD
- Returns: boolean
- Function: No description available'
* isLatest
- Returns: boolean
- Function: Checks if at least one R2T4 process in the collection is the latest.'
receivedDocuments
Purpose: Active documents for the student for the award year of the ISIR being evaluated.
Type: IReceivedDocs
Available Methods:
* get
- Returns: IReceivedDoc
- Function: Return doc for specified code and Student, if it exists.'
* get
- Returns: IReceivedDoc
- Function: Return doc for specified code and owners, if it exists.'
* get
- Returns: IReceivedDoc
- Function: Return doc for specified code, owners, and subtype, if it exists.'
* getDocumentsForDocCode
- Returns: List<IReceivedDoc>
- Function: Return list with doc or doc subtpyes for specified code and Student, if it exists.'
* getDocumentsForDocCode
- Returns: List<IReceivedDoc>
- Function: Return list with doc or doc subtpyes for specified code and owners, if it exists.'
* getValidDocCodes
- Returns: Set<String>
- Function: No description available'
* hasDoc
- Returns: boolean
- Function: No description available'
* hasDoc
- Returns: boolean
- Function: Return true if doc exists with the right code and owners'
* noDocs
- Returns: boolean
- Function: No description available'
* put
- Returns: void
- Function: No description available'
* put
- Returns: void
- Function: No description available'
recentFahRecords
Purpose: All Financial Aid History records associated with the student.
Type: IRecentFahRecordsAPI
Available Methods:
* hasRecordsOfType
- Returns: boolean
- Function: No description available'
* overlapsLoan
- Returns: boolean
- Function: No description available'
* getRecords
- Returns: List<IFahRecordAPI>
- Function: No description available'
* getRecordsByType
- Returns: List<IFahRecordAPI>
- Function: No description available'
student
Purpose: Student information.
Type: IFasStudentAPI
Available Methods:
* getAddressState
- Returns: String
- Function: Gets the federal state in the student's main mailing address, as a two-letter acronym.'
* getBahIndicator
- Returns: Boolean
- Function: Gets the school employee dependet status.'
* getCampusCode
- Returns: String
- Function: Gets the campus code.'
* getCompletionDate
- Returns: Date
- Function: Gets the completion date.'
* getDateOfBirth
- Returns: ISecureLocalDate
- Function: Gets the date of birth.'
* getDependencyStatus
- Returns: String
- Function: Gets the dependency status.'
* getDeterminationDate
- Returns: Date
- Function: Gets the determination date.'
* getDocuments
- Returns: Map<String,IReceivedDoc>
- Function: Gets the student's documents, indexed by document code.'
* getEmail
- Returns: String
- Function: Gets the e-mail.'
* getEnrollmentStatus
- Returns: String
- Function: Gets the enrollment status.'
* getExternalStudentId
- Returns: String
- Function: Gets the external student ID (unique per student).'
* getFinancialAidRequested
- Returns: Boolean
- Function: Gets the financial aid request status.'
* getFirstName
- Returns: String
- Function: Gets the first name.'
* getGender
- Returns: String
- Function: Gets the gender.'
* getHighSchoolEquivalency
- Returns: Boolean
- Function: Gets the high school equivalency status.'
* getLastName
- Returns: String
- Function: Gets the last name.'
* getMiddleName
- Returns: String
- Function: Gets the middle name.'
* getPersonId
- Returns: Long
- Function: Gets the person ID.'
* getProgramType
- Returns: String
- Function: Gets the program type.'
* getRecentFinancialAidHistoryRecords
- Returns: IRecentFahRecordsAPI
- Function: Gets the recent financial aid records.'
* getSchoolCode
- Returns: String
- Function: Gets the school code.'
* getSchoolEmployee
- Returns: Boolean
- Function: Gets the school employee status.'
* getSchoolEmployeeDependent
- Returns: Boolean
- Function: Gets the school employee dependent status.'
* getSsn
- Returns: ISocialSecurityNumber
- Function: Gets the SSN.'
* getStudentId
- Returns: Long
- Function: Gets the student ID (or enrollment ID, unique per enrollment).'
throwsDocumentIsFaUnacceptableExceptionParam
Purpose: This binding can be set within a Groovy script to control whether a subsequent call to
IReceivedDoc.isAcceptable() or IReceivedDocDocumentAPI.isAcceptable() triggers an exception or not when a
document is unnaceptable. The default value is true.
Type: Boolean
Available Methods:
No methods available
IMPORTANT REQUIREMENTS:
1. Each method usage must be explained in its full context
2. All data transformations must be detailed
3. Error handling for each method must be specified
4. Business implications of method results must be clear
## COMMENTING REQUIREMENTS
Your task is to create COMPREHENSIVE, CONTEXTUAL comments for this Oracle SFP Platform script.
FILE-LEVEL DOCUMENTATION REQUIREMENTS:
1. File Header (Using /** ... */ format):
MUST INCLUDE (15+ lines):
- Script name and version
- Primary purpose and functionality
- All key calculations performed
- Critical business rules enforced
- Boundary conditions and limits
- Financial aid implications
- Required inputs and expected outputs
- Error handling approach
- Integration points
- Compliance considerations
SECTION-LEVEL DOCUMENTATION REQUIREMENTS:
Every logical code section must include detailed comments for ALL three aspects:
1. CONDITIONALS Section:
Format:
// CONDITIONALS:
// Check [number]: [specific condition being evaluated]
// Variables: [list of variables and methods involved]
// Purpose: [detailed business reason for this check]
// Logic:
// - [step-by-step breakdown of the condition]
// - [how variables are used]
// - [any transformations applied]
// Success Path: [what happens when condition is true]
// Failure Path: [what happens when condition is false]
// Business Rules: [specific rules being enforced]
// Error Handling: [how errors are managed]
// Financial Impact: [effect on aid calculations]
// If N/A, explicitly state: "CONDITIONALS: N/A"
2. BOUNDARY CHECKS Section:
Format:
// BOUNDARY CHECKS:
// Check [number]: [specific limit being enforced]
// Source: [where boundary values come from]
// Variables: [variables and methods involved]
// Validation:
// - [how boundaries are checked]
// - [validation method details]
// Edge Cases:
// - [specific edge cases handled]
// - [how each is managed]
// Error Handling: [boundary violation management]
// Impact: [effect of boundary violations]
// If N/A, explicitly state: "BOUNDARY CHECKS: N/A"
3. ARITHMETIC Section:
Format:
// ARITHMETIC:
// Operation [number]: [name of calculation]
// Formula: [complete mathematical expression]
// Variables:
// - [each variable and its purpose]
// - [data types and units]
// Steps:
// 1. [detailed step-by-step breakdown]
// 2. [intermediate calculations]
// 3. [transformations applied]
// Business Context: [why this calculation is needed]
// Result: [meaning of the output]
// Financial Impact: [effect on aid calculations]
// Limitations: [any mathematical constraints]
// If N/A, explicitly state: "ARITHMETIC: N/A"
ADDITIONAL REQUIREMENTS:
1. Complex Logic Sections:
- Must break down multi-step operations
- Explain interactions between components
- Detail data flow and transformations
2. Error Handling:
- Document all error conditions
- Explain recovery procedures
- Detail logging and reporting
3. API Interactions:
- Document all platform method calls
- Explain data transformations
- Detail error handling
4. Financial Aid Impact:
- Explain effects on aid calculations
- Document regulatory compliance
- Detail student eligibility impact
Example Section With All Aspects:
// CONDITIONALS:
// Check 1: Payment Period Status Validation
// Variables: getLoanPaymentPeriods(), period.getStatus(), period.getStartDate()
// Purpose: Ensure only valid, active payment periods are included
// Logic:
// - Retrieve all loan payment periods
// - Filter based on status (!= "CANCELED")
// - Compare start dates with reference date
// Success Path: Period included in calculations
// Failure Path: Period excluded from totals
// Business Rules: Canceled periods must not affect grade level
// Error Handling: Invalid periods logged and skipped
// Financial Impact: Affects available loan amounts
//
// BOUNDARY CHECKS:
// Check 1: Payment Period Date Validation
// Source: Academic Calendar Configuration
// Variables: period.getStartDate(), referenceDate
// Validation:
// - Compare period start date with reference date
// - Ensure dates are not null
// Edge Cases:
// - Null dates are excluded
// - Future dates are filtered
// Error Handling: Invalid dates logged and skipped
// Impact: Prevents future periods from affecting current calculation
//
// ARITHMETIC:
// Operation 1: Payment Period Units Summation
// Formula: sum(validPeriods.map(period => period.getUnits()))
// Variables:
// - period.getUnits(): Decimal, represents credit hours
// - validPeriods: Array of filtered payment periods
// Steps:
// 1. Filter valid payment periods
// 2. Extract units from each period
// 3. Sum all units using reduce
// Business Context: Calculate total completed units for grade level
// Result: Total units affecting grade level
// Financial Impact: Determines loan eligibility amounts
// Limitations: Cannot exceed program maximum units
## Groovy Script for Analysis
```groovy
N/A - There is no baseline config. This is a placeholder.
```
## COMMENT GENERATION REQUIREMENTS:
1. Add comprehensive comments following the exact format specified
2. Every logical section must include all three aspects:
- CONDITIONALS
- BOUNDARY CHECKS
- ARITHMETIC
3. Mark any non-applicable aspect as "N/A" explicitly
4. Ensure line-by-line explanation of complex logic
5. Detail all financial aid implications
DO NOT modify the code itself. Add comments only.
REMEMBER:
- Comments must be exhaustively detailed
- Every logical section needs all three aspects
- Financial aid impact must be clear
- Business rules must be explicit
Return ONLY the fully commented Groovy script. No other text or explanations.
ISIR C-Code Documents Required
Name: isirCCodeDocumentsRequired
Purpose: Determine the documents required to resolve an ISIR c-code.
In Baseline Config: No
Return Type: Void
# Oracle SFP Platform Script Documentation Generator
Your task is to create comprehensive, contextual comments for this Oracle SFP Platform Groovy script.
CRITICAL REQUIREMENTS:
1. Follow exact comment format specified
2. Include all three aspects for every section
3. Mark non-applicable aspects as "N/A"
4. Provide business context and financial impact
5. Detail all API interactions and data flows
## Script Purpose and Context
The script being analyzed is: "isirCCodeDocumentsRequired"
Primary Function: Determine documents required to resolve an ISIR c-code.
Expected Output Type: Void
This script is part of the Oracle SFP Platform ecosystem and interacts with platform-specific APIs and data structures.
You must analyze this script in the context of financial aid processing workflows, ensuring compliance with:
1. Federal financial aid regulations
2. Academic progress requirements
3. Institutional policies
4. Program-specific rules
Your analysis must detail:
1. All conditional logic and its business implications
2. All boundary checks and their validation purposes
3. All calculations and their financial aid impact
4. Error handling and data validation
5. Integration points with platform APIs
## Available Platform Methods and Integrations
The script has access to the following Oracle SFP Platform integrations.
When commenting the code, you MUST explain how these specific methods and bindings are being used:
AGGREGATES_PERKINS_FLAGS
Purpose: Constant value for the FahRecordType enum.
Type: FahRecordType
Available Methods:
No methods available
GRANT_PAYMENT
Purpose: Constant value for the FahRecordType enum.
Type: FahRecordType
Available Methods:
No methods available
LOAN_DETAIL
Purpose: Constant value for the FahRecordType enum.
Type: FahRecordType
Available Methods:
No methods available
OVERPAYMENT
Purpose: Constant value for the FahRecordType enum.
Type: FahRecordType
Available Methods:
No methods available
allAwardYearReceivedDocuments
Purpose: Provides access to all documents received for the student.
Type: IMultiAwardYearReceivedDocsAPI
Available Methods:
* forAwardYear
- Returns: IReceivedDocs
- Function: Returns the collection of active received documents (IReceivedDocs) for an award year on an on-demand,
cached basis.'
coa
Purpose: Provides access to all Cost of Attendance information for the student.
Type: ICoaAPI
Available Methods:
* getActiveCoa
- Returns: int
- Function: Gets the active cost of attendance.'
* getActualCoa
- Returns: int
- Function: Gets the actual cost of attendance.'
* getComponents
- Returns: ICoaComponentsAPI
- Function: Gets the COA components.'
* getPellCoa
- Returns: int
- Function: Gets the PELL cost of attendance.'
* getTotalCoa
- Returns: int
- Function: Gets the total cost of attendance.'
* in
- Returns: ICoaAPI
- Function: Filters by term.'
* in
- Returns: ICoaAPI
- Function: Filters by academic year.'
* inAcademicYear
- Returns: ICoaAPI
- Function: Filters by academic year.'
* inTerm
- Returns: ICoaAPI
- Function: Filters by term.'
disbursements
Purpose: Information about all student disbursements.
Type: IDisbursementsAPI
Available Methods:
* filterSeqNos
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for sequence numbers passing a given predicate.'
* filterStatuses
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for disbursement statuses passing a given predicate.'
* getCancelled
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for disbursements that have been cancelled.'
* getDisbursed
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for disbursements
that have not been cancelled (see getCancelled(boolean), include disbursed payments
and whose individual Total Disbursement Amounts are positive.'
* getIncrementalDisbursementAmount
- Returns: BigDecimal
- Function: No description available'
* getLateDisbursement
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for disbursements with the given Late Disbursement
Indicator.'
* getPpDisbursementAmount
- Returns: BigDecimal
- Function: No description available'
* getLatestPayments
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data with only latest payments.'
* getLockingPp
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for (non-)payment period-locking disbursements'
* getPpAppliedAmount
- Returns: BigDecimal
- Function: No description available'
* getPwd
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for disbursements with the given PWD Indicator.'
* getSeqNos
- Returns: Set<Integer>
- Function: No description available'
* getStatuses
- Returns: ISet<String>
- Function: No description available'
* getTotalDisbursementAmount
- Returns: BigDecimal
- Function: No description available'
* getWithSeqNo
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for a given sequence number.'
* getWithSeqNos
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for the given sequence numbers.'
* getWithStatus
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for the given disbursement status.'
* getWithStatuses
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for given disbursement statuses.'
* hasBeenCancelled
- Returns: boolean
- Function: No description available'
* isDisbursed
- Returns: boolean
- Function: No description available'
* isLateDisbursement
- Returns: boolean
- Function: No description available'
* isLockingPp
- Returns: boolean
- Function: No description available'
* isPwd
- Returns: boolean
- Function: No description available'
* getPpMaxDisbursementAmount
- Returns: BigDecimal
- Function: No description available'
* getPpTotalDecreasedAmount
- Returns: BigDecimal
- Function: No description available'
dloan
Purpose: Information related to Direct Loans.
Type: IDloanAPI
Available Methods:
* getLifetimeLimit
- Returns: int
- Function: No description available'
* getRemainingNsldsLimit
- Returns: int
- Function: No description available'
documentRequest
Purpose: Binding that shall be populated by the script with the selected documents.
Type: IIsirRequiredDocsAPI
Available Methods:
* addAnyDocuments
- Returns: void
- Function: Adds a list of documents, any one in the list is required.'
* addAnyDocuments
- Returns: void
- Function: Adds a list of documents, any one in the list is required.'
* addDocument
- Returns: void
- Function: Adds a required document.'
* addDocument
- Returns: void
- Function: Adds a required document.'
* addDocument
- Returns: void
- Function: Adds a required document.'
* any
- Returns: IIsirRequiredDocsAPI
- Function: No description available'
* clear
- Returns: void
- Function: Clears all docs.'
* doc
- Returns: IIsirRequiredDocsAPI
- Function: No description available'
* getAdditionalDocRequestMessages
- Returns: List<String>
- Function: No description available'
* getValidDocCodes
- Returns: Set<String>
- Function: No description available'
* hasDocument
- Returns: boolean
- Function: Returns true if the document has been added, either as a regular request
or an 'any' request.'
* hasDocument
- Returns: boolean
- Function: Returns true if the document has been added, either as a regular request
or an 'any' request.'
* isEmpty
- Returns: boolean
- Function: Checks if these requirements are empty.'
* setValidDocCodes
- Returns: void
- Function: No description available'
enrollment
Purpose: Information for the enrollment this script is being evaluated for.
Type: IEnrollmentAPI
Available Methods:
* belongsTo
- Returns: boolean
- Function: Checks if this enrollment belongs to a student.'
* getBindings
- Returns: IEnrollmentBindingsAPI
- Function: Gets bindings for this enrollment.'
* getEnrollmentStatus
- Returns: String
- Function: Gets the enrollment status.'
* getProgramStartDate
- Returns: LocalDate
- Function: Gets the program start date.'
* isEffective
- Returns: boolean
- Function: Checks if this enrollment is effective.'
enrollments
Purpose: Enrollments information.
Type: IEnrollmentsAPI
Available Methods:
* getHigherPriorityThan
- Returns: List<IEnrollmentAPI>
- Function: Gets a list of enrollments with higher priority than a given enrollment.'
* getOtherThan
- Returns: List<IEnrollmentAPI>
- Function: Gets a list of the enrollments that are different from this enrollment, no
matter the priority.'
financialPlan
Purpose: Information about the student's current financial plan.
Type: IFinancialPlanAPI
Available Methods:
* filterCommonLineUniqueIds
- Returns: T
- Function: Creates a narrowed-down, independent collection of data for CommonLine Unique Ids passing a given predicate.'
* getAcyCoa
- Returns: int
- Function: Deprecated.
Consider using the coa binding (ICoaAPI).'
* getAcyUnpackagedAmount
- Returns: BigDecimal
- Function: Deprecated.
Consider using the coa binding (ICoaAPI).'
* getCarryOn
- Returns: BigDecimal
- Function: No description available'
* getCommonLineUniqueIds
- Returns: Set<ICommonLineUniqueId>
- Function: No description available'
* getEnrollmentIntensities
- Returns: ISet<BigDecimal>
- Function: No description available'
* getEnrollmentStatuses
- Returns: ISet<String>
- Function: No description available'
* getFundStatuses
- Returns: ISet<String>
- Function: No description available'
* getMaxAmount
- Returns: BigDecimal
- Function: No description available'
* getProratedLimit
- Returns: BigDecimal
- Function: No description available'
* getVersion
- Returns: int
- Function: Gets the package version.'
* getWithCommonLineUniqueId
- Returns: T
- Function: Creates a narrowed-down, independent collection of data for the given CommonLine Unique Ids.'
* getWithCommonLineUniqueIds
- Returns: T
- Function: Creates a narrowed-down, independent collection of data for the given CommonLine Unique Ids.'
* isEligible
- Returns: boolean
- Function: No description available'
* isIsirUsedForCalculation
- Returns: boolean
- Function: Identifies ISIRs used while calculating this Financial Plan.'
* isProrated
- Returns: boolean
- Function: No description available'
* isUnmatchedCommonLineLoan
- Returns: boolean
- Function: Checks if a given CommonLine Loan (probably coming from the commonLineLoan binding) has not been matched
yet in the fund collection.'
fundAcceptance
Purpose: Provides access to all Fund Acceptance information for the student.
Type: IFundAcceptanceAPI
Available Methods:
* getWithStatuses
- Returns: T
- Function: Creates a narrowed-down, independent collection of fund acceptance data for given fund acceptance statuses.'
* filterNullableStatuses
- Returns: T
- Function: Creates a narrowed-down, independent collection of fund acceptance data for fund acceptance statuses passing a given predicate.'
* filterStatuses
- Returns: T
- Function: Creates a narrowed-down, independent collection of fund acceptance data for fund acceptance statuses passing a given predicate.'
* getNullableStatuses
- Returns: ISet<String>
- Function: No description available'
* getStatuses
- Returns: ISet<String>
- Function: No description available'
* getValidatedAcceptedAmount
- Returns: BigDecimal
- Function: No description available'
* getWithStatus
- Returns: T
- Function: Creates a narrowed-down, independent collection of fund acceptance data for the given fund acceptance status.'
fundCodeConfig
Purpose: Provides information about fund code configuration.
Type: IFundCodeConfigAPI
Available Methods:
* getFundCodesByPriority
- Returns: List<String>
- Function: No description available'
* getHigherPriorityFundCodes
- Returns: List<String>
- Function: No description available'
helper
Purpose: Helper interface with utility methods.
Type: IGroovyScriptHelper
Available Methods:
* filterCourses
- Returns: ICourseFilterAPI
- Function: No description available'
* getAwardYear
- Returns: IAwardYearHelperAPI
- Function: Returns Award Year-specific helper.'
* getIntegerFromSignedIsirNumber
- Returns: Integer
- Function: Parses a number represented in ISIR format to Integer.'
* getIsirDate
- Returns: Date
- Function: No description available'
* getIsirDateFormatStr
- Returns: String
- Function: No description available'
* getSignedIsirNumberFromInteger
- Returns: String
- Function: No description available'
* isirRecordsDifferForListedFields
- Returns: boolean
- Function: No description available'
* mapRanges
- Returns: IRangeMapStarterAPI
- Function: No description available'
* newAwardYearPeriod
- Returns: IAwardYearAPI
- Function: Returns the Award Year having a given end year.'
* newPeriod
- Returns: IPeriod
- Function: Returns the IPeriod for one single day.'
* newPeriod
- Returns: IPeriod
- Function: Returns a IPeriod given its start and end dates.'
isirRecord
Purpose: The ISIR being evaluated.
Type: IIsirRecordAPI
Available Methods:
* getActiveIsirForAwardYear
- Returns: Boolean
- Function: Gets the active ISIR for award year status.'
* getAllFields
- Returns: @NonNull Map<IsirField<?>,IIsirFieldValue<?>>
- Function: Retrieves all field values (WARNING: can only be used with 2025+ ISIRs).'
* getAssumptions
- Returns: List<IAssumptionAPI>
- Function: Get the assumptions.'
* getAwardYear
- Returns: String
- Function: Gets the award year.'
* getCommentCodes
- Returns: List<ICommentCodeAPI>
- Function: Get the comment codes.'
* getCpsTransNumber
- Returns: String
- Function: Gets the CPS transaction number.'
* getCurrentSsn
- Returns: ISocialSecurityNumber
- Function: Gets the student's current SSN.'
* getDiscrepancies
- Returns: List<IDiscrepancyAPI>
- Function: Get the discrepancies.'
* getField
- Returns: <T> @NonNull IIsirFieldValue<T>
- Function: Retrieves the value of a given field (WARNING: can only be used with 2025+ ISIRs).'
* getFirstName
- Returns: String
- Function: Gets the student's first name.'
* getHighlightFlags
- Returns: List<IHighlightFlagAPI>
- Function: Get the highlight flags.'
* getIsirFieldValue
- Returns: String
- Function: Gets the value of an ISIR field (WARNING: This method can only be used up to 2024 award year).'
* getIsirFieldValueOrNull
- Returns: String
- Function: Gets the value of an ISIR field (WARNING: This method can only be used up to 2024 award year).'
* getIsirFieldValues
- Returns: Map<String,String>
- Function: Get a map containing all ISIR fields (WARNING: This method can only be used up to 2024 award year).'
* getIsirIdOriginalNameId
- Returns: String
- Function: Gets the student's original name ID.'
* getIsirIdSsn
- Returns: ISocialSecurityNumber
- Function: Gets the student's original SSN.'
* getIsirIdYearIndicator
- Returns: String
- Function: Gets the ISIR's year indicator.'
* getIsirStatus
- Returns: String
- Function: Gets the ISIR status.'
* getIsirStatusBeforeCorrection
- Returns: String
- Function: When ISIR Status is Corrected returns the previous ISIR Status.'
* getLastName
- Returns: String
- Function: Gets the student's last name.'
* getMiddleName
- Returns: String
- Function: Gets the student's middle name.'
* getReceivedDate
- Returns: Date
- Function: Gets the system receipt date of the ISIR.'
* getRejectCodes
- Returns: List<IRejectCodeAPI>
- Function: Get the reject codes.'
* getSchoolCode1
- Returns: String
- Function: Gets the school code 1.'
* getSchoolCode10
- Returns: String
- Function: Gets the school code 10.'
* getSchoolCode2
- Returns: String
- Function: Gets the school code 2.'
* getSchoolCode3
- Returns: String
- Function: Gets the school code 3.'
* getSchoolCode4
- Returns: String
- Function: Gets the school code 4.'
* getSchoolCode5
- Returns: String
- Function: Gets the school code 5.'
* getSchoolCode6
- Returns: String
- Function: Gets the school code 6.'
* getSchoolCode7
- Returns: String
- Function: Gets the school code 7.'
* getSchoolCode8
- Returns: String
- Function: Gets the school code 8.'
* getSchoolCode9
- Returns: String
- Function: Gets the school code 9.'
* isCompatibleWithPackaging
- Returns: boolean
- Function: Checks if this ISIR satisfies minimal acceptance criteria for automatic Financial
Aid Package Calculation.'
* isUnverified
- Returns: boolean
- Function: Gets the ISIR verification status.'
log
Purpose: Provides logging capability to scripts.
Type: IScriptLoggerAPI
Available Methods:
* debug
- Returns: boolean
- Function: No description available'
* debug
- Returns: void
- Function: No description available'
* error
- Returns: void
- Function: No description available'
* info
- Returns: boolean
- Function: No description available'
* info
- Returns: void
- Function: No description available'
* warn
- Returns: void
- Function: No description available'
nsldsGuarantorServicers
Purpose: List of all guarantors and servicers.
Type: IGuarantorServicersListAPI
Available Methods:
* getAwardYear
- Returns: String
- Function: No description available'
* getGuarantorServicerName
- Returns: String
- Function: No description available'
previousFinancialPlan
Purpose: Provides access to previous financial plans.
Type: IPreviousFinancialPlanAPI
Available Methods:
* effectiveAt
- Returns: T
- Function: Gets a previous financial plan that was effective at a given time.'
* effectiveAt
- Returns: T
- Function: Gets a previous financial plan that was effective on a given local date.'
* effectiveAt
- Returns: T
- Function: Gets a previous financial plan that was effective at a given local time.'
* withVersion
- Returns: T
- Function: Gets a previous financial plan with a given version.'
program
Purpose: Information about the student's primary program.
Type: IProgramAPI
Available Methods:
* exists
- Returns: boolean
- Function: No description available'
* getAcademicCompletionDate
- Returns: LocalDate
- Function: No description available'
* getAcademicStatus
- Returns: String
- Function: No description available'
* getAdmissionStatus
- Returns: String
- Function: No description available'
* getAssessedUnits
- Returns: BigDecimal
- Function: No description available'
* getAydUnits
- Returns: BigDecimal
- Function: No description available'
* getAydWeeks
- Returns: Integer
- Function: No description available'
* getCharges
- Returns: List<IChargeAPI>
- Function: No description available'
* getCode
- Returns: String
- Function: No description available'
* getCollege
- Returns: String
- Function: No description available'
* getCourses
- Returns: ICoursesAPI
- Function: No description available'
* getDateOfDetermination
- Returns: LocalDate
- Function: No description available'
* getDescription
- Returns: String
- Function: No description available'
* getEnrollmentStatus
- Returns: String
- Function: No description available'
* getEnrollmentStatusEffectiveDate
- Returns: LocalDate
- Function: No description available'
* getEnrollmentStatusSubType
- Returns: String
- Function: No description available'
* getExternalProgramId
- Returns: String
- Function: No description available'
* getFaEligibleIndicator
- Returns: Boolean
- Function: No description available'
* getGpa
- Returns: BigDecimal
- Function: No description available'
* getManualSapEvaluationIndicator
- Returns: Boolean
- Function: No description available'
* getModality
- Returns: String
- Function: No description available'
* getOfficialLastDateOfAttendance
- Returns: LocalDate
- Function: No description available'
* getOpeId
- Returns: String
- Function: No description available'
* getPrimaryLocation
- Returns: String
- Function: No description available'
* getProgramLengthMeasurementUnit
- Returns: String
- Function: No description available'
* getProgramLengthNumberOfUnits
- Returns: int
- Function: No description available'
* getProgramMeasurementUnit
- Returns: String
- Function: No description available'
* getProgramType
- Returns: String
- Function: No description available'
* getRequiredGpa
- Returns: BigDecimal
- Function: No description available'
* getSpecialPrograms
- Returns: String
- Function: No description available'
* getStartDate
- Returns: LocalDate
- Function: No description available'
* getStudentResources
- Returns: List<IStudentResourceAPI>
- Function: No description available'
* getTermAcys
- Returns: ISimpleNumberedPeriods<ITermAcademicYearAPI>
- Function: No description available'
* getTerms
- Returns: ITermPeriodsAPI
- Function: No description available'
* getTermType
- Returns: String
- Function: No description available'
* getTotalAcceptedTransferUnits
- Returns: BigDecimal
- Function: No description available'
* getTotalRequiredUnits
- Returns: BigDecimal
- Function: No description available'
* isBbayTerm
- Returns: boolean
- Function: No description available'
* isGraduate
- Returns: boolean
- Function: No description available'
* isProgramTerm
- Returns: boolean
- Function: No description available'
* isTerm
- Returns: boolean
- Function: No description available'
* isUndergraduate
- Returns: boolean
- Function: No description available'
r2t4
Purpose: Provides access to all R2T4 information for the student.
Type: IR2t4API
Available Methods:
* filterOldas
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for OLDAs passing a given predicate.'
* filterProcessStatuses
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for process statuses passing a given predicate.'
* getGrossAmountDecreased
- Returns: BigDecimal
- Function: No description available'
* getNetAmountDecreased
- Returns: BigDecimal
- Function: No description available'
* getNullableOldas
- Returns: ISet<LocalDate>
- Function: No description available'
* getNullableProcessStatuses
- Returns: ISet<String>
- Function: No description available'
* getOldas
- Returns: ISet<LocalDate>
- Function: No description available'
* getProcessStatuses
- Returns: ISet<String>
- Function: No description available'
* getWithLatest
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for the given isLatest status.'
* getWithOlda
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for the given process OLDA.'
* getWithOldas
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for given process OLDAs.'
* getWithProcessStatus
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for the given process status.'
* getWithProcessStatuses
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for given process statuses.'
* isEligibleForPWD
- Returns: boolean
- Function: No description available'
* isLatest
- Returns: boolean
- Function: Checks if at least one R2T4 process in the collection is the latest.'
receivedDocuments
Purpose: Active documents for the student for the award year of the ISIR being evaluated.
Type: IReceivedDocs
Available Methods:
* get
- Returns: IReceivedDoc
- Function: Return doc for specified code and Student, if it exists.'
* get
- Returns: IReceivedDoc
- Function: Return doc for specified code and owners, if it exists.'
* get
- Returns: IReceivedDoc
- Function: Return doc for specified code, owners, and subtype, if it exists.'
* getDocumentsForDocCode
- Returns: List<IReceivedDoc>
- Function: Return list with doc or doc subtpyes for specified code and Student, if it exists.'
* getDocumentsForDocCode
- Returns: List<IReceivedDoc>
- Function: Return list with doc or doc subtpyes for specified code and owners, if it exists.'
* getValidDocCodes
- Returns: Set<String>
- Function: No description available'
* hasDoc
- Returns: boolean
- Function: No description available'
* hasDoc
- Returns: boolean
- Function: Return true if doc exists with the right code and owners'
* noDocs
- Returns: boolean
- Function: No description available'
* put
- Returns: void
- Function: No description available'
* put
- Returns: void
- Function: No description available'
recentFahRecords
Purpose: All Financial Aid History records associated with the student.
Type: IRecentFahRecordsAPI
Available Methods:
* hasRecordsOfType
- Returns: boolean
- Function: No description available'
* overlapsLoan
- Returns: boolean
- Function: No description available'
* getRecords
- Returns: List<IFahRecordAPI>
- Function: No description available'
* getRecordsByType
- Returns: List<IFahRecordAPI>
- Function: No description available'
student
Purpose: Student information.
Type: IFasStudentAPI
Available Methods:
* getAddressState
- Returns: String
- Function: Gets the federal state in the student's main mailing address, as a two-letter acronym.'
* getBahIndicator
- Returns: Boolean
- Function: Gets the school employee dependet status.'
* getCampusCode
- Returns: String
- Function: Gets the campus code.'
* getCompletionDate
- Returns: Date
- Function: Gets the completion date.'
* getDateOfBirth
- Returns: ISecureLocalDate
- Function: Gets the date of birth.'
* getDependencyStatus
- Returns: String
- Function: Gets the dependency status.'
* getDeterminationDate
- Returns: Date
- Function: Gets the determination date.'
* getDocuments
- Returns: Map<String,IReceivedDoc>
- Function: Gets the student's documents, indexed by document code.'
* getEmail
- Returns: String
- Function: Gets the e-mail.'
* getEnrollmentStatus
- Returns: String
- Function: Gets the enrollment status.'
* getExternalStudentId
- Returns: String
- Function: Gets the external student ID (unique per student).'
* getFinancialAidRequested
- Returns: Boolean
- Function: Gets the financial aid request status.'
* getFirstName
- Returns: String
- Function: Gets the first name.'
* getGender
- Returns: String
- Function: Gets the gender.'
* getHighSchoolEquivalency
- Returns: Boolean
- Function: Gets the high school equivalency status.'
* getLastName
- Returns: String
- Function: Gets the last name.'
* getMiddleName
- Returns: String
- Function: Gets the middle name.'
* getPersonId
- Returns: Long
- Function: Gets the person ID.'
* getProgramType
- Returns: String
- Function: Gets the program type.'
* getRecentFinancialAidHistoryRecords
- Returns: IRecentFahRecordsAPI
- Function: Gets the recent financial aid records.'
* getSchoolCode
- Returns: String
- Function: Gets the school code.'
* getSchoolEmployee
- Returns: Boolean
- Function: Gets the school employee status.'
* getSchoolEmployeeDependent
- Returns: Boolean
- Function: Gets the school employee dependent status.'
* getSsn
- Returns: ISocialSecurityNumber
- Function: Gets the SSN.'
* getStudentId
- Returns: Long
- Function: Gets the student ID (or enrollment ID, unique per enrollment).'
throwsDocumentIsFaUnacceptableExceptionParam
Purpose: This binding can be set within a Groovy script to control whether a subsequent call to
IReceivedDoc.isAcceptable() or IReceivedDocDocumentAPI.isAcceptable() triggers an exception or not when a
document is unnaceptable. The default value is true.
Type: Boolean
Available Methods:
No methods available
IMPORTANT REQUIREMENTS:
1. Each method usage must be explained in its full context
2. All data transformations must be detailed
3. Error handling for each method must be specified
4. Business implications of method results must be clear
## COMMENTING REQUIREMENTS
Your task is to create COMPREHENSIVE, CONTEXTUAL comments for this Oracle SFP Platform script.
FILE-LEVEL DOCUMENTATION REQUIREMENTS:
1. File Header (Using /** ... */ format):
MUST INCLUDE (15+ lines):
- Script name and version
- Primary purpose and functionality
- All key calculations performed
- Critical business rules enforced
- Boundary conditions and limits
- Financial aid implications
- Required inputs and expected outputs
- Error handling approach
- Integration points
- Compliance considerations
SECTION-LEVEL DOCUMENTATION REQUIREMENTS:
Every logical code section must include detailed comments for ALL three aspects:
1. CONDITIONALS Section:
Format:
// CONDITIONALS:
// Check [number]: [specific condition being evaluated]
// Variables: [list of variables and methods involved]
// Purpose: [detailed business reason for this check]
// Logic:
// - [step-by-step breakdown of the condition]
// - [how variables are used]
// - [any transformations applied]
// Success Path: [what happens when condition is true]
// Failure Path: [what happens when condition is false]
// Business Rules: [specific rules being enforced]
// Error Handling: [how errors are managed]
// Financial Impact: [effect on aid calculations]
// If N/A, explicitly state: "CONDITIONALS: N/A"
2. BOUNDARY CHECKS Section:
Format:
// BOUNDARY CHECKS:
// Check [number]: [specific limit being enforced]
// Source: [where boundary values come from]
// Variables: [variables and methods involved]
// Validation:
// - [how boundaries are checked]
// - [validation method details]
// Edge Cases:
// - [specific edge cases handled]
// - [how each is managed]
// Error Handling: [boundary violation management]
// Impact: [effect of boundary violations]
// If N/A, explicitly state: "BOUNDARY CHECKS: N/A"
3. ARITHMETIC Section:
Format:
// ARITHMETIC:
// Operation [number]: [name of calculation]
// Formula: [complete mathematical expression]
// Variables:
// - [each variable and its purpose]
// - [data types and units]
// Steps:
// 1. [detailed step-by-step breakdown]
// 2. [intermediate calculations]
// 3. [transformations applied]
// Business Context: [why this calculation is needed]
// Result: [meaning of the output]
// Financial Impact: [effect on aid calculations]
// Limitations: [any mathematical constraints]
// If N/A, explicitly state: "ARITHMETIC: N/A"
ADDITIONAL REQUIREMENTS:
1. Complex Logic Sections:
- Must break down multi-step operations
- Explain interactions between components
- Detail data flow and transformations
2. Error Handling:
- Document all error conditions
- Explain recovery procedures
- Detail logging and reporting
3. API Interactions:
- Document all platform method calls
- Explain data transformations
- Detail error handling
4. Financial Aid Impact:
- Explain effects on aid calculations
- Document regulatory compliance
- Detail student eligibility impact
Example Section With All Aspects:
// CONDITIONALS:
// Check 1: Payment Period Status Validation
// Variables: getLoanPaymentPeriods(), period.getStatus(), period.getStartDate()
// Purpose: Ensure only valid, active payment periods are included
// Logic:
// - Retrieve all loan payment periods
// - Filter based on status (!= "CANCELED")
// - Compare start dates with reference date
// Success Path: Period included in calculations
// Failure Path: Period excluded from totals
// Business Rules: Canceled periods must not affect grade level
// Error Handling: Invalid periods logged and skipped
// Financial Impact: Affects available loan amounts
//
// BOUNDARY CHECKS:
// Check 1: Payment Period Date Validation
// Source: Academic Calendar Configuration
// Variables: period.getStartDate(), referenceDate
// Validation:
// - Compare period start date with reference date
// - Ensure dates are not null
// Edge Cases:
// - Null dates are excluded
// - Future dates are filtered
// Error Handling: Invalid dates logged and skipped
// Impact: Prevents future periods from affecting current calculation
//
// ARITHMETIC:
// Operation 1: Payment Period Units Summation
// Formula: sum(validPeriods.map(period => period.getUnits()))
// Variables:
// - period.getUnits(): Decimal, represents credit hours
// - validPeriods: Array of filtered payment periods
// Steps:
// 1. Filter valid payment periods
// 2. Extract units from each period
// 3. Sum all units using reduce
// Business Context: Calculate total completed units for grade level
// Result: Total units affecting grade level
// Financial Impact: Determines loan eligibility amounts
// Limitations: Cannot exceed program maximum units
## Groovy Script for Analysis
```groovy
N/A - There is no baseline config. This is a placeholder.
```
## COMMENT GENERATION REQUIREMENTS:
1. Add comprehensive comments following the exact format specified
2. Every logical section must include all three aspects:
- CONDITIONALS
- BOUNDARY CHECKS
- ARITHMETIC
3. Mark any non-applicable aspect as "N/A" explicitly
4. Ensure line-by-line explanation of complex logic
5. Detail all financial aid implications
DO NOT modify the code itself. Add comments only.
REMEMBER:
- Comments must be exhaustively detailed
- Every logical section needs all three aspects
- Financial aid impact must be clear
- Business rules must be explicit
Return ONLY the fully commented Groovy script. No other text or explanations.
ISIR Reject Code Documents Required
Name: isirRejectCodeDocumentsRequired
Purpose: Determine the documents required to resolve an ISIR reject code.
In Baseline Config: No
Return Type: Void
# Oracle SFP Platform Script Documentation Generator
Your task is to create comprehensive, contextual comments for this Oracle SFP Platform Groovy script.
CRITICAL REQUIREMENTS:
1. Follow exact comment format specified
2. Include all three aspects for every section
3. Mark non-applicable aspects as "N/A"
4. Provide business context and financial impact
5. Detail all API interactions and data flows
## Script Purpose and Context
The script being analyzed is: "isirRejectCodeDocumentsRequired"
Primary Function: Determine documents required to resolve an ISIR reject code.
Expected Output Type: Void
This script is part of the Oracle SFP Platform ecosystem and interacts with platform-specific APIs and data structures.
You must analyze this script in the context of financial aid processing workflows, ensuring compliance with:
1. Federal financial aid regulations
2. Academic progress requirements
3. Institutional policies
4. Program-specific rules
Your analysis must detail:
1. All conditional logic and its business implications
2. All boundary checks and their validation purposes
3. All calculations and their financial aid impact
4. Error handling and data validation
5. Integration points with platform APIs
## Available Platform Methods and Integrations
The script has access to the following Oracle SFP Platform integrations.
When commenting the code, you MUST explain how these specific methods and bindings are being used:
AGGREGATES_PERKINS_FLAGS
Purpose: Constant value for the FahRecordType enum.
Type: FahRecordType
Available Methods:
No methods available
GRANT_PAYMENT
Purpose: Constant value for the FahRecordType enum.
Type: FahRecordType
Available Methods:
No methods available
LOAN_DETAIL
Purpose: Constant value for the FahRecordType enum.
Type: FahRecordType
Available Methods:
No methods available
OVERPAYMENT
Purpose: Constant value for the FahRecordType enum.
Type: FahRecordType
Available Methods:
No methods available
allAwardYearReceivedDocuments
Purpose: Provides access to all documents received for the student.
Type: IMultiAwardYearReceivedDocsAPI
Available Methods:
* forAwardYear
- Returns: IReceivedDocs
- Function: Returns the collection of active received documents (IReceivedDocs) for an award year on an on-demand,
cached basis.'
coa
Purpose: Provides access to all Cost of Attendance information for the student.
Type: ICoaAPI
Available Methods:
* getActiveCoa
- Returns: int
- Function: Gets the active cost of attendance.'
* getActualCoa
- Returns: int
- Function: Gets the actual cost of attendance.'
* getComponents
- Returns: ICoaComponentsAPI
- Function: Gets the COA components.'
* getPellCoa
- Returns: int
- Function: Gets the PELL cost of attendance.'
* getTotalCoa
- Returns: int
- Function: Gets the total cost of attendance.'
* in
- Returns: ICoaAPI
- Function: Filters by term.'
* in
- Returns: ICoaAPI
- Function: Filters by academic year.'
* inAcademicYear
- Returns: ICoaAPI
- Function: Filters by academic year.'
* inTerm
- Returns: ICoaAPI
- Function: Filters by term.'
disbursements
Purpose: Information about all student disbursements.
Type: IDisbursementsAPI
Available Methods:
* filterSeqNos
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for sequence numbers passing a given predicate.'
* filterStatuses
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for disbursement statuses passing a given predicate.'
* getCancelled
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for disbursements that have been cancelled.'
* getDisbursed
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for disbursements
that have not been cancelled (see getCancelled(boolean), include disbursed payments
and whose individual Total Disbursement Amounts are positive.'
* getIncrementalDisbursementAmount
- Returns: BigDecimal
- Function: No description available'
* getLateDisbursement
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for disbursements with the given Late Disbursement
Indicator.'
* getPpDisbursementAmount
- Returns: BigDecimal
- Function: No description available'
* getLatestPayments
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data with only latest payments.'
* getLockingPp
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for (non-)payment period-locking disbursements'
* getPpAppliedAmount
- Returns: BigDecimal
- Function: No description available'
* getPwd
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for disbursements with the given PWD Indicator.'
* getSeqNos
- Returns: Set<Integer>
- Function: No description available'
* getStatuses
- Returns: ISet<String>
- Function: No description available'
* getTotalDisbursementAmount
- Returns: BigDecimal
- Function: No description available'
* getWithSeqNo
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for a given sequence number.'
* getWithSeqNos
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for the given sequence numbers.'
* getWithStatus
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for the given disbursement status.'
* getWithStatuses
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for given disbursement statuses.'
* hasBeenCancelled
- Returns: boolean
- Function: No description available'
* isDisbursed
- Returns: boolean
- Function: No description available'
* isLateDisbursement
- Returns: boolean
- Function: No description available'
* isLockingPp
- Returns: boolean
- Function: No description available'
* isPwd
- Returns: boolean
- Function: No description available'
* getPpMaxDisbursementAmount
- Returns: BigDecimal
- Function: No description available'
* getPpTotalDecreasedAmount
- Returns: BigDecimal
- Function: No description available'
dloan
Purpose: Information related to Direct Loans.
Type: IDloanAPI
Available Methods:
* getLifetimeLimit
- Returns: int
- Function: No description available'
* getRemainingNsldsLimit
- Returns: int
- Function: No description available'
documentRequest
Purpose: Binding that shall be populated by the script with the selected documents.
Type: IIsirRequiredDocsAPI
Available Methods:
* addAnyDocuments
- Returns: void
- Function: Adds a list of documents, any one in the list is required.'
* addAnyDocuments
- Returns: void
- Function: Adds a list of documents, any one in the list is required.'
* addDocument
- Returns: void
- Function: Adds a required document.'
* addDocument
- Returns: void
- Function: Adds a required document.'
* addDocument
- Returns: void
- Function: Adds a required document.'
* any
- Returns: IIsirRequiredDocsAPI
- Function: No description available'
* clear
- Returns: void
- Function: Clears all docs.'
* doc
- Returns: IIsirRequiredDocsAPI
- Function: No description available'
* getAdditionalDocRequestMessages
- Returns: List<String>
- Function: No description available'
* getValidDocCodes
- Returns: Set<String>
- Function: No description available'
* hasDocument
- Returns: boolean
- Function: Returns true if the document has been added, either as a regular request
or an 'any' request.'
* hasDocument
- Returns: boolean
- Function: Returns true if the document has been added, either as a regular request
or an 'any' request.'
* isEmpty
- Returns: boolean
- Function: Checks if these requirements are empty.'
* setValidDocCodes
- Returns: void
- Function: No description available'
enrollment
Purpose: Information for the enrollment this script is being evaluated for.
Type: IEnrollmentAPI
Available Methods:
* belongsTo
- Returns: boolean
- Function: Checks if this enrollment belongs to a student.'
* getBindings
- Returns: IEnrollmentBindingsAPI
- Function: Gets bindings for this enrollment.'
* getEnrollmentStatus
- Returns: String
- Function: Gets the enrollment status.'
* getProgramStartDate
- Returns: LocalDate
- Function: Gets the program start date.'
* isEffective
- Returns: boolean
- Function: Checks if this enrollment is effective.'
enrollments
Purpose: Enrollments information.
Type: IEnrollmentsAPI
Available Methods:
* getHigherPriorityThan
- Returns: List<IEnrollmentAPI>
- Function: Gets a list of enrollments with higher priority than a given enrollment.'
* getOtherThan
- Returns: List<IEnrollmentAPI>
- Function: Gets a list of the enrollments that are different from this enrollment, no
matter the priority.'
financialPlan
Purpose: Information about the student's current financial plan.
Type: IFinancialPlanAPI
Available Methods:
* filterCommonLineUniqueIds
- Returns: T
- Function: Creates a narrowed-down, independent collection of data for CommonLine Unique Ids passing a given predicate.'
* getAcyCoa
- Returns: int
- Function: Deprecated.
Consider using the coa binding (ICoaAPI).'
* getAcyUnpackagedAmount
- Returns: BigDecimal
- Function: Deprecated.
Consider using the coa binding (ICoaAPI).'
* getCarryOn
- Returns: BigDecimal
- Function: No description available'
* getCommonLineUniqueIds
- Returns: Set<ICommonLineUniqueId>
- Function: No description available'
* getEnrollmentIntensities
- Returns: ISet<BigDecimal>
- Function: No description available'
* getEnrollmentStatuses
- Returns: ISet<String>
- Function: No description available'
* getFundStatuses
- Returns: ISet<String>
- Function: No description available'
* getMaxAmount
- Returns: BigDecimal
- Function: No description available'
* getProratedLimit
- Returns: BigDecimal
- Function: No description available'
* getVersion
- Returns: int
- Function: Gets the package version.'
* getWithCommonLineUniqueId
- Returns: T
- Function: Creates a narrowed-down, independent collection of data for the given CommonLine Unique Ids.'
* getWithCommonLineUniqueIds
- Returns: T
- Function: Creates a narrowed-down, independent collection of data for the given CommonLine Unique Ids.'
* isEligible
- Returns: boolean
- Function: No description available'
* isIsirUsedForCalculation
- Returns: boolean
- Function: Identifies ISIRs used while calculating this Financial Plan.'
* isProrated
- Returns: boolean
- Function: No description available'
* isUnmatchedCommonLineLoan
- Returns: boolean
- Function: Checks if a given CommonLine Loan (probably coming from the commonLineLoan binding) has not been matched
yet in the fund collection.'
fundAcceptance
Purpose: Provides access to all Fund Acceptance information for the student.
Type: IFundAcceptanceAPI
Available Methods:
* getWithStatuses
- Returns: T
- Function: Creates a narrowed-down, independent collection of fund acceptance data for given fund acceptance statuses.'
* filterNullableStatuses
- Returns: T
- Function: Creates a narrowed-down, independent collection of fund acceptance data for fund acceptance statuses passing a given predicate.'
* filterStatuses
- Returns: T
- Function: Creates a narrowed-down, independent collection of fund acceptance data for fund acceptance statuses passing a given predicate.'
* getNullableStatuses
- Returns: ISet<String>
- Function: No description available'
* getStatuses
- Returns: ISet<String>
- Function: No description available'
* getValidatedAcceptedAmount
- Returns: BigDecimal
- Function: No description available'
* getWithStatus
- Returns: T
- Function: Creates a narrowed-down, independent collection of fund acceptance data for the given fund acceptance status.'
fundCodeConfig
Purpose: Provides information about fund code configuration.
Type: IFundCodeConfigAPI
Available Methods:
* getFundCodesByPriority
- Returns: List<String>
- Function: No description available'
* getHigherPriorityFundCodes
- Returns: List<String>
- Function: No description available'
helper
Purpose: Helper interface with utility methods.
Type: IGroovyScriptHelper
Available Methods:
* filterCourses
- Returns: ICourseFilterAPI
- Function: No description available'
* getAwardYear
- Returns: IAwardYearHelperAPI
- Function: Returns Award Year-specific helper.'
* getIntegerFromSignedIsirNumber
- Returns: Integer
- Function: Parses a number represented in ISIR format to Integer.'
* getIsirDate
- Returns: Date
- Function: No description available'
* getIsirDateFormatStr
- Returns: String
- Function: No description available'
* getSignedIsirNumberFromInteger
- Returns: String
- Function: No description available'
* isirRecordsDifferForListedFields
- Returns: boolean
- Function: No description available'
* mapRanges
- Returns: IRangeMapStarterAPI
- Function: No description available'
* newAwardYearPeriod
- Returns: IAwardYearAPI
- Function: Returns the Award Year having a given end year.'
* newPeriod
- Returns: IPeriod
- Function: Returns the IPeriod for one single day.'
* newPeriod
- Returns: IPeriod
- Function: Returns a IPeriod given its start and end dates.'
isirRecord
Purpose: The ISIR being evaluated.
Type: IIsirRecordAPI
Available Methods:
* getActiveIsirForAwardYear
- Returns: Boolean
- Function: Gets the active ISIR for award year status.'
* getAllFields
- Returns: @NonNull Map<IsirField<?>,IIsirFieldValue<?>>
- Function: Retrieves all field values (WARNING: can only be used with 2025+ ISIRs).'
* getAssumptions
- Returns: List<IAssumptionAPI>
- Function: Get the assumptions.'
* getAwardYear
- Returns: String
- Function: Gets the award year.'
* getCommentCodes
- Returns: List<ICommentCodeAPI>
- Function: Get the comment codes.'
* getCpsTransNumber
- Returns: String
- Function: Gets the CPS transaction number.'
* getCurrentSsn
- Returns: ISocialSecurityNumber
- Function: Gets the student's current SSN.'
* getDiscrepancies
- Returns: List<IDiscrepancyAPI>
- Function: Get the discrepancies.'
* getField
- Returns: <T> @NonNull IIsirFieldValue<T>
- Function: Retrieves the value of a given field (WARNING: can only be used with 2025+ ISIRs).'
* getFirstName
- Returns: String
- Function: Gets the student's first name.'
* getHighlightFlags
- Returns: List<IHighlightFlagAPI>
- Function: Get the highlight flags.'
* getIsirFieldValue
- Returns: String
- Function: Gets the value of an ISIR field (WARNING: This method can only be used up to 2024 award year).'
* getIsirFieldValueOrNull
- Returns: String
- Function: Gets the value of an ISIR field (WARNING: This method can only be used up to 2024 award year).'
* getIsirFieldValues
- Returns: Map<String,String>
- Function: Get a map containing all ISIR fields (WARNING: This method can only be used up to 2024 award year).'
* getIsirIdOriginalNameId
- Returns: String
- Function: Gets the student's original name ID.'
* getIsirIdSsn
- Returns: ISocialSecurityNumber
- Function: Gets the student's original SSN.'
* getIsirIdYearIndicator
- Returns: String
- Function: Gets the ISIR's year indicator.'
* getIsirStatus
- Returns: String
- Function: Gets the ISIR status.'
* getIsirStatusBeforeCorrection
- Returns: String
- Function: When ISIR Status is Corrected returns the previous ISIR Status.'
* getLastName
- Returns: String
- Function: Gets the student's last name.'
* getMiddleName
- Returns: String
- Function: Gets the student's middle name.'
* getReceivedDate
- Returns: Date
- Function: Gets the system receipt date of the ISIR.'
* getRejectCodes
- Returns: List<IRejectCodeAPI>
- Function: Get the reject codes.'
* getSchoolCode1
- Returns: String
- Function: Gets the school code 1.'
* getSchoolCode10
- Returns: String
- Function: Gets the school code 10.'
* getSchoolCode2
- Returns: String
- Function: Gets the school code 2.'
* getSchoolCode3
- Returns: String
- Function: Gets the school code 3.'
* getSchoolCode4
- Returns: String
- Function: Gets the school code 4.'
* getSchoolCode5
- Returns: String
- Function: Gets the school code 5.'
* getSchoolCode6
- Returns: String
- Function: Gets the school code 6.'
* getSchoolCode7
- Returns: String
- Function: Gets the school code 7.'
* getSchoolCode8
- Returns: String
- Function: Gets the school code 8.'
* getSchoolCode9
- Returns: String
- Function: Gets the school code 9.'
* isCompatibleWithPackaging
- Returns: boolean
- Function: Checks if this ISIR satisfies minimal acceptance criteria for automatic Financial
Aid Package Calculation.'
* isUnverified
- Returns: boolean
- Function: Gets the ISIR verification status.'
log
Purpose: Provides logging capability to scripts.
Type: IScriptLoggerAPI
Available Methods:
* debug
- Returns: boolean
- Function: No description available'
* debug
- Returns: void
- Function: No description available'
* error
- Returns: void
- Function: No description available'
* info
- Returns: boolean
- Function: No description available'
* info
- Returns: void
- Function: No description available'
* warn
- Returns: void
- Function: No description available'
nsldsGuarantorServicers
Purpose: List of all guarantors and servicers.
Type: IGuarantorServicersListAPI
Available Methods:
* getAwardYear
- Returns: String
- Function: No description available'
* getGuarantorServicerName
- Returns: String
- Function: No description available'
previousFinancialPlan
Purpose: Provides access to previous financial plans.
Type: IPreviousFinancialPlanAPI
Available Methods:
* effectiveAt
- Returns: T
- Function: Gets a previous financial plan that was effective at a given time.'
* effectiveAt
- Returns: T
- Function: Gets a previous financial plan that was effective on a given local date.'
* effectiveAt
- Returns: T
- Function: Gets a previous financial plan that was effective at a given local time.'
* withVersion
- Returns: T
- Function: Gets a previous financial plan with a given version.'
program
Purpose: Information about the student's primary program.
Type: IProgramAPI
Available Methods:
* exists
- Returns: boolean
- Function: No description available'
* getAcademicCompletionDate
- Returns: LocalDate
- Function: No description available'
* getAcademicStatus
- Returns: String
- Function: No description available'
* getAdmissionStatus
- Returns: String
- Function: No description available'
* getAssessedUnits
- Returns: BigDecimal
- Function: No description available'
* getAydUnits
- Returns: BigDecimal
- Function: No description available'
* getAydWeeks
- Returns: Integer
- Function: No description available'
* getCharges
- Returns: List<IChargeAPI>
- Function: No description available'
* getCode
- Returns: String
- Function: No description available'
* getCollege
- Returns: String
- Function: No description available'
* getCourses
- Returns: ICoursesAPI
- Function: No description available'
* getDateOfDetermination
- Returns: LocalDate
- Function: No description available'
* getDescription
- Returns: String
- Function: No description available'
* getEnrollmentStatus
- Returns: String
- Function: No description available'
* getEnrollmentStatusEffectiveDate
- Returns: LocalDate
- Function: No description available'
* getEnrollmentStatusSubType
- Returns: String
- Function: No description available'
* getExternalProgramId
- Returns: String
- Function: No description available'
* getFaEligibleIndicator
- Returns: Boolean
- Function: No description available'
* getGpa
- Returns: BigDecimal
- Function: No description available'
* getManualSapEvaluationIndicator
- Returns: Boolean
- Function: No description available'
* getModality
- Returns: String
- Function: No description available'
* getOfficialLastDateOfAttendance
- Returns: LocalDate
- Function: No description available'
* getOpeId
- Returns: String
- Function: No description available'
* getPrimaryLocation
- Returns: String
- Function: No description available'
* getProgramLengthMeasurementUnit
- Returns: String
- Function: No description available'
* getProgramLengthNumberOfUnits
- Returns: int
- Function: No description available'
* getProgramMeasurementUnit
- Returns: String
- Function: No description available'
* getProgramType
- Returns: String
- Function: No description available'
* getRequiredGpa
- Returns: BigDecimal
- Function: No description available'
* getSpecialPrograms
- Returns: String
- Function: No description available'
* getStartDate
- Returns: LocalDate
- Function: No description available'
* getStudentResources
- Returns: List<IStudentResourceAPI>
- Function: No description available'
* getTermAcys
- Returns: ISimpleNumberedPeriods<ITermAcademicYearAPI>
- Function: No description available'
* getTerms
- Returns: ITermPeriodsAPI
- Function: No description available'
* getTermType
- Returns: String
- Function: No description available'
* getTotalAcceptedTransferUnits
- Returns: BigDecimal
- Function: No description available'
* getTotalRequiredUnits
- Returns: BigDecimal
- Function: No description available'
* isBbayTerm
- Returns: boolean
- Function: No description available'
* isGraduate
- Returns: boolean
- Function: No description available'
* isProgramTerm
- Returns: boolean
- Function: No description available'
* isTerm
- Returns: boolean
- Function: No description available'
* isUndergraduate
- Returns: boolean
- Function: No description available'
r2t4
Purpose: Provides access to all R2T4 information for the student.
Type: IR2t4API
Available Methods:
* filterOldas
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for OLDAs passing a given predicate.'
* filterProcessStatuses
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for process statuses passing a given predicate.'
* getGrossAmountDecreased
- Returns: BigDecimal
- Function: No description available'
* getNetAmountDecreased
- Returns: BigDecimal
- Function: No description available'
* getNullableOldas
- Returns: ISet<LocalDate>
- Function: No description available'
* getNullableProcessStatuses
- Returns: ISet<String>
- Function: No description available'
* getOldas
- Returns: ISet<LocalDate>
- Function: No description available'
* getProcessStatuses
- Returns: ISet<String>
- Function: No description available'
* getWithLatest
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for the given isLatest status.'
* getWithOlda
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for the given process OLDA.'
* getWithOldas
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for given process OLDAs.'
* getWithProcessStatus
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for the given process status.'
* getWithProcessStatuses
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for given process statuses.'
* isEligibleForPWD
- Returns: boolean
- Function: No description available'
* isLatest
- Returns: boolean
- Function: Checks if at least one R2T4 process in the collection is the latest.'
receivedDocuments
Purpose: Active documents for the student for the award year of the ISIR being evaluated.
Type: IReceivedDocs
Available Methods:
* get
- Returns: IReceivedDoc
- Function: Return doc for specified code and Student, if it exists.'
* get
- Returns: IReceivedDoc
- Function: Return doc for specified code and owners, if it exists.'
* get
- Returns: IReceivedDoc
- Function: Return doc for specified code, owners, and subtype, if it exists.'
* getDocumentsForDocCode
- Returns: List<IReceivedDoc>
- Function: Return list with doc or doc subtpyes for specified code and Student, if it exists.'
* getDocumentsForDocCode
- Returns: List<IReceivedDoc>
- Function: Return list with doc or doc subtpyes for specified code and owners, if it exists.'
* getValidDocCodes
- Returns: Set<String>
- Function: No description available'
* hasDoc
- Returns: boolean
- Function: No description available'
* hasDoc
- Returns: boolean
- Function: Return true if doc exists with the right code and owners'
* noDocs
- Returns: boolean
- Function: No description available'
* put
- Returns: void
- Function: No description available'
* put
- Returns: void
- Function: No description available'
recentFahRecords
Purpose: All Financial Aid History records associated with the student.
Type: IRecentFahRecordsAPI
Available Methods:
* hasRecordsOfType
- Returns: boolean
- Function: No description available'
* overlapsLoan
- Returns: boolean
- Function: No description available'
* getRecords
- Returns: List<IFahRecordAPI>
- Function: No description available'
* getRecordsByType
- Returns: List<IFahRecordAPI>
- Function: No description available'
student
Purpose: Student information.
Type: IFasStudentAPI
Available Methods:
* getAddressState
- Returns: String
- Function: Gets the federal state in the student's main mailing address, as a two-letter acronym.'
* getBahIndicator
- Returns: Boolean
- Function: Gets the school employee dependet status.'
* getCampusCode
- Returns: String
- Function: Gets the campus code.'
* getCompletionDate
- Returns: Date
- Function: Gets the completion date.'
* getDateOfBirth
- Returns: ISecureLocalDate
- Function: Gets the date of birth.'
* getDependencyStatus
- Returns: String
- Function: Gets the dependency status.'
* getDeterminationDate
- Returns: Date
- Function: Gets the determination date.'
* getDocuments
- Returns: Map<String,IReceivedDoc>
- Function: Gets the student's documents, indexed by document code.'
* getEmail
- Returns: String
- Function: Gets the e-mail.'
* getEnrollmentStatus
- Returns: String
- Function: Gets the enrollment status.'
* getExternalStudentId
- Returns: String
- Function: Gets the external student ID (unique per student).'
* getFinancialAidRequested
- Returns: Boolean
- Function: Gets the financial aid request status.'
* getFirstName
- Returns: String
- Function: Gets the first name.'
* getGender
- Returns: String
- Function: Gets the gender.'
* getHighSchoolEquivalency
- Returns: Boolean
- Function: Gets the high school equivalency status.'
* getLastName
- Returns: String
- Function: Gets the last name.'
* getMiddleName
- Returns: String
- Function: Gets the middle name.'
* getPersonId
- Returns: Long
- Function: Gets the person ID.'
* getProgramType
- Returns: String
- Function: Gets the program type.'
* getRecentFinancialAidHistoryRecords
- Returns: IRecentFahRecordsAPI
- Function: Gets the recent financial aid records.'
* getSchoolCode
- Returns: String
- Function: Gets the school code.'
* getSchoolEmployee
- Returns: Boolean
- Function: Gets the school employee status.'
* getSchoolEmployeeDependent
- Returns: Boolean
- Function: Gets the school employee dependent status.'
* getSsn
- Returns: ISocialSecurityNumber
- Function: Gets the SSN.'
* getStudentId
- Returns: Long
- Function: Gets the student ID (or enrollment ID, unique per enrollment).'
throwsDocumentIsFaUnacceptableExceptionParam
Purpose: This binding can be set within a Groovy script to control whether a subsequent call to
IReceivedDoc.isAcceptable() or IReceivedDocDocumentAPI.isAcceptable() triggers an exception or not when a
document is unnaceptable. The default value is true.
Type: Boolean
Available Methods:
No methods available
IMPORTANT REQUIREMENTS:
1. Each method usage must be explained in its full context
2. All data transformations must be detailed
3. Error handling for each method must be specified
4. Business implications of method results must be clear
## COMMENTING REQUIREMENTS
Your task is to create COMPREHENSIVE, CONTEXTUAL comments for this Oracle SFP Platform script.
FILE-LEVEL DOCUMENTATION REQUIREMENTS:
1. File Header (Using /** ... */ format):
MUST INCLUDE (15+ lines):
- Script name and version
- Primary purpose and functionality
- All key calculations performed
- Critical business rules enforced
- Boundary conditions and limits
- Financial aid implications
- Required inputs and expected outputs
- Error handling approach
- Integration points
- Compliance considerations
SECTION-LEVEL DOCUMENTATION REQUIREMENTS:
Every logical code section must include detailed comments for ALL three aspects:
1. CONDITIONALS Section:
Format:
// CONDITIONALS:
// Check [number]: [specific condition being evaluated]
// Variables: [list of variables and methods involved]
// Purpose: [detailed business reason for this check]
// Logic:
// - [step-by-step breakdown of the condition]
// - [how variables are used]
// - [any transformations applied]
// Success Path: [what happens when condition is true]
// Failure Path: [what happens when condition is false]
// Business Rules: [specific rules being enforced]
// Error Handling: [how errors are managed]
// Financial Impact: [effect on aid calculations]
// If N/A, explicitly state: "CONDITIONALS: N/A"
2. BOUNDARY CHECKS Section:
Format:
// BOUNDARY CHECKS:
// Check [number]: [specific limit being enforced]
// Source: [where boundary values come from]
// Variables: [variables and methods involved]
// Validation:
// - [how boundaries are checked]
// - [validation method details]
// Edge Cases:
// - [specific edge cases handled]
// - [how each is managed]
// Error Handling: [boundary violation management]
// Impact: [effect of boundary violations]
// If N/A, explicitly state: "BOUNDARY CHECKS: N/A"
3. ARITHMETIC Section:
Format:
// ARITHMETIC:
// Operation [number]: [name of calculation]
// Formula: [complete mathematical expression]
// Variables:
// - [each variable and its purpose]
// - [data types and units]
// Steps:
// 1. [detailed step-by-step breakdown]
// 2. [intermediate calculations]
// 3. [transformations applied]
// Business Context: [why this calculation is needed]
// Result: [meaning of the output]
// Financial Impact: [effect on aid calculations]
// Limitations: [any mathematical constraints]
// If N/A, explicitly state: "ARITHMETIC: N/A"
ADDITIONAL REQUIREMENTS:
1. Complex Logic Sections:
- Must break down multi-step operations
- Explain interactions between components
- Detail data flow and transformations
2. Error Handling:
- Document all error conditions
- Explain recovery procedures
- Detail logging and reporting
3. API Interactions:
- Document all platform method calls
- Explain data transformations
- Detail error handling
4. Financial Aid Impact:
- Explain effects on aid calculations
- Document regulatory compliance
- Detail student eligibility impact
Example Section With All Aspects:
// CONDITIONALS:
// Check 1: Payment Period Status Validation
// Variables: getLoanPaymentPeriods(), period.getStatus(), period.getStartDate()
// Purpose: Ensure only valid, active payment periods are included
// Logic:
// - Retrieve all loan payment periods
// - Filter based on status (!= "CANCELED")
// - Compare start dates with reference date
// Success Path: Period included in calculations
// Failure Path: Period excluded from totals
// Business Rules: Canceled periods must not affect grade level
// Error Handling: Invalid periods logged and skipped
// Financial Impact: Affects available loan amounts
//
// BOUNDARY CHECKS:
// Check 1: Payment Period Date Validation
// Source: Academic Calendar Configuration
// Variables: period.getStartDate(), referenceDate
// Validation:
// - Compare period start date with reference date
// - Ensure dates are not null
// Edge Cases:
// - Null dates are excluded
// - Future dates are filtered
// Error Handling: Invalid dates logged and skipped
// Impact: Prevents future periods from affecting current calculation
//
// ARITHMETIC:
// Operation 1: Payment Period Units Summation
// Formula: sum(validPeriods.map(period => period.getUnits()))
// Variables:
// - period.getUnits(): Decimal, represents credit hours
// - validPeriods: Array of filtered payment periods
// Steps:
// 1. Filter valid payment periods
// 2. Extract units from each period
// 3. Sum all units using reduce
// Business Context: Calculate total completed units for grade level
// Result: Total units affecting grade level
// Financial Impact: Determines loan eligibility amounts
// Limitations: Cannot exceed program maximum units
## Groovy Script for Analysis
```groovy
N/A - There is no baseline config. This is a placeholder.
```
## COMMENT GENERATION REQUIREMENTS:
1. Add comprehensive comments following the exact format specified
2. Every logical section must include all three aspects:
- CONDITIONALS
- BOUNDARY CHECKS
- ARITHMETIC
3. Mark any non-applicable aspect as "N/A" explicitly
4. Ensure line-by-line explanation of complex logic
5. Detail all financial aid implications
DO NOT modify the code itself. Add comments only.
REMEMBER:
- Comments must be exhaustively detailed
- Every logical section needs all three aspects
- Financial aid impact must be clear
- Business rules must be explicit
Return ONLY the fully commented Groovy script. No other text or explanations.
ISIR Verification Documents Required
Name: isirVerificationDocumentsRequired
Purpose: Determine the documents required to resolve an ISIR verification.
In Baseline Config: Yes
Return Type: Void
# Oracle SFP Platform Script Documentation Generator
Your task is to create comprehensive, contextual comments for this Oracle SFP Platform Groovy script.
CRITICAL REQUIREMENTS:
1. Follow exact comment format specified
2. Include all three aspects for every section
3. Mark non-applicable aspects as "N/A"
4. Provide business context and financial impact
5. Detail all API interactions and data flows
## Script Purpose and Context
The script being analyzed is: "isirVerificationDocumentsRequired"
Primary Function: Determine documents required to resolve an ISIR verification.
Expected Output Type: Void
This script is part of the Oracle SFP Platform ecosystem and interacts with platform-specific APIs and data structures.
You must analyze this script in the context of financial aid processing workflows, ensuring compliance with:
1. Federal financial aid regulations
2. Academic progress requirements
3. Institutional policies
4. Program-specific rules
Your analysis must detail:
1. All conditional logic and its business implications
2. All boundary checks and their validation purposes
3. All calculations and their financial aid impact
4. Error handling and data validation
5. Integration points with platform APIs
## Available Platform Methods and Integrations
The script has access to the following Oracle SFP Platform integrations.
When commenting the code, you MUST explain how these specific methods and bindings are being used:
isirRecord
Purpose: The ISIR being evaluated.
Type: IIsirRecordAPI
Available Methods:
* getActiveIsirForAwardYear
- Returns: Boolean
- Function: Gets the active ISIR for award year status.'
* getAllFields
- Returns: @NonNull Map<IsirField<?>,IIsirFieldValue<?>>
- Function: Retrieves all field values (WARNING: can only be used with 2025+ ISIRs).'
* getAssumptions
- Returns: List<IAssumptionAPI>
- Function: Get the assumptions.'
* getAwardYear
- Returns: String
- Function: Gets the award year.'
* getCommentCodes
- Returns: List<ICommentCodeAPI>
- Function: Get the comment codes.'
* getCpsTransNumber
- Returns: String
- Function: Gets the CPS transaction number.'
* getCurrentSsn
- Returns: ISocialSecurityNumber
- Function: Gets the student's current SSN.'
* getDiscrepancies
- Returns: List<IDiscrepancyAPI>
- Function: Get the discrepancies.'
* getField
- Returns: <T> @NonNull IIsirFieldValue<T>
- Function: Retrieves the value of a given field (WARNING: can only be used with 2025+ ISIRs).'
* getFirstName
- Returns: String
- Function: Gets the student's first name.'
* getHighlightFlags
- Returns: List<IHighlightFlagAPI>
- Function: Get the highlight flags.'
* getIsirFieldValue
- Returns: String
- Function: Gets the value of an ISIR field (WARNING: This method can only be used up to 2024 award year).'
* getIsirFieldValueOrNull
- Returns: String
- Function: Gets the value of an ISIR field (WARNING: This method can only be used up to 2024 award year).'
* getIsirFieldValues
- Returns: Map<String,String>
- Function: Get a map containing all ISIR fields (WARNING: This method can only be used up to 2024 award year).'
* getIsirIdOriginalNameId
- Returns: String
- Function: Gets the student's original name ID.'
* getIsirIdSsn
- Returns: ISocialSecurityNumber
- Function: Gets the student's original SSN.'
* getIsirIdYearIndicator
- Returns: String
- Function: Gets the ISIR's year indicator.'
* getIsirStatus
- Returns: String
- Function: Gets the ISIR status.'
* getIsirStatusBeforeCorrection
- Returns: String
- Function: When ISIR Status is Corrected returns the previous ISIR Status.'
* getLastName
- Returns: String
- Function: Gets the student's last name.'
* getMiddleName
- Returns: String
- Function: Gets the student's middle name.'
* getReceivedDate
- Returns: Date
- Function: Gets the system receipt date of the ISIR.'
* getRejectCodes
- Returns: List<IRejectCodeAPI>
- Function: Get the reject codes.'
* getSchoolCode1
- Returns: String
- Function: Gets the school code 1.'
* getSchoolCode10
- Returns: String
- Function: Gets the school code 10.'
* getSchoolCode2
- Returns: String
- Function: Gets the school code 2.'
* getSchoolCode3
- Returns: String
- Function: Gets the school code 3.'
* getSchoolCode4
- Returns: String
- Function: Gets the school code 4.'
* getSchoolCode5
- Returns: String
- Function: Gets the school code 5.'
* getSchoolCode6
- Returns: String
- Function: Gets the school code 6.'
* getSchoolCode7
- Returns: String
- Function: Gets the school code 7.'
* getSchoolCode8
- Returns: String
- Function: Gets the school code 8.'
* getSchoolCode9
- Returns: String
- Function: Gets the school code 9.'
* isCompatibleWithPackaging
- Returns: boolean
- Function: Checks if this ISIR satisfies minimal acceptance criteria for automatic Financial
Aid Package Calculation.'
* isUnverified
- Returns: boolean
- Function: Gets the ISIR verification status.'
log
Purpose: Provides logging capability to scripts.
Type: IScriptLoggerAPI
Available Methods:
* debug
- Returns: boolean
- Function: No description available'
* debug
- Returns: void
- Function: No description available'
* error
- Returns: void
- Function: No description available'
* info
- Returns: boolean
- Function: No description available'
* info
- Returns: void
- Function: No description available'
* warn
- Returns: void
- Function: No description available'
nsldsGuarantorServicers
Purpose: List of all guarantors and servicers.
Type: IGuarantorServicersListAPI
Available Methods:
* getAwardYear
- Returns: String
- Function: No description available'
* getGuarantorServicerName
- Returns: String
- Function: No description available'
previousFinancialPlan
Purpose: Provides access to previous financial plans.
Type: IPreviousFinancialPlanAPI
Available Methods:
* effectiveAt
- Returns: T
- Function: Gets a previous financial plan that was effective at a given time.'
* effectiveAt
- Returns: T
- Function: Gets a previous financial plan that was effective on a given local date.'
* effectiveAt
- Returns: T
- Function: Gets a previous financial plan that was effective at a given local time.'
* withVersion
- Returns: T
- Function: Gets a previous financial plan with a given version.'
program
Purpose: Information about the student's primary program.
Type: IProgramAPI
Available Methods:
* exists
- Returns: boolean
- Function: No description available'
* getAcademicCompletionDate
- Returns: LocalDate
- Function: No description available'
* getAcademicStatus
- Returns: String
- Function: No description available'
* getAdmissionStatus
- Returns: String
- Function: No description available'
* getAssessedUnits
- Returns: BigDecimal
- Function: No description available'
* getAydUnits
- Returns: BigDecimal
- Function: No description available'
* getAydWeeks
- Returns: Integer
- Function: No description available'
* getCharges
- Returns: List<IChargeAPI>
- Function: No description available'
* getCode
- Returns: String
- Function: No description available'
* getCollege
- Returns: String
- Function: No description available'
* getCourses
- Returns: ICoursesAPI
- Function: No description available'
* getDateOfDetermination
- Returns: LocalDate
- Function: No description available'
* getDescription
- Returns: String
- Function: No description available'
* getEnrollmentStatus
- Returns: String
- Function: No description available'
* getEnrollmentStatusEffectiveDate
- Returns: LocalDate
- Function: No description available'
* getEnrollmentStatusSubType
- Returns: String
- Function: No description available'
* getExternalProgramId
- Returns: String
- Function: No description available'
* getFaEligibleIndicator
- Returns: Boolean
- Function: No description available'
* getGpa
- Returns: BigDecimal
- Function: No description available'
* getManualSapEvaluationIndicator
- Returns: Boolean
- Function: No description available'
* getModality
- Returns: String
- Function: No description available'
* getOfficialLastDateOfAttendance
- Returns: LocalDate
- Function: No description available'
* getOpeId
- Returns: String
- Function: No description available'
* getPrimaryLocation
- Returns: String
- Function: No description available'
* getProgramLengthMeasurementUnit
- Returns: String
- Function: No description available'
* getProgramLengthNumberOfUnits
- Returns: int
- Function: No description available'
* getProgramMeasurementUnit
- Returns: String
- Function: No description available'
* getProgramType
- Returns: String
- Function: No description available'
* getRequiredGpa
- Returns: BigDecimal
- Function: No description available'
* getSpecialPrograms
- Returns: String
- Function: No description available'
* getStartDate
- Returns: LocalDate
- Function: No description available'
* getStudentResources
- Returns: List<IStudentResourceAPI>
- Function: No description available'
* getTermAcys
- Returns: ISimpleNumberedPeriods<ITermAcademicYearAPI>
- Function: No description available'
* getTerms
- Returns: ITermPeriodsAPI
- Function: No description available'
* getTermType
- Returns: String
- Function: No description available'
* getTotalAcceptedTransferUnits
- Returns: BigDecimal
- Function: No description available'
* getTotalRequiredUnits
- Returns: BigDecimal
- Function: No description available'
* isBbayTerm
- Returns: boolean
- Function: No description available'
* isGraduate
- Returns: boolean
- Function: No description available'
* isProgramTerm
- Returns: boolean
- Function: No description available'
* isTerm
- Returns: boolean
- Function: No description available'
* isUndergraduate
- Returns: boolean
- Function: No description available'
r2t4
Purpose: Provides access to all R2T4 information for the student.
Type: IR2t4API
Available Methods:
* filterOldas
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for OLDAs passing a given predicate.'
* filterProcessStatuses
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for process statuses passing a given predicate.'
* getGrossAmountDecreased
- Returns: BigDecimal
- Function: No description available'
* getNetAmountDecreased
- Returns: BigDecimal
- Function: No description available'
* getNullableOldas
- Returns: ISet<LocalDate>
- Function: No description available'
* getNullableProcessStatuses
- Returns: ISet<String>
- Function: No description available'
* getOldas
- Returns: ISet<LocalDate>
- Function: No description available'
* getProcessStatuses
- Returns: ISet<String>
- Function: No description available'
* getWithLatest
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for the given isLatest status.'
* getWithOlda
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for the given process OLDA.'
* getWithOldas
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for given process OLDAs.'
* getWithProcessStatus
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for the given process status.'
* getWithProcessStatuses
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for given process statuses.'
* isEligibleForPWD
- Returns: boolean
- Function: No description available'
* isLatest
- Returns: boolean
- Function: Checks if at least one R2T4 process in the collection is the latest.'
receivedDocuments
Purpose: Active documents for the student for the award year of the ISIR being evaluated.
Type: IReceivedDocs
Available Methods:
* get
- Returns: IReceivedDoc
- Function: Return doc for specified code and Student, if it exists.'
* get
- Returns: IReceivedDoc
- Function: Return doc for specified code and owners, if it exists.'
* get
- Returns: IReceivedDoc
- Function: Return doc for specified code, owners, and subtype, if it exists.'
* getDocumentsForDocCode
- Returns: List<IReceivedDoc>
- Function: Return list with doc or doc subtpyes for specified code and Student, if it exists.'
* getDocumentsForDocCode
- Returns: List<IReceivedDoc>
- Function: Return list with doc or doc subtpyes for specified code and owners, if it exists.'
* getValidDocCodes
- Returns: Set<String>
- Function: No description available'
* hasDoc
- Returns: boolean
- Function: No description available'
* hasDoc
- Returns: boolean
- Function: Return true if doc exists with the right code and owners'
* noDocs
- Returns: boolean
- Function: No description available'
* put
- Returns: void
- Function: No description available'
* put
- Returns: void
- Function: No description available'
recentFahRecords
Purpose: All Financial Aid History records associated with the student.
Type: IRecentFahRecordsAPI
Available Methods:
* hasRecordsOfType
- Returns: boolean
- Function: No description available'
* overlapsLoan
- Returns: boolean
- Function: No description available'
* getRecords
- Returns: List<IFahRecordAPI>
- Function: No description available'
* getRecordsByType
- Returns: List<IFahRecordAPI>
- Function: No description available'
student
Purpose: Student information.
Type: IFasStudentAPI
Available Methods:
* getAddressState
- Returns: String
- Function: Gets the federal state in the student's main mailing address, as a two-letter acronym.'
* getBahIndicator
- Returns: Boolean
- Function: Gets the school employee dependet status.'
* getCampusCode
- Returns: String
- Function: Gets the campus code.'
* getCompletionDate
- Returns: Date
- Function: Gets the completion date.'
* getDateOfBirth
- Returns: ISecureLocalDate
- Function: Gets the date of birth.'
* getDependencyStatus
- Returns: String
- Function: Gets the dependency status.'
* getDeterminationDate
- Returns: Date
- Function: Gets the determination date.'
* getDocuments
- Returns: Map<String,IReceivedDoc>
- Function: Gets the student's documents, indexed by document code.'
* getEmail
- Returns: String
- Function: Gets the e-mail.'
* getEnrollmentStatus
- Returns: String
- Function: Gets the enrollment status.'
* getExternalStudentId
- Returns: String
- Function: Gets the external student ID (unique per student).'
* getFinancialAidRequested
- Returns: Boolean
- Function: Gets the financial aid request status.'
* getFirstName
- Returns: String
- Function: Gets the first name.'
* getGender
- Returns: String
- Function: Gets the gender.'
* getHighSchoolEquivalency
- Returns: Boolean
- Function: Gets the high school equivalency status.'
* getLastName
- Returns: String
- Function: Gets the last name.'
* getMiddleName
- Returns: String
- Function: Gets the middle name.'
* getPersonId
- Returns: Long
- Function: Gets the person ID.'
* getProgramType
- Returns: String
- Function: Gets the program type.'
* getRecentFinancialAidHistoryRecords
- Returns: IRecentFahRecordsAPI
- Function: Gets the recent financial aid records.'
* getSchoolCode
- Returns: String
- Function: Gets the school code.'
* getSchoolEmployee
- Returns: Boolean
- Function: Gets the school employee status.'
* getSchoolEmployeeDependent
- Returns: Boolean
- Function: Gets the school employee dependent status.'
* getSsn
- Returns: ISocialSecurityNumber
- Function: Gets the SSN.'
* getStudentId
- Returns: Long
- Function: Gets the student ID (or enrollment ID, unique per enrollment).'
throwsDocumentIsFaUnacceptableExceptionParam
Purpose: This binding can be set within a Groovy script to control whether a subsequent call to
IReceivedDoc.isAcceptable() or IReceivedDocDocumentAPI.isAcceptable() triggers an exception or not when a
document is unnaceptable. The default value is true.
Type: Boolean
Available Methods:
No methods available
AGGREGATES_PERKINS_FLAGS
Purpose: Constant value for the FahRecordType enum.
Type: FahRecordType
Available Methods:
No methods available
GRANT_PAYMENT
Purpose: Constant value for the FahRecordType enum.
Type: FahRecordType
Available Methods:
No methods available
LOAN_DETAIL
Purpose: Constant value for the FahRecordType enum.
Type: FahRecordType
Available Methods:
No methods available
OVERPAYMENT
Purpose: Constant value for the FahRecordType enum.
Type: FahRecordType
Available Methods:
No methods available
allAwardYearReceivedDocuments
Purpose: Provides access to all documents received for the student.
Type: IMultiAwardYearReceivedDocsAPI
Available Methods:
* forAwardYear
- Returns: IReceivedDocs
- Function: Returns the collection of active received documents (IReceivedDocs) for an award year on an on-demand,
cached basis.'
coa
Purpose: Provides access to all Cost of Attendance information for the student.
Type: ICoaAPI
Available Methods:
* getActiveCoa
- Returns: int
- Function: Gets the active cost of attendance.'
* getActualCoa
- Returns: int
- Function: Gets the actual cost of attendance.'
* getComponents
- Returns: ICoaComponentsAPI
- Function: Gets the COA components.'
* getPellCoa
- Returns: int
- Function: Gets the PELL cost of attendance.'
* getTotalCoa
- Returns: int
- Function: Gets the total cost of attendance.'
* in
- Returns: ICoaAPI
- Function: Filters by term.'
* in
- Returns: ICoaAPI
- Function: Filters by academic year.'
* inAcademicYear
- Returns: ICoaAPI
- Function: Filters by academic year.'
* inTerm
- Returns: ICoaAPI
- Function: Filters by term.'
disbursements
Purpose: Information about all student disbursements.
Type: IDisbursementsAPI
Available Methods:
* filterSeqNos
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for sequence numbers passing a given predicate.'
* filterStatuses
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for disbursement statuses passing a given predicate.'
* getCancelled
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for disbursements that have been cancelled.'
* getDisbursed
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for disbursements
that have not been cancelled (see getCancelled(boolean), include disbursed payments
and whose individual Total Disbursement Amounts are positive.'
* getIncrementalDisbursementAmount
- Returns: BigDecimal
- Function: No description available'
* getLateDisbursement
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for disbursements with the given Late Disbursement
Indicator.'
* getPpDisbursementAmount
- Returns: BigDecimal
- Function: No description available'
* getLatestPayments
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data with only latest payments.'
* getLockingPp
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for (non-)payment period-locking disbursements'
* getPpAppliedAmount
- Returns: BigDecimal
- Function: No description available'
* getPwd
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for disbursements with the given PWD Indicator.'
* getSeqNos
- Returns: Set<Integer>
- Function: No description available'
* getStatuses
- Returns: ISet<String>
- Function: No description available'
* getTotalDisbursementAmount
- Returns: BigDecimal
- Function: No description available'
* getWithSeqNo
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for a given sequence number.'
* getWithSeqNos
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for the given sequence numbers.'
* getWithStatus
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for the given disbursement status.'
* getWithStatuses
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for given disbursement statuses.'
* hasBeenCancelled
- Returns: boolean
- Function: No description available'
* isDisbursed
- Returns: boolean
- Function: No description available'
* isLateDisbursement
- Returns: boolean
- Function: No description available'
* isLockingPp
- Returns: boolean
- Function: No description available'
* isPwd
- Returns: boolean
- Function: No description available'
* getPpMaxDisbursementAmount
- Returns: BigDecimal
- Function: No description available'
* getPpTotalDecreasedAmount
- Returns: BigDecimal
- Function: No description available'
dloan
Purpose: Information related to Direct Loans.
Type: IDloanAPI
Available Methods:
* getLifetimeLimit
- Returns: int
- Function: No description available'
* getRemainingNsldsLimit
- Returns: int
- Function: No description available'
documentRequest
Purpose: Binding that shall be populated by the script with the selected documents.
Type: IIsirRequiredDocsAPI
Available Methods:
* addAnyDocuments
- Returns: void
- Function: Adds a list of documents, any one in the list is required.'
* addAnyDocuments
- Returns: void
- Function: Adds a list of documents, any one in the list is required.'
* addDocument
- Returns: void
- Function: Adds a required document.'
* addDocument
- Returns: void
- Function: Adds a required document.'
* addDocument
- Returns: void
- Function: Adds a required document.'
* any
- Returns: IIsirRequiredDocsAPI
- Function: No description available'
* clear
- Returns: void
- Function: Clears all docs.'
* doc
- Returns: IIsirRequiredDocsAPI
- Function: No description available'
* getAdditionalDocRequestMessages
- Returns: List<String>
- Function: No description available'
* getValidDocCodes
- Returns: Set<String>
- Function: No description available'
* hasDocument
- Returns: boolean
- Function: Returns true if the document has been added, either as a regular request
or an 'any' request.'
* hasDocument
- Returns: boolean
- Function: Returns true if the document has been added, either as a regular request
or an 'any' request.'
* isEmpty
- Returns: boolean
- Function: Checks if these requirements are empty.'
* setValidDocCodes
- Returns: void
- Function: No description available'
enrollment
Purpose: Information for the enrollment this script is being evaluated for.
Type: IEnrollmentAPI
Available Methods:
* belongsTo
- Returns: boolean
- Function: Checks if this enrollment belongs to a student.'
* getBindings
- Returns: IEnrollmentBindingsAPI
- Function: Gets bindings for this enrollment.'
* getEnrollmentStatus
- Returns: String
- Function: Gets the enrollment status.'
* getProgramStartDate
- Returns: LocalDate
- Function: Gets the program start date.'
* isEffective
- Returns: boolean
- Function: Checks if this enrollment is effective.'
enrollments
Purpose: Enrollments information.
Type: IEnrollmentsAPI
Available Methods:
* getHigherPriorityThan
- Returns: List<IEnrollmentAPI>
- Function: Gets a list of enrollments with higher priority than a given enrollment.'
* getOtherThan
- Returns: List<IEnrollmentAPI>
- Function: Gets a list of the enrollments that are different from this enrollment, no
matter the priority.'
financialPlan
Purpose: Information about the student's current financial plan.
Type: IFinancialPlanAPI
Available Methods:
* filterCommonLineUniqueIds
- Returns: T
- Function: Creates a narrowed-down, independent collection of data for CommonLine Unique Ids passing a given predicate.'
* getAcyCoa
- Returns: int
- Function: Deprecated.
Consider using the coa binding (ICoaAPI).'
* getAcyUnpackagedAmount
- Returns: BigDecimal
- Function: Deprecated.
Consider using the coa binding (ICoaAPI).'
* getCarryOn
- Returns: BigDecimal
- Function: No description available'
* getCommonLineUniqueIds
- Returns: Set<ICommonLineUniqueId>
- Function: No description available'
* getEnrollmentIntensities
- Returns: ISet<BigDecimal>
- Function: No description available'
* getEnrollmentStatuses
- Returns: ISet<String>
- Function: No description available'
* getFundStatuses
- Returns: ISet<String>
- Function: No description available'
* getMaxAmount
- Returns: BigDecimal
- Function: No description available'
* getProratedLimit
- Returns: BigDecimal
- Function: No description available'
* getVersion
- Returns: int
- Function: Gets the package version.'
* getWithCommonLineUniqueId
- Returns: T
- Function: Creates a narrowed-down, independent collection of data for the given CommonLine Unique Ids.'
* getWithCommonLineUniqueIds
- Returns: T
- Function: Creates a narrowed-down, independent collection of data for the given CommonLine Unique Ids.'
* isEligible
- Returns: boolean
- Function: No description available'
* isIsirUsedForCalculation
- Returns: boolean
- Function: Identifies ISIRs used while calculating this Financial Plan.'
* isProrated
- Returns: boolean
- Function: No description available'
* isUnmatchedCommonLineLoan
- Returns: boolean
- Function: Checks if a given CommonLine Loan (probably coming from the commonLineLoan binding) has not been matched
yet in the fund collection.'
fundAcceptance
Purpose: Provides access to all Fund Acceptance information for the student.
Type: IFundAcceptanceAPI
Available Methods:
* getWithStatuses
- Returns: T
- Function: Creates a narrowed-down, independent collection of fund acceptance data for given fund acceptance statuses.'
* filterNullableStatuses
- Returns: T
- Function: Creates a narrowed-down, independent collection of fund acceptance data for fund acceptance statuses passing a given predicate.'
* filterStatuses
- Returns: T
- Function: Creates a narrowed-down, independent collection of fund acceptance data for fund acceptance statuses passing a given predicate.'
* getNullableStatuses
- Returns: ISet<String>
- Function: No description available'
* getStatuses
- Returns: ISet<String>
- Function: No description available'
* getValidatedAcceptedAmount
- Returns: BigDecimal
- Function: No description available'
* getWithStatus
- Returns: T
- Function: Creates a narrowed-down, independent collection of fund acceptance data for the given fund acceptance status.'
fundCodeConfig
Purpose: Provides information about fund code configuration.
Type: IFundCodeConfigAPI
Available Methods:
* getFundCodesByPriority
- Returns: List<String>
- Function: No description available'
* getHigherPriorityFundCodes
- Returns: List<String>
- Function: No description available'
helper
Purpose: Helper interface with utility methods.
Type: IGroovyScriptHelper
Available Methods:
* filterCourses
- Returns: ICourseFilterAPI
- Function: No description available'
* getAwardYear
- Returns: IAwardYearHelperAPI
- Function: Returns Award Year-specific helper.'
* getIntegerFromSignedIsirNumber
- Returns: Integer
- Function: Parses a number represented in ISIR format to Integer.'
* getIsirDate
- Returns: Date
- Function: No description available'
* getIsirDateFormatStr
- Returns: String
- Function: No description available'
* getSignedIsirNumberFromInteger
- Returns: String
- Function: No description available'
* isirRecordsDifferForListedFields
- Returns: boolean
- Function: No description available'
* mapRanges
- Returns: IRangeMapStarterAPI
- Function: No description available'
* newAwardYearPeriod
- Returns: IAwardYearAPI
- Function: Returns the Award Year having a given end year.'
* newPeriod
- Returns: IPeriod
- Function: Returns the IPeriod for one single day.'
* newPeriod
- Returns: IPeriod
- Function: Returns a IPeriod given its start and end dates.'
IMPORTANT REQUIREMENTS:
1. Each method usage must be explained in its full context
2. All data transformations must be detailed
3. Error handling for each method must be specified
4. Business implications of method results must be clear
## COMMENTING REQUIREMENTS
Your task is to create COMPREHENSIVE, CONTEXTUAL comments for this Oracle SFP Platform script.
FILE-LEVEL DOCUMENTATION REQUIREMENTS:
1. File Header (Using /** ... */ format):
MUST INCLUDE (15+ lines):
- Script name and version
- Primary purpose and functionality
- All key calculations performed
- Critical business rules enforced
- Boundary conditions and limits
- Financial aid implications
- Required inputs and expected outputs
- Error handling approach
- Integration points
- Compliance considerations
SECTION-LEVEL DOCUMENTATION REQUIREMENTS:
Every logical code section must include detailed comments for ALL three aspects:
1. CONDITIONALS Section:
Format:
// CONDITIONALS:
// Check [number]: [specific condition being evaluated]
// Variables: [list of variables and methods involved]
// Purpose: [detailed business reason for this check]
// Logic:
// - [step-by-step breakdown of the condition]
// - [how variables are used]
// - [any transformations applied]
// Success Path: [what happens when condition is true]
// Failure Path: [what happens when condition is false]
// Business Rules: [specific rules being enforced]
// Error Handling: [how errors are managed]
// Financial Impact: [effect on aid calculations]
// If N/A, explicitly state: "CONDITIONALS: N/A"
2. BOUNDARY CHECKS Section:
Format:
// BOUNDARY CHECKS:
// Check [number]: [specific limit being enforced]
// Source: [where boundary values come from]
// Variables: [variables and methods involved]
// Validation:
// - [how boundaries are checked]
// - [validation method details]
// Edge Cases:
// - [specific edge cases handled]
// - [how each is managed]
// Error Handling: [boundary violation management]
// Impact: [effect of boundary violations]
// If N/A, explicitly state: "BOUNDARY CHECKS: N/A"
3. ARITHMETIC Section:
Format:
// ARITHMETIC:
// Operation [number]: [name of calculation]
// Formula: [complete mathematical expression]
// Variables:
// - [each variable and its purpose]
// - [data types and units]
// Steps:
// 1. [detailed step-by-step breakdown]
// 2. [intermediate calculations]
// 3. [transformations applied]
// Business Context: [why this calculation is needed]
// Result: [meaning of the output]
// Financial Impact: [effect on aid calculations]
// Limitations: [any mathematical constraints]
// If N/A, explicitly state: "ARITHMETIC: N/A"
ADDITIONAL REQUIREMENTS:
1. Complex Logic Sections:
- Must break down multi-step operations
- Explain interactions between components
- Detail data flow and transformations
2. Error Handling:
- Document all error conditions
- Explain recovery procedures
- Detail logging and reporting
3. API Interactions:
- Document all platform method calls
- Explain data transformations
- Detail error handling
4. Financial Aid Impact:
- Explain effects on aid calculations
- Document regulatory compliance
- Detail student eligibility impact
Example Section With All Aspects:
// CONDITIONALS:
// Check 1: Payment Period Status Validation
// Variables: getLoanPaymentPeriods(), period.getStatus(), period.getStartDate()
// Purpose: Ensure only valid, active payment periods are included
// Logic:
// - Retrieve all loan payment periods
// - Filter based on status (!= "CANCELED")
// - Compare start dates with reference date
// Success Path: Period included in calculations
// Failure Path: Period excluded from totals
// Business Rules: Canceled periods must not affect grade level
// Error Handling: Invalid periods logged and skipped
// Financial Impact: Affects available loan amounts
//
// BOUNDARY CHECKS:
// Check 1: Payment Period Date Validation
// Source: Academic Calendar Configuration
// Variables: period.getStartDate(), referenceDate
// Validation:
// - Compare period start date with reference date
// - Ensure dates are not null
// Edge Cases:
// - Null dates are excluded
// - Future dates are filtered
// Error Handling: Invalid dates logged and skipped
// Impact: Prevents future periods from affecting current calculation
//
// ARITHMETIC:
// Operation 1: Payment Period Units Summation
// Formula: sum(validPeriods.map(period => period.getUnits()))
// Variables:
// - period.getUnits(): Decimal, represents credit hours
// - validPeriods: Array of filtered payment periods
// Steps:
// 1. Filter valid payment periods
// 2. Extract units from each period
// 3. Sum all units using reduce
// Business Context: Calculate total completed units for grade level
// Result: Total units affecting grade level
// Financial Impact: Determines loan eligibility amounts
// Limitations: Cannot exceed program maximum units
## Groovy Script for Analysis
```groovy
//file:noinspection UnnecessaryQualifiedReference
@groovy.transform.BaseScript(com.oracle.sfp.scripting.api.sdk.autocomplete.IsirVerificationDocumentsRequiredScript)
package CHANGE_ME // this should be updated to your actual package name
import com.oracle.sfp.scripting.api.*
import com.oracle.sfp.scripting.api.util.*
//Student ISIR variables
def isirSTUDENT_FILED1040OR1040NR = isirRecord.getField(IsirField.STUDENT_FILED1040OR1040NR).getOrNull()
def isirSTUDENTFTIM_IRSRESPONSECODE_FTI = isirRecord.getField(IsirField.STUDENTFTIM_IRSRESPONSECODE_FTI).getOrNull()
def isirSTUDENT_FILEDNONUSTAXRETURN = isirRecord.getField(IsirField.STUDENT_FILEDNONUSTAXRETURN).getOrNull()
def isirSTUDENTFTIM_UNTAXEDIRADISTRIBUTIONS_FTI = isirRecord.getField(IsirField.STUDENTFTIM_UNTAXEDIRADISTRIBUTIONS_FTI).getOrNull()
def isirSTUDENTFTIM_IRADEDUCTIBLEANDPAYMENTS_FTI = isirRecord.getField(IsirField.STUDENTFTIM_IRADEDUCTIBLEANDPAYMENTS_FTI).getOrNull()
def isirSTUDENT_UNTAXEDPORTIONSOFIRADISTRIBUTIONS = isirRecord.getField(IsirField.STUDENT_UNTAXEDPORTIONSOFIRADISTRIBUTIONS).getOrNull()
def isirSTUDENT_IRAROLLOVER = isirRecord.getField(IsirField.STUDENT_IRAROLLOVER).getOrNull()
def isirSTUDENT_UPDATEDFAMILYSIZE = isirRecord.getField(IsirField.STUDENT_UPDATEDFAMILYSIZE).getOrNull()
def isirFPS_INCARCERATEDAPPLICANTFLAG = isirRecord.getField(IsirField.FPS_INCARCERATEDAPPLICANTFLAG).getOrNull()
def isirFPS_ASSUMEDSTUDENTFAMILYSIZE = isirRecord.getField(IsirField.FPS_ASSUMEDSTUDENTFAMILYSIZE).getOrNull()
def isirSTUDENT_FOREIGNEARNEDINCOMEEXCLUSION = isirRecord.getField(IsirField.STUDENT_FOREIGNEARNEDINCOMEEXCLUSION).getOrNull()
//Student Spouse ISIR variables
def isirSPOUSEFTIM_IRSRESPONSECODE_FTI = isirRecord.getField(IsirField.SPOUSEFTIM_IRSRESPONSECODE_FTI).getOrNull()
def isirSPOUSE_TAXRETURNFILINGSTATUS = isirRecord.getField(IsirField.SPOUSE_TAXRETURNFILINGSTATUS).getOrNull()
def isirSPOUSEFTIM_UNTAXEDIRADISTRIBUTIONS_FTI = isirRecord.getField(IsirField.SPOUSEFTIM_UNTAXEDIRADISTRIBUTIONS_FTI).getOrNull()
def isirSPOUSEFTIM_IRADEDUCTIBLEANDPAYMENTS_FTI = isirRecord.getField(IsirField.SPOUSEFTIM_IRADEDUCTIBLEANDPAYMENTS_FTI).getOrNull()
def isirSPOUSE_UNTAXEDPORTIONSOFIRADISTRIBUTIONS = isirRecord.getField(IsirField.SPOUSE_UNTAXEDPORTIONSOFIRADISTRIBUTIONS).getOrNull()
def isirSPOUSE_IRAROLLOVER = isirRecord.getField(IsirField.SPOUSE_IRAROLLOVER).getOrNull()
def isirSPOUSE_FOREIGNEARNEDINCOMEEXCLUSION = isirRecord.getField(IsirField.SPOUSE_FOREIGNEARNEDINCOMEEXCLUSION).getOrNull()
//If student is incarcerated then exit the script
if (isirFPS_INCARCERATEDAPPLICANTFLAG == "1" || isirFPS_INCARCERATEDAPPLICANTFLAG == "2" || isirFPS_INCARCERATEDAPPLICANTFLAG == "3") {
return
}
//Student document request logic
if ((isirSTUDENT_FILED1040OR1040NR == "1" || isirSTUDENT_FILED1040OR1040NR == null) && [null, "203", "206", "212", "214"].contains(isirSTUDENTFTIM_IRSRESPONSECODE_FTI)) {
documentRequest.addAnyDocuments(["1040", "Student"], ["1040x", "Student"], ["TaxReturnTranscript", "Student"])
}
else if (isirSTUDENT_FILED1040OR1040NR == "2" && isirSTUDENT_FILEDNONUSTAXRETURN == "1") {
documentRequest.addDocument("ForeignTaxTranscript", "Student")
}
else if (isirSTUDENT_FILED1040OR1040NR == "2" && (isirSTUDENT_FILEDNONUSTAXRETURN == "2" || isirSTUDENT_FILEDNONUSTAXRETURN == null)) {
documentRequest.addAnyDocuments(["NonFilingStatement", "Student"], ["W2", "Student"], ["1099G", "Student"], ["SelfEmploymentStatement", "Student"])
}
//Student Spouse document request logic
if (isirSPOUSE_TAXRETURNFILINGSTATUS == "3" && [null, "203", "206", "212", "214"].contains(isirSPOUSEFTIM_IRSRESPONSECODE_FTI)) {
documentRequest.addAnyDocuments(["1040", "Student Spouse"], ["1040x", "Student Spouse"], ["TaxReturnTranscript", "Student Spouse"])
}
else if (isirSPOUSE_TAXRETURNFILINGSTATUS == "3" && [null, "203", "206", "212", "214"].contains(isirSPOUSEFTIM_IRSRESPONSECODE_FTI) && isirSTUDENTFTIM_IRSRESPONSECODE_FTI == "200") {
documentRequest.addAnyDocuments(["1040", "Student Spouse"], ["1040x", "Student Spouse"], ["TaxReturnTranscript", "Student Spouse"])
}
//Student rollover information document request logic
if (isirSTUDENTFTIM_UNTAXEDIRADISTRIBUTIONS_FTI > 0 || isirSTUDENTFTIM_IRADEDUCTIBLEANDPAYMENTS_FTI > 0 || isirSTUDENT_UNTAXEDPORTIONSOFIRADISTRIBUTIONS > 0 || isirSTUDENT_IRAROLLOVER > 0) {
documentRequest.addDocument("RolloverStatement", "Student")
}
//Student Spouse rollover information document request logic
if (isirSPOUSEFTIM_UNTAXEDIRADISTRIBUTIONS_FTI > 0 || isirSPOUSEFTIM_IRADEDUCTIBLEANDPAYMENTS_FTI > 0 || isirSPOUSE_UNTAXEDPORTIONSOFIRADISTRIBUTIONS > 0 || isirSPOUSE_IRAROLLOVER > 0) {
documentRequest.addDocument("RolloverStatement", "Student Spouse")
}
//Student Foreign Income Exclusion document request logic
if (isirSTUDENT_FOREIGNEARNEDINCOMEEXCLUSION != null && (isirSTUDENT_FOREIGNEARNEDINCOMEEXCLUSION > 0 || isirSTUDENT_FOREIGNEARNEDINCOMEEXCLUSION < 0)) {
documentRequest.addAnyDocuments(["1040", "Student"], ["1040x", "Student"], ["TaxReturnTranscript", "Student"], ["ForeignTaxTranscript", "Student"])
}
//Student Spouse Foreign Income Exclusion document request logic
if (isirSPOUSE_FOREIGNEARNEDINCOMEEXCLUSION != null && (isirSPOUSE_FOREIGNEARNEDINCOMEEXCLUSION > 0 || isirSPOUSE_FOREIGNEARNEDINCOMEEXCLUSION < 0)) {
documentRequest.addAnyDocuments(["1040", "Student Spouse"], ["1040x", "Student Spouse"], ["TaxReturnTranscript", "Student Spouse"], ["ForeignTaxTranscript", "Student Spouse"])
}
//Family size document request logic
if (isirSTUDENT_UPDATEDFAMILYSIZE != null || isirFPS_ASSUMEDSTUDENTFAMILYSIZE != null) {
documentRequest.addDocument("VW-Ind", "Student")
}
return
```
## COMMENT GENERATION REQUIREMENTS:
1. Add comprehensive comments following the exact format specified
2. Every logical section must include all three aspects:
- CONDITIONALS
- BOUNDARY CHECKS
- ARITHMETIC
3. Mark any non-applicable aspect as "N/A" explicitly
4. Ensure line-by-line explanation of complex logic
5. Detail all financial aid implications
DO NOT modify the code itself. Add comments only.
REMEMBER:
- Comments must be exhaustively detailed
- Every logical section needs all three aspects
- Financial aid impact must be clear
- Business rules must be explicit
Return ONLY the fully commented Groovy script. No other text or explanations.
ISIR Assumption Documents Required
Name: isirAssumptionDocumentsRequired
Purpose: Determine the documents required to resolve an ISIR assumption.
In Baseline Config: No
Return Type: Void
# Oracle SFP Platform Script Documentation Generator
Your task is to create comprehensive, contextual comments for this Oracle SFP Platform Groovy script.
CRITICAL REQUIREMENTS:
1. Follow exact comment format specified
2. Include all three aspects for every section
3. Mark non-applicable aspects as "N/A"
4. Provide business context and financial impact
5. Detail all API interactions and data flows
## Script Purpose and Context
The script being analyzed is: "isirAssumptionDocumentsRequired"
Primary Function: Determine documents required to resolve an ISIR assumption.
Expected Output Type: Void
This script is part of the Oracle SFP Platform ecosystem and interacts with platform-specific APIs and data structures.
You must analyze this script in the context of financial aid processing workflows, ensuring compliance with:
1. Federal financial aid regulations
2. Academic progress requirements
3. Institutional policies
4. Program-specific rules
Your analysis must detail:
1. All conditional logic and its business implications
2. All boundary checks and their validation purposes
3. All calculations and their financial aid impact
4. Error handling and data validation
5. Integration points with platform APIs
## Available Platform Methods and Integrations
The script has access to the following Oracle SFP Platform integrations.
When commenting the code, you MUST explain how these specific methods and bindings are being used:
AGGREGATES_PERKINS_FLAGS
Purpose: Constant value for the FahRecordType enum.
Type: FahRecordType
Available Methods:
No methods available
GRANT_PAYMENT
Purpose: Constant value for the FahRecordType enum.
Type: FahRecordType
Available Methods:
No methods available
LOAN_DETAIL
Purpose: Constant value for the FahRecordType enum.
Type: FahRecordType
Available Methods:
No methods available
OVERPAYMENT
Purpose: Constant value for the FahRecordType enum.
Type: FahRecordType
Available Methods:
No methods available
allAwardYearReceivedDocuments
Purpose: Provides access to all documents received for the student.
Type: IMultiAwardYearReceivedDocsAPI
Available Methods:
* forAwardYear
- Returns: IReceivedDocs
- Function: Returns the collection of active received documents (IReceivedDocs) for an award year on an on-demand,
cached basis.'
coa
Purpose: Provides access to all Cost of Attendance information for the student.
Type: ICoaAPI
Available Methods:
* getActiveCoa
- Returns: int
- Function: Gets the active cost of attendance.'
* getActualCoa
- Returns: int
- Function: Gets the actual cost of attendance.'
* getComponents
- Returns: ICoaComponentsAPI
- Function: Gets the COA components.'
* getPellCoa
- Returns: int
- Function: Gets the PELL cost of attendance.'
* getTotalCoa
- Returns: int
- Function: Gets the total cost of attendance.'
* in
- Returns: ICoaAPI
- Function: Filters by term.'
* in
- Returns: ICoaAPI
- Function: Filters by academic year.'
* inAcademicYear
- Returns: ICoaAPI
- Function: Filters by academic year.'
* inTerm
- Returns: ICoaAPI
- Function: Filters by term.'
disbursements
Purpose: Information about all student disbursements.
Type: IDisbursementsAPI
Available Methods:
* filterSeqNos
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for sequence numbers passing a given predicate.'
* filterStatuses
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for disbursement statuses passing a given predicate.'
* getCancelled
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for disbursements that have been cancelled.'
* getDisbursed
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for disbursements
that have not been cancelled (see getCancelled(boolean), include disbursed payments
and whose individual Total Disbursement Amounts are positive.'
* getIncrementalDisbursementAmount
- Returns: BigDecimal
- Function: No description available'
* getLateDisbursement
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for disbursements with the given Late Disbursement
Indicator.'
* getPpDisbursementAmount
- Returns: BigDecimal
- Function: No description available'
* getLatestPayments
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data with only latest payments.'
* getLockingPp
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for (non-)payment period-locking disbursements'
* getPpAppliedAmount
- Returns: BigDecimal
- Function: No description available'
* getPwd
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for disbursements with the given PWD Indicator.'
* getSeqNos
- Returns: Set<Integer>
- Function: No description available'
* getStatuses
- Returns: ISet<String>
- Function: No description available'
* getTotalDisbursementAmount
- Returns: BigDecimal
- Function: No description available'
* getWithSeqNo
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for a given sequence number.'
* getWithSeqNos
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for the given sequence numbers.'
* getWithStatus
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for the given disbursement status.'
* getWithStatuses
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for given disbursement statuses.'
* hasBeenCancelled
- Returns: boolean
- Function: No description available'
* isDisbursed
- Returns: boolean
- Function: No description available'
* isLateDisbursement
- Returns: boolean
- Function: No description available'
* isLockingPp
- Returns: boolean
- Function: No description available'
* isPwd
- Returns: boolean
- Function: No description available'
* getPpMaxDisbursementAmount
- Returns: BigDecimal
- Function: No description available'
* getPpTotalDecreasedAmount
- Returns: BigDecimal
- Function: No description available'
dloan
Purpose: Information related to Direct Loans.
Type: IDloanAPI
Available Methods:
* getLifetimeLimit
- Returns: int
- Function: No description available'
* getRemainingNsldsLimit
- Returns: int
- Function: No description available'
documentRequest
Purpose: Binding that shall be populated by the script with the selected documents.
Type: IIsirRequiredDocsAPI
Available Methods:
* addAnyDocuments
- Returns: void
- Function: Adds a list of documents, any one in the list is required.'
* addAnyDocuments
- Returns: void
- Function: Adds a list of documents, any one in the list is required.'
* addDocument
- Returns: void
- Function: Adds a required document.'
* addDocument
- Returns: void
- Function: Adds a required document.'
* addDocument
- Returns: void
- Function: Adds a required document.'
* any
- Returns: IIsirRequiredDocsAPI
- Function: No description available'
* clear
- Returns: void
- Function: Clears all docs.'
* doc
- Returns: IIsirRequiredDocsAPI
- Function: No description available'
* getAdditionalDocRequestMessages
- Returns: List<String>
- Function: No description available'
* getValidDocCodes
- Returns: Set<String>
- Function: No description available'
* hasDocument
- Returns: boolean
- Function: Returns true if the document has been added, either as a regular request
or an 'any' request.'
* hasDocument
- Returns: boolean
- Function: Returns true if the document has been added, either as a regular request
or an 'any' request.'
* isEmpty
- Returns: boolean
- Function: Checks if these requirements are empty.'
* setValidDocCodes
- Returns: void
- Function: No description available'
enrollment
Purpose: Information for the enrollment this script is being evaluated for.
Type: IEnrollmentAPI
Available Methods:
* belongsTo
- Returns: boolean
- Function: Checks if this enrollment belongs to a student.'
* getBindings
- Returns: IEnrollmentBindingsAPI
- Function: Gets bindings for this enrollment.'
* getEnrollmentStatus
- Returns: String
- Function: Gets the enrollment status.'
* getProgramStartDate
- Returns: LocalDate
- Function: Gets the program start date.'
* isEffective
- Returns: boolean
- Function: Checks if this enrollment is effective.'
enrollments
Purpose: Enrollments information.
Type: IEnrollmentsAPI
Available Methods:
* getHigherPriorityThan
- Returns: List<IEnrollmentAPI>
- Function: Gets a list of enrollments with higher priority than a given enrollment.'
* getOtherThan
- Returns: List<IEnrollmentAPI>
- Function: Gets a list of the enrollments that are different from this enrollment, no
matter the priority.'
financialPlan
Purpose: Information about the student's current financial plan.
Type: IFinancialPlanAPI
Available Methods:
* filterCommonLineUniqueIds
- Returns: T
- Function: Creates a narrowed-down, independent collection of data for CommonLine Unique Ids passing a given predicate.'
* getAcyCoa
- Returns: int
- Function: Deprecated.
Consider using the coa binding (ICoaAPI).'
* getAcyUnpackagedAmount
- Returns: BigDecimal
- Function: Deprecated.
Consider using the coa binding (ICoaAPI).'
* getCarryOn
- Returns: BigDecimal
- Function: No description available'
* getCommonLineUniqueIds
- Returns: Set<ICommonLineUniqueId>
- Function: No description available'
* getEnrollmentIntensities
- Returns: ISet<BigDecimal>
- Function: No description available'
* getEnrollmentStatuses
- Returns: ISet<String>
- Function: No description available'
* getFundStatuses
- Returns: ISet<String>
- Function: No description available'
* getMaxAmount
- Returns: BigDecimal
- Function: No description available'
* getProratedLimit
- Returns: BigDecimal
- Function: No description available'
* getVersion
- Returns: int
- Function: Gets the package version.'
* getWithCommonLineUniqueId
- Returns: T
- Function: Creates a narrowed-down, independent collection of data for the given CommonLine Unique Ids.'
* getWithCommonLineUniqueIds
- Returns: T
- Function: Creates a narrowed-down, independent collection of data for the given CommonLine Unique Ids.'
* isEligible
- Returns: boolean
- Function: No description available'
* isIsirUsedForCalculation
- Returns: boolean
- Function: Identifies ISIRs used while calculating this Financial Plan.'
* isProrated
- Returns: boolean
- Function: No description available'
* isUnmatchedCommonLineLoan
- Returns: boolean
- Function: Checks if a given CommonLine Loan (probably coming from the commonLineLoan binding) has not been matched
yet in the fund collection.'
fundAcceptance
Purpose: Provides access to all Fund Acceptance information for the student.
Type: IFundAcceptanceAPI
Available Methods:
* getWithStatuses
- Returns: T
- Function: Creates a narrowed-down, independent collection of fund acceptance data for given fund acceptance statuses.'
* filterNullableStatuses
- Returns: T
- Function: Creates a narrowed-down, independent collection of fund acceptance data for fund acceptance statuses passing a given predicate.'
* filterStatuses
- Returns: T
- Function: Creates a narrowed-down, independent collection of fund acceptance data for fund acceptance statuses passing a given predicate.'
* getNullableStatuses
- Returns: ISet<String>
- Function: No description available'
* getStatuses
- Returns: ISet<String>
- Function: No description available'
* getValidatedAcceptedAmount
- Returns: BigDecimal
- Function: No description available'
* getWithStatus
- Returns: T
- Function: Creates a narrowed-down, independent collection of fund acceptance data for the given fund acceptance status.'
fundCodeConfig
Purpose: Provides information about fund code configuration.
Type: IFundCodeConfigAPI
Available Methods:
* getFundCodesByPriority
- Returns: List<String>
- Function: No description available'
* getHigherPriorityFundCodes
- Returns: List<String>
- Function: No description available'
helper
Purpose: Helper interface with utility methods.
Type: IGroovyScriptHelper
Available Methods:
* filterCourses
- Returns: ICourseFilterAPI
- Function: No description available'
* getAwardYear
- Returns: IAwardYearHelperAPI
- Function: Returns Award Year-specific helper.'
* getIntegerFromSignedIsirNumber
- Returns: Integer
- Function: Parses a number represented in ISIR format to Integer.'
* getIsirDate
- Returns: Date
- Function: No description available'
* getIsirDateFormatStr
- Returns: String
- Function: No description available'
* getSignedIsirNumberFromInteger
- Returns: String
- Function: No description available'
* isirRecordsDifferForListedFields
- Returns: boolean
- Function: No description available'
* mapRanges
- Returns: IRangeMapStarterAPI
- Function: No description available'
* newAwardYearPeriod
- Returns: IAwardYearAPI
- Function: Returns the Award Year having a given end year.'
* newPeriod
- Returns: IPeriod
- Function: Returns the IPeriod for one single day.'
* newPeriod
- Returns: IPeriod
- Function: Returns a IPeriod given its start and end dates.'
isirRecord
Purpose: The ISIR being evaluated.
Type: IIsirRecordAPI
Available Methods:
* getActiveIsirForAwardYear
- Returns: Boolean
- Function: Gets the active ISIR for award year status.'
* getAllFields
- Returns: @NonNull Map<IsirField<?>,IIsirFieldValue<?>>
- Function: Retrieves all field values (WARNING: can only be used with 2025+ ISIRs).'
* getAssumptions
- Returns: List<IAssumptionAPI>
- Function: Get the assumptions.'
* getAwardYear
- Returns: String
- Function: Gets the award year.'
* getCommentCodes
- Returns: List<ICommentCodeAPI>
- Function: Get the comment codes.'
* getCpsTransNumber
- Returns: String
- Function: Gets the CPS transaction number.'
* getCurrentSsn
- Returns: ISocialSecurityNumber
- Function: Gets the student's current SSN.'
* getDiscrepancies
- Returns: List<IDiscrepancyAPI>
- Function: Get the discrepancies.'
* getField
- Returns: <T> @NonNull IIsirFieldValue<T>
- Function: Retrieves the value of a given field (WARNING: can only be used with 2025+ ISIRs).'
* getFirstName
- Returns: String
- Function: Gets the student's first name.'
* getHighlightFlags
- Returns: List<IHighlightFlagAPI>
- Function: Get the highlight flags.'
* getIsirFieldValue
- Returns: String
- Function: Gets the value of an ISIR field (WARNING: This method can only be used up to 2024 award year).'
* getIsirFieldValueOrNull
- Returns: String
- Function: Gets the value of an ISIR field (WARNING: This method can only be used up to 2024 award year).'
* getIsirFieldValues
- Returns: Map<String,String>
- Function: Get a map containing all ISIR fields (WARNING: This method can only be used up to 2024 award year).'
* getIsirIdOriginalNameId
- Returns: String
- Function: Gets the student's original name ID.'
* getIsirIdSsn
- Returns: ISocialSecurityNumber
- Function: Gets the student's original SSN.'
* getIsirIdYearIndicator
- Returns: String
- Function: Gets the ISIR's year indicator.'
* getIsirStatus
- Returns: String
- Function: Gets the ISIR status.'
* getIsirStatusBeforeCorrection
- Returns: String
- Function: When ISIR Status is Corrected returns the previous ISIR Status.'
* getLastName
- Returns: String
- Function: Gets the student's last name.'
* getMiddleName
- Returns: String
- Function: Gets the student's middle name.'
* getReceivedDate
- Returns: Date
- Function: Gets the system receipt date of the ISIR.'
* getRejectCodes
- Returns: List<IRejectCodeAPI>
- Function: Get the reject codes.'
* getSchoolCode1
- Returns: String
- Function: Gets the school code 1.'
* getSchoolCode10
- Returns: String
- Function: Gets the school code 10.'
* getSchoolCode2
- Returns: String
- Function: Gets the school code 2.'
* getSchoolCode3
- Returns: String
- Function: Gets the school code 3.'
* getSchoolCode4
- Returns: String
- Function: Gets the school code 4.'
* getSchoolCode5
- Returns: String
- Function: Gets the school code 5.'
* getSchoolCode6
- Returns: String
- Function: Gets the school code 6.'
* getSchoolCode7
- Returns: String
- Function: Gets the school code 7.'
* getSchoolCode8
- Returns: String
- Function: Gets the school code 8.'
* getSchoolCode9
- Returns: String
- Function: Gets the school code 9.'
* isCompatibleWithPackaging
- Returns: boolean
- Function: Checks if this ISIR satisfies minimal acceptance criteria for automatic Financial
Aid Package Calculation.'
* isUnverified
- Returns: boolean
- Function: Gets the ISIR verification status.'
log
Purpose: Provides logging capability to scripts.
Type: IScriptLoggerAPI
Available Methods:
* debug
- Returns: boolean
- Function: No description available'
* debug
- Returns: void
- Function: No description available'
* error
- Returns: void
- Function: No description available'
* info
- Returns: boolean
- Function: No description available'
* info
- Returns: void
- Function: No description available'
* warn
- Returns: void
- Function: No description available'
nsldsGuarantorServicers
Purpose: List of all guarantors and servicers.
Type: IGuarantorServicersListAPI
Available Methods:
* getAwardYear
- Returns: String
- Function: No description available'
* getGuarantorServicerName
- Returns: String
- Function: No description available'
previousFinancialPlan
Purpose: Provides access to previous financial plans.
Type: IPreviousFinancialPlanAPI
Available Methods:
* effectiveAt
- Returns: T
- Function: Gets a previous financial plan that was effective at a given time.'
* effectiveAt
- Returns: T
- Function: Gets a previous financial plan that was effective on a given local date.'
* effectiveAt
- Returns: T
- Function: Gets a previous financial plan that was effective at a given local time.'
* withVersion
- Returns: T
- Function: Gets a previous financial plan with a given version.'
program
Purpose: Information about the student's primary program.
Type: IProgramAPI
Available Methods:
* exists
- Returns: boolean
- Function: No description available'
* getAcademicCompletionDate
- Returns: LocalDate
- Function: No description available'
* getAcademicStatus
- Returns: String
- Function: No description available'
* getAdmissionStatus
- Returns: String
- Function: No description available'
* getAssessedUnits
- Returns: BigDecimal
- Function: No description available'
* getAydUnits
- Returns: BigDecimal
- Function: No description available'
* getAydWeeks
- Returns: Integer
- Function: No description available'
* getCharges
- Returns: List<IChargeAPI>
- Function: No description available'
* getCode
- Returns: String
- Function: No description available'
* getCollege
- Returns: String
- Function: No description available'
* getCourses
- Returns: ICoursesAPI
- Function: No description available'
* getDateOfDetermination
- Returns: LocalDate
- Function: No description available'
* getDescription
- Returns: String
- Function: No description available'
* getEnrollmentStatus
- Returns: String
- Function: No description available'
* getEnrollmentStatusEffectiveDate
- Returns: LocalDate
- Function: No description available'
* getEnrollmentStatusSubType
- Returns: String
- Function: No description available'
* getExternalProgramId
- Returns: String
- Function: No description available'
* getFaEligibleIndicator
- Returns: Boolean
- Function: No description available'
* getGpa
- Returns: BigDecimal
- Function: No description available'
* getManualSapEvaluationIndicator
- Returns: Boolean
- Function: No description available'
* getModality
- Returns: String
- Function: No description available'
* getOfficialLastDateOfAttendance
- Returns: LocalDate
- Function: No description available'
* getOpeId
- Returns: String
- Function: No description available'
* getPrimaryLocation
- Returns: String
- Function: No description available'
* getProgramLengthMeasurementUnit
- Returns: String
- Function: No description available'
* getProgramLengthNumberOfUnits
- Returns: int
- Function: No description available'
* getProgramMeasurementUnit
- Returns: String
- Function: No description available'
* getProgramType
- Returns: String
- Function: No description available'
* getRequiredGpa
- Returns: BigDecimal
- Function: No description available'
* getSpecialPrograms
- Returns: String
- Function: No description available'
* getStartDate
- Returns: LocalDate
- Function: No description available'
* getStudentResources
- Returns: List<IStudentResourceAPI>
- Function: No description available'
* getTermAcys
- Returns: ISimpleNumberedPeriods<ITermAcademicYearAPI>
- Function: No description available'
* getTerms
- Returns: ITermPeriodsAPI
- Function: No description available'
* getTermType
- Returns: String
- Function: No description available'
* getTotalAcceptedTransferUnits
- Returns: BigDecimal
- Function: No description available'
* getTotalRequiredUnits
- Returns: BigDecimal
- Function: No description available'
* isBbayTerm
- Returns: boolean
- Function: No description available'
* isGraduate
- Returns: boolean
- Function: No description available'
* isProgramTerm
- Returns: boolean
- Function: No description available'
* isTerm
- Returns: boolean
- Function: No description available'
* isUndergraduate
- Returns: boolean
- Function: No description available'
r2t4
Purpose: Provides access to all R2T4 information for the student.
Type: IR2t4API
Available Methods:
* filterOldas
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for OLDAs passing a given predicate.'
* filterProcessStatuses
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for process statuses passing a given predicate.'
* getGrossAmountDecreased
- Returns: BigDecimal
- Function: No description available'
* getNetAmountDecreased
- Returns: BigDecimal
- Function: No description available'
* getNullableOldas
- Returns: ISet<LocalDate>
- Function: No description available'
* getNullableProcessStatuses
- Returns: ISet<String>
- Function: No description available'
* getOldas
- Returns: ISet<LocalDate>
- Function: No description available'
* getProcessStatuses
- Returns: ISet<String>
- Function: No description available'
* getWithLatest
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for the given isLatest status.'
* getWithOlda
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for the given process OLDA.'
* getWithOldas
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for given process OLDAs.'
* getWithProcessStatus
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for the given process status.'
* getWithProcessStatuses
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for given process statuses.'
* isEligibleForPWD
- Returns: boolean
- Function: No description available'
* isLatest
- Returns: boolean
- Function: Checks if at least one R2T4 process in the collection is the latest.'
receivedDocuments
Purpose: Active documents for the student for the award year of the ISIR being evaluated.
Type: IReceivedDocs
Available Methods:
* get
- Returns: IReceivedDoc
- Function: Return doc for specified code and Student, if it exists.'
* get
- Returns: IReceivedDoc
- Function: Return doc for specified code and owners, if it exists.'
* get
- Returns: IReceivedDoc
- Function: Return doc for specified code, owners, and subtype, if it exists.'
* getDocumentsForDocCode
- Returns: List<IReceivedDoc>
- Function: Return list with doc or doc subtpyes for specified code and Student, if it exists.'
* getDocumentsForDocCode
- Returns: List<IReceivedDoc>
- Function: Return list with doc or doc subtpyes for specified code and owners, if it exists.'
* getValidDocCodes
- Returns: Set<String>
- Function: No description available'
* hasDoc
- Returns: boolean
- Function: No description available'
* hasDoc
- Returns: boolean
- Function: Return true if doc exists with the right code and owners'
* noDocs
- Returns: boolean
- Function: No description available'
* put
- Returns: void
- Function: No description available'
* put
- Returns: void
- Function: No description available'
recentFahRecords
Purpose: All Financial Aid History records associated with the student.
Type: IRecentFahRecordsAPI
Available Methods:
* hasRecordsOfType
- Returns: boolean
- Function: No description available'
* overlapsLoan
- Returns: boolean
- Function: No description available'
* getRecords
- Returns: List<IFahRecordAPI>
- Function: No description available'
* getRecordsByType
- Returns: List<IFahRecordAPI>
- Function: No description available'
student
Purpose: Student information.
Type: IFasStudentAPI
Available Methods:
* getAddressState
- Returns: String
- Function: Gets the federal state in the student's main mailing address, as a two-letter acronym.'
* getBahIndicator
- Returns: Boolean
- Function: Gets the school employee dependet status.'
* getCampusCode
- Returns: String
- Function: Gets the campus code.'
* getCompletionDate
- Returns: Date
- Function: Gets the completion date.'
* getDateOfBirth
- Returns: ISecureLocalDate
- Function: Gets the date of birth.'
* getDependencyStatus
- Returns: String
- Function: Gets the dependency status.'
* getDeterminationDate
- Returns: Date
- Function: Gets the determination date.'
* getDocuments
- Returns: Map<String,IReceivedDoc>
- Function: Gets the student's documents, indexed by document code.'
* getEmail
- Returns: String
- Function: Gets the e-mail.'
* getEnrollmentStatus
- Returns: String
- Function: Gets the enrollment status.'
* getExternalStudentId
- Returns: String
- Function: Gets the external student ID (unique per student).'
* getFinancialAidRequested
- Returns: Boolean
- Function: Gets the financial aid request status.'
* getFirstName
- Returns: String
- Function: Gets the first name.'
* getGender
- Returns: String
- Function: Gets the gender.'
* getHighSchoolEquivalency
- Returns: Boolean
- Function: Gets the high school equivalency status.'
* getLastName
- Returns: String
- Function: Gets the last name.'
* getMiddleName
- Returns: String
- Function: Gets the middle name.'
* getPersonId
- Returns: Long
- Function: Gets the person ID.'
* getProgramType
- Returns: String
- Function: Gets the program type.'
* getRecentFinancialAidHistoryRecords
- Returns: IRecentFahRecordsAPI
- Function: Gets the recent financial aid records.'
* getSchoolCode
- Returns: String
- Function: Gets the school code.'
* getSchoolEmployee
- Returns: Boolean
- Function: Gets the school employee status.'
* getSchoolEmployeeDependent
- Returns: Boolean
- Function: Gets the school employee dependent status.'
* getSsn
- Returns: ISocialSecurityNumber
- Function: Gets the SSN.'
* getStudentId
- Returns: Long
- Function: Gets the student ID (or enrollment ID, unique per enrollment).'
throwsDocumentIsFaUnacceptableExceptionParam
Purpose: This binding can be set within a Groovy script to control whether a subsequent call to
IReceivedDoc.isAcceptable() or IReceivedDocDocumentAPI.isAcceptable() triggers an exception or not when a
document is unnaceptable. The default value is true.
Type: Boolean
Available Methods:
No methods available
IMPORTANT REQUIREMENTS:
1. Each method usage must be explained in its full context
2. All data transformations must be detailed
3. Error handling for each method must be specified
4. Business implications of method results must be clear
## COMMENTING REQUIREMENTS
Your task is to create COMPREHENSIVE, CONTEXTUAL comments for this Oracle SFP Platform script.
FILE-LEVEL DOCUMENTATION REQUIREMENTS:
1. File Header (Using /** ... */ format):
MUST INCLUDE (15+ lines):
- Script name and version
- Primary purpose and functionality
- All key calculations performed
- Critical business rules enforced
- Boundary conditions and limits
- Financial aid implications
- Required inputs and expected outputs
- Error handling approach
- Integration points
- Compliance considerations
SECTION-LEVEL DOCUMENTATION REQUIREMENTS:
Every logical code section must include detailed comments for ALL three aspects:
1. CONDITIONALS Section:
Format:
// CONDITIONALS:
// Check [number]: [specific condition being evaluated]
// Variables: [list of variables and methods involved]
// Purpose: [detailed business reason for this check]
// Logic:
// - [step-by-step breakdown of the condition]
// - [how variables are used]
// - [any transformations applied]
// Success Path: [what happens when condition is true]
// Failure Path: [what happens when condition is false]
// Business Rules: [specific rules being enforced]
// Error Handling: [how errors are managed]
// Financial Impact: [effect on aid calculations]
// If N/A, explicitly state: "CONDITIONALS: N/A"
2. BOUNDARY CHECKS Section:
Format:
// BOUNDARY CHECKS:
// Check [number]: [specific limit being enforced]
// Source: [where boundary values come from]
// Variables: [variables and methods involved]
// Validation:
// - [how boundaries are checked]
// - [validation method details]
// Edge Cases:
// - [specific edge cases handled]
// - [how each is managed]
// Error Handling: [boundary violation management]
// Impact: [effect of boundary violations]
// If N/A, explicitly state: "BOUNDARY CHECKS: N/A"
3. ARITHMETIC Section:
Format:
// ARITHMETIC:
// Operation [number]: [name of calculation]
// Formula: [complete mathematical expression]
// Variables:
// - [each variable and its purpose]
// - [data types and units]
// Steps:
// 1. [detailed step-by-step breakdown]
// 2. [intermediate calculations]
// 3. [transformations applied]
// Business Context: [why this calculation is needed]
// Result: [meaning of the output]
// Financial Impact: [effect on aid calculations]
// Limitations: [any mathematical constraints]
// If N/A, explicitly state: "ARITHMETIC: N/A"
ADDITIONAL REQUIREMENTS:
1. Complex Logic Sections:
- Must break down multi-step operations
- Explain interactions between components
- Detail data flow and transformations
2. Error Handling:
- Document all error conditions
- Explain recovery procedures
- Detail logging and reporting
3. API Interactions:
- Document all platform method calls
- Explain data transformations
- Detail error handling
4. Financial Aid Impact:
- Explain effects on aid calculations
- Document regulatory compliance
- Detail student eligibility impact
Example Section With All Aspects:
// CONDITIONALS:
// Check 1: Payment Period Status Validation
// Variables: getLoanPaymentPeriods(), period.getStatus(), period.getStartDate()
// Purpose: Ensure only valid, active payment periods are included
// Logic:
// - Retrieve all loan payment periods
// - Filter based on status (!= "CANCELED")
// - Compare start dates with reference date
// Success Path: Period included in calculations
// Failure Path: Period excluded from totals
// Business Rules: Canceled periods must not affect grade level
// Error Handling: Invalid periods logged and skipped
// Financial Impact: Affects available loan amounts
//
// BOUNDARY CHECKS:
// Check 1: Payment Period Date Validation
// Source: Academic Calendar Configuration
// Variables: period.getStartDate(), referenceDate
// Validation:
// - Compare period start date with reference date
// - Ensure dates are not null
// Edge Cases:
// - Null dates are excluded
// - Future dates are filtered
// Error Handling: Invalid dates logged and skipped
// Impact: Prevents future periods from affecting current calculation
//
// ARITHMETIC:
// Operation 1: Payment Period Units Summation
// Formula: sum(validPeriods.map(period => period.getUnits()))
// Variables:
// - period.getUnits(): Decimal, represents credit hours
// - validPeriods: Array of filtered payment periods
// Steps:
// 1. Filter valid payment periods
// 2. Extract units from each period
// 3. Sum all units using reduce
// Business Context: Calculate total completed units for grade level
// Result: Total units affecting grade level
// Financial Impact: Determines loan eligibility amounts
// Limitations: Cannot exceed program maximum units
## Groovy Script for Analysis
```groovy
N/A - There is no baseline config. This is a placeholder.
```
## COMMENT GENERATION REQUIREMENTS:
1. Add comprehensive comments following the exact format specified
2. Every logical section must include all three aspects:
- CONDITIONALS
- BOUNDARY CHECKS
- ARITHMETIC
3. Mark any non-applicable aspect as "N/A" explicitly
4. Ensure line-by-line explanation of complex logic
5. Detail all financial aid implications
DO NOT modify the code itself. Add comments only.
REMEMBER:
- Comments must be exhaustively detailed
- Every logical section needs all three aspects
- Financial aid impact must be clear
- Business rules must be explicit
Return ONLY the fully commented Groovy script. No other text or explanations.
ISIR Discrepancy Required Documents
Name: isirDiscrepancyRequiredDocuments
Purpose: Determine whether the isirDiscrepancyEvaluation script should be executed.
In Baseline Config: No
Return Type: Void
# Oracle SFP Platform Script Documentation Generator
Your task is to create comprehensive, contextual comments for this Oracle SFP Platform Groovy script.
CRITICAL REQUIREMENTS:
1. Follow exact comment format specified
2. Include all three aspects for every section
3. Mark non-applicable aspects as "N/A"
4. Provide business context and financial impact
5. Detail all API interactions and data flows
## Script Purpose and Context
The script being analyzed is: "isirDiscrepancyRequiredDocuments"
Primary Function: Determine whether the isirDiscrepancyEvaluation script should be executed, based on whether all required
documents necessary to make the ISIR correction determination already exist on the student record.
Expected Output Type: Void
This script is part of the Oracle SFP Platform ecosystem and interacts with platform-specific APIs and data structures.
You must analyze this script in the context of financial aid processing workflows, ensuring compliance with:
1. Federal financial aid regulations
2. Academic progress requirements
3. Institutional policies
4. Program-specific rules
Your analysis must detail:
1. All conditional logic and its business implications
2. All boundary checks and their validation purposes
3. All calculations and their financial aid impact
4. Error handling and data validation
5. Integration points with platform APIs
## Available Platform Methods and Integrations
The script has access to the following Oracle SFP Platform integrations.
When commenting the code, you MUST explain how these specific methods and bindings are being used:
allAwardYearIsirs
Purpose: Provides access to all ISIRs for the student, accessible per award year.
Type: IAllAwardYearIsirsAPI
Available Methods:
No methods available
allAwardYearReceivedDocuments
Purpose: Provides access to all documents received for the student.
Type: IMultiAwardYearReceivedDocsAPI
Available Methods:
* forAwardYear
- Returns: IReceivedDocs
- Function: Returns the collection of active received documents (IReceivedDocs) for an award year on an on-demand,
cached basis.'
coa
Purpose: Provides access to all Cost of Attendance information for the student.
Type: ICoaAPI
Available Methods:
* getActiveCoa
- Returns: int
- Function: Gets the active cost of attendance.'
* getActualCoa
- Returns: int
- Function: Gets the actual cost of attendance.'
* getComponents
- Returns: ICoaComponentsAPI
- Function: Gets the COA components.'
* getPellCoa
- Returns: int
- Function: Gets the PELL cost of attendance.'
* getTotalCoa
- Returns: int
- Function: Gets the total cost of attendance.'
* in
- Returns: ICoaAPI
- Function: Filters by term.'
* in
- Returns: ICoaAPI
- Function: Filters by academic year.'
* inAcademicYear
- Returns: ICoaAPI
- Function: Filters by academic year.'
* inTerm
- Returns: ICoaAPI
- Function: Filters by term.'
disbursements
Purpose: Information about all student disbursements.
Type: IDisbursementsAPI
Available Methods:
* filterSeqNos
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for sequence numbers passing a given predicate.'
* filterStatuses
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for disbursement statuses passing a given predicate.'
* getCancelled
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for disbursements that have been cancelled.'
* getDisbursed
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for disbursements
that have not been cancelled (see getCancelled(boolean), include disbursed payments
and whose individual Total Disbursement Amounts are positive.'
* getIncrementalDisbursementAmount
- Returns: BigDecimal
- Function: No description available'
* getLateDisbursement
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for disbursements with the given Late Disbursement
Indicator.'
* getPpDisbursementAmount
- Returns: BigDecimal
- Function: No description available'
* getLatestPayments
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data with only latest payments.'
* getLockingPp
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for (non-)payment period-locking disbursements'
* getPpAppliedAmount
- Returns: BigDecimal
- Function: No description available'
* getPwd
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for disbursements with the given PWD Indicator.'
* getSeqNos
- Returns: Set<Integer>
- Function: No description available'
* getStatuses
- Returns: ISet<String>
- Function: No description available'
* getTotalDisbursementAmount
- Returns: BigDecimal
- Function: No description available'
* getWithSeqNo
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for a given sequence number.'
* getWithSeqNos
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for the given sequence numbers.'
* getWithStatus
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for the given disbursement status.'
* getWithStatuses
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for given disbursement statuses.'
* hasBeenCancelled
- Returns: boolean
- Function: No description available'
* isDisbursed
- Returns: boolean
- Function: No description available'
* isLateDisbursement
- Returns: boolean
- Function: No description available'
* isLockingPp
- Returns: boolean
- Function: No description available'
* isPwd
- Returns: boolean
- Function: No description available'
* getPpMaxDisbursementAmount
- Returns: BigDecimal
- Function: No description available'
* getPpTotalDecreasedAmount
- Returns: BigDecimal
- Function: No description available'
dloan
Purpose: Information related to Direct Loans.
Type: IDloanAPI
Available Methods:
* getLifetimeLimit
- Returns: int
- Function: No description available'
* getRemainingNsldsLimit
- Returns: int
- Function: No description available'
enrollment
Purpose: Information for the enrollment this script is being evaluated for.
Type: IEnrollmentAPI
Available Methods:
* belongsTo
- Returns: boolean
- Function: Checks if this enrollment belongs to a student.'
* getBindings
- Returns: IEnrollmentBindingsAPI
- Function: Gets bindings for this enrollment.'
* getEnrollmentStatus
- Returns: String
- Function: Gets the enrollment status.'
* getProgramStartDate
- Returns: LocalDate
- Function: Gets the program start date.'
* isEffective
- Returns: boolean
- Function: Checks if this enrollment is effective.'
enrollments
Purpose: Enrollments information.
Type: IEnrollmentsAPI
Available Methods:
* getHigherPriorityThan
- Returns: List<IEnrollmentAPI>
- Function: Gets a list of enrollments with higher priority than a given enrollment.'
* getOtherThan
- Returns: List<IEnrollmentAPI>
- Function: Gets a list of the enrollments that are different from this enrollment, no
matter the priority.'
financialPlan
Purpose: Information about the student's current financial plan.
Type: IFinancialPlanAPI
Available Methods:
* filterCommonLineUniqueIds
- Returns: T
- Function: Creates a narrowed-down, independent collection of data for CommonLine Unique Ids passing a given predicate.'
* getAcyCoa
- Returns: int
- Function: Deprecated.
Consider using the coa binding (ICoaAPI).'
* getAcyUnpackagedAmount
- Returns: BigDecimal
- Function: Deprecated.
Consider using the coa binding (ICoaAPI).'
* getCarryOn
- Returns: BigDecimal
- Function: No description available'
* getCommonLineUniqueIds
- Returns: Set<ICommonLineUniqueId>
- Function: No description available'
* getEnrollmentIntensities
- Returns: ISet<BigDecimal>
- Function: No description available'
* getEnrollmentStatuses
- Returns: ISet<String>
- Function: No description available'
* getFundStatuses
- Returns: ISet<String>
- Function: No description available'
* getMaxAmount
- Returns: BigDecimal
- Function: No description available'
* getProratedLimit
- Returns: BigDecimal
- Function: No description available'
* getVersion
- Returns: int
- Function: Gets the package version.'
* getWithCommonLineUniqueId
- Returns: T
- Function: Creates a narrowed-down, independent collection of data for the given CommonLine Unique Ids.'
* getWithCommonLineUniqueIds
- Returns: T
- Function: Creates a narrowed-down, independent collection of data for the given CommonLine Unique Ids.'
* isEligible
- Returns: boolean
- Function: No description available'
* isIsirUsedForCalculation
- Returns: boolean
- Function: Identifies ISIRs used while calculating this Financial Plan.'
* isProrated
- Returns: boolean
- Function: No description available'
* isUnmatchedCommonLineLoan
- Returns: boolean
- Function: Checks if a given CommonLine Loan (probably coming from the commonLineLoan binding) has not been matched
yet in the fund collection.'
fundAcceptance
Purpose: Provides access to all Fund Acceptance information for the student.
Type: IFundAcceptanceAPI
Available Methods:
* getWithStatuses
- Returns: T
- Function: Creates a narrowed-down, independent collection of fund acceptance data for given fund acceptance statuses.'
* filterNullableStatuses
- Returns: T
- Function: Creates a narrowed-down, independent collection of fund acceptance data for fund acceptance statuses passing a given predicate.'
* filterStatuses
- Returns: T
- Function: Creates a narrowed-down, independent collection of fund acceptance data for fund acceptance statuses passing a given predicate.'
* getNullableStatuses
- Returns: ISet<String>
- Function: No description available'
* getStatuses
- Returns: ISet<String>
- Function: No description available'
* getValidatedAcceptedAmount
- Returns: BigDecimal
- Function: No description available'
* getWithStatus
- Returns: T
- Function: Creates a narrowed-down, independent collection of fund acceptance data for the given fund acceptance status.'
fundCodeConfig
Purpose: Provides information about fund code configuration.
Type: IFundCodeConfigAPI
Available Methods:
* getFundCodesByPriority
- Returns: List<String>
- Function: No description available'
* getHigherPriorityFundCodes
- Returns: List<String>
- Function: No description available'
helper
Purpose: Helper interface with utility methods.
Type: IGroovyScriptHelper
Available Methods:
* filterCourses
- Returns: ICourseFilterAPI
- Function: No description available'
* getAwardYear
- Returns: IAwardYearHelperAPI
- Function: Returns Award Year-specific helper.'
* getIntegerFromSignedIsirNumber
- Returns: Integer
- Function: Parses a number represented in ISIR format to Integer.'
* getIsirDate
- Returns: Date
- Function: No description available'
* getIsirDateFormatStr
- Returns: String
- Function: No description available'
* getSignedIsirNumberFromInteger
- Returns: String
- Function: No description available'
* isirRecordsDifferForListedFields
- Returns: boolean
- Function: No description available'
* mapRanges
- Returns: IRangeMapStarterAPI
- Function: No description available'
* newAwardYearPeriod
- Returns: IAwardYearAPI
- Function: Returns the Award Year having a given end year.'
* newPeriod
- Returns: IPeriod
- Function: Returns the IPeriod for one single day.'
* newPeriod
- Returns: IPeriod
- Function: Returns a IPeriod given its start and end dates.'
isirRecord
Purpose: The ISIR being evaluated.
Type: IIsirRecordAPI
Available Methods:
* getActiveIsirForAwardYear
- Returns: Boolean
- Function: Gets the active ISIR for award year status.'
* getAllFields
- Returns: @NonNull Map<IsirField<?>,IIsirFieldValue<?>>
- Function: Retrieves all field values (WARNING: can only be used with 2025+ ISIRs).'
* getAssumptions
- Returns: List<IAssumptionAPI>
- Function: Get the assumptions.'
* getAwardYear
- Returns: String
- Function: Gets the award year.'
* getCommentCodes
- Returns: List<ICommentCodeAPI>
- Function: Get the comment codes.'
* getCpsTransNumber
- Returns: String
- Function: Gets the CPS transaction number.'
* getCurrentSsn
- Returns: ISocialSecurityNumber
- Function: Gets the student's current SSN.'
* getDiscrepancies
- Returns: List<IDiscrepancyAPI>
- Function: Get the discrepancies.'
* getField
- Returns: <T> @NonNull IIsirFieldValue<T>
- Function: Retrieves the value of a given field (WARNING: can only be used with 2025+ ISIRs).'
* getFirstName
- Returns: String
- Function: Gets the student's first name.'
* getHighlightFlags
- Returns: List<IHighlightFlagAPI>
- Function: Get the highlight flags.'
* getIsirFieldValue
- Returns: String
- Function: Gets the value of an ISIR field (WARNING: This method can only be used up to 2024 award year).'
* getIsirFieldValueOrNull
- Returns: String
- Function: Gets the value of an ISIR field (WARNING: This method can only be used up to 2024 award year).'
* getIsirFieldValues
- Returns: Map<String,String>
- Function: Get a map containing all ISIR fields (WARNING: This method can only be used up to 2024 award year).'
* getIsirIdOriginalNameId
- Returns: String
- Function: Gets the student's original name ID.'
* getIsirIdSsn
- Returns: ISocialSecurityNumber
- Function: Gets the student's original SSN.'
* getIsirIdYearIndicator
- Returns: String
- Function: Gets the ISIR's year indicator.'
* getIsirStatus
- Returns: String
- Function: Gets the ISIR status.'
* getIsirStatusBeforeCorrection
- Returns: String
- Function: When ISIR Status is Corrected returns the previous ISIR Status.'
* getLastName
- Returns: String
- Function: Gets the student's last name.'
* getMiddleName
- Returns: String
- Function: Gets the student's middle name.'
* getReceivedDate
- Returns: Date
- Function: Gets the system receipt date of the ISIR.'
* getRejectCodes
- Returns: List<IRejectCodeAPI>
- Function: Get the reject codes.'
* getSchoolCode1
- Returns: String
- Function: Gets the school code 1.'
* getSchoolCode10
- Returns: String
- Function: Gets the school code 10.'
* getSchoolCode2
- Returns: String
- Function: Gets the school code 2.'
* getSchoolCode3
- Returns: String
- Function: Gets the school code 3.'
* getSchoolCode4
- Returns: String
- Function: Gets the school code 4.'
* getSchoolCode5
- Returns: String
- Function: Gets the school code 5.'
* getSchoolCode6
- Returns: String
- Function: Gets the school code 6.'
* getSchoolCode7
- Returns: String
- Function: Gets the school code 7.'
* getSchoolCode8
- Returns: String
- Function: Gets the school code 8.'
* getSchoolCode9
- Returns: String
- Function: Gets the school code 9.'
* isCompatibleWithPackaging
- Returns: boolean
- Function: Checks if this ISIR satisfies minimal acceptance criteria for automatic Financial
Aid Package Calculation.'
* isUnverified
- Returns: boolean
- Function: Gets the ISIR verification status.'
log
Purpose: Provides logging capability to scripts.
Type: IScriptLoggerAPI
Available Methods:
* debug
- Returns: boolean
- Function: No description available'
* debug
- Returns: void
- Function: No description available'
* error
- Returns: void
- Function: No description available'
* info
- Returns: boolean
- Function: No description available'
* info
- Returns: void
- Function: No description available'
* warn
- Returns: void
- Function: No description available'
previousFinancialPlan
Purpose: Provides access to previous financial plans.
Type: IPreviousFinancialPlanAPI
Available Methods:
* effectiveAt
- Returns: T
- Function: Gets a previous financial plan that was effective at a given time.'
* effectiveAt
- Returns: T
- Function: Gets a previous financial plan that was effective on a given local date.'
* effectiveAt
- Returns: T
- Function: Gets a previous financial plan that was effective at a given local time.'
* withVersion
- Returns: T
- Function: Gets a previous financial plan with a given version.'
previousIsirRecords
Purpose: Previous ISIR records with the same award year as the ISIR being evaluated, ordered by descending CPS numbers.
Type: List
Available Methods:
No methods available
r2t4
Purpose: Provides access to all R2T4 information for the student.
Type: IR2t4API
Available Methods:
* filterOldas
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for OLDAs passing a given predicate.'
* filterProcessStatuses
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for process statuses passing a given predicate.'
* getGrossAmountDecreased
- Returns: BigDecimal
- Function: No description available'
* getNetAmountDecreased
- Returns: BigDecimal
- Function: No description available'
* getNullableOldas
- Returns: ISet<LocalDate>
- Function: No description available'
* getNullableProcessStatuses
- Returns: ISet<String>
- Function: No description available'
* getOldas
- Returns: ISet<LocalDate>
- Function: No description available'
* getProcessStatuses
- Returns: ISet<String>
- Function: No description available'
* getWithLatest
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for the given isLatest status.'
* getWithOlda
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for the given process OLDA.'
* getWithOldas
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for given process OLDAs.'
* getWithProcessStatus
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for the given process status.'
* getWithProcessStatuses
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for given process statuses.'
* isEligibleForPWD
- Returns: boolean
- Function: No description available'
* isLatest
- Returns: boolean
- Function: Checks if at least one R2T4 process in the collection is the latest.'
receivedDocuments
Purpose: Active documents for the student for the award year of the ISIR being evaluated.
Type: IReceivedDocs
Available Methods:
* get
- Returns: IReceivedDoc
- Function: Return doc for specified code and Student, if it exists.'
* get
- Returns: IReceivedDoc
- Function: Return doc for specified code and owners, if it exists.'
* get
- Returns: IReceivedDoc
- Function: Return doc for specified code, owners, and subtype, if it exists.'
* getDocumentsForDocCode
- Returns: List<IReceivedDoc>
- Function: Return list with doc or doc subtpyes for specified code and Student, if it exists.'
* getDocumentsForDocCode
- Returns: List<IReceivedDoc>
- Function: Return list with doc or doc subtpyes for specified code and owners, if it exists.'
* getValidDocCodes
- Returns: Set<String>
- Function: No description available'
* hasDoc
- Returns: boolean
- Function: No description available'
* hasDoc
- Returns: boolean
- Function: Return true if doc exists with the right code and owners'
* noDocs
- Returns: boolean
- Function: No description available'
* put
- Returns: void
- Function: No description available'
* put
- Returns: void
- Function: No description available'
requiredDocuments
Purpose: Binding that shall be populated by the script with the required documents.
Type: IIsirRequiredDocsAPI
Available Methods:
* addAnyDocuments
- Returns: void
- Function: Adds a list of documents, any one in the list is required.'
* addAnyDocuments
- Returns: void
- Function: Adds a list of documents, any one in the list is required.'
* addDocument
- Returns: void
- Function: Adds a required document.'
* addDocument
- Returns: void
- Function: Adds a required document.'
* addDocument
- Returns: void
- Function: Adds a required document.'
* any
- Returns: IIsirRequiredDocsAPI
- Function: No description available'
* clear
- Returns: void
- Function: Clears all docs.'
* doc
- Returns: IIsirRequiredDocsAPI
- Function: No description available'
* getAdditionalDocRequestMessages
- Returns: List<String>
- Function: No description available'
* getValidDocCodes
- Returns: Set<String>
- Function: No description available'
* hasDocument
- Returns: boolean
- Function: Returns true if the document has been added, either as a regular request
or an 'any' request.'
* hasDocument
- Returns: boolean
- Function: Returns true if the document has been added, either as a regular request
or an 'any' request.'
* isEmpty
- Returns: boolean
- Function: Checks if these requirements are empty.'
* setValidDocCodes
- Returns: void
- Function: No description available'
student
Purpose: Student information.
Type: IFasStudentAPI
Available Methods:
* getAddressState
- Returns: String
- Function: Gets the federal state in the student's main mailing address, as a two-letter acronym.'
* getBahIndicator
- Returns: Boolean
- Function: Gets the school employee dependet status.'
* getCampusCode
- Returns: String
- Function: Gets the campus code.'
* getCompletionDate
- Returns: Date
- Function: Gets the completion date.'
* getDateOfBirth
- Returns: ISecureLocalDate
- Function: Gets the date of birth.'
* getDependencyStatus
- Returns: String
- Function: Gets the dependency status.'
* getDeterminationDate
- Returns: Date
- Function: Gets the determination date.'
* getDocuments
- Returns: Map<String,IReceivedDoc>
- Function: Gets the student's documents, indexed by document code.'
* getEmail
- Returns: String
- Function: Gets the e-mail.'
* getEnrollmentStatus
- Returns: String
- Function: Gets the enrollment status.'
* getExternalStudentId
- Returns: String
- Function: Gets the external student ID (unique per student).'
* getFinancialAidRequested
- Returns: Boolean
- Function: Gets the financial aid request status.'
* getFirstName
- Returns: String
- Function: Gets the first name.'
* getGender
- Returns: String
- Function: Gets the gender.'
* getHighSchoolEquivalency
- Returns: Boolean
- Function: Gets the high school equivalency status.'
* getLastName
- Returns: String
- Function: Gets the last name.'
* getMiddleName
- Returns: String
- Function: Gets the middle name.'
* getPersonId
- Returns: Long
- Function: Gets the person ID.'
* getProgramType
- Returns: String
- Function: Gets the program type.'
* getRecentFinancialAidHistoryRecords
- Returns: IRecentFahRecordsAPI
- Function: Gets the recent financial aid records.'
* getSchoolCode
- Returns: String
- Function: Gets the school code.'
* getSchoolEmployee
- Returns: Boolean
- Function: Gets the school employee status.'
* getSchoolEmployeeDependent
- Returns: Boolean
- Function: Gets the school employee dependent status.'
* getSsn
- Returns: ISocialSecurityNumber
- Function: Gets the SSN.'
* getStudentId
- Returns: Long
- Function: Gets the student ID (or enrollment ID, unique per enrollment).'
throwsDocumentIsFaUnacceptableExceptionParam
Purpose: This binding can be set within a Groovy script to control whether a subsequent call to
IReceivedDoc.isAcceptable() or IReceivedDocDocumentAPI.isAcceptable() triggers an exception or not when a
document is unnaceptable. The default value is true.
Type: Boolean
Available Methods:
No methods available
IMPORTANT REQUIREMENTS:
1. Each method usage must be explained in its full context
2. All data transformations must be detailed
3. Error handling for each method must be specified
4. Business implications of method results must be clear
## COMMENTING REQUIREMENTS
Your task is to create COMPREHENSIVE, CONTEXTUAL comments for this Oracle SFP Platform script.
FILE-LEVEL DOCUMENTATION REQUIREMENTS:
1. File Header (Using /** ... */ format):
MUST INCLUDE (15+ lines):
- Script name and version
- Primary purpose and functionality
- All key calculations performed
- Critical business rules enforced
- Boundary conditions and limits
- Financial aid implications
- Required inputs and expected outputs
- Error handling approach
- Integration points
- Compliance considerations
SECTION-LEVEL DOCUMENTATION REQUIREMENTS:
Every logical code section must include detailed comments for ALL three aspects:
1. CONDITIONALS Section:
Format:
// CONDITIONALS:
// Check [number]: [specific condition being evaluated]
// Variables: [list of variables and methods involved]
// Purpose: [detailed business reason for this check]
// Logic:
// - [step-by-step breakdown of the condition]
// - [how variables are used]
// - [any transformations applied]
// Success Path: [what happens when condition is true]
// Failure Path: [what happens when condition is false]
// Business Rules: [specific rules being enforced]
// Error Handling: [how errors are managed]
// Financial Impact: [effect on aid calculations]
// If N/A, explicitly state: "CONDITIONALS: N/A"
2. BOUNDARY CHECKS Section:
Format:
// BOUNDARY CHECKS:
// Check [number]: [specific limit being enforced]
// Source: [where boundary values come from]
// Variables: [variables and methods involved]
// Validation:
// - [how boundaries are checked]
// - [validation method details]
// Edge Cases:
// - [specific edge cases handled]
// - [how each is managed]
// Error Handling: [boundary violation management]
// Impact: [effect of boundary violations]
// If N/A, explicitly state: "BOUNDARY CHECKS: N/A"
3. ARITHMETIC Section:
Format:
// ARITHMETIC:
// Operation [number]: [name of calculation]
// Formula: [complete mathematical expression]
// Variables:
// - [each variable and its purpose]
// - [data types and units]
// Steps:
// 1. [detailed step-by-step breakdown]
// 2. [intermediate calculations]
// 3. [transformations applied]
// Business Context: [why this calculation is needed]
// Result: [meaning of the output]
// Financial Impact: [effect on aid calculations]
// Limitations: [any mathematical constraints]
// If N/A, explicitly state: "ARITHMETIC: N/A"
ADDITIONAL REQUIREMENTS:
1. Complex Logic Sections:
- Must break down multi-step operations
- Explain interactions between components
- Detail data flow and transformations
2. Error Handling:
- Document all error conditions
- Explain recovery procedures
- Detail logging and reporting
3. API Interactions:
- Document all platform method calls
- Explain data transformations
- Detail error handling
4. Financial Aid Impact:
- Explain effects on aid calculations
- Document regulatory compliance
- Detail student eligibility impact
Example Section With All Aspects:
// CONDITIONALS:
// Check 1: Payment Period Status Validation
// Variables: getLoanPaymentPeriods(), period.getStatus(), period.getStartDate()
// Purpose: Ensure only valid, active payment periods are included
// Logic:
// - Retrieve all loan payment periods
// - Filter based on status (!= "CANCELED")
// - Compare start dates with reference date
// Success Path: Period included in calculations
// Failure Path: Period excluded from totals
// Business Rules: Canceled periods must not affect grade level
// Error Handling: Invalid periods logged and skipped
// Financial Impact: Affects available loan amounts
//
// BOUNDARY CHECKS:
// Check 1: Payment Period Date Validation
// Source: Academic Calendar Configuration
// Variables: period.getStartDate(), referenceDate
// Validation:
// - Compare period start date with reference date
// - Ensure dates are not null
// Edge Cases:
// - Null dates are excluded
// - Future dates are filtered
// Error Handling: Invalid dates logged and skipped
// Impact: Prevents future periods from affecting current calculation
//
// ARITHMETIC:
// Operation 1: Payment Period Units Summation
// Formula: sum(validPeriods.map(period => period.getUnits()))
// Variables:
// - period.getUnits(): Decimal, represents credit hours
// - validPeriods: Array of filtered payment periods
// Steps:
// 1. Filter valid payment periods
// 2. Extract units from each period
// 3. Sum all units using reduce
// Business Context: Calculate total completed units for grade level
// Result: Total units affecting grade level
// Financial Impact: Determines loan eligibility amounts
// Limitations: Cannot exceed program maximum units
## Groovy Script for Analysis
```groovy
N/A - There is no baseline config. This is a placeholder.
```
## COMMENT GENERATION REQUIREMENTS:
1. Add comprehensive comments following the exact format specified
2. Every logical section must include all three aspects:
- CONDITIONALS
- BOUNDARY CHECKS
- ARITHMETIC
3. Mark any non-applicable aspect as "N/A" explicitly
4. Ensure line-by-line explanation of complex logic
5. Detail all financial aid implications
DO NOT modify the code itself. Add comments only.
REMEMBER:
- Comments must be exhaustively detailed
- Every logical section needs all three aspects
- Financial aid impact must be clear
- Business rules must be explicit
Return ONLY the fully commented Groovy script. No other text or explanations.
ISIR Discrepancy Additional Documents Required
Name: isirDiscrepancyAdditionalDocumentsRequired
Purpose: Determine whether additional documentation should be collected.
In Baseline Config: Yes
Return Type: Void
# Oracle SFP Platform Script Documentation Generator
Your task is to create comprehensive, contextual comments for this Oracle SFP Platform Groovy script.
CRITICAL REQUIREMENTS:
1. Follow exact comment format specified
2. Include all three aspects for every section
3. Mark non-applicable aspects as "N/A"
4. Provide business context and financial impact
5. Detail all API interactions and data flows
## Script Purpose and Context
The script being analyzed is: "isirDiscrepancyAdditionalDocumentsRequired"
Primary Function: Determine whether additional documentation should be collected for a student in order to ascertain whether an ISIR
correction is needed. If additional documentation is needed, this script can also trigger document requests for
the aforementioned documentation.
Expected Output Type: Void
This script is part of the Oracle SFP Platform ecosystem and interacts with platform-specific APIs and data structures.
You must analyze this script in the context of financial aid processing workflows, ensuring compliance with:
1. Federal financial aid regulations
2. Academic progress requirements
3. Institutional policies
4. Program-specific rules
Your analysis must detail:
1. All conditional logic and its business implications
2. All boundary checks and their validation purposes
3. All calculations and their financial aid impact
4. Error handling and data validation
5. Integration points with platform APIs
## Available Platform Methods and Integrations
The script has access to the following Oracle SFP Platform integrations.
When commenting the code, you MUST explain how these specific methods and bindings are being used:
documentRequest
Purpose: Binding that shall be populated by the script with the selected documents.
Type: IIsirRequiredDocsAPI
Available Methods:
* addAnyDocuments
- Returns: void
- Function: Adds a list of documents, any one in the list is required.'
* addAnyDocuments
- Returns: void
- Function: Adds a list of documents, any one in the list is required.'
* addDocument
- Returns: void
- Function: Adds a required document.'
* addDocument
- Returns: void
- Function: Adds a required document.'
* addDocument
- Returns: void
- Function: Adds a required document.'
* any
- Returns: IIsirRequiredDocsAPI
- Function: No description available'
* clear
- Returns: void
- Function: Clears all docs.'
* doc
- Returns: IIsirRequiredDocsAPI
- Function: No description available'
* getAdditionalDocRequestMessages
- Returns: List<String>
- Function: No description available'
* getValidDocCodes
- Returns: Set<String>
- Function: No description available'
* hasDocument
- Returns: boolean
- Function: Returns true if the document has been added, either as a regular request
or an 'any' request.'
* hasDocument
- Returns: boolean
- Function: Returns true if the document has been added, either as a regular request
or an 'any' request.'
* isEmpty
- Returns: boolean
- Function: Checks if these requirements are empty.'
* setValidDocCodes
- Returns: void
- Function: No description available'
enrollment
Purpose: Information for the enrollment this script is being evaluated for.
Type: IEnrollmentAPI
Available Methods:
* belongsTo
- Returns: boolean
- Function: Checks if this enrollment belongs to a student.'
* getBindings
- Returns: IEnrollmentBindingsAPI
- Function: Gets bindings for this enrollment.'
* getEnrollmentStatus
- Returns: String
- Function: Gets the enrollment status.'
* getProgramStartDate
- Returns: LocalDate
- Function: Gets the program start date.'
* isEffective
- Returns: boolean
- Function: Checks if this enrollment is effective.'
enrollments
Purpose: Enrollments information.
Type: IEnrollmentsAPI
Available Methods:
* getHigherPriorityThan
- Returns: List<IEnrollmentAPI>
- Function: Gets a list of enrollments with higher priority than a given enrollment.'
* getOtherThan
- Returns: List<IEnrollmentAPI>
- Function: Gets a list of the enrollments that are different from this enrollment, no
matter the priority.'
financialPlan
Purpose: Information about the student's current financial plan.
Type: IFinancialPlanAPI
Available Methods:
* filterCommonLineUniqueIds
- Returns: T
- Function: Creates a narrowed-down, independent collection of data for CommonLine Unique Ids passing a given predicate.'
* getAcyCoa
- Returns: int
- Function: Deprecated.
Consider using the coa binding (ICoaAPI).'
* getAcyUnpackagedAmount
- Returns: BigDecimal
- Function: Deprecated.
Consider using the coa binding (ICoaAPI).'
* getCarryOn
- Returns: BigDecimal
- Function: No description available'
* getCommonLineUniqueIds
- Returns: Set<ICommonLineUniqueId>
- Function: No description available'
* getEnrollmentIntensities
- Returns: ISet<BigDecimal>
- Function: No description available'
* getEnrollmentStatuses
- Returns: ISet<String>
- Function: No description available'
* getFundStatuses
- Returns: ISet<String>
- Function: No description available'
* getMaxAmount
- Returns: BigDecimal
- Function: No description available'
* getProratedLimit
- Returns: BigDecimal
- Function: No description available'
* getVersion
- Returns: int
- Function: Gets the package version.'
* getWithCommonLineUniqueId
- Returns: T
- Function: Creates a narrowed-down, independent collection of data for the given CommonLine Unique Ids.'
* getWithCommonLineUniqueIds
- Returns: T
- Function: Creates a narrowed-down, independent collection of data for the given CommonLine Unique Ids.'
* isEligible
- Returns: boolean
- Function: No description available'
* isIsirUsedForCalculation
- Returns: boolean
- Function: Identifies ISIRs used while calculating this Financial Plan.'
* isProrated
- Returns: boolean
- Function: No description available'
* isUnmatchedCommonLineLoan
- Returns: boolean
- Function: Checks if a given CommonLine Loan (probably coming from the commonLineLoan binding) has not been matched
yet in the fund collection.'
fundAcceptance
Purpose: Provides access to all Fund Acceptance information for the student.
Type: IFundAcceptanceAPI
Available Methods:
* getWithStatuses
- Returns: T
- Function: Creates a narrowed-down, independent collection of fund acceptance data for given fund acceptance statuses.'
* filterNullableStatuses
- Returns: T
- Function: Creates a narrowed-down, independent collection of fund acceptance data for fund acceptance statuses passing a given predicate.'
* filterStatuses
- Returns: T
- Function: Creates a narrowed-down, independent collection of fund acceptance data for fund acceptance statuses passing a given predicate.'
* getNullableStatuses
- Returns: ISet<String>
- Function: No description available'
* getStatuses
- Returns: ISet<String>
- Function: No description available'
* getValidatedAcceptedAmount
- Returns: BigDecimal
- Function: No description available'
* getWithStatus
- Returns: T
- Function: Creates a narrowed-down, independent collection of fund acceptance data for the given fund acceptance status.'
fundCodeConfig
Purpose: Provides information about fund code configuration.
Type: IFundCodeConfigAPI
Available Methods:
* getFundCodesByPriority
- Returns: List<String>
- Function: No description available'
* getHigherPriorityFundCodes
- Returns: List<String>
- Function: No description available'
helper
Purpose: Helper interface with utility methods.
Type: IGroovyScriptHelper
Available Methods:
* filterCourses
- Returns: ICourseFilterAPI
- Function: No description available'
* getAwardYear
- Returns: IAwardYearHelperAPI
- Function: Returns Award Year-specific helper.'
* getIntegerFromSignedIsirNumber
- Returns: Integer
- Function: Parses a number represented in ISIR format to Integer.'
* getIsirDate
- Returns: Date
- Function: No description available'
* getIsirDateFormatStr
- Returns: String
- Function: No description available'
* getSignedIsirNumberFromInteger
- Returns: String
- Function: No description available'
* isirRecordsDifferForListedFields
- Returns: boolean
- Function: No description available'
* mapRanges
- Returns: IRangeMapStarterAPI
- Function: No description available'
* newAwardYearPeriod
- Returns: IAwardYearAPI
- Function: Returns the Award Year having a given end year.'
* newPeriod
- Returns: IPeriod
- Function: Returns the IPeriod for one single day.'
* newPeriod
- Returns: IPeriod
- Function: Returns a IPeriod given its start and end dates.'
isirRecord
Purpose: The ISIR being evaluated.
Type: IIsirRecordAPI
Available Methods:
* getActiveIsirForAwardYear
- Returns: Boolean
- Function: Gets the active ISIR for award year status.'
* getAllFields
- Returns: @NonNull Map<IsirField<?>,IIsirFieldValue<?>>
- Function: Retrieves all field values (WARNING: can only be used with 2025+ ISIRs).'
* getAssumptions
- Returns: List<IAssumptionAPI>
- Function: Get the assumptions.'
* getAwardYear
- Returns: String
- Function: Gets the award year.'
* getCommentCodes
- Returns: List<ICommentCodeAPI>
- Function: Get the comment codes.'
* getCpsTransNumber
- Returns: String
- Function: Gets the CPS transaction number.'
* getCurrentSsn
- Returns: ISocialSecurityNumber
- Function: Gets the student's current SSN.'
* getDiscrepancies
- Returns: List<IDiscrepancyAPI>
- Function: Get the discrepancies.'
* getField
- Returns: <T> @NonNull IIsirFieldValue<T>
- Function: Retrieves the value of a given field (WARNING: can only be used with 2025+ ISIRs).'
* getFirstName
- Returns: String
- Function: Gets the student's first name.'
* getHighlightFlags
- Returns: List<IHighlightFlagAPI>
- Function: Get the highlight flags.'
* getIsirFieldValue
- Returns: String
- Function: Gets the value of an ISIR field (WARNING: This method can only be used up to 2024 award year).'
* getIsirFieldValueOrNull
- Returns: String
- Function: Gets the value of an ISIR field (WARNING: This method can only be used up to 2024 award year).'
* getIsirFieldValues
- Returns: Map<String,String>
- Function: Get a map containing all ISIR fields (WARNING: This method can only be used up to 2024 award year).'
* getIsirIdOriginalNameId
- Returns: String
- Function: Gets the student's original name ID.'
* getIsirIdSsn
- Returns: ISocialSecurityNumber
- Function: Gets the student's original SSN.'
* getIsirIdYearIndicator
- Returns: String
- Function: Gets the ISIR's year indicator.'
* getIsirStatus
- Returns: String
- Function: Gets the ISIR status.'
* getIsirStatusBeforeCorrection
- Returns: String
- Function: When ISIR Status is Corrected returns the previous ISIR Status.'
* getLastName
- Returns: String
- Function: Gets the student's last name.'
* getMiddleName
- Returns: String
- Function: Gets the student's middle name.'
* getReceivedDate
- Returns: Date
- Function: Gets the system receipt date of the ISIR.'
* getRejectCodes
- Returns: List<IRejectCodeAPI>
- Function: Get the reject codes.'
* getSchoolCode1
- Returns: String
- Function: Gets the school code 1.'
* getSchoolCode10
- Returns: String
- Function: Gets the school code 10.'
* getSchoolCode2
- Returns: String
- Function: Gets the school code 2.'
* getSchoolCode3
- Returns: String
- Function: Gets the school code 3.'
* getSchoolCode4
- Returns: String
- Function: Gets the school code 4.'
* getSchoolCode5
- Returns: String
- Function: Gets the school code 5.'
* getSchoolCode6
- Returns: String
- Function: Gets the school code 6.'
* getSchoolCode7
- Returns: String
- Function: Gets the school code 7.'
* getSchoolCode8
- Returns: String
- Function: Gets the school code 8.'
* getSchoolCode9
- Returns: String
- Function: Gets the school code 9.'
* isCompatibleWithPackaging
- Returns: boolean
- Function: Checks if this ISIR satisfies minimal acceptance criteria for automatic Financial
Aid Package Calculation.'
* isUnverified
- Returns: boolean
- Function: Gets the ISIR verification status.'
log
Purpose: Provides logging capability to scripts.
Type: IScriptLoggerAPI
Available Methods:
* debug
- Returns: boolean
- Function: No description available'
* debug
- Returns: void
- Function: No description available'
* error
- Returns: void
- Function: No description available'
* info
- Returns: boolean
- Function: No description available'
* info
- Returns: void
- Function: No description available'
* warn
- Returns: void
- Function: No description available'
previousFinancialPlan
Purpose: Provides access to previous financial plans.
Type: IPreviousFinancialPlanAPI
Available Methods:
* effectiveAt
- Returns: T
- Function: Gets a previous financial plan that was effective at a given time.'
* effectiveAt
- Returns: T
- Function: Gets a previous financial plan that was effective on a given local date.'
* effectiveAt
- Returns: T
- Function: Gets a previous financial plan that was effective at a given local time.'
* withVersion
- Returns: T
- Function: Gets a previous financial plan with a given version.'
previousIsirRecords
Purpose: Previous ISIR records with the same award year as the ISIR being evaluated, ordered by descending CPS numbers.
Type: List
Available Methods:
No methods available
r2t4
Purpose: Provides access to all R2T4 information for the student.
Type: IR2t4API
Available Methods:
* filterOldas
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for OLDAs passing a given predicate.'
* filterProcessStatuses
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for process statuses passing a given predicate.'
* getGrossAmountDecreased
- Returns: BigDecimal
- Function: No description available'
* getNetAmountDecreased
- Returns: BigDecimal
- Function: No description available'
* getNullableOldas
- Returns: ISet<LocalDate>
- Function: No description available'
* getNullableProcessStatuses
- Returns: ISet<String>
- Function: No description available'
* getOldas
- Returns: ISet<LocalDate>
- Function: No description available'
* getProcessStatuses
- Returns: ISet<String>
- Function: No description available'
* getWithLatest
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for the given isLatest status.'
* getWithOlda
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for the given process OLDA.'
* getWithOldas
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for given process OLDAs.'
* getWithProcessStatus
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for the given process status.'
* getWithProcessStatuses
- Returns: IR2t4API
- Function: Creates a narrowed-down, independent collection of R2T4 data for given process statuses.'
* isEligibleForPWD
- Returns: boolean
- Function: No description available'
* isLatest
- Returns: boolean
- Function: Checks if at least one R2T4 process in the collection is the latest.'
receivedDocuments
Purpose: Active documents for the student for the award year of the ISIR being evaluated.
Type: IReceivedDocs
Available Methods:
* get
- Returns: IReceivedDoc
- Function: Return doc for specified code and Student, if it exists.'
* get
- Returns: IReceivedDoc
- Function: Return doc for specified code and owners, if it exists.'
* get
- Returns: IReceivedDoc
- Function: Return doc for specified code, owners, and subtype, if it exists.'
* getDocumentsForDocCode
- Returns: List<IReceivedDoc>
- Function: Return list with doc or doc subtpyes for specified code and Student, if it exists.'
* getDocumentsForDocCode
- Returns: List<IReceivedDoc>
- Function: Return list with doc or doc subtpyes for specified code and owners, if it exists.'
* getValidDocCodes
- Returns: Set<String>
- Function: No description available'
* hasDoc
- Returns: boolean
- Function: No description available'
* hasDoc
- Returns: boolean
- Function: Return true if doc exists with the right code and owners'
* noDocs
- Returns: boolean
- Function: No description available'
* put
- Returns: void
- Function: No description available'
* put
- Returns: void
- Function: No description available'
student
Purpose: Student information.
Type: IFasStudentAPI
Available Methods:
* getAddressState
- Returns: String
- Function: Gets the federal state in the student's main mailing address, as a two-letter acronym.'
* getBahIndicator
- Returns: Boolean
- Function: Gets the school employee dependet status.'
* getCampusCode
- Returns: String
- Function: Gets the campus code.'
* getCompletionDate
- Returns: Date
- Function: Gets the completion date.'
* getDateOfBirth
- Returns: ISecureLocalDate
- Function: Gets the date of birth.'
* getDependencyStatus
- Returns: String
- Function: Gets the dependency status.'
* getDeterminationDate
- Returns: Date
- Function: Gets the determination date.'
* getDocuments
- Returns: Map<String,IReceivedDoc>
- Function: Gets the student's documents, indexed by document code.'
* getEmail
- Returns: String
- Function: Gets the e-mail.'
* getEnrollmentStatus
- Returns: String
- Function: Gets the enrollment status.'
* getExternalStudentId
- Returns: String
- Function: Gets the external student ID (unique per student).'
* getFinancialAidRequested
- Returns: Boolean
- Function: Gets the financial aid request status.'
* getFirstName
- Returns: String
- Function: Gets the first name.'
* getGender
- Returns: String
- Function: Gets the gender.'
* getHighSchoolEquivalency
- Returns: Boolean
- Function: Gets the high school equivalency status.'
* getLastName
- Returns: String
- Function: Gets the last name.'
* getMiddleName
- Returns: String
- Function: Gets the middle name.'
* getPersonId
- Returns: Long
- Function: Gets the person ID.'
* getProgramType
- Returns: String
- Function: Gets the program type.'
* getRecentFinancialAidHistoryRecords
- Returns: IRecentFahRecordsAPI
- Function: Gets the recent financial aid records.'
* getSchoolCode
- Returns: String
- Function: Gets the school code.'
* getSchoolEmployee
- Returns: Boolean
- Function: Gets the school employee status.'
* getSchoolEmployeeDependent
- Returns: Boolean
- Function: Gets the school employee dependent status.'
* getSsn
- Returns: ISocialSecurityNumber
- Function: Gets the SSN.'
* getStudentId
- Returns: Long
- Function: Gets the student ID (or enrollment ID, unique per enrollment).'
throwsDocumentIsFaUnacceptableExceptionParam
Purpose: This binding can be set within a Groovy script to control whether a subsequent call to
IReceivedDoc.isAcceptable() or IReceivedDocDocumentAPI.isAcceptable() triggers an exception or not when a
document is unnaceptable. The default value is true.
Type: Boolean
Available Methods:
No methods available
allAwardYearIsirs
Purpose: Provides access to all ISIRs for the student, accessible per award year.
Type: IAllAwardYearIsirsAPI
Available Methods:
No methods available
allAwardYearReceivedDocuments
Purpose: Provides access to all documents received for the student.
Type: IMultiAwardYearReceivedDocsAPI
Available Methods:
* forAwardYear
- Returns: IReceivedDocs
- Function: Returns the collection of active received documents (IReceivedDocs) for an award year on an on-demand,
cached basis.'
coa
Purpose: Provides access to all Cost of Attendance information for the student.
Type: ICoaAPI
Available Methods:
* getActiveCoa
- Returns: int
- Function: Gets the active cost of attendance.'
* getActualCoa
- Returns: int
- Function: Gets the actual cost of attendance.'
* getComponents
- Returns: ICoaComponentsAPI
- Function: Gets the COA components.'
* getPellCoa
- Returns: int
- Function: Gets the PELL cost of attendance.'
* getTotalCoa
- Returns: int
- Function: Gets the total cost of attendance.'
* in
- Returns: ICoaAPI
- Function: Filters by term.'
* in
- Returns: ICoaAPI
- Function: Filters by academic year.'
* inAcademicYear
- Returns: ICoaAPI
- Function: Filters by academic year.'
* inTerm
- Returns: ICoaAPI
- Function: Filters by term.'
disbursements
Purpose: Information about all student disbursements.
Type: IDisbursementsAPI
Available Methods:
* filterSeqNos
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for sequence numbers passing a given predicate.'
* filterStatuses
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for disbursement statuses passing a given predicate.'
* getCancelled
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for disbursements that have been cancelled.'
* getDisbursed
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for disbursements
that have not been cancelled (see getCancelled(boolean), include disbursed payments
and whose individual Total Disbursement Amounts are positive.'
* getIncrementalDisbursementAmount
- Returns: BigDecimal
- Function: No description available'
* getLateDisbursement
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for disbursements with the given Late Disbursement
Indicator.'
* getPpDisbursementAmount
- Returns: BigDecimal
- Function: No description available'
* getLatestPayments
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data with only latest payments.'
* getLockingPp
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for (non-)payment period-locking disbursements'
* getPpAppliedAmount
- Returns: BigDecimal
- Function: No description available'
* getPwd
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for disbursements with the given PWD Indicator.'
* getSeqNos
- Returns: Set<Integer>
- Function: No description available'
* getStatuses
- Returns: ISet<String>
- Function: No description available'
* getTotalDisbursementAmount
- Returns: BigDecimal
- Function: No description available'
* getWithSeqNo
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for a given sequence number.'
* getWithSeqNos
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for the given sequence numbers.'
* getWithStatus
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for the given disbursement status.'
* getWithStatuses
- Returns: T
- Function: Creates a narrowed-down, independent collection of disbursement data for given disbursement statuses.'
* hasBeenCancelled
- Returns: boolean
- Function: No description available'
* isDisbursed
- Returns: boolean
- Function: No description available'
* isLateDisbursement
- Returns: boolean
- Function: No description available'
* isLockingPp
- Returns: boolean
- Function: No description available'
* isPwd
- Returns: boolean
- Function: No description available'
* getPpMaxDisbursementAmount
- Returns: BigDecimal
- Function: No description available'
* getPpTotalDecreasedAmount
- Returns: BigDecimal
- Function: No description available'
dloan
Purpose: Information related to Direct Loans.
Type: IDloanAPI
Available Methods:
* getLifetimeLimit
- Returns: int
- Function: No description available'
* getRemainingNsldsLimit
- Returns: int
- Function: No description available'
IMPORTANT REQUIREMENTS:
1. Each method usage must be explained in its full context
2. All data transformations must be detailed
3. Error handling for each method must be specified
4. Business implications of method results must be clear
## COMMENTING REQUIREMENTS
Your task is to create COMPREHENSIVE, CONTEXTUAL comments for this Oracle SFP Platform script.
FILE-LEVEL DOCUMENTATION REQUIREMENTS:
1. File Header (Using /** ... */ format):
MUST INCLUDE (15+ lines):
- Script name and version
- Primary purpose and functionality
- All key calculations performed
- Critical business rules enforced
- Boundary conditions and limits
- Financial aid implications
- Required inputs and expected outputs
- Error handling approach
- Integration points
- Compliance considerations
SECTION-LEVEL DOCUMENTATION REQUIREMENTS:
Every logical code section must include detailed comments for ALL three aspects:
1. CONDITIONALS Section:
Format:
// CONDITIONALS:
// Check [number]: [specific condition being evaluated]
// Variables: [list of variables and methods involved]
// Purpose: [detailed business reason for this check]
// Logic:
// - [step-by-step breakdown of the condition]
// - [how variables are used]
// - [any transformations applied]
// Success Path: [what happens when condition is true]
// Failure Path: [what happens when condition is false]
// Business Rules: [specific rules being enforced]
// Error Handling: [how errors are managed]
// Financial Impact: [effect on aid calculations]
// If N/A, explicitly state: "CONDITIONALS: N/A"
2. BOUNDARY CHECKS Section:
Format:
// BOUNDARY CHECKS:
// Check [number]: [specific limit being enforced]
// Source: [where boundary values come from]
// Variables: [variables and methods involved]
// Validation:
// - [how boundaries are checked]
// - [validation method details]
// Edge Cases:
// - [specific edge cases handled]
// - [how each is managed]
// Error Handling: [boundary violation management]
// Impact: [effect of boundary violations]
// If N/A, explicitly state: "BOUNDARY CHECKS: N/A"
3. ARITHMETIC Section:
Format:
// ARITHMETIC:
// Operation [number]: [name of calculation]
// Formula: [complete mathematical expression]
// Variables:
// - [each variable and its purpose]
// - [data types and units]
// Steps:
// 1. [detailed step-by-step breakdown]
// 2. [intermediate calculations]
// 3. [transformations applied]
// Business Context: [why this calculation is needed]
// Result: [meaning of the output]
// Financial Impact: [effect on aid calculations]
// Limitations: [any mathematical constraints]
// If N/A, explicitly state: "ARITHMETIC: N/A"
ADDITIONAL REQUIREMENTS:
1. Complex Logic Sections:
- Must break down multi-step operations
- Explain interactions between components
- Detail data flow and transformations
2. Error Handling:
- Document all error conditions
- Explain recovery procedures
- Detail logging and reporting
3. API Interactions:
- Document all platform method calls
- Explain data transformations
- Detail error handling
4. Financial Aid Impact:
- Explain effects on aid calculations
- Document regulatory compliance
- Detail student eligibility impact
Example Section With All Aspects:
// CONDITIONALS:
// Check 1: Payment Period Status Validation
// Variables: getLoanPaymentPeriods(), period.getStatus(), period.getStartDate()
// Purpose: Ensure only valid, active payment periods are included
// Logic:
// - Retrieve all loan payment periods
// - Filter based on status (!= "CANCELED")
// - Compare start dates with reference date
// Success Path: Period included in calculations
// Failure Path: Period excluded from totals
// Business Rules: Canceled periods must not affect grade level
// Error Handling: Invalid periods logged and skipped
// Financial Impact: Affects available loan amounts
//
// BOUNDARY CHECKS:
// Check 1: Payment Period Date Validation
// Source: Academic Calendar Configuration
// Variables: period.getStartDate(), referenceDate
// Validation:
// - Compare period start date with reference date
// - Ensure dates are not null
// Edge Cases:
// - Null dates are excluded
// - Future dates are filtered
// Error Handling: Invalid dates logged and skipped
// Impact: Prevents future periods from affecting current calculation
//
// ARITHMETIC:
// Operation 1: Payment Period Units Summation
// Formula: sum(validPeriods.map(period => period.getUnits()))
// Variables:
// - period.getUnits(): Decimal, represents credit hours
// - validPeriods: Array of filtered payment periods
// Steps:
// 1. Filter valid payment periods
// 2. Extract units from each period
// 3. Sum all units using reduce
// Business Context: Calculate total completed units for grade level
// Result: Total units affecting grade level
// Financial Impact: Determines loan eligibility amounts
// Limitations: Cannot exceed program maximum units
## Groovy Script for Analysis
```groovy
//file:noinspection UnnecessaryQualifiedReference
@groovy.transform.BaseScript(com.oracle.sfp.scripting.api.sdk.autocomplete.IsirDiscrepancyAdditionalDocumentsRequiredScript)
package CHANGE_ME // this should be updated to your actual package name
import com.oracle.sfp.scripting.api.*
import com.oracle.sfp.scripting.api.util.*
//Variable definitions
def isirSTUDENT_PARENTKILLEDINTHELINEOFDUTY = isirRecord.getField(IsirField.STUDENT_PARENTKILLEDINTHELINEOFDUTY).getOrNull()
def isirFPS_IASGINDICATOR = isirRecord.getField(IsirField.FPS_IASGINDICATOR).getOrNull()
def isirFPS_CHILDRENOFFALLENHEROESINDICATOR = isirRecord.getField(IsirField.FPS_CHILDRENOFFALLENHEROESINDICATOR).getOrNull()
//If the student has identified parent was killed in line of duty, and the IASG indicator/children of fallen heroes indicator are not in an eligible state
if (isirSTUDENT_PARENTKILLEDINTHELINEOFDUTY == "1" && !["1", "2"].contains(isirFPS_IASGINDICATOR) && !["1", "2"].contains(isirFPS_CHILDRENOFFALLENHEROESINDICATOR))
{
//If document exists and is acceptable, then don't request it again
if (receivedDocuments.hasDoc("IASG-CHF-SelfDeclaration") && receivedDocuments.get("IASG-CHF-SelfDeclaration","Student").isAcceptable())
{
return
}
//If document does not exist or is not acceptable, then request the document
else
{
documentRequest.addDocument("IASG-CHF-SelfDeclaration")
}
}
```
## COMMENT GENERATION REQUIREMENTS:
1. Add comprehensive comments following the exact format specified
2. Every logical section must include all three aspects:
- CONDITIONALS
- BOUNDARY CHECKS
- ARITHMETIC
3. Mark any non-applicable aspect as "N/A" explicitly
4. Ensure line-by-line explanation of complex logic
5. Detail all financial aid implications
DO NOT modify the code itself. Add comments only.
REMEMBER:
- Comments must be exhaustively detailed
- Every logical section needs all three aspects
- Financial aid impact must be clear
- Business rules must be explicit
Return ONLY the fully commented Groovy script. No other text or explanations.