Konsola

Konsola służy do wypróbowania fragmentu kodu Ninox, zanim umieścisz go w bazie: piszesz go, uruchamiasz i od razu widzisz wynik.

Konsola istnieje od wersji 3.1. Debugery, „Sprawdź”, „Formatuj” i autouzupełnianie JavaScriptu pojawiają się w wersji 3.2.0 (beta).

Karta Konsola pozwala pisać kod Ninox i od razu go wykonywać, jak w interpreterze, a następnie go dopracowywać: sprawdzanie bez wykonywania, debuger krok po kroku, debuger z odtwarzaniem.

Karta jest zarezerwowana dla administratorów. Wyświetla wyłącznie swoją ikonę, okno terminala, między kartami Śledzenie debugowania i Błędy; jej nazwa pojawia się po najechaniu kursorem. Można ją wyłączyć w panelu Ustawienia Ninext, w sekcji „Menedżer skryptów”.

Wybór kontekstu wykonania

Kod wykonuje się w kontekście rekordu, jak formuła jego tabeli — albo bez rekordu:

KontekstDziałanie
Brak śr.Brak rekordu: kod jest obliczany jak kod globalny.
Aktywny rekordRekord wyświetlany na pierwszym planie w Ninox. Kontekst podąża za zmianami rekordu.
RekordWybrany przez Państwa rekord spośród otwartych w oknach Ninox albo za pomocą Wybierz inny rekord…, co otwiera okno wyboru (tabela, wyszukiwanie, lista rekordów).
FormułaRekord zwracany przez wpisaną przez Państwa formułę, na przykład record(Customer, 12). Formuła jest obliczana ponownie przy każdym wykonaniu.

Pasek kontekstu przypomina wybrany kontekst; jego krzyżyk go resetuje.

Pisanie kodu

Edytor Konsoli oferuje:

  • kolorowanie składni Ninox;
  • autouzupełnianie funkcji, tabel, pól i słów kluczowych podczas pisania lub skrótem Ctrl + Spacja;
  • podkreślanie błędów (czerwona falista linia) i ostrzeżeń (bursztynowa kropkowana linia) podczas pisania, ze znacznikiem ⛔ lub ⚠ na marginesie;
  • podświetlanie pozostałych wystąpień zaznaczonego słowa;
  • przycisk Kopiuj w prawym górnym rogu, widoczny po najechaniu na edytor;
  • uchwyt pod edytorem, który reguluje jego wysokość.

Autouzupełnianie JavaScriptu w blokach natywnych

W bloku #{ … }# Konsola oferuje taką samą pomoc przy pisaniu jak konsola przeglądarki, dostosowaną do tego, co blok faktycznie otrzymuje:

  • widoczne zmienne i parametry Ninox, w postaci JavaScriptowej, wraz z typem;
  • lokalne funkcje Ninox, ui, database oraz callback, gdy blok jest zadeklarowany jako :callback lub :async;
  • po kropce — składowe obiektu, a w przypadku rekordu nazwy jego pól; nazwa, która nie jest poprawnym identyfikatorem JavaScript, jest wstawiana w postaci ['…'];
  • w nagłówku #{: — typy; po :nid( lub :rid( — lista tabel.

Ta pomoc istnieje tylko w Konsoli.

Wykonywanie

Trzy tryby uruchamiania w Konsoli

Zielony przycisk Uruchom uruchamia kod, podobnie jak Ctrl + Enter (⌘ + Enter na Macu). Jego strzałka rozwija trzy tryby:

TrybDziałanie
UruchomWykonuje kod jednym ciągiem i wyświetla wynik.
OdtwarzanieWykonuje kod raz, a następnie pozwala przeglądać jego przebieg do przodu i do tyłu.
Krok po krokuWykonuje kod instrukcja po instrukcji, zatrzymując się tam, gdzie Państwo zdecydują.

Wybrany tryb jest zapamiętywany; przycisk przyjmuje jego nazwę, a skrót klawiszowy uruchamia ten tryb. Wybranie trybu Krok po kroku lub Odtwarzanie od razu wyświetla pod edytorem pasek tego debugera, z poleceniami na miejscu, ale nieaktywnymi: nic nie jest wykonywane przed uruchomieniem. Po udanym wykonaniu kod zostaje ponownie sformatowany w edytorze; historia przechowuje tekst w takiej postaci, w jakiej go Państwo napisali.

Odczytywanie wyników

Wynik zapytania w Konsoli

