Przejdź do głównej zawartości

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.svc nadal 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, a am_i_alive nadal 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.