Direkt zum Hauptbereich

Posts

Posts mit dem Label "UserRecordAccess" werden angezeigt.

Error: Number of records exceeds limit: 200 in Apex

Berechtigung auf einzelne Datensätze wie z.B. Accounts für einen bestimmten Benutzer kann komfortabel mit Hilfe von   UserRecordAccess  berechnet werden. Es ist allerdings darauf zu achten, dass die Anzahl der abgefragten Datensätze limitiert ist. Das Limit ist von Salesforce auf 200 gesetzt. Use Case: Visualforce Page enthält ein Suchformular für Accounts. Suchmaske wird vom Außendienst vor der Anlage neuer Accounts benutzt, um Duplikate zu vermeiden. Unabhängig von der Berechtigung auf die einzelnen Datensätze (private / public), werden die Namen und Adressen der gefundenen Accounts auf der Seite als Suchergebnisse dargestellt. Abhängig von der Berechtigung hinsichtlich der gefundenen Accounts ist der Link "Öffnen" sichtbar/unsichtbar. Es muss sichergestellt werden, dass die Suche max. 200 Datensätze liefert, um den Berechtigungsaspekt "sauber" zu verarbeiten. Mit try-catch zusätzlich alle Modalitäten abfangen. Der  catch Block wirft einen Fehler, wenn ...

Berechtigung auf Datensatzebene ermitteln

In diesem Artikel habe ich eine Möglichkeit der Datentransparenz mit eingeschränkter Berechtigung beschrieben. Daten werden mittels einer Suchmaske ermittelt und auf einer Visualforce Seite dargestellt. Zusätzlich enthält die Tabelle mit Suchergebnissen einen Link pro Datensatz zum Öffnen von, wie es in meinem Beispiel beschrieben ist, Accounts. Wenn der in Salesforce eingeloggte Benutzer keine Berechtigung auf die Daten hat, erscheint eine Salesforce Fehlermeldung beim Versuch, einen Datensatz zu öffnen. In dem oben genannten Artikel habe ich die Sichtbarkeit des "Öffnen"-Links reduziert, indem ich den Account Owner mit dem aktuellen Benutzer verglichen habe. Diese Lösung hat aber einen Nachteil: dem gesamten Account Team wird die Benutzung des "Öffnen"-Links verwehrt, weil eine andere Person als Account-Owner definiert ist. Eine etwas elegantere Lösung impliziert die Auswertung des  UserRecordAccess Objektes. Im Controller wird die Berechtigung eines bestim...