---
id: object/table/339
type: object
title: Table 339 "Item Application Entry"
summary: Table 339 "Item Application Entry" in Base Application (Microsoft.Inventory.Ledger). 19 fields, 30 public procedures, 7 events. Present since at least BC23, still in BC30, changed in BC24-28, BC30.
tier: official
language: en
tags:
  - table
  - base application
versions:
  introduced: null
  last_changed: "30"
  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: 2d7c7a71d18cef0342d2f1fe8609bf57414f17adb04628f1b2ba2102fe35a24b
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Layers/W1/BaseApp/Inventory/Ledger/ItemApplicationEntry.Table.al
    title: src/Layers/W1/BaseApp/Inventory/Ledger/ItemApplicationEntry.Table.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn:
    - https://learn.microsoft.com/dynamics365/business-central/finance-how-to-remove-and-reapply-item-entries
  objects: []
  features: []
  topics:
    - topic/business-central/business-functionality/finance/manage-inventory-costs
  localizations:
    - localization/ru
  videos: []
  posts: []
  guidelines: []
  changes:
    - change/bcapps/12066
object_type: table
object_id: 339
name: Item Application Entry
namespace: Microsoft.Inventory.Ledger
app: Base Application
extends: null
first_version: "23"
last_version: "30"
present_in:
  - "23"
  - "24"
  - "25"
  - "26"
  - "27"
  - "28"
  - "29"
  - "30"
changed_in:
  - "24"
  - "25"
  - "26"
  - "27"
  - "28"
  - "30"
source_major: "29"
obsolete: null
countries:
  - ru
ms_search_form_ids: []
counts:
  fields: 19
  procedures: 58
  events: 7
  subscribers: 0
relations:
  out: 11
  referenced_by: 2
  pages: 1
  extended_by: 0
  event_subscribers: 0
  calls: 3
  called_by: 0
  implements: 0
---

# Table 339 "Item Application Entry"

> Table 339 "Item Application Entry" in Base Application (Microsoft.Inventory.Ledger). 19 fields, 30 public procedures, 7 events. Present since at least BC23, still in BC30, changed in BC24-28, BC30.

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

Learn documents this table through its pages: [Page 506 "Item Application Entries"](../page/506.md) (1 Learn page).

## Properties

| Property | Value |
|---|---|
| Caption | Item Application Entry |
| DataClassification | CustomerContent |
| Permissions | TableData "Item Application Entry" = rim, TableData "Item Application Entry History" = ri |

## Fields

Explanation: the field's ToolTip in the code; without one, the ToolTip of a page control bound to the field (marked via the page); without that, its Caption (marked caption) when that differs from the name.

| No. | Name | Type | Explanation | Notes |
|---|---|---|---|---|
| 1 | Entry No. | Integer | Specifies the number of the entry, as assigned from the specified number series when the entry was created. |  |
| 2 | Item Ledger Entry No. | Integer | Specifies one or more item application entries for each inventory transaction that is posted. | TableRelation [Table 32 "Item Ledger Entry"](../table/32.md) (Item Ledger Entry) |
| 3 | Inbound Item Entry No. | Integer | Specifies the number of the item ledger entry corresponding to the inventory increase or positive quantity in inventory. | TableRelation [Table 32 "Item Ledger Entry"](../table/32.md) (Item Ledger Entry) |
| 4 | Outbound Item Entry No. | Integer | Specifies the number of the item ledger entry corresponding to the inventory decrease for this entry. | TableRelation [Table 32 "Item Ledger Entry"](../table/32.md) (Item Ledger Entry) |
| 11 | Quantity | Decimal | Specifies the quantity of the item that is being applied from the inventory decrease in the Outbound Item Entry No. field, to the inventory increase in the Inbound Item Entry No. field. |  |
| 20 | Item Register No. | Integer | — | TableRelation [Table 46 "Item Register"](../table/46.md) (Item Register); not editable |
| 21 | Posting Date | Date | Specifies the posting date that corresponds to the posting date of the item ledger entry, for which this item application entry was created. |  |
| 23 | Transferred-from Entry No. | Integer | Specifies the item ledger entry number of the original inventory increase of the item if the item application entry originates from a transfer. | TableRelation [Table 32 "Item Ledger Entry"](../table/32.md) (Item Ledger Entry) |
| 25 | Creation Date | DateTime | — |  |
| 26 | Created By User | Code[50] | — | TableRelation User."User Name"; DataClassification EndUserIdentifiableInformation |
| 27 | Last Modified Date | DateTime | — |  |
| 28 | Last Modified By User | Code[50] | — | TableRelation User."User Name"; DataClassification EndUserIdentifiableInformation |
| 101 | Item No. | Code[20] | Specifies the item number | FlowField: lookup("Item Ledger Entry"."Item No." where("Entry No." = field("Item Ledger Entry No."))); not editable |
| 102 | Location Code | Code[10] | Specifies the location code | FlowField: lookup("Item Ledger Entry"."Location Code" where("Entry No." = field("Item Ledger Entry No."))); not editable |
| 103 | Variant Code | Code[10] | Specifies the variant code of the item. | FlowField: lookup("Item Ledger Entry"."Variant Code" where("Entry No." = field("Item Ledger Entry No."))); not editable |
| 111 | Latest Valuation Date | Date | Specifies the latest valuation date of the item ledger entry. | FlowField: max("Value Entry"."Valuation Date" where("Item Ledger Entry No." = field("Item Ledger Entry No."))); not editable |
| 5800 | Cost Application | Boolean | Specifies that the application entry should have the cost forwarded or simply included in an average cost calculation. |  |
| 5804 | Output Completely Invd. Date | Date | — |  |
| 5805 | Outbound Entry is Updated | Boolean | Specifies that the cost of the related outbound item entry is already updated. If the field is selected, then the cost adjustment routine will not try to update any previous related outbound entries. |  |

