codeunitFinanceofficial - Microsoftderived - from the source, no model text

Codeunit 1720 "Deferral Utilities"

Base Application · Microsoft.Finance.Deferral

Across versions

  1. BC23present
  2. BC248 procedures added, 4 events added
  3. BC251 procedures added
  4. BC261 events added
  5. BC271 events added
  6. BC283 events added, 1 procedures added
  7. BC29-30unchanged

Neighbourhood 24 connected objects and pages

Codeunit 2674 "Alloc. Acc. Handle Doc. Post" (event subscribers)Alloc. Acc. Handle Doc. PostCodeunit 12 "Gen. Jnl.-Post Line" (calls, 7 links)Gen. Jnl.-Post LineCodeunit 5063 "ArchiveManagement" (calls, 4 links)ArchiveManagementCodeunit 815 "Sales Post Invoice" (calls, 4 links)Codeunit 816 "Purch. Post Invoice" (calls, 4 links)Purch. Post InvoiceTable 37 "Sales Line" (calls, 3 links)Sales LineTable 39 "Purchase Line" (calls, 3 links)Purchase LineCodeunit 11 "Gen. Jnl.-Check Line" (calls, 2 links)Gen. Jnl.-Check LineTable 1701 "Deferral Header" (calls, 2 links)Table 81 "Gen. Journal Line" (calls, 2 links)Gen. Journal LineCodeunit 2678 "Sales Alloc. Acc. Mgt." (calls)Sales Alloc. Acc. Mgt.Codeunit 2679 "Purchase Alloc. Acc. Mgt." (calls)Purchase Alloc. Acc. Mgt.Codeunit 360 "Accounting Period Mgt." (calls)Accounting Period Mgt.Codeunit 80 "Sales-Post" (calls)Sales-PostCodeunit 90 "Purch.-Post" (calls)Purch.-PostPage 1702 "Deferral Schedule" (calls)Page 1704 "Deferral Schedule View" (calls)Deferral Schedule ViewPage 1706 "Deferral Schedule Archive" (calls)Table 113 "Sales Invoice Line" (calls)Table 115 "Sales Cr.Memo Line" (calls)Table 123 "Purch. Inv. Line" (calls)Table 125 "Purch. Cr. Memo Line" (calls)Table 5108 "Sales Line Archive" (calls)Table 5110 "Purchase Line Archive" (calls)

Open in the neighbourhood explorer

One hop out, from the extracted relations and call graph. Up to 40 shown; the sections below list them all.

Base Application · Microsoft.Finance.Deferral · BC23-30 · source at ea08af5e · facts from BC29

