Przykłady reguł walidacyjnych

< Cofnij

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.