funkcije_i_format_filter_fajlova_sinhronizacije

Format In i Out Filtera za Balans Sabirnicu

24.04.2008 Milan Oparnica

Jedan filter se sastoji od sledecih stavki razdvojenih znakom TAB

Ako ne zelimo da specificiramo stavku, stavljamo * na njeno mesto, npr:

Flag Table Parameter Value Master field
A/B/K/L ime tabele ime polja vrednost ime polja
Primeri:
K * * *
A * * *
A Sifre * * Konto
K Ulazi SklID 5 UlID
K * Naziv 'Melany' NazID

Ako je bilo koja stavka prazan string, pretvara se u *

Ako nije detektovan TAB posle Flag, Table ili Parameter, sve stavke posle specificirane se pretvaraju u *

Flag:

Operacija koja će biti izvršena nad upitom ako se uslov ispuni.

A (Accept) znaci da se SQL prihvata bez cekiranja ostalih filtera

B (Accept if not) znači da se SQL prihvata ako uslov nije ispunjen

K (Kill) znaci da se SQL odbija bez cekiranja ostalih filter, ali će se proslediti ostalim radnim jedinicama u sistemu razmene

L (Kill if not) znači da se SQL odbija ako uslov nije ispunjen

W (Wack) znaci da se SQL odbija bez cekiranja ostalih filtera ali se i ne predaje ostalim radnim jedinicama u sistemu razmene

ako smo prosli sve filtere i nismo ispunili nijedan uslov , SQL se automatski odbija.

ako je dat samo Flag , a ostale stavke su *, uslov za Flag je ispunjen, npr. :

Flag Table Parameter Value

K	*	*	*

ce odbiti sve SQL-ove (potrebno za Infilter za centralnu RJ), dok ce filter:

A	*	*	*

po defaultu primati sve SQL-ove (potrebno za Infilter za sve ostale RJ)

Table:

Ime tabele nad kojom operacija (flag) važi. Ako se SQL obratio ovoj tabeli, ispunice se uslov za Flag ako nije dat Param i Value , a ako su dati, deo uslova koji se tice tabele je ispunjen, ceka se rezultat provere parametra.

Parameter:

Ime polja čija će se vrednost ispitati na Value .

Ako je Value = ““*”, i ovo Parameter mora biti “*”, inače Dambldor prijavljuje gresku.

Ako u SQL-u imamo

INSERT INTO ime tabele () sa parametrom Parameter i na odg. mestu u Values() imamo Value ili

ako imamo UPDATE … SET Parameter = Value ili

SELECT … INTO … WHERE Parameter = Value ili

DELETE … FROM … WHERE Parameter = Value

onda je ispunjen je uslov za Flag, pod uslovom naravno da je Table uslov ispunjen

Value:

Value moze biti string (‘xxx’) ili broj (decimalni, ceo)

MasterFld

U slučaju da je potrebno filtrirati prema vrednosti iz prethodnog upita koristi se ovo polje. Vrednost se pamti u #LMF# (Last Master Field value) promenljivoj.

Pamćenje vrednosti za #LMF# test:

1. Dodati na kraj filter linije ime polja čija će se vrednost zapamtiti u MasterFld. Vrednost se pamti do sledećeg ispunjenog uslova koji sadrži MasterFld podatak.

Primer:

A Ulaz SklID 4 UlID

se tumači kao: “Prihvati SQL ako se radi o tabeli Ulaz u kojoj SklID ima vrednost 4 a u #LMF# zapamti vrednost iz polja UlID.”

K Ulaz SklID 4 UlID

se tumači kao: “Odbij SQL ako se radi o tabeli Ulaz u kojoj SklID ima vrednost 4 ali u #LMF# zapamti vrednost iz polja UlID.”

Upoređivanje sa #LMF# vrednošću:

2. Vrši se na isti način kao što bi se upoređivalo na konstantu samo se umesto konstante stavi varijabla #LMF#.

Primer:

A SasUlaz UlID #LMF#

se tumači kao: “Prihvati SQL ako se radi o tabeli SasUlaz u kojoj UlID ima vrednost Last Master Field.”

NAPOMENA: Prilikom korišćenja ovog načina filtriranja najbitnije je obratiti pažnju na uslove koji se mogu promeniti. Primer bi bio nalog za otpremu ili prijem koji umeće slogove u Ulaz tabelu, ali je SklID=0. Nakon potvrde SklID dobija ID magacina, ali ako INSERT NIJE PROŠAO, UPDATE neće imati nikakvog efekta.


  • funkcije_i_format_filter_fajlova_sinhronizacije.txt
  • Last modified: 2013/04/08 17:26
  • by milano