Ga naar inhoud
  • 0

Beperkte set Records tonen o.b.v. inlog


Lutmers

Vraag

Geplaatst:

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 antwoorden op deze vraag

Aanbevolen berichten

  • 0
Geplaatst:

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
Geplaatst:

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
Geplaatst:

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
Geplaatst:

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
Geplaatst:

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
Geplaatst:

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.

Doe mee aan dit gesprek

Je kunt dit nu plaatsen en later registreren. Indien je reeds een account hebt, log dan nu in om het bericht te plaatsen met je account.

Gast
Beantwoord deze vraag...

×   Geplakt als verrijkte tekst.   Plak in plaats daarvan als platte tekst

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...