---
id: object/codeunit/5601
type: object
title: Codeunit 5601 "FA Insert G/L Account"
summary: Codeunit 5601 "FA Insert G/L Account" in Base Application (Microsoft.FixedAssets.Ledger). 14 public procedures, 43 events. Present since at least BC23, still in BC30, changed in BC25, BC28.
tier: official
language: en
tags:
  - codeunit
  - base application
versions:
  introduced: null
  last_changed: "28"
  deprecated: null
review:
  state: derived
  by: null
  at: null
  flags: []
generated:
  at: "2026-10-11T00:31:51.816Z"
  pipeline: 0.2.0
  prompts: {}
  input_hash: 5c1673bdfc377fdc712e1c5046527d7887ecd6981e21afc1659c9e7bd15c7c35
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/FixedAssets/FixedAsset/FAInsertGLAccount.Codeunit.al
    title: src/Layers/W1/BaseApp/FixedAssets/FixedAsset/FAInsertGLAccount.Codeunit.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn: []
  objects: []
  features: []
  topics: []
  localizations:
    - localization/fr
    - localization/ru
  videos: []
  posts: []
  guidelines: []
object_type: codeunit
object_id: 5601
name: FA Insert G/L Account
namespace: Microsoft.FixedAssets.Ledger
app: Base Application
extends: null
first_version: "23"
last_version: "30"
present_in:
  - "23"
  - "24"
  - "25"
  - "26"
  - "27"
  - "28"
  - "29"
  - "30"
changed_in:
  - "25"
  - "28"
source_major: "29"
obsolete: null
countries:
  - fr
  - ru
ms_search_form_ids: []
counts:
  fields: 0
  procedures: 71
  events: 43
  subscribers: 0
relations:
  out: 1
  referenced_by: 0
  pages: 0
  extended_by: 0
  event_subscribers: 0
  calls: 3
  called_by: 9
  implements: 0
---

# Codeunit 5601 "FA Insert G/L Account"

> Codeunit 5601 "FA Insert G/L Account" in Base Application (Microsoft.FixedAssets.Ledger). 14 public procedures, 43 events. Present since at least BC23, still in BC30, changed in BC25, BC28.

Base Application · Microsoft.FixedAssets.Ledger · BC23-30 · [source at ea08af5e](https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/FixedAssets/FixedAsset/FAInsertGLAccount.Codeunit.al) · facts from BC29

## Properties

| Property | Value |
|---|---|
| TableNo | FA Ledger Entry |

## Events published

