Scheduled Jobs Migration for Anthology Cloud

This information applies to the Anthology Cloud system. If you have the on-premise version, the information in this section is not applicable.

In Anthology Student versions before 21.0, the SQL Server Agent was used to configure scheduled and recurring processes. These processes are an integral part of Anthology Student. Examples of scheduled jobs are Populate Audit tables, Refresh Dynamic Student Groups, Purge History tables, and Process Status Changes.

A full list of the jobs deployed with Anthology Student version 21.0 and higher is included at the end of this topic.

Conditional Deployment – Database Jobs Scripts

All the existing SQL Job scripts use a standard stored procedure, cmc_CreateJob to set up the scheduled jobs. In Anthology Student version 21.0 and higher, logic within the stored procedure determines whether the deployment is within the campusnexus.cloud domain or the database is an Azure SQL database. When either is true, scheduled jobs will be added to the SQL database table core.ScheduledJobs.

The Background Processing system uses this table to schedule the jobs. Otherwise, the jobs are created within the SQL Server Agent just as they were in prior versions.

Upgrade Scenarios – From Anthology Student 20.0 to 21.0

There are various upgrade paths in Anthology Student version 21.0. The location of the scheduled jobs will depend on the environment in which version 21.0 is deployed.

Version 20.0 On-Premise

  • Upgrade to Version 21.0 staying On Premise: Scheduled Jobs will continue to be deployed to SQL Server Agent.

  • Upgrade to Version 21.0 and migrate to campusnexus.cloud: Scheduled Jobs will be deployed to the Anthology Student Background Processing scheduled jobs table.

  • Upgrade to Version 21.0 private (not campusnexus.cloud) Azure subscription using full SQL Server: Scheduled Jobs will continue to be deployed to SQL Server Agent.

Version 20.0 on campusnexus.cloud

  • Upgrade to Version 21.0 on campusnexus.cloud: Scheduled Jobs will be deployed to the Anthology Student Background Processing scheduled jobs table.

Version 20.0 on any environment to any Azure subscription with Azure SQL database

Scheduled Jobs will be deployed to the Anthology Student Background Processing scheduled jobs table.

Database Tables

The tables for scheduled jobs exist within the core schema in the Anthology Student database.

core.ScheduledJob

This table holds all the scheduled jobs. Scheduled jobs may be used to execute SQL stored procedures, services, or workflows within Anthology Student. Most jobs have been migrated as SQL stored procedures (SQL). Three jobs need more complex logic and are implemented as services (SVC). The remaining columns identify the stored procedure or the service to be executed and the schedule. The schedule column: JobFrequency is a cron string. The 5 parts of the string are delimited by a space.

The format is: MINUTE HOUR DAY-OF-MONTH MONTH DAY-OF-Week

Examples:

*/30 * * * * Every 30 minutes
*/5 * * * * Every 5 minutes
0 */6 * * * Every 6 hours
40 2 * * * Every day at 2:40 AM
30 2 28 * * 28th of each month, at 2:30 AM
0 2 * 1-7 0 First Sunday of each month, at 2:00 AM

core.ScheduledJobHistory

ScheduledJobHistory contains a log of each time that a scheduled job has been executed. The results of the process are recorded within this table.

JobState indicates the current state of the job; Started, Succeeded, or Failed. JobResult holds the return code or output from the stored procedure, or the error message if the state fails.

The ScheduledJobHistory table is purged every 6 hours by the scheduled job, Cleanup Scheduled Job History.

This job executes a SQL stored procedure: core.sproc_System_Cleanup_ScheduledJobHistory 1000,20,4 Parameters default values:

  • 1000 is the maximum number of entries

  • 20 indicates the maximum number of entries per job type

  • 4 indicates the maximum age of a history entry – in weeks

Migrating Custom SQL Jobs to Hangfire

If you have custom SQL jobs, you must migrate to Hangfire jobs. Please contact Anthology Professional Services.

Hangfire Recurring Jobs

The core.ScheduledJob table is the source of the job scheduling. At the start of Anthology Student, the background processing system reads this table to configure the recurring jobs within Hangfire. The recurring jobs can be viewed within the Hangfire Dashboard.

<sitename>/BackgroundJobs/recurring

Recurring Jobs

This BackgroundJobs page is disabled by default. It can be enabled by modifying an application setting.

The app setting key is AllowHangfireDashboard – with a value of True.

Application Startup Logic

