localization · BC29official - Microsoftreviewed - checked by Opus

Germany (DE)

Germany (DE) localization of Business Central 29. It covers VAT reporting with ELMA5 and ELSTER, VIES/EU sales lists, e-invoicing (XRechnung, ZUGFeRD, Peppol BIS 3.0 DE), purchase delivery reminders, GoBD/GDPdU digital audit export, Intrastat, BilMoG exchange rate valuation and physical inventory orders.

What DE changes in W1 63 objects, BC29

table/740 "VAT Report Header" +31, 15 changed, 11 removed
  • +field(7; "VAT Registration No."; Code[20])
  • +field(21; "Revocation"; Boolean)
  • +field(22; "Date Type"; Enum "VAT Date Type")
  • +field(28; "Trade Type"; Option)
  • +field(29; "EU Goods/Services"; Option)
  • +field(33; "Total Number of Supplies"; Decimal)
  • +field(34; "Total Number of Lines"; Integer)
  • +field(40; "Company Name"; Text[100])
  • +field(41; "Company Address"; Text[30])
  • +field(42; "Country/Region Name"; Text[30])
  • +field(43; "ISO Country/Region Code"; Code[2])
  • +field(48; "City"; Text[30])
  • +field(49; "Post Code"; Code[20])
  • +field(50; "Tax Office ID"; Code[20])
  • +field(51; "Sign-off Place"; Text[30])
  • +field(52; "Sign-off Date"; Date)
  • +field(53; "Signed by Employee No."; Code[20])
  • +field(54; "Created by Employee No."; Code[20])
  • +key(Key2; "VAT Report Config. Code")
  • +key(Key3; "VAT Report Type", "Status")
  • +procedure CheckDeleteAllowed()
  • +procedure CheckIfFilterCanBeChanged()
  • +local procedure CheckPeriodNo()
  • +local procedure SetPeriod()
  • +local procedure CheckPeriod()
  • +procedure LineExists(): Boolean
  • +procedure FillCompanyInfo()
  • +procedure CheckOriginalReport(VATReportNo: Code[20])
  • +local procedure GetCompanyName(CompanyInformation: Record "Company Information"; VATReportSetup: Record "VAT Report Setup"): Text[100]
  • +local procedure GetCompanyAddress(CompanyInformation: Record "Company Information"; VATReportSetup: Record "VAT Report Setup"): Text[30]
  • +local procedure GetCompanyCity(CompanyInformation: Record "Company Information"; VATReportSetup: Record "VAT Report Setup"): Text[30]
  • Δfield(2; "VAT Report Config. Code"; Option)
  • Δfield(3; "VAT Report Type"; Option)
  • Δfield(4; "Start Date"; Date)
  • Δfield(5; "End Date"; Date)
  • Δfield(6; "Status"; Option)
  • Δfield(9; "Original Report No."; Code[20])
  • Δfield(10; "Report Period Type"; Option)
  • Δfield(11; "Report Period No."; Integer)
  • Δfield(12; "Report Year"; Integer)
  • Δfield(16; "Processing Date"; Date)
  • Δfield(19; "Test Export"; Boolean)
  • Δfield(20; "Notice"; Boolean)
  • Δfield(31; "Total Base"; Decimal)
  • Δfield(32; "Total Amount"; Decimal)
  • Δkey(Key1; "No.")
  • −field(13; "Message Id"; Text[250])
  • −field(14; "Statement Template Name"; Code[10])
  • −field(15; "Statement Name"; Code[10])
  • −field(17; "Submitted By"; Guid)
  • −field(18; "Submitted Date"; Date)
  • −field(30; "Additional Information"; Code[50])
  • −procedure PeriodToDate()
  • −local procedure HandleDateInput()
  • −local procedure HandlePeriodInput()
  • −procedure IsPeriodValid(): Boolean
  • −local procedure RemoveVATReturnPeriodLink()
table/741 "VAT Report Line" +24, 3 changed
  • +field(17; "EU Service"; Boolean)
  • +field(24; "Number of Supplies"; Decimal)
  • +field(30; "Trade Type"; Option)
  • +field(31; "Line Type"; Option)
  • +field(32; "Related Line No."; Integer)
  • +field(33; "Trade Role Type"; Option)
  • +field(50; "Corrected Reg. No."; Boolean)
  • +field(51; "Corrected Amount"; Boolean)
  • +field(54; "Registration No."; Text[20])
  • +field(99; "System-Created"; Boolean)
  • +field(101; "VAT Report to Correct"; Code[20])
  • +field(102; "Able to Correct Line"; Boolean)
  • +key(Key2; "Trade Type", "Country/Region Code", "VAT Registration No.", "Registration No.", "EU 3-Party Trade")
  • +key(Key3; "VAT Report to Correct", "Able to Correct Line")
  • +key(Key4; "VAT Report No.", "Line Type")
  • +local procedure TestStatusOpen()
  • +procedure GetTradeRole(): Code[10]
  • +procedure GetCancelCode(): Code[10]
  • +procedure GetNextLineNo(VATReportNo: Code[20]): Integer
  • +procedure RoundBase(AmountToRound: Decimal): Decimal
  • +procedure CheckLineType()
  • +procedure CheckEditingAllowed()
  • +procedure InsertCorrLine(VATReportHeader: Record "VAT Report Header"; CancellationVATReportLine: Record "VAT Report Line"; CorrectionVATReportLine: Record "VAT Report Line"; var TempVATReportLineRelation: Record "VAT Report Line Relation" temporary)
  • +procedure CheckLineAlreadyCorrected(VATReportHeader: Record "VAT Report Header"; VATReportLine: Record "VAT Report Line")
  • Δfield(2; "Line No."; Integer)
  • Δfield(8; "Base"; Decimal)
  • Δfield(9; "Amount"; Decimal)