- `OnAfterCopyFAGLPostBufFromFALederEntry(var FAGLPostingBuffer: Record "FA G/L Posting Buffer"; FALedgerEntry: Record "FA Ledger Entry")` (integration)
- `OnAfterCorrectBookValueEntry(var FAGLPostingBuffer: Record "FA G/L Posting Buffer")` (integration)
- `OnAfterCalcDisposalAmount(var FAPostingGroup: Record "FA Posting Group")` (integration)
- `OnAfterGetGLAccNoFromFAPostingGroup(FAPostingGroup: Record "FA Posting Group"; FAPostingType: Enum "FA Posting Group Account Type"; var GLAccNo: Code[20])` (integration)
- `OnAfterInsertBalAcc(var FALedgerEntry: Record "FA Ledger Entry")` (integration)
- `OnAfterRun(var FALedgerEntry: Record "FA Ledger Entry"; var TempFAGLPostingBuffer: Record "FA G/L Posting Buffer" temporary; var NumberOfEntries: Integer; var OrgGenJnlLine: Boolean; var NetDisp: Boolean; var FAGLPostingBuffer: Record "FA G/L Posting Buffer"; var DisposalEntry: Boolean; var BookValueEntry: Boolean; var NextEntryNo: Integer; var GLEntryNo: Integer; var DisposalEntryNo: Integer; var DisposalAmount: Decimal; var GainLossAmount: Decimal; var FAPostingGroup2: Record "FA Posting Group")` (integration)
- `OnAfterSetCombinedDimensionSetID(var FAGLPostBuf: Record "FA G/L Posting Buffer"; FAAlloc: Record "FA Allocation"; DimensionSetIDArr: array[10] of Integer)` (integration)
- `OnAfterSetDefaultDimID(var FAGLPostBuf: Record "FA G/L Posting Buffer"; GLAccNo: Code[20]; DimSetID: Integer)` (integration)
- `OnBeforeCheckAccountType(var GenJnlLine: Record "Gen. Journal Line"; var IsHandled: Boolean)` (integration)
- `OnBeforeFillAllocationBuffer(var TempFAGLPostingBuffer: Record "FA G/L Posting Buffer" temporary; var NextEntryNo: Integer; var GLEntryNo: Integer; var NumberOfEntries: Integer; var OrgGenJnlLine: Boolean; var NetDisp: Boolean; GLAccNo: Code[20]; FAPostingType: Option Acquisition,Depr,WriteDown,Appr,Custom1,Custom2,Disposal,Maintenance,Gain,Loss,"Book Value Gain","Book Value Loss"; AllocAmount: Decimal; DeprBookCode: Code[10]; PostingGrCode: Code[20]; GlobalDim1Code: Code[20]; GlobalDim2Code: Code[20]; DimSetID: Integer; AutomaticEntry: Boolean; Correction: Boolean; var IsHandled: Boolean)` (integration)
- `OnBeforeGetBalAccLocal(var GenJournalLine: Record "Gen. Journal Line")` (integration)
- `OnBeforeInsertBalAcc(var FALedgerEntry: Record "FA Ledger Entry")` (integration)
- `OnInsertMaintenanceAccNoOnBeforeInsertBufferEntry(var FAGLPostBuf: Record "FA G/L Posting Buffer"; var MaintenanceLedgEntry: Record "Maintenance Ledger Entry")` (integration)
- `OnInsertBufferBalAccOnAfterFAAllocSetFilters(var FAAllocation: Record "FA Allocation")` (integration)
- `OnBeforeTempFAGLPostBufModify(var FAPostingGroup: Record "FA Posting Group"; var TempFAGLPostingBuffer: Record "FA G/L Posting Buffer" temporary; GLAmount: Decimal)` (integration)
- `OnCorrectBookValueEntryOnBeforeInsertBufferBalAcc(var FAGLPostBuf: Record "FA G/L Posting Buffer")` (integration)
- `OnGetBalAccAfterSaveGenJnlLineFields(var ToGenJnlLine: Record "Gen. Journal Line"; FromGenJnlLine: Record "Gen. Journal Line"; var SkipInsert: Boolean)` (integration)
- `OnGetBalAccAfterRestoreGenJnlLineFields(var ToGenJnlLine: Record "Gen. Journal Line"; FromGenJnlLine: Record "Gen. Journal Line"; var TempFAGLPostBuf: Record "FA G/L Posting Buffer")` (integration)
- `OnGetBalAccLocalOnAfterInsertGenJnlLine(var GenJnlLine: Record "Gen. Journal Line"; var TempFAGLPostBuf: Record "FA G/L Posting Buffer")` (integration)
- `OnInsertBufferBalAccOnAfterAssignFromFAAllocAcc(FAAllocation: Record "FA Allocation"; var FAGLPostBuf: Record "FA G/L Posting Buffer")` (integration)
- `OnInsertBufferBalAccOnAfterAssignFromFAPostingGrAcc(FAAllocation: Record "FA Allocation"; var FAGLPostBuf: Record "FA G/L Posting Buffer"; FAPostingType: Enum "FA Posting Group Account Type"; AllocAmount: Decimal)` (integration)
- `OnInsertBufferBalAccOnAfterGetFAPostingGroup(var FAPostingGr: Record "FA Posting Group")` (integration)
- `OnInsertBufferEntryOnBeforeBufferInsert(var TempFAGLPostBuf: Record "FA G/L Posting Buffer" temporary; FAGLPostBuf: Record "FA G/L Posting Buffer")` (integration)
- `OnBeforeFAInsertGLAccount(var FALedgerEntry: Record "FA Ledger Entry"; var TempFAGLPostBuf: Record "FA G/L Posting Buffer" temporary; var FAGLPostBuf: Record "FA G/L Posting Buffer"; var DisposalEntry: Boolean; var BookValueEntry: Boolean; var NextEntryNo: Integer; var GLEntryNo: Integer; var OrgGenJnlLine: Boolean; var NetDisp: Boolean; var NumberOfEntries: Integer; var DisposalEntryNo: Integer; var DisposalAmount: Decimal; var GainLossAmount: Decimal; var FAPostingGr2: Record "FA Posting Group"; var IsHandled: Boolean)` (integration)
- `OnAfterInsertMaintenanceAccNo(var MaintenanceLedgEntry: Record "Maintenance Ledger Entry"; var FAGLPostBuf: Record "FA G/L Posting Buffer")` (integration)
- `OnBeforeCalculateNoOfEmptyLines(var GenJnlLine: Record "Gen. Journal Line"; var TempFAGLPostingBuffer: Record "FA G/L Posting Buffer" temporary; var NextLineNo: Integer; var NoOfEmptyLines: Integer; var NoOfEmptyLines2: Integer; var NumberOfEntries: Integer; var IsHandled: Boolean)` (integration)
- `OnInsertBufferBalAccOnAfterInsertBufferEntryFromFAAllocAcc(FAAllocation: Record "FA Allocation"; var TempFAGLPostBuf: Record "FA G/L Posting Buffer" temporary; FAPostingType: Enum "FA Posting Group Account Type"; DeprBookCode: Code[10]; PostingGrCode: Code[20]; NewAmount: Decimal; AutomaticEntry: Boolean; Correction: Boolean; var NumberOfEntries: Integer; OrgGenJnlLine: Boolean; NetDisp: Boolean)` (integration)
- `OnInsertBufferBalAccOnAfterInsertBufferEntryFromFAPostingGrAcc(FAAllocation: Record "FA Allocation"; var TempFAGLPostBuf: Record "FA G/L Posting Buffer" temporary; FAPostingType: Enum "FA Posting Group Account Type"; DeprBookCode: Code[10]; PostingGrCode: Code[20]; AllocAmount: Decimal; TotalAllocAmount: Decimal; GLAccNo: Code[20]; GlobalDim1Code: Code[20]; GlobalDim2Code: Code[20]; DimSetID: Integer; AutomaticEntry: Boolean; Correction: Boolean; var NumberOfEntries: Integer; OrgGenJnlLine: Boolean; NetDisp: Boolean)` (integration)
- `OnBeforeFindFirstGLAcc(var TempFAGLPostingBuffer: Record "FA G/L Posting Buffer" temporary)` (integration)
- `OnBeforeGetGLAccNoFromFAPostingGroup(FAPostingGroup: Record "FA Posting Group"; FAPostingGroupAccountType: Enum "FA Posting Group Account Type"; var GLAccNo: Code[20]; var IsHandled: Boolean)` (integration)
- `OnBeforeGetPostingType(FALedgerEntry: Record "FA Ledger Entry"; var FAPostingGroupAccountType: Enum "FA Posting Group Account Type"; var IsHandled: Boolean)` (integration)
- `OnAfterInsertBufferBalAcc(FAGLPostingBuffer: Record "FA G/L Posting Buffer"; var TempFAGLPostingBuffer: Record "FA G/L Posting Buffer" temporary; GLEntryNo: Integer; var NextEntryNo: Integer; var NumberOfEntries: Integer; OrgGenJnlLine: Boolean; NetDisp: Boolean; FAPostingType: Enum "FA Posting Group Account Type")` (integration)
- `OnCorrectDisposalEntryNonPositiveGainLossOnBeforeSetAccountGain(FADepreciationBook: Record "FA Depreciation Book"; FAPostingGroup: Record "FA Posting Group"; var FAGLPostingBuffer: Record "FA G/L Posting Buffer"; var IsHandled: Boolean)` (integration)
- `OnCorrectDisposalEntryPositiveGainLossOnBeforeSetAccountGain(FADepreciationBook: Record "FA Depreciation Book"; FAPostingGroup: Record "FA Posting Group"; var FAGLPostingBuffer: Record "FA G/L Posting Buffer"; var IsHandled: Boolean)` (integration)
- `OnCorrectDisposalEntryOnAfterCheckIdenticalAccountGainLoss(FADepreciationBook: Record "FA Depreciation Book"; FAPostingGroup: Record "FA Posting Group"; var IsHandled: Boolean)` (integration)
- `OnCorrectDisposalEntryNonPositiveGainLossOnBeforeSetAccountLoss(FADepreciationBook: Record "FA Depreciation Book"; FAPostingGroup: Record "FA Posting Group"; var FAGLPostingBuffer: Record "FA G/L Posting Buffer"; var IsHandled: Boolean)` (integration)
- `OnCorrectDisposalEntryPositiveGainLossOnBeforeSetAccountLoss(FADepreciationBook: Record "FA Depreciation Book"; FAPostingGroup: Record "FA Posting Group"; var FAGLPostingBuffer: Record "FA G/L Posting Buffer"; var IsHandled: Boolean)` (integration)
- `OnCorrectDisposalEntryOnBeforeSetGainLossAccount(FADepreciationBook: Record "FA Depreciation Book"; FAPostingGroup: Record "FA Posting Group"; var TempFAGLPostingBuffer: Record "FA G/L Posting Buffer"; GLAmount: Decimal; var IsHandled: Boolean)` (integration)
- `OnCorrectBookValueEntryOnAfterSetFilterFALedgEntry(var FALedgerEntry: Record "FA Ledger Entry")` (integration)
- `OnCalcLastDisposalOnAfterSetFilter(var FALedgerEntry: Record "FA Ledger Entry")` (integration)
- `OnCorrectBookValueEntryOnAfterCheckIdenticalGainLossAmtSign(FADepreciationBook: Record "FA Depreciation Book"; FAPostingGroup: Record "FA Posting Group"; var IsHandled: Boolean)` (integration)
- `OnCalcDisposalAmountOnAfterCalcFields(var FADepreciationBook: Record "FA Depreciation Book")` (integration)
- `OnCorrectDisposalEntryOnAfterCalcGainLoss(var FADepreciationBook: Record "FA Depreciation Book")` (integration)

