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?

09 JanSalesforce Release Notes für Spring’14 sind verfügbar

Seit heute sind die Release Notes für das kommende Spring’14 Release verfügbar:

https://help.salesforce.com/help/pdfs/en/salesforce_spring14_release_notes.pdf

Stand heute sind es bereits 325 Seiten voller Neuigkeiten. In der Vergangenheit wurden die Release Notes meistens noch etwas erweitert mit den Wochen. Schaut also öfter mal vorbei was es Neues gibt.

Meine Highlights

Meine Highlights nach einem ersten drüberlesen:

– Salesforce Files (Früher bekannt unter Chatter Files) ist nun für alle Kunden verfügbar. Damit kann man Dokumente zwischen dem Rechner und Salesforce spielend leicht synchronisieren, ähnlich wie das box oder dropbox anbieten.

– Es gibt ein neues Standard-Objekt: Orders. Zeitgleich gibt es auch eine API, um Orders (Bestellungen) automatisch zu erfassen.

– Die Outlook-Integration hat eine weitere Ergänzung erfahren: Ab sofort kann man Kundenvorgänge mit einem Mausklick aus einer Mail erstellen.

– Die Service Konsole unterstützt jetzt Multi-Monitor-Support und man kann leichter Anhänge per Drag&Drop an die Kundenkommunikation anhängen. Zusätzlich ist es jetzt auch möglich in Kundenemails Bilder direkt in den Text einzufügen, was bisher nur über Umwege ging ist jetzt im Standard verfügbar.

– Ein Schmankerl für Power-User ist, dass man Topics nun auch direkt  Objekten hinzufügen kann und in Listenansichten nach diesen Topics sortieren und filtern kann. Zusammen mit dem neuen Skill-Management, das für die User als Pilot im neuen Release eingeführt wird kann man sich also künftig je nach Topic einer Opportunity die richtigen Spezialisten vorschlagen lassen innerhalb der Firma.

Was sind Eure Highlights?

Das neue Release ist in Kürze in den Sandboxen verfügbar und Anfang Februar 2014 dann in allen Produktionsumgebungen.

02 DecSalesforce Integration für Arme

Das Thema wie Daten nach Salesforce hineinkommen und wieder exportiert werden können ist ein Thema, das jeden (aber auch wirklich jeden) vor dem Kauf brennend interessiert, daher möchte ich diesem Dauerbrenner einen Blogpost widmen.

Um es vorwegzunehmen. In meinen 10 Jahren Berufserfahrung war es noch nie so leicht Daten zu laden oder zu entladen wie heute. Die Tools sind einfach klasse geworden.

Daten exportieren

Dafür gibt es eine Funktion im Setup, die es Euch erlaubt alle (!) Daten per Knopfdruck und in Form von csv (Comma Separated Files) zu exportieren. Das beinhaltet auch die Dateien (Powerpoint, Excel etc.), die Ihr im Laufe der Zeit hochgeladen habt. Und ja, Ihr erhaltet auch die Information wie die Daten und Dateien zueinander gehören mit exportiert.

Ich empfehle Euch nachdrücklich die Erinnerungsmail zu nutzen, die Ihr wöchentlich (bei Professional Edition monatlich) erhalten könnt um Eure Daten lokal als Backup zu speichern. Man weiss ja nie, ob mal jemand aus Versehen alte Daten gelöscht hat. Ihr habt aktuell kein Backup bei Euch lokal gespeichert? Los geht!

Daten laden

Wenige Daten könnte Ihr bequem mit Bordmitteln laden – mit dem sogenannten Wizard – der im Setup eingebaut ist (Datenverwaltung -> Datenimport-Assistent). Allein dieses Tool hätte einen eigenen Post verdient, weil es seit der Überarbeitung im letzten Release deutlich hübscher und besser bedienbar geworden ist.

Probiert den Datenimport-Assistenten einfach mal selbst aus, wenn Ihr beispielsweise Accounts laden möchtet.

Und hier mein ultimativer TIP: Speichert Eure Excel Sheets mit OPEN OFFICE als csv-Dateien ab. Microsoft Excel eignet sich nicht zum Arbeiten mit csv-Dateien (das macht statt Kommas Semikolons – weshalb, das muss uns Microsoft noch erklären).

Sobald die Aufgabe etwas kniffliger wird, werdet Ihr mit dem Assistenten an Grenzen kommen. Vor allem dann, wenn Ihr die selbe Aufgabe mehrfach machen wollt, wenn ihr beispielsweise einen Fehler gemacht hattet und die Ursprungsdatei anpassen wollt oder mehr Daten laden wollt etc. werdet Ihr für ein etwas schlaueres Tool dankbar sein.

