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.
Konfiguracja
Konfiguracja będzie możliwa na 2 poziomach:
PlusWorkflow.conf
Globalne włączenie/wyłączenie mechanizmu automatycznego podciągania mappingów:
Form.DataChooser.AutoMapping.Enabled=true
PWE
Opcja | Opis | Domyślnie |
---|---|---|
| Checkbox To pole włącza lub wyłącza automatyczne podciąganie mappingów w tle. | Odznaczone ![]() |
| Checkbox Tutaj, jeżeli pole DC będzie puste (czyli ktoś usunie wartość) to mają się też wyczyścić wszystkie zamapowane pola | Odznaczone ![]() |
| Checkbox Tutaj decydujemy, czy ma podciągać mappingi tylko jeżeli servlet zwrócił 1 wynik, czy jak wiele to podciągać pierwszy z brzegu
NOWE Uzupełnienie wartości tylko gdy w danych dopasowuje jeden unikalny rezultat. | Zaznaczone ![]() |
| Checkbox Włącza dodatkowe filtrowanie wyników zwróconych przez DC po wartości (root mapping). Czyli jeżeli dostaniemy 20 wyników, to filtrujemy dodatkowo po wartości wpisanej w DC i wybieramy albo unikalny albo pierwszy z listy | Zaznaczone ![]() |
| Checkbox Wyłącza automatyczne podciąganie mappingów dla datachooserów-dzieci na czas działania datachoosera-rodzica. Jeśli ta opcja jest aktywna, to w sytuacji gdy DC1 z automapowaniem mapuje wartości na DC2 (który również ma włączone automapowanie), to po wywołaniu pierwszej listy DC2 nie zamapuje wartości na jakiekolwiek inne pole. | Odznaczone ![]() |
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. W zależności od konfiguracji w PWE wybór wyników bazuje na:
Tylko unikalne | Filtruj | Wybrany wiersz |
---|---|---|
![]() | ![]() | Wybiera pierwszy wiersz który zwróci DC |
![]() | ![]() | Podciąga mappingi tylko jeżeli dc zwrócić 1 wiersz |
![]() | ![]() | Jeżeli dc zwróci tylko 1 wynik to jest on podciągany. Jeźeli wiecej to filtruje otrzymane wyniki na podstawie root mappingu, sprawdzanie jest:
|
![]() | ![]() | Jeżeli dc zwróci tylko 1 wynik to jest on podciągany. Jeżeli wiecej to filtruje te wyniki i jeżeli po przefiltrowaniu jest unikalny to go podciąga |