## Procedures

- `InsertMaintenanceAccNo(var MaintenanceLedgEntry: Record "Maintenance Ledger Entry")`
- `InsertBufferBalAcc(FAPostingType: Enum "FA Posting Group Account Type"; AllocAmount: Decimal; DeprBookCode: Code[10]; PostingGrCode: Code[20]; GlobalDim1Code: Code[20]; GlobalDim2Code: Code[20]; DimSetID: Integer; AutomaticEntry: Boolean; Correction: Boolean)`
- `InsertBalAcc(var FALedgEntry: Record "FA Ledger Entry")`
- `GetPostingType(var FALedgEntry: Record "FA Ledger Entry"): Enum "FA Posting Group Account Type"`
- `GetBalAccBuffer(var GenJnlLine: Record "Gen. Journal Line"): Integer`
- `GetBalAcc(GenJnlLine: Record "Gen. Journal Line"): Integer`
- `GetBalAcc(var GenJnlLine: Record "Gen. Journal Line"; var NextLineNo2: Integer)`
- `GetBalAccWithBalAccountInfo(GenJnlLine: Record "Gen. Journal Line"; BalAccountType: Option; BalAccountNo: Code[20])`
- `FindFirstGLAcc(var FAGLPostBuf: Record "FA G/L Posting Buffer"): Boolean`
- `GetNextGLAcc(var FAGLPostBuf: Record "FA G/L Posting Buffer"): Integer`
- `DeleteAllGLAcc()`
- `SetOrgGenJnlLine(OrgGenJnlLine2: Boolean)`
- `CorrectEntries()`
- `SetNetDisposal(NetDisp2: Boolean)`

