localization · BC29official - Microsoftreviewed - checked by Opus

Finland (FI)

Finland (FI) localization of Business Central 29. It covers bank reference files and reference numbers, domestic and foreign payment files, SEPA pain.001.001.09 export, automatic account codes, Finnish Intrastat, VAT-VIES declaration, depreciation differences, and Finnish service reports.

What FI changes in W1 49 objects, BC29

table/372 "Payment Buffer" +8
  • +field(32000000; "Message Type"; Option)
  • +field(32000001; "Invoice Message"; Text[250])
  • +field(32000002; "Invoice Message 2"; Text[250])
  • +field(32000003; "Payment Date"; Date)
  • +field(32000004; "Bal. Account No."; Code[20])
  • +field(32000005; "Attached to Line No."; Integer)
  • +key(Key3; "Document No.", "Bal. Account No.")
  • +key(Key4; "Payment Date", "Vendor No.", "Document No.")
table/475 "Vendor Payment Buffer" +8
  • +field(32000000; "Message Type"; Option)
  • +field(32000001; "Invoice Message"; Text[250])
  • +field(32000002; "Invoice Message 2"; Text[250])
  • +field(32000003; "Payment Date"; Date)
  • +field(32000004; "Bal. Account No."; Code[20])
  • +field(32000005; "Attached to Line No."; Integer)
  • +key(Key3; "Document No.", "Bal. Account No.")
  • +key(Key4; "Payment Date", "Vendor No.", "Document No.")
table/17 "G/L Entry" +1, 6 changed
  • +key(Key14; "Dimension Set ID")
  • Δkey(Key8; "Posting Date", "No. Series", "Document No.")
  • Δkey(Key9; "IC Partner Code")
  • Δkey(Key10; "G/L Account No.", "Job No.", "Posting Date")
  • Δkey(Key11; "Posting Date", "G/L Account No.", "Dimension Set ID")
  • Δkey(Key12; "Gen. Bus. Posting Group", "Gen. Prod. Posting Group")
  • Δkey(Key13; "VAT Bus. Posting Group", "VAT Prod. Posting Group")
report/393 "Suggest Vendor Payments" +1, 1 changed, 4 removed
  • +local procedure GetDomesticPaymentDate(EntryNo: Integer): Date
  • Δlocal event OnAfterGetVendLedgEntries(var VendorLedgerEntry: Record "Vendor Ledger Entry"; Vendor: Record Vendor; PostingDate: Date; LastDueDateToPayReq: Date; UseVendorPriority: Boolean; UseDueDateAsPostingDate: Boolean; DueDateOffset: DateFormula; Positive: Boolean; Future: Boolean; var PayableVendorLedgerEntry: Record "Payable Vendor Ledger Entry" temporary; var NextEntryNo: Integer; SkipExportedPayments: Boolean)
  • −local event OnAfterIncludeVendor(Vendor: Record Vendor; VendorBalance: Decimal; var Result: Boolean)
  • −local event OnBeforeClearNegative(var TempPayableVendorLedgerEntry: Record "Payable Vendor Ledger Entry" temporary; var AmountAvailable: Decimal; Vendor: Record Vendor; var IsHandled: Boolean)
  • −local procedure IncludeVendor(Vendor: Record Vendor; VendorBalance: Decimal): Boolean
  • −local procedure ClearNegative()
table/181 "Posted Gen. Journal Line" +6
  • +field(11201; "Auto. Acc. Group"; Code[10])
  • +field(32000000; "Reference No."; Code[20])
  • +field(32000001; "Message Type"; Option)
  • +field(32000002; "Invoice Message"; Text[250])
  • +field(32000003; "Invoice Message 2"; Text[250])
  • +field(32000004; "Payment date"; Date)
table/311 "Sales & Receivables Setup" +6
  • +field(32000000; "Invoice No."; Boolean)
  • +field(32000001; "Customer No."; Boolean)
  • +field(32000002; "Date"; Boolean)
  • +field(32000003; "Reference Nos."; Code[20])
  • +field(32000004; "Default Number"; Code[10])
  • +field(32000005; "Print Reference No."; Boolean)
