---
id: object/codeunit/4810
type: object
title: Codeunit 4810 "IntrastatReportManagement"
summary: Codeunit 4810 "IntrastatReportManagement" in Intrastat. 27 public procedures, 26 events, 1 event subscribers. Introduced in BC29, still in BC30.
tier: official
language: en
tags:
  - codeunit
  - intrastat
versions:
  introduced: "29"
  last_changed: null
  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: 49e890fd4eaac92431be9ca571de727fffb3bca1f6642e1c687c164a22f0d807
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Apps/W1/Intrastat/app/src/Processing/IntrastatReportManagement.Codeunit.al
    title: src/Apps/W1/Intrastat/app/src/Processing/IntrastatReportManagement.Codeunit.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn: []
  objects: []
  features: []
  topics: []
  localizations: []
  videos: []
  posts: []
  guidelines: []
  changes:
    - change/bcapps/10169
object_type: codeunit
object_id: 4810
name: IntrastatReportManagement
namespace: null
app: Intrastat
extends: null
first_version: "29"
last_version: "30"
present_in:
  - "29"
  - "30"
changed_in: []
source_major: "29"
obsolete: null
countries: []
ms_search_form_ids: []
counts:
  fields: 0
  procedures: 62
  events: 26
  subscribers: 1
relations:
  out: 0
  referenced_by: 0
  pages: 0
  extended_by: 0
  event_subscribers: 0
  calls: 4
  called_by: 4
  implements: 0
---

# Codeunit 4810 "IntrastatReportManagement"

> Codeunit 4810 "IntrastatReportManagement" in Intrastat. 27 public procedures, 26 events, 1 event subscribers. Introduced in BC29, still in BC30.

Intrastat · BC29-30 · [source at ea08af5e](https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Apps/W1/Intrastat/app/src/Processing/IntrastatReportManagement.Codeunit.al) · facts from BC29

## Properties

| Property | Value |
|---|---|
| Permissions | TableData "Intrastat Report Header" = imd, TableData "Intrastat Report Line" = imd, TableData "NAV App Installed App" = r |

## Events published