table/79 "Company Information" +23, 3 changed
  • +field(11000; "Area"; Code[10])
  • +field(11001; "Place of Dispatcher"; Code[10])
  • +field(11002; "Place of Receiver"; Code[10])
  • +field(11003; "Sales Authorized No."; Code[8])
  • +field(11004; "Purch. Authorized No."; Code[8])
  • +field(11005; "Company No."; Text[10])
  • +field(11006; "Special Agreement"; Text[20])
  • +field(11007; "Agency No."; Text[10])
  • +field(11008; "Tax Office Name"; Text[50])
  • +field(11009; "Tax Office Name 2"; Text[50])
  • +field(11010; "Tax Office Address"; Text[50])
  • +field(11011; "Tax Office Address 2"; Text[50])
  • +field(11012; "Tax Office City"; Text[50])
  • +field(11013; "Tax Office Post Code"; Code[20])
  • +field(11014; "Tax Office Country/Region Code"; Code[10])
  • +field(11015; "Tax Office County"; Text[30])
  • +field(11016; "Tax Office Area"; Option)
  • +field(11019; "VAT Representative"; Text[45])
  • +field(11050; "Participant No."; Text[10])
  • +field(11100; "Statistic No."; Code[20])
  • +field(11101; "Control No."; Code[20])
  • +field(11102; "DVR Number"; Code[20])
  • +field(11103; "Tax Office Number"; Code[4])
  • Δfield(11; "Giro No."; Text[20])
  • Δfield(14; "Bank Account No."; Text[30])
  • Δfield(38; "IBAN"; Code[50])
codeunit/737 "VAT Report Mgt." 20 removed
  • −local procedure OnOpenVATReturnPeriodListPageEvent(var Rec: Record "VAT Return Period")
  • −procedure DontShowAgainManualInsertNotification(Notification: Notification)
  • −local procedure IsManualInsertNotificationEnabled(): Boolean
  • −local procedure GetManualInsertNotificationGUID(): Guid
  • −procedure GetVATReturnPeriods()
  • −procedure GetSubmittedVATReturns(VATReturnPeriod: Record "VAT Return Period")
  • −procedure CreateVATReturnFromVATPeriod(VATReturnPeriod: Record "VAT Return Period")
  • −procedure OpenVATReturnCardFromVATPeriod(VATReturnPeriod: Record "VAT Return Period")
  • −local procedure OpenVATReturnCard(VATReportHeader: Record "VAT Report Header")
  • −procedure OpenVATPeriodCardFromVATReturn(VATReportHeader: Record "VAT Report Header")
  • −local procedure CreateVATReturn(var VATReportHeader: Record "VAT Report Header"; var VATReturnPeriod: Record "VAT Return Period")
  • −local procedure InsertNewVATReturn(var VATReportHeader: Record "VAT Report Header")
  • −local procedure UpdateVATReturn(var VATReportHeader: Record "VAT Report Header"; var VATReturnPeriod: Record "VAT Return Period")
  • −procedure CreateAndStartAutoUpdateVATReturnPeriodJob(VATReportSetup: Record "VAT Report Setup")
  • −local procedure GetJobNoOfMinutes(VATReportSetup: Record "VAT Report Setup"): Integer
  • −local procedure CheckJobStatusOnOpenVATReturnPeriods(var Rec: Record "VAT Return Period")
  • −local procedure IsLastVATReturnPeriodJobQueueLogEntryHasError(var JobQueueLogEntry: Record "Job Queue Log Entry"): Boolean
  • −local procedure SendJobErrorNotification(JobQueueLogEntry: Record "Job Queue Log Entry")
  • −procedure OpenVATReturnPeriodJobCard(JobErrorNotification: Notification)
  • −local procedure OnBeforeValidateVATReportVersion(var Rec: Record "VAT Report Header")
report/741 "VAT Report Suggest Lines" +13
  • +procedure AddBuffer(VATEntry: Record "VAT Entry")
  • +procedure SaveBuffer()
  • +procedure SaveCorrBuffer()
  • +local procedure CancelOutOfScopeLines()
  • +procedure GetCountryCode(VATEntry: Record "VAT Entry"): Code[10]
  • +procedure GetTradeRoleType(EU3PartyTrade: Boolean): Integer
  • +procedure UpdateNumberOfSupplies(var VATReportLine: Record "VAT Report Line"; TransactionNo: Integer)
  • +procedure IsEUCountry(VATEntry: Record "VAT Entry"): Boolean
  • +procedure AddVATReportLine(VATEntry: Record "VAT Entry")
  • +procedure UpdateProgressBar()
  • +procedure SetFilters(var VATEntry: Record "VAT Entry")
  • +local procedure HaveDifferentRelations(VATReportLine: Record "VAT Report Line"; VATReportLineTmp: Record "VAT Report Line"): Boolean
  • +local procedure GetKeyInReport(VATReportLineToFind: Record "VAT Report Line"; var ExistingVATReportLine: Record "VAT Report Line"; VATReportNo: Code[20]; InOriginalReport: Boolean): Boolean