## Keys

- Key1: Entry No. (clustered)
- Key2: Posting Date, Inbound Item Entry No., Item Ledger Entry No., Outbound Item Entry No., Cost Application
- Key3: Outbound Item Entry No., Item Ledger Entry No., Cost Application, Transferred-from Entry No.
- Key4: Transferred-from Entry No., Cost Application
- Key5: Inbound Item Entry No., Outbound Item Entry No., Cost Application
- Key6: Item Ledger Entry No., Output Completely Invd. Date
- Key9: Inbound Item Entry No., Transferred-from Entry No., Item Ledger Entry No.
- Key10: Inbound Item Entry No., Item Ledger Entry No., Outbound Item Entry No., Cost Application

## Events published

- `OnBeforeFixed(ItemApplicationEntry: Record "Item Application Entry"; var Result: Boolean; var IsHandled: Boolean)` (integration)
- `OnSetInboundToUpdatedOnAfterSetFilters(var ItemApplicationEntry: Record "Item Application Entry")` (integration)
- `OnBeforeCheckCyclicProdCyclicalLoop(var ItemApplicationEntry: Record "Item Application Entry"; CheckItemLedgerEntry: Record "Item Ledger Entry"; ItemLedgerEntry: Record "Item Ledger Entry"; var Result: Boolean; var IsHandled: Boolean)` (integration)
- `OnBeforeCheckCyclicAsmCyclicalLoop(var ItemApplicationEntry: Record "Item Application Entry"; CheckItemLedgerEntry: Record "Item Ledger Entry"; ItemLedgerEntry: Record "Item Ledger Entry"; var Result: Boolean; var IsHandled: Boolean)` (integration)
- `OnSetOutboundsNotUpdatedOnAfterSetFilters(var ItemApplicationEntry: Record "Item Application Entry")` (integration)
- `OnCheckIsCyclicalLoopOnBeforeCheckCyclicForwardToAppliedInbounds(CheckItemLedgEntry: Record "Item Ledger Entry"; FromItemLedgEntry: Record "Item Ledger Entry"; MaxValuationDate: Date; var IsCyclicalLoop: Boolean)` (integration)
- `OnCheckCyclicFwdToAppliedEntriesOnAfterCheckItemApplicationEntry(CheckItemLedgerEntry: Record "Item Ledger Entry"; ToEntryNo: Integer; IsPositiveToNegativeFlow: Boolean; var IsCyclicalLoop: Boolean)` (integration)

## Procedures

