...
Table of Contents |
---|
...
brak blokowania
...
brak blokowania
...
brak blokowania
...
Uruchamianie automatycznego podciągania mappingów
- zmienna nagłówkowa
- klawisz ENTER
- klawisz TAB
utrata focusu pola (blur)
Info |
---|
Podciągnięcie mappingów następuje tylko jeżeli:
|
Typ | Blokowanie | Uwagi |
---|---|---|
FormCriteria | ![]() | |
Mapping | ||
Dopasowywanie wyników do wpisanej frazy
Użytkownik wpisuje w pole datachooser'a frazę. Po przejściu do innego pola automatycznie zaczyna się pobieranie mappingów.
Porównywanie wartości
Wartość porównywana jest CaseInsensitive i szukane jest wystąpienie wpisanego ciągu w wartości na dowolnej pozycji np. fraza UEr pasuje do query.
co pustymi frazami które pasowałyby do wartości DC
Algorytm wyboru wiersza z mappingami
Wybór wiersza zależny jest o liczby wyników, które pasują do wpisanej frazy:
Fitlrowanie po wszystkich kryteriach??
- brak wyników - żaden mapping nie zostanie podciągnięty (
czy w takim wypadku wyświetlać jakiś błąd
)
- jeden wynik - podciągane są mappingi z tego unikalnego wyniku
- wiele wyników -
Blokowanie pól???
|
...
Nie można edytować pola ani ręcznie ani przez API. Wszystkie blokady (do zapisu i do odczytu) będą czekać aż ta operacja zapisu się zakończy.
Niestety są problemy z blokowaniem niektórych typów pól - trzeba będzie poświęcić czas żeby to ogarnąć...
...
blokowanie do zapisu
...
blokowanie do odczytu
...
brak blokowania
Nie blokujemy pól. Nikt też w tym sposobie nie będzie ich blokował do zapisu.
...
brak blokowania
...
- pole nie zmieniło wartości od czasu wywołania dc
- pole zmieniło wartość od czasu wywołania
|
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
Warning |
---|
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 | |
Scenariusze testowe
Scenariusz #1
Datachooser'y
Nazwa | Kryteria | Mapping | Opis |
---|---|---|---|
root | DC zapisuje mapping w zmiennej root_mapping_text_1 |
...