table/743 "VAT Report Setup" +10, 1 changed, 1 removed
  • +field(11000; "Source Identifier"; Text[11])
  • +field(11001; "Transmission Process ID"; Text[3])
  • +field(11002; "Supplier ID"; Text[3])
  • +field(11003; "Codepage"; Option)
  • +field(11004; "Registration ID"; Text[6])
  • +field(11005; "Export Cancellation Lines"; Boolean)
  • +field(11006; "Company Name"; Text[100])
  • +field(11007; "Company Address"; Text[30])
  • +field(11008; "Company City"; Text[30])
  • +field(11009; "BOP User Account ID"; Text[20])
  • Δfield(21; "Report Version"; Code[10])
  • −field(4; "VAT Return No. Series"; Code[20])
codeunit/743 "VAT Report Export" +9, 2 removed
  • +local procedure ExportReleased(VATReportHeader: Record "VAT Report Header")
  • +procedure CreateVIESELMAXml(VATReportHeader: Record "VAT Report Header"; var FileID: Text; var TempBlob: Codeunit "Temp Blob")
  • +procedure CreateVIESELMAXml(VATReportHeader: Record "VAT Report Header"; var TempBlob: Codeunit "Temp Blob")
  • +procedure GetVIESELMAFileName(VATReportHeader: Record "VAT Report Header"; FileID: Text): Text
  • +procedure GetVIESELMAFileName(VATReportHeader: Record "VAT Report Header"): Text
  • +local procedure ExportVIESELMAReport(VATReportHeader: Record "VAT Report Header")
  • +local procedure ExportLegacyReport(VATReportHeader: Record "VAT Report Header")
  • +procedure ExportLegacy(VATReportHeader: Record "VAT Report Header")
  • +local procedure ExportLegacyOpen(var VATReportHeader: Record "VAT Report Header")
  • −local procedure ExportReleased()
  • −local procedure ExportReport()
table/254 "VAT Entry" +5, 5 changed
  • +field(11000; "G/L Account No."; Code[20])
  • +key(Key14; "Posting Date", "Type", "Closed", "VAT Bus. Posting Group", "VAT Prod. Posting Group", "Reversed", "G/L Acc. No.", "VAT Reporting Date")
  • +key(Key16; "Document Date")
  • +key(Key17; "G/L Acc. No.")
  • +key(Key18; "Type", "Closed", "VAT Bus. Posting Group", "VAT Prod. Posting Group", "Reversed", "Posting Date", "G/L Acc. No.", "VAT Reporting Date")
  • Δkey(Key9; "Bill-to/Pay-to No.", "EU 3-Party Trade", "Type", "Posting Date")
  • Δkey(Key10; "Closed by Entry No.")
  • Δkey(Key11; "Type", "Closed", "VAT Bus. Posting Group", "VAT Prod. Posting Group", "Tax Jurisdiction Code", "Use Tax", "Posting Date", "G/L Acc. No.")
  • Δkey(Key12; "Country/Region Code", "Posting Date")
  • Δkey(Key13; "Gen. Prod. Posting Group", "Posting Date")
table/263 "Intrastat Jnl. Line" +3, 7 changed
  • +key(Key3; "Type", "Country/Region Code", "Tariff No.", "Transaction Type", "Transport Method", "Area", "Entry/Exit Point", "Transaction Specification", "Country/Region of Origin Code", "Partner VAT ID")
  • +key(Key4; "Internal Ref. No.")
  • +key(Key8; "Document No.")
  • Δfield(14; "Amount"; Decimal)
  • Δfield(15; "Quantity"; Decimal)
  • Δfield(18; "Statistical Value"; Decimal)
  • Δfield(22; "Total Weight"; Decimal)
  • Δkey(Key5; "Journal Template Name", "Journal Batch Name", "Type", "Internal Ref. No.")
  • Δkey(Key6; "Journal Template Name", "Journal Batch Name", "Type", "Country/Region Code", "Tariff No.", "Transaction Type", "Transport Method", "Area", "Transaction Specification", "Country/Region of Origin Code", "Partner VAT ID")
  • Δkey(Key7; "Type", "Internal Ref. No.")
codeunit/740 "VAT Report Mediator" +2, 6 removed
  • +procedure CorrectLines(VATReportHeader: Record "VAT Report Header")
  • +procedure ExportLegacy(VATReportHeader: Record "VAT Report Header")
  • −procedure Generate(VATReportHeader: Record "VAT Report Header")
  • −procedure ShowGenerate(VATReportHeader: Record "VAT Report Header"): Boolean
  • −procedure ShowExport(VATReportHeader: Record "VAT Report Header"): Boolean
  • −procedure ReceiveResponse(VATReportHeader: Record "VAT Report Header")
  • −procedure ShowReceiveResponse(VATReportHeader: Record "VAT Report Header"): Boolean
  • −procedure ShowSubmissionMessage(VATReportHeader: Record "VAT Report Header"): Boolean
table/737 "VAT Return Period" 2 changed, 6 removed
  • Δfield(20; "VAT Return No."; Code[20])
  • Δfield(21; "VAT Return Status"; Option)
  • −local procedure GetNoSeriesCode(): Code[20]
  • −procedure CopyToVATReturn(var VATReportHeader: Record "VAT Report Header")
  • −local procedure ParseDatePeriod(var VATReportHeader: Record "VAT Report Header")
  • −procedure FindVATReturnPeriod(var VATReturnPeriod: Record "VAT Return Period"; StartDate: Date; EndDate: Date): Boolean
  • −procedure DiffersFromVATReturnPeriod(var VATReturnPeriod: Record "VAT Return Period"): Boolean
  • −procedure DrillDownVATReturn()