Core.ScheduledJob table is processed and for each row, a recurring job is added or updated within the Hangfire system. When jobs are deleted from the core.ScheduledJob table, they are not physically deleted but are instead marked as IsDeleted = true (1).

This allows the startup process to remove a recurring job from Hangfire when it is no longer needed. This logic is run by the Background Processing system each time that the Student Web App starts. It can also be triggered by selecting the Reset Service menu option from within the Scheduled Jobs page within the UI.

Concurrent Execution

Most processes started by a scheduled job will be completed in a matter of seconds. But some will run for a longer period. If the job executes past its next scheduled start time, the next occurrence will be canceled.

A log entry will be added to the job history table indicating that it was canceled: "Another instance of jobname is already executing." This same concurrency checking applies when the application service is scaled out to multiple instances. In the scaled-out environment, the Background Processing system is also executing on each instance. Concurrency checking prevents the execution of more than one instance of a scheduled job.

Triggering Scheduled Event Workflows

In Anthology Student version 21.0 and higher, to trigger a workflow based on a Scheduled Event, use the Scheduled Job type of Workflow. Enter the schedule name in the Workflow Schedule Entity Name text box. This value is to be checked in your Scheduled Event workflow to indicate if the workflow should execute.

Using this type of scheduled job removes the need to add SQL Jobs to execute workflows.

Scheduled Job

Scheduled Jobs in the Anthology Student User Interface

Using the Background Processes page (Select the Processes tile > locate System Administration > select Background Processes), an Administrator or staff member with permissions can modify the job schedules.

SQL Server jobs play an important role in keeping system processes in sync and up to date. Therefore, the SQL jobs cannot be deleted and many of the properties are read-only. An administrator can activate/deactivate the job and modify the list of users to be notified when the job is completed. Any other changes to SQL jobs will require modifications via the database using scripts. New SQL jobs may not be added to the system via UI. If there is a need for a new job, it must be added to the database using a script.

List of Scheduled Jobs

Below is the list of jobs displayed by default on the Background Processes page. (Select the Processes tile > locate System Administration > select Background Processes.) The exact jobs that are displayed will depend on the modules you are using and your configuration.

Name Description Interval
Campus-Based COD Programs & Clear Stale Campus-Based COD Student Review Batches

Two scheduled background jobs were introduced as part of the Campus-Based Programs implementation:

  1. Campus-Based COD Programs
  2. Clear Stale Campus-Based COD Student Review Batches

The Campus-Based COD Programs job automates most of the Federal Work-Study (FWS) reporting process. The job tracks the FWS payments made to students and changes to the CPS Transaction Number, subsequently creating or updating the export record as needed.

  • The job creates a new row item in the Payment Information section of the Campus-Based Programs form for each student that has received a new FWS payment across all FWS Attending Entity IDs that share the same FWS Reporting Entity ID, populating the data accordingly.

  • After creating the Payment Information record, the job auto-creates a new record in the Export Information section and populate data in fields with the information available for CPS Transaction number, Total FWS Amount, and Status.

  • The job sums the total of all FWS payment records from Payment Information and auto-updates the Total FWS Amount in the record in the Export Information section every time a new FWS payment is made while also adding the payment record in the Payment Information section.

By default, the job runs every day at 1 am UTC (9 pm EST). This is an SQL job whose schedule cannot be edited from the UI. To edit the cron schedule, see the instructions below.

Daily

Cleanup Background Batch History

Performs clean-up for these scheduled jobs (such as the job history).

Every 6 hours

Clear Auto Match Credit Decision Date Expired Records

Clears expired records with auto-matched credit decision dates for CRCS, CRSP, CRWB, and CREC files.

Daily

EDE Archiving Frequency

Archives the files in the EDE path for the campus. It moves the existing files in the EDE path to a new folder that is time stamped with the time it was archived.

Daily

Enable Future Scheduled Processes

Enables future scheduled processes.

26 and 56 minutes after the hour

FAA Auto Match COD Details

Captures the file information into a table and auto-matches and auto-updates records for imported CRCS, CRSP, CRWB, and CREC files.

Every 12 hours

Global File Processor

Processes financial aid using the Servicer configured using Settings > System > Campuses > Financial AID > Servicer.

Every 15 minutes

Process Global ISIR File Schedule

Processes the ISIR files that have been sent from the Servicer Global FAS.

Daily

Process ISIR import files

Finishes the ISIR processing for files that were imported but chosen to be processed later during the import process. It will complete the ISIR matching processes.