Für diesen Fall gibt es eine grosse Anzahl an KOSTENLOSEN Tools, die Ihr nutzen könnt.

Den Salesforce DataLoader gibt es als Bordmittel, dataloader.io, den Jitterbit Data Loader, Skyvva und viele mehr könnt ihr ebenfalls nutzen. Sie alle nutzen die Salesforce APIs und unterstützen Euch dabei Eurer Aufgabe Herr zu werden.

Ich persönlich arbeite inzwischen nur noch mit Jitterbit und dataloader.io und zwar aus folgenden Gründen:

Bei beiden Tools kann ich mehrere Logins hinterlegen (z.B. Testumgebung, Produktionsumgebung) und sämtliche Vorgänge (Laden von Daten, Exportieren etc.) speichern. Gerade wenn ich regelmässig Vorgänge durchführen muss, dann ist das super weil es mir Zeit erspart.

Mein Favorit ist seit Neuestem dataloader.io

Letzte Woche hatte ich einen Kunden am Telefon, der mit dem Assistenten an Grenzen gekommen war und dem ich dataloader.io empfohlen habe – und er war begeistert, so wie ich.

Seit dem letzten Release von dataloader.io lassen sich Laden- und Entlade-Vorgänge mit regelmässiger Abfolge automatisieren – und das kostenlos! Ihr legt beispielsweise fest, dass jeden Tag um 7:00 Uhr ein CSV-Sheet die Umsatzdaten Eurer Accounts aktualisiert – und das geschieht nach der einmaligen Konfiguration von allein.

Ihr könnt als Quelle FTP, Dropbox oder box.com angeben. Den Ausspruch “Integration für Arme” habe ich von meinem Kunden gerne an dieser Stelle übernommen.

Ihr habt somit die Möglichkeit Daten aus Bestandssystemen, Buchungssystemen, was auch immer nach Salesforce automatisch einmal am Tag hochzuladen. Oder alternativ Daten einmal täglich nach FTP, Dropbox oder box.com zu exportieren und von dort weiterzuverarbeiten.

Überlegt selbst welche Möglichkeiten Euch damit zur Verfügung stehen! Und das kostenlos! Bisher haben alle Tool-Hersteller Geld für Prozess-Automatisierungen genommen, dataloader.io hat das jetzt durchbrochen. Und macht damit natürlich Werbung für deren richtig, richtig schicke Integrations-Plattform Mulesoft, die Euch mit dem CloudHub noch ganz andere Möglichkeiten bietet (Ein Blick auf deren Portfolio lohnt sich!)

Natürlich bekommt Ihr keine Garantie für den Betrieb von dataloader.io und es ersetzt kein hochwertiges Integrationswerkzeug. Aber für eine Integration von unkritischen Daten auf dennoch sicherem Weg ist es unschlagbar gut.

Probiert es aus, Ihr werdet begeistert sein wie leicht sich Daten laden, mappen und exportieren lassen.

Wieso ist das bei Salesforce so einfach?

Ganz einfach, weil Salesforce konsequent auf offene Standards setzt und APIs für den Zugriff auf das System zur Verfügung stellt. Die anderen Hersteller verfolgen da den Weg die User in ihrer eigenen Welt einzusperren. Es ist oft ein Drama auf die Daten bei anderen Systemen zuzugreifen, von einfachen Wegen die Daten zu verarbeiten ganz zu schweigen. Für Ihr Integrations- bzw. Migrations-Projekt benötigt Ihr jetzt “nur noch” Zugriff auf die anderen Systeme, dann geht’s los.

Für Migrations-Projekte macht Euch schon heute an die Analyse darüber wie Ihr die Daten aus Euren Altsystem entladen bekommt. Diese Frage werdet Ihr Euch künftig nicht mehr stellen brauchen. Sie wurde in nur wenigen Zeilen hier beantwortet.

Welche Tools nutzt Ihr, was sind Eure Erfahrungen, welche Use Cases könnt Ihr Euch vorstellen mit den Möglichkeiten von dataloader.io?

02 DecSalesforce Video – Firmenprofil & Trust.com

Gerne wird vergessen die Grundeinstellungen einer Salesforce-Umgebung richtig zu wählen, was Euch dann später Ärger bereiten kann.

In diesem Video diskutieren Tobias und ich ausgiebig die Salesforce Firmeneinstellungen

  • Firmeninformationen
  • Geschäftsjahr
  • Geschäftzeiten
  • Feiertage
  • Spracheinstellungen
  • Trust.com