codeunit/13 "Gen. Jnl.-Post Batch" +6, 1 removed
  • +local event OnBeforeCheckPmtApplnAllowed(var PaymentApplication: Boolean; var PaymentBalanceVAT: Boolean; GenJournalLine: Record "Gen. Journal Line"; var IsHandled: Boolean)
  • +local procedure CheckCorrection(GenJournalLine: Record "Gen. Journal Line"; var PaymentApplication: Boolean; var PaymentBalanceVAT: Boolean; LastGenJournalLine: Record "Gen. Journal Line")
  • +local procedure GetGenJnlLineParameters(var PaymentApplication: Boolean; var PaymentBalanceVAT: Boolean; GenJnlLine: Record "Gen. Journal Line")
  • +local procedure CheckPmtApplnAllowed(var PaymentApplication: Boolean; var PaymentBalanceVAT: Boolean; GenJournalLine: Record "Gen. Journal Line")
  • +local procedure IsPaymentApplication(GenJnlLine: Record "Gen. Journal Line"): Boolean
  • +local procedure IsPaymentBalanceVAT(GenJnlLine: Record "Gen. Journal Line"): Boolean
  • −local procedure CheckCorrection(GenJournalLine: Record "Gen. Journal Line")
codeunit/744 "VAT Report Validate" +5, 2 removed
  • +local event OnValidateVATReportPeriodOnAfterSetFilters(var VATReportHeader2: Record "VAT Report Header")
  • +local procedure ValidateVATReportHeader(VATReportHeader: Record "VAT Report Header")
  • +local procedure ValidateVATReportLines(VATReportHeader: Record "VAT Report Header")
  • +local procedure ValidateCountryRegionCode(VATReportLine: Record "VAT Report Line"; var CountryRegion: Record "Country/Region")
  • +procedure ValidateVATReportPeriod(VATReportHeader: Record "VAT Report Header")
  • −local procedure ValidateVATReportHeader()
  • −local procedure ValidateVATReportLines()
page/475 "VAT Statement Preview Line" +3, 3 removed
  • +local event OnBeforeCalcColumnValue(VATStmtLine2: Record "VAT Statement Line"; var TotalAmount: Decimal; var TotalEmpty: Decimal; var TotalBase: Decimal; var TotalUnrealizedAmount: Decimal; var TotalUnrealizedBase: Decimal; Level: Integer; var IsHandled: Boolean; Selection: Enum "VAT Statement Report Selection"; PeriodSelection: Enum "VAT Statement Report Period Selection"; PrintInIntegers: Boolean; UseAmtsInAddCurr: Boolean; var VATStatementLine: Record "VAT Statement Line")
  • +local procedure CalcColumnValue(VATStmtLine2: Record "VAT Statement Line"; var TotalAmount: Decimal; var TotalEmpty: Decimal; var TotalBase: Decimal; var TotalUnrealizedAmount: Decimal; var TotalUnrealizedBase: Decimal; Level: Integer)
  • +procedure DrillDownOnEntries()
  • −local event OnBeforeCalcColumnValue(VATStatementLine: Record "VAT Statement Line"; var TotalAmount: Decimal; Level: Integer; var IsHandled: Boolean; Selection: Enum "VAT Statement Report Selection"; PeriodSelection: Enum "VAT Statement Report Period Selection"; PrintInIntegers: Boolean; UseAmtsInAddCurr: Boolean)
  • −local event OnUpdateFormOnBeforeVatStatementInitializeRequest(var NewVATStatementName: Record "VAT Statement Name"; var NewVATStatementLine: Record "VAT Statement Line"; NewSelection: Enum "VAT Statement Report Selection"; NewPeriodSelection: Enum "VAT Statement Report Period Selection"; NewPrintInIntegers: Boolean; NewUseAmtsInAddCurr: Boolean)
  • −local procedure CalcColumnValue(VATStatementLine: Record "VAT Statement Line"; var ColumnValue: Decimal; Level: Integer)
page/740 "VAT Report" 6 removed
  • −local event OnAfterInitPageControllers(VATReportHeader: Record "VAT Report Header"; var SubmitControllerStatus: Boolean; var MarkAsSubmitControllerStatus: Boolean; var CalcAndPostVATStatus: Boolean)
  • −local event OnBeforeDownloadSubmissionMessage(var IsHandled: Boolean; var VATReportHeader: Record "VAT Report Header")
  • −local event OnBeforeDownloadResponseMessage(var IsHandled: Boolean; var VATReportHeader: Record "VAT Report Header")
  • −local procedure InitPageControllers()
  • −local procedure InitReturnPeriodGroup()
  • −local procedure CheckForErrors(): Boolean