Every 15 minutes

Refresh View Based Dynamic Employer Groups

For dynamic employer groups created using views, refreshes the students in the group.

Hourly

Refresh View Based Dynamic Student Groups

For dynamic student groups created using views, refreshes the students in the group.

Hourly

Sync FaStudentFundSourceBatchDetail_FAA and SyStudent

Synchronizes SSNs imported by the Automated Student Fund Management process with SyStudent IDs in the Anthology Student database. Matched records are listed in the Job Results.

Daily

Sync FaStudentFundSourceBatchDetail_FAA with Enrolment Details

Synchronizes enrollments details imported by the Automated Student Fund Management process with enrollment details in the Anthology Student database. By default, the student will be assigned the 1st Academic Year (AY) and all the Terms or Payment Periods that are created or associated with that AY. Matched records are listed in the Job Results.

Daily

Update Document Management Vendor Student Mapping

Adds new students to the document management system.

Every 15 minutes

Update Previous Education Graduation Indicator

Selects the Graduated check box on the Previous Education page for a student when the Grad Date has occurred.

Daily

List of Remaining Jobs for Anthology Student

Below is the list of other jobs with a job type of SQL Server job (SQL).

Name Operation Description Interval

Autolock Payment Periods/Loan Periods

Exec dbo.sproc_student_
AcademicRecords_StudentPace_
AutoLock;

Recalculates the graduation date and expected externship begin date.

Daily

Cleanup Faculty Workload Management Integration Log

exec dbo.sproc_FWM_Cleanup_
Integration_Log

Cleans up entries from the HR and Payroll integration log periodically. The period for the cleanup is configurable.

Daily

Create sisQueue Message for reference type table

Exec dbo.sproc_CRM_
ReferenceType_Insert

Processes records from cmSisQueueStudent to CmSisQueue based on the SchoolStatus.

Every 15 minutes

CRM Process Activity Changes

Exec sproc_CRM_Process_
Activity_Changes

Processes activity template integration changes.

Every 15 minutes

CRM Send Students

Exec sproc_CRM_Send_
Entire_Student
@RecordsToSelect=100

Processes the records from cmSisQueueStudent.

Every minute

Expire Waitlists

EXECUTE dbo.sproc_
StudentEnrollment_
Waitlist_ExpireWaitlist

Expires any waitlists based on the campus settings.

Daily

Indexes Maintenance

exec dbo.cmc_Defragment_
Indexes_2005 5, 1;
exec dbo.cmc_
UpdateStatistics 10

Rebuilds all indexes with scan density below 95%.

Daily

Locate new E-mails from Contact Manager

exec dbo.sproc_School_
Messaging_EventEmail_GetPending 100

Locates pending e-mails and queue to send.

Every 5 minutes

Mark Examination attendance for unattended students

Exec dbo.sproc_Examination_
MarkStudentAttendanceForUnAttended

Marks absent for students who did not show up for exams after the examination (past the QR code scanning end time).

Every minute

Payment Period Billing Jobs

sproc_School_Automated_
PaymentPeriod_Billing_Recalculate

Recalculates pending charges for payment periods.

Daily

Populate Direct Loan COA By Chunksize

exec dbo.sproc_DirecLoanCoa_
DirectLoans_Update

Populates the Direct Loan Cost of Attendance field for any new direct loan awards only when required.

Every 15 minutes

Post Payment Period Pending Charges Based on Attendance

exec sproc_System_Post_
PendingCharges_
ByPaymentPeriod

Posts pending charges for billing.

Every 15 minutes

Process Anticipated Grade Level Promotion

exec dbo.sproc_System_
Academics_Anticipated_
GradeLevel_Promotion_Process

Processes anticipated grade level promotions based on the rules that specify how many credits a student must have for Anthology Student to automatically promote the student to a higher grade level.

Daily

Process Auditing Tables Asynchronously

exec dbo.sproc_System_
Proxy_Process

Processes auditing tables asynchronously.

Every minute

Process Automated Registration Billing

exec dbo.sproc_System_
Registration_Billing_Post

Posts pending charges.

Every 2 hours

Process Campus2000 Attendance Archive Queue

exec dbo.sproc_School_
Campus_Academics_AttendanceArchive_
ProcessQueue 2

Processes the input queue for the attendance archiving sub-system.

Daily

Process Campus2000 Contact Manager Event Queue

exec dbo.sproc_School_
Activities_ProcessQueue @N=500