- `OnBeforeReleaseIntrastatHeader(var IntrastatReportHeader: Record "Intrastat Report Header"; var IsHandled: Boolean)` (integration)
- `OnAfterReleaseIntrastatHeader(var IntrastatReportHeader: Record "Intrastat Report Header")` (integration)
- `OnBeforeReopenIntrastatHeader(var IntrastatReportHeader: Record "Intrastat Report Header"; var IsHandled: Boolean)` (integration)
- `OnAfterReopenIntrastatHeader(var IntrastatReportHeader: Record "Intrastat Report Header")` (integration)
- `OnBeforeExportIntrastatHeader(var IntrastatReportHeader: Record "Intrastat Report Header"; var IsHandled: Boolean)` (integration)
- `OnAfterExportIntrastatHeader(var IntrastatReportHeader: Record "Intrastat Report Header"; var IsHandled: Boolean)` (integration)
- `OnBeforeExportToFile(DataExch: Record "Data Exch."; var FileName: Text; var Handled: Boolean)` (integration)
- `OnBeforeExportToZip(DataExch1: Record "Data Exch."; DataExch2: Record "Data Exch."; StatisticsPeriod: Text; var FileName: Text; var ReceptFileName: Text; var ShipmentFileName: Text; var ZipFileName: Text; var IsHandled: Boolean)` (integration)
- `OnBeforeInitSetup(var IntrastatReportSetup: Record "Intrastat Report Setup"; var IsHandled: Boolean)` (integration)
- `OnBeforeInitCheckList(var IsHandled: Boolean)` (integration)
- `OnBeforeDefineFileNames(var IntrastatReportHeader: Record "Intrastat Report Header"; var FileName: Text; var ReceptFileName: Text; var ShipmentFileName: Text; var ZipFileName: Text; var IsHandled: Boolean)` (integration)
- `OnBeforeUpdateInternalRefNo(var IntrastatReportLine: Record "Intrastat Report Line"; var CompoundField: Text; var PrevCompoundField: Text)` (integration)
- `OnBeforeExportOneDataExchangeDef(var IntrastatReportHeader: Record "Intrastat Report Header"; DataExchDefCode: Code[20]; ExportType: Integer; var DataExch: Record "Data Exch."; var IsHandled: Boolean)` (integration)
- `OnBeforeValidateReportWithAdvancedChecklist(var IntrastatReportLine: Record "Intrastat Report Line"; IntrastatReportHeader: Record "Intrastat Report Header")` (integration)
- `OnBeforeExportIntrastatReportLines(var IntrastatReportLine: Record "Intrastat Report Line"; IntrastatReportHeader: Record "Intrastat Report Header")` (integration)
- `OnBeforeCreateDefaultDataExchangeDef(var IsHandled: Boolean)` (integration)
- `OnAfterGetIntrastatBaseCountryCodeFromFAEntry(var FALedgerEntry: Record "FA Ledger Entry"; var IntrastatReportSetup: Record "Intrastat Report Setup"; var CountryCode: Code[10])` (integration)
- `OnBeforeGetIntrastatBaseCountryCode(var ItemLedgerEntry: Record "Item Ledger Entry"; var IntrastatReportSetup: Record "Intrastat Report Setup"; var CountryCode: Code[10]; var IsHandled: Boolean)` (integration)
- `OnBeforeGetVATRegNo(CountryCode: Code[10]; VATRegNo: Text[20]; VATRegNoType: Enum "Intrastat Report VAT File Fmt"; var Result: Text[50]; var IsHandled: Boolean)` (integration)
- `OnBeforeGetIntrastatBaseCountryCodeFromJLE(var JobLedgerEntry: Record "Job Ledger Entry"; var IntrastatReportSetup: Record "Intrastat Report Setup"; var CountryCode: Code[10]; var IsHandled: Boolean)` (integration)
- `OnBeforeGetIntrastatBaseCountryCodeFromFALE(var FALedgerEntry: Record "FA Ledger Entry"; var IntrastatReportSetup: Record "Intrastat Report Setup"; var CountryCode: Code[10]; var IsHandled: Boolean)` (integration)
- `OnGetCompanyVATRegNoOnAfterGetIntrastatReportSetup(var CompanyInformation: Record "Company Information"; var IntrastatReportSetup: Record "Intrastat Report Setup")` (integration)
- `OnExportWithDataExchOnAfterGetIntrastatReportSetup(var IntrastatReportSetup: Record "Intrastat Report Setup"; var IntrastatReportHeader: Record "Intrastat Report Header")` (integration)
- `OnGetIntrastatBaseCountryCodeFromItemLedgerElseCase(ItemLedgerEntry: Record "Item Ledger Entry"; IntrastatReportSetup: Record "Intrastat Report Setup"; var CountryCode: Code[10])` (integration)
- `OnGetOriginalCurrencyFromItemLedgerElseCase(ItemLedgerEntry: Record "Item Ledger Entry"; var CurrencyCode: Code[10])` (integration)
- `OnRecalculateWeightAndSupplUOMQtyOnAfterCalculateNetWeight(var IntrastatReportLine: Record "Intrastat Report Line"; var NetWeight: Decimal)` (integration)

## Event subscriptions

- InsertIntoAssistedSetup subscribes to Codeunit "Guided Experience" OnRegisterAssistedSetup

## Procedures