report/88 "VAT- VIES Declaration Disk" +2, 4 removed
  • +local procedure WriteGrTotalsToFile(TotalValueofServiceSupplies: Decimal; TotalValueofItemSupplies: Decimal; EU3PartyServiceTradeAmt: Decimal; EU3PartyItemTradeAmt: Decimal; HasEU3Party: Boolean; HasItem: Boolean; HasService: Boolean; VATDate: Date)
  • +procedure WriteLineToFile(ExportAmount: Decimal; DLS: Text[1])
  • −local procedure DecimalNumeralSign(DecimalNumeral: Decimal): Text[1]
  • −local procedure DecimalNumeralZeroFormat(DecimalNumeral: Decimal; Length: Integer): Text[250]
  • −local procedure TextZeroFormat(Text: Text[250]; Length: Integer): Text[250]
  • −local procedure WriteGrTotalsToFile(TotalValueofServiceSupplies: Decimal; TotalValueofItemSupplies: Decimal; EU3PartyServiceTradeAmt: Decimal; EU3PartyItemTradeAmt: Decimal; VATDate: Date)
codeunit/597 "Exch. Rate Adjmt. Subscribers" +5
  • +local procedure OnAfterAdjustCustomerLedgerEntryOnAfterCalcAdjmtAmount(CustLedgerEntry: Record "Cust. Ledger Entry"; ExchRateAdjmtParameters: Record "Exch. Rate Adjmt. Parameters"; AdjmtAmount: Decimal; Application: Boolean; var ShouldExit: Boolean)
  • +local procedure OnAfterAdjustVendorLedgerEntryOnAfterCalcAdjmtAmount(VendLedgerEntry: Record "Vendor Ledger Entry"; ExchRateAdjmtParameters: Record "Exch. Rate Adjmt. Parameters"; AdjmtAmount: Decimal; Application: Boolean; var ShouldExit: Boolean)
  • +local procedure CalculateBilMoG(var AdjAmt2: Decimal; RemAmtLCY: Decimal; OrigRemAmtLCY: Decimal; DueDate: Date; DueDateTo: Date): Boolean
  • +local procedure CustCalcRemOrigAmtLCY(CustLedgEntry2: Record "Cust. Ledger Entry"; PostingDate: Date): Decimal
  • +local procedure VendCalcRemOrigAmtLCY(VendLedgEntry2: Record "Vendor Ledger Entry"; PostingDate: Date): Decimal
page/321 "ECSL Report" 4 removed
  • −local event OnBeforeCheckForErrors(var ErrorsExist: Boolean; ErrorMessage: Record "Error Message"; var TempErrorMessage: Record "Error Message" temporary)
  • −local procedure InitPageControllers()
  • −local procedure CheckForErrors(): Boolean
  • −local procedure DeleteErrors()
table/98 "General Ledger Setup" +2, 2 changed
  • +field(11003; "Currency Code For EURO"; Code[10])
  • +field(11011; "Sales VAT Advance Notif. Nos."; Code[20])
  • Δfield(49; "Adjust for Payment Disc."; Boolean)
  • Δfield(151; "Prepayment Unrealized VAT"; Boolean)
report/742 "VAT Report Request Page" 3 removed
  • −local event OnAfterSetPeriodIsEditable(VATReportHeader: Record "VAT Report Header"; var PeriodIsEditable: Boolean)
  • −local event OnBeforeVATStatementLineFindSet(var VATStatementLine: Record "VAT Statement Line"; VATReportHeader: Record "VAT Report Header")
  • −local event OnBeforeCalcLineTotalWithBase(var VATStatementReportLine: Record "VAT Statement Report Line"; VATStatementLine: Record "VAT Statement Line"; VATReportHeader: Record "VAT Report Header")
table/312 "Purchases & Payables Setup" +3
  • +field(5005230; "Arch. Orders and Ret. Orders"; Boolean)
  • +field(5005232; "Archiving Purchase Quote"; Option)
  • +field(5005233; "Archiving Blanket Purch. Order"; Boolean)
table/5600 "Fixed Asset" +3
  • +field(11101; "BWR Depr. Book Code"; Code[10])
  • +field(11102; "Prem Depr. %"; Integer)
  • +field(11103; "Prem. Depr. Amount"; Decimal)
table/5821 "Item Statistics Buffer" +3
  • +field(11500; "Inv. Valuation Actual"; Decimal)
  • +field(11501; "Inv. Valuation Exp."; Decimal)
  • +field(11502; "Inv. Posted to GL"; Decimal)
table/596 "Exch. Rate Adjmt. Parameters" +3
  • +field(11000; "Valuation Method"; Integer)
  • +field(11001; "Valuation Period End Date"; Date)
  • +field(11002; "Due Date To"; Date)
codeunit/229 "Document-Print" +2
  • +procedure PrintSalesVATAdvNotAccProof(VATStatementName: Record "VAT Statement Name")
  • +procedure PrintVATStatementSchedule(VATStatementName: Record "VAT Statement Name")
codeunit/365 "Format Address" +2
  • +procedure TaxOffice(var AddrArray: array[8] of Text[100]; var CompanyInfo: Record "Company Information")
  • +local procedure SetCountyTextForDACH(var CountyText: Text[50]; County: Text[50]; CountryCode: Code[10])
page/344 "Navigate" +1, 1 removed
  • +local event OnAfterSetTrackingFiltersOnBeforeFindTrackingRecords(var ItemTrackingFilters: Record Item)
  • −local event OnFindTrackingRecordsOnAfterSetTrackingFilters(var ItemTrackingFilters: Record Item)
report/5912 "Service - Credit Memo" +2
  • +local procedure GetDocumentNoLbl(): Text
  • +local procedure GetDocumentCaption(): Text
