Udostępnij ten wpis
Nie wiesz co to obsługa skryptów stron w BC? A może słyszałeś/słyszałaś o tym, ale nie wiesz do czego można to wykorzystać? A może nawet widziałeś/widziałaś tę funkcjonalność w akcji, ale nie wiesz jak ją zastosować w swojej codziennej pracy?
W tym artykule omówię kilka przykładów wykorzystania tego wspaniałego narzędzia i postaram się zainspirować Cię do włączenia obsługi skryptów stron do arsenału swoich ulubionych narzędzi Business Central. Nie omówię tutaj natomiast tego jak korzystać z narzędzia – poradnik z instrukcją obsługi narzędzia być może pojawi się na blogu niebawem, póki co odsyłam do oficjalnej dokumentacji.
Narzędzie obsługi skryptów stron w oficjalnej dokumentacji BC: Use page scripting tool for acceptance testing (preview) ↗. Warto zajrzeć również do zapowiedzi narzędzia na stronach dokumentacji dla wydania 2024 release wave 1: Use in-client page scripting tool for acceptance testing ↗.
Funkcjonalność w wersji zapoznawczej
Na chwilę pisania tego artykułu, narzędzie obsługi skryptów stron dostępne jest w wersji zapoznawczej (ang. preview) funkcjonalności. Oznacza to, że zarówno sama funkcjonalność, jak i dokumentacja z nią związana, mogą się zmienić. Postaram się to monitorować i będę informował Was na bieżąco o wszelkich zmianach.
Wstęp
Narzędzie obsługi skryptów stron (ang. Page Scripting Tool) zostało zapowiedziane dla wydania 2024 release wave 1 oraz wydane wraz z wersją major 24 w wersji zapoznawczej funkcjonalności i służy do nagrywania przeprowadzanych akcji na stronach w aplikacji Business Central, a następnie umożliwia odtwarzanie takiego nagrania. Zasada działania może przypominać nagranie i odtwarzanie makr w Excelu.
Nagrania w BC mają formę skryptu i mogą być zapisane do pliku w formacie języka YAML. Plik możemy przesłać do innej osoby, dzięki czemu ta będzie mogła odtworzyć go u siebie i zobaczyć krok-po-kroku w jaki sposób zrealizowaliśmy w aplikacji dany proces i odtworzyć go u siebie. Kroki skryptu, w trakcie lub po nagraniu, możemy modyfikować i warunkować. Możemy dodawać też kroki, które będą weryfikowały czy rezultat (np. wartość danego pola) jest zgodny z oczekiwaniami.
Powyższe cechy funkcjonalności sprawiają, że zarówno dla konsultantów, jak i super-użytkowników otwiera ona bardzo ciekawe możliwości jej użycia.
W rękach konsultanta
W rękach konsultanta, obsługa skryptów stron może być naprawdę potężnym narzędziem wspierającym go w tworzeniu dokumentacji projektowej i przenoszącym ją na nowy poziom. Umożliwia tworzenie zautomatyzowanych scenariuszy testowych, ale również ułatwia tworzenie tych tradycyjnych. Pomaga w tworzeniu dokumentacji czy instrukcji użytkownika. Umożliwia też tworzenie interaktywnych samouczków, czy po prostu skryptów do często powtarzalnych sekwencji czynności.
W rękach superusera
Tzw. super-użytkownicy oraz administratorzy systemu po stronie klienta, mogą za pomocą narzędzia tworzyć własne scenariusze testowe (np. gdy Partner żadnych nie dostarczył — wstyd!), czy scenariusze pod ekstremalne przypadki brzegowe, aby lepiej (i w sposób zorganizowany) przetestować wszelkie oddawane im do testów zmiany. Ponadto, dla tej grupy odbiorców narzędzia istnieje jeden szczególny przypadek użycia narzędzia obsługi skryptów stron. Jest to możliwość stworzenia skryptu z krokami do reprodukcji napotkanego w systemie błędu.
A teraz przyjrzyjmy się nieco bliżej każdemu z powyższych przypadków użycia narzędzia obsługi skryptów stron…
Tworzenie scenariuszy testowych
Tworzenie zautomatyzowanych scenariuszy testowych do zmian w ramach rozszerzeń PTE to chyba najczęściej przedstawiany przykład użycia obsługi skryptów stron i prawdopodobnie to właśnie idea wsparcia dla tworzenia scenariuszy testowych (i ich wykonywania) przyświecała Microsoftowi najbardziej podczas tworzenia tej funkcjonalności.
Nagraj scenariusz testowy
Po zakończeniu etapu programowania i wewnętrznych testów przygotowywanej dla klienta zmiany, jako konsultant możemy za pomocą narzędzia nagrać wszystkie kroki przejścia w BC przez przygotowywaną funkcjonalność i w ten sposób utworzyć skrypt dla pierwszego, podstawowego scenariusza testowego, który zapisujemy do pliku YAML (uprzednio go odpowiednio opisując).