Wyniki układają się jeden nad drugim, najnowszy na górze; Konsola przechowuje ich dwadzieścia. Każdy wynik podaje swój typ, kontekst, datę, godzinę i czas wykonania; kliknięcie jego nagłówka go zwija, krzyżyk go usuwa, a Wyczyść opróżnia listę.

  • Wartość prosta wyświetla się z przyciskiem Kopiuj.
  • Rekord wyświetla się z przyciskiem, który otwiera go w Ninox, a jego pola — w postaci drzewa.
  • Lista rekordów wyświetla się tak jak w widokach Ninox: formatowanie warunkowe, miniatury zdjęć, kolorowe kropki, szerokości kolumn. Jedna karta na każdy widok, w kolejności z Ninox; widoki, do których nie mają Państwo uprawnień, są ukryte. Gdy nie wszystkie karty się mieszczą, przycisk … („Więcej widoków”) wyświetla listę tych, które są poza polem widzenia. Kliknięcie wiersza otwiera rekord, a wiersze wczytują się po 100 w miarę przewijania.
  • Obiekty i listy wyświetlają się w postaci rozwijanego drzewa; każdą wartość można skopiować, a rekord otworzyć jednym kliknięciem.
  • Tekst zawierający JSON wyświetla się bez zmian; przycisk Drzewo rozwija go na żądanie.
  • Tekst dłuższy niż 100 000 znaków wyświetla się od razu, w skróconej postaci, z przyciskiem Pokaż wszystko; Kopiuj zawsze kopiuje cały tekst.

Podczas długiego obliczania pojawia się wskaźnik oczekiwania.

Sprawdzanie bez wykonywania

Sprawdź (Ctrl + Shift + Enter, ⌘ + Shift + Enter na Macu) kompiluje kod bez jego wykonywania: bez żadnego wpływu na dane. Zgłasza błędy i ostrzeżenia Ninox oraz stosuje kontrole właściwe dla Ninext:

  • funkcja interfejsu lub blok natywny umieszczone w do as server, gdzie nie miałyby żadnego efektu;
  • zmienna zadeklarowana, a potem nigdy nieodczytana;
  • składnia JavaScriptu w blokach natywnych;
  • HTML i CSS przekazywane do html().

Werdykt wyświetla się na pasku, a kursor ustawia się na pierwszej diagnostyce. Gdy dwa typy do siebie nie pasują, wyjaśnienie mówi, które. Jeśli kod jest poprawny, zostaje sformatowany.

Formatowanie

Formatuj (Ctrl + Shift + F, ⌘ + Shift + F na Macu) porządkuje kod bez jego wykonywania: wcięcia, odstępy wokół operatorów, nazwy pól zapisane tak, jak wyświetla je Ninox. JavaScript w blokach natywnych #{ … }# również jest formatowany: blok zapisany w jednym ciągu rozwija się pod wierszem, w którym się znajduje.

Kod zawierający błędy trzeba najpierw poprawić; a jeśli formatowanie groziłoby utratą części tekstu, zostaje pominięte, o czym Konsola informuje.

Ten sam przycisk istnieje w edytorach skryptów Ninox: pojawia się w prawym górnym rogu po najechaniu na edytor, a skrót klawiszowy również tam działa.

Debuger krok po kroku

Debuger krok po kroku: punkt przerwania i zmienne

Punkty przerwania

  • Kliknięcie na lewym marginesie lub na numerze wiersza ustawia punkt przerwania (czerwone kółko); drugie kliknięcie go usuwa.
  • Kliknięcie prawym przyciskiem albo Alt + kliknięcie otwiera panel Warunek zatrzymania: wykonanie zatrzymuje się w tym miejscu tylko wtedy, gdy Państwa warunek jest prawdziwy, na przykład i > 10. W tym samym panelu przycisk Wyłącz dezaktywuje punkt bez jego utraty (szary pierścień), a Włącz ponownie go przywraca. Punkt warunkowy to bursztynowe kółko.
  • Warunki są obliczane bez dostępu do bazy, za pomocą prostych funkcji (count, length, text, upper, lower, contains…). Jeśli warunku nie da się obliczyć, wykonanie zatrzymuje się dla bezpieczeństwa.
  • Gdy tylko ustawiony jest aktywny punkt przerwania, również Uruchom się na nim zatrzymuje, a następnie kontynuuje w trybie krok po kroku.

Polecenia

Sesja rozpoczyna się od pauzy na pierwszej instrukcji.

PolecenieDziałanie
Następny krokWykonuje instrukcję i zatrzymuje się przed następną.
PodkrokPosuwa się wyrażenie cząstkowe po wyrażeniu cząstkowym, pokazując uzyskaną wartość. Na wywołaniu funkcji lub na polu formuły schematu wchodzi do jego kodu.
WyjdźKończy bieżącą funkcję i wraca do miejsca wywołania.
KontynuujWykonuje kod do następnego punktu przerwania albo do końca.
ZatrzymajPrzerywa wykonywanie.