Events published

  • OnAfterCalculateDaysPerPeriod(DeferralHeader: Record "Deferral Header"; var DeferralLine: Record "Deferral Line"; DeferralTemplate: Record "Deferral Template") (integration): Integration event raised after calculating deferral amounts using days per period method. Enables custom processing or adjustments to deferral calculations.
  • OnAfterCalculateEqualPerPeriod(DeferralHeader: Record "Deferral Header"; var DeferralLine: Record "Deferral Line"; DeferralTemplate: Record "Deferral Template") (integration): Integration event raised after calculating deferral amounts using equal per period method. Enables custom processing or adjustments to equal period deferral calculations.
  • OnAfterCalculateStraightline(DeferralHeader: Record "Deferral Header"; var DeferralLine: Record "Deferral Line"; DeferralTemplate: Record "Deferral Template") (integration): Integration event raised after calculating deferral amounts using straight-line method. Enables custom processing or adjustments to straight-line deferral calculations.
  • OnAfterCalculateUserDefined(DeferralHeader: Record "Deferral Header"; var DeferralLine: Record "Deferral Line"; DeferralTemplate: Record "Deferral Template") (integration): Integration event raised after calculating deferral amounts using user-defined method. Enables custom processing or adjustments to user-defined deferral calculations.
  • OnAfterCreateDeferralSchedule(DeferralHeader: Record "Deferral Header"; var DeferralLine: Record "Deferral Line"; DeferralTemplate: Record "Deferral Template"; CalcMethod: Enum "Deferral Calculation Method") (integration): Integration event raised after creating the complete deferral schedule. Enables custom processing or validation after schedule generation is complete.
  • OnAfterCreateScheduleFromGL(var GenJournalLine: Record "Gen. Journal Line"; var PostedDeferralHeader: Record "Posted Deferral Header") (integration): Integration event raised after creating deferral schedule from general journal line posting. Enables custom processing or field updates after G/L deferral schedule creation.
  • OnAfterSetStartDate(DeferralTemplate: Record "Deferral Template"; var StartDate: Date; var AdjustedStartDate: Date) (integration): Integration event raised after setting the start date for deferral calculations. Enables custom start date logic or adjustments based on deferral template settings.
  • OnBeforeCalculateDaysPerPeriod(DeferralHeader: Record "Deferral Header"; var DeferralLine: Record "Deferral Line"; DeferralTemplate: Record "Deferral Template") (integration): Integration event raised before calculating deferral amounts using days per period method. Enables custom preprocessing or parameter modification before days-based calculations.
  • OnBeforeCalculateEqualPerPeriod(DeferralHeader: Record "Deferral Header"; var DeferralLine: Record "Deferral Line"; DeferralTemplate: Record "Deferral Template") (integration): Integration event raised before calculating deferral amounts using equal per period method. Enables custom preprocessing or parameter modification before equal period calculations.
  • OnBeforeCalculateStraightline(DeferralHeader: Record "Deferral Header"; var DeferralLine: Record "Deferral Line"; DeferralTemplate: Record "Deferral Template") (integration): Integration event raised before calculating deferral amounts using straight-line method. Enables custom preprocessing or parameter modification before straight-line calculations.
  • OnBeforeCalculateUserDefined(DeferralHeader: Record "Deferral Header"; var DeferralLine: Record "Deferral Line"; DeferralTemplate: Record "Deferral Template") (integration): Integration event raised before calculating deferral amounts using user-defined method. Enables custom preprocessing or parameter modification before user-defined calculations.
  • OnBeforeCreateDeferralSchedule(DeferralCode: Code[10]; DeferralDocType: Integer; GenJnlTemplateName: Code[10]; GenJnlBatchName: Code[10]; DocumentType: Integer; DocumentNo: Code[20]; LineNo: Integer; AmountToDefer: Decimal; CalcMethod: Enum "Deferral Calculation Method"; var StartDate: Date; var NoOfPeriods: Integer; ApplyDeferralPercentage: Boolean; DeferralDescription: Text[100]; var AdjustStartDate: Boolean; CurrencyCode: Code[10]; var IsHandled: Boolean; var RedistributeDeferralSchedule: Boolean) + BC24 − BC24 (integration): Integration event raised before creating a deferral schedule with comprehensive parameters. Enables custom schedule creation logic or parameter validation before schedule generation.
  • OnBeforeDeferralCodeOnValidate(DeferralCode: Code[10]; DeferralDocType: Integer; GenJnlTemplateName: Code[10]; GenJnlBatchName: Code[10]; DocumentType: Integer; DocumentNo: Code[20]; LineNo: Integer; Amount: Decimal; PostingDate: Date; Description: Text[100]; CurrencyCode: Code[10]; var IsHandled: Boolean) (integration): Integration event raised before validating deferral code input. Enables custom deferral code validation logic or preprocessing.
  • OnBeforePostedDeferralHeaderInsert(var PostedDeferralHeader: Record "Posted Deferral Header"; GenJournalLine: Record "Gen. Journal Line") (integration): Integration event raised before inserting posted deferral header record. Enables custom field updates or validation before posted deferral header creation.
  • OnBeforePostedDeferralLineInsert(var PostedDeferralLine: Record "Posted Deferral Line"; GenJournalLine: Record "Gen. Journal Line") (integration): Integration event raised before inserting posted deferral line record. Enables custom field updates or validation before posted deferral line creation.
  • OnBeforeOpenLineScheduleEdit(DeferralCode: Code[10]; DeferralDocType: Integer; GenJnlTemplateName: Code[10]; GenJnlBatchName: Code[10]; DocumentType: Integer; DocumentNo: Code[20]; LineNo: Integer; Amount: Decimal; PostingDate: Date; Description: Text[100]; CurrencyCode: Code[10]) + BC24 (integration): Integration event raised before opening deferral schedule editor for line editing. Enables custom preprocessing or parameter modification before schedule editing.
  • OnAfterAdjustTotalAmountForDeferrals(DeferralCode: Code[10]; var AmtToDefer: Decimal; var AmtToDeferACY: Decimal; var TotalAmount: Decimal; var TotalAmountACY: Decimal; DiscountAmount: Decimal; DiscountAmountACY: Decimal) + BC24 − BC24 (integration): Integration event raised after adjusting total amounts for deferral calculations. Enables custom processing or validation after deferral amount adjustments.
  • OnBeforeCalcDeferralNoOfPeriods(CalcMethod: Enum "Deferral Calculation Method"; var NoOfPeriods: Integer; StartDate: Date; var IsHandled: Boolean) (integration): Integration event raised before calculating number of deferral periods. Enables custom period calculation logic based on calculation method and start date.
  • OnBeforeCheckPostingDate(DeferralHeader: Record "Deferral Header"; var DeferralLine: record "Deferral Line"; var IsHandled: Boolean) (integration): Integration event raised before checking posting date validity for deferral lines. Enables custom posting date validation logic for deferral schedules.
  • OnBeforeGetDeferralDescription(GenJnlBatchName: Code[10]; DocumentNo: Code[20]; Description: Text[100]; var Result: Text[100]; var IsHandled: Boolean) (integration): Integration event raised before generating deferral description text. Enables custom description logic for deferral schedule entries.
  • OnCalculateEqualPerPeriodOnBeforeDeferralLineInsert(DeferralHeader: Record "Deferral Header"; var DeferralLine: record "Deferral Line") (integration): Integration event raised before inserting deferral line during equal per period calculation. Enables custom field updates or validation before line insertion.
  • OnCalculateStraightlineOnAfterCalcSecondPeriodDate(DeferralHeader: Record "Deferral Header"; PostDate: Date; var FirstPeriodDate: Date; var SecondPeriodDate: Date) (integration): Integration event raised after calculating the second period date in straight-line deferral calculations. Enables custom period date adjustments for straight-line deferral schedules.
  • OnCalculateStraightlineOnBeforeDeferralLineInsert(var DeferralLine: Record "Deferral Line"; DeferralHeader: Record "Deferral Header") (integration): Integration event raised before inserting deferral line during straight-line calculation. Enables custom field updates or validation before line insertion.
  • OnCalculateStraightlineOnBeforeCalcPeriodicDeferralAmount(var DeferralHeader: Record "Deferral Header"; var PeriodicDeferralAmount: Decimal; AmountRoundingPrecision: Decimal; var IsHandled: Boolean) (integration): Integration event raised before calculating periodic deferral amount in straight-line method. Enables custom amount calculation logic for straight-line deferral periods.
  • OnCalculateStraightlineOnAfterCalcPeriodicDeferralAmount(var DeferralHeader: Record "Deferral Header"; var NoOfLoops: Integer) + BC28 (integration): Integration event raised after calculating periodic deferral amount in straight-line method. Enables subscribers to control the number of loops within CalculateStraightline.
  • OnCalculateDaysPerPeriodOnAfterCalcEndDate(var DeferralHeader: Record "Deferral Header"; var DeferralLine: Record "Deferral Line"; DeferralTemplate: Record "Deferral Template"; var EndDate: Date) (integration): Integration event raised after calculating end date for days per period deferral method. Enables custom end date adjustments for days-based deferral calculations.
  • OnCalculateDaysPerPeriodOnBeforeDeferralLineInsert(DeferralHeader: Record "Deferral Header"; var DeferralLine: record "Deferral Line") (integration): Integration event raised before inserting deferral line during days per period calculation. Enables custom field updates or validation before line insertion.
  • OnCalculateUserDefinedOnBeforeDeferralLineInsert(DeferralHeader: Record "Deferral Header"; var DeferralLine: record "Deferral Line") (integration): Integration event raised before inserting deferral line during user-defined calculation. Enables custom field updates or validation before line insertion.
  • OnSetDeferralRecordsOnBeforeDeferralHeaderModify(var DeferralHeader: Record "Deferral Header") (integration): Integration event raised before modifying deferral header during record setup. Enables custom field updates or validation before deferral header modification.
  • OnBeforeIsDateNotAllowed(PostingDate: Date; var Result: Boolean; var IsHandled: Boolean) (integration): Integration event raised before checking if a posting date is allowed for deferral processing. Enables custom date validation logic for deferral schedule processing.
  • OnBeforeUpdateDeferralLineDescription(var DeferralLine: Record "Deferral Line"; DeferralHeader: Record "Deferral Header"; DeferralTemplate: Record "Deferral Template"; PostDate: Date; var IsHandled: Boolean) (integration): Integration event raised before updating deferral line description during schedule creation. Enables custom description generation logic for deferral line entries.
  • OnBeforeValidateDeferralTemplate(DeferralTemplate: Record "Deferral Template"; var IsHandled: Boolean) (integration): Integration event raised before validating deferral template settings. Enables custom validation logic for deferral template configuration.
  • OnInitializeDeferralHeaderAndSetPostDateAfterInitDeferralLine(var DeferralLine: Record "Deferral Line") (integration): Integration event raised after initializing deferral line during deferral header initialization. Enables custom field updates or additional processing after deferral line setup.
  • OnAfterInitializeDeferralHeaderAndSetPostDate(var DeferralLine: Record "Deferral Line"; DeferralHeader: Record "Deferral Header"; PeriodicCount: Integer; var PostDate: Date) + BC28 (integration): Integration event raised after initializing deferral header and setting the post date. Enables custom control over the PostDate variable assignment.
  • OnOpenLineScheduleEditOnBeforeDeferralScheduleSetParameters(var DeferralSchedule: Page "Deferral Schedule"; DeferralDocType: Integer; GenJnlTemplateName: Code[10]; GenJnlBatchName: Code[10]; DocumentType: Integer; DocumentNo: Code[20]; DeferralHeader: Record "Deferral Header"; var IsHandled: Boolean) (integration): Integration event raised before setting parameters for deferral schedule page during line editing. Enables custom parameter setup or validation before opening deferral schedule editor.
  • OnBeforeCheckDeferralConditionForGenJournal(var GenJournalLine: Record "Gen. Journal Line"; var IsHandled: Boolean) + BC24 (integration): Integration event raised before checking deferral conditions for general journal lines. Enables custom deferral condition logic for journal line processing.
  • OnBeforeRemoveOrSetDeferralSchedule(DeferralCode: Code[10]; DeferralDocType: Integer; GenJnlTemplateName: Code[10]; GenJnlBatchName: Code[10]; DocumentType: Integer; DocumentNo: Code[20]; LineNo: Integer; Amount: Decimal; PostingDate: Date; Description: Text[100]; CurrencyCode: Code[10]; AdjustStartDate: Boolean; var IsHandled: Boolean) (integration): Integration event raised before removing or setting up deferral schedule for a document line. Enables custom deferral schedule management logic and validation.
  • OnBeforeRoundDeferralAmount(var DeferralHeader: Record "Deferral Header"; CurrencyCode: Code[10]; CurrencyFactor: Decimal; PostingDate: Date; var IsHandled: Boolean) + BC26 (integration)
  • OnCreateDeferralScheduleOnCalcMethodElse(CalcMethod: Enum "Deferral Calculation Method"; DeferralHeader: Record "Deferral Header"; var DeferralLine: Record "Deferral Line"; DeferralTemplate: Record "Deferral Template") + BC27 (integration)
  • OnBeforeGetPeriodStartingDate(PostingDate: Date; var Result: Date; var PeriodStartingDateHandled: Boolean) + BC28 (integration): Integration event raised before determining the period starting date. Enables custom logic for returning the period starting date based on the posting date.