table/79 "Company Information" +3, 3 changed
  • +field(13400; "Company Reg. No."; Code[20])
  • +field(13401; "Business Identity Code"; Code[20])
  • +field(13402; "Registered Home City"; Text[50])
  • Δfield(11; "Giro No."; Text[20])
  • Δfield(14; "Bank Account No."; Text[30])
  • Δfield(38; "IBAN"; Code[50])
table/81 "Gen. Journal Line" +6
  • +field(11201; "Auto. Acc. Group"; Code[10])
  • +field(32000000; "Reference No."; Code[20])
  • +field(32000001; "Message Type"; Option)
  • +field(32000002; "Invoice Message"; Text[250])
  • +field(32000003; "Invoice Message 2"; Text[250])
  • +field(32000004; "Payment date"; Date)
table/25 "Vendor Ledger Entry" +4
  • +field(32000000; "Message Type"; Option)
  • +field(32000001; "Invoice Message"; Text[250])
  • +field(32000002; "Invoice Message 2"; Text[250])
  • +field(32000003; "Payment Date"; Date)
table/288 "Vendor Bank Account" +2, 2 changed
  • +field(13400; "SEPA Payment"; Boolean)
  • +field(32000001; "Clearing Code"; Text[35])
  • Δfield(14; "Bank Account No."; Text[30])
  • Δfield(24; "IBAN"; Code[50])
report/394 "Suggest Employee Payments" 1 changed, 2 removed
  • Δlocal event OnAfterIncludeEmployee(Employee: Record Employee; EmployeeBalance: Decimal; var Result: Boolean)
  • −local procedure ClearNegative()
  • −local procedure IncludeEmployee(Employee: Record Employee; EmployeeBalance: Decimal): Boolean
table/112 "Sales Invoice Header" +1, 2 changed
  • +field(32000000; "Reference No."; Code[20])
  • Δlocal event OnGetPaymentReference(var PaymentReference: Text)
  • Δlocal event OnGetPaymentReferenceLbl(var PaymentReferenceLbl: Text)
table/122 "Purch. Inv. Header" +3
  • +field(32000000; "Message Type"; Option)
  • +field(32000001; "Invoice Message"; Text[250])
  • +field(32000002; "Invoice Message 2"; Text[250])
table/287 "Customer Bank Account" +1, 2 changed
  • +field(32000001; "Clearing Code"; Text[35])
  • Δfield(14; "Bank Account No."; Text[30])
  • Δfield(24; "IBAN"; Code[50])
table/38 "Purchase Header" +3
  • +field(32000000; "Message Type"; Option)
  • +field(32000001; "Invoice Message"; Text[250])
  • +field(32000002; "Invoice Message 2"; Text[250])
codeunit/12 "Gen. Jnl.-Post Line" +2
  • +procedure UpdateImportedRefPayment(GenJnlLine: Record "Gen. Journal Line"; var CustLedgEntry: Record "Cust. Ledger Entry")
  • +procedure UpdateExportedRefPayment(GenJnlLine: Record "Gen. Journal Line")
codeunit/442 "Sales-Post Prepayments" +1, 1 removed
  • +local procedure PostCustomerEntry(SalesHeader: Record "Sales Header"; TotalPrepmtInvLineBuffer: Record "Prepayment Inv. Line Buffer"; TotalPrepmtInvLineBufferLCY: Record "Prepayment Inv. Line Buffer"; DocumentType: Option Invoice,"Credit Memo"; PostingDescription: Text[100]; DocType: Enum "Gen. Journal Document Type"; DocNo: Code[20]; ExtDocNo: Text[35]; SrcCode: Code[10]; PostingNoSeriesCode: Code[20]; CalcPmtDisc: Boolean; SalesInvHeader: Record "Sales Invoice Header")
  • −local procedure PostCustomerEntry(SalesHeader: Record "Sales Header"; TotalPrepmtInvLineBuffer: Record "Prepayment Inv. Line Buffer"; TotalPrepmtInvLineBufferLCY: Record "Prepayment Inv. Line Buffer"; DocumentType: Option Invoice,"Credit Memo"; PostingDescription: Text[100]; DocType: Enum "Gen. Journal Document Type"; DocNo: Code[20]; ExtDocNo: Text[35]; SrcCode: Code[10]; PostingNoSeriesCode: Code[20]; CalcPmtDisc: Boolean)
