Witajcie w kolejnym odcinku Microsoft Knowledge Nugget. Nazywam się Miro Peters i będę Waszym prowadzącym. Oto scenariusz. Pracujesz w Biznes Central i potrzebujesz jednej małej zmiany. Może to dodatkowe pole w kartotece klienta, inny krok zatwierdzania lub reguła sprawdzająca zamówienie przed zaksięgowaniem. Wtedy ktoś wspomina o rozszerzeniach AL, tabelach, stronach i kodeuntach i nagle ta mała prośba brzmi jak zupełnie nowy język. To rzeczywiście język, ale nie musi wydawać się tajemniczy. Wyobraź sobie Biznes Central jako budynek biurowy. AL daje programistom instrukcję jak dodać pokój, formularz lub nową zasadę nie wybijając dziur w samym budynku. To jest właśnie nasza dzisiejsza porcja wiedzy. Pod koniec tego odcinka dowiesz się czym jest programowanie w AL, dlaczego istnieją rozszerzenia i jak własne rozwiązania pasują do Biznes Central. Dlaczego firmy dostosowują Biznes Central? Biznes Central obsługuje już wiele codziennych zadań, finanse klientów, zamówienia sprzedaży, faktury magazynowe, wszystko w jednym połączonym systemie zamiast sterty arkuszy kalkulacyjnych i oddzielnych narzędzi. Dla wielu firm ta standardowa konfiguracja wystarcza do większości zadań, ale jest pewien haczyk. Żadne dwie firmy nie pracują w ten sam sposób. Weźmy dystrybutora żywności, który potrzebuje szczegółów partii towaru, których inna firma nigdy nie używa. Firma usługowa wymagająca specjalnego procesu zatwierdzania przed wystawieniem faktury. Sprzedawca detaliczny chcący wprowadzić poziomy nagród dla zniżek. Albo ktoś inny, kto potrzebuje formularza z własnymi polami tekstowymi i wewnętrznymi regułami. Firma nie zmieni swojego sposobu działania z powodu jednego brakującego pola i z pewnością nie chcesz, aby każda drobna prośba zamieniała się w ryzykowną zmianę całego systemu. Kiedyś był to większy problem. W starszych systemach programiści otwierali oryginalny kod i edytowali go bezpośrednio. Działało to do momentu pojawienia się kolejnej aktualizacji. Wtedy firma miała nową wersję od Microsoftu z jednej strony i własne zmiany z drugiej, a ktoś musiał to wszystko pogodzić, zanim aktualizacja mogła ruszyć dalej. Wyobraź sobie biuro, w którym każdy najemca przeciąga nowe kable przez ściany bez żadnego planu. Przez chwilę działa, ale gdy budynek wymaga napraw, nikt nie wie, który kabel do kogo należy. Biznes Central wybiera inną drogę. Zamiast przepisywać standardową aplikację, programiści tworzą oddzielny dodatek, który się z nią łączy, pozostawiając część standardową na miejscu, podczas gdy własne zmiany firmy współistnieją obok niej i działają poprzez wspierane punkty w systemie. To rozdzielenie ma znaczenie przy aktualizacjach, ponieważ Microsoft aktualizuje swoją część budynku, podczas gdy własne rozwiązania pozostają w swojej przestrzeni. Nadal potrzebne są testy i poprawki, w końcu to zmiany w oprogramowaniu, ale od programisty nie oczekuje się kopiowania i przerabiania każdej zmiany w oryginalnym kodzie Microsoftu. Co tak naprawdę dostosowuje firma? Do stosowania dodają dane. Standardowy system nie przechowuje na przykład instrukcji dostawy, wewnętrznej oceny ryzyka, poziomu członkostwa czy linku do systemu zewnętrznego. Dodają też ekrany, które prowadzą pracowników przez zadanie we właściwej kolejności. Wymuszają również zasady, takie jak wstrzymanie zamówienia w przypadku braku wymaganego dokumentu. Prace dostosowawcze pomagają również unikać ręcznych czynności. Wyobraźmy sobie pracowników co piątek kopiujących dane klientów z Biznes Central do innego narzędzia, ręcznie sprawdzających warunki, a następnie wysyłających raport do menedżera. Dobrze wykonana modyfikacja utrzymuje te informacje w Biznes Central, konsekwentnie stosuje reguły i daje pracownikom przycisk lub stronę dopasowaną do ich codziennej pracy. Obalmy pewien mit. Nie chcesz dostosowywać wszystkiego. Standardowy Biznes Central ma już wbudowanych wiele procesów. Zmienianie czegoś tylko dlatego, że wygląda inaczej niż w starym systemie, tworzy później dodatkową pracę. Dobre prace dostosowawcze zaczynają się od wyraźnego uzasadnienia biznesowego. Z jakim problemem mierzą się ludzie? Co powinno się dziać zamiast tego? Czy standardowy produkt potrafi już to zrobić? Kiedy standardowy produkt nie spełnia tej potrzeby, do gry wchodzi język Aleja. AL koncentruje się na samym Biznes Central, odczytując, dodając i zmieniając rekordy na poziomie bazy danych, kontrolując jednocześnie to, co dzieje się na stronach, raportach i w innych częściach aplikacji. Oblicza wartości, przenosi dane i wyświetla komunikaty, gdy reguły nie są spełnione podczas procesów. To dużo pracy jak na jeden język, ale AL nie jest uniwersalnym narzędziem do każdego typu oprogramowania i nie wybralibyśmy go do budowy publicznego sklepu internetowego, gry mobilnej czy samodzielnej aplikacji desktopowej. AL istnieje w jednym, konkretnym celu kształtowania danych i zachowania wewnątrz Biznes Central, aby system odpowiadał sposobowi działania firmy. I właśnie temu przyjrzymy się w dalszej części. AL i rozszerzenia bezpieczny model dodatków. AL oznacza Application Language, język aplikacji. To język programowania Microsoftu dla Biznes Central, który daje programistom ustrukturyzowany sposób tworzenia nowych funkcji biznesowych lub zmiany sposobu działania istniejących części systemu. Ale słowo rozszerzenie jest równie ważne co Aleja. Rozszerzenie to oddzielna aplikacja, którą można zainstalować w Biznes Central. Przechowuje ona prace dostosowawcze firmy, podczas gdy standardowa aplikacja Biznes Central pozostaje nietknięta. Myśl o tym nie jak o przepisywaniu podręcznika, ale jak o dodawaniu do niego zatwierdzonych stron. Och, stron, które przestrzegają oryginalnych zasad, nie usuwając ich. Może to brzmieć jak techniczny szczegół, ale zmienia sposób, w jaki praca dostosowawcza funkcjonuje z biegiem czasu. Wyobraź sobie, że firma potrzebuje nowego pomieszczenia biurowego dla specjalnego zespołu. Stare podejście oznaczało wyburzanie ściany w głównym budynku i zmianę samej konstrukcji. Może to rozwiązać bieżące potrzeby, ale przyszłe naprawy stają się koszmarem, ponieważ budynek nie zgadza się już z planami. Rozszerzenie działa inaczej. Budynek ma już drzwi, gniazdka elektryczne i zasady dodawania przestrzeni. Budujesz nowy pokój przez te zatwierdzone połączenia. Pokój należy do firmy, ale główny budynek wciąż może być serwisowany bez rozbierania każdej niestandardowej ściany. Dokładnie tak działają rozszerzenia w Biznes Central. Aplikacja bazowa zawiera standardowe rozwiązanie dostarczone przez Microsoft. Rozszerzenie może dodawać własne pola, ekrany, przyciski, reguły, raporty, a nawet łącza do innych systemów. Może reagować na określone działania biznesowe, ale robi to poprzez wspierane metody łączenia ze standardową aplikacją. Więc granice są wbudowane. To dobra rzecz. Bez granic małe, niestandardowe żądanie może sięgnąć głęboko w obszary, których nie powinno dotykać. Dzięki rozszerzeniom programista pracuje na jasnych typach obiektów i zdefiniowanych punktach połączeń, co ułatwia zrozumienie kodu, gdy ktoś inny musi go później przeczytać. To podejście idealnie pasuje również do chmurowej wersji Biznes Central. Microsoft regularnie aktualizuje usługę. Firma nadal musi przetestować swoje rozszerzenie po zmianach, zwłaszcza jeśli zależy ono od części produktu, które uległy zmianie. Oprogramowanie nigdy nie eliminuje potrzeby dbania o system, ale trzymanie własnego kodu oddzielnie zmniejsza szansę, że każda aktualizacja zmieni się w gruntowną przebudowę starych modyfikacji. Możesz usłyszeć, jak ludzie wspominają o CAL, gdy mówią o starszych systemach Dynamics NAW. CAL wywodzi się z wcześniejszego modelu programowania, w którym deweloperzy często zmieniali oryginalne obiekty aplikacji bezpośrednio. Wiele firm z powodzeniem używało takich systemów przez lata, ale wiązało to prace niestandardowe znacznie ściślej ze standardowym kodem, a aktualizacje wymagały mnóstwa pracy przy porównywaniu i naprawianiu. AL przesunął Biznes Central w stronę rozwoju opartego na aplikacjach. Nie oznacza to, że każde rozszerzenie jest duże lub skomplikowane. Jedno rozszerzenie może tylko dodać pole do rekordu klienta i wyświetlić je na znanym ekranie. Inne może zawierać pełne rozwiązanie dla określonego typu działalności Aplikacja żyje obok Biznes Central zamiast być ukrytą jego przeróbką. Możesz również zainstalować więcej niż jedno rozszerzenie. Firma może korzystać z rozszerzenia partnera oprogramowania do płac, innego do wysyłki oraz małego wewnętrznego rozszerzenia do reguł ważnych tylko dla niej. Biznes Central łączy je w jeden działający system, o ile przestrzegają one zasad platformy i nie wchodzą ze sobą w konflikt. Więc AL to nie tylko sposób na pisanie kodu. To język, którego programiści używają do tworzenia tych aplikacji dodatkowych, a rozszerzenia są kontenerem, który przenosi te zmiany do Biznes Central. Ten model pozwala firmie dostosować system, zachowując jednocześnie standardowy produkt w rozpoznawalnej i łatwiejszej w utrzymaniu formie. Otwórzmy teraz jedno z tych rozszerzeń i przyjrzyjmy się zawartym w nim elementom konstrukcyjnym. Główne elementy konstrukcyjne AL wewnątrz rozszerzenia aleja. Programiści pracują z obiektami. Obiekt to nazwana część aplikacji z jasno określonym zadaniem, takim jak przechowywanie informacji, wyświetlanie ekranu, uruchamianie reguły lub tworzenie dokumentu. Gdy zaczniesz postrzegać te zadania osobno, AL przestanie wyglądać jak jedna wielka ściana kodu. Zacznijmy od miejsca, w którym przechowywane są informacje biznesowe. Tabele przechowują dane w Biznes Central. Pomyśl o tabeli jak o cyfrowej kartotece dla jednego typu rekordów. Jedna szuflada może zawierać klientów, inna towary, a jeszcze inna zamówienia sprzedaży. Każdy rekord to jeden plik wewnątrz tej kartoteki. Tabela klientów zawiera jeden rekord dla każdego klienta. Tabela towarów zawiera jeden rekord dla każdego produktu. Jeśli firma potrzebuje informacji, których standardowy Biznes Central nie przechowuje, rozszerzenie może utworzyć własną tabelę, być może dla poziomów nagród, inspekcji sprzętu lub zatwierdzeń projektów. Pola to etykietołej miejsca wewnątrz każdego rekordu. Rekord klienta może zawierać nazwę, adres, warunki płatności i numer telefonu, ponieważ tabela klientów posiada pola dla tych szczegółów. Pola mogą zawierać tekst, daty, kwoty, odpowiedzi tak, nie lub wybór ze stałej listy. Pole może również wskazywać na inny rekord. Na przykład klient może zawierać pole identyfikatora nagrody. Zamiast wpisywać przypadkowy tekst, pracownicy wybierają poziom nagrody z oddzielnej tabeli nagród. To powiązanie utrzymuje dane w czystości, ponieważ wszyscy wybierają z tej samej znanej listy. Zatem tabele przechowują fakty. Ale jak ludzie widzą te fakty i jak z nimi pracują? Strony. Strona to ekran, który otwierasz w biznes central. Karta klienta jest stroną. Lista zamówień sprzedaży jest stroną. Strona kontroluje, co użytkownicy mogą przeglądać, wprowadzać, wyszukiwać i na czym mogą działać. Różne strony pasują do różnych zadań. Strona karty koncentruje się na jednym rekordzie naraz, np. na jednym kliencie lub jednym towarze. Strona listy pokazuje wiele rekordów w wierszach, co sprawdza się, gdy trzeba coś szybko przejrzeć, przefiltrować lub znaleźć. Strona arkusza wspiera pracę, w której ludzie wprowadzają lub przetwarzają kilka wierszy informacji jednocześnie. Tabela przechowuje informacje. Strona prezentuje je użytkownikowi. To rozdzielenie jest pomocne, ponieważ można zmieniać ekran bez zmiany miejsca przechowywania danych lub ponownie wykorzystać tę samą tabelę na wielu stronach, gdy różne zespoły potrzebują różnych widoków tych samych rekordów. A co, jeśli dane powinny się już znajdować w standardowym rekordzie Biznes Central? Zazwyczaj nie tworzy się nowej tabeli klientów tylko dlatego, że potrzebne jest jedno dodatkowe pole. Używa się wtedy rozszerzenia tabeli. Rozszerzenie tabeli dodaje Twoje pole do istniejącej tabeli klientów. Standardowy rekord klienta pozostaje na swoim miejscu, a Twoje rozszerzenie dodaje szczegóły firmy obok standardowych pól. Może to być identyfikator nagrody, uwaga dotycząca dostawy opiekun klienta lub pole łączące z inną częścią firmy. Jednak dodanie pola do tabeli nie powoduje jego automatycznego pole, grupę lub akcję do istniejącej strony. Jeśli firma wymaga, aby pracownicy wybierali poziom nagrody podczas przeglądania klienta, rozszerzenie strony może umieścić pole identyfikatora nagrody na karcie klienta, tam gdzie pracownicy już pracują. Dzięki temu środowisko pracy pozostaje znajome. Zamiast wysyłać użytkowników do osobnego, niestandardowego ekranu dla prostego szczegółu, rozszerzenie dodaje go do strony, którą już znają. Rozszerzenie strony może również dodać akcję, czyli przycisk lub polecenie menu uruchamiające zadanie. Na przykład karta klienta mogłaby zawierać akcję nagród, która otwiera listę nagród. W tle potrzebne jest miejsce na reguły biznesowe. Tym miejscem jest często obiekt CodeUnit. Obiekt CodeUnit zawiera procedury AL, czyli nazwane fragmenty kodu wykonujące określone zadanie. Pomyśl o tym, jak o zespole zaplecza, który wykonuje zadanie, gdy strona, raport lub inny proces prosi o pomoc. Załóżmy, że poziom nagrody decyduje o tym, jaki rabat przysługuje klientowi. Obliczenie rabatu powinno znajdować się w obiekcie CodeUnit, a nie na samej stronie karty klienta. Wtedy proces sprzedaży, raport lub przyszła strona mogą użyć tej samej reguły bez kopiowania jej w kilka miejsc. Jedna reguła, jedno miejsce do jej utrzymania. Biznes Central zawiera również inne typy obiektów do różnych zadań. Raporty zbierają dane i prezentują je w dokumencie lub układzie, takim jak faktura lub raport sprzedaży. Zapytania Quiris zadają ukierunkowane pytania dotyczące danych, na przykład, którzy klienci zamówili określony towar w danym okresie. Na przykład Amlporty pomagają wprowadzać dane lub wysyłać je w ustrukturyzowanym formacie, często gdy inny system musi wymienić informacje z Biznes Central. Złóż te elementy razem, a zobaczysz, jak wygląda małe rozszerzenie nagród dla klientów. Tabela nagród przechowuje każdy poziom i jego procent rabatu. Strony nagród pozwalają personelowi zarządzać tymi poziomami. Rozszerzenie tabeli klienta dodaje identyfikator nagrody do każdego klienta, a rozszerzenie strony karty klienta go wyświetla. Akcja strony otwiera listę nagród, a CodeUnit oblicza regułę rabatu. Każdy obiekt obsługuje jedną część zadania. Dzięki temu rozszerzenie jest łatwiejsze do odczytania, przetestowania i zmiany, gdy zasada biznesowa zmieni się za pół roku. Jednak reguła biznesowa często musi zostać uruchomiona w odpowiednim momencie, np. podczas księgowania zamówienia. Właśnie tutaj wkraczają wyzwalacze, triggery i zdarzenia, eventy. Zdarzenia, wyzwalacze i reguły biznesowe. Więc dodałeś pole nagrody klienta. Dobrze, oto właściwe pytanie. Kiedy Biznes Central powinno faktycznie użyć tego pola? Wyobraź sobie, że zamierzasz zaksięgować zamówienie sprzedaży. Zanim system utworzy ostateczne wpisy, chcesz przeprowadzić jedną dodatkową weryfikację. Może klient musi mieć zatwierdzony poziom nagród, zanim naliczy się rabat. Lub może wymagany dokument dostawy musi istnieć, zanim zamówienie będzie mogło przejść dalej. Chcesz wykonać to sprawdzenie w odpowiednim momencie, ale nie chcesz kopiować całego procesu księgowania sprzedaży do swojego rozszerzenia, tylko po to, by dodać jedną regułę. Ten proces już obsługuje wiele rzeczy w tle. Jeśli go skopiujesz, twoje rozszerzenie będzie musiało utrzymywać wszystkie te przyszłe zmiany. Niezbyt idealnie, dlatego język AL daje programistom kilka sposobów na uruchamianie kodu. To, który wybierzesz, zależy od tego, co musi się stać. Na początek wyzwalacze. Wyzwalacz to nazwane miejsce wewnątrz obiektu AL, w którym może zostać uruchomiony kod. Gdy ktoś zmienia wartość w polu tabeli, wyzwalacz uruchamia kod. Gdy strona otwiera się lub zamyka, wyzwalacz uruchamia kod. Raporty, zapytania, amlporty, tabele rozszerzenia, obiekty wszystkie mają takie miejsca, w których programista może dodać reguły. Weźmy pole ID nagrody u klienta. Gdy użytkownik wybierze poziom nagrody, może uruchomić się wyzwalacz walidacji. Kod sprawdza, czy klient jest zablokowany, czy poziom nagrody istnieje, czy inne pole wymaga aktualizacji. Sprawdzenie następuje dokładnie w momencie zmiany wartości, a nie później, gdy ktoś odkryje błąd. Wyzwalacze sprawdzają się dobrze, gdy reguła jest ściśle związana z tym obiektem. Ale Biznes Central używa również zdarzeń. Zdarzenie jest jak powiadomienie. Jedna część aplikacji wysyła je, gdy coś się wydarzy. Może ono ogłosić, że rekord ma zostać wstawiony, dokument zaksięgowany lub proces zakończony. Twoje rozszerzenie może nasłuchiwać tego powiadomienia. Kod, który nasłuchuje, nazywa się subskrybentem zdarzeń. Czeka on na określone, nazwane zdarzenie. Gdy Biznes Central wywoła to zdarzenie, subskrybent uruchamia własną procedurę. Standardowy proces pozostaje pod kontrolą. Na przykład, gdy Biznes Central zaczyna księgować zamówienie sprzedaży, wywołuje zdarzenie przed kontynuacją. Twoje rozszerzenie nagród otrzymuje to powiadomienie. Sprawdza ono identyfikator nagrody klienta i regułę rabatową. Następnie pozwala na kontynuację procesu lub przerywa go czytelnym komunikatem. Standardowy proces księgowania nadal należy do Biznes Central. Twoje rozszerzenie dodaje jedynie specyficzną regułę firmy w tym punkcie połączenia. Często będziesz słyszeć nazwy zdarzeń, takie jak on before lub on after. On before oznacza, że twój kod uruchamia się przed zakończeniem akcji. Jest to idealne rozwiązanie dla sprawdzeń, które mogą powstrzymać kolejny krok. Och, na przykład zatrzymanie zamówienia sprzedaży, jeśli warunek nie został spełniony. After oznacza, że akcja już się wydarzyła. Możesz wtedy zareagować, utworzyć powiązany rekord, zaktualizować notatkę lub rozpocząć inną pracę. Nazwy wskazują na czas, a czas ma znaczenie. Reguła, która uruchamia się po księgowaniu, nie może mu zapobiec. Reguła uruchomiona zbyt wcześnie może nie mieć potrzebnych danych, dlatego programiści wybierają zdarzenie w zależności od tego, co i kiedy ma zrobić reguła biznesowa. Kod może również uruchamiać się za pomocą akcji. Użytkownik klika przycisk, na przykład sprawdź status nagrody, a ta akcja wywołuje procedurę. Kod może też działać, gdy jeden obiekt wywołuje drugi przez zmienną. Brzmi to technicznie, ale jest proste. Jedna część rozszerzenia prosi drugą o wykonanie zadania. Zmienne pomagają w tym procesie. Zmienna to nazwane miejsce, które przechowuje wartość podczas działania kodu. Może to być liczba, tekst, data, a nawet rekord biznes central, jak bieżący klient. W języku AL deklarujesz je za pomocą VAR. Na przykład procedura nagród może użyć zmiennej o nazwie Customer, aby przechować rekord bieżącego klienta. Inna zmienna, Discount Percent, przechowuje wartość rabatu. To nie są trwałe rekordy, to tylko wartości robocze dla danej części kodu. Oto kwestia tego, gdzie przechowywany jest kod. Jeśli reguła może być używana w więcej niż jednym miejscu, umieść ją w kodeumcie. W ten sposób karta klienta, proces sprzedaży i raport mogą wywoływać tę samą procedurę rabatową, zamiast posiadać własne wersje. Pozwala to uniknąć znanego problemu. Jeden ekran stosuje 10% rabatu, inny 5% i nikt nie wie, której regule ufać. Utrzymywanie wspólnych reguł biznesowych w jednym kodeumcie daje rozszerzeniu jedno źródło prawdy. Zatem wyzwalacze Triggers obsługują reguły bliskie obiektom. Zdarzenia pozwalają rozszerzeniu reagować na procesy samego Biznes Central. Code Unity utrzymują wspólną logikę w jednym miejscu. Gdy te elementy zostaną połączone, kolejne pytanie brzmi, gdzie programiści piszą, testują i sprawdzają cały ten kod AL. Programowanie w AL zazwyczaj odbywa się w Visual Studio Code, często nazywanym VS Code. To Twoje miejsce pracy do tworzenia plików Aleja. Pozwala zachować porządek w rozszerzeniu. Pomaga znajdować problemy i wysyła gotową aplikację do środowiska Biznes Central w celu przetestowania. Jednak samo VS Code to jedynie ogólny edytor kodu. Wymaga rozszerzenia języka AL od firmy Microsoft. To rozszerzenie uczy VS Code, jak działa Biznes Central. Potrafi sugerować nazwy obiektów podczas pisania. Wskazuje błędy, zanim opublikujesz kod. Pomaga przeglądać pola i procedury. Łączy też Twój projekt ze środowiskiem Biznes Central. To oszczędza mnóstwo domysłów. Gdy rozpoczynasz nowy projekt AL możesz uruchomić w VS Code polecenie ALGO. Tworzy ono podstawowy folder projektu i pliki ustawień, w tym nazwę rozszerzenia, wydawcę, wersję oraz wybrane środowisko Biznes Central. Traktuj ten folder projektu jako warsztat rozszerzenia. Każdy plik AL powinien się tam znaleźć. Jeden plik może zawierać tabelę, inny rozszerzenie strony, a CodeUnit może mieć własny plik. Dzięki temu, gdy ktoś otworzy projekt, znajdzie właściwą część bez przewijania ogromnego dokumentu. Gdy kod jest gotowy do testów VS Code, kompiluję go do pakietu aplikacji. To wersja rozszerzenia gotowa do instalacji. Biznes Central odczytuje ten pakiet i dodaje rozszerzenie do środowiska. Jeśli brakuje pola, wystąpił błąd pisowni lub inny problem blokujący budowanie aplikacji VS Code, powiadomi Cię, zanim pakiet trafi do Biznes Central. Testowanie powinno odbywać się najpierw w środowisku typu Sandbox. Sandbox to oddzielne środowisko Biznes Central, w którym możesz wypróbować zmiany bez ryzyka dla pracy firmy. Publikujesz rozszerzenie, otwierasz strony, zmieniasz je, wprowadzasz rekordy testowe i sprawdzasz, czy reguły działają zgodnie z oczekiwaniami. Ta separacja jest ważna. Nie chcesz odkryć, że nowa reguła walidacji blokuje zamówienia sprzedaży, podczas gdy pracownicy próbują wykonywać swoją pracę. W Sandboxie możesz popełniać błędy, usuwać dane testowe, zmieniać kod i publikować go ponownie bez wpływu na rzeczywiste rekordy. Czasami kod działa, ale wynik wciąż wygląda na błędny. Wtedy z pomocą przychodzi debugowanie. Umieszczasz punkt przerwania w kodzie, uruchamiasz proces, a rozszerzenie wstrzymuje się w trakcie działania. W trakcie tej pauzy możesz sprawdzić wartości, takie jak bieżący klient, wybrany poziom nagrody lub procent rabatu obliczony przez procedurę. Zamiast zgadywać, dlaczego reguła zawiodła, możesz dokładnie zobaczyć, co otrzymał kod. Zespoły programistyczne używają również Git, aby przechowywać historię swojej pracy. Git rejestruje zmiany w plikach projektu w czasie. Jeśli ktoś zmieni regułę i spowoduje problem, zespół może porównać wersje, sprawdzić zmiany i w razie potrzeby je wycofać. Pomaga to również, gdy nad tym samym rozszerzeniem pracuje więcej niż jeden programista. Dla początkującego najlepszą drogą jest zaczynanie od małych rzeczy. Najpierw poznaj środowisko Biznes Central, a następnie utwórz jedną tabelę i jedną stronę. Następnie rozszerz standardową stronę, dodaj prostą regułę biznesową i dowiedz się, jak zdarzenia oraz dane instalacyjne pasują do projektu. Następnie połączmy te elementy w jeden mały dodatek, który firma mogłaby faktycznie wykorzystać. Prosty przykład Budowanie dodatku nagród dla klientów Jak właściwie wygląda prawdziwe rozszerzenie AL? Zanurzmy się w prosty przykład. Wyobraź sobie, że Twoja firma chce wprowadzić poziomy nagród dla klientów, z których każdy ma własny rabat. Zaczynasz od utworzenia tabeli nagród. Potraktuj to jak cyfrową szafkę na dokumenty, gdzie każdy plik zawiera identyfikator, opis i wartość procentową rabatu. Na przykład poziom złoty otrzymuje 10% zniżki. Twój personel musi zarządzać tymi poziomami bez używania narzędzi technicznych. Dodajesz więc dwie strony, stronę listy nagród, aby zobaczyć wszystkie poziomy oraz stronę karty nagrody, aby edytować lub utworzyć nową. Mogą oni dodać nowy poziom, zmienić procent lub przejrzeć zawartość bez otwierania środowiska programistycznego. Następnie rozszerzasz tabelę klientów o nowe pole o nazwie ID nagrody. To pole łączy każdego klienta z jednym rekordem nagrody, a Ty umieszczasz je bezpośrednio na stronie karty klienta, gdzie personel zarządza danymi. Następnie dodajesz akcję nagród, aby mogli otwierać listę nagród bezpośrednio z tej samej karty. Sama reguła rabatu znajduje się wewnątrz szkodeunita. Gdy inny proces potrzebuje rabatu klienta, wywołuje ten CodeUnit zamiast obliczać go wielokrotnie na każdej stronie. To wydajne rozwiązanie. CodeUnit instalacyjny dodaje początkowe poziomy nagród przy pierwszej instalacji rozszerzenia, a subskrybent zdarzeń sprawdza wybrany poziom nagrody podczas procesu sprzedaży, stosując regułę Twojej firmy w dokładnie odpowiednim momencie. To tylko małe rozszerzenie, ale zauważ, co zawiera tabele danych, ekrany użytkownika, akcje nawigacyjne, logikę ustawień i reguły biznesowe. Wszystko to współpracuje ze sobą. Na tym polega prawdziwa moc Aleja. W porządku. Podsumowanie. Twój punkt wyjścia w programowaniu w Aleja. Oto najważniejsze wnioski. Programowanie w Al pozwala dodawać do Biznes Central specyficzne funkcje potrzebne Twojej firmie bez ingerencji w główną aplikację. I nie musisz budować wszystkiego naraz. Zacznij od jednego pola, jednego rozszerzenia strony i jednej jasnej reguły. To Twój pierwszy element konstrukcyjny. Jeśli ta porcja wiedzy okazała się pomocna, zasubskrybuj nas na swojej ulubionej platformie podcastowej i udostępnij ją komuś, kto dopiero zaczyna pracę z Biznes Central. Dołącz do nas następnym razem, gdy dołożymy kolejny element układanki. Nazywam się Merko Peters, a to był kolejny odcinek Microsoft Knowledge Nugget w M365FM.