Miscellaneous Scripts
These are the prompts for utility scripts that handle various platform functions.
Letter Code Criteria
Name: letterCodeCriteria
Purpose: Determines the letter code for given parameters.
In Baseline Config: Yes
Return Type: String
# 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: "letterCodeCriteria"
Primary Function: Determines the letter code for a given set of parameters.
Expected Output Type: String
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.'
letterCode
Purpose: Binding that encapsulates parameters used to determine letters codes.
Type: ILetterCodeAPI
Available Methods:
* findLastPublished
- Returns: ILetterAPI
- Function: Finds the most recent letter published for the current set
of identifying parameters and respective letter code.'
* getParams
- Returns: @NonNull Map<String,String>
- Function: Gets the letter parameters.'
* querySql
- Returns: String
- Function: Executes a SQL Query against the FASRPT schema and returns a string.'
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'
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.LetterCodeCriteriaScript)
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.*
return letterCode.querySql('''
SELECT CASE WHEN :notificationType IN ('TITLE_IV_LOANS_EXIT_COUNSELING_FOR_GRADUATING_STUDENT', 'TEACH_EXIT_COUNSELING_FOR_GRADUATING_STUDENT',
'TITLE_IV_LOANS_EXIT_COUNSELING_FOR_WITHDRAWN_STUDENT', 'TEACH_EXIT_COUNSELING_FOR_WITHDRAWN_STUDENT', 'TITLE_IV_LOANS_EXIT_COUNSELING_FOLLOW_UP_FOR_GRADUATING_STUDENT',
'TEACH_EXIT_COUNSELING_FOLLOW_UP_FOR_GRADUATING_STUDENT', 'TITLE_IV_LOANS_EXIT_COUNSELING_FOLLOW_UP_FOR_WITHDRAWN_STUDENT', 'TEACH_EXIT_COUNSELING_FOLLOW_UP_FOR_WITHDRAWN_STUDENT'
)
THEN '200'
END AS letter_code
FROM DUAL
''')
```
## 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.
Notification Required Criteria
Name: notificationRequiredCriteria
Purpose: Determines if a student notification must be triggered.
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: "notificationRequiredCriteria"
Primary Function: Determines if a student notification must be triggered when an ISIR is matched to a student or when the student
package is updated.
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:
acys
Purpose: Provides access to all non-canceled academic years.
Type: IAcademicYearsScheduleAPI
Available Methods:
* getLoanPaymentPeriods
- Returns: ISimpleNumberedPeriods<ISimpleScheduledPeriodAPI>
- Function: No description available'
* getTerms
- Returns: IAcademicTermPeriodsAPI
- Function: No description available'
* getGrantPaymentPeriods
- Returns: ISimpleNumberedPeriods<ISimpleScheduledPeriodAPI>
- Function: No description available'
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.'
isirRecord
Purpose: Matched ISIR that triggered the script evaluation when the event trigger is "ISIR_MATCHED", or the active ISIR
with the highest award year in the updated package when the event trigger is "PACKAGE_UPDATED".
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.'
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.NotificationRequiredCriteriaScript)
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.*
return primaryProgram.getEnrollmentStatus() != null && financialPlan.getFunds(["GPLUS"]);
```
## 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.
COA Cost Value
Name: coaCostValue
Purpose: Calculates the value of a COA item.
In Baseline Config: Yes
Return Type: BigDecimal
# 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: "coaCostValue"
Primary Function: Calculates the value of a COA item.
Expected Output Type: BigDecimal
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:
scope
Purpose: Gathers all the scope details of the script being evaluated (acyNo, fundCode,
fundType, awy, lpNo, ppNo) allowing quick access to financialPlan/disbursements/etc
subsets directly pertaining to this scope.
Type: IFundScopeAPI
Available Methods:
* getAcyNo
- Returns: int
- Function: No description available'
* getAwy
- Returns: int
- Function: No description available'
* getFundCode
- Returns: String
- Function: No description available'
* getFundType
- Returns: String
- Function: No description available'
* getLpNo
- Returns: int
- Function: No description available'
* getPpNo
- Returns: int
- 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).'
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'
term
Purpose: A period matching the term being evaluated.
Type: IPeriod
Available Methods:
No methods available
termNo
Purpose: The number of the term of the funding element being evaluated.
Type: Integer
Available Methods:
No methods available
acy
Purpose: The academic year of the funding element being evaluated.
Type: IAcademicYearScheduleAPI
Available Methods:
* getCompletedUnits
- Returns: BigDecimal
- Function: No description available'
* getEnrollmentStatus
- Returns: String
- Function: No description available'
* getGradeLevel
- Returns: int
- Function: No description available'
* getGrantPaymentPeriods
- Returns: ISimpleNumberedPeriods<ISimpleScheduledPeriodAPI>
- Function: No description available'
* getLoanPaymentPeriods
- Returns: ISimpleNumberedPeriods<ISimpleScheduledPeriodAPI>
- Function: No description available'
* getMonths
- Returns: BigDecimal
- Function: No description available'
* getMonthsFromPeriodDates
- Returns: int
- Function: No description available'
* getPeriodOfEnrollmentEndDate
- Returns: LocalDate
- Function: No description available'
* getPeriodOfEnrollmentStartDate
- Returns: LocalDate
- Function: No description available'
* getTerms
- Returns: IAcademicTermPeriodsAPI
- Function: No description available'
* getUnits
- Returns: BigDecimal
- Function: No description available'
acyNo
Purpose: The number of the academic year of the funding element being evaluated.
Type: Integer
Available Methods:
No methods available
acyOrder
Purpose: The order number of the academic year of the funding element being evaluated, among all non-canceled academic
years.
Type: Integer
Available Methods:
No methods available
acys
Purpose: Provides access to all non-canceled academic years.
Type: IAcademicYearsScheduleAPI
Available Methods:
* getLoanPaymentPeriods
- Returns: ISimpleNumberedPeriods<ISimpleScheduledPeriodAPI>
- Function: No description available'
* getTerms
- Returns: IAcademicTermPeriodsAPI
- Function: No description available'
* getGrantPaymentPeriods
- Returns: ISimpleNumberedPeriods<ISimpleScheduledPeriodAPI>
- Function: No description available'
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().'
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'
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.'
fundCode
Purpose: The fund code of the funding element being evaluated.
Type: String
Available Methods:
No methods available
fundType
Purpose: The fund type of the funding element being evaluated.
Type: String
Available Methods:
No methods 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.'
isFirstAcy
Purpose: True if the academic year of the funding element being evaluated is the first one among all non-canceled academic
years.
Type: Boolean
Available Methods:
No methods available
isLastAcy
Purpose: True if the academic year of the funding element being evaluated is the last one among all non-canceled academic
years.
Type: Boolean
Available Methods:
No methods available
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'
lp
Purpose: The loan period of the funding element being evaluated.
Type: ISimpleScheduledPeriodAPI
Available Methods:
* getUnits
- Returns: BigDecimal
- Function: No description available'
lpNo
Purpose: The number of the loan period of the funding element being evaluated.
Type: Integer
Available Methods:
No methods available
pp
Purpose: The payment period of the funding element being evaluated.
Type: ISimpleScheduledPeriodAPI
Available Methods:
* getUnits
- Returns: BigDecimal
- Function: No description available'
ppNo
Purpose: The number of the payment period of the funding element being evaluated.
Type: Integer
Available Methods:
No methods 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.'
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.CoaCostValueScript)
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.*
import org.joda.time.LocalDate
def referencePeriod = program.isTerm() ? term : acy
// Institutions should define their own add drop policy
LocalDate addDropPolicy = referencePeriod.getStartDate().plusDays(10);
def countedUnits = 0.0;
String programType = primaryProgram.getProgramType();
// If the Program Enrollment Status is not X, then count credits
if (primaryProgram.getEnrollmentStatus() != null && primaryProgram.getEnrollmentStatus() != "X")
{
for (def course : program.getCourses().getAssociatedTo(referencePeriod))
{
log.debug("COA SCRIPT Tuition, COURSE IN LOOP: countedUnits = {}, courseEndDate = {}, courseAraIndicator = {}, courseSchedulingStatus = {}, courseUnitsToAdd = {}", countedUnits, course.getEndDate(), course.getFirstAraIndicator(), course.getSchedulingStatus(), course.getUnits());
// If the course is withdrawn, only count the credits if the course was withdrawn after the add/drop period. If the course is not withdrawn, count the course credits.
if ((["WITHDRAWN"].contains(course.getSchedulingStatus()) && course.getLastDateOfAttendance() != null && course.getLastDateOfAttendance() > addDropPolicy) || course.getSchedulingStatus() != "WITHDRAWN")
{
countedUnits = countedUnits + course.getUnits();
}
}
}
log.debug("COA SCRIPT Tuition - final value of countedUnits = {}", countedUnits);
// Use different cost values for different program types
if (programType == "ASSOCIATE" || programType == "BACHELORS")
{
return (countedUnits * 175);
}
else
{
return (countedUnits * 225);
}
```
## 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.
Additional COA Components
Name: additionalCoaComponents
Purpose: Evaluates if a COA configuration is applicable.
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: "additionalCoaComponents"
Primary Function: Evaluates if a COA configuration is applicable to 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:
acy
Purpose: The academic year of the funding element being evaluated.
Type: IAcademicYearScheduleAPI
Available Methods:
* getCompletedUnits
- Returns: BigDecimal
- Function: No description available'
* getEnrollmentStatus
- Returns: String
- Function: No description available'
* getGradeLevel
- Returns: int
- Function: No description available'
* getGrantPaymentPeriods
- Returns: ISimpleNumberedPeriods<ISimpleScheduledPeriodAPI>
- Function: No description available'
* getLoanPaymentPeriods
- Returns: ISimpleNumberedPeriods<ISimpleScheduledPeriodAPI>
- Function: No description available'
* getMonths
- Returns: BigDecimal
- Function: No description available'
* getMonthsFromPeriodDates
- Returns: int
- Function: No description available'
* getPeriodOfEnrollmentEndDate
- Returns: LocalDate
- Function: No description available'
* getPeriodOfEnrollmentStartDate
- Returns: LocalDate
- Function: No description available'
* getTerms
- Returns: IAcademicTermPeriodsAPI
- Function: No description available'
* getUnits
- Returns: BigDecimal
- Function: No description available'
acyNo
Purpose: The number of the academic year of the funding element being evaluated.
Type: Integer
Available Methods:
No methods available
acyOrder
Purpose: The order number of the academic year of the funding element being evaluated, among all non-canceled academic
years.
Type: Integer
Available Methods:
No methods available
acys
Purpose: Provides access to all non-canceled academic years.
Type: IAcademicYearsScheduleAPI
Available Methods:
* getLoanPaymentPeriods
- Returns: ISimpleNumberedPeriods<ISimpleScheduledPeriodAPI>
- Function: No description available'
* getTerms
- Returns: IAcademicTermPeriodsAPI
- Function: No description available'
* getGrantPaymentPeriods
- Returns: ISimpleNumberedPeriods<ISimpleScheduledPeriodAPI>
- Function: No description available'
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().'
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'
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.'
fundCode
Purpose: The fund code of the funding element being evaluated.
Type: String
Available Methods:
No methods available
fundType
Purpose: The fund type of the funding element being evaluated.
Type: String
Available Methods:
No methods 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).'
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'
term
Purpose: A period matching the term being evaluated.
Type: IPeriod
Available Methods:
No methods available
termNo
Purpose: The number of the term of the funding element being evaluated.
Type: Integer
Available Methods:
No methods 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.'
isFirstAcy
Purpose: True if the academic year of the funding element being evaluated is the first one among all non-canceled academic
years.
Type: Boolean
Available Methods:
No methods available
isLastAcy
Purpose: True if the academic year of the funding element being evaluated is the last one among all non-canceled academic
years.
Type: Boolean
Available Methods:
No methods available
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'
lp
Purpose: The loan period of the funding element being evaluated.
Type: ISimpleScheduledPeriodAPI
Available Methods:
* getUnits
- Returns: BigDecimal
- Function: No description available'
lpNo
Purpose: The number of the loan period of the funding element being evaluated.
Type: Integer
Available Methods:
No methods available
pp
Purpose: The payment period of the funding element being evaluated.
Type: ISimpleScheduledPeriodAPI
Available Methods:
* getUnits
- Returns: BigDecimal
- Function: No description available'
ppNo
Purpose: The number of the payment period of the funding element being evaluated.
Type: Integer
Available Methods:
No methods 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.'
scope
Purpose: Gathers all the scope details of the script being evaluated (acyNo, fundCode,
fundType, awy, lpNo, ppNo) allowing quick access to financialPlan/disbursements/etc
subsets directly pertaining to this scope.
Type: IFundScopeAPI
Available Methods:
* getAcyNo
- Returns: int
- Function: No description available'
* getAwy
- Returns: int
- Function: No description available'
* getFundCode
- Returns: String
- Function: No description available'
* getFundType
- Returns: String
- Function: No description available'
* getLpNo
- Returns: int
- Function: No description available'
* getPpNo
- 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
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.
Exit Counseling Graduating Criteria
Name: exitCounselingGraduatingCriteria
Purpose: Evaluates the exit counseling criteria for graduating students.
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: "exitCounselingGraduatingCriteria"
Primary Function: Evaluates exit counseling criteria for graduating students.
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:
allAwardYearIsirs
Purpose: Provides access to all ISIRs for the student, accessible per award year.
Type: IAllAwardYearIsirsAPI
Available Methods:
No methods available
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
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.'
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'
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'
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.ExitCounselingGraduatingCriteriaScript)
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.*
import org.joda.time.LocalDate;
boolean returnValue = false;
LocalDate academicCompletionDate = primaryProgram.getAcademicCompletionDate();
/* no API available for disbursements, and no way to separate out TEACH criteria based on current design */
if (academicCompletionDate != null)
{
returnValue = true;
}
return returnValue;
```
## 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.
Exit Counseling Withdrawn Criteria
Name: exitCounselingWithdrawnCriteria
Purpose: Evaluates the exit counseling criteria for withdrawn students.
In Baseline Config:
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: "exitCounselingWithdrawnCriteria"
Primary Function: Evaluates exit counseling criteria for withdrawn students.
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:
allAwardYearIsirs
Purpose: Provides access to all ISIRs for the student, accessible per award year.
Type: IAllAwardYearIsirsAPI
Available Methods:
No methods available
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
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.'
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'
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'
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.ExitCounselingWithdrawnCriteriaScript)
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.*
boolean returnValue = false;
/* no API available for disbursements, and no way to separate out TEACH criteria based on current design */
if (primaryProgram.getEnrollmentStatus() == "W")
{
returnValue = true;
}
return returnValue;
```
## 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.
Professional Judgement Initiating Conditions
Name: professionalJudgementInitiatingConditions
Purpose: Determines if the student meets the criteria for professional judgement.
In Baseline Config: N
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: "professionalJudgementInitiatingConditions"
Primary Function: Determines if a student meets the criteria to initiate a professional judgement process.
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:
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.'
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.'
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 associated to the professional judgement process.
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'
receivedDocument
Purpose: Document causing the attempt to initiate the professional judgment process.
Type: IReceivedDocDocumentAPI
Available Methods:
* getComments
- Returns: String
- Function: No description available'
* getDocumentCode
- Returns: String
- Function: No description available'
* getDocumentDefn
- Returns: IDocumentDefnAPI
- Function: No description available'
* getDocumentFieldMetadataList
- Returns: List<IDocumentFieldMetadataAPI>
- Function: No description available'
* getDocumentFieldValue
- Returns: String
- Function: No description available'
* getDocumentOwner
- Returns: String
- Function: No description available'
* getDocumentOwnerTypeAsString
- Returns: String
- Function: No description available'
* getDocumentOwnerTypes
- Returns: List<String>
- Function: No description available'
* getDocumentSource
- Returns: String
- Function: No description available'
* getDocumentStatus
- Returns: String
- Function: No description available'
* getElectronicallyReceived
- Returns: Boolean
- Function: No description available'
* getExternalDocumentId
- Returns: String
- Function: No description available'
* getExternalStudentId
- Returns: String
- Function: No description available'
* getInZ
- Returns: Date
- Function: No description available'
* getOriginalDmsStatus
- Returns: String
- Function: No description available'
* getReceiptD
- Returns: Date
- Function: No description available'
* getResourceLink
- Returns: String
- Function: No description available'
* getReviewD
- Returns: Date
- Function: No description available'
* getReviewer
- Returns: String
- Function: No description available'
* getSubTypeCode
- Returns: String
- Function: No description available'
* getSubTypeIndicator
- Returns: String
- Function: No description available'
* isAcceptable
- Returns: Boolean
- Function: No description available'
* getAwardYear
- Returns: String
- Function: No description available'
receivedDocuments
Purpose: All student documents.
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).'
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.
Professional Judgement Required Documents
Name: professionalJudgementRequiredDocuments
Purpose: Determines the documents required for professional judgement.
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: "professionalJudgementRequiredDocuments"
Primary Function: Determines the documents that must be requested for the professional judgement process.
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:
currentIsir
Purpose: The ISIR associated to the professional judgement process.
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.'
documentRequest
Purpose: Binding that shall be populated by the script with the requested 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.'
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.'
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'
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).'
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.