Aus unserer Sicht ein Muss für jeden Admin diese Themen zu verstehen, damit die Umgebung sauber aufgesetzt ist.

Erst danach sollte mit dem Bauen von Feldern, Layouts und Prozessen beginnen.

Viel Spass beim Zuschauen. Wir freuen uns auf Euer Feedback!

 

25 NovDreamforce 2013 im Rückblick

Die Dreamforce 2013 – eine der größten Tech Konferenzen – fand letzte Woche in San Francisco statt. Aus Zeitgründen ist dieses Highlight hier auf dem Blog dieses Jahr leider etwas zu kurz gekommen. Anders als im letzten Jahr konnten wir beide nicht vor Ort dabei sein. Neben der Band Green Day war auch sonst viel gutes zu hören … hier einige interessante Links für alle, die sich nachträglich informieren möchten.

Live-Aufnahmen von den einzelnen Sessions:

Hier einige deutschsprachige Beiträge zur Dreamforce 2013:

Viel Spaß beim Lesen!

Links zu weiteren lesenswerten Artikeln rund um die Dreamforce 2013 gerne als Kommentar eintragen.

25 NovCloudBlogger Video: Meine Einstellungen

In Episode 2 hatten wir das neue Administratoren-Layout besprochen, das uns das Summer ’13 Release gebracht hatte.

Episode 3 geht näher auf die persönlichen Einstellungen ein, die jeder Salesforce Anwender unabhängig vom Administrator für sich ändern kann, insbesondere:

  • Eigenes Passwort ändern
  • Persönliche Daten (z.B. Adresse, Telefonnummer)
  • E-Mail Einstellungen und persönliche E-Mail Signatur
  • Chatter-Einstellungen (Frequenz der Chatter-Benachrichtigungen)
  • Salesforce Desktop Apps herunterladen

Viel Spaß beim Anschauen! Über eine Weiterempfehlung im Netzwerk würden wir uns freuen.

 

11 SepCloudBlogger Video: Neues Salesforce Setup

Im Juni hatten wir unseren CloudBlogger Youtube-Kanal eröffnet und in unserer ersten Episode vorgestellt, worauf Administratoren achten sollten, wenn sie das erste Mal in einer neuen Salesforce Umgebung unterwegs sind. Episode 2 hatten wir bereits vor einigen Tage nach der Umstellung auf das Summer ’13 Release aufgenommen, aber erst jetzt veröffentlicht.

Episode 2 handelt von folgenden Punkten:

  • Ausblenden der Randleiste zur Bildschirmoptimierung
  • Neue Platzierung von Setup / Meine Einstellungen
  • Aufbau der neuen Setup-Struktur

 

19 AugJeder sieht nur was er soll – Freigaberegeln entmystifiziert

So ziemlich jeder Kunde hat den Wunsch in seiner Software genau zu regeln wer von den Mitarbeitern welche Daten sehen darf.

Die Möglichkeiten die Freigaberegeln von Datensätzen zu definieren sind sehr vielfältig und haben mich dazu bewogen hier mal zusammenfassen zu schildern welche Wege Euch zur Verfügung stehen wenn Ihr die Freigaben verwalten wollt.

Der Einstieg: Unternehmensweite Standardeinstellungen

Hinter dem im deutschen nicht so richtig prickelnden Begriff steckt eine absolut essentielle Funktionalität. Nicht umsonst wird darauf in der Administrator-Prüfung sehr ausführlich eingegangen.

Recht oder Zugriffsreche in Salesforce zu vergeben funktioniert immer nach dem generellen Muster:

Es gibt eine Standardeinstellung und man kann Benutzern weitere Rechte hinzugeben. Daher ist es wichtig die Grundeinstellungen richtig zu setzen. Wenn die ganze Firma Account-Daten lesen und schreiben sollen darf, dann wäre die Standardeinstellung entsprechend – und es gebe keinen weiteren Grund mehr für zusätzliche Freigaberegeln.

Ihr habt grundsätzlich 3 Möglichkeiten (es gibt wenige Ausnahmen auf die ich hier nicht eingehen möchte):

  • Privat – Nur der Datensatzinhaber hat Zugriff auf den Datensatz
  • Öffentlicher Lesezugriff – Die ganze Firma hat lesende Rechte auf den Datensatz, nur der Datensatzinhaber hat das Recht ihn zu editieren
  • Öffentlicher Lese-/Schreibzugriff – Alle in der Firma haben Zugriff auf den Datensatz und dürfen ihn bearbeiten

