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

 

OpcjaOpisDomyślnie
  • Włącz mapowanych wartości

 

Checkbox

To pole włącza lub wyłącza automatyczne podciąganie mappingów w tle.

Odznaczone
  • Wyczyść wartość dla pustego

Checkbox

Tutaj, jeżeli pole DC będzie puste (czyli ktoś usunie wartość) to mają się też wyczyścić wszystkie zamapowane pola

Odznaczone
  •  Tylko unikalne wartości

 

Checkbox

Zaznaczona opcja powoduje uzupełnienie wartości tylko wtedy, gdy w danych znajduje się tylko jeden identyczny bądź pasujący wynik. Gdy opcja jest odznaczona funkcja uzupełnia pole pierwszym pasującym wynikiem.

Zaznaczone
  • Filtruj wyniki po wartości

 

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
  • Zawieś automapowanie w podrzędnych listach dynamicznych

 

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:

  1. uniemożliwić użytkownikowi wpisanie wartości w pole, które zaraz dostanie nowe dane wynikające z mappingów DC
  2. 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

 

PolaBlokowaneOpis
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.

mappingiWszystkie pola mappingów są blokowane żeby użytkownik wiedział, że zaraz wartość pola zostanie zmieniona przez dc.
datachooserNie 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 unikalneFiltrujWybrany 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:

  • caseinsensitive
  • anymatch (wartość dc występuje gdziekolwiek w root mappingu )
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
 

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

 

OpcjaOpisDomyślnie
  • Włącz mapowanych wartości

 

Checkbox

To pole włącza lub wyłącza automatyczne podciąganie mappingów w tle.

Odznaczone (error)
  • Wyczyść wartość dla pustego

Checkbox

Tutaj, jeżeli pole DC będzie puste (czyli ktoś usunie wartość) to mają się też wyczyścić wszystkie zamapowane pola

Odznaczone (error)
  •  Tylko unikalne wartości

 

Checkbox

Zaznaczona opcja powoduje uzupełnienie wartości tylko wtedy, gdy w danych znajduje się tylko jeden identyczny bądź pasujący wynik. Gdy opcja jest odznaczona funkcja uzupełnia pole pierwszym pasującym wynikiem.

Zaznaczone (tick)
  • Filtruj wyniki po wartości

 

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 (tick)
  • Zawieś automapowanie w podrzędnych listach dynamicznych

 

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 (error)

 

Uruchomienie podciągania mappingów

Podciąganie mappingów uruchamiane jeżeli nastąpi:

Blokowanie pól

Gdy zadziała mechanizm automatycznego podciągania mappingów następuje blokada pól, aby:

  1. uniemożliwić użytkownikowi wpisanie wartości w pole, które zaraz dostanie nowe dane wynikające z mappingów DC
  2. obsłużyć kolejkowanie wykonywania DC

Graficznie zablokowane pola wyglądają tak jak na poniższym screenie:

 

PolaBlokowaneOpis
kryteria (form criteria)(tick)

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(tick)Wszystkie pola mappingów są blokowane żeby użytkownik wiedział, że zaraz wartość pola zostanie zmieniona przez dc.
datachooser(error)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 unikalneFiltrujWybrany wiersz
(error)(error)Wybiera pierwszy wiersz który zwróci DC
(tick)(error)Podciąga mappingi tylko jeżeli dc zwrócić 1 wiersz
(error)(tick)

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:

  • caseinsensitive
  • anymatch (wartość dc występuje gdziekolwiek w root mappingu )
(tick)(tick)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