Codeunit 456 "Job Queue Management"
Base Application · System.Threading
Across versions
- BC23present
- BC249 procedures added, 2 procedures removed
- BC255 procedures added
- BC26unchanged
- BC272 procedures changed, 1 procedures removed
- BC28-29unchanged
- BC302 procedures added, 1 procedures removed
Neighbourhood 18 connected objects and pages
Base Application · System.Threading · BC23-30 · source at ea08af5e · facts from BC29
Events published
OnGetCheckDelayInMinutes(var DelayInMinutes: Integer)+ BC24 (integration): Used for test. Sets the minimum age of stale job queue entries and job queue log entries.OnRunJobQueueEntryOnceOnAfterJobQueueEntryInsert(SelectedJobQueueEntry: Record "Job Queue Entry"; JobQueueEntry: Record "Job Queue Entry")(integration)OnFindStaleJobsAndSetErrorOnAfterSetError(var JobQueueEntry: Record "Job Queue Entry")+ BC24 (integration)
Event subscriptions
- ScheduleReport subscribes to Codeunit “Reporting Triggers” ScheduleReport
- OnStatusChanged subscribes to Table “Job Queue Entry” OnAfterModifyEvent
- OnBeforeDeleteJobQueueEntry subscribes to Table “Job Queue Entry” OnBeforeDeleteEvent
- OnBeforeDeleteJobQueueLogEntry subscribes to Table “Job Queue Log Entry” OnBeforeDeleteEvent
Procedures
CheckUserInJobQueueAdminList(UserName: Text): Boolean+ BC25 (internal)CreateJobQueueEntry(var JobQueueEntry: Record "Job Queue Entry")DeleteJobQueueEntries(ObjectTypeToDelete: Option; ObjectIdToDelete: Integer)StartInactiveJobQueueEntries(ObjectTypeToStart: Option; ObjectIdToStart: Integer)SetJobQueueEntriesOnHold(ObjectTypeToSetOnHold: Option; ObjectIdToSetOnHold: Integer)SetRecurringJobsOnHold(CompanyName: Text)SetStatusToOnHoldIfInstanceInactiveFor(PeriodType: Option Day,Week,Month,Quarter,Year; NoOfPeriods: Integer; ObjectTypeToSetOnHold: Option; ObjectIdToSetOnHold: Integer): BooleanRunJobQueueEntryOnce(var SelectedJobQueueEntry: Record "Job Queue Entry")CheckAndRefreshCategoryRecoveryTasks()+ BC24FindStaleJobsAndSetError()Δ BC24 Δ BC27: To find stale jobs (in process jobs with no scheduled tasks) and set them to error state. For both JQE and JQLEUpdateRetriableFailedJobQueueLogEntry(var JobQueueEntry: Record "Job Queue Entry")+ BC25 Δ BC27 (internal)TooManyScheduledTasksNotification()(internal)GetScheduledTasks(): Integer+ BC24 (internal)GetScheduledTasksForUser(UserId: Guid): Integer+ BC24 (internal)TooManyScheduledTasksDocs(ScheduledTaskNotification: Notification)(internal)
Plus 10 local procedures.
Triggers
OnRun
Calls
From the extracted call graph of BC29 (graphify-al on the snapshot checkout): calls whose target is known from a declared type or an Object::"Name" argument. Interface dispatch and calls through events are not counted, so the list is not complete.
- Codeunit 9803 “Job Queue Telemetry” (5 calls:
OnStatusChanged → SetJobQueueTelemetryDimensions,RunJobQueueEntryOnce → SetJobQueueTelemetryDimensions,StaleJobQueueEntryTelemetry → SetJobQueueTelemetryDimensions, …) - Codeunit 448 “Job Queue Dispatcher” (1 call:
RunJobQueueEntryOnce → (object)) - Codeunit 450 “Job Queue Error Handler” (1 call:
RunJobQueueEntryOnce → (object)) - Codeunit 9026 “User Login Time Tracker” (1 call:
SetStatusToOnHoldIfInstanceInactiveFor → AnyUserLoggedInSinceDate)
Called by
- Codeunit 461 “Job Queue Cleanup Tasks” (3 calls:
CleanupJQTasks → CheckAndRefreshCategoryRecoveryTasks,CleanupJQTasks → FindStaleJobsAndSetError,OnRun → UpdateRetriableFailedJobQueueLogEntry) - Codeunit 841 “Cash Flow Management” (3 calls:
CreateAndStartJobQueueEntry → CreateJobQueueEntry,DeleteExistingSetup → DeleteJobQueueEntries,DeleteJobQueueEntries → DeleteJobQueueEntries) - Codeunit 1852 “Sales Forecast Scheduler” (2 calls:
CreateJobQueueEntry → CreateJobQueueEntry,RemoveScheduledTaskIfUserInactive → DeleteJobQueueEntries) - Codeunit 1956 “LPP Scheduler” (2 calls:
CreateJobQueueEntry → CreateJobQueueEntry,RemoveScheduledTaskIfUserInactive → DeleteJobQueueEntries) - Codeunit 441 “Prepayment Mgt.” (2 calls:
CreateAndStartJobQueueEntry → CreateJobQueueEntry,CreateAndStartJobQueueEntry → DeleteJobQueueEntries) - Codeunit 454 “Job Queue - Send Notification” (2 calls:
SendNotificationWhenJobFailed → CheckUserInJobQueueAdminList,ShowMoreDetailForMultipleFailedJobs → CheckUserInJobQueueAdminList) - Codeunit 737 “VAT Report Mgt.” (2 calls:
CreateAndStartAutoUpdateVATReturnPeriodJob → CreateJobQueueEntry,CreateAndStartAutoUpdateVATReturnPeriodJob → DeleteJobQueueEntries) - Codeunit 9112 “Job Queue Activities” (2 calls:
OnRun → GetScheduledTasks,OnRun → GetScheduledTasksForUser) - Codeunit 4114 “Price List Line Sync” (1 call:
StartSync → CreateJobQueueEntry) - Codeunit 842 “Cash Flow Forecast Update” (1 call:
RemoveScheduledTaskIfUserInactive → DeleteJobQueueEntries) - Codeunit 8912 “Environment Cleanup Subs” (1 call:
ClearCompanyConfigGeneral → SetRecurringJobsOnHold) - Page 3845 “Scheduled Tasks” (1 call:
OnOpenPage → TooManyScheduledTasksNotification) - Page 672 “Job Queue Entries” (1 call:
OnOpenPage → TooManyScheduledTasksNotification) - Page 9102 “Job Queue Tasks Activities” (1 call:
UpdateJobQueueCountAndStyleExpr → CheckUserInJobQueueAdminList)
Recent changes
- 2026-10-02 #12117 [Job Queue] Clearer message and attempt number for runs interrupted by the platform (main, BC30, feature)
Ask your agent
Procedure bodies are not stored here (D10). The call sections above are our own, per object, from the BC29 call graph. For a procedure body or the calls of one procedure, ask bc-code-atlas (external, by Stefan Maron, MIT; default corpus w1-28), which the bc-observatory plugin connects: bcatlas_resolve_node(object_type: "codeunit", object_name: "Job Queue Management"), then bcatlas_get_procedure_body or bcatlas_get_neighbors on the returned id.