Kolejne warianty scenariusza testowego
Jeżeli potrzebujemy więcej wariantów scenariuszy testowych do przetestowania danej funkcji, możemy powielić zapisany skrypt, z kopii usunąć niektóre kroki i w ich miejsce nagrać niektóre akcje ponownie, odpowiednio je zmieniając, aby uzyskać skrypt dla kolejnego scenariusza testowego. Możemy również zmieniać określane w skrypcie wartości takie jak ilości, kwoty, czy wartości innych pól, aby uzyskać skrypty dla różnych przypadków brzegowych. Każdy z wariantów zapisujemy do osobnego pliku YAML (pamiętajmy o prawidłowym opisaniu każdego skryptu).
Zapisane pliki możemy ewentualnie dalej edytować w dowolnym edytorze tekstowym (format języka YAML jest dosyć przejrzysty i prosty w edycji) – w ten sposób również można tworzyć różne warianty danego skryptu. Czasem zmiana niektórych właściwości edytując plik będzie szybsza niż ponowne dogrywanie zmienionych kroków czy zmiana parametrów bezpośrednio w narzędziu.
name: Zmiana kodu sprzedawcy na zamówieniach sprzedaży i aktualizacja wartości
wymiarów
description: "Nagranie testowe na potrzeby artykułu na blogu BC Foxer. "
start:
profile: BUSINESS MANAGER
steps:
- type: navigate
target:
- page: User Setup
description: Navigate to Konfiguracja użytkownika
- type: page-shown
source:
page: User Setup
modal: false
runtimeId: b12r
description: Page <caption>Konfiguracja użytkownika</caption> was shown.
- type: filter
target:
- page: User Setup
runtimeRef: b12r
operation: add
column:
field: User ID
scope: filter
description: Add filter for <caption>User ID</caption> on <caption>Konfiguracja
użytkownika</caption>
- type: input
target:
- page: User Setup
runtimeRef: b12r
- scope: filter
field: User ID
value: =Session.'User ID'
description: Input <value>Session.'User ID'</value> into <caption>Identyfikator
użytkownika</caption>
- type: copy-value
source:
- page: User Setup
runtimeRef: b12r
- repeater: Control1
- field: Salespers./Purch. Code
name: User Setup - Salespers./Purch. Code
valueType: string
description: Copy value from <caption>Kod sprzedawcy/kupującego</caption>
- type: close-page
target:
- page: User Setup
runtimeRef: b12r
description: Close page <caption>Konfiguracja użytkownika</caption>
- type: page-closed
source:
page: User Setup
runtimeId: b12r
description: Page <caption>Konfiguracja użytkownika</caption> was closed.
- type: navigate
target:
- page: Business Manager Role Center
- action: Sales Orders
description: Navigate to <caption>Zamówienia sprzedaży</caption>
- type: page-shown
source:
page: Sales Order List
modal: false
runtimeId: bbe4
description: Page <caption>Zamówienia sprzedaży</caption> was shown.
- type: invoke
target:
- page: Sales Order List
runtimeRef: bbe4
- action: Control_New
invokeType: New
description: Invoke New on <caption>Nowy</caption>
- type: page-shown
source:
page: Sales Order
modal: false
runtimeId: bbnl
description: Page <caption>Nowy - Zamówienie sprzedaży</caption> was shown.
- type: focus
target:
- page: Sales Order
runtimeRef: bbnl
- field: Sell-to Customer No.
description: Focus <caption>Nr nabywcy</caption>
- type: invoke
target:
- page: Sales Order
runtimeRef: bbnl
- field: Sell-to Customer No.
invokeType: Lookup
description: Invoke Lookup on <caption>Nr nabywcy</caption>
- type: page-shown
source:
page: lookup:Sell-to Customer No.
modal: false
runtimeId: bc95
description: Page <caption>Wybierz</caption> was shown.
- type: invoke
target:
- page: lookup:Sell-to Customer No.
runtimeRef: bc95
- repeater: repeater
description: Invoke row on <caption>Nabywca</caption>
- type: page-closed
source:
page: lookup:Sell-to Customer No.
runtimeId: bc95
description: Page <caption>Wybierz</caption> was closed.
- type: invoke
target:
- page: Sales Order
runtimeRef: bbnl
- field: Salesperson Code
invokeType: Lookup
description: Invoke Lookup on <caption>Kod sprzedawcy</caption>
- type: page-shown
source:
page: lookup:Salesperson Code
modal: false
runtimeId: bcab
description: Page <caption>Wybierz</caption> was shown.
- type: close-page
target:
- page: lookup:Salesperson Code
runtimeRef: bcab
description: Close page <caption>Wybierz</caption>
- type: page-closed
source:
page: lookup:Salesperson Code
runtimeId: bcab
description: Page <caption>Wybierz</caption> was closed.
- type: input
target:
- page: Sales Order
runtimeRef: bbnl
- field: Salesperson Code
value: =Clipboard.'User Setup - Salespers./Purch. Code'
description: Input <value>Clipboard.'User Setup - Salespers./Purch.
Code'</value> into <caption>Kod sprzedawcy</caption>
- type: focus
target:
- page: Sales Order
runtimeRef: bbnl
- field: Salesperson Code
description: Focus <caption>Kod sprzedawcy</caption>
- type: page-shown
source:
page: null
automationId: 8da61efd-0002-0003-0507-0b0d1113171d
caption: Potwierdź
modal: true
runtimeId: bcas
description: Page <caption>Potwierdź</caption> was shown.
- type: invoke
target:
- page: null
automationId: 8da61efd-0002-0003-0507-0b0d1113171d
caption: Potwierdź
runtimeRef: bcas
invokeType: Yes
description: Invoke Yes on <caption>Potwierdź</caption>
- type: page-closed
source:
page: null
runtimeId: bcas
description: Page <caption>Potwierdź</caption> was closed.
- type: validate
target:
- page: Sales Order
runtimeRef: bbnl
- field: Salesperson Code
operation: =
value: =Clipboard.'User Setup - Salespers./Purch. Code'
description: "Weryfikuj: <caption>Kod sprzedawcy</caption>
<operation>jest</operation> <value>Clipboard.'User Setup -
Salespers./Purch. Code'</value>"
Skrypt zapisany do pliku YAML — Skrypt YAML dla przykładu z poprzedniego zrzutu ekranu.
Wyślij scenariusze do klienta
Tak przygotowane skrypty w plikach YAML zawierające interaktywne scenariusze testowe wysyłamy do klienta. Ten może je odtwarzać (również używając narzędzia) i za ich pomocą testować zamówioną zmianę na środowisku testowym. Klient może uruchomić każdy ze skryptów w całości (przejście automatyczne przez wszystkie kroki i natychmiastowe wyświetlenie wyników każdego kroku i całego skryptu) lub śledzić każdą z akcji osobno uruchamiając skrypt krok-po-kroku.

