Business Central Lithuanian IBAN Bank Account Autofill

Autorius: Evaldas Jablonskas
Atnaujinta: 2026-06-28

Automatinis banko duomenų užpildymas pagal lietuvišką IBAN

Business Central Lithuanian IBAN Bank Account Autofill – praktinis Microsoft Dynamics 365 Business Central AL extension portfolio projektas.

Šio projekto idėja paprasta: kai vartotojas įveda lietuvišką IBAN numerį, Business Central iš jo paima banko kodą ir automatiškai užpildo pirkėjo arba tiekėjo banko sąskaitos rekvizitus.

Evaldas Jablonskas Business Central Lithuanian IBAN Bank Account Autofill portfolio projektas
Evaldas Jablonskas – Business Central Lithuanian IBAN Bank Account Autofill. Microsoft Dynamics 365 Business Central / NAV programuotojo AL extension portfolio projektas, skirtas automatiniam banko duomenų užpildymui pagal lietuvišką IBAN.

Ką daro šis extension?

  • Nuskaito lietuvišką IBAN numerį
  • Iš IBAN ištraukia Lietuvos banko kodą
  • Ieško banko įrašo EVK Bank Directory kataloge
  • Automatiškai užpildo pirkėjo banko kortelę
  • Automatiškai užpildo tiekėjo banko kortelę
  • Sumažina rankinį duomenų įvedimą ir klaidų tikimybę

Kodėl šis projektas aktualus?

Business Central sistemoje pildant Customer Bank Account arba Vendor Bank Account kortelę, dalį banko rekvizitų dažnai tenka įvesti rankiniu būdu.

Kai tie patys bankų duomenys kartojasi daugelyje pirkėjų ar tiekėjų kortelių, toks darbas tampa neefektyvus. Vartotojas turi tiksliai įvesti banko pavadinimą, SWIFT kodą, adresą, miestą, pašto kodą ir kitus kontaktinius duomenis.

Lietuviškame IBAN numeryje jau yra banko kodas, todėl šią informaciją galima panaudoti automatiniam banko duomenų užpildymui.

Lietuviškas IBAN gali būti naudojamas ne tik kaip banko sąskaitos numeris, bet ir kaip praktinis duomenų šaltinis banko kodui nustatyti Business Central sistemoje.

Praktinis veikimo pavyzdys

Vartotojas įveda lietuvišką IBAN numerį:

LT604010051004405214

Šiame IBAN banko kodas yra:

40100

Pagal šį kodą Business Central ieško įrašo EVK Bank Directory kataloge. Jeigu bankas randamas, jo rekvizitai automatiškai perkeliami į Customer Bank Account arba Vendor Bank Account kortelę.

Veikimo logika:
IBAN → banko kodas → EVK Bank Directory → Customer / Vendor Bank Account

Kokius duomenis užpildo?

Pagal bankų katalogo įrašą extension gali užpildyti šiuos Customer Bank Account arba Vendor Bank Account laukus:

Tai sumažina rankinio darbo kiekį ir padeda palaikyti nuoseklesnius banko rekvizitus skirtingose pirkėjų bei tiekėjų kortelėse.

Techninė realizacija

Sprendime verslo logika atskirta nuo vartotojo sąsajos.

Page extension objektai naudojami tam, kad būtų sureaguota į IBAN lauko pakeitimą standartinėse Business Central kortelėse:

Pati banko kodo ištraukimo, bankų katalogo paieškos ir laukų užpildymo logika iškelta į bendrą codeunit.

Toks sprendimas leidžia išvengti logikos dubliavimo, nes pirkėjo ir tiekėjo banko sąskaitų kortelėse naudojamas tas pats principas.

Esminė techninė mintis: vartotojo sąsaja tik sureaguoja į IBAN pakeitimą, o pagrindinė banko duomenų paieškos ir užpildymo logika laikoma atskiroje AL codeunit dalyje.

Kodėl nenaudojamas CurrPage.SaveRecord()?

Šiame sprendime sąmoningai nenaudojamas CurrPage.SaveRecord().

Automatinis įrašo išsaugojimas lauko validacijos metu gali sukelti nepageidaujamą šalutinį poveikį. Vartotojas dar gali būti neužbaigęs kortelės pildymo, todėl priverstinis įrašo išsaugojimas nebūtų geras sprendimas.

Extension užpildo reikalingus laukus, o įrašo išsaugojimas paliekamas standartiniam Business Central veikimui ir vartotojo veiksmams.

Kodėl neperrašomas banko sąskaitos Code laukas?

Projektas nekeičia banko sąskaitos Code lauko.

Business Central aplinkoje šis laukas dažnai naudojamas kaip vidinis identifikatorius. Įmonės gali turėti savo taisykles, kaip koduojamos pirkėjų arba tiekėjų banko sąskaitos.

Todėl automatizavimas pildo banko rekvizitus, bet nekeičia vartotojo arba įmonės pasirinkto banko sąskaitos kodo.

Elgsena, kai banko kodas nerandamas

Jeigu pagal IBAN rastas banko kodas neegzistuoja EVK Bank Directory kataloge, klaida nemetama.

Vartotojas gali tęsti darbą ir banko duomenis užpildyti rankiniu būdu. Toks veikimas pasirinktas todėl, kad bankų katalogas gali būti nepilnas arba dar neatnaujintas.

Automatizavimas čia veikia kaip pagalbinė funkcija, o ne kaip griežtas validavimo mechanizmas.

Šis extension padeda greičiau užpildyti banko rekvizitus, bet neperima visos duomenų kontrolės iš vartotojo ir nekeičia standartinio Business Central įrašo išsaugojimo elgesio.

Apribojimai

Šis projektas nėra pilna IBAN validavimo sistema. Jis netikrina IBAN checksum ir negarantuoja, kad įvestas IBAN numeris yra galiojantis.

Taip pat projektas negarantuoja, kad bankų kataloge esantys duomenys visada yra aktualūs. Production aplinkoje reikėtų aiškiai apsibrėžti, kas prižiūri bankų katalogą ir kaip jis atnaujinamas.

Projektas sukurtas kaip praktinis Business Central AL development portfolio pavyzdys.

Ką šis projektas demonstruoja?

Šis projektas demonstruoja kelis praktinius Microsoft Dynamics 365 Business Central AL development aspektus:

Kodėl tai tinka mano portfolio?

Šis projektas papildo mano techninių darbų kryptį: Microsoft Dynamics 365 Business Central / NAV programavimas, AL development, integracijos, ataskaitos, duomenų apdorojimas ir verslo procesų automatizavimas.

Business Central Lithuanian IBAN Bank Account Autofill nėra teorinis pavyzdys. Tai mažas, aiškus ir praktiškas extension, parodantis, kaip Business Central sistemoje galima automatizuoti pasikartojantį duomenų pildymo procesą.

GitHub repository

Source code is available on GitHub:

Business Central Lithuanian IBAN Bank Account Autofill

English summary

Business Central Lithuanian IBAN Bank Account Autofill is a Microsoft Dynamics 365 Business Central AL extension that automatically fills Lithuanian customer and vendor bank account details based on the bank code found in the IBAN number.

The project demonstrates AL development, page extensions, codeunit-based business logic, a configurable bank directory, and a practical automation scenario for Business Central.


Grįžti į pagrindinį puslapį