- `GetIntrastatBaseCountryCode(ItemLedgEntry: Record "Item Ledger Entry"): Code[10]`
- `GetIntrastatBaseCountryCode(JobLedgerEntry: Record "Job Ledger Entry"): Code[10]`
- `GetIntrastatBaseCountryCode(FALedgerEntry: Record "FA Ledger Entry"): Code[10]`
- `GetOriginalCurrency(FALedgerEntry: Record "FA Ledger Entry"): Code[10]`
- `GetOriginalCurrency(ItemLedgerEntry: Record "Item Ledger Entry"): Code[10]`
- `CalcStatisticalValue(var IntrastatReportLine: Record "Intrastat Report Line"; LastIntrastatReportLine: Record "Intrastat Report Line"; var StatisticalValue: Decimal; var TotalStatisticalValue: Decimal; var ShowStatisticalValue: Boolean; var ShowTotalStatisticalValue: Boolean)`
- `ValidateReportWithAdvancedChecklist(IntrastatReportHeader: Record "Intrastat Report Header"; ThrowError: Boolean): Boolean`
- `ValidateReportLineWithAdvancedChecklist(IntrastatReportLine: Record "Intrastat Report Line"; ThrowError: Boolean): Boolean`
- `ChecklistClearBatchErrors(IntrastatReportHeader: Record "Intrastat Report Header")`
- `GetCompanyVATRegNo(): Text[50]`
- `GetVATRegNo(CountryCode: Code[10]; VATRegNo: Text[20]; VATRegNoType: Enum "Intrastat Report VAT File Fmt"): Text[50]`
- `RecalculateWaightAndSupplUOMQty(IntrastatReportHeader: Record "Intrastat Report Header")`
- `ReleaseIntrastatReport(var IntrastatReportHeader: Record "Intrastat Report Header")`
- `ReopenIntrastatReport(var IntrastatReportHeader: Record "Intrastat Report Header")`
- `ExportWithDataExch(IntrastatReportHeader: Record "Intrastat Report Header"; ExportType: Integer)`
- `ExportOneDataExchangeDef(IntrastatReportHeader: Record "Intrastat Report Header"; DataExchDefCode: Code[20]; ExportType: Integer; var DataExch: Record "Data Exch.")` (obsolete 27.0: Use ExportOneDataExchangeDef(IntrastatReportHeader: Record "Intrastat Report Header"; DataExchDefCode: Code[20]; ExportType: Integer; var DataExch: Record "Data Exch."; MaxNoOfLines: Integer))
- `ExportOneDataExchangeDef(IntrastatReportHeader: Record "Intrastat Report Header"; DataExchDefCode: Code[20]; ExportType: Integer; var DataExch: Record "Data Exch."; MaxNoOfLines: Integer)`
- `ExportToFile(DataExch: Record "Data Exch."; var TempBlob: Codeunit "Temp Blob"; FileName: Text)`
- `InitSetup(var IntrastatReportSetup: Record "Intrastat Report Setup")`
- `CreateDefaultDataExchangeDef()` (internal)
- `ReCreateDefaultDataExchangeDef()` (internal)
- `UpdateItemUOM(var ItemUOM: Record "Item Unit of Measure"; TariffNumber: Record "Tariff Number")`
- `NotifyUserAboutSupplementaryUnitUpdate()` (internal)
- `DisableSupplementaryUnitUpdateNotification(HostNotification: Notification)` (internal)
- `IsCustomerPrivatePerson(Customer: Record Customer): Boolean`
- `IsVendorPrivatePerson(Vendor: Record Vendor): Boolean`
- `GetIntrastatCodeFromCountryRegion(CountryRegionCode: Code[10]): Code[10]`

Plus 8 local procedures.

## 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 4100 "Temp Blob"](../codeunit/4100.md) (5 calls: `CreateDefaultDataExchangeDef → CreateInStream`, `CreateDefaultDataExchangeDef → CreateOutStream`, `ExportToZip → CreateInStream`, …)
- [Codeunit 425 "Data Compression"](../codeunit/425.md) (4 calls: `ExportToZip → AddEntry`, `ExportToZip → CloseZipArchive`, `ExportToZip → CreateZipArchive`, …)
- [Codeunit 1990 "Guided Experience"](../codeunit/1990.md) (1 call: `InsertIntoAssistedSetup → InsertAssistedSetup`)
- [Codeunit 419 "File Management"](../codeunit/419.md) (1 call: `ExportToFile → BLOBExport`)

## Called by

- [Report 4810 "Intrastat Report Get Lines"](../report/4810.md) (10 calls: `CountryOfOrigin → GetIntrastatBaseCountryCode`, `HasCrossedBorder → GetIntrastatBaseCountryCode`, `InsertFALedgerLine → GetIntrastatBaseCountryCode`, …)
- [Table 4812 "Intrastat Report Line"](../table/4812.md) (9 calls: `GetPartnerIDFromFAEntry → GetVATRegNo`, `GetPartnerIDFromFAEntry → IsCustomerPrivatePerson`, `GetPartnerIDFromFAEntry → IsVendorPrivatePerson`, …)
- [Page 4813 "Intrastat Report Subform"](../page/4813.md) (1 call: `UpdateStatisticalValue → CalcStatisticalValue`)
- [Page 4815 "Intrastat Report Setup Wizard"](../page/4815.md) (1 call: `OnOpenPage → InitSetup`)

## Recent changes

- 2026-08-14 [#10169 [Extensibility Request] issue 30081: add VAT registration number override event](../../changes/bcapps/10169.md) (main, BC30, feature)

## Across versions

- Present in: BC29-30
- Changed (declaration) in: none

## Deprecations

- procedure ExportOneDataExchangeDef: Pending 27.0 (#if not CLEAN27), "Use ExportOneDataExchangeDef(IntrastatReportHeader: Record "Intrastat Report Header"; DataExchDefCode: Code[20]; ExportType: Integer; var DataExch: Record "Data Exch."; MaxNoOfLines: Integer)"

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