Codeunit 448 "Job Queue Dispatcher"
Base Application · System.Threading
Across versions
- BC23present
- BC245 procedures added, 1 procedures removed
- BC251 procedures added, 1 events added
- BC26unchanged
- BC271 procedures changed, 1 events added
- BC28-30unchanged
Neighbourhood 9 connected objects and pages
Base Application · System.Threading · BC23-30 · source at ea08af5e · facts from BC29
Properties
| Property | Value |
|---|---|
| TableNo | Job Queue Entry |
| Permissions | TableData “Job Queue Entry” = rimd, TableData “Job Queue Category” = rm |
Events published
OnAfterCalcRunTimeForRecurringJob(var JobQueueEntry: Record "Job Queue Entry"; Found: Boolean; StartingDateTime: DateTime; var NewRunDateTime: DateTime)(integration)OnBeforeCalcNextRunTimeForRecurringJob(JobQueueEntry: Record "Job Queue Entry"; StartingDateTime: DateTime; var NewRunDateTime: DateTime; var IsHandled: Boolean)(integration)OnAfterSuccessHandleRequest(var JobQueueEntry: Record "Job Queue Entry"; JobQueueExecutionTime: Integer; PreviousTaskId: Guid)(integration)- subscribers: Codeunit 9803 “Job Queue Telemetry” SendTraceOnJobQueueEntryRequestFinishedSuccessfully
OnAfterSuccessExecuteJob(var JobQueueEntry: Record "Job Queue Entry")(integration)- subscribers: Codeunit 9803 “Job Queue Telemetry” SendTraceOnJobQueueEntryFinishedSuccessfully
OnBeforeHandleRequest(var JobQueueEntry: Record "Job Queue Entry")(integration)OnBeforeExecuteJob(var JobQueueEntry: Record "Job Queue Entry")(integration)- subscribers: Codeunit 9803 “Job Queue Telemetry” SendTraceOnJobQueueEntryStarted
OnBeforeRun(var JobQueueEntry: Record "Job Queue Entry"; var Skip: Boolean)(integration)OnBeforeWaitForOthersWithSameCategory(var CurrJobQueueEntry: Record "Job Queue Entry"; var JobQueueEntry: Record "Job Queue Entry"; var Result: Boolean; var IsHandled: Boolean)(integration)OnCalcNextRunTimeForRecurringJobOnAfterCalcNewRunDateTime(var JobQueueEntry: Record "Job Queue Entry"; var NewRunDateTime: DateTime; var IsHandled: Boolean; StartingDateTime: DateTime)+ BC25 − BC25 (integration)OnCalcInitialRunTimeOnAfterCalcEarliestPossibleRunTime(var JobQueueEntry: Record "Job Queue Entry"; var EarliestPossibleRunTime: DateTime; var IsHandled: Boolean)(integration)OnRescheduleOnBeforeJobQueueEnqueue(var JobQueueEntry: Record "Job Queue Entry")(integration)OnRescheduleOnBeforeJobQueueEnqueueAsWaiting(var JobQueueEntry: Record "Job Queue Entry")+ BC27 (integration)OnCalcRunTimeForRecurringJobOnAfterInitDays(var JobQueueEntry: Record "Job Queue Entry"; var StartingDateTime: DateTime)(integration)OnCalcRunTimeForRecurringJob(var JobQueueEntry: Record "Job Queue Entry"; var RunOnDate: array[7] of Boolean; var Found: Boolean; var StartingWeekDay: Integer; var NoOfDays: Integer)(integration)
Procedures
IsWithinStartEndTime(var CurrJobQueueEntry: Record "Job Queue Entry"): Boolean+ BC24 Δ BC27: Checks if the current time is within the start and end time of the job queue entry.WaitForOthersWithSameCategory(var CurrJobQueueEntry: Record "Job Queue Entry"): BooleanMockTaskScheduler()ActivateNextJobInCategory(var JobQueueEntry: Record "Job Queue Entry")+ BC24 (internal)CalcNextRunTimeForRecurringJob(var JobQueueEntry: Record "Job Queue Entry"; StartingDateTime: DateTime): DateTimeCalcNextRunTimeHoldDuetoInactivityJob(var JobQueueEntry: Record "Job Queue Entry"; StartingDateTime: DateTime): DateTimeCalcNextReadyStateMoment(JobQueueEntry: Record "Job Queue Entry"): DateTimeCalcInitialRunTime(var JobQueueEntry: Record "Job Queue Entry"; StartingDateTime: DateTime): DateTimeAddMinutesToDateTime(SourceDateTime: DateTime; NoOfMinutes: Integer): DateTime
Plus 10 local procedures.
Triggers
OnRun
Relations
- runs on Table 472 “Job Queue Entry”
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:
OnRun → SendJobQueueExpiredTelemetry,OnRun → SendJobQueueNotReadyToStartTelemetry,OnRun → SendJobQueueRescheduleAsWaitingTelemetry, …) - Codeunit 53 “Translation Helper” (4 calls:
SendTraceOnFailedToGetRecordBeforeFinalizingRecord → RestoreGlobalLanguage,SendTraceOnFailedToGetRecordBeforeFinalizingRecord → SetGlobalLanguageToDefault,SendTraceOnFailedtoGetRecordBeforeUpdatingStatus → RestoreGlobalLanguage, …) - Codeunit 449 “Job Queue Start Codeunit” (1 call:
HandleRequest → (object)) - Codeunit 453 “Job Queue - Enqueue” (1 call:
CleanupStaleJobs → (object))
Called by
- Table 472 “Job Queue Entry” (4 calls:
CleanupAfterExecution → CalcNextRunTimeForRecurringJob,CleanupAfterExecution → CalcNextRunTimeHoldDuetoInactivityJob,SetStatusValue → CalcInitialRunTime, …) - Codeunit 110 “Consolidate Business Units” (1 call:
RunConsolidation → (object)) - Codeunit 456 “Job Queue Management” (1 call:
RunJobQueueEntryOnce → (object))
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 Dispatcher"), then bcatlas_get_procedure_body or bcatlas_get_neighbors on the returned id.