Jump to content
  • 0

Beperkte set Records tonen o.b.v. inlog


Lutmers

Question

Posted

Beste mensen,

 

Ik heb verschillende man in de buitendienst.. als medewerker X inlogt moet hij in een lijst van klanten alleen die klanten zien waar X accountmanager van is... Dus zowel in de klantkaart, in lijsten en bij zoek opdrachten, etc... ik dacht dat dit tegenwoordig met een layouts gebaseerd op een relatie tussen inlognaam (global) en de waarde in het veld 'accountmanager' mogelijk moest zijn..

Maar het lukt me niet echt... ik wil liever niet weer terug naar FMPRO 6 trucjes op basis van scripts en restore finds... iemand een idee..

 

Dank!

Jeroen Lutmers

7 answers to this question

Recommended Posts

  • 0
Posted

Volgens mij kan het haast niet anders dan dat je toch een zoek scriptje moet gebruiken. Je kan dat automatisch laten beginnen bij het opstarten.

 

Als je daarna verder wilt werken moet je bij alle scripts waarmee je zoekopdrachten uitvoert ook de vergelijking op usernaam meegeven, een beetja als je het gewend was dus.

 

Andere optie zou kunnen zijn om op de layout alleen een portaalrij te laten zien gebasserd op je relatie i.p.v. lijstweergave,dit maakte hetzoeken in de records alleen weer ingewikkelder.

  • 0
Posted

Wat dacht je van de optie om je rechtensysteem te gebruiken. Maak een privilege set waarin je definieert dat de accountname ook bij het record vermeld moet zijn.

 

Veel zuiniger kwa code en veel beter beheersbaar.

 

Groet,

 

WJ

  • 0
Posted

Ik heb daar wel aan gedacht en het zal daar ook wel op uitlopen, maar ik had gehoopt dat de heren van filemaker dit trucje inmiddels wel aan ons zouden aanbieden... het lijkt mij een situatie van de dagelijkse praktijk!

Dank voor de reacties tot nu toe!! Als iemand nog een strakke oplossing heeft, hoor ik het graag..

  • 0
Posted

Dat met de privileges is volgens mij de goede weg.

De heren van FM hebben dat in zoverre voor je geregeld, dat alle zoekslagen die je uitvoert, automatisch de records die je niet mag zien weglaten. Dat geldt dan alleen weer niet voor het commado 'Zoek alles'. (Zoals zoveel in FM een uitzondering op de regel kent...)

In FM>7 kan je zowel Browse, Edit en Delete afhankelijk maken van een berekening.

Als je dus Browse beperkingen gebruikt, leveren zoekslagen alleen records op die de accountmanager mag zien. Je zult wel moeten beginnen met een opstartscritpt.

 

HTH

 

rmw

  • 0
Posted

Het is wel degelijk werkend te krijgen.

 

Zoals ik dat gedaan heb:

 

a. Maak een veld in het bestand, genaamd Toegangsrecht.

 

b. Vul het veld Toegangsrecht met de namen van de mensen die het mogen zien.

 

c. Accounts en Privileges / Privileges set / "Data Access and Design" / Records: stel deze in op Custom Privileges

 

d. Breng bij View de formule in:

Toegangsrechten = "" or PatternCount( Toegangsrechten ; Get ( AccountName ) ) > 0

Ik schakel het wachtwoordensysteem overigens uit zodra in het veld Toegangsrechten geen waarde aanwezig is. Wel zo handig als je nieuwe records aanmaakt en ook niet elke organisatie wil met dit soort restricties te werk gaan.

 

e. Maak in het bestand een gecalculeerd veld aan waarmee de formule StatusCurrentRecordAccess berekend wordt

 

 

Zorg er verder voor dat alle zoekacties via scripts lopen, en dat je daar een zoekwaarde aan toevoegd welke alleen de records op StatusCurrentRecordAccess > 0 toont

 

Daarbij is het handig om al bij de start van een bestand een zoekactie te laten lopen, zodat er geen overtollige records worden getoond.

 

Eén heel groot nadeel aan deze constructie: bij het zoeken op alle records in grote bestanden, duurt de zoekactie vrij lang.

Ik zorg er dan ook voor dat nieuw geopende bestanden altijd 0 records laten zien, om te voorkomen dat niet toegestane records in beeld springen.

 

Probeer het maar eens, als het werkt is het zo goed te overzien.

  • 0
Posted

Een betrekkelijk eenvoudige manier om alleen de records van 1 user te laten zien is door bij de relatie die je aanbrengt tussen 2 tabellen, een tweede statement aan te brengen;

 

bijvoorbeeld

 

_kp_CustomerID = _kf_CustomerID

AND

_kf_UserID = _kf_UserID

 

 

Uiteraard moet je een aparte tabel hebben waarin alle users staan met hun eigen UserID en moet bij elke tabel de data bewaard worden welke user dat record heeft aangemaakt.

 

Wil je alle records zien moet je een aparte TOG maken waarbij de tweede statement niet is toegevoegd.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...