Plus 14 local procedures.

## Triggers

OnRun

## Relations

- runs on [Table 5601 "FA Ledger Entry"](../table/5601.md)

## 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 408 "DimensionManagement"](../codeunit/408.md) (3 calls: `SetCombinedDimensionSetID → GetCombinedDimensionSetID`, `SetDefaultDimID → AddDimSource`, `SetDefaultDimID → GetDefaultDimID`)
- [Codeunit 5616 "Depreciation Calculation"](../codeunit/5616.md) (3 calls: `CalcLastDisposal → SetFAFilter`, `CorrectBookValueEntry → SetFAFilter`, `InsertBufferBalAcc → CalcRounding`)
- [Codeunit 5602 "FA Get G/L Account No."](../codeunit/5602.md) (2 calls: `InsertMaintenanceAccNo → GetMaintenanceAccNo`, `OnRun → GetAccNo`)

## Called by

- [Codeunit 5600 "FA Insert Ledger Entry"](../codeunit/5600.md) (10 calls: `CorrectEntries → CorrectEntries`, `DeleteAllGLAcc → DeleteAllGLAcc`, `FindFirstGLAcc → FindFirstGLAcc`, …)
- [Codeunit 5615 "Budget Depreciation"](../codeunit/5615.md) (5 calls: `CopyFAToBudget → (object)`, `CopyFAToBudget → DeleteAllGLAcc`, `CopyFAToBudget → FindFirstGLAcc`, …)
- [Codeunit 5603 "FA Get Balance Account"](../codeunit/5603.md) (2 calls: `InsertAcc → GetBalAcc`, `InsertAccWithBalAccountInfo → GetBalAccWithBalAccountInfo`)
- [Codeunit 5624 "Cancel FA Ledger Entries"](../codeunit/5624.md) (1 call: `InsertGenJnlLine → GetBalAcc`)
- [Codeunit 5642 "FA Reclass. Transfer Line"](../codeunit/5642.md) (1 call: `InsertGenJnlLine → GetBalAcc`)
- [Report 5687 "Copy Depreciation Book"](../report/5687.md) (1 call: `InsertGenJnlLine → GetBalAcc`)
- [Report 5688 "Cancel FA Ledger Entries"](../report/5688.md) (1 call: `InsertGenJnlLine → GetBalAcc`)
- [Report 5690 "Index Fixed Assets"](../report/5690.md) (1 call: `InsertGenJnlLine → GetBalAcc`)
- [Report 5692 "Calculate Depreciation"](../report/5692.md) (1 call: `InsertBonusDepreciationGenJnlLine → GetBalAcc`)

## Across versions

- Present in: BC23-30
- Changed (declaration) in: BC25, BC28

## Countries that replace it

[FR](../../localizations/fr.md), [RU](../../localizations/ru.md)

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: "FA Insert G/L Account")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