Gdy potrzebny jest tradycyjny scenariusz
Jeżeli klient wymaga dostarczania scenariuszy testowych w tradycyjnej formie, po to by przekazać go w formie dokumentu (wydruku) użytkownikom do ręcznego przejścia każdego kroku procesu, nadal możemy wykorzystać pliki YAML do ich stworzenia. Czaty i asystenci AI (tj. Microsoft Copilot czy OpenAI ChatGPT) opierający swoje działanie na, najbardziej popularnym ostatnio, modelu GPT-4o, pozwalają na załączenie pliku do kontekstu rozmowy. Wystarczy zatem wgrać czatowi AI plik YAML wraz z krótkim opisem czym jest załącznik i podstawowym kontekstem, aby ten utworzył nam znakomity scenariusz testowy w formie pisanej.

Które AI lepsze do scenariuszy testowych?
Cały czas testuję, który AI lepiej radzi sobie z załączeniem pliku YAML jako źródła informacji do tworzonego scenariusza testowego. Zarówno ChatGPT z modelem GPT-4o, jak i Microsoft Copilot dają bardzo dobre rezultaty, choć różne. Nie wykluczam jednak, że różnice te mogą być przypadkowe. W obydwu narzędziach ponawiając generowanie odpowiedzi możemy trafić na lepsze lub gorsze odpowiedzi, dlatego trudno porównać wyniki 1:1.
Subiektywnie mogę ocenić, że ChatGPT częściej zwracał odpowiedź, która zbyt kurczowo i detalicznie trzymała się zawartości naszego skryptu, przez co w treści scenariusza testowego, który wygenerował pojawiały się informacje o typie kroku scenariusza i inne techniczne metadane samego skryptu. Copilot z kolei dawał odpowiedzi bardziej naturalne i nie wykraczające poza to co powinno znaleźć się w prawdziwym scenariuszu testowym.
Gdy chcemy uzyskać scenariusz testowy w języku polskim, w odpowiedziach od ChatGPT możemy natrafić na pojedyncze słowa (głównie w nazwach pól lub obiektów) w języku angielskim. Copilot częściej generuje scenariusz w 100% po polsku ze spójnym tłumaczeniem na przestrzeni całego scenariusza. Obydwa czaty w wersji polskiej nie potrafiły jednak zinterpretować i przetłumaczyć zmiennych wykorzystywanych przez narzędzie obsługi skryptów stron (widoczne na zrzucie powyżej w opisie kroku 3), a nie mają z tym problemu, gdy pracujemy z AI w języku angielskim. Angielskie scenariusze testowe, w przypadku obydwu narzędzi AI, są generowane z większą dbałością o detale.
Dodatkowo, narzędzie od OpenAI po załączeniu pliku ze skryptem ma w zwyczaju informować nas, że załączony plik YAML nie może być obsłużony przez jego standardowy parser, więc potraktuje go jako plik tekstowy. Nie ma to jednak wpływu na wynik. Ot taka ciekawostka.
Oczywiście może się zdarzyć, że zajdzie potrzeba naniesienia pewnych poprawek do scenariusza stworzonego przez AI na podstawie skryptu. Wciąż jednak, większą część roboty mamy wykonaną. Najważniejsze, że model GPT nie działał na oślep, bazował na dobrze opisanych krokach zautomatyzowanego scenariusza testowego zawartego w skrypcie YAML, zatem nie ma obawy o to, że AI zbyt kreatywnie lub luźno podejdzie do tematu.
Niech AI zrobi dla Ciebie jeszcze więcej
GPT-4o utworzył dla nas tradycyjną formę scenariusza testowego, ale wciąż musisz skopiować wynik zapytania do swojego edytora tekstowego (np. MS Word), po wklejeniu formatowanie się rozjeżdża, potem trzeba to jeszcze zapisać do formatu PDF, dołączyć do zadania w systemie ticketowym, czy to Asana, Jira, czy DevOps, itd. Wciąż dużo roboty pozostaje na nas! Ależ skąd… przecież żyjemy w erze automatyzacji i AI ;)
Zmodyfikuj zapytanie do AI i poproś o jednoczesne sformatowanie tekstu do składni języka MarkDown ↗ i zapisanie go do pliku. Plik .md ściągnij i umieść w repozytorium zmiany (np. w osobnym folderze na scenariusze testowe). Dostosuj kroki w swoim pipeline wdrożeniowym, aby pliki z folderu test case’ów były konwertowane do formatu PDF i dopięte do zgłoszenia klienta jako załączniki — to oczywiście tylko przykład.
W zależności od tego jakiego oprogramowania używasz do hostowania projektów, repozytoriów i wymiany zadań z klientem, tego typu dostosowanie pipeline’ów CI/CD może być większym lub mniejszym wyzwaniem, ale na pewno wartym świeczki.
Sprawdź jak Microsoft Copilot poradził sobie z konwersją i zapisaniem stworzonego przez siebie manualnego scenariusza testowego do pliku zgodnego ze składnią języka MarkDown. Poniżej wygenerowany plik przed jakimikolwiek poprawkami z mojej strony:
Jak wspomniałem w chmurce # Które AI lepsze do scenariuszy testowych?, gdy rozmawiamy z AI po angielsku, AI tworzy scenariusze testowe ze znacznie większą dbałością o detale, niż, gdy rozmawiamy i podajemy plik YAML w języku polskim. Dlatego poniżej wrzucam scenariusz testowy z angielskiej wersji artykułu, abyście mogli sami porównać wyniki:
Tworzenie dokumentacji rozszerzenia
Gdy scenariusze testowe (zwłaszcza te tradycyjne, z wykorzystaniem modelu AI i konwersji – spójrz na ¶ Tworzenie scenariuszy testowych – Gdy potrzebny jest tradycyjny scenariusz) mamy już przećwiczone, stworzenie innego typu dokumentacji do dowolnej funkcjonalności nie powinno stanowić problemu.
Każde rozwiązanie w formie rozszerzenia ISV musi posiadać dokumentację, aby mogło zostać opublikowane w Microsoft AppSource. Aczkolwiek nawet i bez tego wymagania, tworzenie dokumentacji do naszych rozwiązań powinno być czymś oczywistym, nawet jeżeli nie zamierzamy publikować naszego rozwiązania w AppSource lub gdy mówimy o rozszerzeniach PTE. Niestety nie zawsze jest to oczywiste… dlaczego? Odpowiedź na to pytanie to zdecydowanie materiał na osobny artykuł. Dzisiaj chciałbym jedynie zwrócić Waszą uwagę na to, że tworzenie dokumentacji nie musi już być uciążliwym zadaniem.
Utwórz kolejno strony dokumentacji
Za pomocą narzędzia do obsługi skryptów stron, nagrywamy kolejno przejścia przez każdą funkcję i każdy proces naszego rozwiązania. Skrypty wgrywamy do ulubionego czata AI z prośbą o utworzenie strony dokumentacji do funkcji X wykorzystując załączony scenariusz testowy. Wynik powinien być sformatowany zgodnie ze składnią języka MarkDown i zapisany do pliku .md. Po ewentualnej korekcie lub uzupełnieniu treści w wyniku od AI, możemy umieścić go wprost na naszym portalu dokumentacji. Jak?
Oprogramowania do hostowania dokumentacji, tj. docfx ↗ (z którego swoją drogą korzysta m.in. Microsoft przy portalu Microsoft Learn), akceptują pliki MarkDown. Wystarczy więc za ich pomocą utworzyć nowe artykuły w swoim portalu opartym na docfx i gotowe.
Tworzenie instrukcji użytkownika
Jeżeli klient prosi nas o przygotowanie instrukcji do danej funkcji w standardzie Business Central lub w ramach funkcjonalności z rozszerzeń, również możemy użyć tego czego nauczyliśmy się powyżej. Możemy nagrać skrypt z przejścia przez daną funkcję i poprosić AI o utworzenie instrukcji użytkownika z załączonego skryptu zawierającego scenariusz testowy, którą ewentualnie skorygujemy i uzupełnimy o część opisów, tak jak w ¶ Tworzenie scenariuszy testowych – Gdy potrzebny jest tradycyjny scenariusz. Do tego jeszcze przemyśleć kwestię automatyzacji konwersji .md do dokumentu PDF z wykorzystaniem firmowej papeterii i mamy to.
A może instrukcja zautomatyzowana?
Warto też pamiętać, że w związku z tym, że narzędzie do obsługi skryptów stron dostępne jest również dla klientów, możemy do tworzenia instrukcji podejść nieco inaczej. Odpowiednie przygotowanie użytkowników (przeszkolenie z obsługi narzędzia pod kątem uruchamiania skryptów i przechodzenia ich krok-po-kroku) pozwoli nam na przygotowanie prostych instrukcji w formie interaktywnego, zautomatyzowanego skryptu. Bez dodatkowego komentarza niestety, ale wciąż do zastosowania w niektórych przypadkach jako instrukcja typu prowadzenie za rękę krok-po-kroku.
Swoją drogą, moim zdaniem to czego brakuje w funkcjonalności narzędzia obsługi skryptów stron to właśnie możliwości wprowadzenia komentarza tekstowego na poziomie danego kroku.
Samouczki w odpowiedzi na „jak-to-zrobić”
A teraz wyobraźcie sobie dosyć codzienną sytuację w życiu konsultanta, gdy ten odbiera maila (lub zgłoszenie w systemie ticketowym) od klienta z zapytaniem typu „jak-to-zrobić”, np. jak wymusić na użytkownikach by wybierali Kod wariantu dla zapasów, które posiadają warianty?
W odpowiedzi na takie zapytanie, moglibyśmy po prostu odpisać wskazując, na jakiego page’a użytkownik powinien się udać, aby ustawić domyślne zachowanie systemu dla wszystkich kartotek zapasów oraz na jakiego, aby móc kontrolować zachowanie systemu dla danej kartoteki. Proste. Można użyć też zrzutów ekranu. Problem w tym, że użytkownik może wykorzystać naszą instrukcję teraz, a za kilka tygodni zgubić naszego maila/ticket i nie pamiętać, gdzie i co ustawiał. Mógł też nie podzielić się naszą odpowiedzią z kolegami (a chcielibyśmy, żeby to zrobił). Zatem zamiast odpisywać w treści maila lub zgłoszenia, spróbuj nagrać…
Samouczek dla użytkownika
Przy użyciu narzędzia obsługi skryptów stron nagrywamy przejście do strony Ustawienia zapasów i ustawienie kursora na polu Wariant obowiązkowy, jeśli istnieje (bez zmiany jego wartości – niech to użytkownik wykona sam). Skrypt zapisujemy pod nazwą Gdzie ustawić domyślny wariant obowiązkowy dla wszystkich zapasów.
Następnie, nagrywamy przejście do Kartoteki zapasu i ustawiamy kursor na polu Wariant obowiązkowy, jeśli istnieje na przykładowej kartotece, aby pokazać użytkownikowi, że może nadpisywać domyślne ustawienie dla wybranych kartotek. Skrypt zapisujemy pod nazwą Nadrzędne ustawienie wariantu obowiązkowego dla wybranej kartoteki zapasu.
Obydwa skrypty umieszczamy w repozytorium dokumentów projektowych, współdzielonym zasobie na SharePoint, w zespole na MS Teams czy w innym dogodnym miejscu, gdzie skrypty będą dostępne nie tylko dla zgłaszającego, ale dla wszystkich użytkowników klienta. Umieszczamy obydwa w folderze pod hasłem Jak wymusić Kod wariantu dla zapasów, które posiadają warianty, ewentualnie dorzucamy numer zgłoszenia. Na maila lub zgłoszenie odpisujemy umieszczając linki do skryptów. W ten sposób pomagamy klientowi w budowie jego własnej bazy wiedzy, a do tego dostarczamy interaktywną i zautomatyzowaną instrukcję z rozwiązaniem.
Automatyzacja powtarzalnych zadań
W sytuacji, gdy chcemy utworzyć automatyzację dla powtarzalnego zadania (w ramach pracy w BC), a wbudowane przepływy pracy lub Power Automate okazują się być niewystarczające, niedostosowane lub zbyt potężne, to zanim zaczniemy rozglądać się w kierunku rozszerzeń, możemy szukać pomocy w narzędziu obsługi skryptów stron.
Dla niektórych zadań powtarzalnych, możemy bowiem nagrać te czynności jako skrypt raz, a następnie odtwarzać go w dowolnym momencie, kiedy tego będziemy potrzebowali i tyle razy ile będziemy potrzebowali. Czemu tylko dla niektórych?
Ograniczenia obsługi skryptów stron
Ograniczenia są narzucane przez zakres możliwości samego narzędzia. Przykładowo, nie jesteśmy w stanie nagrać skryptu, który wykona tę samą czynność na dynamicznym zbiorze rekordów. Oczywiście możemy nagrać czynność filtrowania listy rekordów po danych kryteriach (również dynamicznych np. w zakresie dat względnych czy wartości pobranych z innych miejsc w systemie), ale ustawienie pętli, która następnie wykona pewne operacje na wszystkich rekordach spełniających filtr, nie jest możliwe. Jeżeli jednak znasz sposób na to – proszę napisz w komentarzu ↓ będę zadowolony jeżeli ktoś wyprowadziłby mnie tutaj z błędu.
Nagrywanie kroków reprodukcji błędu
Jeżeli jako użytkownik napotkałeś błąd w systemie i zamierzasz zgłosić go Partnerowi, nagraj skrypt z krokami potrzebnymi do reprodukcji tego błędu i prześlij go w zgłoszeniu! Będzie to ogromna pomoc w identyfikacji błędu oraz znaczące przyspieszenie całego procesu.
Nagranie skryptu z krokami prowadzącymi do reprodukcji błędu jest też gwarancją tego, że błąd faktycznie jest powtarzalny. Jeżeli podczas próby nagrania skryptu prowadzącego do powtórzenia błędu, ten jednak nie wystąpi, może to oznaczać, że błąd wynikał z nałożonych na siebie warunków oddziałujących na aplikację tylko w momencie pierwotnego pojawienia się błędu. W takim przypadku, użytkownik powinien najpierw wykonać dodatkowe próby lub testy, by upewnić się, czy błąd na pewno się już nie pojawia lub by ustalić w jakich warunkach występuje. Dzięki temu uchronimy się przed zgłoszeniem, na które otrzymalibyśmy odpowiedź: U mnie działa.
Warunkowanie skryptu
Gdy chcemy nagrać skrypt reprodukcji błędu, który występuje np. tylko w określonym dokumencie (np. w określonej fakturze lub określonym zamówieniu), należy pamiętać, by podczas nagrywania odpowiednio zafiltrować widok listy dokumentów. Chodzi o to, aby uzyskać widok listy z tylko pojedynczym rekordem, na którym błąd występuje (najlepiej filtrować więc np. po numerze dokumentu lub w ujęciu ogólnym – po wszystkich polach klucza tabeli). Będzie to gwarancja tego, że skrypt uruchomiony u konsultanta serwisowego, wybierze i otworzy ten sam dokument z listy, a nie przypadkowy.
Zakończenie
Oto i 6 moich osobistych przykładów wykorzystania narzędzia obsługi skryptów stron. Mam nadzieję, że zainspirowałem Cię do wypróbowania tej funkcjonalności w warunkach bojowych. Ja osobiście, gdy w trakcie pracy mam do stworzenia scenariusz testowy klientowi, który pracuje już na aktualnej wersji systemu (24+), to dzień od razu staje się jakiś przyjemniejszy 🌞. Trzymam też kciuki, aby do systemu trafiało coraz więcej tego typu narzędzi, o których śmiało mogę powiedzieć, że nie wiedziałem jak do tej pory mogłem bez nich żyć ;).
Ciekaw jestem czy masz jakieś inne przykłady na to w jaki sposób można wykorzystać Page Scripting Tool. Jeżeli tak, podziel się swoim doświadczeniem w sekcji komentarzy ↓
Wesołego nagrywania skryptów! ▶️⏯️⏺️