- `GetNextEntryNo(): Integer`
- `GetLastEntryNo(): Integer`
- `AppliedOutbndEntryExists(InbndItemLedgEntryNo: Integer; IsCostApplication: Boolean; FilterOnOnlyCostNotAdjusted: Boolean): Boolean`
- `AppliedOutbndEntryExists(var ItemApplicationEntries: Query "Item Application Entries"; InbndItemLedgEntryNo: Integer; IsCostApplication: Boolean; FilterOnOnlyCostNotAdjusted: Boolean): Boolean` (obsolete 28.0: Replaced with namesake procedure with "Item Application Entries Outb." as parameter.)
- `AppliedOutbndEntryExists(var ItemApplicationEntriesOutb: Query "Item Application Entries Outb."; InbndItemLedgEntryNo: Integer; IsCostApplication: Boolean; FilterOnOnlyCostNotAdjusted: Boolean): Boolean`
- `AppliedInbndTransEntryExists(InbndItemLedgEntryNo: Integer; IsCostApplication: Boolean): Boolean`
- `AppliedInbndTransEntryExists(var ItemApplicationEntries: Query "Item Application Entries"; InbndItemLedgEntryNo: Integer; IsCostApplication: Boolean): Boolean`
- `AppliedInbndEntryExists(OutbndItemLedgEntryNo: Integer; IsCostApplication: Boolean): Boolean`
- `AppliedInbndEntryExists(var ItemApplicationEntries: Query "Item Application Entries"; OutbndItemLedgEntryNo: Integer; IsCostApplication: Boolean): Boolean` (obsolete 28.0: Replaced with namesake procedure with "Item Application Entries Inb." as parameter.)
- `AppliedInbndEntryExists(var ItemApplicationEntriesInb: Query "Item Application Entries Inb."; OutbndItemLedgEntryNo: Integer; IsCostApplication: Boolean): Boolean`
- `AppliedFromEntryExists(InbndItemLedgEntryNo: Integer): Boolean`
- `GetInboundEntriesTheOutbndEntryAppliedTo(OutbndItemLedgEntryNo: Integer): Boolean`
- `GetOutboundEntriesAppliedToTheInboundEntry(InbndItemLedgEntryNo: Integer): Boolean`
- `CheckAppliedFromEntryToAdjust(InbndItemLedgEntryNo: Integer)`
- `CostReceiver(): Integer`
- `Fixed(): Boolean`
- `InsertHistory(): Integer`
- `CostApplication(): Boolean`
- `CheckIsCyclicalLoop(CheckItemLedgEntry: Record "Item Ledger Entry"; FromItemLedgEntry: Record "Item Ledger Entry"): Boolean`
- `GetVisitedEntries(FromItemLedgEntry: Record "Item Ledger Entry"; var ItemLedgEntryInChain: Record "Item Ledger Entry"; WithinValuationDate: Boolean)`
- `OutboundApplied(EntryNo: Integer; SameType: Boolean): Decimal`
- `InboundApplied(EntryNo: Integer; SameType: Boolean): Decimal`
- `Returned(EntryNo: Integer): Decimal`
- `ExistsBetween(ILE1: Integer; ILE2: Integer): Boolean`
- `SetOutboundsNotUpdated(ItemLedgEntry: Record "Item Ledger Entry")`
- `SetInboundToUpdated(ItemLedgEntry: Record "Item Ledger Entry")`
- `IsAppliedFromIncrease(InbndItemLedgEntryNo: Integer): Boolean`
- `IsOutbndItemApplEntryCostApplication(OutboundItemLedgEntryNo: Integer): Boolean`
- `SetSearchedItemLedgerEntry(var ItemLedgerEntry: Record "Item Ledger Entry")` (obsolete 27.0: The optimization that used this function was obsoleted.)
- `SetCostApplication(NewCostApplication: Boolean)`

Plus 21 local procedures.

## Relations

- drill-down page [Page 506 "Item Application Entries"](../page/506.md)
- lookup page [Page 506 "Item Application Entries"](../page/506.md)
- Item No.: CalcFormula [Table 32 "Item Ledger Entry"](../table/32.md)
- Location Code: CalcFormula [Table 32 "Item Ledger Entry"](../table/32.md)
- Variant Code: CalcFormula [Table 32 "Item Ledger Entry"](../table/32.md)
- Inbound Item Entry No.: TableRelation [Table 32 "Item Ledger Entry"](../table/32.md)
- Item Ledger Entry No.: TableRelation [Table 32 "Item Ledger Entry"](../table/32.md)
- Outbound Item Entry No.: TableRelation [Table 32 "Item Ledger Entry"](../table/32.md)
- Transferred-from Entry No.: TableRelation [Table 32 "Item Ledger Entry"](../table/32.md)
- Item Register No.: TableRelation [Table 46 "Item Register"](../table/46.md)
- Latest Valuation Date: CalcFormula [Table 5802 "Value Entry"](../table/5802.md)

## Referenced by

2 fields in 2 objects relate to this table (TableRelation or CalcFormula).

- [Table 32 "Item Ledger Entry"](../table/32.md): Remaining Qty. by Date
- [Table 83 "Item Journal Line"](../table/83.md): Applies-to Rem. Quantity

## Pages and codeunits on this table

- [Page 506 "Item Application Entries"](../page/506.md) (source table)

## 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 5849 "Avg. Cost Entry Point Handler"](../codeunit/5849.md) (1 call: `GetVisitedEntries → GetMaxValuationDate`)
- [Codeunit 703 "Find Record Management"](../codeunit/703.md) (1 call: `GetLastEntryNo → GetLastEntryIntFieldValue`)
- [Codeunit 9500 "Sequence No. Mgt."](../codeunit/9500.md) (1 call: `GetNextEntryNo → GetNextSeqNo`)

## Recent changes

- 2026-10-02 [#12066 Bugs/remove asm inv mfg clean27 tags for wave2 2026](../../changes/bcapps/12066.md) (main, BC30, obsoletion)

## Across versions

- Present in: BC23-30
- Changed (declaration) in: BC24-28, BC30

## Countries that replace it

[RU](../../localizations/ru.md)

## Deprecations

- procedure SetSearchedItemLedgerEntry: Pending 27.0 (#if not CLEAN27), "The optimization that used this function was obsoleted."
- procedure AppliedInbndEntryExists: Pending 28.0 (#if not CLEAN28), "Replaced with namesake procedure with "Item Application Entries Inb." as parameter."
- procedure AppliedOutbndEntryExists: Pending 28.0 (#if not CLEAN28), "Replaced with namesake procedure with "Item Application Entries Outb." as parameter."

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: "table", object_name: "Item Application Entry")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
