Tinklaraštis
AL plėtiniai ir bazinės programos keitimas: saugus naujinimui pritaikymo būdas
Brangiausia NAV laikų klaida buvo tiesioginis bazinės programos redagavimas. Tuo metu tai atrodė efektyvu ir tyliai įkeisdavo ateitį. „Business Central” plėtinių modelis egzistuoja tam, kad ši klaida taptų neįmanoma, ir suprasti, kodėl, verta kiekvienam.
Kaip senasis būdas įkalino klientus
Klasikiniame NAV pritaikymas reiškė standartinio objekto atidarymą C/AL aplinkoje ir jo kodo keitimą vietoje. Jūsų logika ir „Microsoft” logika tapdavo vienu susipynusiu failu. Tai veikė, kol atkeliaudavo kita versija, ir tada kiekvienas pakeistas objektas turėjo būti rankiniu būdu sulietas su nauju „Microsoft” kodu, eilutė po eilutės, konfliktas po konflikto.
Kuo daugiau pritaikydavote, tuo sunkesnis ir rizikingesnis tapdavo kiekvienas naujinimas. Daugelis organizacijų tiesiog nustojo atsinaujinti. Jos užšaldavo senoje versijoje, praleisdavo metų metus funkcijų ir pataisų, o galiausiai susidurdavo su gerokai didesne migracija nei tuo atveju, jei būtų likusios aktualios. Pritaikymas, sutaupęs savaitę pirmaisiais metais, penktaisiais kainuodavo ketvirtį. Tokias sistemas sutinkame iki šiol; jų išnarpliojimas yra didelė mūsų naujinimo darbų dalis.
Kaip AL plėtiniai jus apsaugo
„Business Central” neleidžia redaguoti bazinės programos. Vietoj to jūsų kodas gyvena atskirame plėtinyje, kuris yra šalia „Microsoft” kodo, niekada jo viduje. Laukus, puslapius ir logiką pridedate savo objektuose, o į standartinį elgesį įsijungiate per įvykių prenumeratorius (event subscribers), o ne jį perrašydami.
codeunit 50100 "Sales Header Subscriber"
{
[EventSubscriber(ObjectType::Table, Database::"Sales Header", OnAfterValidateEvent, "Sell-to Customer No.", false, false)]
local procedure OnAfterValidateSellToCustomer(var Rec: Record "Sales Header")
begin
Rec.Validate("Shortcut Dimension 1 Code", GetDefaultDepartment(Rec."Sell-to Customer No."));
end;
}
„Microsoft” paskelbia įvykį; jūs jį užprenumeruojate. Jūsų kodas suveikia tinkamu momentu nepaliesdamas nė vienos bazinio objekto eilutės. Kai „Microsoft” išleidžia naują to objekto versiją, jūsų prenumeratorius lieka nepaveiktas, nes niekada nebuvo įsiūtas.
Riba tarp jūsų kodo ir „Microsoft” kodo dabar yra aiški ir matoma. Naujinimai nustoja būti suliejimo maratonais ir tampa tik jūsų plėtinio kompiliavimo bei elgesio su nauja baze patvirtinimu.
Ką tai reiškia du kartus per metus vykstantiems naujinimams
„Business Central” išleidžia du didelius naujinimus per metus, o SaaS aplinkoje jie atkeliauja automatiškai. Su baziniais pakeitimais toks ritmas būtų nevaldomas. Su plėtiniais tai įprasta rutina: išbandote savo programą su būsimu leidimu izoliuotoje aplinkoje (sandbox), pataisote tai, ką platforma nurodo, ir judate toliau. Liekate aktualūs pagal numatytuosius nustatymus, o atotrūkis tarp jūsų versijos ir naujausios niekada nespėja išaugti į migraciją.
Pirmiausia standartas, paskui pritaikymas
Plėtinių modelis skatina discipliną, kurią taikome kiekviename darbe: pirmiau ieškoti standartinės funkcijos, o tik tada rašyti kodą. Su kiekvienu leidimu „Business Central” perima vis daugiau to, kam anksčiau reikėjo pritaikymo: tvirtinimus, dokumentų siuntimą el. paštu, banko importus ir kt.
Pigiausias plėtinys yra tas, kurio niekada neparašėte. Kiekvienas reikalavimas, įgyvendintas konfigūracija, o ne kodu, yra tai, ko nekuriate, netestuojate ir netempiate per būsimus naujinimus.
Ilgalaikių kaštų vaizdas
Plėtiniai iš pradžių reikalauja šiek tiek daugiau disciplinos, nes projektuojate aplink įvykius ir paskelbtas sąsajas, o ne redaguojate, kas patogu. Nauda kaupiasi:
- Naujinimai tampa nuspėjami, mažos rizikos ir dažni
- Pritaikymai yra izoliuoti, testuojami ir lengvai perduodami
- Galite įdiegti naujas standartines funkcijas neišnarpliodami seno kodo
Tikrieji sistemos kaštai yra ne tai, ką sumokate ją sukurdami, o tai, ką mokate gyvendami su ja dešimtmetį. Naujinimui saugus būdas išlaiko šią ilgąją uodegą mažą, o būtent ten ir nueina didžioji ERP biudžeto dalis.
Nešate senus pakeitimus arba planuojate naujus pritaikymus? Papasakokite savo istoriją ir parodysime, kaip sukurti juos saugiai naujinimui.