table/1383 "Vendor Templ." +1, 1 changed
  • +field(32000000; "Business Identity Code"; Text[20])
  • Δfield(14; "Our Account No."; Text[20])
table/21 "Cust. Ledger Entry" +2
  • +field(32000000; "Reference No."; Code[20])
  • +field(32000001; "Disreg. Pmt. Disc. at Full Pmt"; Boolean)
table/262 "Intrastat Jnl. Batch" +2
  • +field(13400; "Reported Receipt"; Boolean)
  • +field(13401; "Reported Shipment"; Boolean)
table/263 "Intrastat Jnl. Line" +2
  • +field(13400; "Unit of Measure"; Code[10])
  • +field(13401; "Quantity 2"; Decimal)
table/5601 "FA Ledger Entry" +2
  • +field(13400; "Depr. Difference Posted"; Boolean)
  • +key(Key13; "FA No.", "FA Posting Group", "Depreciation Book Code", "FA Posting Category", "FA Posting Type", "Posting Date", "Depr. Difference Posted")
table/5606 "FA Posting Group" +2
  • +field(13400; "Depr. Difference Acc."; Code[20])
  • +field(13401; "Depr. Difference Bal. Acc."; Code[20])
table/111 "Sales Shipment Line" +1
  • +field(11200; "Auto. Acc. Group"; Code[10])
table/113 "Sales Invoice Line" +1
  • +field(11200; "Auto. Acc. Group"; Code[10])
table/115 "Sales Cr.Memo Line" +1
  • +field(11200; "Auto. Acc. Group"; Code[10])
table/121 "Purch. Rcpt. Line" +1
  • +field(11200; "Auto. Acc. Group"; Code[10])
table/123 "Purch. Inv. Line" +1
  • +field(11200; "Auto. Acc. Group"; Code[10])
table/125 "Purch. Cr. Memo Line" +1
  • +field(11200; "Auto. Acc. Group"; Code[10])
table/15 "G/L Account" +1
  • +field(11200; "Auto. Acc. Group"; Code[10])
table/23 "Vendor" +1
  • +field(32000000; "Business Identity Code"; Text[20])
table/242 "Source Code Setup" +1
  • +field(13400; "Depr. Difference"; Code[10])
table/296 "Reminder Line" +1
  • +field(32000000; "Reference No."; Code[20])
table/297 "Issued Reminder Header" +1
  • +field(32000000; "Reference No."; Code[20])
table/298 "Issued Reminder Line" +1
  • +field(32000000; "Reference No."; Code[20])
table/3 "Payment Terms" +1
  • +field(32000001; "Disreg. Pmt. Disc. at Full Pmt"; Boolean)
table/312 "Purchases & Payables Setup" +1
  • +field(32000000; "Bank Batch Nos."; Code[20])
table/317 "Payable Vendor Ledger Entry" +1
  • +field(32000000; "Attached to Line No."; Integer)
table/323 "VAT Business Posting Group" +1
  • +field(13400; "Print on Invoice"; Boolean)
table/324 "VAT Product Posting Group" +1
  • +field(13400; "Print on Invoice"; Boolean)
table/37 "Sales Line" +1
  • +field(11200; "Auto. Acc. Group"; Code[10])
table/39 "Purchase Line" +1
  • +field(11200; "Auto. Acc. Group"; Code[10])
table/49 "Invoice Post. Buffer" +1
  • +field(11200; "Auto. Acc. Group"; Code[10])
table/55 "Invoice Posting Buffer" +1
  • +field(11200; "Auto. Acc. Group"; Code[10])
table/9 "Country/Region" +1
  • +field(13400; "SEPA Allowed"; Boolean)
page/132 "Posted Sales Invoice" body changes only
page/134 "Posted Sales Credit Memo" body changes only
permissionset/1001 "LOCAL" body changes only
permissionset/1002 "LOCAL READ" body changes only

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

Overview