Wenn ihr einen der ersten beiden Einstellungen für Eure Objekte ausgewählt habt, dann gibt es noch weitere Orte an denen Ihr den Benutzern freigaben erteilen könnt – und darum soll sich dieses Blog drehen.

Um alle Punkte im Detail mit Praxisbeispielen zu erörtern würde sich eher ein Buch anbieten als ein Blog, gedacht ist das Blog an dieser Stelle zum Einstieg und zum Überblick:

1. Freigaberegeln – der Klassiker

Am bekanntesten dürften die Freigaberegeln sein. Im Setup kann man unter Freigaberegeln die unternehmensweiten Einstellungen vornehmen und auch gleich ausnahmen definieren. Abhängig von jedem (!) Feld auf Eurem Datensatz könnt Ihr Regeln definieren wer zusätzlich die Daten sehen kann.

Ein Klassiker deshalb, weil man in 90% der Fälle damit schon am Ziel ist und die Freigaben für ganze Gruppen, Teams und Rollen aus Eurem Org-Chart geben könnt. Probiert es mal aus.

2. Manuelle Freigaben

Wenn Ihr den Button “Manuelle Freigabe” in Eurem Layout habt und der Benutzer das Recht hat Freigaben zu erteilen, dann könnt Ihr so Euren Benutzern individuell das Recht geben Datensätze Kollegen freizugeben. Es ist halt kein automatisierter Prozess, sondern für alle Sonderfälle gedacht und gemacht bei denen Ihr explizit keine Automatisierung wollt.

3. Account Teams – Auch für Opportunities und Cases

Ebenfalls ein manueller Prozess: Wenn Ihr in größeren Teams arbeitet, dann bietet es sich eventuell an mit Account Teams zu arbeiten. Wenn Ihr einen Kollegen in Euer Account Team aufnehmt, dann gebt ihr ihm Zugriff auf den Account selbst und nach Wunsch auch direkt Zugriff auf die Opportunities und die Cases. Ob Vollzugriff oder nicht: Einstellungssache.

TIP: Wenn Ihr das öfter nutzt, dann definiert Euch bei Eurem User Euer Standard Account Team. So tut Ihr Euch leichter Euer Team hinzuzufügen.

4. Opportunity Teams

Ähnlich wie Account Teams könnt Ihr auf Euren Opportunities Teams definieren mit denen Ihr arbeiten wollt und die Zugriff auf Euren Datensatz bekommen. Ist so ähnlich wie manuelles Sharing, aber mit dem Zusatz, dass Ihr den Kollegen (und Partnern) Rollen geben könnt, die Euch die Zusammenarbeit vereinfacht.

5. Rollenhierarchy – Zugriff auf Opportunities

Recht unbekannt ist, dass man auch im Org-Chart definieren kann wie der Zugriff auf Opportunities ist deren Account-INHABER man selbst ist. Ich selbst empfehle immer die Einstellung so zu setzen, dass man Zugriff auf alle Opportunities. Nur in Ausnahmefällen macht es Sinn anders vorzugehen.

6. Territories – Zugriff auf ein komplettes Gebiet

Zunächst müssen die Territories von Salesforce über ein Ticket aktiviert werden. Wenn Ihr das getan habt und diese nutzt, dann vergesst bitte nicht, dass auf diese genutzt werden können für Freigaben in Eurem Territory: Generell sehr Ihr alle Accounts in Eurem Territory, aber auch der Zugriff auf Kontakte, Opportunities und Cases kann hier geregelt werden.

Der Einsatz von Territories sollte genau abgewogen werden. Wenn Ihr tatsächlich in Teams arbeitet, kann der Einsatz mehr als Sinn machen. Probiert es am Besten mal in einer Development-Umgebung oder Sandbox vorab aus – niemals in Produktion, das es sich aktuell nicht wieder abschalten lässt!

7. APEX Freigaberegeln

Solltet Ihr mit den Freigaberegeln und den anderen Möglichkeiten tatsächlich an Grenzen stossen (was mir selbst noch nicht passiert ist), dann steht Euch der Weg offen über Code nach Eurem wohlgefallen Regeln zu erstellen und Freigaben zu erteilen.

Mein Fazit

Die Einsatzmöglichkeiten von Freigaben sind sehr vielfältig und quasi unlimitiert. Versucht wenn möglich mit den Sandard-Einstellungen auszukommen, die sehr, sehr mächtig sind.

