Automatyczne podciąganie mappingów to funkcjonalność która pozwoli na szybsze korzystanie z DC na formularzu. Mappingi datachooser'a będa automatycznie podciągane w tle, jeżeli użytkownik wpisze wartość i przejdzie do edycji następnego pola.
Testy
Podczas testowania sprawdzić należy:
- Logikę uruchamiania automatycznego podciągania mappingów
- Logikę wyboru wartości do wpisania w pola mappingów
- Kolejkowanie zapytań DC jeżeli jakiś dc zależy od innego
- Sprawdzić regresję PWFL-2790, PWFL-2351
- Sprawdzić, w przypadku gdy szybko filtrujemy listę i pierwsze zapytanie wróci później niż drugie (jeżeli żadanie dla pierwszego wpisanego zapytania wróci później niż kolejne, to na liście nie powinny pojawić sie wyniki tego zapytania)
- Sprawdzić AutoUpdate (kolejkowanie powinno działać również z polami AutoUpdate) –
Uruchomienie podciągania mappingów
Podciąganie mappingów uruchamiane jeżeli nastąpi:
- zmiana wartości pola przez użytkownika (od momentu wejścia w pola do momentu wyjścia z tego pola)
- zmiana wartości pola przez API
- naciśniecie klawisza ENTER w polu (wymusi to ponowne podciągnięcie mappingów nawet jak wartość pola się nie zmieniła)
Blokowanie pól
Gdy zadziała mechanizm automatycznego podciągania mappingów następuje blokada pól, aby:
- uniemożliwić użytkownikowi wpisanie wartości w pole, które zaraz dostanie nowe dane wynikające z mappingów DC
- obsłużyć kolejkowanie wykonywania DC
Graficznie zablokowane pola wyglądają tak jak na poniższym screenie:
- pola są wyszarzone
- widoczna jest ikona ładowania danych
- edycja przez użytkownika jest wyłączona (API nadal pozwala zmienić dane)
- pole nadal może otrzymać focus przy przechodzeniu tabulatorem
Pola | Blokowane | Opis |
---|---|---|
kryteria (form criteria) | ![]() | Wszystkie pola kryteriów są blokowane (oprócz samego DC). Blokowane są one ze względu na taki scenariusz: Pole a jest polem mapowanym przez datachooser'a dc1 oraz jest polem kryterium dla datachooser'a dc2. Jeżeli wywołamy najpierw dc1 a następnie dc2, to wywołanie dc2 zostanie wykonane dopiero gdy pole a zostanie uzupełnione przez dc1. Dodatkowym powodem jest chęć zachowania spójności z AutoUpdate gdzie source także są blokowane. |
mappingi | ![]() | Wszystkie pola mappingów są blokowane żeby użytkownik wiedział, że zaraz wartość pola zostanie zmieniona przez dc. |
datachooser | ![]() | Nie blokujemy pola samego DC (chyba że jest on np. mappingiem innego DC) żeby umożliwić zmianę wartości cały czas. |
Wybór właściwego mappingu
Każdy DC powinien wspierać filtrowanie wyników na podstawie podanego zapytania.
Po wywołaniu DC w tle z otrzymanych wyników należy wybrać jeden z nich. Tabela przedstawia logikę wyboru wiersza:
Tryb | 0 wyników | 1 wynik | 2+ wyników |
---|---|---|---|
prosty (domyślny) | ?? kasowanie ?? | 1 wynik na liście | |
CONFIG PWE:
- włacz auto podciąganie mappingów – domyślnie
wybieraj tylko 1 (tylko 1 na liscie) lub pierwszefiltruj po wartości (domyślnie false)
Scenariusze testowe
Scenariusz #1
Datachooser'y
Nazwa | Kryteria | Mapping | Opis |
---|---|---|---|
root | DC zapisuje mapping w zmiennej root_mapping_text_1 |
Spodziewany wynik
Po wpisaniu wartości w root mappingi podciągną się automatycznie, a w trakcie trwania zapytania do DC pole root_mapping_text_1 będzie zablokowane.