Breaking changes – wersja 21.22
Poniżej opisane są zmiany, które wymagają działania przy aktualizacji do wersji 21.22. Pełna lista nowości: Release - wersja 21.22.
Kolejność aktualizacji komponentów
Co się zmienia. Procesy, formularze, listy i modele są zapisywane w zwięzłej postaci: bez nazw typów w stałych formuł, wartościach słowników, warunkach, stałych indeksach list i listach argumentów funkcji. Zapisana wcześniej zawartość nadal się wczytuje i przyjmuje nową postać przy następnym zapisie. Migracja nie jest potrzebna.
Kogo dotyczy. Środowiska, w których serwery, hosty i Studio nie są aktualizowane jednocześnie.
Co zrobić. Zaktualizuj wszystkie serwery, hosty i Studio, które odczytują zawartość wersji, zanim zaczniesz zapisywać zawartość w nowej wersji. Wersja sprzed tych zmian nie odczyta poprawnie zawartości zapisanej przez nową:
- identyfikatory wersji odczyta jako puste i zapisze z powrotem puste, a wartości stałych odczyta jako 0 lub false,
- procesu, formularza, listy ani modelu, który zawiera stałą formuły, wartość słownika, warunek, stały indeks listy lub funkcję z listą argumentów, w ogóle nie wczyta (błąd dotyczy całego elementu).
Więcej patrz: Zwięzły zapis zawartości.
Połączenia SQL Server bez MARS
Co się zmienia. Połączenia SQL Server nie korzystają już z MARS (MultipleActiveResultSets).
Kogo dotyczy. Środowiska z kodem własnym, który zakłada MARS.
Co zrobić. Jeśli kod własny zgłasza błąd „There is already an open DataReader associated with this Connection”, przekaż parametr -applicationDatabaseConnectionOptions "MultipleActiveResultSets=True".
Więcej patrz: Połączenia SQL Server bez MARS.
Listy: domyślne kodowanie HTML
Co się zmienia. Wartości kolumn list są kodowane i wyświetlane jako zwykły tekst (ochrona przed atakami XSS przez dane w listach). Jeśli lista celowo zwraca HTML (pogrubienia, linki, ikony), znaczniki pokażą się jako tekst.
Kogo dotyczy. Listy, które zwracają HTML w wartościach kolumn.
Co zrobić. Aby znów renderować HTML, odznacz w Studio opcję Koduj HTML w tej kolumnie, ale tylko dla zaufanych danych.
Więcej patrz: Listy: kodowanie HTML i znaki nowej linii.
Listy: \n i \r zapisane jako tekst
Co się zmienia. \n i \r zapisane jako tekst nie są już zamieniane na nową linię. Wartości z ukośnikiem wstecznym, np. domena\robert, wyświetlają się teraz poprawnie.
Kogo dotyczy. Listy, w których podział wiersza uzyskiwano przez zwracanie \n lub \r jako tekstu.
Co zrobić. Podział wiersza twórz w zapytaniu prawdziwymi znakami, np. CHAR(13)+CHAR(10).
Więcej patrz: Listy: kodowanie HTML i znaki nowej linii.
Wspólny EntryPoint.svc jest przestarzały
Co się zmienia. Każdy opublikowany proces, mikroproces, algorytm i tabela ma własną usługę sieciową pod adresem WebServices/EntryPoint/<id>.svc. Od wersji 21.22 wspólny EntryPoint.svc jest przestarzały i zostanie usunięty.
- W środowisku po aktualizacji wspólny
EntryPoint.svcnadal obsługuje istniejących wywołujących. Wywołania zapisanych proxy po starych, połączonych nazwach (Start_<nazwa>, w tym z przyrostkiem_2) obsługuje własny punkt wejścia elementu, aam_i_alivenadal odpowiada. - WSDL wspólnego adresu to pusty kontrakt z informacją, że adres jest przestarzały, i wskazaniem adresu elementu.
- Działanie wspólnego adresu przełącza parametr
www.param.legacy_entry_point: włączony w środowisku po aktualizacji, wyłączony w nowym środowisku.
Kogo dotyczy. Integracje wywołujące procesy, algorytmy lub tabele przez wspólny EntryPoint.svc.
Co zrobić. Przenieś każdego wywołującego na adres własnego elementu WebServices/EntryPoint/<id>.svc. Wygeneruj ponownie proxy z WSDL tego adresu, który używa nowych nazw operacji i przestrzeni nazw. Proxy wygenerowane ze wspólnego adresu nie ma żadnych operacji.
Więcej patrz: Osobny punkt wejścia (Entry point) dla każdego opublikowanego elementu.