Nutzt die anderen Möglichkeiten nach Bedarf, bedenkt aber bitte auch, dass Ihr als Admins das auch pflegen müsst und dann erteilte Freigaben im Zweifelsfall an neue Kollegen übertragen müsst.

Daher mein Rat (wie bei so vielem): Wägt die Möglichkeiten gut ab und entscheidet Euch dann für wenige der oben genannten Optionen. Ihr wollt ja lange Freude an Eurer Salesforce-Umgebung haben.

Was sind Eure Erfahrungen? Wie geht Ihr vor?

 

 

 

22 Jul2. Salesforce User Group Treffen München

Am Dienstag, den 30. Juli 2013, findet das 2. Treffen der Salesforce User Group München statt. Ab 19 Uhr sind alle Salesforce Anwender, Salesforce Administratoren, Salesforce Berater und Salesforce Mitarbeiter zu Networking und Erfahrungsaustausch in der Niederlassung München eingeladen.

Adresse:
Niederlassung
Buttermelcherstraße 6
80469 München

Nachdem beim ersten Treffen Mitte April bereits über 15 Salesforce Begeisterte zum gemütlichen Austausch im Hofbräukeller am Wiener Platz zusammenkamen und die Salesforce User Group München Xing-Gruppe inzwischen rund 60 Mitglieder hat, erwarten wir trotz Ferienbeginn eine mindestens ebenso große Runde.

Für das 2. Salesforce User Group München Treffen ist keine feste Agenda geplant, sondern Kennenlernen und lockerer Austausch stehen auf dem Programm.

Hier geht’s zur Xing-Anmeldung.

17 JulAdmin Basics: Darum überschreibt man niemals nie einen bestehenden Benutzer

Nachdem ich es in den letzten Tagen zweimal mit dem gleichen Problem bei Kunden zu tun hatte, möchte ich dieses Blog einem totalen Basic widmen, das viel zu wenig Beachtung findet: dem Benutzer.

Jeder Nutzer in Salesforce wird als Benutzer angelegt und bekommt seinen Login-Namen und legt sich selbst ein Passwort fest. Was aber, wenn der Benutzer ausscheidet und ein anderer seine Funktion übernimmt?

Der schnellste – und leider auch schlimmste – Weg ist einfach den vorherigen Benutzer zu überschreiben, die Emailadresse auszutauschen, den Login-Namen zu ändern und das Passwort zurückzusetzen. So einfach kann das gehen, hier nur ein paar der Nachteile die Ihr Euch dabei einhandelt:

Wenn wir und klar machen, dass die Historie des neuen Benutzers dabei übernommen wird, wird vieles klar:

  • Der neue Benutzer hat bereits viele Daten angelegt, letzte Änderungen vorgenommen
  • Der neue Benutzer hat bereits Aktivitäten, die eigentlich gar nicht seine sind
  • Die persönlichen Einstellungen des Benutzers sind bereits gefüllt
  • Die Feldhistorie (wer hat was wann geändert) wird verfälscht
  • Reports können etwas Falsches aussagen, wenn auf diverse Systemfelder reportet wird

Richtig übel wird es aber, wenn Ihr Chatter einsetzt (was ich Euch hiermit nachdrücklich empfehlen möchte, solltet Ihr es noch nicht tun!):

  • Alle alten Posts werden auf den neuen Benutzer übertragen
  • Der neue Benutzer ist in Gruppen eingetragen, für die er eigentlich keinen Zugriff haben sollte
  • Andere Benutzer wundern sich, wieso bei alten Posts ein anderer User steht
  • etc.

Ihr seht, Ihr handelt Euch nur Nachteile ein.

Der richtige Weg ist folgender:

Deaktivert erst den alten Benutzer, denn so bekommt Ihr sofort die Lizenz freigegeben, die Ihr benötigt um den neuen Benutzer anzulegen. Danach legt einen neuen Benutzer an und schenkt ihm ein jungfreuliches Profil. Benennt den alten User eventuell um, beispielsweise von “Sabine Stub” in “X – Sabine Stub”, dann weiss jeder in der Firma, dass die Person nicht mehr aktiv ist.

Danach übertragt die Accounts, Kontakte und offenen Opportunities und Kundenvorgänge mit den eingebauten Admin-Klick-Tools an jemand anderen.

Glaubt mir, das bisschen Arbeit lohnt sich sehr. Es wird Euch viele Rückfragen des neuen Benutzers ersparen und damit Eure und seine Zeit und Frustration sparen.

Welche Erfahrungen habt Ihr mit der Administration von Benutzern gemacht? Über welche Themen sollen wir bloggen? Wir freuen uns auf Euer Feedback.