Procedures

  • CreateRecurringDescription(PostingDate: Date; Description: Text[100]): Text[100]: Creates a period-specific description by substituting placeholders with actual date values. Supports day, week, month, month text, accounting period name, and year placeholders.
  • CreateDeferralSchedule(DeferralCode: Code[10]; DeferralDocType: Integer; GenJnlTemplateName: Code[10]; GenJnlBatchName: Code[10]; DocumentType: Integer; DocumentNo: Code[20]; LineNo: Integer; AmountToDefer: Decimal; CalcMethod: Enum "Deferral Calculation Method"; StartDate: Date; NoOfPeriods: Integer; ApplyDeferralPercentage: Boolean; DeferralDescription: Text[100]; AdjustStartDate: Boolean; CurrencyCode: Code[10]): Creates a complete deferral schedule based on the specified parameters and calculation method. Generates header and line records with amounts distributed according to the selected calculation method.
  • CalcDeferralNoOfPeriods(CalcMethod: Enum "Deferral Calculation Method"; NoOfPeriods: Integer; StartDate: Date): Integer: Calculates the actual number of deferral periods based on the calculation method and parameters. For user-defined methods, returns the number of existing deferral lines instead of the parameter value.
  • FilterDeferralLines(var DeferralLine: Record "Deferral Line"; DeferralDocType: Option; GenJnlTemplateName: Code[10]; GenJnlBatchName: Code[10]; DocumentType: Integer; DocumentNo: Code[20]; LineNo: Integer): Sets filters on the deferral line record to retrieve lines for a specific source document. Used throughout the deferral system to isolate deferral lines by their source document parameters.
  • IsDateNotAllowed(PostingDate: Date): Boolean: Checks if the specified posting date is allowed for deferral posting based on user and general ledger setup.
  • SetDeferralRecords(var DeferralHeader: Record "Deferral Header"; DeferralDocType: Integer; GenJnlTemplateName: Code[10]; GenJnlBatchName: Code[10]; DocumentType: Integer; DocumentNo: Code[20]; LineNo: Integer; CalcMethod: Enum "Deferral Calculation Method"; NoOfPeriods: Integer; AdjustedDeferralAmount: Decimal; AdjustedStartDate: Date; DeferralCode: Code[10]; DeferralDescription: Text[100]; AmountToDefer: Decimal; AdjustStartDate: Boolean; CurrencyCode: Code[10]): Creates or updates a deferral header record with the specified parameters. Handles both new header creation and updating existing headers with new calculation parameters.
  • RemoveOrSetDeferralSchedule(DeferralCode: Code[10]; DeferralDocType: Integer; GenJnlTemplateName: Code[10]; GenJnlBatchName: Code[10]; DocumentType: Integer; DocumentNo: Code[20]; LineNo: Integer; Amount: Decimal; PostingDate: Date; Description: Text[100]; CurrencyCode: Code[10]; AdjustStartDate: Boolean): Creates, updates, or removes a deferral schedule based on the provided deferral code and parameters. If no deferral code is provided, removes any existing schedule. If a code is provided, creates or updates the schedule.
  • CreateScheduleFromGL(GenJournalLine: Record "Gen. Journal Line"; FirstEntryNo: Integer): Creates posted deferral records from a general journal line’s deferral schedule. Transfers the deferral header and lines to posted tables and links them to the posted general ledger entry.
  • DeferralCodeOnValidate(DeferralCode: Code[10]; DeferralDocType: Integer; GenJnlTemplateName: Code[10]; GenJnlBatchName: Code[10]; DocumentType: Integer; DocumentNo: Code[20]; LineNo: Integer; Amount: Decimal; PostingDate: Date; Description: Text[100]; CurrencyCode: Code[10]): Validates and creates/updates a deferral schedule when a deferral code is entered or changed. Removes existing schedule if the code is cleared.
  • DeferralCodeOnDelete(DeferralDocType: Integer; GenJnlTemplateName: Code[10]; GenJnlBatchName: Code[10]; DocumentType: Integer; DocumentNo: Code[20]; LineNo: Integer): Removes a deferral schedule when a deferral code is deleted or cleared. Deletes the header and all associated deferral lines.
  • OpenLineScheduleEdit(DeferralCode: Code[10]; DeferralDocType: Integer; GenJnlTemplateName: Code[10]; GenJnlBatchName: Code[10]; DocumentType: Integer; DocumentNo: Code[20]; LineNo: Integer; Amount: Decimal; PostingDate: Date; Description: Text[100]; CurrencyCode: Code[10]): Boolean: Opens the deferral schedule editing page for a specific line. Creates a new schedule if one doesn’t exist, or allows editing of an existing schedule.
  • OpenLineScheduleView(DeferralCode: Code[10]; DeferralDocType: Integer; GenJnlTemplateName: Code[10]; GenJnlBatchName: Code[10]; DocumentType: Integer; DocumentNo: Code[20]; LineNo: Integer): Opens the deferral schedule view page for posted/archived deferrals in read-only mode.
  • OpenLineScheduleArchive(DeferralCode: Code[10]; DeferralDocType: Integer; DocumentType: Integer; DocumentNo: Code[20]; DocNoOccurence: Integer; VersionNo: Integer; LineNo: Integer): Opens the archived deferral schedule view page for document archive scenarios.
  • RoundDeferralAmount(var DeferralHeader: Record "Deferral Header"; CurrencyCode: Code[10]; CurrencyFactor: Decimal; PostingDate: Date; var AmtToDefer: Decimal; var AmtToDeferLCY: Decimal): Rounds deferral amounts to appropriate precision based on currency settings. Handles both LCY and foreign currency amounts with proper rounding.
  • InitializeDeferralHeaderAndSetPostDate(var DeferralLine: Record "Deferral Line"; DeferralHeader: Record "Deferral Header"; PeriodicCount: Integer; var PostDate: Date): Initializes a deferral line record with header information and sets the appropriate posting date. Handles period-based date calculations using accounting periods.
  • GetDeferralStartDate(DeferralDocType: Integer; RecordDocumentType: Integer; RecordDocumentNo: Code[20]; RecordLineNo: Integer; DeferralCode: Code[10]; PostingDate: Date): Date: Gets the start date for a deferral from existing schedule or calculates from template settings. Used to maintain consistency when adjusting existing deferrals.
  • AdjustTotalAmountForDeferrals(DeferralCode: Code[10]; var AmtToDefer: Decimal; var AmtToDeferACY: Decimal; var TotalAmount: Decimal; var TotalAmountACY: Decimal; var TotalVATBase: Decimal; var TotalVATBaseACY: Decimal) + BC24: Adjusts total amounts for deferral posting by subtracting deferred amounts from totals. Handles both LCY and ACY amounts with VAT base calculations.
  • AdjustTotalAmountForDeferrals(DeferralCode: Code[10]; var AmtToDefer: Decimal; var AmtToDeferACY: Decimal; var TotalAmount: Decimal; var TotalAmountACY: Decimal; var TotalVATBase: Decimal; var TotalVATBaseACY: Decimal; DiscountAmount: Decimal; DiscountAmountACY: Decimal) + BC24: Adjusts total amounts for deferral posting including discount handling. Extended version with discount amount parameters.
  • AdjustTotalAmountForDeferralsNoBase(DeferralCode: Code[10]; var AmtToDefer: Decimal; var AmtToDeferACY: Decimal; var TotalAmount: Decimal; var TotalAmountACY: Decimal) + BC24: Adjusts total amounts for deferral posting without VAT base calculations. Simplified version for scenarios where VAT base is not required.
  • AdjustTotalAmountForDeferralsNoBase(DeferralCode: Code[10]; var AmtToDefer: Decimal; var AmtToDeferACY: Decimal; var TotalAmount: Decimal; var TotalAmountACY: Decimal; DiscountAmount: Decimal; DiscountAmountACY: Decimal) + BC24: Adjusts total amounts for deferral posting without VAT base calculations, including discount handling. Extended version with discount amount parameters.
  • CheckDeferralConditionForGenJournal(var GenJournalLine: Record "Gen. Journal Line") + BC24: Validates general journal line conditions for deferral usage. Ensures source codes are properly configured for deferral processing.
  • ShowGenJournalTemplate(ErrorInfo: ErrorInfo) + BC24: Opens the General Journal Templates page filtered to the template from the error context. Action method for error handling in deferral validation.
  • ShowSourceCodeSetup(ErrorInfo: ErrorInfo) + BC24: Opens the Source Code Setup page for configuring source codes. Action method for error handling in deferral validation.
  • CreateCopyOfDeferralSchedule(DeferralHeader: Record "Deferral Header"; NewSourceLineNo: Integer) + BC25: Creates a copy of an existing deferral schedule for a new source line. Used when copying document lines to maintain consistent deferral schedules.

Plus 19 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.

Called by

Recent changes

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: "Deferral Utilities"), then bcatlas_get_procedure_body or bcatlas_get_neighbors on the returned id.

Evidence 1 sources