Code: Definicja regul pol obowiazkowych: Różnice pomiędzy wersjami
Z Motława
Linia 15: | Linia 15: | ||
|- | |- | ||
− | | style="border: 1px solid #888888; "| [[idn]] | + | | style="text-align:left; border: 1px solid #888888; "| [[idn]] |
− | | style="border: 1px solid #888888; "| int(11) | + | | style="text-align:left; border: 1px solid #888888; "| int(11) |
− | | style="border: 1px solid #888888; "| NO | + | | style="text-align:left; border: 1px solid #888888; "| NO |
− | | style="border: 1px solid #888888; "| PRI | + | | style="text-align:left; border: 1px solid #888888; "| PRI |
− | | style="border: 1px solid #888888; "| NULL | + | | style="text-align:left; border: 1px solid #888888; "| NULL |
|- | |- | ||
− | | style="border: 1px solid #888888; "| [[GUID]] | + | | style="text-align:left; border: 1px solid #888888; "| [[GUID]] |
− | | style="border: 1px solid #888888; "| varchar(38) | + | | style="text-align:left; border: 1px solid #888888; "| varchar(38) |
− | | style="border: 1px solid #888888; "| NO | + | | style="text-align:left; border: 1px solid #888888; "| NO |
− | | style="border: 1px solid #888888; "| UNI | + | | style="text-align:left; border: 1px solid #888888; "| UNI |
− | | style="border: 1px solid #888888; "| | + | | style="text-align:left; border: 1px solid #888888; "| |
|- | |- | ||
− | | style="border: 1px solid #888888; "| [[coreid]] | + | | style="text-align:left; border: 1px solid #888888; "| [[coreid]] |
− | | style="border: 1px solid #888888; "| varchar(38) | + | | style="text-align:left; border: 1px solid #888888; "| varchar(38) |
− | | style="border: 1px solid #888888; "| NO | + | | style="text-align:left; border: 1px solid #888888; "| NO |
− | | style="border: 1px solid #888888; "| MUL | + | | style="text-align:left; border: 1px solid #888888; "| MUL |
− | | style="border: 1px solid #888888; "| | + | | style="text-align:left; border: 1px solid #888888; "| |
|- | |- | ||
− | | style="border: 1px solid #888888; "| rule_operator | + | | style="text-align:left; border: 1px solid #888888; "| rule_operator |
− | | style="border: 1px solid #888888; "| int(11) | + | | style="text-align:left; border: 1px solid #888888; "| int(11) |
− | | style="border: 1px solid #888888; "| NO | + | | style="text-align:left; border: 1px solid #888888; "| NO |
− | | style="border: 1px solid #888888; "| | + | | style="text-align:left; border: 1px solid #888888; "| |
− | | style="border: 1px solid #888888; "| | + | | style="text-align:left; border: 1px solid #888888; "| |
+ | |- | ||
+ | | style="text-align:left; border: 1px solid #888888;" | message_if_not_valid | ||
+ | | style="text-align:left; border: 1px solid #888888;" | text | ||
+ | | style="text-align:left; border: 1px solid #888888;" | YES | ||
+ | | style="text-align:left; border: 1px solid #888888;" | | ||
+ | | style="text-align:left; border: 1px solid #888888;" | NULL | ||
|} | |} | ||
Linia 49: | Linia 55: | ||
! style="text-align:left; border: 1px solid #888888; background: #eeeeee;" | Key | ! style="text-align:left; border: 1px solid #888888; background: #eeeeee;" | Key | ||
! style="text-align:left; border: 1px solid #888888; background: #eeeeee;" | Default | ! style="text-align:left; border: 1px solid #888888; background: #eeeeee;" | Default | ||
− | |||
|- | |- | ||
| style="text-align:left; border: 1px solid #888888;" | [[idn]] | | style="text-align:left; border: 1px solid #888888;" | [[idn]] | ||
Linia 56: | Linia 61: | ||
| style="text-align:left; border: 1px solid #888888;" | PRI | | style="text-align:left; border: 1px solid #888888;" | PRI | ||
| style="text-align:left; border: 1px solid #888888;" | NULL | | style="text-align:left; border: 1px solid #888888;" | NULL | ||
− | |||
|- | |- | ||
| style="text-align:left; border: 1px solid #888888;" | [[GUID]] | | style="text-align:left; border: 1px solid #888888;" | [[GUID]] | ||
Linia 62: | Linia 66: | ||
| style="text-align:left; border: 1px solid #888888;" | NO | | style="text-align:left; border: 1px solid #888888;" | NO | ||
| style="text-align:left; border: 1px solid #888888;" | UNI | | style="text-align:left; border: 1px solid #888888;" | UNI | ||
− | |||
| style="text-align:left; border: 1px solid #888888;" | | | style="text-align:left; border: 1px solid #888888;" | | ||
|- | |- | ||
Linia 69: | Linia 72: | ||
| style="text-align:left; border: 1px solid #888888;" | NO | | style="text-align:left; border: 1px solid #888888;" | NO | ||
| style="text-align:left; border: 1px solid #888888;" | MUL | | style="text-align:left; border: 1px solid #888888;" | MUL | ||
− | |||
| style="text-align:left; border: 1px solid #888888;" | | | style="text-align:left; border: 1px solid #888888;" | | ||
|- | |- | ||
Linia 75: | Linia 77: | ||
| style="text-align:left; border: 1px solid #888888;" | varchar(38) | | style="text-align:left; border: 1px solid #888888;" | varchar(38) | ||
| style="text-align:left; border: 1px solid #888888;" | NO | | style="text-align:left; border: 1px solid #888888;" | NO | ||
− | |||
| style="text-align:left; border: 1px solid #888888;" | | | style="text-align:left; border: 1px solid #888888;" | | ||
| style="text-align:left; border: 1px solid #888888;" | | | style="text-align:left; border: 1px solid #888888;" | | ||
Linia 84: | Linia 85: | ||
| style="text-align:left; border: 1px solid #888888;" | | | style="text-align:left; border: 1px solid #888888;" | | ||
| style="text-align:left; border: 1px solid #888888;" | 0 | | style="text-align:left; border: 1px solid #888888;" | 0 | ||
− | |||
|- | |- | ||
| style="text-align:left; border: 1px solid #888888;" | admin | | style="text-align:left; border: 1px solid #888888;" | admin | ||
Linia 91: | Linia 91: | ||
| style="text-align:left; border: 1px solid #888888;" | | | style="text-align:left; border: 1px solid #888888;" | | ||
| style="text-align:left; border: 1px solid #888888;" | 0 | | style="text-align:left; border: 1px solid #888888;" | 0 | ||
− | |||
|- | |- | ||
| style="text-align:left; border: 1px solid #888888;" | validation_rule_type | | style="text-align:left; border: 1px solid #888888;" | validation_rule_type | ||
Linia 98: | Linia 97: | ||
| style="text-align:left; border: 1px solid #888888;" | | | style="text-align:left; border: 1px solid #888888;" | | ||
| style="text-align:left; border: 1px solid #888888;" | NULL | | style="text-align:left; border: 1px solid #888888;" | NULL | ||
− | |||
|- | |- | ||
| style="text-align:left; border: 1px solid #888888;" | validation_rule | | style="text-align:left; border: 1px solid #888888;" | validation_rule | ||
Linia 105: | Linia 103: | ||
| style="text-align:left; border: 1px solid #888888;" | | | style="text-align:left; border: 1px solid #888888;" | | ||
| style="text-align:left; border: 1px solid #888888;" | NULL | | style="text-align:left; border: 1px solid #888888;" | NULL | ||
− | |||
|- | |- | ||
| style="text-align:left; border: 1px solid #888888;" | condition_ruleset_guid | | style="text-align:left; border: 1px solid #888888;" | condition_ruleset_guid | ||
Linia 111: | Linia 108: | ||
| style="text-align:left; border: 1px solid #888888;" | NO | | style="text-align:left; border: 1px solid #888888;" | NO | ||
| style="text-align:left; border: 1px solid #888888;" | MUL | | style="text-align:left; border: 1px solid #888888;" | MUL | ||
− | |||
| style="text-align:left; border: 1px solid #888888;" | | | style="text-align:left; border: 1px solid #888888;" | | ||
|- | |- | ||
Linia 119: | Linia 115: | ||
| style="text-align:left; border: 1px solid #888888;" | | | style="text-align:left; border: 1px solid #888888;" | | ||
| style="text-align:left; border: 1px solid #888888;" | NULL | | style="text-align:left; border: 1px solid #888888;" | NULL | ||
− | |||
|} | |} | ||
Pole validation_rule przyjmuje wartości: | Pole validation_rule przyjmuje wartości: | ||
− | NOT NULL, NOT EMPTY, EQ, NOT EQ, LESS, LESS EQ, GREATER, GREATER EQ, LENGTH EQ, LENGTH MAX, LENGTH MIN | + | NOT NULL, NOT EMPTY, |
− | DEFAULT | + | EQ, NOT EQ, LESS, LESS EQ, GREATER, GREATER EQ, |
− | + | LENGTH EQ, LENGTH MAX, LENGTH MIN | |
+ | DEFAULT | ||
'''Przykładowe definicje walidacji:''' | '''Przykładowe definicje walidacji:''' | ||
Linia 131: | Linia 127: | ||
Przykład 1: | Przykład 1: | ||
− | Karta kontrahenta, pole katcol0 ma być różne od 0 | + | Karta kontrahenta, pole katcol0 ma być różne od 0, a długość pola NIP ma być równa 10 lub 12 lub 0 |
+ | |||
Definicja: | Definicja: | ||
''Tabela sys_fld_validator_ng'' | ''Tabela sys_fld_validator_ng'' | ||
− | insert into sys_fld_validator_ng values (0,' | + | insert into sys_fld_validator_ng values |
+ | (0,'K_rule1','K_',0,'Wartosc pierwszej kategorii kolumnowej musi byc okreslona! '), | ||
+ | (0,'K_rule2','K_',1,'Pole NIP może mieć długość 10,12 znaków bądź być puste'); | ||
''Tabela sys_fld_validator_po'' | ''Tabela sys_fld_validator_po'' | ||
insert into sys_fld_validator_po values | insert into sys_fld_validator_po values | ||
− | (0,'K_katcol0_rule1_1',' | + | (0,'K_katcol0_rule1_1','K_rule1','katcol0',0,0,'NOT EMPTY','','',''), |
+ | (0,'K_nip_rule1_1','K_rule2','nip',0,0,'NOT EMPTY','','',''), | ||
+ | (0,'K_nip_rule1_2','K_rule2','nip',0,0,'LENGTH EQ','10','',''), | ||
+ | (0,'K_nip_rule1_3','K_rule2','nip',0,0,'LENGTH EQ','12','',''); | ||
+ | |||
+ | Jeśli definiowane pole ma być sprawdzane tylko przy spełnieniu warunków dotyczących danego zapisu można takie warunki zdefiniować tworząc kolejny zestaw reguł i przypisując jego guid do pola condition_ruleset_guid. | ||
+ | |||
+ | Przykład 2: | ||
Edycja operacji sprzedaży (grupaoper=0), pole katcol0 ma być różne od 0. | Edycja operacji sprzedaży (grupaoper=0), pole katcol0 ma być różne od 0. |
Wersja z 06:57, 24 mar 2009
Algorytm walidacji pól
Mechanizm definiowanej walidacji pól aktywowany jest kluczem w Rejestrze systemowym o nazwie walidacja_pol_aktywna.
Struktury tabel odpowaidających za definicje walidacji pól:
Tabela sys_fld_validator_ng
Field | Type | Null | Key | Default |
---|---|---|---|---|
idn | int(11) | NO | PRI | NULL |
GUID | varchar(38) | NO | UNI | |
coreid | varchar(38) | NO | MUL | |
rule_operator | int(11) | NO | ||
message_if_not_valid | text | YES | NULL |
Tabela sys_fld_validator_po
Field | Type | Null | Key | Default |
---|---|---|---|---|
idn | int(11) | NO | PRI | NULL |
GUID | varchar(38) | NO | UNI | |
GUID_NG | varchar(38) | NO | MUL | |
fieldname | varchar(38) | NO | ||
rule_order | int(11) | NO | 0 | |
admin | int(11) | NO | 0 | |
validation_rule_type | varchar(20) | YES | NULL | |
validation_rule | varchar(200) | YES | NULL | |
condition_ruleset_guid | varchar(38) | NO | MUL | |
message_if_not_valid | text | YES | NULL |
Pole validation_rule przyjmuje wartości:
NOT NULL, NOT EMPTY, EQ, NOT EQ, LESS, LESS EQ, GREATER, GREATER EQ, LENGTH EQ, LENGTH MAX, LENGTH MIN DEFAULT
Przykładowe definicje walidacji:
Przykład 1:
Karta kontrahenta, pole katcol0 ma być różne od 0, a długość pola NIP ma być równa 10 lub 12 lub 0
Definicja: Tabela sys_fld_validator_ng insert into sys_fld_validator_ng values (0,'K_rule1','K_',0,'Wartosc pierwszej kategorii kolumnowej musi byc okreslona! '), (0,'K_rule2','K_',1,'Pole NIP może mieć długość 10,12 znaków bądź być puste'); Tabela sys_fld_validator_po insert into sys_fld_validator_po values (0,'K_katcol0_rule1_1','K_rule1','katcol0',0,0,'NOT EMPTY',,,), (0,'K_nip_rule1_1','K_rule2','nip',0,0,'NOT EMPTY',,,), (0,'K_nip_rule1_2','K_rule2','nip',0,0,'LENGTH EQ','10',,), (0,'K_nip_rule1_3','K_rule2','nip',0,0,'LENGTH EQ','12',,);
Jeśli definiowane pole ma być sprawdzane tylko przy spełnieniu warunków dotyczących danego zapisu można takie warunki zdefiniować tworząc kolejny zestaw reguł i przypisując jego guid do pola condition_ruleset_guid.
Przykład 2:
Edycja operacji sprzedaży (grupaoper=0), pole katcol0 ma być różne od 0. Definicja: Tabela sys_fld_validator_ng insert into sys_fld_validator_ng values (0,'O_katcol0_rule1','O_',0),(0,'O_katcol0_cond1',,0); Tabela sys_fld_validator_po insert into sys_fld_validator_po values (0,'O_katcol0_rule1_1','O_katcol0_rule1','katcol0',0,0,'NOT EMPTY',,'O_katcol0_cond1', 'Wartosc pierwszej kategorii kolumnowej musi byc okreslona! '), (0,'O_katcol0_cond1_1','O_katcol0_cond1','grupaoper',0,0,'EQ','0',,);