The Finnish layer is built mainly around electronic banking. Own objects in the 32000000 range handle bank reference file setup, import of customer payments (Import Ref. Payment), export of vendor payments (LUM and LMP reports), foreign payment types, and a Bank Nos Check codeunit. Reference No. fields are added to sales, reminder and journal tables, and payment message fields are added to purchase, ledger and payment buffer tables. Codeunit 13413 and report 13413 export SEPA credit transfers in pain.001.001.09.

Other local features are automatic account codes (tables 11203 and 11204, with an Auto. Acc. Group field on many lines), depreciation difference posting for fixed assets, Finnish Intrastat objects, VAT-VIES declaration support, a Print on Invoice flag on VAT posting groups, and a disregard payment discount at full payment option. Finnish service documents have their own reports.

Learn documents these under Finland Local Functionality, with pages on electronic banking, bank reference files, payment file generation, SEPA credit transfers, automatic account posting groups, Intrastat, VAT-VIES, and depreciation differences.

Key points

  • Bank reference files: setup, import of customer payments and linking to invoices by reference number, export of vendor payments in LUM and LMP formats
  • SEPA credit transfer export in pain.001.001.09 through codeunit 13413 and report 13413
  • Suggest Vendor Payments and Suggest Employee Payments are adapted, with payment message fields and domestic payment date handling
  • Automatic account codes via Automatic Acc. Header and Line tables and an Auto. Acc. Group field on G/L accounts and document lines
  • Depreciation difference between straight-line and declining balance posted by report 13402
  • Finnish Intrastat report support with setup page extensions and export codeunits
  • VAT-VIES declaration and VAT information printed on invoices through Print on Invoice flags
  • Finnish service contract, quote, order and invoice reports

Narrative written by Sonnet from the code diff and 12 Learn page summaries. In numbers: Finland (FI) localization of Business Central in BC29: 56 objects of its own, 49 W1 objects changed (79 fields and 0 events added). From the code; country apps outside the Base Application are not included yet.

By area

Area W1 objects changed Own objects Fields added
Bank 0 24 0
Finance 9 10 17
Purchases 15 0 32
Sales 14 0 17
Inventory 2 8 4
Service 0 8 0
Foundation 4 3 6
FixedAssets 2 2 3
Security 2 0 0
(no namespace) 0 1 0
HumanResources 1 0 0

Bank

Adds the Finnish electronic banking stack: bank reference file setup, import and export of reference payments, foreign payment types, bank payment suggestion, bank number check, and SEPA credit transfer export in pain.001.001.09.

Why: Learn describes domestic and foreign payments in LM03 and LUM2 formats, and the new SEPA format pain.001.001.09 exported by codeunit and report 13413.

Objects: codeunit/32000000 “Ref. Payment Management” (own), table/32000000 “Reference File Setup” (own), report/32000000 “Import Ref. Payment” (own), report/32000004 “Export Ref. Payment - LUM” (own), report/32000006 “Export Ref. Payment - LMP” (own), codeunit/13413 “Exp. SEPA CT pain.001.001.09” (own), report/13413 “Exp. SEPA CT pain.001.001.09” (own), page/32000000 “Bank Reference File Setup” (own).

All 24 objects of Bank in the diff

Finance

Adds reference number, message and payment date fields to general journal lines, automatic account codes, Finnish G/L register report, currency exchange rate import and VIES declaration support. Codeunit 12 gets procedures to update imported and exported reference payments.

Why: Learn covers automatic account codes and the VAT-VIES declaration as Finnish requirements.

Objects: table/81 “Gen. Journal Line”, table/181 “Posted Gen. Journal Line”, codeunit/12 “Gen. Jnl.-Post Line”, table/11203 “Automatic Acc. Header” (own), table/11204 “Automatic Acc. Line” (own), table/15 “G/L Account”, report/13400 “G/L Register FI” (own), reportextension/13412 “FI VAT VIES Decl. Tax Auth” (own).

All 19 objects of Finance in the diff

Purchases

Extends vendor and payment buffer tables with message type, invoice messages, payment date and business identity code. Suggest Vendor Payments gets a domestic payment date procedure, and vendor bank accounts get SEPA and clearing code fields.

Why: Learn describes generating domestic or foreign payment files from Suggest Vendor Payments.

