How Can We Help?
Przykłady reguł walidacyjnych
Przykład – Duplikaty Faktur
Celem reguły jest sprawdzenie czy do systemu nie wprowadzono faktury od tego samego klienta z takim samym numerem i z taką samą datą sprzedaży. Regułę „Duplikaty faktur” budujemy na wzorcu „ RuleCombinationOfPropertiesIsUnique”.
Objaśnienia:
TargetProperties : Zawiera listę nazw pół , których kombinacja ma być unikalna
TargetType : Typ obiektu docelowego – w tym przykładzie FakturaKoszt
ResultType : W tym przykładzie jest to ostrzeżenie – użytkownik może je zignorować
TargetContextID : Save – reguła będzie sprawdana przy zapisywaniu formularza.
Jeżeli reguła zostanie złamana wówczas na formularzu przedstawione zostanie to w następujący sposób:
Lista znalezionych dokumentów jest wyszczególniona w komunikacie.
Widok na formularzu:
Przykład – Walidacja z wykorzystaniem sumowania subelementów
Reguły walidacji mogą operować na polach obiektu docelowego takich jak FakturaKoszt, Zapotrzebownie, Projekt , Klient itd. Mogą również poprzez odpowiednie relacje sięgać do pól obiektów powiązanych . W tym przykładzie wykorzystamy regułę , która sprawdzi czy subelementy obiektu głównego sumują się do 100%.
W naszym przykładzie mamy obiekty typu KlientKoszt i KlientKosztPozycje. Obiekt KlientKoszt reprezentuje wzór opisu analitycznego dla danego klienta. Wzór opisu analitycznego pozwala przygotować cały opis analityczny faktury od danego klienta po to aby wykorzystywać go wielokrotnie. Sytuację taką mamy w przypadku faktur np. za energię elektryczną , które są opisywane według tego samego wzorca. We wzorcu definiujemy pozycje , w pozycjach określamy w jakim procencie kwotę faktury przypisujemy do poszczególnych linii opisu. Suma procentów powinna w tym przypadku wynosić 100% wartości netto.
Objaśnienia:
Criteria : Mamy tu zastosowaną formułę sumowania pozycji. Obiekt KlientKosztPozycje jest tutaj w relacji „wiele-1” do obiektu KlientKoszt. Zatem dla jednego obiektu KlientKoszt można zdefiniować wiele KlientKosztPozycje. Wyrażenie : [KlientKosztPozycje][].Sum([Procent]) = 1.0m sumuje wszystkie pozycje związane z KlientKoszt i sprawdza czy suma =1 ( czyli 100%)
TargetType : Typ obiektu docelowego :KlientKoszt – jest to element nadrzędny w relacji do KlientKosztPozycje.
ResultType : Error – operator nie może zignorować tego komunkatu. Nie będzie mógł zapisać wzorca dopóki wszystkie pozycje nie będą dawać sumy 100%.
TargetContextIDs : Save – blokujemy zapis jeżeli reguła jest złamana.