22 FebSalesforce Freigaberegeln mit APEX

In einem vergangenen Blogpost habe ich zusammengestellt wie man sich in Salesforce die Freigaberegeln definieren kann und habe darauf viele Rückfragen bezüglich APEX bekommen, daher will ich diesem Thema mal hier näher auf den Grund gehen:

Wie funktionieren die Freigaben im Detail – und wie kann man auf die Regeln per APEX zugreifen bzw. diese erstellen?

Das Prinzip ist so einfach wie genial. Um das zu verstehen müssen wir einen kurzen (sehr kurzen!) Ausflug in die Datenbank von Salesforce machen:

Für jedes Objekt für das die Unternehmensweiten Standardeinstellungen NICHT “öffentlicher Lese-/Schreibzugriff” ist, wird eine weiteres Objekt angelegt in dem die Freigaben abgelegt werden. Über die Admin-Bedienoberfläche ist das aber nicht sichtbar. Um darauf zuzugreifen bedient man sich Admin-Tool (z.B. Eclipse, Develpper Konsole, SoqlXplorer etc.) und findet dort das entsprechende Objekt.

Ich habe für Euch die Account-Sicherheitseinstellungen auf privat gesetzt und EINE einzige Freigaberegel erstellt und Euch mit dem SoqlXplorer einen Screenshot gemacht:

AccountSharing

 

Was dann in der Datenbank abgelegt wird ist nicht etwa die Regel selbst, sondern es wird für jeden (!) Account für den eine Freigaberegel erstellt wurde diese in die Sharing-Tabelle eingetragen. In diesem Beispiel wurde also aus einer Regel 12 Einträge.

Das ist auch der Grund weshalb man immer die Meldung bekommt, dass die Regeln “berechnet” werden und das etwas dauern kann nach dem Speichern. Denn Salesforce übersetzt die von Euch erstellten Freigaberegeln auf die Accounts und trägt diese dann in die Tabelle ein. Bei riesigen Datenmengen und entsprechend vielen Usern kann das schon mal richtig viel werden und entsprechend lange dauern.

So, und wie greift man jetzt auf die Tabelle per APEX zu? Ganz einfach: Ihr habt die Chance selbst dort Einträge vorzunehmen bzw. diese auch wieder zu löschen. In der Praxis sieht das dann so aus, dass man (bleiben wir beim Beispiel Account) bei jedem Speichern/Erstellen/Löschen einen Trigger startet, der die Sharing-Regeln in der Tabelle überarbeitet bzw. einträgt.

Ihr legt dort fest welcher User oder welche Gruppe (Vorsicht, das sind keine Chatter-Gruppen, sondern öffentliche Gruppen!) welchen Zugriff auf den Datensatz bekommt.

Mein Tip war und bleibt: Man kommt fast immer mit den Standard-Regeln aus. Erst wenn diese zu 100% ausgenutzt worden sind und Ihr Freigaben braucht, die man einfach nicht anders machen kann, solltet Ihr die APEX-Regeln nutzen.

Was ist Eure Best-Practice?

12 JunSalesforce Themen – Ideenliste

Die Liste an Salesforce Themen, die wir bei einem ersten Brainstorming für mögliche Blog-Einträge erstellt haben ist bereits lang. Wir werden sehen was wir wann und in welcher Tiefe behandeln werden. Kommentare zu dieser Ideenliste oder Vorschläge für weitere Themen gerne unten im Kommentarfeld eintragen.

  • Salesforce – CRM in der Cloud (Entstehungsgeschichte, Pionierrolle, Vision)
  • Sales Cloud Überblick
  • Marketing Cloud Überblick
  • Service Cloud Überblick
  • Chatter (Collaboration)
  • Chatter Messenger (Real-time Collaboration)
  • Force.com (Platform for Cloud Apps)
  • Data.com (Business Data Services)
  • Database.com (Cloud Database)
  • Heroku.com (Cloud Application Platform)
  • Do.com (Social Productivity, Task-Management)
  • Site.com (Cloud CMS)
  • Desk.com (Social Customer Support Help Desk)
  • RemedyForce.com (IT Help Desk, ITIL)
  • FinancialForce.com (Accounting, Order Management, PSA)
  • Rypple.com (Social Performance Management, HR)
  • Radian6.com (Social Monitoring)
  • BuddyMedia.com (Social Marketing)
  • Kenandy.com (Social ERP)
  • AppExchange (Market Place for SFDC Apps and Services)
  • Salesforce Preise und Editionen
  • Enterprise Edition (EE) vs. Professional Edition (PE) – Consulting Perspektive
  • Salesforce Analytics / BI (Reporting & Dashboards)
  • New Visual Workflow (automatisierte Prozesse, Salesforce-BPM)
  • Vorstellung einzelner Module der AppExchange
  • Tools rund um Salesforce (DataLoader, Office Connector, Soql-Xplorer, …)
  • Überblick Salesforce Zertifizierungen (Administrator, Developer, Consultant, Architect)
  • Überblick Salesforce Trainings
  • Developer-Konsole
  • Datenimport – / export, Datenmigration
  • Cloud Integration (Salesforce mit Datenbanken oder ERPs – bpsw. SAP, Microsoft Dynamics)
  • Vor- und Nachteile von Triggern
  • Programmierung vs. Customizing (Aufwand, Nutzen, Qualität)
  • Security / Sicherheit
  • De-duplizieren von Daten
  • Approvals und Approval Visualizer (Genehmigungsprozesse)
  • Schema Builder
  • Validierungen
  • Workflows / Cross-object workflows
  • Formeln
  • Kampagnen
  • E-Mail Marketing
  • Neue Salesforce Releases (3x pro Jahr)
  • Dreamforce (Salesforce Konferenz USA)
  • Google Charts in Salesforce
  • Google Mail Integration
  • Outlook Integration
  • Testumgebungen (Developer Sandbox, Full Sandbox)
  • Deployment (zwischen Umgebungen)
  • Berechtigungen (Rollen, Profile, Permission Sets, Sharing)
  • SOQL
  • Ideas (Ideenportal, Anforderungsmanagment)
  • Answers (Fragen und Antworten durch die Community)
  • Knowledge (Wissensdatenbank verknüpft mit Kundenvorgängen)
  • Customer Portal (optimierte Zusammenarbeit mit Kunden, z.B. Einstellen von Support-Tickets)
  • Partner Portal (optimierte Zusammenarbeit mit Partnern , z.B. Leads, Opportunities)
  • uvm

Bei regem Zuspruch der Community behalten wir uns vor die Cloudblogger Ideenliste nach Salesforce Ideas zu migrieren 😉