Codeunit 5987 "Serv-Posting Journals Mgt."
Base Application · Microsoft.Service.Posting
Across versions
- BC23present
- BC241 procedures added
- BC25unchanged
- BC265 procedures removed, 1 procedures changed
- BC277 events removed
- BC281 procedures added, 1 events added
- BC291 procedures added, 1 procedures removed
- BC30unchanged
Neighbourhood 11 connected objects and pages
Base Application · Microsoft.Service.Posting · BC23-30 · source at ea08af5e · facts from BC29
Events published
OnAfterTransferValuesToJobJnlLine(var JobJournalLine: Record "Job Journal Line"; ServiceLine: Record "Service Line")(integration)- subscribers: Codeunit 6285 “Sust. Service Subscriber” OnAfterTransferValuesToJobJnlLine
OnBeforePostItemJnlLine(var ItemJournalLine: Record "Item Journal Line"; ServiceShipmentHeader: Record "Service Shipment Header"; ServiceLine: Record "Service Line"; GenJnlLineDocNo: Code[20]; QtyToBeShipped: Decimal; QtyToBeShippedBase: Decimal; QtyToBeInvoiced: Decimal; QtyToBeInvoicedBase: Decimal)(integration)- subscribers: Codeunit 6285 “Sust. Service Subscriber” OnBeforePostItemJnlLine
OnBeforePostJobJnlLine(var ServiceHeader: Record "Service Header"; var ServiceLine: Record "Service Line"; QtyToBeConsumed: Decimal; var Result: Boolean; var IsHandled: Boolean)(integration)OnBeforeResJnlPostLine(var ResJnlLine: Record "Res. Journal Line"; ServiceHeader: Record "Service Header"; ServiceLine: Record "Service Line")(integration)- subscribers: Codeunit 6285 “Sust. Service Subscriber” OnBeforeResJnlPostLine
OnPostItemJnlLineOnBeforeCreateWhseJnlLine(var ItemJournalLine: Record "Item Journal Line"; ServiceHeader: Record "Service Header"; var ShouldCreateWhseJnlLine: Boolean; ServiceShipmentHeader: Record "Service Shipment Header"; var ServiceLine: Record "Service Line"; var TempWarehouseJournalLine: Record "Warehouse Journal Line" temporary; var WhsePosting: Boolean; var CheckApplFromItemEntry: Boolean)+ BC26 − BC26 (integration)OnPostJobJnlLineOnBeforeCalcCurrencyFactor(ServLine: Record "Service Line"; var CurrExchRate: Record "Currency Exchange Rate")(integration)OnPostJobJnlLineOnBeforeValidateNo(var JobJournalLine: Record "Job Journal Line"; ServiceLine: Record "Service Line")(integration)OnPostResJnlLineOnAfterResJnlLineInit(var ResJnlLine: Record "Res. Journal Line"; EntryType: Enum "Res. Journal Line Entry Type"; Qty: Decimal)(integration)OnAfterPostItemJnlLine(ServiceHeader: Record "Service Header"; var ItemJournalLine: Record "Item Journal Line"; var TempHandlingTrackingSpecification: Record "Tracking Specification")(integration)OnAfterPostResJnlLine(ServiceHeader: Record "Service Header"; var ResJournalLine: Record "Res. Journal Line")(integration)OnBeforePostResJnlLineShip(var ServiceLine: Record "Service Line"; DocNo: Code[20]; ExtDocNo: Code[35]; var IsHandled: Boolean)(integration)OnBeforePostResJnlLineConsume(var ServiceLine: Record "Service Line"; var ServiceShipmentHeader: Record "Service Shipment Header"; var IsHandled: Boolean)(integration)OnPostSalesTaxLines(var ServHeader: Record "Service Header"; var TotalServiceLineLCY: Record "Service Line"; InvoicePostingParameters: Record "Invoice Posting Parameters"; var GenJnlPostLine: Codeunit "Gen. Jnl.-Post Line"; Invoice: Boolean)+ BC28 (internal)
Event subscriptions
- SkipSalesExtDocNoCheckForService subscribes to Codeunit “Gen. Jnl.-Post Line” OnBeforeCheckSalesExtDocNo
Procedures
Initialize(var TempServHeader: Record "Service Header"; TmpConsume: Boolean; TmpInvoice: Boolean)Finalize()SetPostingOptions(PassedConsume: Boolean; PassedInvoice: Boolean)SetItemJnlRollRndg(PassedItemJnlRollRndg: Boolean)SetGenJnlLineDocNos(DocNo: Code[20]; ExtDocNo: Code[35])PostItemJnlLine(var ServiceLine: Record "Service Line"; QtyToBeShipped: Decimal; QtyToBeShippedBase: Decimal; QtyToBeConsumed: Decimal; QtyToBeConsumedBase: Decimal; QtyToBeInvoiced: Decimal; QtyToBeInvoicedBase: Decimal; ItemLedgShptEntryNo: Integer; var TrackingSpecification: Record "Tracking Specification"; var TempTrackingSpecificationInv: Record "Tracking Specification"; var TempHandlingSpecification: Record "Tracking Specification"; var TempTrackingSpecification: Record "Tracking Specification" temporary; var ServShptHeader: Record "Service Shipment Header"; ServShptLineDocNo: Code[20]): IntegerPostLines(ServiceHeader: Record "Service Header"; var InvoicePostingInterface: Interface "Invoice Posting"; var Window: Dialog; var TotalAmount: Decimal)PostSalesTaxLines(var ServHeader: Record "Service Header"; var TotalServiceLineLCY: Record "Service Line"; InvoicePostingParameters: Record "Invoice Posting Parameters")+ BC28PostLedgerEntry(ServiceHeader: Record "Service Header"; var InvoicePostingInterface: Interface "Invoice Posting")PostBalancingEntry(ServiceHeader: Record "Service Header"; var InvoicePostingInterface: Interface "Invoice Posting")− BC26PostResJnlLineShip(var ServiceLine: Record "Service Line"; DocNo: Code[20]; ExtDocNo: Code[35])PostResJnlLineUndoUsage(var ServiceLine: Record "Service Line"; DocNo: Code[20]; ExtDocNo: Code[35])PostResJnlLineSale(var ServiceLine: Record "Service Line"; DocNo: Code[20]; ExtDocNo: Code[35])PostResJnlLineConsume(var ServiceLine: Record "Service Line"; var ServShptHeader: Record "Service Shipment Header")InitServiceRegister(var NextServLedgerEntryNo: Integer; var NextWarrantyLedgerEntryNo: Integer)FinishServiceRegister(var nextServEntryNo: Integer; var nextWarrantyEntryNo: Integer)InsertServLedgerEntry(var NextEntryNo: Integer; var ServiceHeader: Record "Service Header"; var ServiceLine: Record "Service Line"; var ServItemLine: Record "Service Item Line"; Qty: Decimal; DocNo: Code[20]): IntegerInsertServLedgerEntrySale(var passedNextEntryNo: Integer; var ServHeader: Record "Service Header"; var ServLine: Record "Service Line"; var ServItemLine: Record "Service Item Line"; Qty: Decimal; QtyToCharge: Decimal; GenJnlLineDocNo: Code[20]; DocLineNo: Integer)CreateCreditEntry(var passedNextEntryNo: Integer; var ServHeader: Record "Service Header"; var ServLine: Record "Service Line"; GenJnlLineDocNo: Code[20])InsertWarrantyLedgerEntry(var NextWarrantyEntryNo: Integer; var ServiceHeader: Record "Service Header"; var ServiceLine: Record "Service Line"; var ServItemLine: Record "Service Item Line"; Qty: Decimal; GenJnlLineDocNo: Code[20]): IntegerCalcSLEDivideAmount(Qty: Decimal; var passedServHeader: Record "Service Header"; var passedTempServLine: Record "Service Line"; var passedVATAmountLine: Record "VAT Amount Line")TestSrvCostDirectPost(ServLineNo: Code[20])TestGLAccDirectPost(ServLineNo: Code[20])CollectValueEntryRelation(var PassedValueEntryRelation: Record "Value Entry Relation"; RowId: Text[100])PostJobJnlLine(var ServHeader: Record "Service Header"; ServLine: Record "Service Line"; QtyToBeConsumed: Decimal): Boolean
Plus 6 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 5912 “ServLedgEntries-Post” (7 calls:
CalcSLEDivideAmount → CalcDivideAmount,CreateCreditEntry → CreateCreditEntry,FinishServiceRegister → FinishServiceRegister, …) - Codeunit 5985 “Serv-Item Tracking Rsrv. Mgt.” (4 calls:
PostItemJnlLine → InsertTempHandlngSpecification,PostItemJnlLine → TransferReservToItemJnlLine,PostItemJnlLine → TransServLineToItemJnlLine, …) - Codeunit 6451 “Serv. Time Sheet Mgt.” (4 calls:
PostResJnlLineConsume → CheckServiceLine,PostResJnlLineConsume → CreateTSLineFromServiceLine,PostResJnlLineShip → CheckServiceLine, …) - Codeunit 22 “Item Jnl.-Post Line” (3 calls:
PostItemJnlLine → CollectTrackingSpecification,PostItemJnlLine → CollectValueEntryRelation,PostItemJnlLine → RunWithCheck) - Codeunit 7302 “WMS Management” (2 calls:
CreateWhseJnlLine → CheckAdjmtBin,CreateWhseJnlLine → CreateWhseJnlLine) - Codeunit 1012 “Job Jnl.-Post Line” (1 call:
PostJobJnlLine → RunWithCheck) - Codeunit 212 “Res. Jnl.-Post Line” (1 call:
PostResJnlLine → RunWithCheck) - Codeunit 5775 “Whse. Management” (1 call:
CreateWhseJnlLine → GetWhseJnlSourceDocument) - Codeunit 7301 “Whse. Jnl.-Register Line” (1 call:
PostWhseJnlLines → RegisterWhseJnlLine)
Called by
- Codeunit 5988 “Serv-Documents Mgt.” (29 calls:
CollectValueEntryRelation → CollectValueEntryRelation,Finalize → Finalize,Initialize → Initialize, …)
Recent changes
- 2026-09-25 #11798 [main] Bug 650733 External Doc No. now mandatory on Service Invoice (main, BC30, fix)
Countries that replace it
Source: AL metadata extracted from the code (names, ids, signatures, properties); no code bodies (D10).
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: "Serv-Posting Journals Mgt."), then bcatlas_get_procedure_body or bcatlas_get_neighbors on the returned id.