Processes the input queue for the CM event sub-system.

Every minute

Process Campus2000 Input Queue

exec dbo.sproc_System_
Queue_Process @N = 3000

Processes the input queue for the Campus2000 messaging system.

Every minute

Process Campus2000 Packaging Status Promotion Queue

exec dbo.fa_
PackStatusPromotion_
ProcessQueue 500

Processes the input queue for the financial aid packaging status sub-system.

Every 2 minutes

Process Dynamic Student Groups

exec dbo.sproc_
Students_Groups_Refresh

Refreshes dynamic student groups.

Interval specified by your institution (such as hourly, daily, weekly)

Process Enrollment Status Change

exec dbo.proc_CmEnrollStatChanges

Processes the changes in enrollment status.

Daily

Process Expired Incomplete Grades

exec dbo.sproc_student_
academics_enrollment_expired_
incomplete_grades_replace

Processes expired incomplete grades past the expiration deadline date.

Daily

Process Expired Loans for Stipends

exec dbo.sproc_
Student_FinancialAid_
AcademicYear_Packaging_
Stipends_ProcessExpiredLoans

Processes expired loans for stipends.

Daily

Process Payment Period Adjustments

exec sproc_system_
AcademicRecords_AdEnrollSched_
FaStudentAYPaymentPeriod_Update;
exec sproc_Student_StudentAccounts_
PaymentPeriod_Adjust

Processes any unprocessed payment period adjustments.

Daily

Process Registration Wait List

exec dbo.sproc_Student_
Enrollment_Registration_
Courses_Reservations_
Expire;exec dbo.sproc_
StudentEnrollment_Waitlist_
CheckClassForSeats

Clears expired reservations. If the system is configured for automated scheduling, it checks class availability and moves any waitlisted students into a reserved status and notifies them.

Every 5 minutes

Process Status Changes

exec sp_AdStatusChange_CheckFuture

Processes leave of absence (LOA) status changes.

Daily

Process Student School Status Change

exec dbo.sproc_Student_
SchoolStatus_ByTermDate_Update

Processes student school status changes for the day.

Daily

Process Title IV Credit Balance

exec dbo.sproc_Student_
FinancialAid_AcademicYear_
Packaging_Stipends_
T4CRBalance_Create

Processes Title IV credit balance.

Every 12 hours

Process_Dynamic_
Employer_Groups

exec dbo.sproc_School_
Campus_Employer_
EmployerGroups_Refresh

Refreshes dynamic employer groups

Interval specified by your institution (such as hourly, daily, weekly)

Process_FaSSCR_
EnrollmentStatusAndDate

Exec dbo.sproc_System_
FinancialAid_SSCR_
CalculateEnrollments_REG;

Calculates the SSCR enrollment status and effective date on active students.

Daily

Process_FaStudentAY_
LoanPeriod_COA_Recalculate

Exec dbo.Sproc_School_
FinancialAid_StudentAY_
LoanPeriod_COA_Recalculate_
Regulatory;

Recalculates the cost of attendance (COA) for awards when flagged due to import of new Origination Fee (CROF).

Every 6 hours

Process_Posting_Of_
Housing_Rent_Record

exec dbo.Sproc_Housing_
StudentLeaseChargeSchedule_
Get_AutoProcess

Posts rent for housing.

Daily

Process_Rebuild_AYLP

Exec dbo.Sproc_Student_
AutoAdjustAYLPQUEUE_Adjust

Rebuilds the academic year (AYs) and loan periods (LP) manual changes made to academic years hours or credits or for any deleted academic years.

Daily

Process_Sap_Batch

Exec dbo.sproc_System_
AcademicRecords_SAP_
ConfigurationBased_Execute

Performs an automated satisfactory academic (SAP).

Daily

Process_YtdDirectLoan
ProcessResults_Regulatory

This job is obsolete.

ProcessAutomatedMonthEnd

Multiple execs for steps in the month-end process. See the job for details.

Automatically processes month-end on an interval you specify so you can forecast month-end results before closing the month.

Daily

ProcessFWMAudit
ServiceQueue

Exec core.sproc_System_
Process_FWM_AuditServiceQueue

Audits the LoadFactor and LoadFactorRangeDetail tables.

Every minute

ProcessHOPEBenchmark
TierEvaluation

exec dbo.sproc_student_
FinancialAid_HOPE_
BenchmarkTier_Evaluation_Save

