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:

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.

← Visi straipsniai

Papasakokite savo istoriją.

Aprašykite, ko jums reikia, ir mes grįšime su sąžiningu, nemokamu įvertinimu — be jokių įsipareigojimų.

Gauti nemokamą įvertinimą