report/596 "Exch. Rate Adjustment" +2
  • +procedure SetValuationMethod(NewValuationMethod: Integer; NewDueDateTo: Date; NewValuationPeriodEndDate: Date)
  • +local procedure UpdateControls()
table/1383 "Vendor Templ." +1, 1 changed
  • +field(11000; "Registration No."; Text[20])
  • Δfield(14; "Our Account No."; Text[20])
table/313 "Inventory Setup" +2
  • +field(5005350; "Phys. Inv. Order Nos."; Code[20])
  • +field(5005352; "Posted Phys. Inv. Order Nos."; Code[20])
table/325 "VAT Posting Setup" +1, 1 changed
  • +field(6201; "Non-Ded. Sales VAT Account"; Code[20])
  • Δfield(6; "Adjust for Payment Discount"; Boolean)
table/39 "Purchase Line" +2
  • +field(5005396; "Order No. (Old)"; Code[20])
  • +field(5005397; "Order Line No. (Old)"; Integer)
table/5108 "Sales Line Archive" +1, 1 changed
  • +key(Key7; "Document No.", "Document Type", "Doc. No. Occurrence", "Version No.")
  • Δkey(Key6; "Document Type", "Blanket Order No.", "Blanket Order Line No.")
table/5110 "Purchase Line Archive" +1, 1 changed
  • +key(Key6; "Document No.", "Document Type", "Doc. No. Occurrence", "Version No.")
  • Δkey(Key5; "Document Type", "Blanket Order No.", "Blanket Order Line No.")
table/744 "VAT Report Line Relation" 1 changed, 1 removed
  • Δkey(Key1; "VAT Report No.", "VAT Report Line No.", "Table No.", "Entry No.")
  • −procedure CreateFilterForAmountMapping(VATReportNo: Code[20]; VATReportLineNo: Integer; var TableNo: Integer): Text[1024]
codeunit/1901 "Report Selection Mgt." +1
  • +procedure InitDACHReportSelection()
codeunit/5626 "FA General Report" +1
  • +procedure SetExclReclEntries(ExclReclEntries1: Boolean)
codeunit/741 "VAT Report Release/Reopen" +1
  • +local procedure UpdateLinesToCorrect(VATReportNo: Code[20])
page/471 "VAT Product Posting Groups" +1
  • +procedure GetSelectionFilter(): Text
page/741 "VAT Report Subform" +1
  • +local procedure ShowVATReportEntries(VATReportNo: Code[20]; VATReportLineNo: Integer)
table/122 "Purch. Inv. Header" +1
  • +field(11000; "Registration No."; Text[20])
table/124 "Purch. Cr. Memo Hdr." +1
  • +field(11000; "Registration No."; Text[20])
table/15 "G/L Account" +1
  • +field(11000; "VAT Amount"; Decimal)
table/23 "Vendor" +1
  • +field(11000; "Registration No."; Text[20])
table/242 "Source Code Setup" +1
  • +field(5005270; "Delivery Reminder"; Code[10])
table/257 "VAT Statement Name" +1
  • +field(11000; "Sales VAT Adv. Notification"; Boolean)
table/260 "Tariff Number" 1 changed
  • Δfield(2; "Description"; Text[250])
table/285 "Transaction Specification" 1 changed
  • Δfield(2; "Text"; Text[200])
table/324 "VAT Product Posting Group" +1
  • +procedure LookupVATProductPostingGroupFilter(var FilterString: Text): Boolean
table/38 "Purchase Header" +1
  • +field(11000; "Registration No."; Text[20])
table/5109 "Purchase Header Archive" +1
  • +field(11000; "Registration No."; Text[20])
table/5611 "Depreciation Book" 1 changed
  • Δfield(33; "Mark Errors as Corrections"; Boolean)
table/746 "VAT Reports Configuration" 1 changed
  • Δfield(1; "VAT Report Type"; Option)
table/81 "Gen. Journal Line" +1
  • +procedure ChangePostingDateWarning()
page/323 "EC Sales List Reports" body changes only
page/744 "VAT Report List" body changes only
permissionset/1001 "LOCAL" body changes only
permissionset/1002 "LOCAL READ" body changes only
report/12 "VAT Statement" body changes only
table/5612 "FA Depreciation Book" body changes only
xmlport/5050 "Export Contact" body changes only
xmlport/5051 "Export Segment Contact" body changes only

BC29 · country layer against W1 · Learn: local functionality · narrative reviewed (checked by Opus)

Overview

The German layer extends the W1 VAT Report framework (tables 740, 741, 743, codeunits 737, 740, 743, 744, report 741) with ELMA5 fields, correction and cancellation line types, and VIES ELMA XML export. Separate objects handle ELSTER sales VAT advance notifications (table 11021, Elster codeunits, XML report 11016) and local VAT reports such as VAT Statement Germany and VAT Statement Schedule. Learn documents this under VAT reporting, EU Sales List, and the VAT report setup and correction pages.

Other own functionality includes the Data Export objects for GoBD/GDPdU digital audits, delivery reminders for vendors (tables 5005270 onward, pages, issue and create codeunits, reports), physical inventory orders, and Intrastat extensions with a DE submission channel. E-documents are supported through XRechnung, ZUGFeRD and Peppol BIS 3.0 DE codeunits, enum extensions, and page and table extensions on sales and service documents.