Evaluates Hope Grants based on the benchmark and tier configurations and stores output in a table.

Weekly

ProcessSchedulingAutoStipend

exec dbo.sproc_Student_
FinancialAid_AcademicYear_
Packaging_Stipends_
ProcessPaymentQueue
@NumberOfRecords = 3000

Process payments from SaAutoStipendPaymentQueue table to triggered auto stipend feature on the basis of credit balance scheduling configuration on the campus and program version level.

Every 8 hours

Purge CmSisQueue Table

Exec dbo.sproc_CRM_
Purge_Queue 90

Purges records older than X days from the CmSisQueue table.

Daily

Queue Students for Removal From Repackaging Process OperationName:
PurgeAutoRepackageQueue ServiceInterface:
Cmc.Nexus.FinancialAidAutomation.
Services.IFaaAutoAwardStudentService,
Cmc.Nexus.FinancialAidAutomation.
Contracts JobType: SVC
System to review all students who have been queued up for Auto Repackaging to determine who should be removed from the queue based on a number of days from value between 1-999. The default batch size to remove students in the FaaRepackageQueueClearBatchSize in the SyRegistry table is 500. Every day at 12 AM
Queue Students for Repackaging by Census Date OperationName:
QueueAutoRepackageCensusDateTrigger ServiceInterface:
Cmc.Nexus.FinancialAidAutomation.
Services.IFaaAutoAwardStudentService,
Cmc.Nexus.FinancialAidAutomation.
Contracts JobType: SVC
System to review how often active students have reached their payment period census date and should be put into the queue for auto repackaging. The process selects the students added in AutoRepackageTriggerDetailQueue. Every day at 05:15 AM, 10:15 AM, 03:15 PM, 08:15 PM and 11:15 PM
Queue Students for Repackaging Triggers OperationName:
QueueAutoRepackageTriggers ServiceInterface:
Cmc.Nexus.FinancialAidAutomation.
Services.IFaaAutoAwardStudentService,
Cmc.Nexus.FinancialAidAutomation.
Contracts JobType: SVC
System to review how often active students have met any configured repackaging trigger (except census date) and should be put into the queue for auto repackaging. The process selects the students added in AutoRepackageTriggerDetailQueue. The default batch size is 500 students. After each run the system will remove any student from the queue batch so the next students can be added to the queue batch. Every 5 minutes Every 5 minutes

Recalculate_
TermSequence_For_Student

Exec dbo.Sproc_School_Academics_
ScheduleEnrollments_
TermSequence_Recalculate

Recalculates the term sequence independent of the user interface.

Daily

Refresh Student Addresses

exec dbo.sproc_Student_
Address_Job_Update

Automatically activates and inactivates addresses based on the current date, address type, and entered effective dates.

Daily

Remove Clearinghouse Student Review batches

exec dbo.sproc_School_
ClearinghouseBackgroundProcess_
ReviewBatches_Delete

Clears out any batches that are pending on the Clearinghouse Student Review process and deletes batches that are more than 3 days old.

Daily

Send Processed Message From CmSisQueue to CmSisQueueProcessed

Exec dbo.sproc_CRM_Insert_
CmSisQueueProcessed

Sends processed records from cmSisQueue to CmSisQueueProcessed.

Every 60 minutes

Service Broker Monitor

exec dbo.sproc_System_
SSBQueue_Validate

Monitors service broker sub-system.

Daily

SPE and Payment Period Billing

dbo.sproc_System_isCloudDatabase

Runs all related SPE and Payment Period billing steps in the proper order. Steps can be enabled or disabled using Registry keys.

 

System Queue Cleanup

EXECUTE dbo.sproc_System_Queue_
Cleanup @DaysToKeep = 7

Cleans up the system queue.

Daily

Update Registration Group Hold Groups

exec dbo.sproc_Staff_
Academics_RegistrationGroup_
AdvisementGroups_Evaluate

Adds students to the appropriate hold groups.

Daily

Update Statistics

EXEC cmc_UpdateStatistics 10

Updates the statistics on all the tables.

Update_AdAttStatID_in_AdEnroll

exec dbo.cmc_DataClean_
UpdateAllAdEnrollStatuses

Updates AdAttStatID in AdEnroll with data from most recent Term from AdEnrollTerm.

Daily

Update_GraduationDate_
ExpectedExternshipBeginDate

Multiple execs for steps in the recalculation process. See the job for details.

Recalculates the graduation dates and expected externship begin dates.

Daily