Wdrażanie
Przejście instancji na enforce i znane ograniczenia
Wdrażanie
enforce jest wartością domyślną. W instancji, w której skrypty lub inne systemy uruchamiają formularze przez REST, dochodź do niego etapami, obserwując log, zanim cokolwiek zostanie odrzucone:
- Ustaw
LAUNCH_VALIDATION=logdla całej instancji (przed aktualizacją, przy aktualizacji). - Działaj w tym trybie przez jakiś czas i przeglądaj log: ostrzeżenia
would refusewskazują uruchomienia, które łamią reguły; ostrzeżeniaextravars differwskazują formularze, które obliczają coś inaczej na serwerze (znacznik czasu, dane zewnętrzne). Zdecyduj dla każdego formularza, czy ma to znaczenie. - Przełącz te formularze na
launchValidation: enforce. Wywołujący, którzy wysyłali nieprawidłowe wartości lub zmyślone extravars, dostają teraz422z powodem. - Gdy każdy formularz zachowuje się zgodnie z oczekiwaniami, usuń
LAUNCH_VALIDATION(lub ustaw ją naenforce) dla całej instancji.
Ograniczenia
Weryfikacja uruchomienia nie obejmuje jeszcze wszystkiego:
- Formularzy kreatora nie można uruchomić ponownie ze zmianami, a zadania kreatora uruchomionego przed wersją 7.0 nie można uruchomić ponownie w trybie
enforce(nie zapisywało wartości kroków). Serwer MCP nie może uruchamiać formularzy kreatora. - Rozwiązywanie symboli zastępczych w przeglądarce nadal używa własnej kopii kodu serwera; w rzadkich przypadkach brzegowych (
__undefined__, cudzysłowy wewnątrz wyrażeń) oba mogą rozwiązać symbol zastępczy inaczej.logujawnia takie różnice. - Wyrażenia
runLocaldziałają w silniku JavaScript przeglądarki, gdy są w przeglądarce, a na serwerze w piaskownicy; ten sam kod daje ten sam wynik, z wyjątkiem sytuacji, gdy zależy od strefy czasowej lub ustawień regionalnych przeglądarki.
Formularze kreatora
Kreator jest sprawdzany krok po kroku: przeglądarka wysyła wartości każdego kroku, a serwer sprawdza każdy krok, który użytkownik by wysłał, względem jego własnego podformularza.
- Krok jest pomijany, gdy jest
optionali użytkownik go pominął albo gdy jegowhenjest fałszywe. - Krok odczytuje wcześniejsze kroki przez
$(__parent__.<step>.<field>), z ich sprawdzonymi wartościami. - Błędy wskazują krok i pole jako
<step>.<field>. - W trybie
enforceextravars są budowane na serwerze, każdy krok pod swoimdefaultModel. - Pola plików nie są obsługiwane w kreatorze.