W1 objects are extended with fields such as Registration No. on vendor and purchase documents, tax office fields on Company Information, BilMoG valuation parameters on the exchange rate adjustment, and DACH report selections. Four events were added: OnBeforeCheckPmtApplnAllowed, OnValidateVATReportPeriodOnAfterSetFilters, OnBeforeCalcColumnValue and one on Navigate.

Key points

  • VAT reports: ELMA5 export, corrective reports with cancellation and correction lines, VAT Report Setup fields for ZIVIT/transmission data
  • ELSTER: Sales VAT Advance Notification card and list, electronic VAT declaration setup, XML file creation report 11016
  • VIES/EU sales list via VIES ELMA XML and Export VIES Report; VAT-VIES declaration reports
  • E-invoicing: XRechnung, ZUGFeRD and Peppol BIS 3.0 DE formats with a Buyer Reference setting on customers
  • Delivery reminders for vendors: terms, levels, texts, create, issue, test report, ledger entries
  • GoBD/GDPdU digital audit: Data Export record definitions, sources, table relations, Export Business Data report
  • BilMoG valuation in Exch. Rate Adjmt. Parameters and a Correction posting check in Gen. Jnl.-Post Batch
  • Intrastat DE extensions with submission channel, places of dispatch and receipt, physical inventory orders

Narrative written by Sonnet from the code diff and 30 Learn page summaries. In numbers: Germany (DE) localization of Business Central in BC29: 217 objects of its own, 63 W1 objects changed (92 fields and 4 events added), 1 W1 objects dropped. From the code; country apps outside the Base Application are not included yet.

By area

Area W1 objects changed Own objects Fields added
Finance 33 37 49
Purchases 9 46 11
eServices 0 45 0
Inventory 5 34 5
(no namespace) 0 30 0
Foundation 6 9 24
Peppol 0 7 0
FixedAssets 4 2 3
Security 2 2 0
CRM 2 0 0
Sales 1 1 0
ExpenseAgent 0 1 0
Manufacturing 0 1 0
Microsoft 0 1 0
Service 1 0 0
Utilities 0 1 0

Finance

Extends the W1 VAT Report framework with German fields, correction line types, ELMA5 and VIES ELMA XML export, and validation. It also adds the Data Export objects for digital audits, local VAT, VIES and G/L reports, and BilMoG exchange rate valuation.

Why: Learn describes ELMA5 VAT reports and corrections, BZSt-based EU sales lists, BilMoG valuation at year-end and GoBD/GDPdU audit exports.

Objects: table/740 “VAT Report Header”, table/741 “VAT Report Line”, table/743 “VAT Report Setup”, codeunit/743 “VAT Report Export”, codeunit/11001 “VIES ELMA Xml” (own), report/741 “VAT Report Suggest Lines”, codeunit/597 “Exch. Rate Adjmt. Subscribers”, codeunit/11000 “Data Export Management” (own).

All 70 objects of Finance in the diff

Purchases

Adds the delivery reminder feature as own tables, pages, codeunits and reports, plus archiving options in Purchases & Payables Setup. Registration No. is added to Vendor Templ. and Purchase Line gets old order fields. Vendor reports (total-balance, detailed aging, payments list) are added.

Why: Learn documents delivery reminder setup, terms, levels, generation, issuing and the Vendor Payments List report.

Objects: table/5005270 “Delivery Reminder Header” (own), table/5005271 “Delivery Reminder Line” (own), codeunit/5005270 “Issue Delivery Reminder” (own), codeunit/5005271 “Create Delivery Reminder” (own), page/5005270 “Delivery Reminder” (own), report/5005340 “Create Delivery Reminder” (own), report/11507 “Vendor Payments List” (own), table/312 “Purchases & Payables Setup”.

All 55 objects of Purchases in the diff

eServices

Implements German e-document support for XRechnung, ZUGFeRD and Peppol BIS 3.0 DE, including import and export codeunits, format enum extensions, and e-document fields on sales and service headers and pages.

Why: Learn covers e-invoicing setup in Germany with XRechnung, Peppol BIS 3 and ZUGFeRD, including the mandatory Buyer Reference.

Objects: codeunit/13914 “XRechnung Format” (own), codeunit/13916 “Export XRechnung Document” (own), codeunit/13917 “Export ZUGFeRD Document” (own), codeunit/11035 “EDoc PEPPOL BIS 3.0 DE” (own), codeunit/13915 “Import XRechnung Document” (own), codeunit/13919 “Import ZUGFeRD Document” (own), enum/13914 “E-Document Buyer Reference” (own), pageextension/13914 “E-Document Customer Card DE” (own).

All 45 objects of eServices in the diff

Inventory

Adds physical inventory orders and recordings as own tables, plus Intrastat report extensions for DE with submission channel, filters and places of dispatch and receipt. W1 tables for tariff numbers, transaction specification and Intrastat lines are changed.

Why: Learn describes Intrastat export and printing and setting up submission channels (IDEV or eSTATISTIK.CORE).

Objects: codeunit/11029 “IntrastatReportManagementDE” (own), enum/11035 “Intrastat Submission Channel DE” (own), tableextension/11029 “Intrastat Report Line DE” (own), pageextension/11029 “Intrastat Report Subform DE” (own), table/5005350 “Phys. Inventory Order Header” (own), table/5005351 “Phys. Inventory Order Line” (own), table/11000 “Place of Dispatcher” (own), table/313 “Inventory Setup”.