Gdy pasek jest wąski, polecenia wyświetlają już tylko swoją ikonę; ich nazwa pojawia się po najechaniu kursorem. Przycisk informacji (ⓘ) na pasku rozwija instrukcję obsługi debugera, a krzyżyk, który pojawia się po zakończeniu wykonywania, zamyka jego panel.

Gdy wykonanie wchodzi do funkcji lub formuły, jej kod otwiera się w nałożonej ramce, która wysuwa się z prawej strony, tak jak w Ninox. Można w niej ustawiać punkty przerwania: są one przypisane do nazwy funkcji, obowiązują dla wszystkich wywołań tej funkcji i dla kolejnych wykonań, a znikają po przeładowaniu strony. Ramka formuły schematu nosi oznaczenie formuła. Uchwyt na lewej krawędzi ramki reguluje, jaką część ramki znajdującej się pod spodem ona zakrywa. Blok #{ … }# liczy się jako jeden krok.

Zmienne

Na każdym kroku panel Zmienne znane na tym kroku podaje wartość i typ każdej zmiennej; wartość można rozwinąć i skopiować, a rekord otworzyć jednym kliknięciem. Zmienne, które istnieją, ale są poza zasięgiem, są wyszarzone.

Warto wiedzieć

Wykonanie jest rzeczywiście wstrzymywane przy każdej pauzie, a baza w tym czasie działa dalej: inni użytkownicy, interfejs programistyczny, wyzwalacze. To, co zostało już wykonane, pozostaje zastosowane, nawet jeśli Państwo przerwą. Pauza dłuższa niż dziesięć minut kończy wykonywanie.

Debuger z odtwarzaniem

Kod wykonuje się naprawdę, tylko raz i jednym ciągiem. Następnie przeglądają Państwo jego przebieg do przodu i do tyłu za pomocą poleceń trybu krok po kroku — Następny krok, Podkrok, Wyjdź, Kontynuuj — oraz przycisków Pierwszy krok i Poprzedni krok. Lista kroków podaje wartość uzyskaną na każdym z nich; kliknięcie kroku prowadzi bezpośrednio do niego. Odtwarzanie liczy duże kroki: jeden na każdą wykonaną instrukcję i jeden na każdy obrót pętli, podający wartość zmiennej pętli. Wcięte podkroki noszą numer swojego dużego kroku (3.1, 3.2…) i są liczone osobno („+6 podkroków”); Wyjdź przechodzi też z podkroku do dużego kroku, który go zawiera. Nałożone ramki i panel zmiennych są takie same jak w trybie krok po kroku. Idealne, aby zrozumieć, co się stało, bez ponownego uruchamiania kodu.

Ograniczenia:

  • rekord pojawia się w swoim obecnym stanie, a nie w stanie z chwili wykonania;
  • warunek warunkowego punktu przerwania nie jest odtwarzany: odtwarzanie zawsze się na nim zatrzymuje;
  • powyżej 10 000 kroków nagranie zostaje ucięte.

Oba debugery odrzucają kod zawierający błędy i sygnalizują je tak jak Sprawdź.

Debugowanie z edytora Ninox

Po najechaniu na edytor skryptów Ninox w prawym górnym rogu pojawia się przycisk Debuguj w Konsoli. Otwiera on Konsolę i przenosi do niej Państwa kod, bez wykonywania go, z bieżącym rekordem jako kontekstem: jeśli nie ma aktywnego rekordu z tej tabeli, otwiera się okno wyboru rekordu tej tabeli. Z kodu globalnego kontekstem jest Brak śr., a przenoszona jest tylko funkcja, w której znajduje się kursor.

Przeniesiony kod zastępuje kod Konsoli i jego punkty przerwania.

Historia i praca, która podąża za Państwem

  • Przycisk Historia wyświetla listę 50 ostatnich poleceń; Alt + ↑ i Alt + ↓ pozwalają je przeglądać z poziomu edytora. Kliknięcie wczytuje kod i jego kontekst w miejsce bieżącego kodu i jego punktów przerwania.
  • Po najechaniu na wpis historii ikona kosza pozwala go usunąć.
  • Kod przywrócony z historii jest odtwarzany w bieżącym języku Ninox: „Id” staje się „Nr” po niemiecku. Kod przywołany po zmianie języka zawsze się więc kompiluje.
  • Po uruchomieniu Konsola przywraca ostatni kod, jego kontekst, wyniki i punkty przerwania — na współdzielonym komputerze każdy odzyskuje własne.
  • W przypadku administratora historia i ostatni kod przenoszą się też z jednego komputera na drugi i nie znikają po wyczyszczeniu danych przeglądarki.

Uwaga

Ta historia jest zapisywana jawnym tekstem w ustawieniach wtyczki, które wczytują wszyscy użytkownicy bazy. Proszę nie zostawiać w niej haseł ani kluczy dostępu.