Objects: report/393 “Suggest Vendor Payments”, table/372 “Payment Buffer”, table/475 “Vendor Payment Buffer”, table/25 “Vendor Ledger Entry”, table/288 “Vendor Bank Account”, table/38 “Purchase Header”, table/23 “Vendor”, table/312 “Purchases & Payables Setup”.

All 15 objects of Purchases in the diff

Sales

Adds Reference No. fields on invoices, customer ledger entries and reminders, with reference number setup in Sales & Receivables Setup. Also adds clearing code on customer banks and the disregard payment discount flag on customer entries.

Why: Learn explains reference numbers used to link customer payments to invoices.

Objects: table/311 “Sales & Receivables Setup”, table/112 “Sales Invoice Header”, table/21 “Cust. Ledger Entry”, table/287 “Customer Bank Account”, table/296 “Reminder Line”, table/297 “Issued Reminder Header”, table/298 “Issued Reminder Line”, codeunit/442 “Sales-Post Prepayments”.

All 14 objects of Sales in the diff

Inventory

Adds Finnish Intrastat reporting: management, export and totals codeunits, setup page extensions, a permission set extension and extra fields on Intrastat journal batch and line.

Why: Learn explains that EU companies must report trade with other EU countries and can file by file or manual form.

Objects: codeunit/13406 “Intrastat Report Management FI” (own), codeunit/13407 “Intrastat Report Exp. Ext. FI” (own), codeunit/13408 “Intrastat Report Get Totals” (own), pageextension/13407 “Intrastat Report Setup FI” (own), pageextension/13408 “Intrastat Report FI” (own), pageextension/13406 “Intrastat Report Setup Wzrd FI” (own), table/263 “Intrastat Jnl. Line”, table/262 “Intrastat Jnl. Batch”.

All 10 objects of Inventory in the diff

Service

Adds Finnish service document reports for contract, contract quote, quote, order and invoice, plus a document management codeunit and extensions of the posted service invoice.

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

Objects: report/13411 “Service - Invoice (FI)” (own), report/13410 “Service Contract (FI)” (own), report/13412 “Service Contract Quote (FI)” (own), report/13414 “Service Quote (FI)” (own), report/13416 “Service Order (FI)” (own), codeunit/13410 “Serv. Document Mgt. FI” (own), tableextension/13410 “Service Invoice Header FI” (own), pageextension/13410 “Posted Service Invoice FI” (own).

All 8 objects of Service in the diff

Foundation

Extends Company Information with company registration number, business identity code and registered home city. Adds the disregard payment discount flag on Payment Terms, SEPA Allowed on Country/Region and a depreciation difference source code.

Why: Learn describes the disregard payment discount option on payment terms for late full payments within tolerance.

Objects: table/79 “Company Information”, table/3 “Payment Terms”, table/9 “Country/Region”, table/242 “Source Code Setup”, codeunit/13461 “Serv. Report Selection Mgt. FI” (own), tableextension/13400 “SourceCodeSetupFI” (own), pageextension/13400 “SourceCodeSetupFI” (own).

All 7 objects of Foundation in the diff

FixedAssets

Adds depreciation difference calculation and posting with a report, a posting buffer, and new accounts on FA posting groups plus a posted flag on FA ledger entries.

Why: Learn says Finnish tax law requires posting the difference between straight-line and declining balance depreciation.

Objects: report/13402 “Calc. and Post Depr. Diff.” (own), table/13401 “Depr. Diff. Posting Buffer” (own), table/5606 “FA Posting Group”, table/5601 “FA Ledger Entry”.

All 4 objects of FixedAssets in the diff

Security

Changes the LOCAL and LOCAL READ permission sets to cover the Finnish objects.

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”.

All 2 objects of Security in the diff

(no namespace)

Adds the Intrastat file setup table for Finnish Intrastat export.

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

Objects: table/13400 “Intrastat - File Setup” (own).

All 1 objects of (no namespace) in the diff

HumanResources

Suggest Employee Payments is adapted for Finnish payment handling.

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

Objects: report/394 “Suggest Employee Payments”.

All 1 objects of HumanResources in the diff

Objects of its own

56 objects only this country has.

Other versions

  • BC30: 106 objects differ from W1 (79 fields, 0 events added)

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