Az oldal megtekintéséhez kérjük, engedélyezze a JavaScriptet.

Nagy Machinátor súgó

A Dokumentum modulban a Dokumentum módosítás és lekérdezés üzemmdójában a Szűrésváltozatok engedélyezését értékeli az eljárás.

Az eljárást meghívó funkció az összes szűrésváltozatra kiértékeli, hogy a megadott személy jogosult-e a használatára.

Bemenő paraméterek

SzűrNév

A szűrés változat neve.

Operator

Operátor

Kimenő adatok

Engedély

 

Algoritmus

1

Változó definiálás:Proc_DKSzurEng.

Az SzűrNév értékét a DKDokSzűrFej.SzűrNév-ben meg kell keresni.

A talált rekordból a következő mezők értékétől függ az eredmény:

SEngedély         : ENUM 'Bárki|Senki|MegadottRészleg|MegadottSzemély|FelelősRészleg|FelelősSzemély'

SEngRészleg       : CWI 60

SEngSzemély       : %SzemélyKódIg%BCD 8 <foreignkey:SzemélyTörzs.Kód>

SEngSzemBes       : CWI 60

2

Változó definiálás:

Proc_DKSzurEng.Személy : %SzemélyKódIg%BCD 8 <foreignkey:SzemélyTörzs.Kód>

Személy=A kapott Operátor kódot a SzemélyTörzs.Operátor állományban kell megkeresni.

3

Ha Személy nem kapott értéket és DKDokSzűrFej.SEngedély=MegadottRészleg|MegadottSzemély

akkor az Engedély=FALS, vagyis nincs engedélyezve.

Vagyis, ha az Operátor nem lehetett egy személlyel azonosítani, akkor a fenti értékek esetén biztos, hogy nincs joga a szűréshez.

 

SENKI

4

Ha SEngedély=Senki,

akkor Engedély=Fals, vagyis nincs joga a szűréshez. Vége az eljárásnak.

 

BÁRKI

5

Ha DKDokSzűrFej.SEngedély=Bárki és SEngSzemBes nincs kitöltve

akkor az Engedély=TRUE, vagyis engedélyezve van.

6

Ha DKDokSzűrFej.SEngedély=Bárki és SEngSzemBes ki van töltve

akkor le kell futtatni a Proc_SzemelyBesorTag eljárást és annak az eredménye szerint zárul ez az eljárás.

Vagyis, ha a Személy beletartozik a besorolásba, akkor .

Proc_SzemelyBesorTag hívása:

Bemenő paraméterek:

SzemélyBesor

DKDokSzűrFej.SEngSzemBes

Személy

Proc_DKSzurEng.Személy

 

AZ ALÁBBI SZEMÉLY (MegadottSzemély)

7

Ha a Személy értéket kapott és DKDokSzűrFej.SEngedély=MegadottSzemély

és DKDokSzűrFej.SEngSzemély = Proc_DKSzurEng.Személy,

akkor az Engedély=TRUE, vagyis engedélyezve van

(Vagyis ha pont az a személy jelentkezett be, akire az engedély szól, akkor használhatja.

8

Ha a Személy értéket kapott és DKDokSzűrFej.SEngedély=MegadottSzemély

és DKDokSzűrFej.SEngSzemély # Proc_DKSzurEng.Személy, akkor meg kell hívni a Proc_HelyettesSzemely eljárást

Ha a Proc_HelyettesSzemely.Helyettes = Proc_DKSzurEng.Személy értékével, akkor

akkor az Engedély=TRUE, vagyis engedélyezve van, egyébként FALS

(Vagyis ha pont a dokumentumhoz jogosult személy helyettese jelentkezett be, akkor a helyettes is jogosult lesz.)

Proc_HelyettesSzemely hívása:

Bemenő paraméterek

Dátum

SYSDATE

Személy

DKDokSzűrFej.SEngSzemély

 

AZ ALÁBBI  RÉSZLEG (MegadottRészleg)

9

Ha a Személy értéket kapott és DKDokSzűrFej.SEngedély=MegadottRészleg és SEngSzemBes nincs kitöltve

akkor a le kell futtatni a Proc_ReszlegTag eljárást (lásd alább), és az eljárás eredményét kell átvenni eredménynek.

Proc_ReszlegTag hívása:

Bejövő paraméterek

Részleg

DKDokSzűrFej.SEngRészleg

Személy

Proc_DKSzurEng.Személy

10

Ha a Személy értéket kapott és DKDokSzűrFej.SEngedély=MegadottRészleg és SEngSzemBes ki van töltve.

akkor a le kell futtatni a Proc_ReszlegTag eljárást (lásd alább), ha annak eredménye FALS, akkor vége.

Ha a Proc_ReszlegTag.Engedély= TRUE, akkor le kell futtatni a Proc_SzemelyBesorTag eljárást is.

és ebben az esetben már Proc_SzemelyBesorTag eljárás eredményét kell átvenni eredménynek.

Vagyis, ha a Személy beletartozik ugyan a részlegbe, de ott nincs megfelelő besorolása, akkor nem férhet hozzá a dokumentumhoz.

 

Proc_SzemelyBesorTag hívása:

Bemenő paraméterek:

SzemélyBesor

DKDokSzűrFej.SEngSzemBes

Személy

Proc_DKSzurEng.Személy

 

Proc_ReszlegTag hívása:

Bejövő paraméterek

Részleg

DKDokSzűrFej.SEngRészleg

Személy

Proc_DKSzurEng.Személy