All 39 objects of Inventory in the diff

(no namespace)

Contains the ELSTER VAT advance notification objects, electronic VAT declaration setup and buffer, XML creation report, Data Export Setup, and ELSTER permission set extensions. Upgrade and sandbox cleanup codeunits are also here.

Why: Learn explains exporting sales VAT advance notifications as XML to ELSTER using the ELSTER VAT Localization extension.

Objects: table/11021 “Sales VAT Advance Notif.” (own), page/11016 “Sales VAT Adv. Notif. Card” (own), page/11017 “Sales VAT Adv. Notif. List” (own), codeunit/11023 “Elster Management” (own), codeunit/11021 “Elster - Initialize” (own), report/11016 “Create XML-File VAT Adv.Notif.” (own), table/11023 “Elec. VAT Decl. Setup” (own), table/11009 “Data Export Setup” (own).

All 30 objects of (no namespace) in the diff

Foundation

Adds tax office, company number and authorization fields to Company Information, and DACH report selections including delivery reminder usage. Document-Print, Format Address and Report Selection Mgt. get local procedures.

Why: not explained by a Learn page in the input; the code shows the change, not the requirement.

Objects: table/79 “Company Information”, table/26100 “DACH Report Selections” (own), codeunit/229 “Document-Print”, codeunit/365 “Format Address”, codeunit/1901 “Report Selection Mgt.”, enumextension/26101 “Report Selection Usage Del. Rem.” (own), table/242 “Source Code Setup”, codeunit/11004 “Report Sel. Purch. Subscribers” (own).

All 15 objects of Foundation in the diff

Peppol

Provides PEPPOL 3.0 DE codeunits for sales and service validation, document and party info, context and subscribers, plus a format enum extension.

Why: not explained by a Learn page in the input; the code shows the change, not the requirement.

Objects: codeunit/37400 “PEPPOL30 DE Sales Validation” (own), codeunit/37401 “PEPPOL30 DE Service Validation” (own), codeunit/37402 “PEPPOL30 DE Doc Info” (own), codeunit/37403 “PEPPOL30 DE Party Info” (own), codeunit/37404 “PEPPOL30 DE Context” (own), codeunit/37405 “PEPPOL30 DE Subscribers” (own), enumextension/37400 “PEPPOL 3.0 Format DE” (own).

All 7 objects of Peppol in the diff

FixedAssets

Adds fields to Fixed Asset for BWR depreciation book code and premium depreciation, local Fixed Asset book value report 11011 and the AT list report, and a procedure in FA General Report.

Why: not explained by a Learn page in the input; the code shows the change, not the requirement.

Objects: table/5600 “Fixed Asset”, report/11011 “Fixed Asset - Book Value 03” (own), report/11100 “Fixed Assets - List AT” (own), codeunit/5626 “FA General Report”, table/5611 “Depreciation Book”, table/5612 “FA Depreciation Book”.

All 6 objects of FixedAssets in the diff

Security

Extends the LOCAL and LOCAL READ permission sets and adds delivery reminder permission set extensions.

Why: not explained by a Learn page in the input; the code shows the change, not the requirement.

Objects: permissionset/1001 “LOCAL”, permissionset/1002 “LOCAL READ”, permissionsetextension/5005270 “DR LOCAL” (own), permissionsetextension/5005271 “DR LOCAL READ” (own).

All 4 objects of Security in the diff

CRM

Changes the Export Contact and Export Segment Contact XML ports.

Why: not explained by a Learn page in the input; the code shows the change, not the requirement.

Objects: xmlport/5050 “Export Contact”, xmlport/5051 “Export Segment Contact”.

All 2 objects of CRM in the diff

Sales

Adds the Customer Total-Balance report and changes Sales Line Archive.

Why: not explained by a Learn page in the input; the code shows the change, not the requirement.

Objects: report/11003 “Customer Total-Balance” (own), table/5108 “Sales Line Archive”.

All 2 objects of Sales in the diff

ExpenseAgent

Adds a German expense event subscriber codeunit.

Why: not explained by a Learn page in the input; the code shows the change, not the requirement.

Objects: codeunit/6917 “Expense Event Subscriber DE” (own).

All 1 objects of ExpenseAgent in the diff

Manufacturing

Adds a DACH page extension for the Manufacturing Manager role center.

Why: not explained by a Learn page in the input; the code shows the change, not the requirement.

Objects: pageextension/11010 “Manufacturing Manager RC DACH” (own).

All 1 objects of Manufacturing in the diff

Microsoft

Adds a Certificate table.

Why: not explained by a Learn page in the input; the code shows the change, not the requirement.

Objects: table/11014 “Certificate” (own).

All 1 objects of Microsoft in the diff

Service

Changes the Service - Credit Memo report with document number label and caption procedures.

Why: not explained by a Learn page in the input; the code shows the change, not the requirement.

Objects: report/5912 “Service - Credit Memo”.

All 1 objects of Service in the diff

Utilities

Adds the GeneralMgt codeunit.

Why: not explained by a Learn page in the input; the code shows the change, not the requirement.

Objects: codeunit/11501 “GeneralMgt” (own).

All 1 objects of Utilities in the diff

Objects of its own

217 objects only this country has.

W1 objects it drops

Other versions

  • BC30: 284 objects differ from W1 (92 fields, 4 events added)

Source: country layer of the Base Application compared with W1 of the same version (data/code/diffs/country/).