Force.com-Plattform – Grundlagen
Transcription
Force.com-Plattform – Grundlagen
Force.com-Plattform – Grundlagen Eine Einführung in die Entwicklung benutzerdefinierter Anwendungen in der Cloud Version 8 Oktober 2013 Von Phil Choi Chris McGuire Caroline Roth Mit Beiträgen von Dave Carroll Nick Tran Andrea Leszek Force.com-Plattform – Grundlagen © Copyright 2000–2014 salesforce.com, Inc. Alle Rechte vorbehalten. Salesforce.com ist eine registrierte Marke von salesforce.com, inc., ebenso wie andere Namen und Marken. Weitere in diesem Dokument erwähnte Marken sind möglicherweise Marken der jeweiligen Inhaber. Die verschiedenen Marken sind Eigentum der jeweiligen Inhaber. Ohne vorherige Genehmigung des Herausgebers darf kein Teil dieser Veröffentlichung in irgendeiner Form oder mit irgendwelchen Mitteln, sei es auf elektronische oder mechanische Weise, durch Fotokopie, Aufzeichnung oder anderweitig, reproduziert, in einem Abfragesystem gespeichert oder übertragen werden. ISBN: 978-0-9789639-3-4 Force.com-Grundlagen ist eine Einführung in die nativen Funktionen der Force.com-Plattform. Dieses Buch führt den Leser durch die Erstellung einer standardmäßigen Personalbeschaffungsanwendung, darunter die Entwicklung und Erstellung von Force.com-Objekten, die Änderung des Erscheinungsbilds der standardmäßigen Force.com-Benutzeroberfläche, das Force.com-Sicherheitsschema, die Zusammenarbeit mit Chatter, die Erstellung von Berichten zu Ihren Daten sowie die Verwendung von Workflows und Genehmigungen. Dieses Buch beschreibt zudem die Verwendung von Visualforce-Seiten zur Integration externer Funktionen. Inhaltsverzeichnis Inhaltsverzeichnis Vorwort....................................................................................................1 Willkommen in der Cloud!..............................................................................................1 Plattformen für Cloud Computing.......................................................................2 Über dieses Buch..............................................................................................................3 Zielgruppe.............................................................................................................3 Kapitelinhalt.........................................................................................................3 Auswahl der Entwicklungsumgebung...................................................................5 Senden von Feedback............................................................................................6 Informationen zu Developer Force...................................................................................6 Salesforce.com Training & Certification..........................................................................6 Einführung in die Force.com-Plattform.....................................................9 Kapitel 1: Einführung in die Force.com-Plattform.............................9 Grundlagen der Benutzeroberfläche einer Anwendung......................................11 Die Vorzüge von Force.com-Plattformanwendungen........................................14 Datenzentrierte Anwendungen...............................................................14 Kollaborative Anwendungen...................................................................15 Die Technologie hinter Force.com-Plattformanwendungen..............................15 Mandantenfähige Architektur.................................................................17 Ein metadatengesteuertes Entwicklungsmodell......................................18 APIs........................................................................................................19 Apex........................................................................................................19 Visualforce...............................................................................................20 Mobiler Zugriff.......................................................................................20 Das AppExchange-Verzeichnis..............................................................21 Kapitel 2: Informationen zur Beispielanwendung zur Personalbeschaffung...........................................................................23 Informationen zu Universal Containers..........................................................................24 Überlegungen zur Personalbeschaffungsanwendung......................................................24 Erstellen der Anwendung: Unser Design.......................................................................25 Benutzerdefinierte Objekte.................................................................................25 i Inhaltsverzeichnis Sicherheits- und Freigaberegeln.........................................................................27 Workflow- und Genehmigungsprozesse.............................................................27 Benutzerdefinierte Berichte und Dashboards.....................................................28 Visualforce..........................................................................................................29 Kapitel 3: Datenbankbezogene Konzepte.................................................31 Was ist eine Datenbank?................................................................................................33 Was ist in einer Datenbank enthalten?...........................................................................34 Was ist eine relationale Datenbank?...............................................................................35 Datenbankkonzepte – Zusammenfassung......................................................................37 Kapitel 4: Erstellen einer einfachen Anwendung.......................................39 Der Setup-Bereich..........................................................................................................40 Einführung zu Anwendungen........................................................................................42 Probieren Sie es aus: Definieren einer Anwendung............................................42 Rekapitulation.....................................................................................................45 Einführung zu Objekten.................................................................................................47 Das benutzerdefinierte Objekt "Position" (Stelle)..............................................47 Probieren Sie es aus: Definieren des benutzerdefinierten Objekts "Position" (Stelle)...........................................................................................................48 Einführung zu Registerkarten.........................................................................................52 Probieren Sie es aus: Definieren der Registerkarte "Positions" (Stellen)............53 Rekapitulation.....................................................................................................55 Setup-Detailseiten und Themenlisten............................................................................57 Einführung zu Feldern...................................................................................................60 Probieren Sie es aus: Hinzufügen von Textfeldern.............................................61 Probieren Sie es aus: Hinzufügen von Währungsfelder......................................64 Probieren Sie es aus: Hinzufügen von Kontrollkästchenfeldern.........................65 Probieren Sie es aus: Hinzufügen von Datumsfeldern........................................66 Rekapitulation................................................................................................................66 Erstellen der mobilen Version unserer einfachen Anwendung.......................................67 Kapitel 5: Erweitern der einfachen Anwendung mit erweiterten Feldern, Datenvalidierung und Seitenlayouts.....................................................71 Hinzufügen von erweiterten Feldern..............................................................................72 Einführung zu Auswahllisten..............................................................................72 Probieren Sie es aus: Hinzufügen von Auswahllisten.........................................73 ii Inhaltsverzeichnis Einführung zu Feldabhängigkeiten.....................................................................76 Probieren Sie es aus: Erstellen einer abhängigen Auswahlliste...........................77 Rekapitulation.....................................................................................................80 Einführung in benutzerdefinierte Formelfelder..................................................81 Berechnung, wie lange eine Stelle offen ist bzw. war..........................................82 Probieren Sie es aus: Definieren des benutzerdefinierten Formelfelds "Days Open" (Tage offen).......................................................................................84 Probieren Sie es aus: Zuweisen dynamischer Standardwerte zu Feldern............88 Rekapitulation.....................................................................................................89 Einführung in Validierungsregeln..................................................................................90 Probieren Sie es aus: Definieren einer Validierungsregel für Mindest- und Höchstgehalt.................................................................................................91 Probieren Sie es aus: Definieren einer Validierungsregel für "Close Date" (Offen bis).....................................................................................................93 Rekapitulation.....................................................................................................95 Überprüfen auf einem Mobilgerät..................................................................................97 Einführung in Seitenlayouts...........................................................................................98 Der Seitenlayout-Editor.....................................................................................99 Probieren Sie es aus: Gruppieren von Feldern in einen neuen Abschnitt.........101 Probieren Sie es aus: Hinzufügen von Leerräumen zwischen Feldern..............104 Probieren Sie es aus: Bearbeiten von Feldeigenschaften...................................105 Rekapitulation...................................................................................................106 Bereitstellen von Seitenlayouts für die mobile Verwendung.............................108 Einführung zu kompakten Layouts..............................................................................113 Kapitel 6: Erweitern der einfachen Anwendung durch Beziehungen.........117 Einführung zu Beziehungen.........................................................................................118 Einführung in benutzerdefinierte Beziehungsfelder.....................................................119 Probieren Sie es aus: Zuordnen von Einstellungs-Managern zu Stellen...........120 Rekapitulation...................................................................................................121 Hinzufügen von Bewerbern..........................................................................................123 Probieren Sie es aus: Erstellen des Objekts "Candidate" (Bewerber)................123 Probieren Sie es aus: Hinzufügen von Feldern zum Objekt "Candidate" (Bewerber)...................................................................................................124 Probieren Sie es aus: Ändern der Eigenschaften für das Layout der Bewerberseite..............................................................................................126 Rekapitulation...................................................................................................127 iii Inhaltsverzeichnis Probieren Sie es aus: Anpassen der Hervorhebungen im Bewerberdatensatz.......................................................................................129 Rekapitulation...................................................................................................129 Verbinden von "Candidates" (Bewerber) und "Positions" (Stellen) mithilfe von "Job Applications" (Stellenbewerbungen).......................................................................134 Probieren Sie es aus: Erstellen des Objekts "Job Application" (Stellenbewerbung)......................................................................................131 Probieren Sie es aus: Hinzufügen von Feldern zum Objekt "Job Application" (Stellenbewerbung)......................................................................................132 Probieren Sie es aus: Anpassen der Hervorhebungen für den Stellenbewerbungsdatensatz........................................................................134 Rekapitulation...................................................................................................134 Einführung zu Suchlayouts...........................................................................................136 Probieren Sie es aus: Hinzufügen von Feldern im Nachschlagefenster "Candidate" (Bewerber)..............................................................................138 Probieren Sie es aus: Aktualisieren zusätzlicher Suchlayouts............................139 Verwalten von Review-Bewertungen............................................................................141 Probieren Sie es aus: Erstellen des Objekts "Review".......................................142 Probieren Sie es aus: Hinzufügen von Feldern zum Objekt "Review"..............143 Einführung zu Rollup-Zusammenfassungsfeldern...........................................150 Probieren Sie es aus: Erstellen von Rollup-Zusammenfassungsfeldern............150 Probieren Sie es aus: Anpassen des Seiten- und Suchlayouts für das Objekt "Review"......................................................................................................153 Probieren Sie es aus: Anpassen der Datensatzhervorhebungen für Reviews.......................................................................................................155 Rekapitulation...................................................................................................155 Erstellen einer n:n-Beziehung......................................................................................157 Probieren Sie es aus: Erstellen des Objekts "Employment Website" (Jobbörse)....................................................................................................159 Probieren Sie es aus: Hinzufügen des URL-Felds zum Objekt "Employment Website" (Jobbörse).....................................................................................160 Probieren Sie es aus: Erstellen des Objekts "Job Posting" (Stellenausschreibung).................................................................................161 Probieren Sie es aus: Hinzufügen von Feldern zum Objekt "Job Posting" (Stellenausschreibung).................................................................................162 Anpassen benutzerdefinierter Themenlisten in einer n:n-Beziehung...............164 iv Inhaltsverzeichnis Probieren Sie es aus: Anpassen der Themenlisten für Stellen und Jobbörsen.....................................................................................................165 Probieren Sie es aus: Anpassen der Datensatzhervorhebungen für Jobbörsen und Stellenausschreibungen........................................................................166 Rekapitulation...................................................................................................167 Zusammenführung.......................................................................................................168 Probieren Sie es aus: Herunterladen von Beispieldaten....................................170 Probieren Sie es aus: Verwenden des Import-Assistenten................................171 Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten...................175 Steuern des Zugriffs auf Daten in unserer Anwendung................................................177 Erforderliche Berechtigungen für den Personalbeschaffungsmitarbeiter..........177 Erforderliche Berechtigungen für den Einstellungs-Manager..........................178 Erforderliche Berechtigungen für den Gesprächsleiter.....................................181 Erforderliche Berechtigungen für den Standardmitarbeiter..............................182 Wo stehen wir jetzt also?..................................................................................183 Konzepte aus dem Bereich Datenzugriff......................................................................184 Steuern des Zugriffs auf Objekte..................................................................................186 Einführung in Profile........................................................................................187 Standardprofile..................................................................................................187 Einführen von Berechtigungssätzen..................................................................188 Profile und Berechtigungssätze in unserer Personalbeschaffungsanwendung................................................................189 Probieren Sie es aus: Erstellen des Profils "Recruiter" (Personalbeschaffungsmitarbeiter)..............................................................190 Probieren Sie es aus: Erstellen des Profils "Standard Employee" (Standardmitarbeiter)..................................................................................196 Probieren Sie es aus: Erstellen des Berechtigungssatzes "Hiring Manager" (Einstellungs-Manager)..............................................................................197 Probieren Sie es aus: Erstellen des Berechtigungssatzes "Interviewer" (Gesprächsleiter).........................................................................................204 Steuern des Zugriffs auf Felder.....................................................................................206 Einführung in die Feldebenensicherheit...........................................................206 Feldebenensicherheit in unserer Personalbeschaffungsanwendung...................206 Probieren Sie es aus: Einschränken des Zugriffs auf Felder im Profil "Standard Employee" (Standardmitarbeiter)................................................................208 v Inhaltsverzeichnis Probieren Sie es aus: Überprüfen der Feldebenensicherheit in Berechtigungssätzen....................................................................................211 Steuern des Zugriffs auf Datensätze.............................................................................213 Einführung zu unternehmensweiten Standardeinstellungen.............................213 Unternehmensweite Standardeinstellungen in unserer Personalbeschaffungsanwendung................................................................213 Probieren Sie es aus: Festlegen unternehmensweiter Standardeinstellungen.................................................................................216 Einführung in Rollenhierarchien......................................................................218 Rollen, Profile und Berechtigungssätze im Vergleich.......................................219 Rollenhierarchien in unserer Personalbeschaffungsanwendung........................220 Probieren Sie es aus: Erstellen eines Benutzers.................................................221 Probieren Sie es aus: Definieren einer Rollenhierarchie...................................223 Was muss noch freigegeben werden?................................................................226 Einführung in Freigaberegeln...........................................................................227 Freigaberegeln in unserer Personalbeschaffungsanwendung.............................227 Probieren Sie es aus: Definieren einer öffentlichen Gruppe.............................229 Probieren Sie es aus: Definieren von Freigaberegeln........................................231 Einführung in die manuelle Freigabe................................................................233 Probieren Sie es aus: Definieren von Regeln für die manuelle Freigabe...........234 Anzeigen von Feldwerten und Seitenlayouts je nach Profil..........................................235 Probieren Sie es aus: Erstellen eines Datensatztyps..........................................236 Zusammenführung.......................................................................................................240 Probieren Sie es aus: Erstellen von mehr Benutzern.........................................241 Probieren Sie es aus: Überprüfen, ob alles funktioniert.....................................246 Delegieren der Datenverwaltung..................................................................................247 Überschreiben der Freigabe durch Objektberechtigungen................................248 Gruppen für die delegierte Verwaltung.............................................................250 Probieren Sie es aus: Definieren der Verwaltungsgruppe für Personalbeschaffungsmanager.....................................................................250 Probieren Sie es aus: Überprüfen, ob die delegierte Verwaltung funktioniert.................................................................................................253 Zusammenfassung........................................................................................................254 Kapitel 8: Zusammenarbeit mit Chatter..................................................255 Einführung in Chatter..................................................................................................256 Verfolgen von Feldern in Objekten..............................................................................256 vi Inhaltsverzeichnis Probieren Sie es aus: Aktivieren der Feed-Verfolgung für Stellen und Stellenbewerbungen....................................................................................257 Rekapitulation...................................................................................................259 Folgen von Datensätzen...............................................................................................260 Probieren Sie es aus: Einem Stellenbewerbungs-Datensatz folgen...................260 Einrichten von Gruppen...............................................................................................262 Probieren Sie es aus: Eine Gruppe erstellen......................................................262 Einführung zu Benachrichtigungen..............................................................................263 Probieren Sie es aus: Aktivieren von Benachrichtigungen................................264 Rekapitulation...................................................................................................265 Einführung in Publisher-Aktionen...............................................................................266 Probieren Sie es aus: Erstellen einer globalen Aktion.......................................267 Einführung zu Aktionslayouts..............................................................268 Probieren Sie es aus: Hinzufügen von vordefinierten Feldwerten.........270 Probieren Sie es aus: Erstellen weiterer globaler Aktionen...................271 Einführung zu globalen Publisher-Layouts......................................................272 Probieren Sie es aus: Anpassen globaler Publisher-Layouts..................272 Rekapitulation.......................................................................................273 Einführung zu objektspezifischen Aktionen.....................................................275 Probieren Sie es aus: Erstellen von objektspezifischen Aktionen..........275 Probieren Sie es aus: Erstellen weiterer objektspezifischer Aktionen..........................................................................................277 Probieren Sie es aus: Zuweisen objektspezifischer Aktionen zu Seitenlayouts................................................................................................278 Rekapitulation...................................................................................................281 Zusammenfassung........................................................................................................283 Kapitel 9: Verwenden benutzerdefinierter Workflow- und Genehmigungsprozesse.....................................................................285 Einführung in Workflow..............................................................................................287 Einführung in Workflowregeln........................................................................288 Einführung in Workflowaktionen....................................................................289 Workflow in der Personalbeschaffungsanwendung......................................................290 Erstellen von Workflowregeln zum Zuweisen von Aufgaben.......................................292 Probieren Sie es aus: Erstellen der Workflowregel "Send Rejection Letter" (Absage senden)..........................................................................................292 vii Inhaltsverzeichnis Probieren Sie es aus: Erstellen der Workflowaufgabe "Send Rejection Letter" (Absage senden)..........................................................................................296 Probieren Sie es aus: Erstellen der Workflowregel und der Aufgabe "Extend an Offer" (Angebot unterbreiten)................................................................299 Rekapitulation...................................................................................................300 Erstellen einer Workflowregel, die Felder aktualisiert..................................................302 Einführung in Warteschlangen.........................................................................302 Probieren Sie es aus: Erstellen einer Warteschlange für Stellen........................302 Probieren Sie es aus: Erstellen einer Workflowregel, die Felder aktualisiert...................................................................................................305 Einführung in zeitabhängige Workflowaktionen..............................................307 Probieren Sie es aus: Erstellen der zeitabhängigen Workflowaufgabe "Notify Recruiting Manager" (Personalbeschaffungsmanager benachrichtigen)..........................................................................................307 Rekapitulation...................................................................................................310 Erstellen einer Workflowregel, die E-Mail-Benachrichtigungen sendet......................311 Einführung zu E-Mail-Vorlagen......................................................................311 Probieren Sie es aus: Erstellen einer E-Mail-Vorlage.......................................312 Probieren Sie es aus: Erstellen der Workflowregel und Benachrichtigung für "New Position" (Neue Stelle)......................................................................316 Einführung in Genehmigungen....................................................................................318 Planung von Genehmigungsprozessen..............................................................319 Probieren Sie es aus: Erstellen einer E-Mail-Vorlage für Genehmigungen..........................................................................................320 Probieren Sie es aus: Erstellen eines Genehmigungsprozesses..........................321 Probieren Sie es aus: Erstellen von Genehmigungsschritten............................326 Probieren Sie es aus: Erstellen von Genehmigungsaktionen.............................330 Probieren Sie es aus: Aktivieren des Genehmigungsprozesses..........................333 Rekapitulation...................................................................................................334 Zusammenfassung........................................................................................................339 Kapitel 10: Analysieren von Daten mit Berichten und Dashboards...........341 Einführung zu Berichten..............................................................................................342 Berichtsformate.................................................................................................343 Einrichten der Personalbeschaffungsanwendung für Berichte..........................347 Probieren Sie es aus: Hinzufügen der Registerkarte "Berichte"............347 viii Inhaltsverzeichnis Probieren Sie es aus: Erstellen des Ordners "Recruiting Reports" (Personalbeschaffungsberichte).......................................................348 Erstellen eines Zusammenfassungsberichts.......................................................349 Probieren Sie es aus: Erstellen eines Zusammenfassungsberichts.........350 Probieren Sie es aus: Hinzufügen von Spalten und Filtern...................354 Probieren Sie es aus: Hinzufügen eines Kreisdiagramms......................356 Erstellen eines Matrixberichts...........................................................................358 Probieren Sie es aus: Erstellen eines Matrixberichts.............................359 Probieren Sie es aus: Hinzufügen von Zusammenfassungsfeldern........360 Probieren Sie es aus: Hinzufügen von Spalten und Filtern...................363 Probieren Sie es aus: Hinzufügen eines Diagramms und von bedingter Hervorhebung.................................................................................365 Einführung zu Dashboards...........................................................................................368 Probieren Sie es aus: Erstellen zusätzlicher Berichte........................................369 Probieren Sie es aus: Erstellen von Dashboards................................................373 Hinzufügen von Dashboard-Komponenten.....................................................376 Probieren Sie es aus: Hinzufügen von Diagrammkomponenten...........377 Probieren Sie es aus: Hinzufügen einer Messdiagramm-Komponente..........................................................378 Probieren Sie es aus: Hinzufügen einer Tabellenkomponente..............379 Probieren Sie es aus: Hinzufügen einer metrischen Komponente.........380 Aktualisieren von Dashboards..........................................................................383 Einführung in Mobile-Dashboards..................................................................384 Einführung zu benutzerdefinierten Berichten..............................................................386 Probieren Sie es aus: Erstellen von Berichtstypen.............................................386 Rekapitulation..............................................................................................................392 Kapitel 11: Jenseits der Point-and-Click-Anwendungsentwicklung.........393 Einführung in Mashups und Webservices....................................................................395 Einführung zu Visualforce............................................................................................396 Einführung in den Visualforce-Entwicklungsmodus........................................398 Probieren Sie es aus: Aktivieren des Visualforce-Entwicklungsmodus.............399 Implementieren der Bewerberkarte ..............................................................................399 Probieren Sie es aus: Erstellen einer Visualforce-Seite.....................................399 Probieren Sie es aus: Schreiben von Visualforce-Markup.................................401 Probieren Sie es aus: Hinzufügen der Karte zur Visualforce-Seite...................405 ix Inhaltsverzeichnis Probieren Sie es aus: Hinzufügen der Candidate Map (Bewerberkarte) zum Seitenlayout für Stellen...............................................................................406 Probieren Sie es aus: Aktivieren der Bewerberkarte für mobile Anwendungen.............................................................................................408 Probieren Sie es aus: Testen der Bewerberkarte................................................408 Implementieren der Schaltfläche "Mass Update Status" (Status-Massenaktualisierung)................................................................................410 Planen der Funktion "Mass Update Status" (Status-Massenaktualisierung)....................................................................410 Probieren Sie es aus: Erstellen der Seite "Mass Update Status" (Status-Massenaktualisierung)....................................................................412 Grundlegendes zum Visualforce Markup "MassUpdateStatus"........................414 Probieren Sie es aus: Erstellen von benutzerdefinierten Listenschaltflächen......................................................................................418 Probieren Sie es aus: Hinzufügen einer benutzerdefinierter Listenschaltfläche zu einem Seitenlayout..................................................................................420 Probieren Sie es aus: Testen der Funktion "Mass Update Status" (Status-Massenaktualisierung)....................................................................422 Kapitel 12: Weitere Informationen.........................................................423 Developer Force............................................................................................................424 Optionen für Hilfe und Schulungen.............................................................................424 Multimedia...................................................................................................................425 AppExchange-Partnerprogramm.................................................................................425 Was halten Sie davon?..................................................................................................426 Glossar..................................................................................................427 Index.....................................................................................................451 x Vorwort Als Internetnutzer wissen wir alle, auf welch faszinierende, innovative, kreative und manchmal auch alberne Weise das Internet unsere Arbeitswelt und Freizeit verändert hat. Social-Networking-Websites, Wikis, Blogs usw. – es ist spannend, die immer neuen Innovationen zu beobachten, die dazu führen, dass wir anders kommunizieren und mit anderen zusammenarbeiten als früher. Diese Änderungen hatten definitiv einen Einfluss darauf, wie wir mit Inhalten arbeiten, aber ähnliche internetorientierte Ideen und Technologien wirken sich auch auf unsere Vorgehensweise bei der Erstellung von und der Arbeit mit Geschäftsanwendungen aus. Während früher Geschäftsanwendungen Tausende oder gar mehrere Millionen Euro kosteten und manchmal jahrelange Hilfe durch professionelle Services erforderlich war, um sie einzurichten und anzupassen, ist es durch die heutzutage über das Internet bereitgestellten Technologien wesentlich einfacher, Geschäftsanwendungen aller Art zu erstellen, zu konfigurieren und zu verwenden. Das Internet hat uns sogar die Möglichkeit eröffnet, neue Arten von betriebswirtschaftlichen Problemen zu lösen, die bisher aufgrund der großen Komplexität oder der hohen Kosten nicht angegangen werden konnten. So, wie wir durch den Wandel von Papier hin zu digitalen Daten in der Verlagstechnologie nun sofortigen Zugang zu Informationen zu praktisch jedem Vorgang auf der ganzen Welt haben, können wir dank der Änderungen in der Anwendungstechnologie robuste Unternehmensanwendungen für praktisch jede Geschäftsanforderung erfinden. Klingt nicht schlecht? Dann fragen Sie sich vermutlich: "Wodurch wird das alles ermöglicht?" Willkommen in der Cloud! Diese neuen Methoden zur Erstellung und Ausführung von Anwendungen sind durch Cloud Computing möglich, bei dem Sie auf Anwendungen (auch als Apps bezeichnet) als 1 Kapitel 1: Vorwort Dienstprogramme über das Internet zugreifen und nicht als Softwareprogramme, die auf Ihrem Desktop oder im Serverraum ausgeführt werden. Dieses Modell ist bereits recht verbreitet für Verbraucheranwendungen wie E-Mail-Anwendungen und Foto-Sharing sowie für bestimmte Geschäftsanwendungen wie Customer Relationship Management (CRM). Da heutzutage fast alle Anwendungen über einen Webbrowser bereitgestellt werden, lässt sich kaum noch sagen, bei welchen Anwendungen es sich um "herkömmliche Software" handelt und welche in der Cloud ausgeführt werden. Ebenso wie das Internet sind mittlerweile auch Anwendungen, die in der Cloud ausgeführt werden, so allgegenwärtig, dass fast jeder Geschäftsanwender mit mindestens einer interagiert, sei es ein E-Mail-Service, eine Anwendung für Webkonferenzen oder ein Vertriebssystem. Plattformen für Cloud Computing Die Plattform in der Cloud ist eine neue Entwicklung und macht die Bereitstellung von Anwendungsfunktionen noch interessanter. In zunehmendem Maße sehen Anwendungen, die in der Cloud ausgeführt werden, weniger wie Websites und mehr wie Plattformen aus, d. h., sie verfügen immer mehr über Anwendungsprogrammierschnittstellen (APIs), Codebibliotheken und sogar Programmiermodelle. Insgesamt kann man sich diese neuen Entwicklungstechnologien als Plattformen zur Ausführung von Anwendungen in der Cloud vorstellen. Ähnlich wie traditionelle Plattformen bieten Cloud Computing-Plattformen Tools, mit denen die Entwickler bestehende Funktionen nutzen konnten, um etwas Neues zu schaffen. Da diese Plattformen jedoch frei über das Internet zugänglich sind und nicht über ein Betriebssystem oder ein Paket, das auf einem lokalen Computer installiert ist, brauchen sich die Entwickler nicht darum zu kümmern, eine ausführbare Datei zu erstellen, die auf dem Computer der Benutzer installiert werden muss. Jeder, der über einen Webbrowser verfügt, kann auf die Anwendung zugreifen! Die Möglichkeiten, die durch diesen neuen Plattformtyp eröffnet werden, haben sich rasant entwickelt, was durch die Beliebtheit von Mashups begünstigt wurde – Websites oder Anwendungen, die Tools von mehreren Cloud Computing-Plattformen kombinieren, um neue Funktionen zu erstellen. Zu den bereits heute in Mashups verwendeten Tools von Cloud Computing-Plattformen gehören Innovationen wie die Such-API von Google, mit denen die Entwickler die Möglichkeiten dieser Suchmaschine in ihren Anwendungen nutzen können, die APIs von eBay für Auktionen und das Einstellen von Artikeln oder das System von Amazon.com zur Erstellung völlig neuer Online-Shops. Beispielsweise verwendet heutzutage fast jede Immobilien-Website oder -Anwendung eingebundene Karten von Google oder Yahoo!. Dies zeigt, wie diese neuen APIs nun häufig neben den traditionelleren Datenbank-, Anwendungsserver- oder Betriebssystemplattformen ausgeführt werden. 2 Kapitel 1: Vorwort Über dieses Buch Dieses Buch bietet Ihnen eine Einführung in die Force.com-Plattform, die Plattform von salesforce.com zur Erstellung und Ausführung von Geschäftsanwendungen in der Cloud. Zur Erläuterung der Technologien, die auf der Force.com-Plattform zur Verfügung stehen und um Ihnen zu zeigen, wie einfach es ist, ihre eigene Geschäftsanwendung mit der Plattform zu erstellen, führt Sie dieses Buch Schritt für Schritt durch die Erstellung einer Personalbeschaffungsanwendung, die in der Cloud ausgeführt wird. Um den Ausführungen zu folgen, brauchen Sie keine Programmiersprachen zu lernen oder sich mit kryptischen Konfigurationsdokumenten herumzuschlagen. Stattdessen arbeiten Sie einfach mit Point-and-Click-Tools auf einer Web-Oberfläche und befolgen dabei die einfachen Einzelschrittanweisungen im Buch. Anmerkung: Möchten Sie eine Online-Version dieses Buchs? Rufen Sie folgende Seite auf: http://wiki.developerforce.com/page/Force_Platform_Fundamentals. Zielgruppe Dieses Buch ist nicht nur für professionelle Entwickler leicht zu verstehen, sondern auch für Geschäftsanwender. Um möglichst umfassend von diesem Buch zu profitieren, sollten Sie jedoch mit grundlegenden Internet- und Datenbankkonzepten, wie Tabellen und Feldern, vertraut sein. Der Schwerpunkt des Buchs liegt auf der Verwendung der deklarativen Point-and-Click-Funktionen der Force.com-Plattform. Allerdings finden Sie im Kapitel Jenseits der Point-and-Click-Anwendungsentwicklung auf Seite 393 eine Einführung in die Tools, die die Plattform zur Programmierung der Benutzeroberfläche bietet. Um dieses Kapitel vollständig verstehen zu können, sollten Sie mit HTML und JavaScript vertraut sein. Es wird jedoch der gesamte Code, den Sie brauchen, bereitgestellt, sodass Sie, auch wenn Sie kein erfahrener Entwickler sind, dennoch folgen und ein besseres Verständnis für die Möglichkeiten gewinnen können, die die Force.com-Plattform bietet. Kapitelinhalt Wenn Sie bereits mit der Force.com-Plattform vertraut sind, können Sie zu den Kapiteln springen, die Sie am meisten interessieren: 3 Kapitel 1: Vorwort 4 Kapitel Beschreibung Einführung in die Force.com-Plattform Hier erhalten Sie Informationen zu den Technologien der Force.com-Plattform, einschließlich des AppExchange-Verzeichnisses. Informationen zur Beispielanwendung zur Personalbeschaffung Hier erhalten Sie Informationen zur Personalbeschaffungsanwendung, die wir in diesem Buch erstellen, und zu dem Beispielunternehmen, für das wir die Anwendung erstellen. Datenbankbezogene Konzepte Hier werden datenbankbezogene Konzepte, wie Tabellen, Datensätze, Felder, Schlüssel und Beziehungen, besprochen. Erstellen einer einfachen Anwendung Erstellen Sie das erste benutzerdefinierte Objekt in unserer Personalbeschaffungsanwendung und fügen Sie mehrere grundlegende Felder hinzu. Erweitern der einfachen Anwendung mit erweiterten Feldern, Datenvalidierung und Seitenlayouts Fügen Sie dem benutzerdefinierten Objekt Auswahllisten, abhängige Auswahllisten, Validierungsregeln und Formelfelder hinzu und bearbeiten Sie anschließend das Layout auf der Detailseite des Objekts. Erweitern der einfachen Anwendung durch Beziehungen Fügen Sie fünf weitere benutzerdefinierte Objekte in unserer Personalbeschaffungsanwendung hinzu und weisen Sie sie einander mithilfe von Beziehungen zu. Einrichten von Sicherheit und Freigabe für Daten Richten Sie Regeln dafür ein, welche Personen Datensätze in der Anwendung lesen, erstellen, bearbeiten und löschen dürfen. Zusammenarbeit mit Chatter Aktivieren Sie Chatter für Ihre Organisation, damit die Benutzer bezüglich der Informationen, die sie interessieren, auf dem Laufenden bleiben können. Verwenden benutzerdefinierter Workflowund Genehmigungsprozesse Definieren Sie Workflowregeln und Genehmigungsprozesse, mit denen Aufgaben zugewiesen, Felder aktualisiert und E-Mails Kapitel 1: Vorwort Kapitel Beschreibung gesendet werden, wenn bestimmte Kriterien erfüllt sind. Analysieren von Daten mit Berichten und Dashboards Erstellen Sie benutzerdefinierte Berichte, Diagramme und Dashboards, damit die Benutzer sich einen Überblick über die Personalbeschaffungsdaten verschaffen können. Jenseits der Point-and-Click-Anwendungsentwicklung Erfahren Sie, wie Sie mit Visualforce die Funktionen der Plattform erweitern, indem Sie ein Mashup mit Karten von Yahoo! erstellen und ein Tool für Massenaktualisierungen von Datensätzen hinzufügen. Weitere Informationen Hier erfahren Sie, wo Sie weitere Informationen zum Entwickeln auf der Plattform erhalten. Glossar Hier können Sie die Definition von Ihnen unbekannten Begriffen nachschlagen. Anmerkung: Dieses Buch enthält zahlreiche Screenshots. Da sich die Force.com-Plattform sehr schnell weiterentwickelt, können die Screenshots geringfügig von der Darstellung auf Ihrem Bildschirm abweichen. Das ist jedoch kein Grund zur Sorge. Diese Unterschiede sollten geringfügig sein und Ihr Verständnis nicht beeinträchtigen. Auswahl der Entwicklungsumgebung Um die Übungen in diesem Buch ausführen zu können, benötigen Sie einen Salesforce-Account. Wenn Sie bereits Salesforce-Kunde sind, können Sie eine Force.com-Sandbox verwenden. Eine Sandbox ist eine Kopie Ihrer Organisation, die Sie zum Testen von Konfigurationen und zur Schulung von Benutzern verwenden können, ohne die Daten und Anwendungen in Ihrer Produktionsumgebung zu gefährden. Bei der Salesforce Enterprise, Unlimited und Performance-Edition ist jeweils eine kostenlose Sandboxinstanz enthalten. Die Benutzer anderer Editionen können die Developer Edition für die Übungen verwenden. 5 Kapitel 1: Vorwort Wenn Sie neu bei Salesforce sind oder keine Sandbox verwenden möchten, rufen Sie developer.force.com auf und registrieren Sie sich für einen kostenlosen Developer Edition-Account. Developer Edition ist eine voll funktionsfähige Version von Salesforce, mit der Sie Salesforce-Anwendungen entwickeln können. Da sie kostenlos ist, sind die zulässige Anzahl der Benutzer, die Bandbreite und der Speicherplatz beschränkt, es sind jedoch alle Salesforce-Funktionen enthalten. Mit Ihrer Anmeldung werden Sie auch gleichzeitig Teil der wachsenden Community der Entwickler, die weltweit mit der Force.com-Plattform arbeiten. Senden von Feedback Haben Sie Fragen oder Kommentare zu irgendeinem Punkt in diesem Buch? Vorschläge für Themen, die in zukünftigen Versionen behandelt werden sollten? Rufen Sie die Developer Force-Diskussionsforen unter community.salesforce.com/sforce?category.id=developers auf und teilen Sie uns mit, was Sie denken. Oder senden Sie uns direkt eine E-Mail unter [email protected]. Informationen zu Developer Force Developer Force ist eine Community von Entwicklern, die Anwendungen anpassen und erstellen, die in der Cloud ausgeführt und mit der Force.com-Plattform erstellt werden. Developer Force-Mitglieder haben Zugriff auf eine vollständige Palette von Ressourcen, darunter Beispielcode, Toolkits, eine Online-Entwickler-Community und die Testumgebungen, die zum Erstellen von Anwendungen erforderlich sind. Die Developer Force-Website beinhaltet eine Online-Version dieses Buchs und enthält Informationen zu der Dreamforce-Veranstaltung, die wir jedes Jahr für Entwickler abhalten, die mit der Force.com-Plattform arbeiten. Wenn Sie weitere Informationen benötigen, eine Frage stellen möchten, ein Toolkit oder Beispielcode suchen oder sich einfach nur ein wenig eingehender mit der Entwicklung auf der Force.com-Plattform vertraut machen möchten, ist die Developer Force-Website die richtige Adresse. Weitere Informationen zu den Ressourcen, die auf der Developer Force-Website verfügbar sind, finden Sie unter developer.force.com und im Kapitel Weitere Information. Salesforce.com Training & Certification Eine Reihe von Beispielen in diesem Buch wurden von salesforce.com Training & Certification bereitgestellt und sind den weltweit verfügbaren von Experten geleiteten Schulungskursen 6 Kapitel 1: Vorwort entnommen. Die Kurse von Salesforce.com Training & Certification bieten eine Gelegenheit, praktische Erfahrungen mit der Force.com-Plattform und den Salesforce-Anwendungen zu sammeln und bereiten Sie auf die Salesforce-Zertifizierung vor. Die Einschreibung für Kurse ist möglich unter www.salesforce.com/training. 7 Einführung in die Force.com-Plattform Kapitel 1 Einführung in die Force.com-Plattform Themen: • • • Grundlagen der Benutzeroberfläche einer Anwendung Die Vorzüge von Force.com-Plattformanwendungen Die Technologie hinter Force.com-Plattformanwendungen Force.com ist eine Plattform zur Erstellung und Bereitstellung von Cloud-Anwendungen der nächsten Generation. Da keine Server und keine Software gekauft oder verwaltet werden müssen, können Sie sich voll und ganz auf die Erstellung von Anwendungen konzentrieren, die integrierte soziale und mobile Funktionalitäten, Geschäftsprozesse, Berichterstellungs- und Suchfunktionen enthalten. Ihre Anwendungen werden in einem sicheren und bewährten Service ausgeführt, der Daten automatisch skaliert, anpasst und sichert. Vorteile der Verwendung von Force.com: • • Bewährt – Mehr als 100.000 setzen auf Force.com, darunter zahlreiche Branchenführer. Sie haben mehr als 220.000 Anwendungen erstellt, die in zertifizierten Weltklasse-Rechenzentren mit Datensicherung, Failover, Notfallwiederherstellung und einem Verfügbarkeitsrekord von mehr als 99,9 % ausgeführt werden. Sie können Echtzeit-Daten zur Systemleistung unter trust.salesforce.com einsehen. Flexibel – Force.com erfordert nur minimalen Kodieraufwand. Mit den visuellen Tools und der Komponentenbibliothek können Sie Ihre Anwendungen nach dem Baukastenprinzip zusammenstellen. Optimieren Sie die Entwicklung mit 9 Kapitel 1: Einführung in die Force.com-Plattform • • 10 integrierten Sandbox-Umgebungen und integrieren Sie Ihre Anwendungen mithilfe offener APIs. Sozial — Arbeiten Sie mithilfe Ihres eigenen und sicheren sozialen Netzwerks effektiver mit Ihren Kollegen zusammen. Force.com enthält vorgefertigte Komponenten für Feeds, Profile, Unterhaltungen, Aktualisierungen und Dateifreigaben. Alle Komponenten sind über REST-APIs verfügbar, die einfach in jede benutzerdefinierte Anwendung integriert werden können. Mobil – Entwickeln Sie systemeigene mobile Anwendungen – mit stabilen APIs –, die von einer sicheren Cloud-Datenbank unterstützt werden. Oder entwickeln Sie für mobile Geräte optimierte Browser-Anwendungen, indem Sie unser Benutzeroberflächen-Framework und HTML5 zur Unterstützung verschiedener mobiler Geräte mit derselben Codebasis verwenden. Oder mischen Sie systemeigene Komponenten und HTML zu einem Hybrid-Cocktail, der ihnen das Beste aus beiden Welten bietet. Force.com hat, was Sie benötigen, um Anwendungen sicher auf mobilen Geräten bereitzustellen. Kapitel 1: Einführung in die Force.com-Plattform Grundlagen der Benutzeroberfläche einer Anwendung Sie und Ihre Benutzer können über zwei Benutzeroberflächen auf Salesforce zugreifen: über die vollständige Salesforce-Site, die Sie auf Ihrem Computer aufrufen, und die mobile Anwendung. In diesem Handbuch werden die Aufgaben Schritt für Schritt erklärt und die Auswirkungen der entsprechenden Anpassungen in beiden Umgebungen werden verdeutlicht. Wenn Sie Salesforce noch nie verwendet haben, lohnt es sich, sich anzumelden und sich eine Zeitlang durch die vollständige Site und die mobile Anwendung zu klicken. Die meisten Salesforce-Editionen (einschließlich der Developer Edition) beinhalten eine grundlegende Salesforce-Vertriebsanwendung, weshalb wir zunächst einen Blick auf diese werfen. Die Benutzeroberfläche für diese Aufgaben hat sehr viel mit der Oberfläche der Anwendung gemeinsam, die wir erstellen wollen. Anmerkung: Sie sind noch nicht für die Developer Edition registriert? Rufen Sie folgende Seite auf: www.developerforce.com/events/regular/registration.php. Abbildung1: Anwendungen auf der Force.com-Plattform beinhalten Registerkarten, Formulare und Links Wie Sie sehen können, wenn Sie ein wenig herumklicken, gibt es einige Kernelemente, die die Grundlage der Vertriebsanwendungen und der meisten mit der Plattform erstellten Anwendungen bilden. 11 Kapitel 1: Einführung in die Force.com-Plattform Registerkarten Am oberen Rand der Anwendung befinden sich eine Reihe von Registerkarten, die die Anwendung in verschiedene Teile segmentieren. Die einzelnen Registerkarten entsprechen jeweils einem Objekttyp, wie beispielsweise einem Account oder einem Kontakt, und innerhalb einer Registerkarte können Sie Aktionen für bestimmte Datensätze durchführen, die dem Typ der Registerkarte entsprechen. Wenn Sie beispielsweise auf die Registerkarte "Accounts" klicken, können Sie einen neuen Datensatz für den Account "Acme" erstellen. Sie können auch bestehende Accounts bearbeiten oder eine Listenansicht verwenden, um Listen von Accounts zu filtern. Der größte Teil der Arbeit bei der Anwendungsentwicklung dreht sich um das Erstellen von Registerkarten und das Definieren der Daten und Verhaltensweisen, die sie unterstützen. Felder In jedem Datensatz wird eine Auswahl an Feldern angezeigt, durch die auf der Force.com-Plattform Informationen gespeichert und angeordnet werden. Beispielsweise enthält ein Kontaktdatensatz Felder wie Nachname, Telefon privat, Postanschrift Stadt, Titel, Geburtsdatum, Vorgesetzter und Account. Wenn Sie eine neue Anwendung entwickeln, haben Sie die Möglichkeit, selbst zu bestimmen, welche Felder für einen bestimmten Datensatztyp angezeigt werden sollen, beispielsweise für Kontaktdatensätze. Außerdem können Sie deren Anordnung festlegen. In einer Anwendung der Force.com-Plattform geben Benutzer Daten in bearbeitbare Felder auf einer Bearbeitungsseite ein und zeigen diese Informationen in schreibgeschützten Feldern auf einer Detailseite an. Links Da Anwendungen auf der Force.com-Plattform in einem Webbrowser bereitgestellt werden, verwenden sie Links, um die Navigation zu verwandten Themen zu ermöglichen. Beispielsweise gibt es auf Account-Detailseiten Links zu verwandten Datensätzen, wie beispielsweise die Kontakte, die zu dem Account gehören, und der Vertriebsmitarbeiter, der den Account verwaltet. Andere Links führen Sie zu kürzlich aufgerufenen Datensätzen und zu Bereichen der Anwendung, in denen die Benutzer persönliche Einstellungen festlegen können. Links ermöglichen die Navigation innerhalb einer Anwendung und zu externen Websites. Nun sehen wir uns an, wie diese Elemente in einem mobilen Kontext, beispielsweise in Salesforce1 aussehen. Auch hier werden Gruppen von Feldern angezeigt und wenn wir auf Links tippen, gelangen wir zum angegebenen Datensatz oder zur entsprechenden externen Website. In der mobilen Anwendung sind keine Registerkarten vorhanden. Menüelemente Mobile Benutzer können auf Objekte über Elemente im Navigationsmenü anstatt über Registerkarten aufrufen. Wie Registerkarten entsprechen auch die einzelnen 12 Kapitel 1: Einführung in die Force.com-Plattform Menüelemente jeweils einem Objekttyp, wie beispielsweise einem Account oder einem Kontakt. Die Objekte, die Sie zuletzt angezeigt oder verwendet haben, werden im Vordergrund angezeigt. Durch Tippen auf Mehr anzeigen werden in Abhängigkeit von Ihrem Profil und Ihren Berechtigungen alle verfügbaren Objekte angezeigt. Wenn Sie auf eines dieser Elemente tippen, können Sie einen neuen Datensatz erstellen oder die zuletzt aufgerufenen Datensätze ansehen. Wenn Sie einen vorhandenen Datensatz bearbeiten möchten, müssen Sie zuerst darauf tippen, um ihn zu öffnen. Menüelemente umfassen auch Elemente wie Aufgaben, Dashboards und den Feed. Die meisten dieser Elemente werden später in diesem Handbuch behandelt. Abbildung2: Anwendungen auf der Force.com-Plattform beinhalten in der mobilen Version Registerkarten, Formulare und Links 13 Kapitel 1: Einführung in die Force.com-Plattform Die Vorzüge von Force.com-Plattformanwendungen Um besser zu verstehen, wofür sich die Plattform am besten eignet, sollten wir in unserer Betrachtung über die zentralen Elemente, wie Registerkarten, Felder und Links, hinausgehen und uns den Anwendungstypen zuwenden, die damit möglich sind. Bei der Betrachtung von Anwendungen, die mit der Force.com-Plattform erstellt wurden, springen zwei enorme Vorteile ins Auge: Sie sind datenzentriert und unterstützen die Zusammenarbeit. Datenzentrierte Anwendungen Da im Zentrum der Anwendung eine Datenbank steht, können Sie damit Anwendungen schreiben, die datenzentriert sind. Eine datenzentrierte Anwendung ist eine Anwendung, die auf strukturierten, konsistenten Informationen beruht, wie sie in einer Datenbank oder XML-Datei zu finden sind. Solche datenzentrierten Anwendungen sind überall zu finden: von kleinen Desktop-Datenbanken wie Microsoft Access oder FileMaker bis hin zu den riesigen Systemen, die auf Datenbankverwaltungssystemen wie Oracle oder MySQL ausgeführt werden. Im Gegensatz zu Anwendungen, die auf unstrukturierten Daten beruhen, wie reine Textdokumente oder HTML-Dateien, ist es bei datenzentrierten Anwendungen einfach, Daten zu steuern, darauf zuzugreifen und sie zu verwalten. Stellen Sie sich beispielsweise vor, Sie müssten den Gesamtumsatz eines Monats entweder aus einer Reihe von in Microsoft Word verfassten Verträgen oder aus einer Reihe von Verträgen in einer einfachen Datenbank ermitteln. Während es enorm aufwendig ist, jedes einzelne Word-Dokument zu öffnen, den Gesamtbetrag des Vertrags zu finden und dann alle Beträge zu addieren, können wir bei den in der Datenbank einer datenzentrierten Anwendung gespeicherten Daten dasselbe Ergebnis schnell und effizient durch eine einzige Suchabfrage ermitteln. Die meisten Privatpersonen brauchen datenzentrierte Anwendungen nur, um den Überblick über ihre Kontakte, Fotos oder Musik zu behalten, Unternehmen jeder Größe müssen jedoch ständig ihre umfassenden Datenbestände abfragen und aggregieren, um rasch betriebswirtschaftliche Entscheidungen treffen zu können. Die Force.com-Plattform eignet sich somit aufgrund ihrer Datenzentriertheit ideal zum Erstellen und Hosten von Geschäftsanwendungen. 14 Kapitel 1: Einführung in die Force.com-Plattform Kollaborative Anwendungen Da mehrere Benutzer gleichzeitig auf die Plattform zugreifen können, können Sie damit Anwendungen schreiben, die kollaborativ, also für die Zusammenarbeit gedacht sind. Kollaborative Anwendungen sind Anwendungen mit Daten und Services, die von mehreren Benutzern an verschiedenen Standorten gemeinsam verwendet werden. Im Gegensatz zu herkömmlicheren Softwareprodukten, die auf einem einzigen Rechner installiert werden und auf die nur schwer aus der Ferne zugegriffen werden kann, ist der Zugriff auf kollaborative Anwendungen von jedem Ort der Welt aus über einen Webbrowser möglich. Dies erleichtert Teams die Zusammenarbeit bei Aktivitäten wie dem Verkauf eines Produkts, der Verwaltung eines Projekts oder der Einstellung eines Mitarbeiters. Neben dem problemlosen Zugriff über einen Webbrowser erleichtert auch eine Reihe integrierter Plattformfunktionen die produktive Zusammenarbeit in der Gruppe: • • • Verwenden Sie das Sicherheits- und Freigabemodell der Plattform, um den Zugriff eines Benutzers auf verschiedene Arten von Daten genau zu steuern. Verwenden Sie Workflowregeln, um automatisch Aufgaben zuzuweisen, Daten zu aktualisieren oder E-Mail-Benachrichtigungen zu versenden, wenn bestimmte Geschäftsereignisse eintreten, beispielsweise wenn ein neuer Datensatz erstellt oder der Wert eines Datensatzfelds geändert wurde. Verwenden Sie Genehmigungsprozesse, um eine Abfolge von Schritten einzurichten, die zur Genehmigung eines Datensatzes erforderlich sind. Dabei ist auch angegeben, wer den Datensatz jeweils bei den einzelnen Schritten genehmigen muss. Zusammen bilden diese Funktionen ein Framework für die Freigabe von Anwendungen in Gruppen, Abteilungen und Unternehmen insgesamt, ohne die administrative Kontrolle über sensible Daten aufzugeben. Die Technologie hinter Force.com-Plattformanwendungen Nachdem wir darüber gesprochen haben, welche Arten von Anwendungen mit der Plattform erstellt werden können, sollten wir uns mit einigen der Technologien hinter der Plattform befassen. Diese Technologien haben große Auswirkungen darauf, welche Elemente von der Plattform unterstützt werden und wie die Entwicklungsarbeit auf der Plattform abläuft. 15 Kapitel 1: Einführung in die Force.com-Plattform Tabelle1: Schlüsseltechnologien hinter der Plattform Technologie Beschreibung Mandantenfähige Architektur Ein Anwendungsmodell, bei dem alle Benutzer und Anwendungen eine einzige, gemeinsame Infrastruktur und Codebasis gemeinsam verwenden. Metadatengesteuertes Ein Modell zur Anwendungsentwicklung, mit dem Anwendungen Entwicklungsmodell als deklarative Blaupausen definiert werden können, bei denen kein Code erforderlich ist. Datenmodelle, Objekte, Formulare, Workflows usw. werden durch Metadaten definiert. API-Zugriff Mehrere Anwendungsprogrammierschnittstellen (APIs) bieten direkten Zugriff auf alle in Force.com gespeicherten Daten aus praktisch jeder beliebigen Programmiersprache und Plattform. • Über die SOAP-API und die REST-API lassen sich die Daten Ihrer Organisation in andere Anwendungen integrieren. • Die RESTful-Bulk-API (auch über Data Loader verfügbar) lädt oder löscht eine große Anzahl von Datensätzen. • Über die Metadaten-API werden Anpassungen in Ihrer Organisation (auch über das Tool für die Force.com-Migration verfügbar) verwaltet. • Die Chatter-REST-API bietet Zugriff auf Chatter-Feeds und soziale Daten. • Die Streaming-API stellt Benachrichtigungen über die Änderung von Daten in Ihrer Organisation bereit. Apex Die weltweit erste On-Demand-Programmiersprache, die auf den Force.com-Plattformservern in der Cloud ausgeführt wird. Visualforce Ein Framework zur Erstellung funktionsreicher Benutzeroberflächen für Anwendungen in der Cloud. Mobiler Zugriff Über die Salesforce-Mobilanwendungen können Sie auf benutzerdefinierte Anwendungen zugreifen, die mit den Point-and-Click-Entwicklungstools der Force.com-Plattform erstellt wurden. Ihre Benutzer können mit ihren mobilen Geräten auf diese Anwendungen zugreifen und Sie müssen keine Programmiersprachen für mobile Geräte erlernen. AppExchange-Verzeichnis Ein Web-Verzeichnis mit Hunderten von Force.com-Anwendungen, die Salesforce-Kunden prüfen, testen, kommentieren und/oder installieren können. Entwickler können ihre Anwendungen zur 16 Kapitel 1: Einführung in die Force.com-Plattform Technologie Beschreibung Eintragung in das AppExchange-Verzeichnis einsenden, wenn sie sie für die Community freigeben möchten. Mandantenfähige Architektur In einer mandantenfähigen Architektur verwenden alle Benutzer dieselbe Infrastruktur und dieselbe Version der Force.com-Plattform. Im Gegensatz zu nicht mandantenfähigen Anwendungen (Single-Tenant-Anwendungen), wie Client-Server-Unternehmensanwendungen oder E-Mail-Server, veröffentlichen mandantenfähige Architekturen Upgrades automatisch und gleichzeitig für alle Benutzer. Daher braucht niemand den Aufwand zu betreiben, seine eigene Hard- und Software zu kaufen und zu warten oder sicherzustellen, dass auf den Anwendungen das aktuellste Patch installiert ist. Neben der Force.com-Plattform nutzen noch verschiedene andere, verbraucherorientierte Anwendungen eine mandantenfähige Architektur, darunter eBay, My Yahoo! und Google Gmail. Die mandantenfähige Architektur macht diese Anwendungen kostengünstig, schnell bereitstellbar und geeignet für rasche Innovation – genau die Eigenschaften, für die auch salesforce.com bekannt ist. Abbildung3: Mandantenfähige On-Demand-Anwendungen, die in der Cloud ausgeführt werden Die mandantenfähige Architektur wirkt sich auch darauf aus, wie die Entwickler die Plattform nutzen, um neue Anwendungen zu erstellen. Insbesondere zieht sie eine klare Grenze zwischen 17 Kapitel 1: Einführung in die Force.com-Plattform der Plattform und den Anwendungen, die darauf ausgeführt werden. Eine Grenze ist wichtig, damit die Anwendungen ihre eigenen Komponenten definieren können, ohne die Funktionalität der Kernplattform oder der von anderen Benutzern gespeicherten Daten zu gefährden. Ein metadatengesteuertes Entwicklungsmodell Die Force.com-Plattform verwendet ein metadatengesteuertes Entwicklungsmodell, um Anwendungsentwickler bei der produktiveren Anwendungserstellung zu unterstützen. Das bedeutet, dass die Grundfunktionen einer Anwendung, also die Registerkarten, Formulare und Links, als Metadaten in einer Datenbank definiert sind und nicht in einer Programmiersprache hartcodiert vorliegen. Wenn ein Benutzer über die Force.com-Plattform auf eine Anwendung zugreift, werden die Metadaten der Anwendung auf der Benutzeroberfläche gerendert, die dem Benutzer angezeigt wird. Infolge der metadatengesteuerten Entwicklung arbeiten die Entwickler von Anwendungen für die Force.com-Plattform auf einer wesentlich höheren Abstraktionsebene, als dies bei der Entwicklung von Anwendungen mit Java oder C# der Fall ist, und sie brauchen sich keine Gedanken um Systemdetails auf niedrigeren Ebenen zu machen, da diese von der Plattform automatisch verarbeitet werden. Gleichzeitig können Entwickler, die die Force.com-Plattform verwenden, auch die erweiterten Funktionen nutzen, die die Plattform standardmäßig bereitstellt. Sie stellen sich die Anpassung der Metadaten vielleicht als einen Berg Arbeit vor, aber, wie Sie in diesem Buch sehen werden: Dank der Benutzeroberfläche der Plattform lässt sich das recht einfach erledigen. Jeder, der mit der Verwendung eines Webbrowsers vertraut ist, kann sich problemlos einarbeiten, selbst wenn er über keinerlei Kenntnisse im Bereich Programmiersprachen verfügt. Tipp: Entwickler können die Force.com-Metadaten-API zur programmgesteuerten Verwaltung des Setups ihrer Anwendung verwenden. Die Force.com-Metadaten-API stellt eine Alternative zu der Benutzeroberfläche der Plattform dar, indem sie Entwicklern die direkte Bearbeitung der XML-Dateien gestattet, mit denen die Metadaten ihrer Organisation gesteuert werden. Außerdem können die Entwickler mit der Metadaten-API Konfigurationsänderungen zwischen Organisationen migrieren und ihre eigenen Tools zur Verwaltung von Organisationen und Anwendungsmetadaten erstellen. Weitere Informationen finden Sie im Force.com Metadata API Developer's Guide. Metadatengesteuerte Entwicklung wirkt auf den ersten Blick vielleicht ein wenig esoterisch, doch dies ist genau dasselbe Modell, auf dem auch Webbrowser beruhen. Anstatt die Definition einer Webseite in einer Freiform-Programmiersprache hartzucodieren, definiert ein Webseitenautor die Seite zunächst als HTML-Code, der selbst eine Art von Metadaten ist. 18 Kapitel 1: Einführung in die Force.com-Plattform Wenn ein Benutzer eine Seite anfordert, rendert der Webbrowser die Seite mithilfe der in den HTML-Tags bereitgestellten Metadaten. Die Kombination aus HTML und Browser bietet den Autoren zwar nicht so viel Programmierspielraum, wie dies in einem regulären Publishing-Tool der Fall wäre, sie vereinfacht jedoch die Arbeit der Inhaltsveröffentlichung für ein großes Publikum und erhöht die Gesamtproduktivität des Webseiten-Autors. In ähnlicher Weise vereinfacht die Force.com-Plattform die Erstellung von Anwendungen enorm und erhöht die Gesamtproduktivität des Entwicklers. Und ebenso wie Webseiten, die JavaScript oder Flash verwenden, um weitere Funktionen zu HTML-Seiten hinzuzufügen, bietet auch die Force.com-Plattform fortgeschritteneren Entwicklern die Möglichkeit, benutzerdefinierte Funktionen in die Anwendungen, die Sie erstellen, zu integrieren. APIs Dank des metadatengesteuerten Entwicklungsmodells der Plattform können Anwendungsentwickler schnell und einfach einen großen Funktionsumfang mithilfe der von der Plattform bereitgestellten Tools erstellen. Manchmal jedoch möchten die Entwickler die eigentlichen Daten in einer Anwendung bearbeiten und Drittanbieterservices verwenden, um stärker individuell angepasste Verhaltensweisen für die Anwendung zu erstellen. Dazu können sie eine Reihe von APIs für die Integration mit der Plattform verwenden. Zur Kerngruppe der APIs gehören die Force.com-SOAP-API und -REST-API sowie die Bulk-API, die Streaming-API und die Metadaten-API. Sie können diese APIs aus einer Vielzahl clientseitiger Sprachen aufrufen. Außerdem stehen Toolkits zur einfacheren Integration zur Verfügung. Weitere Informationen finden Sie in der Salesforce-Hilfe unter "Welche API ist die richtige?". Unsere APIs bieten unkomplizierte, leistungsstarke und offene Möglichkeiten für den programmatischen Zugriff auf die Daten und Fähigkeiten jeder beliebigen Anwendung, die auf der Plattform ausgeführt wird. Sie ermöglichen den Programmierern den Zugriff auf und die Bearbeitung von Anwendungen von jedem Serverstandort, mithilfe jeder beliebigen Programmiersprache, die Webservices unterstützt, wie zum Beispiel Java, PHP, C# oder .NET. Weitere Informationen finden Sie unter:http://wiki.developerforce.com/page/Integration. Apex Wie Sie von dem Unternehmen erwarten können, das die weltweit erste Cloud Computing-Plattform bereitgestellt hat, hat salesforce.com auch die weltweit erste Cloud Computing-Programmiersprache, Apex, eingeführt. Die Programmiersprache Apex, deren Syntax Java, der beliebtesten Programmiersprache für Webanwendungen, ähnelt, wird auf den Force.com-Plattformservern ausgeführt. Apex wurde speziell für die Erstellung von Geschäftsanwendungen konzipiert, die zur Verwaltung von Daten und Prozessen im größeren 19 Kapitel 1: Einführung in die Force.com-Plattform Kontext der Force.com-Plattform dienen. Diese Sprache bietet einen einzigartigen und produktiven Ansatz zur Erstellung von Funktionen und Logik, mit dem die Entwickler sich auf die Elemente konzentrieren können, die spezifisch für ihre Anwendung sind, während die Force.com-Plattform den Rest übernimmt. Der größte Teil diese Buchs richtet sich an Leser, die sich nicht unbedingt mit Kodierung befassen. Daher sprengt Apex den Rahmen der hier erörterten Thematik. Sie können jedoch alles, was es darüber zu wissen gibt, unter wiki.developerforce.com/page/Apex lernen. Visualforce Zu jeder bedeutenden Geschäftsanwendung gehört auch eine hervorragende Benutzeroberfläche, die benutzerfreundlich, leistungsstark und genau auf die Aufgaben, Benutzer und Geräte zugeschnitten ist, für die die Anwendung gedacht ist. Visualforce ist ein vollständiges Framework zur Erstellung derartiger Benutzeroberflächen, mit dem jede Art von Benutzeroberflächendesign und Interaktion vollständig in der Cloud erstellt und bereitgestellt werden kann. Die Benutzeroberflächen, die Sie mit Visualforce erstellen, können das Standarderscheinungsbild der Force.com-Plattform erweitern oder sie durch einen einzigartigen Stil und eine Reihe ausgetüftelter Interaktionen ersetzen. Da Visualforce-Markup letztlich in HTML gerendert wird, können die Designer Visualforce-Tags neben standardmäßigem HTML-, JavaScript-, Flash- oder sonstigem Code verwenden, der innerhalb von HTML-Seiten auf der Plattform ausgeführt werden kann. Und das ist nur der Anfang: Sie können Visualforce-Seiten auch verwenden, um Daten aus mehreren Force.com-Plattformobjekten zu kombinieren, oder Daten aus Webservices in Ihre Anwendung einbinden, wie wir im Thema Jenseits der Point-and-Click-Anwendungsentwicklung auf Seite 393 erörtern werden. Mobiler Zugriff Da die wichtigsten Zugriffspunkte für das Internet sich von Desktops und Laptops auf Smartphones und Tablets verlagern, sind Anwendungen, die keinen mobilen Zugriff auf wichtige Daten bieten, bald überholt. Lassen Sie nicht zu, dass Ihre Anwendung beim Mobile-Boom unter die Räder kommt. Verwenden Sie stattdessen die Anwendung Salesforce1 oder Salesforce Classic, um Ihre Anpassungen in Force.com mobilen Benutzern zugänglich zu machen. Wonach sollten Sie entscheiden, welche Anwendung Sie verwenden? Salesforce1 und Salesforce Classic sind beides jeweils Anwendungen. Herunterladbare Versionen dieser Anwendung können auf Mobilgeräten installiert werden und den nativen Funktionsumfang des Geräts nutzen. Wenn sich die Benutzer auf einem mobilen Gerät anmelden, können sie ihre Daten über eine Oberfläche aufrufen und aktualisieren, die speziell für Bildschirme mobiler Geräte 20 Kapitel 1: Einführung in die Force.com-Plattform ausgelegt ist. In beiden Anwendungen können Sie die meisten standardmäßigen Vertriebsobjekte, einige standardmäßige Serviceobjekte und alle benutzerdefinierten Objekte bearbeiten. Salesforce1 Administratoren müssen keine speziellen Konfigurationen erstellen, damit mobile Benutzer auf die Daten ihrer Organisation zugreifen können. Die Elemente, die den Benutzern angezeigt werden, werden über ihr Profil gesteuert und in der Anwendung werden alle auf der vollständigen Salesforce-Site vorgenommenen Anpassungen übernommen. Darüber hinaus ist Chatter in dieser Anwendung enthalten, sodass Ihre Benutzer auch von unterwegs aus mit anderen zusammenarbeiten können. Salesforce1 wird sowohl auf Apple® iPhones® und iPads® als auch auf Android™-Telefonen unterstützt. Falls in Ihrer Organisation die Installation der herunterladbaren Anwendung auf vom Unternehmen bereitgestellten Geräten untersagt ist, steht Salesforce1 auch über einen mobilen Webbrowser zur Verfügung. Salesforce Classic Administratoren erstellen Konfigurationen für die mobile Verwendung, um festzulegen, auf welche Salesforce-Daten, Visualforce-Seiten und sonstigen Elemente ihre mobilen Benutzer zugreifen können. Darüber hinaus speichert Salesforce Classic eine Teilmenge der Daten auf dem Gerät, um den Benutzern Offline-Zugriff zu ermöglichen, wenn keine drahtlose Verbindung verfügbar ist, und synchronisiert diese Daten mit Force.com, wenn wieder eine Verbindung hergestellt wurde. Salesforce Classic wird auf dem Apple iPhone und iPod touch®, BlackBerry®-Smartphones und auf Android-Tablets und -Smartphones unterstützt. Wenn Sie Ihre Anwendung für die mobile Verwendung bereitstellen möchten, schlagen Sie im Salesforce1 App Admin Guide oder im Salesforce Classic Implementation Guide nach. Das AppExchange-Verzeichnis Die Technologie, die die Force.com-Plattform letztlich von anderen Plattformen abhebt, ist AppExchange. AppExchange ist ein Web-Verzeichnis, in dem Anwendungen, die auf der Force.com-Plattform erstellt wurden, salesforce.com-Kunden zum Durchsuchen, Anzeigen von Demos, Rezensieren sowie zur Installation zur Verfügung stehen. Entwickler können ihre Anwendungen zur Eintragung in das AppExchange-Verzeichnis einsenden, wenn sie sie für die Community freigeben möchten. Um sich besser mit den Vorzügen von AppExchange vertraut zu machen, sollten Sie sich unter http://sites.force.com/appexchange eine kurze Demo ansehen. Dort finden Sie Hunderte innovativer und spannender Anwendungen, die bereits vorhanden sind. Dazu gehören 21 Kapitel 1: Einführung in die Force.com-Plattform auch Anwendungen zu Gehaltsabrechnung, computergestützter Telefonie, Service- und Support-Umfragen, Akzeptanz-Dashboards und vieles mehr. Einige dieser Anwendungen wurden intern bei salesforce.com erstellt, die meisten werden jedoch von Partnern und einzelnen Entwicklern erstellt, die die Force.com-Plattform nutzen. 22 Kapitel 2 Informationen zur Beispielanwendung zur Personalbeschaffung Themen: • • • Informationen zu Universal Containers Überlegungen zur Personalbeschaffungsanwendung Erstellen der Anwendung: Unser Design Dieses Buch soll Ihnen zeigen, wie einfach es ist, leistungsstarke, vielseitige Anwendungen zu erstellen, mit denen sich häufig vorkommende betriebswirtschaftliche Probleme lösen lassen. Dazu erstellen wir Schritt für Schritt eine einfache Anwendung für ein fiktives Unternehmen namens Universal Containers. Wie viele schnell wachsende Unternehmen hat auch Universal Containers mit einigen Schwierigkeiten zu kämpfen, die mit diesem schnellen Wachstum einhergehen, insbesondere in der Personalabteilung. In diesem Buch erstellen wir eine Personalbeschaffungsanwendung für das Unternehmen, dank der es auf die bisher verwendeten Microsoft Word-Dokumente und Microsoft Excel-Tabellenblätter verzichten und statt dessen auf eine bei Bedarf verfügbare Anwendung zurückgreifen kann. Wenn wir die Personalbeschaffungsanwendung in diesem Buch fertiggestellt haben, sollten Sie genügend Erfahrung gesammelt haben, um eine benutzerdefinierte Anwendung in der Cloud zu erstellen, die auf die Bedürfnisse Ihres eigenen Unternehmens zugeschnitten ist. Legen wir also los! 23 Kapitel 2: Informationen zur Beispielanwendung zur Personalbeschaffung Informationen zu Universal Containers Informieren wir uns zunächst ein wenig über unser fiktives Unternehmen, Universal Containers. Universal Containers ist ein schnell wachsender internationaler Zulieferbetrieb für Containerprodukte. Das Unternehmen stellt Behälter jeder Art her, von einfachen Versandtaschen bis hin zu großen Containern für den Frachtverkehr. Außerdem entwickelt und wartet Universal Containers seine firmeneigene Software, um das Design seiner verschiedenen Containertypen zu entwerfen. Somit gehören zum Unternehmen Universal Containers sehr unterschiedliche Gruppen von Mitarbeitern, darunter Mitarbeiter für Anlagen und Betriebsabläufe, Software- und Design-Ingenieure, Finanzbuchhalter sowie Mitarbeiter im Rechtsbereich und im Personalwesen. Bisher wurden in der Personalabteilung Microsoft Word-Dokumente und Microsoft Excel-Tabellen verwendet, um den Prozess der Personalbeschaffung und Einstellung für neue Mitarbeiter zu verwalten. In den letzten beiden Quartalen kristallisierte sich jedoch heraus, dass die Abteilung ihre Einstellungsziele für dieses Geschäftsjahr nur dann erreichen kann, wenn dieser Prozess durch einen anderen ersetzt wird, der zuverlässiger und skalierbarer ist und bessere Möglichkeiten zur Zusammenarbeit bietet. Universal Containers benötigt eine zentralisierte Anwendung, in der sämtliche Personalbeschaffungs- und Einstellungsprozesse zusammengefasst werden können, und das Unternehmen hat uns mit der Lösung dieses Problems beauftragt. Unser Ansatz besteht darin, den Salesforce-Account des Unternehmens zu nutzen und eine Personalbeschaffungsanwendung auf der Force.com-Plattform zu erstellen. Wir führen also Universal Containers in die Welt des Cloud Computing ein. Überlegungen zur Personalbeschaffungsanwendung Nach einer Besprechung mit Megan Smith, Vice President of Human Resources bei Universal Containers, haben wir einige Anforderungen für die neue Personalbeschaffungsanwendung skizziert. Die Anwendung muss folgende Aufgaben ausführen: • • • 24 Stellen in allen Phasen des Prozesses verfolgen: offene Stellen ebenso wie besetzte bzw. gestrichene Stellen. Alle Bewerber verfolgen, die sich auf eine bestimmte Stelle bewerben, einschließlich des Status ihrer Bewerbung (ob ein telefonisches Vorgespräch durchgeführt wurde, ob sie zu Bewerbungsgesprächen eingeladen wurden, ob sie abgelehnt oder eingestellt wurden oder ob sie ein Angebot ausgeschlagen haben). Stellenausschreibungen auf externen Jobbörsen, wie beispielsweise Monster.com, verfolgen. Kapitel 2: Informationen zur Beispielanwendung zur Personalbeschaffung • • • • • • • • • Mitarbeitern die Möglichkeit geben, Reviews für Bewerber zu posten, mit denen sie ein Bewerbungsgespräch geführt haben. Die Daten zur Personalbeschaffung schützen, damit diese nicht fälschlicherweise von Mitarbeitern angezeigt, bearbeitet oder gelöscht werden, die keinen Zugriff haben sollten. Den zuständigen Personalbeschaffungsmitarbeiter automatisch über die nächsten Schritte informieren, die ergriffen werden sollten, wenn eine Entscheidung über einen Bewerber gefällt wurde. Alle Mitarbeiter automatisch über neue Stellen, die gepostet wurden, informieren. Sicherstellen, dass ein neues Stellenangebot durch die Geschäftsleitung genehmigt wurde, bevor es aktiv wird. Berichte mit einschließen, die den Benutzern einen Überblick über den Status in Bezug auf die Personalbeschaffung vermitteln. Personalbeschaffungsmitarbeitern die Möglichkeit geben, die Standorte aller Bewerber zu kartieren, die sich für eine Stelle bewerben, um einen besseren Eindruck von den Umzugskosten zu erhalten. Die gleichzeitige Durchführung mehrerer ähnlicher Aufgaben erleichtern, wie die Ablehnung mehrerer Stellenbewerbungen. Offene Stellen automatisch auf der öffentlichen Website von Universal Containers posten. Eine Anwendung, die diese Anforderungen erfüllt, erhöht die Effizienz der Personalbeschaffungs- und Einstellungsprozesse von Universal Containers erheblich. Erstellen der Anwendung: Unser Design Werfen wir einen Blick auf die verschiedenen Teile der Force.com-Plattform, die wir zur Implementierung der Personalbeschaffungsanwendung von Universal Containers verwenden. Wir befassen uns in späteren Kapiteln detaillierter mit allen diesen Elementen, zunächst jedoch soll Ihnen diese kurze Vorschau einen Eindruck davon vermitteln, worum es geht. Benutzerdefinierte Objekte Benutzerdefinierte Objekte sind die nativen Komponenten, mit denen die Daten modelliert werden, die wir in unserer Personalbeschaffungsanwendung speichern müssen. Ähnlich wie Datenbanktabellen bestehen auch benutzerdefinierte Objekte jeweils aus mehreren Feldern, in denen Informationen gespeichert sind, wie beispielsweise der Name des Stellenbewerbers oder das maximale Gehalt für eine bestimmte Stelle. Anders als bei herkömmlichen Datenbanktabellen brauchen wir jedoch keinerlei SQL-Code zu schreiben, um benutzerdefinierte Objekte zu erstellen. Wir können einfach durch Zeigen und Klicken auf der Plattform beliebig viele Objekte erstellen. 25 Kapitel 2: Informationen zur Beispielanwendung zur Personalbeschaffung Für unsere Personalbeschaffungsanwendung erstellen wir sechs benutzerdefinierte Objekte zur Verfolgung von Daten im Zusammenhang mit der Personalbeschaffung: • • • • • • Position (Stelle) Candidate (Bewerber) Job Application (Stellenbewerbung) Review Job Posting (Stellenausschreibung) Employment Website (Jobbörse) Die meisten dieser Objekte werden in unserer Anwendung und in den Menüelementen in Salesforce1 als Registerkarten angezeigt. Wenn ein Benutzer auf eine dieser Registerkarten klickt, kann er auf einzelne Instanzen des betreffenden Objekts zugreifen, wie im folgenden Screenshot zu sehen. Abbildung4: Registerkarten der Personalbeschaffungsanwendung Eine der leistungsstarken Funktionen von benutzerdefinierten Objekten besteht darin, dass sie Beziehungen zu anderen Objekten im System in Beziehung aufweisen können. Beispielsweise möchten wir jeden Review, der von einem Gesprächsleiter geschrieben und in das System eingegeben wird, mit der Stellenbewerbung des Bewerbers verknüpfen, mit dem das Bewerbungsgespräch durchgeführt wurde. Auch hier müssen wir wieder dank der Plattform keinerlei SQL-Code schreiben. Die Beziehung lässt sich schnell und einfach mit wenigen Mausklicks erstellen. 26 Kapitel 2: Informationen zur Beispielanwendung zur Personalbeschaffung Sicherheits- und Freigaberegeln Eine weitere wichtige Funktion, die wir in unsere Anwendung integrieren müssen, ist die Fähigkeit, den Zugriff auf Daten einzuschränken, die für bestimmte Benutzer nicht sichtbar sein sollen, ohne dass andere Benutzer an der effektiven Ausführung ihrer Arbeit gehindert werden. Wir implementieren diese Anforderung mit einer Gruppe von Komponenten, die wir unter einem gemeinsamen Begriff zusammengefasst haben: Sicherheits- und Freigaberegeln. Mit Sicherheits- und Freigaberegeln geben wir zunächst an, welche benutzerdefinierten Objekte ein bestimmter Benutzer erstellen, anzeigen und bearbeiten können soll (beispielsweise "Candidate" (Bewerber) und "Position" (Stelle)), und anschließend, auf welche Instanzen dieser Objekte der Zugriff möglich sein soll (beispielsweise die Datensätze für den Bewerber John Smith oder die Position "Senior Sales Manager". Durch die weiter gefasste Objektebenensicherheit und die detailliertere Sicherheit auf der Datensatzebene erhalten wir leistungsstarke und flexible Möglichkeiten, um zu steuern, was die Benutzer sehen können und was nicht. Workflow- und Genehmigungsprozesse Drei unserer Anforderungen beinhalten die Automatisierung von Geschäftsprozessen, wie beispielsweise das Auslösen einer E-Mail-Benachrichtigung an einen Personalbeschaffungsmitarbeiter, wenn sich der Status eines Stellenbewerbers geändert hat, und die Einreichung neuer Stellenangebote für die Genehmigung durch die Geschäftsleitung. Auch hier macht es uns die Force.com-Plattform durch die integrierten Komponenten für Workflow- und Genehmigungsprozesse einfach, diese Anforderungen nativ zu implementieren. Mithilfe von Workflow- und Genehmigungsprozessen können wir Geschäftslogik anhand von Regeln erstellen: • • Mit Workflowregeln können Aufgaben Benutzern zugewiesen, Felder aktualisiert und E-Mail-Benachrichtigungen gesendet werden. Mit Genehmigungsprozessen können die Benutzer vertrauliche Datensätze, wie neue Verträge oder Aufträge, zur Genehmigung an andere Benutzer senden. Beispielsweise können wir in unserer Personalbeschaffungsanwendung eine Workflowregel erstellen, die ein Ereignis auslöst, wenn sich der Status einer Stellenbewerbung zu "Reject" (Ablehnen) oder "Extend an Offer" (Angebot unterbreiten) geändert hat, wie unten dargestellt. 27 Kapitel 2: Informationen zur Beispielanwendung zur Personalbeschaffung Abbildung5: Workflow, wenn sich der Status einer Stellenbewerbung geändert hat Wenn ein Einstellungs-Manager die Entscheidung trifft, ein Angebot zu unterbreiten oder den Bewerber abzulehnen, löst die Änderung beim Status des Bewerbers die Zuweisung der entsprechenden Aufgabe an den für die betreffende Stelle zuständigen Personalbeschaffungsmitarbeiter aus. Auf der Grundlage der Entscheidung des Einstellungs-Managers führt der Personalbeschaffungsmitarbeiter die entsprechende Folgeaufgabe durch. Auf ähnliche Weise können wir einen automatischen Genehmigungsprozess erstellen, der alle neuen Stellen zur Genehmigung an die entsprechenden Manager sendet. Wenn die Stelle genehmigt ist, ändert sich ihr Status automatisch in Open - Approved (Offen - Genehmigt) und die Personalbeschaffungsmitarbeiter können mit dem Einstellungsprozess beginnen. Wenn die Stelle abgelehnt wird, ändert sich ihr Status automatisch in Closed - Not Approved (Geschlossen - Nicht genehmigt) und die Stelle wird nicht besetzt. Benutzerdefinierte Berichte und Dashboards Schließlich müssen wir den Benutzern eine Möglichkeit bieten, den Status aller Positionen und Stellenbewerber im Personalbeschaffungsprogramm von Universal Containers zu überprüfen. Manager müssen sich ganz detailliert mit den Leistungen der einzelnen Bewerber 28 Kapitel 2: Informationen zur Beispielanwendung zur Personalbeschaffung auseinandersetzen, wohingegen die Führungsebene einfach nur einen allgemeinen Überblick darüber benötigt, wie die verschiedenen Abteilungen in Bezug auf die Personalausstattung im Plan liegen. Wir können diesen Anforderungen mithilfe von Berichten und Dashboards gerecht werden. Mit dem Berichtsgenerator können wir detaillierte Berichte mit Filtern, bedingten Hervorhebungen, Zwischensummen und Diagrammen erstellen. Mit dem Dashboard-Generator können wir rasch ein Dashboard mit bis zu 20 verschiedenen Komponenten auf einer einzigen Seite erstellen. Visualforce Mit Point-and-Click-Tools können wir fast alle Anwendungsfälle für unsere Personalbeschaffungsanwendung abdecken, es gibt jedoch einige wenige Anwendungsfälle, wie beispielsweise die Kartierung der Standorte von Bewerbern und das Posten von Stellen auf der öffentlichen Job-Site von Universal Containers, bei denen wir gezwungen sind, Visualforce, die Tag-basierte Markup-Sprache der Force.com-Plattform, zu verwenden, mit der hochentwickelte, individuell angepasste Benutzeroberflächen für Anwendungen erstellt werden können. Diese Anwendungsfälle werden erst im letzten Kapitel behandelt, wo Sie auch den gesamten Code finden, den Sie dafür benötigen. Wir haben zwar noch nicht im Detail behandelt, wie das alles funktioniert, aber Ihnen ist vermutlich bereits klar geworden, wie flexibel und leistungsstark die Force.com-Plattform sein kann, wenn es darum geht, benutzerdefinierte Anwendungen zu erstellen. Im nächsten Kapitel beginnen wir mit der Erstellung unseres ersten benutzerdefinierten Objekts. Sie werden rasch ein Gefühl dafür entwickeln, wie die Plattformoberfläche funktioniert, und es wird nicht lange dauern, bis Sie ohne großen Zeit- und Arbeitsaufwand Anwendungskomponenten erstellen können. So einfach, wie das alles ist, werden sie ganz automatisch zum Experten! 29 Kapitel 3 Datenbankbezogene Konzepte Themen: • • • • Was ist eine Datenbank? Was ist in einer Datenbank enthalten? Was ist eine relationale Datenbank? Datenbankkonzepte – Zusammenfassung Nachdem wir die Funktionen der Force.com-Plattform kennengelernt und uns über die Anforderungen an die Personalbeschaffungsanwendung klar geworden sind, die wir erstellen möchten, sollten wir uns einen Augenblick Zeit nehmen, um über Datenbanken zu sprechen und darüber, warum Grundkenntnisse zu datenbankbezogenen Konzepten dazu beitragen können, das volle Potenzial der Plattform zu begreifen, und die Entwicklung der Anwendung erheblich zu erleichtern. Wie Sie wissen, gehört zu der Architektur, die der Plattform zugrunde liegt, eine Datenbank, in der Ihre Daten gespeichert sind. Dies bedeutet, dass alle Informationen, die Sie eingeben, in dieser Datenbank gespeichert und dann jeweils aus der Datenbank abgerufen werden, wenn Sie sie in der Anwendung anzeigen. Früher waren die Unternehmen gezwungen, ihre eigenen Datenbanken und IT-Infrastrukturen zu erstellen und zu warten, um ihre Anwendungen zu verteilen und auszuführen. Cloud Computing auf der Force.com-Plattform stellt eine Alternative dar, die es Ihnen als Unternehmen oder Einzelentwickler leicht machen, Ihre Anwendung zu erstellen und verfügbar zu machen. Das Cloud Computing-Modell ist unter anderem deshalb so einfach, weil die technischen Aufgaben für Wartung und Betrieb der Hard- und Software der Datenbank vom Hosting-Unternehmen (in diesem Fall 31 Kapitel 3: Datenbankbezogene Konzepte salesforce.com) übernommen werden, sodass Sie sich auf die Entwicklung Ihrer Anwendung konzentrieren können. Keine Sorge: Zwar werden Ihre Daten in einer Datenbank gespeichert und gewisse Grundkenntnisse zu datenbankbezogenen Konzepten sind hilfreich, doch Sie müssen kein Datenbankentwickler sein, um eine Anwendung auf der Plattform erstellen zu können. Bei der Entwicklung unserer Anwendung führen wir keine Datenbankprogrammierung im herkömmlichen Sinn durch. 32 Kapitel 3: Datenbankbezogene Konzepte Was ist eine Datenbank? In einfachen Worten ausgedrückt, ist eine Datenbank eine geordnete Sammlung von Informationen Geläufige Beispiele sind Telefonbücher, Bibliothekskataloge, Mitarbeiterverzeichnisse, ein Verzeichnis der MP3s, die Sie besitzen, oder, im Fall unserer Personalbeschaffungsanwendung, Informationen zu den offenen Stellen in einem Unternehmen, den Personen, die sich auf diese Stellen bewerben, und den Managern im Unternehmen, die für die Besetzung der einzelnen Stellen zuständig sind. Typischerweise verwenden Sie Datenbanken, um Informationen zu Personen, Elementen oder Konzepten zu sammeln, die wichtig für Sie und das Projekt sind, an dem Sie arbeiten. Standardmäßig wird bei Datenbanken die Kategorie einer Person, eines Elements oder eines Konzepts, zu der bzw. dem Informationen gespeichert werden sollen, als Entität bezeichnet, in der Standardterminologie für Force.com-Plattformen dagegen als Objekt. In Datenbanken wir jede Entität durch eine Tabelle dargestellt. Bei einer Datenbanktabelle handelt es sich einfach um eine Liste von Informationen – dargestellt als Zeilen und Spalten – zu der Person, dem Element bzw. dem Konzept, die bzw. das Sie verfolgen möchten. In einem Telefonbuch könnte es somit beispielsweise eine Tabelle geben, um Informationen zu Privatanschlüssen zu speichern, und eine weitere Tabelle, um Informationen zu Unternehmen zu speichern; oder in einem Bibliothekskatalog könnte es eine Tabelle mit Informationen zu Büchern und eine andere mit Informationen zu Autoren geben. In unserer Personalbeschaffungsanwendung haben wir eine Tabelle für Informationen zu offenen Stellen, eine Weitere für Informationen zu den Bewerbern um die Stellen und eine Tabelle für Informationen zu den Einstellungs-Managern. (Zu unserer Personalbeschaffungsanwendung gehört noch mehr, aber dazu kommen wir später.) Vereinfacht ausgedrückt ähnelt ein Force.com-Plattformobjekt einer Datenbanktabelle dahingehend, dass es für jede Person, jedes Element und jedes Konzept, zu der bzw. dem Informationen erfasst werden sollen, ein separates Objekt gibt. Tatsächlich ist ein Force.com-Plattformobjekt wesentlich mehr als das, da hinter jedem Objekt der volle Funktionsumfang der Plattform steht. Jedes Objekt verfügt automatisch über integrierte Funktionen, wie eine Benutzeroberfläche, ein Sicherheits- und Freigabemodell, Workflow-Prozesse und noch vieles mehr, wie Sie weiter hinten in diesem Buch erfahren werden. Anmerkung: Bei der Einführung der Datenbankbegriffe werden "Objekt" und "Tabelle" synonym verwendet, weil es sich dabei um ähnliche Konzepte handelt. Behalten Sie einfach im Hinterkopf, dass ein Force.com-Plattformobjekt wesentlich mehr ist als einfach nur eine Datenbanktabelle. 33 Kapitel 3: Datenbankbezogene Konzepte Es ist wichtig zu verstehen, dass eine einzelne Datenbanktabelle bzw. ein einzelnes Force.com-Plattformobjekt nur einen einzigen Informationstyp enthalten sollte. Es ist nicht sinnvoll, alle Informationen in dieselbe Tabelle zu packen. Sie sollten also Stellen, Bewerber und Einstellungs-Manager nicht alle am selben Ort speichern. Dies ist nicht nur kein gutes Datenbankdesign, sondern Sie können dadurch die Objekte auch nicht in Bezug zueinander setzen. Hier ein Beispiel: Wenn alle Daten in derselben Tabelle gespeichert würden, wie könnten wir dann je wissen, welche Personen sich um welche Stellen bewerben oder welche Manager für die Besetzung welcher Stellen zuständig sind? Bei der Festlegung unserer Anwendung müssen wir uns dies stets vor Augen halten und uns Fragen stellen wie: "Welche Art von Informationen soll gespeichert werden? Können wir die Informationen in getrennte Kategorien unterteilen, sodass jedes Objekt nur eine Art von Person, Element oder Konzept enthält?" Die Antworten auf diese Fragen dienen uns als Richtschnur beim Entwerfen der Anwendungsstruktur. Was ist in einer Datenbank enthalten? Wie bereits erwähnt, werden in einer Datenbanktabelle Ihre Informationen in Form von Zeilen und Spalten präsentiert. Sehen wir uns an, wie eine Tabelle der Stellen aussehen könnte: Abbildung6: Stelleinformationen in einer Tabelle Jede Zeile in der Tabelle steht für die Informationen zu einer bestimmten Instanz des Objekts, beispielsweise die Stelle "Recruiter" oder die Stelle "SW Engineer". In der Force.com-Standardterminologie wird dies als Datensatz bezeichnet. Für jedes Objekt, das Sie in Ihrer Anwendung verfolgen möchten, gibt es mehrere Datensätze, die jeweils für die 34 Kapitel 3: Datenbankbezogene Konzepte einzelnen Elemente stehen, zu denen Sie Informationen speichern. Benutzer, die noch nicht mit der Plattform vertraut sind, verwechseln häufig Objekte und Datensätze. Es kann Ihnen die Entwicklung erheblich erleichtern, wenn Sie sich merken, dass ein Objekt eine Kategorie von Informationen ist, wie eine Stelle oder ein Bewerber, und der Datensatz eine einzelne Instanz eines Objekts, beispielsweise ein SW Engineer. Anmerkung: Als Randnotiz sei vermerkt, dass die Plattform beim ersten Start eine Reihe integrierter Objekte enthält. Diese Objekte werden als Standardobjekte bezeichnet. Ein Beispiel für ein Standardobjekt ist das Objekt "Benutzer", in dem Informationen zu allen Personen gespeichert werden, die Benutzer der Anwendung sind, wie beispielsweise unsere Einstellungs-Manager. Außerdem können Sie Ihre eigenen Objekte erstellen, um Informationen zu speichern, die spezifisch für Ihre Anwendung sind. Diese werden als benutzerdefinierte Objekte bezeichnet. Standardobjekte und benutzerdefinierte Objekte sind im Grunde gar nicht so verschieden. Es ist nur so, dass die einen bereits vordefiniert sind, während Sie die anderen selbst erstellen müssen. Wir gehen später genauer auf diese Objekte ein, wenn Sie mit der Erstellung der Anwendung beginnen. Werfen wir nun einen Blick auf die Spalten in der Tabelle. In den einzelnen Tabellen sind jeweils bestimmte Informationen aufgeführt, wie "Position Title" (Stellentitel) oder "Max Pay" (Höchstgehalt). Wir bezeichnen diese Spalten als Felder. Zu jedem Objekt gehört eine Reihe von Feldern, die zur Eingabe der Informationen zu einem bestimmten Datensatz dienen. Für jedes Feld in der Tabelle werden die einzelnen Datenelemente, die Sie eingeben, wie beispielsweise "Human Ressources" (Personalbereich) unter "Functional Area" (Funktionsbereich), als Datenwerte bezeichnet. Wie bei den Objekten gibt es auch bei den Feldern zwei Sorten: standardmäßig und benutzerdefiniert. Standardfelder sind bereits in die Plattform integriert und werden automatisch hinzugefügt. Benutzerdefinierte Felder sind die Felder, die Sie definieren, um bestimmte Informationen zu speichern, die spezifisch für Ihre Anwendung sind. Im Grunde gibt es keinen Unterschied zwischen Standardfeldern und benutzerdefinierten Feldern. Beide sind einfach Spalten in der Datenbanktabelle. Wir gehen später genauer auf Standardfelder und benutzerdefinierte Felder ein, wenn Sie mit der Erstellung Ihrer Anwendung beginnen. Was ist eine relationale Datenbank? Nun sind einige Informationen in Ihrer Datenbank gespeichert, aber was soll das Ganze? Sie könnten problemlos eine Liste der Stellen mit Microsoft Excel oder einer anderen Tabellenkalkulationssoftware erstellen. Sie könnten sogar für jede Stelle den Einstellungs-Manager in einem Feld namens "Hiring Manager" (Einstellungs-Manager) aufführen, so wie hier: 35 Kapitel 3: Datenbankbezogene Konzepte Abbildung7: Stelleninformationen mit Feld für Einstellungs-Manager Aber was, wenn ein Einstellungs-Manager für die Besetzung mehrerer Stellen verantwortlich ist? Sie bräuchten doppelte Datensätze für denselben Einstellungs-Manager, um jede Stelle erfassen zu können, für die der Einstellungs-Manager zuständig ist, so wie hier: Abbildung8: Stelleninformationen mit Mehrfacheinträgen für Einstellungs-Manager Dies ist kein gutes Datenbankdesign! Mit diesem Ansatz werden Daten unnötigerweise wiederholt. Außerdem gibt es keine Möglichkeit, weitere Informationen zu den Einstellungs-Managern zu erfassen, wie E-Mail-Adressen und Telefonnummern. Und wenn wir versuchen, Informationen darüber hinzuzufügen, welche Bewerber sich um die einzelnen Stellen bewerben, können Sie sich vorstellen, dass unsere einfache Tabelle sehr schnell sehr komplex und unhandlich wird. Wie bereits erwähnt, ist es sinnvoll, separate Datenbanktabellen bzw. Objekte für jede Person, jedes Element bzw. jedes Konzept zu erstellen, die bzw. das verfolgt werden soll. Eine bessere Methode zur Modellierung unseres Szenarios besteht also darin, ein Objekt für Stellen, eines für Bewerber und eines für Einstellungs-Manager zu erstellen. (Glücklicherweise enthält die Plattform ein Standardobjekt, das wir zur Darstellung der Einstellungs-Manager verwenden können: das Objekt "Benutzer".) Nachdem wir unsere Daten in diskrete Objekte aufgegliedert haben, können wir problemlos Objekte in Bezug zueinander setzen. Und genau darum geht es bei relationalen Datenbanken! Eine Beziehung ist eine Verknüpfung zwischen zwei oder mehr Tabellen. Beispielsweise können wir Stellen zu Einstellungs-Managern in Bezug setzen, damit wir entnehmen können, für welche Stellen die einzelnen Einstellungs-Manager zuständig sind. 36 Kapitel 3: Datenbankbezogene Konzepte Abbildung9: Stellen in Bezug zu Einstellungs-Managern Aus technischer Sicht enthält jede Tabelle in einer relationalen Datenbank ein Feld, in dem der Datenwert den Datensatz eindeutig kennzeichnet. Dieses Feld wird als Primärschlüssel bezeichnet. Der Primärschlüssel ist ein Teil der Beziehungsdefinition, der andere Teil ist der Fremdschlüssel. Ein Fremdschlüssel ist ein Feld, dessen Wert mit dem Primärschlüssel einer anderen Tabelle übereinstimmt. Sie können sich einen Fremdschlüssel als Kopie des Primärschlüssels aus einer anderen Tabelle vorstellen. Die Beziehung zwischen zwei Tabellen wird erstellt, indem die Werte des Fremdschlüssels in einer Tabelle mit den Werten des Primärschlüssels in einer anderen Tabelle abgeglichen werden. Primär und Fremdschlüssel sind von zentraler Bedeutung für das Konzept "Beziehungen", da sie ermöglichen, dass Tabellen in Bezug zueinander stehen. Wenn Sie damit beginnen, Ihre Anwendung zu erstellen, brauchen Sie sich noch nicht allzu viele Gedanken um Primär- und Fremdschlüssel zu machen. Das wichtige Konzept, das Sie hier verstehen müssen, ist, dass die Objekte in einer relationalen Datenbank einander über die Verwendung gemeinsamer Felder zugeordnet sind, die diese Beziehungen definieren. Datenbankkonzepte – Zusammenfassung Nun sind wir bereit, mit der Erstellung unserer Personalbeschaffungsanwendung zu beginnen. Wiederholen wir jedoch zuvor noch einmal kurz, was wir über Datenbanken gelernt haben. Gleichgültig ob dies Ihre erste Einführung in Datenbanken war oder ob Sie bereits ein erfahrener Datenbankentwickler sind, für den lediglich die Force.com-Plattform neu ist: Sie sollten folgende wichtige Punkte im Hinterkopf behalten: 37 Kapitel 3: Datenbankbezogene Konzepte • • • • • Eine Datenbank ist eine geordnete Sammlung von Informationen. In einer Datenbanktabelle werden Informationen zu einem bestimmten Typ von Person, Element oder Konzept gespeichert, beispielsweise eine Arbeitsstelle. Bei der Force.com-Plattform verwenden wir hier den Begriff Objekt (auch wenn ein Objekt wesentlich mehr ist als das, wie Sie sehen werden). Eine Datenbankzeile bzw. ein Datensatz, wie die Bezeichnung bei der Force.com-Plattform lautet, steht für eine einzelne Instanz eines Objekts, beispielsweise die Stelle "SW Engineer". In einem Feld werden bestimmte Informationen zu einem Datensatz gespeichert. Beziehungen definieren die Verbindung zwischen zwei Objekten und Objekte stehen über die Verwendung gemeinsamer Felder in Bezug zueinander. Nun, da wir all das behandelt haben, wollen wir mit der Erstellung unseres ersten Objekts beginnen. 38 Kapitel 4 Erstellen einer einfachen Anwendung Themen: • • • • • • • • Der Setup-Bereich Einführung zu Anwendungen Einführung zu Objekten Einführung zu Registerkarten Setup-Detailseiten und Themenlisten Einführung zu Feldern Rekapitulation Erstellen der mobilen Version unserer einfachen Anwendung Ebenso wie in herkömmlichen Programmierhandbüchern, wo zunächst einmal erklärt wird, wie ein einfaches „Hallo Welt"-Programm geschrieben wird, bevor zu komplizierteren Vorgängen übergegangen wird, möchten wir in diesem Kapitel eine stark vereinfachte Version der Personalbeschaffungsanwendung erstellen, um zu zeigen, wie einfach der Einstieg in die Force.com-Plattform ist. Während dieses Prozesses orientieren wir uns an der Benutzeroberfläche der Plattform (wo auch der Großteil unserer Arbeit stattfindet) und lernen, wie wir unser erstes benutzerdefiniertes Objekt erstellen und konfigurieren. Die hierbei durchgeführten Aufgaben stellen, auch wenn sie einfach und überschaubar sind, den ersten Schritt bei der Entwicklung einer Personalbeschaffungsanwendung mit vollem Funktionsumfang dar. Legen wir also los! 39 Kapitel 4: Erstellen einer einfachen Anwendung Der Setup-Bereich Da wir die meiste Zeit über im Setup-Bereich der Anwendung arbeiten werden, sehen wir uns zunächst an, wie man zu diesem Bereich navigiert, und machen uns mit ihm vertraut. Der Setup-Bereich ist ein zentraler Ort, an dem Sie Anwendungen erstellen und anpassen sowie Organisationen und Benutzer verwalten und überwachen können. Wir führen nahezu alle Aufgaben, die wir zum Erstellen unserer Anwendung benötigen, im Setup-Bereich durch, sodass die meisten Abschnitte in diesem Handbuch, die mit "Probieren Sie es aus:" beginnen, am Anfang eine Anweisung enthalten, wie "Setup" auf Erstellen > Anwendungen". Dies ist eine Abkürzung für: 1. Je nachdem, welche Einstellungen für Ihre Organisation ausgewählt wurden, rufen Sie den Setup-Bereich durch eine von zwei Vorgehensweisen aus. Sehen Sie sich die Kopfzeile oben auf der Seite an. Wenn in der Kopfzeile Setup angezeigt wird, klicken Sie darauf. Wenn Setup nicht in der Kopfzeile angezeigt wird, klicken Sie auf Ihren Namen und anschließend auf Setup. 2. Wenn Sie sich im Setup-Bereich befinden, wird links auf der Seite ein Menü angezeigt. Klicken Sie in diesem Menü auf Erstellen > Anwendungen. Der letzte Link, auf den Sie klicken (in diesem Beispiel: Anwendungen), variiert je nach Aufgabe, die Sie ausführen. 40 Kapitel 4: Erstellen einer einfachen Anwendung Abbildung10: Setup-Bereich Ähnlich wie andere Teile der Anwendung, besteht auch der Setup-Bereich aus einer Registerkartenleiste, einer Navigations-Randleiste und einem Hauptfenster. • • • Die Registerkartenleiste besteht aus den gleichen Registerkarten, die auch in der regulären Anwendung angezeigt werden. Klicken Sie einfach auf eine der Registerkarten, um den Setup-Bereich zu verlassen und die betreffende Registerkarten in der Hauptanwendung anzuzeigen. Die Navigations-Randleiste enthält erweiterbare Listen aller im Setup-Bereich verfügbaren Tools. Die Tools beinhalten Optionen zum Einrichten, Warten und Anpassen Ihrer Organisation und zum Erstellen, Erweitern und Verwalten von Anwendungen. Im Hauptfenster werden die Navigationslinks bzw. das ausgewählte Setup-Tool angezeigt. Tipp: Da Sie Anwendungen in Force.com entwickeln werden, empfiehlt es sich, den Setup-Bereich als Standard-Zielseite nach der Anmeldung festzulegen. Gehen Sie hierzu wie folgt vor: 1. Klicken Sie oben auf der Seite auf den Abwärtspfeil neben Ihrem Namen. Wählen Sie im Menü unterhalb Ihres Namens Meine Einstellungen oder Setup aus, je nachdem, welche Option angezeigt wird. 2. Wählen Sie im linken Fenster eine der folgenden Optionen aus: 41 Kapitel 4: Erstellen einer einfachen Anwendung • • Wenn Sie auf Meine Einstellungen geklickt haben, wählen Sie Anzeige & Layout > Meine Seiten anpassen aus. Wenn Sie auf Setup, geklickt haben, wählen Sie Meine persönlichen Daten > Persönliche Daten und anschließend Bearbeiten. 3. Wählen Sie "Setup" zu meiner Standard-Zielseite machen aus. 4. Klicken Sie auf Speichern. Jetzt wissen wir, worum es geht, also beginnen wir mit der Erstellung unserer einfachen Anwendung. Einführung zu Anwendungen Was müssen wir zuerst tun? Wenn wir eine Software-Anwendung schreiben wollten, müssten wir zuerst ein Projekt erstellen, in dem wir den gesamten Code, den wir schreiben, speichern können. Auf der Force.com-Plattform müssen wir zuerst eine neue Anwendung erstellen. Wie bei einem Programmierungsprojekt ist eine Anwendung lediglich ein Container für alle Objekte, Registerkarten und anderen Funktionen, die wir für unsere Personalbeschaffungsanwendung erstellen. Sie besteht einfach aus einem Namen, einem Logo und einer Reihe von geordneten Registerkarten. Die einfachste Anwendung enthält nur eine Registerkarte, nämlich die Registerkarte "Startseite", und ein Standardlogo. Wenn wir im weiteren Verlauf dieses Handbuchs weitere Registerkarten definieren, können wir sie der Anwendung später hinzufügen. Beginnen wir, indem wir jetzt Schritt für Schritt eine einfache Anwendung erstellen. Melden Sie sich bei Ihrem Salesforce-Account an, um mitmachen zu können. Anmerkung: Da die Plattform ständig weiter entwickelt wird, können einige in diesem Handbuch dargestellte Screenshots leicht von den Darstellungen auf Ihrem Bildschirm abweichen. Diese Änderungen sind nur geringfügig und sollten Ihr Verständnis nicht beeinträchtigen. Probieren Sie es aus: Definieren einer Anwendung 1. Öffnen Sie einen Browser und rufen Sie www.salesforce.com auf. 2. Klicken Sie auf Bei Salesforce anmelden. 42 Kapitel 4: Erstellen einer einfachen Anwendung 3. Geben Sie Ihren Benutzernamen und Ihr Kennwort ein. 4. Klicken Sie unter "Setup" auf Erstellen > Anwendungen. 5. Wenn eine einführende Vorschaltseite angezeigt wird, klicken Sie einfach auf Fortfahren. Anmerkung: Diese Vorschaltseiten gibt es in vielen Teilen der Anwendung. Sie sollen Ihnen helfen zu verstehen, welche Möglichkeiten Ihnen die Plattform bietet. Wenn Sie eine bestimmte Seite nie wieder sehen möchten, wählen Sie einfach Diese Seite nicht mehr anzeigen. Willkommen auf der Seite mit der Anwendungsliste! Wie bei vielen Setup-Tools besteht auch die Startseite des Anwendungstools aus einer Liste aller Anwendungen, die derzeit für Ihre Organisation aktiviert sind. Je nachdem, welche Edition Sie verwenden oder welche Elemente Sie bereits von AppExchange installiert haben, werden hier bereits bestimmte Standardanwendungen aufgeführt. Beyond the Basics Es gibt zwei Möglichkeiten zur Erstellung von Anwendungen. Mit der Schaltfläche Schnelleinstieg wird eine Anwendung mit einem einzigen benutzerdefinierten Objekt und der zugehörigen Registerkarte erstellt. Mit der Schaltfläche Neu erstellen Sie eine Anwendung mit einem Logo, fügen bestehende Registerkarten hinzu und legen die Sichtbarkeit der Anwendung für Ihre Profile fest. In diesem Buch verwenden wir die Schaltfläche Neu, Sie können jedoch später gerne auch die Schaltfläche Schnelleinstieg ausprobieren. 6. Klicken Sie auf Neu. Der Assistent für neue benutzerdefinierte Anwendungen wird angezeigt. 7. Geben Sie im Feld Anwendungsbezeichnung den Text Recruiting (Personalbeschaffung) ein. Die Anwendungsbezeichnung ist der Name, der für unsere Anwendung im Force.com-Anwendungsmenü verwendet wird, das rechts oben auf allen Seiten angezeigt wird. Die Benutzer können mit diesem Menü zwischen den Anwendungen hin- und herschalten. Beachten Sie den senkrechten roten Balken, der unmittelbar links von diesem Bezeichnungsfeld angezeigt wird. Durch diesen roten Balken wird darauf hingewiesen, dass Sie Ihre Arbeit nur speichern können, wenn Sie in diesem Feld einen Wert angeben. Wenn Sie hier keinen Wert eingeben und versuchen fortzufahren, wird eine Fehlermeldung angezeigt. 43 Kapitel 4: Erstellen einer einfachen Anwendung Abbildung11: Pflichtfelder mit roter Markierung 8. Klicken Sie mit der Maus in das Feld Anwendungsname. Anhand des Anwendungsnamens identifizieren Entwickler die Anwendung, wenn sie Code für die Force.com-Plattform schreiben. Wir führen in diesem Buch keinerlei Vorgänge aus, bei denen der Anwendungsname verwendet wird, aber da es sich bei dem Feld um ein Pflichtfeld handelt, muss ein Wert eingegeben werden. Praktischerweise ist dieser Vorgang normalerweise automatisiert: Wenn Sie einen Wert in das Feld Anwendungsbezeichnung eingeben, sollte derselbe Wert automatisch in das Feld Anwendungsname eingetragen werden. Sollte dies nicht der Fall sein, geben Sie jetzt Recruiting (Personalbeschaffung) in das Feld Anwendungsname ein. 9. Geben Sie im Feld Beschreibung folgenden Text ein: Manage positions, candidates, and job applications, and track job postings on employment websites. (Verwalten von Stellen, Bewerbern und Stellenbewerbungen sowie Verfolgen von Stellenausschreibungen auf Jobbörsen.) 10. Klicken Sie auf Weiter. Im nächsten Bildschirm des Assistenten für neue benutzerdefinierte Anwendungen können Sie angeben, welche Bilddatei für das Logo der Anwendung verwendet werden soll. Immer wenn die Anwendung im Force.com-Anwendungsmenü ausgewählt ist, wird dieses Logo links oben auf allen Seiten angezeigt. Da wir nur eine einfache Anwendung erstellen, übernehmen wir einfach das bereitgestellte Standardlogo. Wir können es jederzeit später ändern. 11. Klicken Sie auf Weiter. Wie bereits erwähnt, ist eine Anwendung ein Container für eine geordnete Sammlung von Registerkarten. In diesem Schritt des Assistenten für neue benutzerdefinierte Anwendungen können wir nun angeben, welche Registerkarten in unserer neuen Anwendung enthalten sein sollen. In der Liste Verfügbare Registerkarten werden die Standardregisterkarten und die benutzerdefinierten Registerkarten angezeigt, die für uns zur Auswahl stehen, und in der Liste Ausgewählte Registerkarten ist zu sehen, welche Registerkarten bereits enthalten sind (aufgeführt in der Reihenfolge, in der sie angezeigt werden sollen). Wie Sie sehen, ist 44 Kapitel 4: Erstellen einer einfachen Anwendung eine Registerkarte, die Registerkarte "Startseite", bereits standardmäßig in unserer Anwendung enthalten. Dies liegt daran, dass die Registerkarte "Startseite" in jeder Anwendung erforderlich ist und immer an erster Stelle stehen muss. Sie können jedoch über das Dropdownmenü Standard-Landeregisterkarte auswählen, welche Registerkarte beim Öffnen der Registerkarte als Erstes angezeigt wird. Auch hier gilt wieder: Da wir nur eine einfache Anwendung erstellen, übernehmen wir einfach die Standardvorgaben und fahren fort. Wir fügen später weiter Registerkarten hinzu. 12. Klicken Sie auf Weiter. Nachdem wir nun einige Grundfunktionen unserer Anwendung definiert haben, fragen Sie sich vielleicht, was noch im Assistenten für neue benutzerdefinierte Anwendungen zu tun bliebt. Sollten wir nicht bereits fertig sein? Ein wichtiger Schritt steht noch aus: Wir müssen definieren, welche Benutzer Zugriff auf unsere Anwendung haben sollen. In diesem Schritt des Assistenten für neue benutzerdefinierte Anwendungen können wir auswählen, welche Benutzerprofile Zugriff auf die Anwendung haben sollen. Im Abschnitt Einrichten von Sicherheit und Freigabe für Daten auf Seite 175 erfahren wir mehr über Profile. Für den Augenblick brauchen Sie lediglich zu wissen, dass jeder Benutzer einem Profil zugewiesen ist und dass Profile steuern, welche Anwendungen die dem betreffenden Profil zugewiesenen Benutzer sehen können. 13. Aktivieren Sie das Kontrollkästchen Sichtbar neben den Profilen "Standardbenutzer" und "Systemadministrator". 14. Klicken Sie auf Speichern. Schon sind Sie fertig! Rekapitulation Nachdem wir nun wieder zur Seite mit der Anwendungsliste zurückgekehrt sind, sollten wir uns ansehen, was wir soeben gemacht haben. Zunächst einmal gibt es einen neuen Eintrag in der Anwendungsliste: Unsere Personalbeschaffungsanwendung! Sie wird in der Liste an derselben Stelle angezeigt, wie sie dann auch in unserem Force.com-Anwendungsemü zu sehen sein wird. Sehen wir uns das Force.com-Anwendungsmenü gleich einmal an. 45 Kapitel 4: Erstellen einer einfachen Anwendung Abbildung12: Force.com-Anwendungsmenü Tipp: Wenn Sie die Position Ihrer Anwendung in diesem Menü ändern möchten, können Sie dies auf der Seite mit der Anwendungsliste tun. Klicken Sie dazu auf Neu anordnen und ordnen Sie die verfügbaren Anwendungen nach Ihren Bedürfnissen an. Wählen Sie nun die Personalbeschaffungsanwendung im Menü aus und sehen Sie sich an, was geschieht: Unsere Anwendung wird mit einer einzigen Registerkarte ("Startseite") gestartet! Wir haben die Registerkarte "Startseite" der Personalbeschaffungsanwendung erstellt und die Anwendung zum Force.com-Anwendungsmenü hinzugefügt. So einfach ist das. Wie Sie sehen werden, verfolgen wir hier einen iterativen Ansatz: Wir erstellen einen Teil der Anwendung, sehen uns an, was wir erreicht haben, und nehmen dann Ergänzungen vor. Diese Abfolge liegt nicht nur daran, dass wir Sie in diesem Buch Schritt für Schritt durch die Erstellung einer Anwendung führen, sondern dieser iterative Prozess ist allgemein bei der Erstellung von Anwendungen auf der Force.com-Plattform üblich. Im Verlauf dieses Buchs werden Sie außerdem feststellen, dass anders als bei traditionellen Codierungsprojekten Ihre Anwendung jederzeit funktionsfähig ist. Es gibt keine Erstellungsoder Kompilierungsphase. Und somit haben Sie auch fast nie damit zu tun, Syntaxfehler oder sonstige Tippfehler zu suchen. So können Sie mit dieser einfachen, aus einer einzigen Registerkarte bestehenden Anwendung bereits den gesamten integrierten Funktionsumfang nutzen, der in der Plattform enthalten ist, wie Suchfunktionen, Kalenderereignisse und Aufgaben , Benutzereinstellungen und eine vertraute Benutzeroberfläche. 46 Kapitel 4: Erstellen einer einfachen Anwendung Einführung zu Objekten Unsere Anwendung ist zwar funktionsfähig, aber bisher doch recht langweilig. Machen wir sie also ein wenig interessanter, indem wir unser erstes Objekt einführen. Wie im letzten Kapitel erläutert, weisen Objekte in der Force.com-Plattform große Ähnlichkeit mit Datenbanktabellen auf. In der Plattform sind eine Reihe von Standardobjekten enthalten, wie Kontakte, Accounts und Kundenvorgänge, die für die Standardanwendungen, wie die Salesforce-Vertriebsanwendung und die Salesforce-Callcenteranwendung, verwendet werden. Außerdem können wir benutzerdefinierte Objekte erstellen, mit denen wir Informationen speichern können, die speziell für unsere Personalbeschaffungsanwendung von Bedeutung sind. Unabhängig davon, ob es sich um Standardobjekte oder benutzerdefinierte Objekte handelt: Die Objekte der Force.com-Plattform stellen nicht nur eine Struktur zum Speichern von Daten bereit, sondern sie stellen auch leistungsstarke Benutzeroberflächenelemente zur Verfügung, über die die Benutzer mit den Daten arbeiten können, wie beispielsweise Registerkarten, Layouts von Feldern auf einer Seite und Listen mit verwandten Datensätzen. Da jedes Objekt einer Registerkarte entsprechen kann und Anwendungen aus einer geordneten Sammlung von Registerkarten bestehen, sind Objekte das Kernstück jeder Anwendung, die wir mit der Plattform erstellen. Und da benutzerdefinierte Objekte so wichtig sind (sie beeinflussen wesentlich das Erscheinungsbild und die Funktionsweise unserer Anwendung), hängt die Erstellung einer erfolgreichen Anwendung entscheidend davon ab, was wir mit benutzerdefinierten Objekten tun und wie wir sie verwenden. Der Entwurf des zugrunde liegenden Datenmodells ist typischerweise der wichtigste Faktor für Erfolg oder Scheitern einer Anwendung. Doch damit haben wir vorerst genug Worte über Objekte verloren. Jetzt sollten wir erst einmal eines definieren. Das benutzerdefinierte Objekt "Position" (Stelle) Das erste benutzerdefinierte Objekt, das wir für unsere Personalbeschaffungsanwendung erstellen, dient einer typischen Aufgabe bei der Personalbeschaffung: die Beschreibung einer Stelle. Personalbeschaffungsmitarbeiter bei Universal Containers müssen einen Überblick über alle ausgeschriebenen Stellen behalten, beispielsweise als Senior Developer, Sales Engineer oder Benefits Specialist. Sie müssen leicht über eine Registerkarte auf alle Stellen im System zugreifen können und sie müssen bestimmte Informationen für die einzelnen Stellen einfügen, beispielsweise das Mindest- und Höchstgehalt, den Standort der Stelle und den zuständigen 47 Kapitel 4: Erstellen einer einfachen Anwendung Einstellungs-Manager. Auf der Force.com-Plattform heißt das, dass wir ein benutzerdefiniertes Objekt erstellen, dann eine benutzerdefinierte Registerkarte für das Objekt erstellen und schließlich einige benutzerdefinierte Felder definieren. Probieren Sie es aus: Definieren des benutzerdefinierten Objekts "Position" (Stelle) Um das benutzerdefinierte Objekt "Position" (Stelle) zu erstellen, kehren wir zum Setup-Bereich zurück. 1. Klicken Sie unter "Setup" auf Erstellen > Objekte. 2. Klicken Sie auf der Seite "Benutzerdefinierte Objekte" auf Neues benutzerdefiniertes Objekt. Anders als beim Erstellen einer benutzerdefinierten Anwendung, die über den Assistenten für neue benutzerdefinierte Anwendungen erfolgte, beschränkt sich die Erstellung eines benutzerdefinierten Objekts auf eine einzige Seite. Die Plattform verwendet Assistenten bzw. einzelne Seiten in Abhängigkeit davon, wie viele Informationen angegeben werden müssen. Abbildung13: Seite "Definition für benutzerdefiniertes Objekt" 3. Geben Sie im Feld Bezeichnung den Text Position (Stelle) ein. 4. Geben Sie im Feld Bezeichnung – Plural den Text Positions (Stellen) ein. 5. Das Feld Objektname wird automatisch als Position vorgegeben. Lassen wir es so, wie es ist. 48 Kapitel 4: Erstellen einer einfachen Anwendung Die Felder Bezeichnung und Bezeichnung – Plural eines benutzerdefinierten Objekts werden den Benutzern in allen zum Objekt gehörenden Benutzeroberflächenelementen angezeigt, beispielsweise auf der Registerkarte des Objekts oder in den Überschriften für die Suchergebnisse. Als Objektbezeichnungen sollten am besten Substantive verwendet werden. Die Plural-Bezeichnung dient stets als Bezeichnung für die Registerkarte des benutzerdefinierten Objekts (sofern Sie eine Registerkarte für Ihr Objekt erstellen). Der Wert für Objektname eines benutzerdefinierten Objekts ist der eindeutige Name für das Objekt, wenn in anderen Bereichen der Plattform darauf Bezug genommen wird, beispielsweise in Formeln und auf Visualforce-Seiten. Dieser Wert wird praktischerweise automatisch auf der Grundlage des Werts generiert, den Sie unter Bezeichnung eingeben. Dabei werden alle Leer- und Satzzeichen durch Unterstriche ersetzt. Wir befassen uns weiter hinten in diesem Buch eingehender mit Formeln und Visualforce. Für den Moment sollten Sie sich merken, dass der Wert unter Objektname für alle Objekte, die in Ihrer Organisation definiert sind, eindeutig sein muss. Anmerkung: Innerhalb der Plattform wird Objektname mit einem als Suffix angehängten __c gespeichert (z. B. Position__c). Damit wird angegeben, dass es sich um ein benutzerdefiniertes Objekt handelt. 6. Geben Sie im Feld Beschreibung folgenden Text ein: This object stores information about the open job positions at our company. (In diesem Objekt werden Informationen zu den offenen Stellen in unserem Unternehmen gespeichert.) 7. Übernehmen Sie für Einstellungen für die kontextabhängige Hilfe die Standardvorgabe. Wenn Sie Ihren Benutzern später angepasste Hilfedokumentation zu diesem Objekt bereitstellen möchten, können Sie hierher zurückkehren und die Option Öffnen eines Fensters mithilfe eines Custom Visualforce auswählen. 8. Geben Sie im Feld Datensatzname den Text Position Title (Stellentitel) ein. Datensatzname ist die Bezeichnung für das Feld, das die einzelnen Stellendatensätze im System identifiziert. Ohne dieses identifizierende Feld können benutzerdefinierte Objekte nicht gespeichert werden. 9. Wählen Sie in der Dropdownliste Datentyp den Eintrag "Text" aus. In der Dropdownliste Datentyp können Sie die Art von Werten auswählen, die in diesem identifizierenden Feld verwendet wird: entweder "Text" oder "Automatische Nummerierung". Einige Objekte, wie Stellen oder Accounts, können über ein Textfeld identifiziert werden, da immer ein Name für eine Stelle oder einen Account verfügbar ist. Andere Objekte, wie beispielsweise Kundenvorgänge (in der Standardanwendung für Callcenter verwendet) sind 49 Kapitel 4: Erstellen einer einfachen Anwendung schwieriger durch ein einzelnes Textfeld zu identifizieren. Daher weisen wir ihnen stattdessen automatisch generierte Nummern zu. Tipp: Es ist am besten, wann immer möglich Text als Datentyp für identifizierende Felder zu verwenden, damit die Benutzer einen bestimmten Datensatz leichter identifizieren können, wenn mehrere davon zusammen in derselben Liste vorkommen. Um darzulegen, wie die Bezeichnungen für benutzerdefinierte Objekte und Datensatznamen zusammen in der Anwendung funktionieren, greifen wir ein wenig vor und sehen uns an, wo die einzelnen Bezeichnungen angezeigt werden, nachdem wir das benutzerdefinierte Objekt "Position" (Stelle), die zugehörige Registerkarte und einen einzelnen Stellendatensatz für eine Stelle als Sr. Developer definiert haben. Abbildung14: Bezeichnungen für benutzerdefinierte Objekte und Datensatznamen Machen wir weiter. 10. Aktivieren Sie im Bereich "Optionale Funktionen" die Kontrollkästchen Berichte zulassen, Aktivitäten zulassen, und Feldverlauf verfolgen. Durch diese drei Kontrollkästchen werden einige leistungsstarke Funktionen aktiviert. Berichte zulassen Durch die Auswahl dieser Option werden die Daten in den Stellendatensätzen für Berichte verfügbar. In der Plattform ist bereits eine große Anzahl von Standardberichten enthalten und die Benutzer können außerdem benutzerdefinierte Berichte mithilfe eines einfachen und doch leistungsstarken Berichtsgenerators erstellen. (Weitere Informationen zu Berichten finden Sie unter Analysieren von Daten mit Berichten und Dashboards auf Seite 341.) 50 Kapitel 4: Erstellen einer einfachen Anwendung Aktivitäten zulassen Die Auswahl dieser Option ermöglicht Benutzern die Verknüpfung von Aufgaben und geplanten Kalenderereignissen mit einer bestimmten Stelle. Beispielsweise kann ein Benutzer eine Aufgabe erstellen, wie "Update salary range for Sr. Developer position" (Gehaltsbereich für Stelle Sr. Developer aktualisieren)”, und Attribute angeben, wie Priorität, Fälligkeitsdatum und Status. Der Benutzer kann dann die Aufgabe selbst ausführen oder sie einer anderen Person zuweisen. (Weitere Informationen zu Aufgaben finden Sie unter "Aktivitäten – Übersicht" in der Salesforce-Hilfe.) Feldverlauf verfolgen Die Auswahl dieser Option ermöglicht der Plattform die automatische Verfolgung von Bearbeitungen an Stellendatensätzen. Hier wird beispielsweise ersichtlich, wer den Wert eines Felds geändert hat, wann die Änderung vorgenommen wurde und wie der Wert des Felds vor und nach der Bearbeitung lautete. Verlaufsdaten stehen für Berichte zur Verfügung; Benutzer können folglich ganz einfach Aktivierungsprotokollberichte erstellen, wenn diese Funktion aktiviert ist. (Informationen dazu, wie Sie auswählen können, welche Daten verfolgt werden sollen, finden Sie unter "Verfolgen des Feldverlaufs für benutzerdefinierte Objekte" in der Salesforce-Hilfe.) Im Allgemeinen sollten Sie diese Optionen auswählen, wenn die Chance besteht, dass sie für das von Ihnen erstellte benutzerdefinierte Objekt von Nutzen sein könnten. 11. Wählen Sie im Bereich "Bereitstellungsstatus" die Option Bereitgestellt aus. Anmerkung: Bei diesem Schritt wird davon ausgegangen, dass Sie in einer Entwicklungsumgebung arbeiten. Wenn dies nicht der Fall ist und Sie nicht möchten, dass die Benutzer das Objekt "Position" (Stelle) sehen, nachdem Sie auf Speichern geklickt haben, wählen Sie die Option In Entwicklung. Wenn Sie den Status auf In Entwicklung setzen, werden Stellendatensätze vor allen Benutzern verborgen, die nicht über die Benutzerberechtigung "Anwendung anpassen" verfügen (also praktisch alle Benutzer, die nicht Systemadministratoren sind). 12. Aktivieren Sie im Bereich "Optionen zum Erstellen von Objekten" die Kontrollkästchen Themenliste "Notizen & Anhänge" zum Standard-Seitenlayout hinzufügen und Nach dem Speichern dieses benutzerdefinierten Objekts den Assistenten für neue benutzerdefinierte Registerkarte starten. Diese beiden Optionen stehen nur zur Verfügung, wenn Sie ein neues benutzerdefiniertes Objekt erstellen. Wenn Sie sich später entschließen, Details zu Ihrem benutzerdefinierten Objekt zu bearbeiten, werden diese Optionen nicht mehr angezeigt. Doch was bewirken sie? 51 Kapitel 4: Erstellen einer einfachen Anwendung • • Wenn Sie Notizen und Anhänge für ein Objekt aktivieren, können Sie externe Dokumente zu Stellendatensätzen hinzufügen, in etwa so, wie Sie eine PDF oder ein Foto als Anhang zu einer E-Mail hinzufügen können. Diese Funktion ist sehr praktisch. Aktivieren Sie sie also. "Assistenten für neue benutzerdefinierte Registerkarte starten" ist recht selbsterklärend: Es handelt sich um eine Verknüpfung, mit der nach dem Speichern des Stellenobjekts der Registerkartenassistent gestartet werden kann. Dies erspart uns einige Mausklicks, wenn wir wissen, dass wir eine Registerkarte benötigen. Alles festgelegt? Dann lassen Sie uns fortfahren und nun unser benutzerdefiniertes Objekt "Position" (Stelle) speichern. Das ist schon alles. Wie versprochen wird anstatt der Liste der benutzerdefinierten Objekte, die wir normalerweise sehen würden, der Assistent für neue Stellenregisterkarten angezeigt. Nehmen wir uns einen Augenblick Zeit, um darüber zu sprechen, warum wir überhaupt eine Registerkarte für unser Stellenobjekt definieren sollten. Was bringen Registerkarten überhaupt? Einführung zu Registerkarten Wenn Sie mit der Force.com-Plattform vertraut sind, wissen Sie, dass Sie in einer Anwendung navigieren, indem Sie auf Registerkarten klicken. Alle Registerkarten dienen als Ausgangspunkt für Anzeige, Bearbeitung und Eingabe von Informationen für ein bestimmtes Objekt. Wenn Sie oben auf der Seite auf eine Registerkarte klicken, wird die zugehörige Startseite für das betreffende Objekt angezeigt. Wenn Sie beispielsweise auf die Registerkarte "Accounts" klicken, wird die Registerkartenstartseite "Accounts" angezeigt. Von hier aus können Sie auf alle Accountdatensätze zugreifen, die in Ihrer Organisation definiert sind. Klicken Sie auf den Namen eines bestimmten Accountdatensatzes, um alle Informationen zu dem Datensatz auf der zugehörigen Detailseite anzuzeigen. Eine besonders leistungsstarkes Merkmal der Anwendungserstellung mit der Plattform ist, dass Sie benutzerdefinierte Registerkarten erstellen können, die genau so aussehen und funktionieren wie Registerkarten für bereits vorhandene Standardobjekte. Aus der Sicht Ihrer Endbenutzer fügen sich Ihre Anpassungen absolut nahtlos ein und Sie als Entwickler müssen nichts dafür tun, damit es auf diese Weise funktioniert! Mal sehen, wie schnell wir eine Registerkarte für unser Objekt "Position" (Stelle) erstellen können. 52 Kapitel 4: Erstellen einer einfachen Anwendung Probieren Sie es aus: Definieren der Registerkarte "Positions" (Stellen) Zum Erstellen einer Registerkarte für das Objekt "Position" (Stelle) verwenden wir den Assistenten für neue benutzerdefinierte Registerkarten. Dieser wurde gestartet, nachdem wir nach dem Definieren des Objekts auf Speichern geklickt hatten. Sollten Sie vergessen haben, die Option Nach dem Speichern dieses benutzerdefinierten Objekts den Assistenten für neue benutzerdefinierte Registerkarte starten auszuwählen, oder wenn Sie Ihre zuvor gespeicherte Arbeit fortsetzen möchten, keine Sorge! Sie können den Assistenten auch auf eine andere Weise starten. 1. Klicken Sie unter "Setup" auf Erstellen > Registerkarten. 2. Klicken Sie im Bereich "Registerkarten für benutzerdefiniertes Objekt" auf Neu. Ganz einfach. Jetzt, da wir alle die gleiche Seite aufgerufen haben, wollen wir mit der Arbeit im Assistenten beginnen. 3. Wählen Sie in der Dropdownliste Objekt den Eintrag "Position" (Stelle) aus. Wenn Sie den Assistenten direkt nach dem Definieren des benutzerdefinierten Objekts gestartet haben, wurde das Objekt "Position" (Stelle) bereits automatisch ausgewählt. 4. Klicken Sie auf das Registerkartenstil, um die Auswahlliste für den Registerkartenstil anzuzeigen, wie im folgenden Screenshot zu sehen. Jedes als Registerkarte angezeigte Objekt muss über ein eindeutiges Farbschema und ein eindeutiges Symbol verfügen. Mit diesem Farbschema wird das Objekt nicht nur auf der entsprechenden Registerkarte, sondern auch an anderen Stellen auf der Benutzeroberfläche identifiziert. 53 Kapitel 4: Erstellen einer einfachen Anwendung Abbildung15: Setup-Seite "Registerkarte für benutzerdefiniertes Objekt" und "Auswahlliste für Registerkartenstil" Unter "Auswahlliste für Registerkartenstil" können Sie entweder eine vordefinierte Farbe und ein vordefiniertes Symbol auswählen oder selbst welche erstellen. Um alles einfach zu halten, wählen wir einen bereits vorhandenen Stil aus. 5. Klicken Sie auf den Link Stile ausblenden, die auf anderen Registerkarten verwendet werden, um sicherzustellen, dass ein eindeutiger Stil verwendet wird. 6. Klicken Sie auf ein beliebiges Farbfeld, um ein Farbschema und ein Symbol auszuwählen. Belassen Sie die Einstellung für die Dropdownliste Benutzerdefinierter Link für Vorschaltseite bei --Keine--. Im Abschnitt Jenseits der Point-and-Click-Anwendungsentwicklung auf Seite 393 wird das Thema benutzerdefinierte Links genauer behandelt. 7. Geben Sie in das Feld Beschreibung folgenden Text ein: A tab and color scheme for the Position custom object. (Ein Schema für Registerkarten und Farben für das benutzerdefinierte Objekt "Position" (Stelle).) 8. Klicken Sie auf Weiter. 54 Kapitel 4: Erstellen einer einfachen Anwendung 9. Klicken Sie erneut auf Weiter, um die standardmäßige Sichtbarkeit für Benutzerprofile zu übernehmen. So, wie wir den Zugriff auf unsere Personalbeschaffungsanwendung durch die Auswahl von Benutzerprofilen im Assistenten für neue benutzerdefinierte Anwendungen gesteuert haben, können wir nun auch hier den Zugriff auf die Registerkarte "Positions" (Stellen) durch die Auswahl von Benutzerprofilen steuern. Im Abschnitt Einrichten von Sicherheit und Freigabe für Daten auf Seite 175 werden Benutzerprofile und ihre Auswirkungen genauer behandelt. Im Moment sollten Sie sich einfach merken, dass die Registerkarte durch Auswahl der Standardeinstellungen für alle Benutzer sichtbar ist. 10. Deaktivieren Sie alle Kontrollkästchen unter Registerkarte hinzufügen mit Ausnahme des Kontrollkästchens für unsere Personalbeschaffungsanwendung. Mit diesem Schritt erteilen wir nur Personen Zugriff auf die Registerkarte "Positions" (Stellen), die auch über Zugriff auf unsere Personalbeschaffungsanwendung verfügen. Mitarbeiter, die sich nicht für die Personalbeschaffung interessieren, müssen diese Registerkarte wahrscheinlich nicht anzeigen können. 11. Aktivieren Sie das Kontrollkästchen Fügen Sie die Registerkarte den bestehenden Anpassungen der Benutzer hinzu. Wenn Sie diese Option nicht auswählen, wird Benutzern, die die Anzeige ihrer Registerkarten personalisiert haben, nicht direkt die Registerkarte "Positions" (Stellen) angezeigt. Zudem müssen Sie zuerst die vorhandene Registerkarte löschen und anschließend nach Aktivierung dieser Option neu erstellen, wenn Sie bereits eine neue Registerkarte erstellt haben, ohne diese Option zu aktivieren, und die Registerkarte automatisch an vorhandene Benutzer senden möchten. Wie umständlich! Tun Sie sich selbst einen Gefallen und lassen Sie diese Option immer aktiviert. 12. Klicken Sie auf Speichern. Bei der Aktualisierung der Seite werden Sie feststellen, dass die Registerkarte "Positions" (Stellen) automatisch oben auf der Seite neben der Registerkarte "Startseite" hinzugefügt wurde. Rekapitulation Um wirklich würdigen zu können, was wir soeben mit einigen Mausklicks erstellt haben, sollten wir uns unsere Arbeit ansehen. 1. Klicken Sie zunächst auf die Registerkarte "Positions" (Stellen), um die Startseite dieser Registerkarte aufzurufen, wie im folgenden Screenshot zu sehen. Auch wenn die Liste leer ist, da wir noch keine Datensätze erstellt haben, so können Sie doch 55 Kapitel 4: Erstellen einer einfachen Anwendung einen Eindruck davon gewinnen, wie diese Seite zum Ausgangspunkt für das Anzeigen, Erstellen, Bearbeiten und Löschen aller Stellen in unserer Personalbeschaffungsanwendung dienen kann. Sie sieht genau so aus, wie die Registerkarten-Startseite von Standardobjekten. Abbildung16: Die Startseite der Registerkarte "Positions" (Stellen) 2. Betrachten Sie nun die Inhalte der Dropdownliste Neu erstellen... in der linken Randleiste. Wie versprochen, wurde unser benutzerdefiniertes Objekt nahtlos in die Plattform integriert, zusammen mit den anderen Standardobjekten wie "Ereignis" und "Aufgabe". Endbenutzer brauchen nie zu erfahren, dass die Registerkarte "Positions" (Stellen) mit einem benutzerdefinierten Objekt erstellt wurde, da sie einfach neben den Standardobjekten angezeigt wird. 3. Wählen Sie "Position" (Stelle) in der Dropdownliste Neu erstellen... aus oder klicken Sie auf der Startseite der Registerkarte "Positions" (Stellen) auf Neu. Und schon haben wir die Bearbeitungsseite für die Stelle. Leider gibt es bei unserer Stelle noch immer nicht viel Platz für Daten. Bislang haben wir lediglich ein Feld für Position Title (Stellentitel) – den Datensatzkennzeichner – und Inhaber, ein Standardfeld, das bei jedem Objekt angezeigt wird, um den Benutzer anzugeben, der das Objekt erstellte. 4. Klicken Sie auf Abbrechen. Es hat nicht viel Sinn, einen Stellendatensatz zu erstellen, der so gut wie keine interessanten Daten enthält. Wir brauchen mehr Felder! Und genau darum kümmern wir uns als Nächstes. Zunächst jedoch kehren wir zu unserem benutzerdefinierten Objekt "Position" (Stelle) zurück und verschaffen uns einen Überblick darüber, welche weiteren Möglichkeiten uns die Detailseite für ein benutzerdefiniertes Objekt im Setup-Bereich bietet. 5. Beachten Sie das Pfeilsymbol ( ) rechts auf der Seite. Klicken Sie darauf, um das Force.com-Schnellzugriffsmenü zu öffnen. Beim Erstellen von Anwendungen erleichtert das Schnellzugriffsmenü den Wechsel zwischen Objektdatensätzen und Setup-Seiten. Dieses Menü wird auf den Listenseiten und der Datensatz-Detailseite für jedes Objekt angezeigt. Sie können also problemlos zu den Setup-Seiten für ein 56 Kapitel 4: Erstellen einer einfachen Anwendung Objekt und den zugehörigen Registerkarten, Feldern usw. springen. Sie erhalten in Kürze die Gelegenheit, das Schnellzugriffsmenü auszuprobieren. Abbildung17: Force.com-Schnellzugriffsmenü Anmerkung: Sie können dieses Menü sehen, da Sie über die Berechtigung "Anwendung anpassen" verfügen, mit der Sie Anwendungen, Objekte, Registerkarten und Felder erstellen können. Für Benutzer, die keine Anwendungen erstellen, wie diejenigen mit dem Profil "Standardbenutzer", ist dieses Menü nicht sichtbar. Setup-Detailseiten und Themenlisten Aus der ersten Einführung zum Konzept der Objekte wissen Sie: “Unabhängig davon, ob es sich um Standardobjekte oder benutzerdefinierte Objekte handelt – die Objekte der Plattform Force.com stellen nicht nur eine Struktur zum Speichern von Daten bereit, sondern sie stellen auch leistungsstarke Benutzeroberflächenelemente zur Verfügung, über die Benutzer mit den Daten arbeiten können, wie beispielsweise Registerkarten, Layouts von Feldern auf einer Seite und Listen mit verwandten Datensätzen. Wenn Sie genau aufgepasst haben, fragen Sie sich möglicherweise, warum wir bei der Erstellung unseres Objekts "Position" (Stelle) keine Felder (mit Ausnahme des Kennzeichnerfelds für den Stellentitel) oder Benutzeroberflächenelemente (mit Ausnahme der Registerkarte "Positions" (Stellen)) definiert haben. Wenn Felder und Benutzeroberflächenelemente ein wichtiger Bestandteil in der Definition von benutzerdefinierten Objekten sind, wann werden sie definiert? Dies liegt daran, dass auf der Force.com-Plattform ein Unterschied zwischen der ersten Erstellung bestimmter Komponenten und den Details für diese Komponenten besteht. Anders ausgedrückt: Die Informationen, die wir beim Definieren oder Bearbeiten eines benutzerdefinierten Objekts angezeigt bekommen, unterscheiden sich von denen, die wir 57 Kapitel 4: Erstellen einer einfachen Anwendung sehen, wenn wir ein bereits definiertes benutzerdefiniertes Objekt anzeigen. Kehren wir zurück zur Listenseite "Benutzerdefinierte Objekte", um festzustellen, ob dieser Unterschied auf der Benutzeroberfläche der Plattform wiedergegeben wird. 1. Klicken Sie unter "Setup" auf Erstellen > Objekte. Hier sind wir wieder auf der Listenseite des benutzerdefinierten Objekts. Wie Sie sehen, können Sie in der Zeile für "Position" (Stelle) auf drei Links klicken. Bearbeiten Über diesen Link gelangen wir zurück zur Bearbeitungsseite für das benutzerdefinierte Objekt, auf der wir ursprünglich unser Objekt "Position" (Stelle) definiert haben. Löschen Mit diesem Link wird das benutzerdefinierte Objekt einschließlich aller Datensätze, Registerkarten, Berichte oder sonstigen Komponenten gelöscht, die dem Objekt zugeordnet sind. Position (Stelle) Über diesen Link gelangen wir zur Detailseite für das benutzerdefinierte Objekt "Position" (Stelle). Abbildung18: Listenseite für das benutzerdefinierte Objekt: Links "Bearbeiten", "Löschen" und "Detail" Die Bearbeitungsseite kennen wir bereits von der Definition des Objekts "Position" (Stelle) und wir möchten unser Objekt natürlich nicht löschen. Fahren wir mit dem Öffnen der Detailseite fort, um festzustellen, welche Vorgänge wir hier ausführen können. 2. Klicken Sie auf Position (Stelle). 58 Kapitel 4: Erstellen einer einfachen Anwendung Wie Sie nun sehen können, war die Bearbeitungsseite "Benutzerdefiniertes Objekt", auf der wir bei der Definition des Objekts "Position" (Stelle) Eintragungen vorgenommen haben, nur die Spitze des Eisbergs. Die oberen beiden Bereiche der Detailseite "Position" (Stelle) enthalten alle Information, die wir ursprünglich eingegeben haben, und darüber hinaus einige Standardfelder, die auf der Plattform für jedes Objekt eingefügt werden. Unterhalb dieser Bereiche befinden sich mehrere Datengruppen, mit denen wir unser Objekt "Position" (Stelle) weiter bearbeiten können. Auf der Plattform Force.com werden diese Datengruppen als Themenlisten bezeichnet. Sie tragen in hohem Maße zur Leistungsfähigkeit der Plattform bei. Eine Themenliste ist eine Liste mit Datensätzen oder anderen Komponenten, die den angezeigten Daten zugeordnet sind. Themenlisten werden sowohl in der Hauptanwendung als auch in den Setup-Bereichen angezeigt und stellen eine Beziehung zwischen den in der Themenliste angezeigten Elementen und dem im Detailbereich angezeigten Objekt oder Datensatz dar. Auf Beziehungen wird im Abschnitt Erweitern der einfachen Anwendung durch Beziehungen auf Seite 117 genauer eingegangen. Vorerst genügt es, wenn Sie sich merken, dass sich alle Informationen, die in der Themenliste eines bestimmten Objekts angezeigt werden, direkt auf das Objekt beziehen. Jetzt haben wir herausgefunden, wo wir mit der Anpassung des benutzerdefinierten Objekts "Position" (Stelle) fortfahren können. Verwenden wir also die Themenlisten unter "Benutzerdefinierte Felder & Beziehungen", um einige weitere Felder im Objekt "Position" (Stelle) zu erstellen. Abbildung19: Detailseite für das benutzerdefinierte Objekt "Position" (Stelle) 59 Kapitel 4: Erstellen einer einfachen Anwendung Einführung zu Feldern Nun sind wir bereit, dem benutzerdefinierten Objekt "Position" (Stelle) weitere Felder hinzuzufügen. Zunächst soll jedoch kurz besprochen werden, was Felder sind und welche Rolle sie auf der Force.com-Plattform spielen. Wie im letzten Kapitel erläutert, ähnelt ein Feld einer Spalte in einer Datenbank. Die wichtigste Eigenschaft eines Felds ist sein Datentyp. Einige Felder enthalten Textwerte, während andere Währungen, Prozentsätze, Telefonnummern, E-Mail-Adressen oder Daten enthalten. Einige Felder sehen aus wie Kontrollkästchen, wiederum andere sind Dropdownlisten oder nachgeschlagene Datensätze, in denen der Benutzer eine Auswahl trifft. Über den Datentyp eines Felds wird gesteuert, wie das Feld letztendlich auf der Benutzeroberfläche angezeigt wird und wie die in das Feld eingegebenen Daten auf der Plattform gespeichert werden. Damit Sie ein besseres Gefühl für die Darstellung von Feldern erhalten, werfen wir einen kurzen Blick auf die endgültige Darstellung des Objekts "Position" (Stelle) und auf die benutzerdefinierten Felder, die wir dafür erstellen werden: 60 Kapitel 4: Erstellen einer einfachen Anwendung Abbildung20: Benutzerdefinierte Objektfelder für "Position" (Stelle) Hier müssen zahlreiche Felder definiert werden. Einige davon sind recht komplex, andere einfacher. Um alles einfach zu halten, erstellen wir schrittweise die einfachen Text-, Währungs-, Kontrollkästchen- und Datumsfelder. Die komplexeren Felder mit Auswahllisten und benutzerdefinierten Formeln betrachten wir später im Abschnitt Erweitern der einfachen Anwendung mit erweiterten Feldern, Datenvalidierung und Seitenlayouts auf Seite 71. Probieren Sie es aus: Hinzufügen von Textfeldern Zuerst definieren wir einige Textfelder. Wir haben bereits bei der Definition unseres benutzerdefinierten Objekts "Position" (Stelle) ein einfaches Textfeld für Position Title (Stellentitel) erstellt. Wenn wir unseren Screenshot betrachten, verbleiben ausschließlich Textfelder unter der Überschrift "Beschreibung". Wir beginnen mit der Definition des Felds Job Description (Tätigkeitsbeschreibung). 61 Kapitel 4: Erstellen einer einfachen Anwendung 1. Klicken Sie unter "Setup" auf Erstellen > Objekte. 2. Klicken Sie auf Position (Stelle). 3. Klicken Sie in der Themenliste "Benutzerdefinierte Felder & Beziehungen" auf Neu. Immer wenn Sie ein benutzerdefiniertes Feld erstellen, wählen Sie zuerst auf der Seite für die Auswahl des Feldtyps einen Datentyp aus. Auf der Plattform können wir zwischen verschiedenen Arten von Textfeldern wählen. • • • • • In einfache Textfelder können Benutzer eine beliebige Kombination aus Buchstaben oder Zahlen in einer Zeile mit bis zu 255 Zeichen eingeben. Textbereichsfelder verfügen ebenfalls über eine Längenbeschränkung von 255 Zeichen, es sind allerdings auch Wagenrückläufe zulässig, sodass der Text in separaten Zeilen formatiert werden kann. In lange Textfelder können sogar bis zu 32.768 Zeichen in einzelnen Zeilen eingegeben werden. In Rich-Text-Felder können Benutzer bis zu 32.768 Zeichen formatierten Text einschließlich Bildern und Hyperlinks einfügen. In verschlüsselte Textfelder können Benutzer eine beliebige Kombination aus Buchstaben und Zahlen (bis zu 175 Zeichen) eingeben, die in verschlüsselter Form gespeichert wird. Da Tätigkeitsbeschreibungen relativ lang sein können, wählen wir ein langes Textfeld aus. 4. Wählen Sie den Datentyp Textfeld (Lang) aus und klicken Sie auf Weiter. Tipp: Überlegen Sie sich genau, welchen Datentyp Sie für die einzelnen benutzerdefinierten Felder auswählen, da es schwierig und umständlich ist, den Datentyp nachträglich zu ändern. Detaillierte Informationen hierzu finden Sie in der Salesforce-Hilfe im Abschnitt "Hinweise zum Ändern benutzerdefinierter Feldtypen". Auf der zweiten Seite im Assistenten für benutzerdefinierte Felder können wir Details zu unserem langen Textfeld eingeben. Die in diesem Schritt angezeigten Felder variieren je nach Datentyp, den wir auf der vorherigen Seite ausgewählt haben. 5. Geben Sie im Textfeld Feldbezeichnung Job Description (Tätigkeitsbeschreibung) ein. Wie auch bei den anderen Bezeichnungen, die wir auf der Plattform bisher kennen gelernt haben, wird durch Feldbezeichnung der Text angegeben, der auf der Benutzeroberfläche dargestellt wird. Beachten Sie Folgendes: Wenn wir einen Wert für Feldbezeichnung eingeben, wird für Feldname automatisch der gleiche Text eingefügt, wobei jedoch alle Leerzeichen und Satzzeichen automatisch durch Unterstriche ersetzt werden. Der Wert für Feldname ist ein eindeutiger Name, der in benutzerdefinierten Formeln oder bei der Verwendung der API verwendet wird. 62 Kapitel 4: Erstellen einer einfachen Anwendung Anmerkung: Auf der Plattform wird der Feldname mit dem angehängten Suffix __c gespeichert (Beispiel: Job_Description__c). Damit wird angegeben, dass es sich um ein benutzerdefiniertes Feld handelt. Im Feld Länge können wir die Anzahl der maximal zulässigen Zeichen einschränken. Da uns eine solche Einschränkung an dieser Stelle nichts nützt, belassen Sie diesen Wert bei 32.768. 6. Geben Sie in das Feld Länge 32.768 ein. 7. Geben Sie im Feld Anzahl sichtbarer Zeilen den Wert 3 ein. In diesem Feld können wir angeben, wie groß unser Textfeld auf der Seite dargestellt werden soll. 8. Geben Sie in den Feldern Beschreibung und Hilfetext Folgendes ein: High-level description of the job and its duties (Allgemeine Beschreibung der Stelle und der damit verbundenen Aufgaben). Während die Beschreibung nur in den Details zu diesem benutzerdefinierten Feld im Setup angezeigt wird, wird dieser Hilfetext auf Datensatz-Detailseiten und Bearbeitungsseiten angezeigt, wenn die Benutzer den Mauszeiger über die Feldbezeichnung bewegen. Er soll die Benutzer beim richtigen Ausfüllen des Felds unterstützen. Hilfetext für ein Feld kann optional hinzugefügt werden, es ist aber auf jeden Fall empfehlenswert, wenn Sie Felder verwenden, die für die Benutzer verwirrend sein könnten. Für ein Textfeld gibt es keinen eindeutigen Standardwert, also lassen Sie den Eintrag für Standardwert einfach leer. 9. Klicken Sie auf Weiter. Auf der dritten Seite im Assistenten für benutzerdefinierte Felder können wir den Zugriff auf dieses Feld für bestimmte Benutzerprofile einschränken. Näheres zu Profilen und zur Sicherheit auf Feldebene erfahren wir im Abschnitt Sichern und Freigeben von Daten auf Seite 175, also übernehmen Sie für den Moment einfach die Standardeinstellungen. 10. Klicken Sie auf Weiter. Auf der letzten Seite im Assistenten für benutzerdefinierte Felder können wir unser Feld automatisch auf dem Seitenlayout für die Stelle platzieren. Auf Seitenlayouts wird im nächsten Kapitel genauer eingegangen, also übernehmen wir vorläufig wieder die Standardeinstellungen. 11. Klicken Sie auf Speichern & Neu. Wenn Sie auf Speichern klicken, müssen Sie immer erneut zur Detailseite für das Objekt "Position" (Stelle) zurückkehren. Wenn Sie stattdessen auf Speichern und Neu klicken, sparen 63 Kapitel 4: Erstellen einer einfachen Anwendung Sie ein paar Klicks und wir können die anderen benötigten Textfelder fertig stellten. Hier finden Sie alles, was Sie wissen müssen, um sie zu definieren. Tabelle2: Felder mit langen Textbereichen für das Objekt "Position" (Stelle) Datentyp Feldbezeichnung Länge Anzahl Standardwert sichtbarer Zeilen Textbereich (lang) Responsibilities 32,768 (Zuständigkeiten) 3 Nicht angeben Textbereich (lang) Skills Required (Erforderliche Fähigkeiten) 32,768 3 Nicht angeben Textbereich (lang) Educational 32,768 Requirements (Ausbildungsvoraussetzungen) 3 Nicht angeben Nun haben wir bereits ein paar Textfelder kennen gelernt, also erstellen wir schnell noch ein paar Felder mit anderen Datentypen. Sie werden feststellen, dass sie sich mit einigen wenigen Ausnahmen untereinander sehr ähneln. Probieren Sie es aus: Hinzufügen von Währungsfelder Damit wir über den Gehaltsbereich für eine bestimmte Stelle auf dem Laufenden bleiben, müssen wir zwei Währungsfelder hinzufügen: Min Pay (Mindestgehalt) und Max Pay (Höchstgehalt). Beachten Sie, dass der Datentyp dieser Felder, anders als bei anderen Feldern, nicht mehr geändert werden kann, wenn er einmal definiert wurde. Währungsfelder werden fast genauso definiert wie Textfelder. Es gibt nur ein paar geringfügige Unterschiede. • • 64 Die Länge eines Währungsfelds entspricht der Anzahl der Ziffern links neben dem Dezimaltrennzeichen. Über das zusätzliche Feld Dezimalstellen wird die Anzahl der Ziffern bestimmt, die rechts vom Dezimaltrennzeichen angezeigt werden sollen. Im Assistenten auf der Seite "Details" wird ein neues Kontrollkästchen namens Erforderlich angezeigt. Wir können diese Option auswählen, wenn wir die Benutzer dazu zwingen möchten, beim Erstellen einer neuen Stelle einen Wert für dieses Feld einzugeben. Kapitel 4: Erstellen einer einfachen Anwendung Alles andere sollte Ihnen vertraut sein, also fahren Sie fort und definieren Sie folgende Felder mithilfe des Assistenten für benutzerdefinierte Felder: Tabelle3: Währungsfelder für das Objekt "Position" (Stelle) Datentyp Feldbezeichnung Länge Dezimalstellen Erforderlich Standardwert Währung Min Pay 7 (Mindestgehalt) 2 Deaktiviert lassen Nicht angeben Währung Max Pay 7 (Höchstgehalt) 2 Deaktiviert lassen Nicht angeben Probieren Sie es aus: Hinzufügen von Kontrollkästchenfeldern Hier einige einfache Aufgaben. Für das Objekt "Position" (Stelle) sind einige Kontrollkästchenfelder erforderlich: eines, um festzulegen, ob für die Stelle Reisen erforderlich sind, und vier weitere, um anzugeben, welche Programmiersprachen erforderlich sind. Diese Werte sollten standardmäßig deaktiviert sein. (Beachten Sie, dass Sie den Feldtyp, ähnlich wie bei Währungsfeldern, nicht mehr ändern können, wenn Sie ein Feld als Kontrollkästchen festlegen.) Definieren Sie folgende Felder mithilfe des Assistenten für benutzerdefinierte Felder. Tabelle4: Kontrollkästchenfelder für das Objekt "Position" (Stelle) Feldtyp Feldbezeichnung Standardwert Kontrollkästchen Travel Required (Reise erforderlich) Deaktiviert Kontrollkästchen Java Deaktiviert Kontrollkästchen JavaScript Deaktiviert Kontrollkästchen C# Deaktiviert Kontrollkästchen Apex Deaktiviert 65 Kapitel 4: Erstellen einer einfachen Anwendung Probieren Sie es aus: Hinzufügen von Datumsfeldern Schließlich, bevor wir dieses Kapitel beenden, fügen wir unserer Personalbeschaffungsanwendung drei Datumsfelder hinzu, mit denen das Datum für den Beginn der Stellenausschreibung, das Datum für das Ende der Stellenausschreibung und das Datum, an dem die Stelle neu besetzt werden sollte, festgelegt werden können. Datumsfelder sind hervorragend, da sie über eine Popup-Kalender-Funktion verfügen, über die Benutzer ein Datum ganz ohne Tippen auswählen können. Dies ist eine weitere integrierte Funktion, die wir in unserer Anwendung ohne zusätzlichen Aufwand nutzen können. Auch hier verwenden wir wieder den Assistenten für benutzerdefinierte Felder, um die folgenden drei Felder zu definieren: Tabelle5: Datumsfelder für das Objekt "Position" (Stelle) Feldtyp Feldbezeichnung Erforderlich Standardwert Datum Open Date (Offen von) Deaktiviert Nicht angeben Datum Hire By (Einstellen bis) Deaktiviert Nicht angeben Datum Close Date (Offen bis) Deaktiviert Nicht angeben Rekapitulation Wir haben Text-, Währungs-, Kontrollkästchen- und Datumsfelder für unser Objekt "Position" (Stelle) definiert. Werfen wir einen Blick darauf, indem wir die Registerkarte "Positions" (Stellen) aufrufen und auf Neu klicken. 66 Kapitel 4: Erstellen einer einfachen Anwendung Abbildung21: Felder für das Objekt "Position" (Stelle) Sehen Sie sich all die Felder an, die wir gerade erstellt haben. Alle Felder wurden der Seite in der Reihenfolge hinzugefügt, in der wir sie erstellt haben. und das Layout passen wir zu einem späteren Zeitpunkt eventuell noch an, aber es funktioniert auf jeden Fall. War das nicht einfach? Erstellen der mobilen Version unserer einfachen Anwendung Erinnern Sie sich noch an die bereits erwähnte mobile Anwendung? Salesforce1 stellt eine Verbindung zu Ihrer Salesforce-Organisation her und stellt all Ihre Anpassungen und Daten über eine speziell für Mobilgeräte geeignete Benutzeroberfläche zur Verfügung. Das bedeutet, dass alle Vorgänge, die Sie auf der vollständigen Site ausführen, automatisch in dieser mobilen Anwendung wiedergegeben werden, sodass Ihre Benutzer von überall aus Zugriff auf die Informationen haben, die sie benötigen! Dies ist besonders für unsere Personalbeschaffungsmitarbeiter hilfreich, die manchmal reisen müssen, um die am besten geeigneten Bewerber für die offenen Stellen bei Universal Containers zu finden. Sehen wir 67 Kapitel 4: Erstellen einer einfachen Anwendung uns also an, wie die Registerkarte "Positions" (Stellen) und ihre Felder in der mobilen Version aussehen. Bevor wir loslegen, vergewissern Sie sich, dass Sie Zugriff auf Salesforce1 haben. Der Zugriff erfolgt entweder über eine herunterladbare Anwendung oder über die Anwendung für mobile Browser. • • Wenn Sie die herunterladbare Anwendung verwenden möchten, rufen Sie www.salesforce.com/mobile auf und wählen Sie die richtige Plattform für Ihr Gerät aus, um Salesforce1 direkt auf Ihr Gerät herunterzuladen. Wenn Sie die Anwendung für mobile Browser verwenden möchten, navigieren Sie in Ihrem mobilen Browser zu login.salesforce.com. Salesforce erkennt, dass Sie auf einem mobilen Gerät arbeiten, und leitet Sie automatisch zur Salesforce1-Anwendung für mobile Browser weiter. 1. Öffnen Sie Salesforce1 auf Ihrem mobilen Gerät. 2. Geben Sie Ihre Salesforce-Anmeldeinformationen ein und tippen Sie auf Bei Salesforce anmelden. Beachten Sie, dass die Registerkarte "Startseite" hier nicht vorhanden ist. Bei unserer aktuellen Konfiguration wird den Benutzern zuerst der erste Eintrag im Navigationsmenü angezeigt. Wie Sie auswählen können, welche Seite beim ersten Öffnen von Salesforce1 angezeigt wird, wird später im Abschnitt Analysieren von Daten mit Berichten und Dashboards auf Seite 341 erklärt. 3. Tippen Sie auf , um das Navigationsmenü zu öffnen. Jetzt ist ein guter Zeitpunkt, über die Funktionsweise von Anwendungen und Registerkarten in Salesforce1 zu sprechen. Wir haben bereits gelernt, dass jede Registerkarte durch einen Menüeintrag im Abschnitt der zuletzt verwendeten Elemente im Salesforce1-Navigationsmenü dargestellt wird. Salesforce-Anwendungen, wie beispielsweise die Vertriebsanwendung oder benutzerdefinierte Anwendungen, werden in Salesforce1 nicht angezeigt, da die mobile Anwendung ermittelt, welche Datensätze Sie am häufigsten aufrufen. Anstatt die Registerkarten, die ein Benutzer häufig anzeigt, über das Force.com-Anwendungsmenü anzupassen, werden die intelligenten Suchelemente im Abschnitt der zuletzt verwendeten Elemente entsprechend dem Verlauf der zuletzt vom Benutzer verwendeten Objekte neu angeordnet. Da unsere Organisation neu ist und wir noch keine Daten hinzugefügt haben, werden vorerst die Standardobjekte angezeigt: "Accounts", "Kundenvorgänge", "Kontakte", "Dateien", "Leads" und "Opportunities". Unser benutzerdefiniertes Objekt wird in dieser Liste nicht angezeigt. Sehen wir uns also die ganze Liste der intelligenten Suchelemente an. 4. Tippen Sie auf Mehr anzeigen. 68 Kapitel 4: Erstellen einer einfachen Anwendung 5. Tippen Sie auf Positions (Stellen). 6. Tippen Sie auf Neu, um festzustellen, wie unsere Felder in Salesforce1 aussehen. Genau wie in der vollständigen Site sind alle von uns erstellten Felder hier vorhanden und wir können ganz leicht eine neue Stelle über unser Mobilgerät erstellen. Das bedeutet, dass wir keine doppelte Arbeit haben, um unseren Benutzern eine angenehme mobile Erfahrung bieten zu können. Es funktioniert! Abbildung22: Seite zum Erstellen einer Stelle in Salesforce1 Hier zeigen sich erneut die leistungsstarken Funktionen der Force.com-Plattform. Zuerst haben wir eine neue Personalbeschaffungsanwendung mit einer einzigen Registerkarte "Startseite" erstellt. Anschließend haben wir das Objekt "Position" (Stelle) erstellt und jetzt haben wir einige Felder hinzugefügt. Und das alles mit nur einigen Klicks in weniger als 15 Minuten. Von Anfang bis Ende war unsere Anwendung voll funktionsfähig und wir mussten keine Zeit für das Kompilieren oder die Fehlersuche in unserem "Code" opfern. Im nächsten Kapitel optimieren wir unsere einfache Personalbeschaffungsanwendung noch weiter, indem wir zusätzliche, komplexere Felder hinzufügen, Validierungsregeln zur Bereinigung der Daten definieren, und die Felder anschließend im Seitenlayout verschieben, damit die Benutzer die erforderlichen Informationen leichter finden können. Weiter geht's! 69 Kapitel 5 Erweitern der einfachen Anwendung mit erweiterten Feldern, Datenvalidierung und Seitenlayouts Themen: • • • • • Hinzufügen von erweiterten Feldern Einführung in Validierungsregeln Überprüfen auf einem Mobilgerät Einführung in Seitenlayouts Einführung zu kompakten Layouts Im letzten Kapitel haben wir rasch eine funktionsfähige Version unserer Personalbeschaffungsanwendung erstellt, indem wir das benutzerdefinierte Objekt "Position" (Stelle), die zugehörige Registerkarte und mehrere einfache Felder definierten. Diese einfache Version unserer Anwendung wies dasselbe Erscheinungsbild auf wie alle anderen Seiten auf der Force.com-Plattform und wir konnten sie innerhalb weniger Minuten zusammenstellen. In diesem Kapitel erweitern wir die Registerkarte "Positions" (Stellen): Zunächst definieren wir einige erweiterte Felder, dann definieren wir ein paar Validierungsregeln, um sicherzustellen, dass unsere Daten sauber bleiben, und schließlich ändern wir die Position unserer Felder innerhalb eines Seitenlayouts. Diese Ergänzungen helfen uns dabei, die Detailseite unserer Registerkarte "Positions" (Stellen), die bisher recht kontrastarm und wenig elegant war, in eine leistungsstarke Benutzeroberfläche zu verwandeln, die intuitiv verwendbar ist. Legen wir also los. 71 Kapitel 5: Erweitern der einfachen Anwendung mit erweiterten Feldern, Datenvalidierung und Seitenlayouts Hinzufügen von erweiterten Feldern In diesem Abschnitt verwenden wir erneut den Assistenten für benutzerdefinierte Felder, um Felder mit komplexeren Funktionen zu erstellen: Auswahllisten, abhängige Auswahllisten und Felder, bei denen benutzerdefinierte Formeln genutzt werden. Wir sehen uns nun an, wie die Benutzeroberfläche der Plattform uns durch die Einrichtung dieser komplizierteren Felder führt. Einführung zu Auswahllisten Als wir die Vorschau betrachteten, in der zu sehen war, wie unsere Stellenseite letztlich aussehen soll, gab es dort mehrere Felder, die mit Dropdownlisten angegeben waren. In der Terminologie der Force.com-Plattform werden diese Felder als Auswahllisten bezeichnet und sie bestehen aus mehreren vordefinierten Optionen, aus denen ein Benutzer auswählen kann. Es gibt zwei Sorten von Auswahllisten: Standardauswahllisten, in denen der Benutzer nur eine einzige Option auswählen kann, und Mehrfachauswahllisten, in denen der Benutzer mehrere Optionen gleichzeitig auswählen kann. Für unser Stellenobjekt müssen wir Standardauswahllisten für Standort, Status, Stellentyp, Funktionsbereich und Stellenebene definieren. Abbildung23: Auswahllistenfeld "Location" (Standort) 72 Kapitel 5: Erweitern der einfachen Anwendung mit erweiterten Feldern, Datenvalidierung und Seitenlayouts Probieren Sie es aus: Hinzufügen von Auswahllisten Lassen Sie uns gemeinsam das Auswahllistenfeld Location (Standort) erstellen. Anschließend geben wir Ihnen, wie im vorangegangenen Kapitel, die Informationen an die Hand, die Sie benötigen, um die anderen Auswahllistenfelder alleine zu erstellen. 1. 2. 3. 4. 5. 6. Klicken Sie unter "Setup" auf Erstellen > Objekte. Klicken Sie auf Position (Stelle). Klicken Sie in der Themenliste "Benutzerdefinierte Felder & Beziehungen" auf Neu. Wählen Sie den Datentyp Auswahlliste aus und klicken Sie auf Weiter. Geben Sie im Textfeld Feldbezeichnung den Wert Location (Standort) ein. Geben Sie im großen Textbereichsfeld unmittelbar darunter die folgenden Auswahllistenwerte ein, jeden davon in einer eigenen Zeile: • • • • • • • • San Francisco, CA Austin, TX Boulder, CO London, England New York, NY Mumbai, India Sydney, Australia Tokyo, Japan 7. Aktivieren Sie das Kontrollkästchen Ersten Wert als Standardwert verwenden. Mit dieser Option können wir das Feld mit einem Standardwert ausfüllen. Wenn Sie die Option aktivieren, wird für das Feld standardmäßig der erste Wert verwendet, den Sie in der Liste der möglichen Auswahllistenwerte angeben. Anderenfalls wird in das Feld bei allen neuen Stellendatensätzen standardmäßig "Ohne" eingetragen. Da sich die meisten Stellen von Universal Containers in der Unternehmenszentrale in San Francisco, CA, befinden, sollte dies die Standardvorgabe sein. 8. Übernehmen Sie die restlichen Standardeinstellungen für Feldebenensicherheit und Seitenlayout. 9. Klicken Sie auf Speichern & Neu. Ganz einfach! Geben Sie nun die restlichen Auswahllisten gemäß der unten stehenden Tabelle an: 73 Kapitel 5: Erweitern der einfachen Anwendung mit erweiterten Feldern, Datenvalidierung und Seitenlayouts Tabelle6: Auswahllistenwerte für "Status", "Type" (Typ)", "Functional Area" (Funktionsbereich) und "Job Level" (Stellenebene) Datentyp Feldbezeichnung Auswahllistenwerte Alphabetisch Ersten Wert sortieren? als Standardwert verwenden? Auswahlliste Status Nein Ja Nein Nein Ja Nein New Position (Neue Stelle) Pending Approval (Genehmigung ausstehen) Open - Approved (Offen Genehmigt) Closed - Filled (Geschlossen - Besetzt) Closed - Not Approved (Geschlossen - Nicht genehmigt) Closed - Canceled (Geschlossen Zurückgezogen) Auswahlliste Type (Typ) Full Time (Vollzeit) Part Time (Teilzeit) Internship (Praktikum) Contractor (Leiharbeiter) Auswahlliste Functional Finance (Finanzen) Area Human Resources (Funktionsbereich) (Personalbereich) Information Technology (Informationstechnologie) Retail Operations (Privatkundengeschäft) 74 Kapitel 5: Erweitern der einfachen Anwendung mit erweiterten Feldern, Datenvalidierung und Seitenlayouts Datentyp Feldbezeichnung Auswahllistenwerte Alphabetisch Ersten Wert sortieren? als Standardwert verwenden? Warehousing (Lagerhaltung) Miscellaneous (Sonstiges) Auswahlliste Job Level FN-100 (Stellenebene) FN-200 Ja Nein FN-300 FN-400 HR-100 HR-200 HR-300 HR-400 IT-100 IT-200 IT-300 IT-400 RO-100 RO-200 RO-300 RO-400 WH-100 WH-200 WH-300 75 Kapitel 5: Erweitern der einfachen Anwendung mit erweiterten Feldern, Datenvalidierung und Seitenlayouts Datentyp Feldbezeichnung Auswahllistenwerte Alphabetisch Ersten Wert sortieren? als Standardwert verwenden? WH-400 MC-100 MC-200 MC-300 MC-400 Einführung zu Feldabhängigkeiten Nachdem wir nun alle diese Auswahllisten erstellt haben, sollten Sie über Folgendes nachdenken: Wie oft ist es schon vorgekommen, dass Sie auf eine Dropdownliste geklickt haben und der Ansicht waren, dass viel zu viele Werte zur Auswahl standen? Nehmen wir beispielsweise an, Sie hätten Uruguay aus einer Liste von Ländern ausgewählt und diese Liste hätte alle Länder der Welt enthalten. Sie hätten bis fast ganz nach unten, bis zu den Ländern, die mit "U" anfangen, scrollen müssen. Ganz schön lästig. Glücklicherweise waren die Entwickler der Force.com-Plattform selbst einige Male mit einer solchen Situation konfrontiert. Daher haben sie uns ein Tool an die Hand gegeben, mit dem wir dieses Problem bei unseren eigenen Auswahllistenfeldern vermeiden können: Feldabhängigkeiten. Feldabhängigkeiten sind Filter, mit denen wir die Inhalte einer Auswahlliste auf der Grundlage des Werts eines anderen Felds ändern können. Beispielsweise können wir, anstatt jeden Wert für "Land" in einer großen Auswahlliste anzuzeigen, die Anzahl der angezeigten Werte verringern, indem wir sie vom Wert eines anderen Felds, z. B. "Kontinent", abhängig machen. Auf diese Weise können die Benutzer schneller und einfacher das richtige Land finden. Auswahllistenfelder können entweder Steuerfelder oder aber abhängige Felder sein. Steuerfelder steuern die verfügbaren Werte in einem oder mehreren zugehörigen abhängigen Feldern. In abhängigen Feldern werden Werte basierend auf dem im zugehörigen Steuerfeld ausgewählten Wert anzeigt. In unserem letzten Beispiel ist "Kontinent" das Steuerfeld und die Auswahlliste "Land" das abhängige Feld. 76 Kapitel 5: Erweitern der einfachen Anwendung mit erweiterten Feldern, Datenvalidierung und Seitenlayouts Probieren Sie es aus: Erstellen einer abhängigen Auswahlliste Wenn wir einen Blick auf die Auswahllisten werfen, die wir erstellt haben, wird schnell offensichtlich, dass unsere Benutzer die Länge unserer Auswahlliste Job Level (Stellenebene) entnervend finden könnten. Erhöhen wir die Zufriedenheit unserer Benutzer, indem wir Job Level (Stellenebene) in ein abhängiges Feld der Auswahlliste Functional Area (Funktionsbereich) verwandeln. Dadurch können die Benutzer jeweils nur die vier relevanten Stellenebenen sehen, wenn eine Abteilung in der Auswahlliste Functional Area (Funktionsbereich) ausgewählt wurde: 1. Klicken Sie unter "Setup" auf Erstellen > Objekte. 2. Klicken Sie auf Position (Stelle). 3. Klicken Sie in der Themenliste "Benutzerdefinierte Felder & Beziehungen" auf Feldabhängigkeiten. 4. Klicken Sie auf Neu. 5. Wählen Sie in der Dropdownliste Steuerfeld den Eintrag "Functional Area" (Funktionsbereich) aus. 6. Wählen Sie in der Dropdownliste Abhängiges Feld die Option "Job Level" (Stellenebene) aus. 7. Klicken Sie auf Weiter. Es wird eine Feldabhängigkeitsmatrix angezeigt, bei der alle Werte im Steuerfeld in der Kopfzeile zu sehen sind und alle abhängigen Feldwerte in den zugehörigen Spalten aufgelistet sind. Für jeden möglichen Wert des Steuerfelds müssen wir die Werte angeben, die in der abhängigen Auswahlliste angezeigt werden sollen, wenn der betreffende Steuerwert ausgewählt wird. In der Feldabhängigkeitsmatrix sind die abhängigen Feldwerte, die für einen bestimmten Steuerfeldwert in der Auswahlliste enthalten sind, gelb hervorgehoben. 77 Kapitel 5: Erweitern der einfachen Anwendung mit erweiterten Feldern, Datenvalidierung und Seitenlayouts Abbildung24: Feldabhängigkeitsmatrix Um einen abhängigen Feldwert mit aufzunehmen, doppelklicken Sie einfach darauf. Um einen abhängigen Wert aus der Liste auszuschließen, doppelklicken Sie erneut darauf. Probieren wir dies aus, indem wir beispielsweise die Werte einschließen, die in der Auswahlliste Job Level (Stellenebene) angezeigt werden sollen, wenn in der Auswahlliste Functional Area (Funktionsbereich) "Finance" (Finanzen) ausgewählt wird: 8. Doppelklicken Sie in der Spalte "Finance "(Finanzen) auf "FN-100", "FN-200", "FN-300" und "FN-400". Diese Felder sollten nun in der Spalte Finance (Finanzen) gelb hinterlegt sein. Anstatt auf jeden einzelnen Wert fürJob Level (Stellenebene) doppelzuklicken, können wir auch mit UMSCHALT+Klicken einen Bereich von Werten oder mit STRG+Klicken mehrere Werte gleichzeitig auswählen. Sobald die gewünschten Werte blau hervorgehoben sind, können wir auf Werte einschließen klicken, um sie einzuschließen, bzw. auf Werte ausschließen, um sie zu entfernen. Probieren wir es aus. 9. Klicken Sie in der Spalte "Human Resources" (Personalbereich) einfach auf "HR-100" und klicken Sie dann bei gedrückter Umschalttaste auf "HR-400". 10. Klicken Sie auf Werte einschließen. Nun sind für die Spalte "Finance" (Finanzen) und die Spalte "Human Resources" (Personalbereich) Werte ausgewählt. 78 Kapitel 5: Erweitern der einfachen Anwendung mit erweiterten Feldern, Datenvalidierung und Seitenlayouts 11. Heben Sie nun die entsprechenden Werte für alle restlichen Spalten hervor, wie in der folgenden Tabelle beschrieben. Tipp: Um alle Werte aufzurufen, die Sie in diesem Schritt bearbeiten müssen, müssen Sie auf Zurück bzw. auf Weiter klicken, um zusätzliche Spalten anzuzeigen. Tabelle7: Abhängigkeitsmatrix für die Felder "Functional Area" (Funktionsbereich) und "Job Level" (Stellenebene) Functional Area (Funktionsbereich) Job Level (Stellenebene) (Steuerndes Auswahllistenfeld) (Abhängiges Auswahllistenfeld) Finance (Finanzen) FN-100 FN-200 FN-300 FN-400 Human Resources (Personalbereich) HR-100 HR-200 HR-300 HR-400 Information Technology (Informationstechnologie) IT-100 IT-200 IT-300 IT-400 Retail Operations (Privatkundengeschäft) RO-100 RO-200 RO-300 RO-400 79 Kapitel 5: Erweitern der einfachen Anwendung mit erweiterten Feldern, Datenvalidierung und Seitenlayouts Functional Area (Funktionsbereich) Job Level (Stellenebene) (Steuerndes Auswahllistenfeld) (Abhängiges Auswahllistenfeld) Warehousing (Lagerhaltung) WH-100 WH-200 WH-300 WH-400 Miscellaneous (Sonstiges) MC-100 MC-200 MC-300 MC-400 12. Klicken Sie auf Vorschau, um die Ergebnisse in einem kleinen Popup-Fenster zu testen. 13. Klicken Sie auf Speichern. Rekapitulation Nun, da wir alle diese Auswahllisten erstellt haben, sollten wir uns die Registerkarte "Positions" (Stellen) noch einmal ansehen, um festzustellen, was wir bis jetzt haben. 1. Rufen Sie die Registerkarte "Positions" (Stellen) auf. 2. Klicken Sie auf Neu. 3. Wählen Sie in der Auswahlliste Functional Area (Funktionsbereich) den Eintrag "Finance" (Finanzen) aus. 4. Öffnen Sie die Auswahlliste Job Level (Stellenebene). Abbildung25: Abhängige Auswahllistenfelder 80 Kapitel 5: Erweitern der einfachen Anwendung mit erweiterten Feldern, Datenvalidierung und Seitenlayouts Die Benutzer unserer Personalbeschaffungsanwendung werden sich freuen, dass sie sich nicht mehr mit einer lästig langen Auswahlliste herumschlagen müssen. Fügen wir nun ein Feld hinzu, das sogar noch leistungsfähiger und komplexer ist als eine abhängige Auswahlliste: ein benutzerdefiniertes Formelfeld. Einführung in benutzerdefinierte Formelfelder Bisher hatten alle Felder, die wir definierten, eines gemeinsam: Es war immer ein Benutzer erforderlich, um ihnen einen Wert zuzuweisen. Derartige Felder sind nützlich zum Speichern und Abrufen von Daten, aber wäre es nicht günstig, wenn wir irgendwie ein "intelligentes" Feld erstellen können? Beispielsweise wenn wir ein Feld definieren könnten, das die bereits in das System eingegebenen Informationen untersuchen und uns dann etwas Neues dazu sagen würde? Glücklicherweise bieten uns benutzerdefinierte Formelfelder genau diese Möglichkeit. So, wie Sie ein Tabellenkalkulationsprogramm, wie Microsoft Excel, verwenden können, um Berechnungen und Metriken zu definieren, die speziell für Ihren Betrieb relevant sind, können wir benutzerdefinierte Formelfelder verwenden, um Berechnungen und Metriken speziell für unsere Personalbeschaffungsanwendung zu definieren. Beispielsweise haben wir bereits für unser Objekt "Position" (Stelle) Felder für das Mindestund das Höchstgehalt erstellt. Wenn Universal Containers jährliche Boni vergibt, die auf dem Gehalt beruhen, könnten wir ein benutzerdefiniertes Formelfeld erstellen, mit dem automatisch der Durchschnittsbonus berechnet würde, den eine Person, die für die betreffende Stelle eingestellt würde, erhalten könnte. Wie würden wir diese Berechnung mit einer Tabellenkalkulation durchführen? Die Spalten in unserem Tabellenblatt stünden für die Felder, die wir auf unserem Stellenobjekt definiert hätten, und die einzelnen Zeilen des Tabellenblatts stünden jeweils für verschiedene Stellendatensätze. Um eine Berechnung zu erstellen, würden wir eine Formel in einer neuen Spalte eingeben, die den Durchschnitt aus den Werten von Min Pay (Mindestgehalt) und Max Pay (Höchstgehalt) in einer einzelnen Zeile berechnet und ihn dann mit einem Standard-Bonusprozentsatz multipliziert. Wir könnten dann den durchschnittlichen Bonus für alle Stellendatensatz-Zeilen in unserem Tabellenblatt ermitteln. Benutzerdefinierte Formeln funktionieren auf sehr ähnliche Weise. Stellen Sie sich eine benutzerdefinierte Formel wie eine Tabellenkalkulationsformel vor, die andere Werte im selben Datensatz referenzieren, Berechnungen dafür durchführen und ein Ergebnis zurückgeben kann. Anstatt Zellenverweise zu verwenden, verwenden Sie jedoch Briefvorlagenfelder, die als Platzhalter für Daten dienen, die durch Informationen aus Ihren Datensätzen, durch Benutzerinformationen oder durch Firmeninformationen ersetzt werden. Und anstatt Felder, Operatoren und Funktionen einzutippen, können Sie sie einfach durch Klicken auswählen. 81 Kapitel 5: Erweitern der einfachen Anwendung mit erweiterten Feldern, Datenvalidierung und Seitenlayouts Dadurch können die Benutzer im Handumdrehen lernen, wie Formelfelder erstellt werden. Und wie bei allen Plattform-Tools ist es dank des Bereitstellungsmodells über Cloud Computing problemlos möglich, nach Belieben zu experimentieren. Sie können Formeln erstellen, die Ergebnisse betrachten und dann die Formel immer wieder ändern – so oft Sie wollen. Ihre zugrunde liegenden Daten sind nie betroffen. Tipp: Weitere Anleitungen zum Erstellen benutzerdefinierter Formeln finden Sie unter http://www.salesforce.com/us/developer/docs/usefulFormulaFields/. Berechnung, wie lange eine Stelle offen ist bzw. war Befassen wir uns mit einem weiteren benutzerdefinierten Formelfeld, das wir für unser Objekt "Position" (Stelle) erstellen könnten: Ein benutzerdefiniertes Formelfeld, das berechnet, wie viele Tage eine Stelle offen ist bzw. war. Denken wir dazu zunächst darüber nach, welche Logik wir zur Definition des Felds verwenden sollten. Anschließend können wir uns mit seiner Erstellung in unserer Personalbeschaffungsanwendung befassen. Denken wir darüber nach, welche Daten wir für diese Berechnung benötigen: Wir müssen das aktuelle Datum wissen sowie das Datum, an dem die Stelle geschaffen wurde. Wenn wir diese beiden Werte voneinander abziehen könnten, hätten wir die Anzahl an Tagen, die die Stelle bereits offen ist. Glücklicherweise lassen sich diese beiden Werte ganz einfach beschaffen. • • Zur Ermittlung des aktuellen Datums können wir die integrierte Funktion TODAY() der Plattform verwenden. TODAY() gibt das heutige Datum zurück. Für das Datum, seit dem die Stelle offen ist, können wir das Feld Open Date (Offen von) verwenden, das wir im letzten Kapitel definiert haben. Wenn Sie Felder in Formeln verwenden, können Sie nicht einfach anhand des Feldnamens auf ein Feld verweisen. Stattdessen müssen Sie den Namen des zugehörigen Briefvorlagenfelds verwenden, den so genannten API-Namen. Das Format des API-Namens ist typischerweise der Name des Felds; allerdings sind die Leerzeichen durch Unterstriche ersetzt. Bei benutzerdefinierten Feldern werden an den API-Namen zwei Unterstriche und der Buchstabe "c" angehängt, wie beispielsweise hier: Open_Date__c. Durch diese Benennungskonvention in der Plattform kann leichter zwischen Standardfeldern und benutzerdefinierten Feldern unterschieden werden. Tipp: Es ist jedoch nicht erforderlich, sich die API-Namen der Felder zu merken, die in Formeln verwendet werden sollen. Wählen Sie die Felder einfach mit der Feldauswahlfunktion im Formeleditor aus. Die Plattform fügt dann automatisch den API-Namen ein. Wenn Sie einmal den API-Namen eines bestimmten Felds ermitteln 82 Kapitel 5: Erweitern der einfachen Anwendung mit erweiterten Feldern, Datenvalidierung und Seitenlayouts möchten und gerade nicht den Formeleditor verwenden, können Sie die Detailseite des Felds anzeigen. Nun, da unsere beiden Datumswerte vorliegen, möchten wir sie subtrahieren: TODAY() Open_Date__c. Auch wenn die Datumsangaben unterschiedliche Werte für Monat oder Jahr aufweisen, ist die Plattform ausgefeilt genug, um diese Berechnung fehlerfrei im Hintergrund durchzuführen. Wir müssen lediglich die Datumsangaben bereitstellen. Alles andere erledigt die Plattform. So weit, so gut. Aber es bleibt noch ein Problem: Was, wenn die Stelle nicht mehr offen ist? Unsere Formel funktioniert nur, wenn wir davon ausgehen, dass die Stelle noch immer offen ist. Auch wenn sie nicht mehr offen ist, zählt unsere Formel weiter. Jeden Tag, den sich der Wert für TODAY() vom ursprünglichen Datum Open Date (Offen von) entfernt, erhöht sich der Wert um 1. Falls möglich, möchten wir das Feld Close Date (Offen bis) anstelle von TODAY() in der Formel verwenden, nachdem eine Stelle besetzt wurde. Wie können wir das tun? Auch hier können wir wieder die umfassende Bibliothek der Plattformfunktionen nutzen. Mit der Funktion IF() können wir einen Test durchführen und dann verschiedene Werte zurückgeben, je nachdem, ob das Ergebnis des Tests wahr oder falsch ist. Die Syntax der Funktion IF() sieht wie folgt aus: IF(logical_test, value_if_true, value_if_false) Für den Bereich logical_test wird getestet, ob das Feld Close Date (Offen bis) einen Wert aufweist. Falls ja, ist die Stelle offensichtlich nicht mehr offen. Wir überprüfen dies mit einer dritten integrierten Funktion: ISBLANK(). ISBLANK() überprüft ein einzelnes Feld und gibt "true" (wahr) zurück, wenn es keinen Wert enthält, und "false" (falsch), wenn ein Wert vorhanden ist. Nun sieht unsere Formel also wie folgt aus: IF( ISBLANK( Close_Date__c ) , value_if_true, value_if_false) Indem wir value_if_true und value_if_false durch die anderen Formeln ersetzten, über die wir gesprochen haben, haben wir nun unsere gesamte Formel ermittelt. IF( ISBLANK( Close_Date__c ) , TODAY() - Open_Date__c , Close_Date__c - Open_Date__c ) 83 Kapitel 5: Erweitern der einfachen Anwendung mit erweiterten Feldern, Datenvalidierung und Seitenlayouts Hervorragend! Unsere Formel berechnet die Anzahl an Tagen, die eine Stelle offen war, unabhängig davon, ob sie derzeit offen ist oder nicht. Definieren wir nun ein Feld dafür in unserem Stellenobjekt. Probieren Sie es aus: Definieren des benutzerdefinierten Formelfelds "Days Open" (Tage offen) Wir beginnen mit dem Erstellen des Formelfelds auf die gleiche Weise wie bei der Erstellung unseres anderen benutzerdefinierten Felds. 1. Klicken Sie auf der Registerkarte "Positions" (Stellen) auf , um das Schnellzugriffsmenü zu öffnen (sofern es nicht bereits offen ist). 2. Bewegen Sie den Mauszeiger über Felder anzeigen und klicken Sie auf Neu. Abbildung26: Öffnen des Assistenten für neue benutzerdefinierte Felder aus dem Schnellzugriffsmenü 3. Wählen Sie den Datentyp Formel und klicken Sie auf Weiter. Schritt 2 des Assistenten für neue benutzerdefinierte Felder wird eingeblendet. 84 Kapitel 5: Erweitern der einfachen Anwendung mit erweiterten Feldern, Datenvalidierung und Seitenlayouts Abbildung27: Assistent für benutzerdefinierte Formelfelder – Schritt 2 4. Geben Sie im Feld Feldbezeichnung den Text Days Open (Tage offen) ein. 5. Wählen Sie Zahl als Typ der Formelrückgabe aus. Wir bilden hier zwar die Differenz zwischen Datumsfeldern, aber wir möchten letztlich einfach einen regulären numerischen Wert erhalten. 6. Ändern Sie den Wert für Dezimalstellen auf 0 und klicken Sie auf Weiter. Nun ist es an der Zeit, die Details unserer Formel einzugeben. 7. Klicken Sie auf die Registerkarte "Erweiterte Formel", wie im folgenden Screenshot zu sehen. 85 Kapitel 5: Erweitern der einfachen Anwendung mit erweiterten Feldern, Datenvalidierung und Seitenlayouts Abbildung28: Editor für benutzerdefinierte Formelfelder Wir möchten die Registerkarte "Erweiterte Formel" verwenden, damit wir über die Liste "Funktionen" auf der rechten Seite auf die integrierten Funktionen der Plattform zugreifen können. 8. Doppelklicken Sie in der Liste Funktionen auf IF. Unsere Formel sieht nun wie folgt aus: IF(logical_test, value_if_true, value_if_false) Definieren wir nun den logischen Test: 9. Löschen Sie logical_test aus der Formel, aber belassen Sie den Cursor an dieser Stelle. 10. Doppelklicken Sie in der Liste Funktionen auf ISBLANK. 11. Löschen Sie expression aus der soeben eingefügten Funktion ISBLANK, aber belassen Sie den Cursor an dieser Stelle. 12. Klicken Sie auf die Schaltfläche Feld einfügen. Zwei Spalten werden in einem Overlay angezeigt. 13. Wählen Sie in der linken Spalte die Option "Position" (Stelle) aus. 14. Wählen Sie in der rechten Spalte die Option Close Date (Offen bis) aus. 15. Klicken Sie auf Einfügen. 86 Kapitel 5: Erweitern der einfachen Anwendung mit erweiterten Feldern, Datenvalidierung und Seitenlayouts Haben Sie bemerkt, dass Sie nicht daran zu denken brauchten, den API-Namen des Felds Close Date (Offen bis) zu verwenden? Das erledigte die Plattform für Sie: Der Wert wurde automatisch eingefügt. Unsere Formel sieht nun wie folgt aus: IF( ISBLANK( Close_Date__c ) , value_if_true, value_if_false) Geben wir nun den Wert für den Fall an, dass unser logischer Test als wahr ausgewertet wird: 16. Löschen Sie value_if_true aus der Formel, aber belassen Sie den Cursor an dieser Stelle. 17. Drücken Sie die Eingabetaste auf der Tastatur und fügen Sie 10 Leerzeichen ein. Durch das Einfügen des Zeilenumbruchs und der Leerzeichen wird unsere Formel für andere Personen leichter lesbar. 18. Doppelklicken Sie in der Liste Funktionen auf TODAY. 19. Klicken Sie auf die Schaltfläche Operator einfügen und wählen Sie "Subtrahieren" aus. 20. Klicken Sie auf die Schaltfläche Feld einfügen. 21. Wählen Sie in der linken Spalte die Option "Position" (Stelle) aus. 22. Wählen Sie in der rechten Spalte die Option Open Date (Offen von) aus. 23. Klicken Sie auf Einfügen. Wir kommen der Sache schon näher. Unsere Formel sieht nun wie folgt aus: IF( ISBLANK( Close_Date__c ) , TODAY() - Open_Date__c , value_if_false) Geben wir nun abschließend den Wert für den Fall an, dass unser logischer Test als falsch ausgewertet wird: 24. Löschen Sie value_if_false aus der Formel, aber belassen Sie den Cursor an dieser Stelle. 25. Drücken Sie die Eingabetaste auf der Tastatur und fügen Sie 10 Leerzeichen ein. 26. Klicken Sie auf die Schaltfläche Feld einfügen. 27. Wählen Sie in der linken Spalte die Option "Position" (Stelle) aus. 28. Wählen Sie in der rechten Spalte die Option Close Date (Offen bis) aus und klicken Sie auf Einfügen. 29. Klicken Sie auf Operator einfügen und wählen Sie "Subtrahieren" aus. 30. Klicken Sie auf die Schaltfläche Feld einfügen. 31. Wählen Sie in der linken Spalte die Option "Position" (Stelle) aus. 32. Wählen Sie in der rechten Spalte die Option Open Date (Offen von) aus und klicken Sie auf Einfügen. 87 Kapitel 5: Erweitern der einfachen Anwendung mit erweiterten Feldern, Datenvalidierung und Seitenlayouts Unsere Formel stimmt nun mit dem Original überein: IF( ISBLANK( Close_Date__c ) , TODAY() - Open_Date__c , Close_Date__c - Open_Date__c ) Nun, da wir diese Schritte des Verfahrens durchgegangen sind, sei darauf hingewiesen, dass wir die Formel, die wir im letzten Abschnitt ermittelt haben, auch hätten eintippen können. Mit dem Formeleditor ist es jedoch wesentlich einfacher, da Sie sich nicht die Funktionssyntax oder die API-Namen der Felder und Objekte zu merken brauchen. Schließen wir nun also die Erstellung dieses Felds ab: 33. Klicken Sie auf Syntax prüfen, um die Formel auf Fehler zu überprüfen. 34. Wählen Sie Leere Felder als leer behandeln aus und klicken Sie auf Weiter. 35. Übernehmen Sie die restlichen Standardeinstellungen für Feldebenensicherheit und Seitenlayout. 36. Klicken Sie auf Speichern. 37. Blättern Sie auf der Seite der Stellenfelder nach unten zum Abschnitt "Benutzerdefinierte Felder & Beziehungen" für Stellen. 38. Klicken Sie neben dem Feld "Days Open" (Tage offen) auf Bearbeiten. 39. Geben Sie im Textfeld Beschreibung folgenden Text ein:The number of days a position has been (or was) open. (Anzahl der Tage, die eine Stelle offen ist (oder war).) 40. Fügen Sie auf Wunsch eine optionale Beschreibung unter Hilfetext hinzu. 41. Klicken Sie auf Speichern. Probieren Sie es aus: Zuweisen dynamischer Standardwerte zu Feldern Wir können auch benutzerdefinierte Formeln verwenden, um unseren Feldern dynamische Standardwerte zuzuweisen. Während einige Felder wie das Kontrollkästchen Travel Required (Reise erforderlich) oder die Auswahlliste Job Location (Arbeitsort) über Standardwerte verfügen, die in jeder Situation gelten, gibt es andere Felder mit Standardwerten, die nicht so einfach zu definieren sind. Bei Universal Containers beispielsweise wird von den Personalbeschaffungsmitarbeitern generell erwartet, dass sie eine Stelle innerhalb von 90 Tagen, nachdem sie frei wird, besetzen. Wir können zwar kein einzelnes Datum auswählen, das immer 90 Tage nach Freiwerden einer Stelle liegt. Wir können jedoch eine benutzerdefinierte Formel definieren, die das Datum verwendet, an dem die Stelle geschaffen wird, und 90 Tage hinzuzählt. Die Plattform ermöglicht es uns, diese Formel als Standardwert für das Felds Hire By (Einstellen bis) festzulegen: 88 Kapitel 5: Erweitern der einfachen Anwendung mit erweiterten Feldern, Datenvalidierung und Seitenlayouts 1. Klicken Sie unter "Setup" auf Erstellen > Objekte. 2. Klicken Sie auf Position (Stelle). 3. Klicken Sie in der Themenliste "Benutzerdefinierte Felder & Beziehungen" auf Bearbeiten neben dem Feld Hire By (Einstellen bis). 4. Klicken Sie neben dem Textfeld Standardwert auf Formel-Editor anzeigen. Kommt Ihnen das bekannt vor? Dieser Editor ähnelt dem Editor, den wir verwendet haben, um unser benutzerdefiniertes Formelfeld Days Open (Tage offen) zu definieren. 5. Doppelklicken Sie in der Liste Funktionen auf TODAY. 6. Klicken Sie auf die Schaltfläche Operator einfügen und wählen Sie "Hinzufügen". 7. Geben Sie 90 ein. Ihre Standardwertformel sollte wie folgt lauten: TODAY() + 90 8. Klicken Sie auf Speichern. So einfach ist das. Um nun die Felder auf unserer Registerkarte "Positions" (Stellen) nachzubearbeiten, stellen wir nun den Standardwert des FeldsOpen Date (Offen von) auf das Datum ein, an dem der Datensatz erstellt wurde. Führen Sie hierfür die oben beschriebenen Schritte erneut durch, wobei Sie TODAY() als Standardwert verwenden. Rekapitulation Rufen wir noch einmal die Registerkarte "Positions" (Stellen) auf und sehen uns an, was wir soeben gemacht haben. 1. Klicken Sie auf die Registerkarte "Positions" (Stellen). 2. Klicken Sie auf Neu. Unser Formelfeld Days Open (Tage offen) wird nicht auf der Bearbeitungsseite für "Position" (Stelle) angezeigt. Der Grund dafür ist, dass es sich um eine Formelfeld handelt und Formelfelder keinerlei Benutzereingaben benötigen, um angezeigt zu werden. Wir können jedoch sehen, dass unsere Felder Open Date (Offen von) und Hire By (Einstellen bis) bereits Standardwerte aufweisen: Open Date (Offen von) sollte das heutige Datum aufweisen und der wert von Hire By (Einstellen bis) sollte 90 Tage später liegen. Wir können diese Werte ändern, wenn wir möchten, oder wir können sie einfach so lassen, wie sie sind. Damit wir das Feld Days Open (Tage offen) sehen können, müssen wir unseren ersten Stellendatensatz definieren. Tun wir dies nun. 89 Kapitel 5: Erweitern der einfachen Anwendung mit erweiterten Feldern, Datenvalidierung und Seitenlayouts 3. Geben Sie beliebige Werte ein, die Sie für eine neue Stelle definieren möchten. Als absolutes Minimum müssen Sie einen Wert für das Pflichtfeld Position Title (Stellentitel) eingeben. 4. Klicken Sie auf Speichern. Die neue Stelle wird nun auf einer eigenen Datensatz-Detailseite angezeigt. Unten auf der Seite finden Sie unser Formelfeld Days Open (Tage offen), unmittelbar über dem Feld Created by (Erstellt von). Dort sollte der Wert "0" angezeigt werden, da wir die Stelle ja eben erst erstellt haben. Wenn Sie eine Änderung des Werts sehen möchten, bearbeiten Sie den Datensatz und setzen Sie Open Date (Offen von) auf eine Woche früher. Praktisch, nicht? Einführung in Validierungsregeln Nun, da wir alle Felder definiert haben, die wir auf unserem Objekt "Position" (Stelle) wünschen, wollen wir versuchen, einige Regeln zu den Daten zu formulieren, die in diese Felder eingegeben werden sollten. Die Personalbeschaffungsmitarbeiter und Einstellungs-Manager bei Universal Containers sind intelligente Menschen, doch manchmal macht jeder einen Fehler beim Ausfüllen von Formularen und eine gute Anwendung sollte die offensichtlichsten davon erkennen können. Ist es beispielsweise jemals sinnvoll, wenn der Wert des Felds Min Pay (Mindestgehalt) höher ist als der Wert des Felds Max Pay (Höchstgehalt)? Oder sollte Close Date (Offen bis) jemals leer sein, wenn das Feld Status auf "Closed - Filled" (Geschlossen - Besetzt) oder "Closed - Not Approved" (Geschlossen - Nicht genehmigt) gesetzt ist? Eindeutig nicht. Wir können derartige Fehler in unserer Anwendung mit einer weiteren integrierten Funktion der Plattform abfangen: Validierungsregeln. Mit Validierungsregeln wird sichergestellt, dass die Daten, die ein Benutzer in Ihre Anwendung eingibt, den von Ihnen angegebenen Standards entsprechen. Ist dies nicht der Fall, verhindert die Validierungsregel das Speichern des Datensatzes und dem Benutzer wird eine von Ihnen festgelegte Fehlermeldung angezeigt, entweder neben dem problematischen Feld oder am oberen Rand der Bearbeitungsseite. Erstellen wir nun eine Reihe von Validierungsregeln für unsere Personalbeschaffungsanwendung. Tipp: In der Salesforce-Hilfe finden Sie zahlreiche Beispiele für Validierungsregeln. 90 Kapitel 5: Erweitern der einfachen Anwendung mit erweiterten Feldern, Datenvalidierung und Seitenlayouts Probieren Sie es aus: Definieren einer Validierungsregel für Mindest- und Höchstgehalt Erstellen wir für den Anfang eine einfache Validierungsregel: Min Pay (Mindestgehalt) sollte nie größer sein als Max Pay (Höchstgehalt). 1. Klicken Sie auf der Registerkarte "Positions" (Stellen) auf , um das Schnellzugriffsmenü zu öffnen (sofern es nicht bereits offen ist). 2. Bewegen Sie den Mauszeiger über Validierungsregeln anzeigen und klicken Sie auf Neu. Abbildung29: Bearbeitungsseite für Validierungsregeln 3. Geben Sie im Textfeld Regelname den Wert Min_Pay_Rule ein. Die Namen von Validierungsregeln dürfen keine Leerzeichen enthalten. Aber wenn Sie das vergessen, werden die Leerzeichen automatisch von der Plattform in Unterstriche (_) umgewandelt. 4. Aktivieren Sie das Kontrollkästchen Aktiv. 91 Kapitel 5: Erweitern der einfachen Anwendung mit erweiterten Feldern, Datenvalidierung und Seitenlayouts Dieses Kontrollkästchen gibt an, ob die Validierungsregel unmittelbar nach dem Speichern in Kraft treten soll. Da diese Regel recht unkompliziert ist (und da wir sie später testen möchten!) ist es sinnvoll, sie sofort zu aktivieren. 5. Geben Sie in das Textfeld Beschreibung den Text Min Pay should never exceed Max Pay. (Mindestgehalt sollte niemals Höchstgehalt übersteigen.) ein. Nun ist es an der Zeit, das Kernstück der Validierungsregel zu definieren: die Fehlerbedingung. Wenn Sie ein Déjà-vu-Gefühl haben, wenn Sie sich den Bereich "Fehlerbedingungsformel" der Seite ansehen, machen Sie sich keine Sorgen! Ebenso wie Formelfelder und Standardfeldwerte können auch Validierungsregeln eine Reihe von integrierten Operatoren und Funktionen nutzen, um eine Fehlerbedingung vom Typ "Wahr oder falsch" zu definieren, die bestimmt, ob die Daten gültig sind. Wenn diese Bedingung als wahr ausgewertet wird, wird eine Fehlermeldung angezeigt und der Datensatz kann nicht gespeichert werden. Unsere Fehlerbedingung soll immer dann wahr sein, wenn Min Pay (Mindestgehalt) größer ist als Max Pay (Höchstgehalt). Geben wir also das nun in unserem Formeleditor an: 6. Klicken Sie auf die Schaltfläche Feld einfügen. Wie beim Editor für Formelfelder werden zwei Spalten in einem Overlay angezeigt. 7. Wählen Sie in der linken Spalte die Option "Position" (Stelle) aus. 8. Wählen Sie in der rechten Spalte die Option Min Pay (Mindestgehalt) aus. 9. Klicken Sie auf Einfügen. 10. Klicken Sie auf die Schaltfläche Operator einfügen und wählen Sie "Größer als" aus. 11. Klicken Sie erneut auf die Schaltfläche Feld einfügen. 12. Wählen Sie in der linken Spalte die Option "Position" (Stelle) aus. 13. Wählen Sie in der rechten Spalte die Option Max Pay (Höchstgehalt) aus. 14. Klicken Sie auf Einfügen. Ihre Fehlerbedingungsformel sollte nun wie folgt aussehen: Min_Pay__c > Max_Pay__c Das Einzige, was nun noch zu tun bleibt, ist die Angabe der Fehlermeldung, die angezeigt werden soll, wenn die Fehlerbedingung als wahr ausgewertet wird. 15. Geben Sie im Textfeld Fehlermeldung folgenden Text ein: Min Pay cannot exceed Max Pay. (Mindestgehalt darf Höchstgehalt nicht übersteigen.) 16. Wählen Sie neben dem Feld Fehlerposition das Optionsfeld Seitenanfang aus. 92 Kapitel 5: Erweitern der einfachen Anwendung mit erweiterten Feldern, Datenvalidierung und Seitenlayouts Tipp: Wenn eine Regel es erfordert, dass die Benutzer den Wert mehrerer Felder überprüfen, ist es sinnvoller, die Fehlermeldung oben auf der Seite zu platzieren, da Sie nicht wissen, welches Feld der Benutzer ändern muss. 17. Klicken Sie auf Speichern. Ganz einfach! Nachdem wir uns nun mit einer einfachen Validierungsregel vertraut gemacht haben, definieren wir eine, die ein wenig kniffliger ist. Probieren Sie es aus: Definieren einer Validierungsregel für "Close Date" (Offen bis) mit unserer nächsten Validierungsregel möchten wir sicherstellen, dass unter Close Date (Offen bis) ein Wert eingetragen ist, wenn das Feld Status auf "Closed - Filled" (Geschlossen - Besetzt) oder "Closed - Not Approved" (Geschlossen - Nicht genehmigt) gesetzt ist. Der schwierigste Teil bei dieser Validierungsregel besteht in der Definition der Fehlerbedingungsformel. Beim Definieren einer derartigen Bedingung ist es manchmal am einfachsten, sich zunächst die zugrunde liegende Logik vor Augen zu halten und diese Logik anschließend in die Funktionen und Operatoren zu "übersetzen", die im Formeleditor zur Verfügung stehen. In diesem Fall ist unsere Fehlerbedingung immer dann wahr, wenn Folgendes gegeben ist: Close Date is Not Specified AND (Status is "Closed - Filled" OR "Closed - Not Approved") Beginnen wir mit dem ersten Teil: "Close Date is Not Specified." (Wert für "Offen bis" ist nicht angegeben.) Um dies so darzustellen, dass es der Fomeleditor verstehen kann, müssen wir erneut die Funktion ISBLANK() verwenden. Sie erinnern sich vielleicht noch aus der Definition des benutzerdefinierten Formelfelds Days Open (Tage offen) daran, dass ISBLANK() ein einzelnes Feld überprüft und "true" (wahr) zurückgibt, wenn es keinen Wert enthält, und "false" (falsch), wenn ein Wert vorhanden ist. Wenn wir nun also beachten, dass wir in unserer Formel den internen Feldnamen des Felds Close Date (Offen bis) verwenden müssen, dann lässt sich Close Date is Not Specified (Wert für "Offen bis" ist nicht angegeben.) wie folgt ausdrücken: ISBLANK( Close_Date__c ) 93 Kapitel 5: Erweitern der einfachen Anwendung mit erweiterten Feldern, Datenvalidierung und Seitenlayouts Überlegen wir nun, wie wir "Status is 'Closed - Filled'." (Status ist "Geschlossen - Besetzt") ausdrücken können. Für Tests bei Auswahllistenwerten müssen wir eine andere Funktion verwenden: ISPICKVAL(). ISPICKVAL() untersucht den Namen und den Wert eines Auswahllistenfelds und gibt "true " (wahr) zurück, wenn dieser Wert ausgewählt wurde. "Status is 'Closed - Filled'." (Status ist "Geschlossen - Besetzt") wird also wie folgt ausgedrückt: ISPICKVAL( Status__c , "Closed - Filled") Tipp: Bei der Arbeit mit Auswahllisten in Formeln können Sie die Auswahllisten mit der Funktion ISPICKVAL() oder der Funktion TEXT() in Text konvertieren. Um beispielsweise den Wert einer Auswahlliste mit der Funktion TEXT() zu überprüfen, verwenden Sie TEXT(Status__c) = “Closed - Filled”. Nun müssen wir lediglich diese Übersetzungen kombinieren, was wir mit einer Mischung der Funktionen && und || tun können. Beide Funktionen werten eine unbegrenzte Anzahl von Ausdrücken aus. Doch && gibt "true" (wahr) zurück, wenn alle Ausdrücke wahr sind, während || "true" (wahr) zurückgibt, wenn irgendeiner der Ausdrücke wahr ist. Beispiele: exp1 && exp2 && exp3 gibt "true" (wahr) zurück, wenn die Ausdrücke exp1, exp2 und exp3 alle wahr sind. Dagegen gibt exp1 || exp2 || exp3 "true" (wahr) zurück, wenn mindestens einer der Ausdrücke exp1, exp2 und exp3 wahr ist. Wenn wir diese Funktionen mit unseren anderen Ausdrucksübersetzungen kombinieren, erhalten wir unsere vollständige Fehlerbedingungsformel: ISBLANK(Close_Date__c) && (ISPICKVAL(Status__c , "Closed - Filled") || ISPICKVAL(Status__c , "Closed - Not Approved")) Puh! Nun können wir rasch unsere zweite Validierungsregel mithilfe dieser Formel definieren: 1. 2. 3. 4. 5. 6. 94 Klicken Sie unter "Setup" auf Erstellen > Objekte. Klicken Sie auf Position (Stelle). Klicken Sie in der Themenliste "Validierungsregel" auf Neu. Geben Sie im Textfeld Regelname den Wert Close_Date_Rule ein. Aktivieren Sie das Kontrollkästchen Aktiv. Geben Sie im Textfeld Beschreibung folgenden Text ein: Close Date must be specified when Status is set to 'Closed - Filled' or 'Closed - Not Approved.' ("Close Date" (Offen bis) muss angegeben sein, Kapitel 5: Erweitern der einfachen Anwendung mit erweiterten Feldern, Datenvalidierung und Seitenlayouts wenn "Status" auf "Closed - Filled" (Geschlossen - Besetzt) oder "Closed - Not Approved" (Geschlossen - Nicht genehmigt) gesetzt ist.) 7. Geben Sie im Bereich "Fehlerbedingungsformel" folgende Formel ein: ISBLANK(Close_Date__c) && (ISPICKVAL(Status__c , "Closed - Filled") || ISPICKVAL(Status__c , "Closed - Not Approved")) 8. Klicken Sie auf Check Syntax (Syntax prüfen), um sicherzustellen, dass das Format der Formel korrekt ist. 9. Geben Sie im Textfeld Fehlermeldung folgenden Text ein: Close Date must be specified when Status is set to 'Closed.' ("Close Date" (Offen bis) muss angegeben sein, wenn "Status" auf "Closed" (Geschlossen) gesetzt ist.) 10. Wählen Sie neben dem Feld Fehlerposition das Optionsfeld Feld aus und wählen Sie dann in der Dropdownliste den Eintrag Close Date (Offen bis) aus. 11. Klicken Sie auf Speichern. Rekapitulation Rufen wir noch einmal die Registerkarte "Positions" (Stellen) auf, um die soeben erstellten Validierungsregeln zu testen. 1. Klicken Sie auf die Registerkarte "Positions" (Stellen). 2. Klicken Sie auf Neu. Versuchen wir zuerst, eine neue Stelle zu definieren, bei der der Wert für Min Pay (Mindestgehalt) größer ist als der für Max Pay (Höchstgehalt). 3. 4. 5. 6. Geben Sie einen beliebigen Wert für das Feld Position Title (Stellentitel) an. Geben Sie im Feld Min Pay (Mindestgehalt) 80,000 (80.000) ein. Geben Sie im Feld Max Pay (Höchstgehalt) 40,000 (40.000) ein. Klicken Sie auf Speichern. Haben Sie gesehen, was passiert ist? Ihre benutzerdefinierte Fehlermeldung wurde genau so eingeblendet wie jede andere Fehlermeldung in der Anwendung. 95 Kapitel 5: Erweitern der einfachen Anwendung mit erweiterten Feldern, Datenvalidierung und Seitenlayouts Abbildung30: Fehlermeldung aus einer Validierungsregel Testen wir nun unsere andere Validierungsregel: 7. Geben Sie im Feld Min Pay (Mindestgehalt) 40,000 (40.000) ein. 8. Geben Sie im Feld Max Pay (Höchstgehalt) 80,000 (80.000) ein. 9. Wählen Sie in der Dropdownliste Status die Option "Closed - Not Approved" (Geschlossen - Nicht genehmigt) aus. 10. Klicken Sie auf Speichern. 96 Kapitel 5: Erweitern der einfachen Anwendung mit erweiterten Feldern, Datenvalidierung und Seitenlayouts Unsere zweite Validierungsregel wird ausgelöst, diesmal weil wir keinen Wert für Close Date (Offen bis) angegeben haben. Nachdem wir einen Wert eingegeben haben, lässt sich der Datensatz ganz normal speichern. Überprüfen auf einem Mobilgerät Bevor wir fortfahren, sehen wir uns an, wie die neuen Felder auf einem Mobilgerät dargestellt werden. 1. Starten Sie Salesforce1 auf Ihrem Mobilgerät. Wenn Sie dazu aufgefordert werden, melden Sie sich an. 2. Tippen Sie auf , um das Navigationsmenü zu öffnen, und tippen Se dann auf Positions (Stellen). Wenn in der Elementliste "Positions" (Stellen) nicht angezeigt wird, tippen Sie auf Mehr anzeigen. 3. Tippen Sie auf Neu, um einen Stellendatensatz zu erstellen. Wie bei der Erstellung der Felder für das Objekt "Position" (Stelle) werden alle unsere erweiterten Felder automatisch in Salesforce1 angezeigt. Überprüfen Sie, dass alle erweiterten Felder ordnungsgemäß funktionieren. Abbildung31: Abhängige Auswahllisten und Validierungsregeln in Salesforce1 97 Kapitel 5: Erweitern der einfachen Anwendung mit erweiterten Feldern, Datenvalidierung und Seitenlayouts Alle unsere erweiterten Felder funktionieren ordnungsgemäß, wenn folgende Bedingungen erfüllt sind: • • • • • • Wir können nur Job Level (Stellenebene) aktualisieren, nachdem wir einen Wert für Functional Area (Funktionsbereich) ausgewählt haben. Das Formelfeld Days Open (Tage offen) wird nicht angezeigt. Open Date (Offen von) wurde bereits mit dem heutigen Datum ausgefüllt. Hire By (Einstellen bis) wurde bereits mit dem Datum 90 Tage nach dem heutigen Datum ausgefüllt. Der Wert für Min Pay (Mindestgehalt) einer Stelle darf nicht höher sein als deren Wert für Max Pay (Höchstgehalt). Der Status einer Stelle kann nicht "Closed - Filled" (Geschlossen - Besetzt) oder "Closed - Not Approved" (Geschlossen - Nicht genehmigt) lauten, wenn Close Date (Offen bis) leer ist. Wir möchten außerdem überprüfen, ob das Feld Days Open (Tage offen) ordnungsgemäß funktioniert, da wir jedoch eine Stelle erstellt haben, als wir unsere Felder auf der vollständigen Site überprüft haben, können wir uns den betreffenden vorhandenen Datensatz ansehen. 4. Tippen Sie auf Abbrechen, um zur Liste der aktuellen Stellendatensätze zurückzukehren. 5. Tippen Sie auf den Stellendatensatz, den wir gerade erstellt haben. 6. Blättern Sie nach unten, bis Days Open (Tage offen) angezeigt wird. Wie auf der vollständigen Site wird im Feld Days Open (Tage offen) die Anzahl der Tage angegeben, die seit Open Date (Offen von) verstrichen sind: 0. Die Registerkarte "Positions" (Stellen) ist nun voll funktionsfähig, mit einigen Validierungsregeln, die sicherstellen, dass die Benutzer bestimmte Fehler nicht machen können. Aber befinden sich die Felder an der gewünschten Position? Sind die Felder, in die Werte eingegeben werden müssen, als Pflichtfelder gekennzeichnet? Im nächsten Abschnitt nehmen wir die Feinabstimmung für unser benutzerdefiniertes Objekt "Position" (Stelle) vor, indem wir das zugehörige Seitenlayout bearbeiten. Einführung in Seitenlayouts Nachdem all diese Felder und Validierungsregeln definiert wurden, verfügen wir über ein voll funktionsfähiges benutzerdefiniertes Objekt "Position" (Stelle). Das Erscheinungsbild lässt allerdings noch zu wünschen übrig. Die gesamten langen Textbereiche werden oben angezeigt und die Seite lässt sich in unserem Desktop-Browser nur schwer durchsuchen. Stellen Sie sich nur vor, wie schwer die Suche auf einem Mobilgerät wäre! Verschieben wir also einige Dinge, 98 Kapitel 5: Erweitern der einfachen Anwendung mit erweiterten Feldern, Datenvalidierung und Seitenlayouts um die Seite benutzerfreundlicher zu machen. Zu diesem Zweck können wir das Seitenlayout des Objekts "Position" (Stelle) anpassen. Über das Seitenlayout wird festgelegt, wie die Felder und Themenlisten, die für den Benutzer beim Anzeigen eines Datensatzes erkennbar sind, positioniert und organisiert werden. Mithilfe von Seitenlayouts können wir auch die Sichtbarkeit und Bearbeitbarkeit der Felder in einem Datensatz steuern. Wir können Felder als schreibgeschützt oder ausgeblendet festlegen und zudem einstellen, bei welchen Feldern die Benutzer einen Wert eingeben müssen und bei welchen nicht. Seitenlayouts sind leistungsstarke Tools, um eine positive Benutzererfahrung zu schaffen, aber wir dürfen keinesfalls eine wichtige Regel außer Acht lassen: Seitenlayouts sollten niemals verwendet werden, um den Zugriff auf sensible Daten einzuschränken, die ein Benutzer nicht anzeigen oder bearbeiten sollte. Auch wenn wir ein Feld in einem Seitenlayout ausblenden können, kann der Benutzer nach wie vor über andere Teile der Anwendung, beispielsweise über Berichte oder über die API, auf dieses Feld zugreifen. (Im Abschnitt Einrichten von Sicherheit und Freigabe für Daten auf Seite 175 wird das Thema Sicherheit noch genauer und im Bezug auf alle Teile der Anwendung behandelt.) Sehen wir uns nun einmal an, ob wir die Felder in unserem Objekt "Position" (Stelle) so organisieren können, dass die Benutzung erleichtert wird. Der Seitenlayout-Editor Die Force.com-Plattform bietet zwei Tools zum Ziehen und Ablegen zur Bearbeitung von Seitenlayouts: den ursprünglichen Seitenlayout-Editor und den Editor für erweitertes Seitenlayout. Der Editor für erweitertes Seitenlayout bietet dieselben Funktionen wie der ursprüngliche Editor, jedoch mit zusätzlichen Erweiterungen, wie einer intuitiven WYSIWYG-Oberfläche und der Fähigkeit zur Anpassung der Abstände zwischen den Feldern im Layout. Da der Editor für erweitertes Seitenlayout standardmäßig aktiviert ist, verwenden wir ihn zur Bearbeitung der Seitenlayouts in diesem Buch. Anmerkung: Der Editor für erweitertes Seitenlayout funktioniert bei einigen älteren Browsern nicht. Wenn Sie keine neuere Browser-Version verwenden möchten, können Sie jederzeit zum ursprünglichen Seitenlayout-Editor zurück wechseln, indem Sie unter "Setup" auf Anpassen > Benutzeroberfläche klicken und die Auswahl von Editor für erweitertes Seitenlayout aktivieren aufheben. Allerdings stimmt bei Verwendung des ursprünglichen Seitenlayout-Editors die Anzeige auf Ihrem Bildschirm nicht mit den in diesem Buch beschriebenen Vorgehensweisen 99 Kapitel 5: Erweitern der einfachen Anwendung mit erweiterten Feldern, Datenvalidierung und Seitenlayouts überein und Sie können die Abstände zwischen den Feldern in Ihrem Layout nicht anpassen. Verwenden wir nun den Seitenlayout-Editor zur Bearbeitung des Seitenlayouts für das Objekt "Position" (Stelle): 1. Klicken Sie unter "Setup" auf Erstellen > Objekte. 2. Klicken Sie auf Position (Stelle). 3. Klicken Sie in der Themenliste "Seitenlayouts" neben "Position Layout" (Stelle-Layout) auf Bearbeiten. Willkommen beim Seitenlayout-Editor! Wie Sie sehen können, unterscheidet sich dieser Editor von den anderen Editoren, die wir bereits in anderen Bereichen der Plattform verwendet haben. Der Grund hierfür ist, dass wir eine Benutzeroberfläche entwerfen und bereits während der Arbeit sehen müssen, wie unsere Seite aussehen wird. Bevor wir fortfahren, sollten wir uns zunächst einen Überblick darüber verschaffen, wie diese Seite eingerichtet ist. Abbildung32: Seitenlayout-Editor 100 Kapitel 5: Erweitern der einfachen Anwendung mit erweiterten Feldern, Datenvalidierung und Seitenlayouts Der Seitenlayout-Editor besteht aus einer Palette im oberen Teil des Bildschirms und dem Seitenlayout im unteren. Die Palette umfasst die Benutzeroberflächenelemente, die Sie zum Seitenlayout hinzufügen können, darunter Felder, Schaltflächen, Links und Themenlisten. Um eines dieser Benutzeroberflächenelemente zum Seitenlayout hinzuzufügen, wählen Sie einfach in der linken Spalte der Palette die Kategorie aus, zu der das Element gehört, und ziehen Sie das Element von der Palette in das Seitenlayout. Um ein Benutzeroberflächenelement aus dem Seitenlayout zu entfernen, ziehen Sie das Element aus dem Seitenlayout auf die rechte Seite der Palette oder bewegen Sie den Mauszeiger über das Element, das entfernt werden soll, und klicken Sie auf . In einer Symbolleiste oberhalb der Palette stehen verschiedene Funktionen zur Verfügung, beispielsweise zum Speichern und zum Anzeigen einer Vorschau Ihrer Änderungen. Jetzt wissen wir, worum es geht. Ordnen wir nun also die Felder so an, wie es für die Benutzer günstig ist. Probieren Sie es aus: Gruppieren von Feldern in einen neuen Abschnitt Beginnen wir mit der Änderung unseres Seitenlayouts, indem wir zunächst einen neuen Abschnitt für Gehaltsinformationen definieren. In einem Seitenlayout ist ein Abschnitt einfach ein Bereich, in dem wir ähnliche Felder unter einer passenden Überschrift gruppieren können. Das macht es für unsere Benutzer einfach, Informationen für einen Datensatz schnell zu ermitteln und einzugeben, insbesondere dann, wenn unser Objekt über eine große Anzahl an Feldern verfügt: 1. Wählen Sie in der Palette die Kategorie "Felder" aus. 2. Ziehen Sie das Benutzeroberflächenelement "Abschnitt" von der Palette auf die Stelle unmittelbar oberhalb des Abschnitts "Systeminformationen" im Seitenlayout. Wenn Sie einen neuen Abschnitt auf das Seitenlayout ziehen, wird das Popup-Fenster "Abschnitteigenschaften" angezeigt. 3. Geben Sie im Textfeld Abschnittsname den Wert Compensation (Vergütung) ein. Das Feld Abschnittsname legt fest, welcher Text als Überschrift für den Abschnitt angezeigt wird. 4. Aktivieren Sie im Bereich "Anzeige Abschnittsüberschrift ein" sowohl Detailseite als auch Seite bearbeiten. 101 Kapitel 5: Erweitern der einfachen Anwendung mit erweiterten Feldern, Datenvalidierung und Seitenlayouts Wenn die Überschrift sowohl auf der Detail- als auch auf der Bearbeitungsseite angezeigt wird, erkennt der Benutzer den Kontext der Informationen besser, unabhängig davon, ob er die Stelle bearbeitet oder nur anzeigt. 5. Wählen Sie in der Dropdownliste Layout das zweispaltige Layout aus. Bei Auswahl dieser Option können wir entscheiden, ob die Felder in unserem Abschnitt in zwei Spalten oder in einer Spalte angezeigt werden sollen. Standardmäßig sind zwei Spalten vorgesehen, was auch am häufigsten ausgewählt wird. Falls unser Abschnitt jedoch Textbereichsfelder enthält, haben diese im einspaltigen Layout mehr Platz, sodass sie besser angezeigt werden können. 6. Wählen Sie in der Dropdownliste Reihenfolge für Tabulatortaste die Option "Links-Rechts" aus. Diese Einstellung legt fest, in welche Richtung sich der Cursor eines Benutzers bewegt, wenn er mithilfe der Tabulatortaste von Feld zu Feld navigiert. 7. Klicken Sie auf OK. Wir haben nun einen neuen Bereich "Compensation" (Vergütung) direkt über dem Abschnitt "Systeminformationen" erstellt! Fügen wir nun noch die Felder Min Pay (Mindestgehalt) und Max Pay (Höchstsgehalt) hinzu: 8. Klicken Sie bei gedrückter Strg-Taste auf die beiden Felder Min Pay (Mindestgehalt) undMax Pay (Höchstgehalt) im Bereich "Informationen" und ziehen Sie sie wie dargestellt in den neuen Bereich "Compensation" (Vergütung). Abbildung33: Hinzufügen von Feldern zum Bereich "Compensation" (Vergütung) 102 Kapitel 5: Erweitern der einfachen Anwendung mit erweiterten Feldern, Datenvalidierung und Seitenlayouts Wenn Sie die Strg-Taste gedrückt halten, können Sie mehrere individuelle Benutzeroberflächenelemente mit Ihrer Maus auswählen. Alternativ können Sie die UMSCHALT-Taste drücken und eine Gruppe von Elementen auswählen. Nun, da wir den Prozess zur Erstellung eines Abschnitts durchlaufen haben, erstellen wir noch zwei weitere Abschnitte. Während dieses Vorgangs müssen Sie je nach Größe Ihres Bildschirms möglicherweise einen Bildlauf nach oben oder nach unten durchführen, um das ganze Layout anzuzeigen. Seien Sie versichert, dass sich die Palette, wenn Sie einen Bildlauf durchführen müssen, mitbewegt, sodass sich Benutzeroberflächenelemente mühelos auch ganz unten im Seitenlayout hinzufügen lassen. 9. Erstellen Sie einen neuen einspaltigen Beschreibungsabschnitt unter dem Abschnitt "Compensation" (Vergütung) und ziehen Sie die Elemente Job Description (Tätigkeitsbeschreibung), Responsibilities (Zuständigkeiten), Skills Required (Erforderliche Fähigkeiten) und Educational Requirements (Ausbildungsvoraussetzungen) hinein. 10. Erstellen Sie einen neuen zweispaltigen Abschnitt "Required Languages" (Erforderliche Sprachen) unter dem Abschnitt Description (Beschreibung) und ziehen Sie Apex, C#, Java und JavaScript hinein. Während Ihrer Arbeit stellen Sie möglicherweise fest, dass die Felder, die Sie dem Seitenlayout hinzufügen, in der Palette abgeblendet sind, das Benutzeroberflächenelement "Abschnitt" ist jedoch nie abgeblendet. Der Grund hierfür ist, dass die Felder nur einmal auf jedem Seitenlayout angezeigt werden können, das Benutzeroberflächenelement "Abschnitt" aber erneut verwendet werden kann, um beliebig viele Abschnitte zu erstellen. Tipp: Falls Sie bei der Bearbeitung des Seitenlayouts einen Fehler machen, können Sie mit Strg+Z und Strg+Y Ihre soeben vorgenommen Schritte rückgängig machen bzw. wiederholen. Die Werkzeugleiste enthält außerdem die Schaltflächen Wiederholen und Rückgängig. Während wir Felder umsortieren, sollten wir auch den Abschnitt "Informationen" umorganisieren, um für eine bessere Lesbarkeit zu sorgen. 11. Ordnen Sie die erste Spalte des Abschnitts "Informationen" wie folgt an: • • • • • • • Position Title (Stellentitel) Status Type (Typ) Functional Area (Funktionsbereich) Job Level (Stellenebene) Travel Required (Reise erforderlich) Created By (Erstellt von) 103 Kapitel 5: Erweitern der einfachen Anwendung mit erweiterten Feldern, Datenvalidierung und Seitenlayouts 12. Ordnen Sie die zweite Spalte des Abschnitts "Informationen" wie folgt an: • • • • • • • Owner (Inhaber) Location (Standort) Open Date (Offen von) Hire By (Einstellen bis) Close Date (Offen bis) Days Open (Tage offen) Last Modified By (Zuletzt geändert von) Schon viel besser – unsere Felder sind geordnet und man findet die benötigten Informationen mühelos. Der Abschnitt "Informationen" sieht aber immer noch ein bisschen voll aus. Glücklicherweise bietet der Layout-Editor eine Möglichkeit, Leerräume einzufügen, die die Felder innerhalb des Abschnitts voneinander trennen und so die Lesbarkeit zusätzlich zu verbessern. Probieren Sie es aus: Hinzufügen von Leerräumen zwischen Feldern Beim Entwerfen von Seitenlayouts sollen oft bestimmte Felder innerhalb eines Abschnitts besonders hervorgehoben werden. Eine einfache und effektive Methode, um das zu erreichen, besteht darin, Leerräume zwischen Feldern einzufügen. Wenn wir beispielsweise im Abschnitt mit den Informationen in jeder Spalte einen Leerraum unterhalb der ersten Zeile einfügen, wird das Auge des Benutzers auf die wichtigsten Informationen im Abschnitt gelenkt, nämlich den Stellentitel und den Inhaber. Wir können auch einen Leerraum oberhalb der untersten Zeile in jeder Spalte einfügen, um die Felder Created by (Erstellt von) und Last modified by (Zuletzt geändert von) von den wichtigen Stelleninformationen zu trennen. Versuchen wir es. 1. Wählen Sie die Kategorie "Felder" aus. 2. Ziehen Sie das Benutzeroberflächenelement "Leerstelle" von der Palette auf das Seitenlayout direkt unterhalb des Felds Position Title (Stellentitel). Abbildung34: Ziehen und Ablegen von Leerräumen in einem Seitenlayout 104 Kapitel 5: Erweitern der einfachen Anwendung mit erweiterten Feldern, Datenvalidierung und Seitenlayouts Wie das Benutzeroberflächenelement "Abschnitt" wird auch das Benutzeroberflächenelement "Leerstelle" in der Palette niemals abgeblendet, wenn Sie es auf das Seitenlayout ziehen, da dieses Element beliebig oft wiederverwendet werden kann. 3. Wählen Sie in der Palette erneut das Benutzeroberflächenelement "Leerstelle" aus und ziehen Sie es unterhalb des Felds Owner (Inhaber). 4. Fügen Sie zwei weitere Leerräume zum Seitenlayout hinzu, einen oberhalb des Felds Created By (Erstellt von) und einen oberhalb des Felds Last Modified By (Zuletzt geändert von). Bevor wir fortfahren, sollten Sie folgendes beachten: Wenn Sie versehentlich das Seitenlayout verlassen, ohne Ihre Arbeit zu speichern, gehen Ihre Änderungen verloren. Fordern wir also das Schicksal nicht heraus, sondern speichern wir rasch die bisher durchgeführte Arbeit. 5. Klicken Sie in der Symbolleiste oberhalb der Palette auf Schnellspeicherung oder drücken Sie STRG+S, wenn Sie lieber mit Tastenkombinationen arbeiten. Mit der Schnellspeicherung können Sie Ihre Änderungen speichern und die Bearbeitung des Seitenlayouts fortsetzen. Durch Klicken auf Speichern in der Symbolleiste wird Ihre Arbeit ebenfalls gespeichert, Sie gelangen jedoch dadurch automatisch auf die Seite zurück, von der aus Sie den Seitenlayout-Editor aufgerufen hatten. Wir müssen noch ein paar kleine Feinheiten am Seitenlayout ändern und möchten den Seitenlayout-Editor daher noch nicht verlassen. Probieren Sie es aus: Bearbeiten von Feldeigenschaften Wir haben soeben den Seitenlayout-Editor verwendet, um das Layout unserer Stellenseite auf eine logische, leicht lesbare Weise einzurichten, der Seitenlayout-Editor bietet jedoch noch weitere Möglichkeiten als lediglich die Gestaltung der Datendarstellung: Wir können damit auch festlegen, welche Felder Pflichtfelder und welche Felder schreibgeschützt sein sollen: • • Wenn ein Feld als Pflichtfeld festgelegt ist, können die Benutzer keine Stellendatensätze erstellen, ohne für dieses Feld einen Wert anzugeben. Wenn ein Feld schreibgeschützt ist, können Benutzer, die die Bearbeitungsseite für einen Stellendatensatz anzeigen, den zugehörigen Wert nicht ändern. Pflichtfelder sind durch ein rotes Sternchen ( durch ein Schloss-Symbol ( ), gekennzeichnet, schreibgeschützte Felder ). ACHTUNG: Wir können diese Änderungen zwar im Seitenlayout vornehmen, vergessen Sie jedoch nicht unsere frühere Warnung! Seitenlayouts sollten niemals als alleiniges Mittel verwendet werden, um den Zugriff auf sensible Daten einzuschränken, 105 Kapitel 5: Erweitern der einfachen Anwendung mit erweiterten Feldern, Datenvalidierung und Seitenlayouts die ein Benutzer nicht anzeigen oder bearbeiten sollte. Der Grund hierfür ist, dass Seitenlayouts nur die Bearbeitungs- und Detailseiten eines Datensatzes steuern. Sie steuern nicht den Zugriff auf die betreffenden Felder in andern Teilen der Plattform. Bisher gibt es in unserer Anwendung keine Felder, die schreibgeschützt sein müssen. Aber wir möchten sicherstellen, dass der Gehaltsbereich stets für jede Stelle angegeben wird. Daher legen wir die Felder Min Pay (Mindestgehalt) und Max Pay (Höchstgehalt) als Pflichtfelder fest. Wenn das erledigt ist, sind wir mit unserem Stellenobjekt fertig. Um die Felder Min Pay (Mindestgehalt) und Max Pay (Höchstgehalt) als Pflichtfelder festzulegen, müssen wir jeweils die Eigenschaften der Felder bearbeiten: 1. Doppelklicken Sie im Seitenlayout-Editor auf das Feld Min Pay (Mindestgehalt) oder wählen Sie das Schraubenschlüsselsymbol ( ) neben dem Feldnamen aus. In diesem Popup-Fenster können wir die Eigenschaften des Felds Min Pay (Mindestgehalt) bearbeiten. Wir können das Feld entweder als schreibgeschützt oder als Pflichtfeld festlegen. Wenn die Benutzer das Feld Min Pay (Mindestgehalt) überhaupt nicht sehen sollten, könnten wir es einfach aus dem Layout auf die Palette ziehen. Im Moment möchten wir sicherstellen, dass es sichtbar bleibt. Daher belassen wir es an seinem derzeitigen Ort. 2. Aktivieren Sie das Kontrollkästchen Erforderlich und klicken Sie auf OK. 3. Wiederholen Sie diese Schritte für das Feld Max Pay (Höchstgehalt). 4. Klicken Sie auf Speichern, um die Anpassung des Seitenlayouts abzuschließen. Hurra! Wir sind mit dem Seitenlayout für unser Stellenobjekt fertig. Rekapitulation Herzlichen Glückwunsch! Wir haben soeben eine einfache Personalbeschaffungsanwendung erstellt, mit der Details zu den offenen Stellen einer Organisation verfolgt werden. Sehen wir uns nun unsere Arbeit an, indem wir zur Registerkarte "Positions" (Stellen) zurückkehren und auf Neu klicken. Aufgrund der Änderungen, die wir an unserem Seitenlayout vorgenommen haben, sollte unsere Bearbeitungsseite für das Stellenobjekt nun wie folgt aussehen: 106 Kapitel 5: Erweitern der einfachen Anwendung mit erweiterten Feldern, Datenvalidierung und Seitenlayouts Abbildung35: Endgültige Version des Stellenlayouts Bevor wir fortfahren, sehen wir uns die Detailseite "Position" (Stelle) noch einmal an. Dazu müssen wir eine Stelle erstellen. Füllen Sie die erforderlichen Felder aus und klicken Sie auf Speichern. Wenn wir zum unteren Bereich der Detailseite "Position" (Stelle) blättern, sehen wir eine Reihe von Themenlisten. Da wir die Themenlisten, die für Stellen angezeigt werden, nicht angepasst haben, werden auf der Plattform die Standardwerte angezeigt: "Offene Aktivitäten", "Aktivitätsverlauf" und "Notizen und Anhänge". Momentan sind in keiner der Listen Einträge vorhanden. Um festzustellen, wie eines dieser Elemente aussehen würde, fügen wir eine Aufgabe hinzu. 1. Klicken Sie in der Themenliste "Offene Aktivitäten" auf Neue Aufgabe. Beachten Sie, dass einige Felder bereits einen Eintrag enthalten. Die Werte für die Person, der die Aufgabe voraussichtlich zugewiesen werden sollte, bezüglich des Status und der Dringlichkeit der Aufgabe wurden von der Plattform bereits eingetragen. Da wir die Aufgabe 107 Kapitel 5: Erweitern der einfachen Anwendung mit erweiterten Feldern, Datenvalidierung und Seitenlayouts über die Themenliste zu einer Stelle hinzugefügt haben, geht die Plattform richtig davon aus, dass die Aufgabe dieser Stelle zugeordnet werden soll. Wir belassen die Einstellungen für diese Felder vorerst bei den Standardwerten. 2. Geben Sie unter Thema Post position online (Stelle online ausschreiben) ein. 3. Wählen Sie unter Fälligkeitsdatum das morgige Datum aus. 4. Klicken Sie auf Speichern. Nachdem wir nun zur Detailseite für unsere Stelle zurückgekehrt sind, sehen wir, dass die Themenliste "Offene Aktivitäten" die soeben erstellte Aufgabe enthält. Über diese Liste könnten wir die zugeordnete Aufgabe aufrufen, um weitere Details dazu anzuzeigen, Änderungen vorzunehmen oder sie als "Abgeschlossen" zu markieren. Bereitstellen von Seitenlayouts für die mobile Verwendung Nachdem wir ein gut strukturiertes Seitenlayout erstellt haben und wissen, dass es auf der vollständigen Salesforce-Site funktioniert, lassen Sie uns nun überprüfen, wie es auf unseren Mobilgeräten dargestellt wird. 1. Starten Sie Salesforce1 auf Ihrem Mobilgerät und melden Sie sich an. 2. Tippen Sie im Navigationsmenü auf Mehr anzeigen > Positions (Stellen). 3. Tippen Sie auf Neu. 108 Kapitel 5: Erweitern der einfachen Anwendung mit erweiterten Feldern, Datenvalidierung und Seitenlayouts Abbildung36: Bereich "Compensation" (Vergütung) und "Beschreibung" in Salesforce1 Wie beim Testen der erweiterten Felder weiter vorne in diesem Kapitel werden die Änderungen zur Optimierung der Anordnung der Felder in Salesforce1 übernommen. Sehen wir uns anhand der Stelle, die wir gerade auf der vollständigen Site erstellt haben, an, wie gespeicherte Datensätze auf einem Mobilgerät dargestellt werden. 4. Tippen Sie auf Abbrechen. 5. Tippen Sie auf die Stelle, die wir gerade erstellt haben. In Salesforce1 werden zwei Ansichten angezeigt, zwischen denen wir durch Streichen nach links oder rechts wechseln können. Es gibt noch eine dritte Ansicht, diese wird jedoch erst angezeigt, wenn wir die Feed-Verfolgung im Abschnitt Zusammenarbeit mit Chatter auf Seite 255 aktivieren – bleiben Sie also dran! Einführung in die Datensatz-Detailseite Unsere aktuelle Ansicht ist die Datensatz-Detailseite, die alle Informationen enthält, die im Seitenlayout-Editor über einer Themenliste oder mobilen Karte angezeigt werden. Glücklicherweise werden alle Felder, die wir hinzugefügt haben, unterstützt, denken Sie jedoch daran, dass Salesforce1 keine benutzerdefinierten Rich-Text-Bereichsfelder unterstützt. 109 Kapitel 5: Erweitern der einfachen Anwendung mit erweiterten Feldern, Datenvalidierung und Seitenlayouts Abbildung37: Datensatz-Detailseite für einen Stellendatensatz Beyond the Basics Da unser Seitenlayout nur eine Handvoll von Feldern enthält, sollte es für mobile Benutzer problemlos dargestellt werden können. Berücksichtigen Sie später jedoch, dass Ihre Benutzer über verschiedene Geräte auf diese Seitenlayouts zugreifen werden. Bei einer großen Anzahl von Feldern, z. B. mehr als 100, wird es schwierig für Benutzer, die erforderlichen Informationen einzugeben oder zu finden. Es ist am besten, entweder alle Seitenlayouts für die mobile Verwendung zu optimieren oder Seitenlayouts speziell für mobile Benutzer zu erstellen. Weitere bewährte Vorgehensweisen werden im Salesforce1 App Admin Guide beschrieben. Einführung in die Seite mit den datensatzbezogenen Informationen Streichen einmal nach links, um die zugehörigen Informationen des Datensatzes anzuzeigen. 110 Kapitel 5: Erweitern der einfachen Anwendung mit erweiterten Feldern, Datenvalidierung und Seitenlayouts Abbildung38: Seite mit zugehörigen Informationen für einen Stellendatensatz Im Gegensatz zur vollständigen Seite, auf der die Details jeder Themenliste angezeigt werden, werden in Salesforce1 nur die Namen der Themenlisten angezeigt. Sie können auf jede beliebige Themenliste tippen, um die zugehörigen Datensätze anzuzeigen. Da wir wissen, dass die Themenliste "Offene Aktivitäten" über einen Eintrag verfügt – die Aufgabe, die wir gerade erstellt haben –, lassen Sie uns diese Themenliste überprüfen. Tippen Sie auf Offenen Aktivitäten, um die Details dieser Themenliste anzuzeigen. Auf der Seite "Offene Aktivitäten" wird die Aufgabe angezeigt, die wir auf der vollständigen Site erstellt haben. Um noch mehr Informationen über die Aufgabe anzuzeigen, können wir auf den Eintrag tippen. Dadurch werden die Datensatzdetails der Aufgabe angezeigt. Einführung in mobile Karten Das ist noch nicht alles! Wir können zudem auf der Seite mit den datensatzbezogenen Informationen mobile Karten hinzufügen. Mithilfe von mobilen Karten können Sie auf der Informationsseite drei Typen von Elementen hinzufügen: Karten mit zugehörigen Nachschlagevorgängen, Komponentenkarten und Karten mit Visualforce-Seiten. Karten mit zugehörigen Nachschlagevorgängen Karten mit zugehörigen Nachschlagevorgängen werden angezeigt, wenn Sie ein Feld aus der Kategorie "Erweiterte Nachschlagevorgänge" im Abschnitt "Mobile Karten" des 111 Kapitel 5: Erweitern der einfachen Anwendung mit erweiterten Feldern, Datenvalidierung und Seitenlayouts Editors für erweitertes Seitenlayout hinzufügen. Diese Felder verfügen alle über eine Nachschlagebeziehung mit einem anderen Datensatz. Komponentenkarten Komponentenkarten werden angezeigt, wenn Sie ein Element aus der Kategorie "Komponenten" im Abschnitt "Mobile Karten" des Editors für erweitertes Seitenlayout hinzufügen. Karten mit Visualforce-Seiten Karten mit Visualforce-Seiten enthalten Visualforce-Seiten, die für Salesforce-Mobilanwendungen aktiviert wurden. Wenn Sie sich mit Visualforce nicht auskennen, machen Sie sich keine Sorgen. Wir werden das im Abschnitt Jenseits der Point-and-Click-Anwendungsentwicklung auf Seite 393 behandeln. Wir verfügen zwar über keine Visualforce-Seiten oder -Komponenten, die wir auf der Seite mit den zugehörigen Informationen hinzufügen können, wir haben jedoch einige erweiterte Nachschlagevorgänge. Lassen Sie uns diese jetzt hinzufügen. 1. 2. 3. 4. Öffnen Sie auf der vollständigen Salesforce-Site das Seitenlayout für Stellen. Wählen Sie in der Palette die Kategorie "Erweiterte Nachschlagevorgänge" aus. Ziehen Sie Zuletzt geändert von in den Abschnitt "Mobile Karten". Klicken Sie auf Speichern. Abbildung39: Ein erweiterter Nachschlagevorgang im Abschnitt "Mobile Karten" Wir müssen nur wissen, welcher Benutzer unseren Stellendatensatz zuletzt geändert hat, es ist jedoch wichtig zu wissen, dass die mobilen Karten in der hier im Seitenlayout-Editor festgelegten Reihenfolge angeordnet werden und dass die Themenlisten stets nach den mobilen Karten angezeigt werden. Darüber hinaus werden mobile Karten nur in Salesforce1 angezeigt. 5. Öffnen Sie in Salesforce1 erneut unseren Stellendatensatz. Die Karte mit den Nachschlagevorgängen, die wir hinzugefügt haben, wird jetzt am Anfang der Seite mit den zugehörigen Informationen angezeigt und gibt den Benutzer an, der den Datensatz zuletzt geändert hat. 112 Kapitel 5: Erweitern der einfachen Anwendung mit erweiterten Feldern, Datenvalidierung und Seitenlayouts Abbildung40: Seite mit den zugehörigen Informationen mit erweitertem Nachschlagevorgang Es sieht so aus, als ob alles in Ordnung wäre! Mit nur wenigen Schritten im Setup haben wir ein Objekt mit einer Registerkarte erstellt, benutzerdefinierte Felder hinzugefügt und diese in einem Seitenlayout angeordnet. Wir haben die Erstellung unserer einfachen Anwendung abgeschlossen und damit schon ein gutes Stück Arbeit für die komplexere Personalbeschaffungsanwendung erledigt, die wir weiter vorne beschrieben haben. Einführung zu kompakten Layouts Jetzt wissen wir, wie Seitenlayouts letztendlich in Salesforce1 aussehen, und wollen uns eine weitere Möglichkeit ansehen, um die Darstellung unserer Salesforce-Daten auf Mobilgeräten anzupassen. Kompakte Layouts werden verwendet, um die wichtigsten Felder eines Datensatzes auf einen Blick anzuzeigen. Mithilfe von kompakten Layouts können wir angeben, welche Felder im Hervorhebungsbereich eines Datensatzes angezeigt werden sollen. Diese Layouts wurden speziell für mobile Geräte mit Touchscreen entwickelt, auf denen der Platz begrenzt ist. Es wurde darauf geachtet dass die Benutzer wichtige Informationen möglichst schnell finden können. 113 Kapitel 5: Erweitern der einfachen Anwendung mit erweiterten Feldern, Datenvalidierung und Seitenlayouts Wir können festlegen, wie die Felder in den Hervorhebungen angezeigt werden, indem wir das kompakte Layout des betreffenden Objekts anpassen. Es ist jedoch nicht erforderlich, ein benutzerdefiniertes kompaktes Layout zu erstellen. Wenn wir nicht selbst eines erstellen, verwendet Salesforce1 ein schreibgeschütztes vordefiniertes kompaktes Standardlayout des Systems. Bei benutzerdefinierten Objekten enthält das Systemstandardlayout den Namen des Datensatzes. Im Falle des Objekts "Position" (Stelle) wird im kompakten Standardlayout des Systems Position Title (Stellentitel) angezeigt. Probieren Sie es aus: Erstellen eines kompakten Layouts Stellen wir unseren mobilen Benutzern nun mehr Kontext in den Hervorhebungen zur Verfügung. 1. Klicken Sie auf der vollständigen Salesforce-Site unter "Setup" auf Erstellen > Objekte. 2. Klicken Sie auf Position (Stelle). 3. Klicken Sie in der Themenliste "Kompakte Layouts" auf Neu. 4. Geben Sie für Bezeichnung Position (Stelle) ein. Drücken Sie die TABULATORTASTE, um automatisch einen Eintrag in Name einzufügen. Nun ist es an der Zeit, die Felder auszuwählen, die wir in das kompakte Layout einfügen möchten. Wir können bis zu zehn Felder einfügen, nur vier von ihnen werden jedoch in den Datensatzhervorhebungen auf einem mobilen Gerät angezeigt. Beachten Sie, dass die Liste der verfügbaren Felder nicht genau mit der Liste der Felder übereinstimmt, die wir für das Objekt "Position" (Stelle) erstellt haben. Hier werden nur Feldtypen angezeigt, die in kompakten Layouts unterstützt werden. Die Feldtypen "Textbereich", "Langer Textbereich", "Rich-Text-Bereich" und "Mehrfachauswahllisten" werden in kompakten Layouts nicht unterstützt. Ferner ist es wichtig, dass ein Benutzer, der für ein in das kompakte Layout eingefügtes Feld nicht über die Feldebenensicherheit verfügt, den entsprechenden Feldwert im kompakten Layout nicht angezeigt bekommt. Beispiel: Wenn wir Min Pay (Mindestgehalt) in das kompakte Layout einfügen und ein Benutzer, der keinen Zugriff auf dieses Feld hat, einen Stellendatensatz auf seinem Mobiltelefon aufruft, bleibt der Wert für Min Pay (Mindestgehalt) leer. 114 Kapitel 5: Erweitern der einfachen Anwendung mit erweiterten Feldern, Datenvalidierung und Seitenlayouts Abbildung41: Bearbeitungsseite "Kompaktes Layout" für Stellen 5. Wählen Sie die folgenden Felder für das kompakte Layout aus und klicken Sie dann auf Hinzufügen. Sie können die Felder entweder einzeln auswählen und hinzufügen oder sie mit STRG + Klicken als Gruppe auswählen. • • • • Hire By (Einstellen bis) Job Level (Stellenebene) Position Title (Stellentitel) Status 6. Passen Sie die Liste über die Schaltflächen Nach oben bzw. Nach unten so an, dass die Felder in folgender Reihenfolge angezeigt werden: Position Title (Stellentitel), Status, Hire By (Einstellen bis), Job Level (Stellenebene). 7. Klicken Sie auf Speichern. Probieren Sie es aus: Zuweisen des primären kompakten Layouts Damit dieses kompakte Layout auf unseren mobilen Geräten angezeigt werden kann, müssen wir es unseren Benutzern zuweisen. Im Gegensatz zu Seitenlayouts, bei denen Sie den einzelnen Profilen verschiedene Layouts zuweisen können, wird allen Benutzern ein kompaktes Layout zugeordnet. Weisen wir dieses neue kompakte Layout also nun zu, damit unseren Benutzern mehr angezeigt wird als lediglich der Stellentitel. 1. Klicken Sie auf Zuordnungen für kompaktes Layout. 2. Wählen Sie in der Dropdownliste Primäres kompaktes Layout den Eintrag "Position" (Stelle) aus. 3. Klicken Sie auf Speichern. Jetzt probieren wir es auf unseren mobilen Geräten aus. Die gerade vorgenommenen Änderungen sollten direkt in Salesforce1 zu sehen sein. 1. Starten Sie Salesforce1 und melden Sie sich an, sofern Sie dies noch nicht getan haben. 115 Kapitel 5: Erweitern der einfachen Anwendung mit erweiterten Feldern, Datenvalidierung und Seitenlayouts 2. Tippen Sie im Navigationsmenü auf Mehr anzeigen > Positions (Stellen). 3. Tippen Sie auf eine zuletzt verwendete Stelle, um diese zu öffnen. Beyond the Basics Wenn Sie über einem Objekt zugeordnete Datensatztypen verfügen, können Sie die Zuweisung des primären kompakten Layouts überschreiben und verschiedenen Datensatztypen bestimmte kompakte Layouts zuweisen. Wenn Sie keine Datensatztyp-Überschreibungen festlegen, verwenden alle Datensatztypen standardmäßig das primäre kompakte Layout des Objekts. Weitere Informationen zu kompakten Layouts und Datensatztypen finden Sie in der Salesforce-Hilfe unter "Zuweisen kompakter Layouts zu Datensatztypen". Rekapitulation In den Datensatzhervorhebungen werden jetzt also die Felder angezeigt, die wir in unserem benutzerdefinierten kompakten Layout ausgewählt haben. Jetzt wird nicht mehr nur der Stellentitel angezeigt, sondern auch dessen Status, der Zeitpunkt, bis zu dem die Stelle besetzt werden muss, und um welche Art von Stelle es sich handelt. Beachten Sie, dass Position Title (Stellentitel) gegenüber den anderen drei Einträgen hervorgehoben ist. Dies ist das primäre Feld. Wenn Sie Ihre eigenen kompakten Layouts erstellen, achten Sie darauf, dass das erste Feld in der Liste "Ausgewählte Felder" das primäre Feld in den Hervorhebungen ist. Abbildung42: Datensatz-Detailseite mit angepasstem kompaktem Layout Im nächsten Kapitel wird alles noch interessanter. Wir fügen einige weitere benutzerdefinierte Objekte hinzu, um den Überblick über Elemente wie Bewerber, Stellenbewerbungen und Reviews zu behalten, und dann erweitern wir unsere Personalbeschaffungsanwendung noch weiter, indem wir festlegen, in welchem Bezug die Objekte zueinander stehen. Und ehe Sie sich versehen, haben wir eine extrem leistungsstarke Webanwendung erstellt, wobei wir alles einfach nur mit einigen Klicks in der Plattform implementieren. 116 Kapitel 6 Erweitern der einfachen Anwendung durch Beziehungen Themen: • • • • • • • • Einführung zu Beziehungen Einführung in benutzerdefinierte Beziehungsfelder Hinzufügen von Bewerbern Verbinden von "Candidates" (Bewerber) und "Positions" (Stellen) mithilfe von "Job Applications" (Stellenbewerbungen) Einführung zu Suchlayouts Verwalten von Review-Bewertungen Erstellen einer n:n-Beziehung Zusammenführung Wir haben inzwischen schon einiges erreicht: Wir haben die Personalbeschaffungsanwendung erstellt und ein voll funktionsfähiges benutzerdefiniertes Objekt für Stellen mit einer Registerkarte und mehreren Feldtypen eingerichtet. Das ist ein guter Anfang, es gibt jedoch noch mehr zu tun. Eine Personalbeschaffungsanwendung mit nur einem einzigen Objekt ist wie eine Party mit nur einem einzigen Gast – nicht wirklich interessant. Wir müssen noch mehr "Leute" zu der Party einladen, indem wir benutzerdefinierte Objekte erstellen, die für Bewerber, Stellenbewerbungen und Reviews stehen, und, was noch wichtiger ist, wir müssen Beziehungen zwischen ihnen erstellen. Wie auch eine Party nicht besonders viel Spaß macht, wenn man keinen der anderen Gäste kennt, ist auch eine Anwendung nicht besonders brauchbar, wenn ihre Objekte keine Verknüpfungen mit anderen Objekten in der Anwendung aufweisen. Darum geht es in diesem Kapitel. Fangen wir also an. 117 Kapitel 6: Erweitern der einfachen Anwendung durch Beziehungen Einführung zu Beziehungen Was ist also eine Beziehung und warum spielen Beziehungen für unsere Anwendung eine wichtige Rolle? Eine persönliche Beziehung ist eine Verbindung zwischen zwei Personen, an der beide Seiten beteiligt sind. Genauso verhält es sich mit relationalen Daten: Eine Beziehung ist eine zweiseitige Zuordnung zwischen zwei Objekten. Ohne Beziehungen könnten wir beliebig viele benutzerdefinierte Objekte erstellen, es gäbe jedoch keine Möglichkeit, diese miteinander zu verbinden. Wenn wir beispielsweise ein Objekt namens "Position" (Stelle) und eines namens "Job Application" (Stellenbewerbung) erstellen, könnten wir zahlreiche Informationen zu einer bestimmten Stelle und unzählige Daten zu einem bestimmten Bewerber zusammentragen, der sich für diese Stelle beworben hat. Wir hätten allerdings nicht die Möglichkeit, Informationen zur Stellenbewerbung anzuzeigen, wenn wir den Stellendatensatz betrachten, und umgekehrt könnten wir keine Informationen zur Stelle sehen, wenn wir den Stellenbewerbungsdatensatz betrachten. Das ist nicht sinnvoll! Mithilfe von Beziehungen können wir diese Verbindung erstellen und Daten zu anderen verwandten Objektdatensätzen auf der Detailseite eines bestimmten Datensatzes anzeigen. Nachdem wir beispielsweise eine Beziehung zwischen den eben erwähnten Objekten "Position" (Stelle) und "Job Application" (Stellenbewerbung) definiert haben, kann unser Stellendatensatz eine Themenliste mit allen Stellenbewerbungen der Bewerber enthalten, die sich für die betreffende Stelle beworben haben. Genauso kann in einem Stellenbewerbungsdatensatz ein Link zu den Stellen eingefügt werden, für die sich der Bewerber bewirbt. Wir können es uns in etwa so vorstellen, dass plötzlich die "Leute" auf unserer "Party" einige andere Gäste kennen. Auch unsere Anwendung ist jetzt schon viel interessanter. 118 Kapitel 6: Erweitern der einfachen Anwendung durch Beziehungen Abbildung43: Beziehungen ermöglichen das Anzeigen von Informationen zu Datensätzen anderer Objekte auf einer Datensatz-Detailseite. Einführung in benutzerdefinierte Beziehungsfelder Wie wir in Datenbankbezogene Konzepte auf Seite 31 gelernt haben, können wir eine Beziehung zwischen zwei Objekten durch die Verwendung gemeinsamer Felder definieren. Auf der Plattform können wir Beziehungen zwischen Objekten durch Erstellen eines benutzerdefinierten Beziehungsfelds definieren, das zwei Objekte einander zuordnet. Ein Beziehungsfeld ist ein benutzerdefiniertes Feld in einem Objektdatensatz, das einen Link zu einem anderen Datensatz enthält. Wenn wir ein benutzerdefiniertes Beziehungsfeld auf einem Objekt platzieren, erstellen wir praktisch eine n:1-Beziehung zwischen dem Objekt, auf dem das Beziehungsfeld platziert wurde, und dem anderen Objekt. Es gibt verschiedene Typen von Beziehungen, die jeweils unterschiedliche Implikationen mit sich bringen. Der einfachste und flexibelste Typ ist ein Nachschlagebeziehungsfeld, das eine einfache Beziehung zwischen zwei Objekten erstellt. Wenn wir beispielsweise ein Nachschlagebeziehungsfeld auf einem Stellenbewerbungsobjekt platzieren, das auf Stellendatensätze verweist, so können mehrere Stellenbewerbungsdatensätze in Bezug zu ein und demselben Stellendatensatz gesetzt werden. Dies spiegelt sich sowohl in einem neuen Feld vom Typ Position (Stelle) im Stellenbewerbungsdatensatz wider als auch in einer neuen Themenliste "Job Applications" (Stellenbewerbungen) im Stellendatensatz. Sie können auch 119 Kapitel 6: Erweitern der einfachen Anwendung durch Beziehungen mehrere Nachschlagebeziehungsfelder auf einem einzelnen Objekt platzieren. Unser Objekt "Job Applications" (Stellenbewerbungen) kann also zusätzlich auf ein Objekt vom Typ "Candidate" (Bewerber) verweisen. Ein zweiter Typ von Beziehungsfeld Master-Detail-Beziehung, ist ein wenig komplexer, bietet jedoch mehr Möglichkeiten. Master-Detail-Beziehungen erstellen eine spezielle Über-/Unterordnungsbeziehung zwischen Objekten: Das Objekt, auf dem Sie die Master-Detail-Beziehung erstellen, ist das untergeordnete Objekt ("Detail") und das Objekt, das in dem Feld referenziert wird, ist das übergeordnete Objekt ("Master"). In einer Master-Detail-Beziehung richten sich Inhaberschaft und Freigabe von Detaildatensätzen nach dem Master-Datensatz. Wenn der Master-Datensatz gelöscht wird, werden auch automatisch alle zugehörigen Detaildatensätze gelöscht. Felder mit Master-Detail-Beziehung sind in Detaildatensätzen immer Pflichtfelder und wenn Sie den Wert eines Felds mit Master-Detail-Beziehung einmal festgelegt haben, können Sie ihn nicht mehr ändern. Wann verwenden Sie eine Master-Detail-Beziehung? Bei Objekten, deren Bedeutung von einem anderen Objekt abhängt. Nehmen wir beispielsweise an, Sie haben ein benutzerdefiniertes Objekt vom Typ "Review", das das Feedback eines Gesprächsleiters zu einer Stellenbewerbung enthält. Wenn Sie einen Stellenbewerbungsdatensatz löschen, möchten Sie vermutlich auch alle zugehörigen Review-Datensätze löschen, da Reviews zu einem Element, das nicht mehr existiert, nicht sonderlich nützlich sind. In diesem Fall sollten Sie eine Master-Detail-Beziehung auf dem benutzerdefinierten Objekt "Review" erstellen, mit dem Objekt "Job Application" (Stellenbewerbung) als Master-Objekt. Das ist die Art von Aufgaben, mit der sich dieses Kapitel befasst. Beginnen wir zunächst mit einem schnellen und einfachen Beispiel: Wir platzieren ein Feld vom Typ Hiring Manager (Einstellungs-Manager) auf unserem Stellenobjekt. Wir erstellen eine n:1-Beziehung zwischen dem Stellenobjekt und dem standardmäßigen Benutzerobjekt, das zu jeder Organisation gehört, um die Tatsache widerzuspiegeln, dass ein Einstellungs-Manager für mehrere Stellen gleichzeitig zuständig sein kann. Anschließend erstellen wir einige weitere Objekte und implementieren eine komplexere Beziehung, zu der Stellen, Stellenbewerbungen, Bewerber und Reviews gehören. Probieren Sie es aus: Zuordnen von Einstellungs-Managern zu Stellen Ordnen wir für unsere erste Beziehung einem Einstellungs-Manager eine Stelle zu, indem wir ein Nachschlagebeziehungsfeld in das Objekt "Position" (Stelle) einfügen. Mithilfe des Nachschlagefelds können Benutzer den Einstellungs-Manager für die Stelle auswählen, indem sie eine Auswahl aus allen Benutzern der Personalbeschaffungsanwendung treffen. 120 Kapitel 6: Erweitern der einfachen Anwendung durch Beziehungen Wenn unser Personalbeschaffungsmitarbeiter Mario Ruiz beispielsweise Phil Katz als Einstellungs-Manager für die Stelle "Benefits Specialist" zuordnen möchte, kann er dies tun, indem er auf das Nachschlagesymbol ( ) neben dem Nachschlagebeziehungsfeld klickt, das wir jetzt erstellen. Der Name wird dann auf der Detailseite "Position" (Stelle) angezeigt. Wir müssen zur bekannten Detailseite für das Objekt Position (Stelle) zurückkehren, um das Nachschlagebeziehungsfeld erstellen zu können, mit dem dieser Vorgang ausgeführt werden kann. 1. 2. 3. 4. 5. Klicken Sie unter "Setup" auf Erstellen > Objekte. Klicken Sie auf Position (Stelle). Klicken Sie in der Themenliste "Benutzerdefinierte Felder & Beziehungen" auf Neu. Wählen Sie Nachschlagebeziehung aus und klicken Sie auf Weiter. Wählen Sie in der Dropdownliste Bezug zu die Option "Position" (Stelle) aus und klicken Sie auf Weiter. Wie bereits erwähnt, ist "Benutzer" ein Standardobjekt, das in allen Organisationen der Plattform enthalten ist. Es enthält Informationen zu allen Personen, die die Anwendung in Ihrer Organisation verwenden. 6. Geben Sie im Textfeld Feldbezeichnung den Wert Hiring Manager (Einstellungs-Manager) ein. Wenn Sie den Cursor bewegen, sollte das Textfeld Feldname ebenfalls automatisch mit "Hiring_Manager" ausgefüllt werden. 7. Klicken Sie auf Weiter. 8. Übernehmen Sie die Standardwerte in den restlichen beiden Schritten des Assistenten. 9. Klicken Sie auf Speichern. Rekapitulation Kehren Sie nun zur Registerkarte "Positions" (Stellen) zurück und klicken Sie auf Neu. Auf der Bearbeitungsseite für die Stelle wurde ein neues Nachschlagefeld namens Hiring Manager (Einstellungs-Manager) erstellt. Wenn Sie auf das Nachschlagesymbol neben diesem Feld ( ) klicken, können Sie alle Benutzer der Personalbeschaffungsanwendung durchsuchen und einen als Einstellungs-Manager festlegen. Der Name des betreffenden Benutzers wird jetzt im Stellendatensatz angezeigt. 121 Kapitel 6: Erweitern der einfachen Anwendung durch Beziehungen Abbildung44: Nachschlagebeziehung für "Hiring Manager" (Einstellungs-Manager) Wie Sie sehen, war es ganz leicht, diese einfache Beziehung zwischen Stellen und Benutzern einzurichten. Im Allgemeinen werden Sie feststellen, dass sich Beziehungen recht einfach einrichten lassen. Wenn wir jedoch Beziehungen erstellen möchten, die nicht eine einfache n:1-Beziehung darstellen, wird es etwas komplizierter. Ein Beispiel hierfür betrachten wir etwas später. Erstellen wir jetzt ein benutzerdefiniertes Objekt für Bewerber, sodass wir weitere Beziehungen in unserer Personalbeschaffungsanwendung erstellen können. Beyond the Basics Wussten Sie, dass Sie den Schemagenerator verwenden können, um die Details Ihres Schemas anzuzeigen und schnell Objekte und Beziehungsfelder hinzuzufügen oder zu bearbeiten? Angenommen, es fällt Ihnen schwer zu visualisieren, wie sich das Nachschlagen von "Hiring Manager" (Einstellungs-Manager) zu den Stellen- und Benutzerobjekten verhält. Der Schemagenerator bietet eine dynamische Umgebung, in der Sie Details zu Feldern anzeigen können, beispielsweise ob das Feld erforderlich ist. Zudem wird dargestellt, wie standardmäßige und benutzerdefinierte Objekte über Nachschlagebeziehungen und Master-Detail-Beziehungen miteinander verbunden sind. Sie können im Schemagenerator die Zoom- und Schwenkfunktion nutzen, die Eigenschaften von Objekten bearbeiten und beliebige Felder bearbeiten, indem Sie darauf doppelklicken. Weitere Informationen finden Sie unter "Arbeiten mit dem Schemagenerator" in der Salesforce-Hilfe. 122 Kapitel 6: Erweitern der einfachen Anwendung durch Beziehungen Hinzufügen von Bewerbern Fügen wir das benutzerdefinierte Objekt "Candidate" (Bewerber) zu unserer Anwendung hinzu, sodass wir die Informationen zu unseren Bewerbern verwalten können. Außerdem fügen wir Felder zum Objekt hinzu, ändern die Eigenschaften des Seitenlayouts, fügen ein kompaktes Layout hinzu und erstellen einen Bewerberdatensatz. Die Erstellung des benutzerdefinierten Objekts "Candidate" (Bewerber) läuft fast genau so ab wie vorhin die Erstellung des benutzerdefinierten Objekts "Position" (Stelle), weshalb wir uns hier kurz fassen. Probieren Sie es aus: Erstellen des Objekts "Candidate" (Bewerber) Um das benutzerdefinierte Objekt "Candidate" (Bewerber) zu erstellen, klicken Sie unter "Setup" auf Erstellen > Objekte, klicken Sie auf Neues benutzerdefiniertes Objekt und füllen Sie die Seite gemäß der folgenden Tabelle aus. Tabelle8: Werte für die Definition des Objekts "Candidate" (Bewerber) Feld Wert Bezeichnung Candidate (Bewerber) Bezeichnung – Plural Candidates (Bewerber) Objektname Candidate (Bewerber) Beschreibung Represents an applicant who might apply for one or more positions (Steht für einen Bewerber, der sich um eine oder mehrere Stellen bewirbt) Einstellungen für die kontextabhängige Hilfe Öffnen des Standardfensters von Salesforce Hilfe & Schulung Datensatzname Candidate Number (Bewerbernummer) Datentyp Automatisch nummerieren Anzeigeformat C-{00000} Startnummer 00001 Berichte zulassen Ja 123 Kapitel 6: Erweitern der einfachen Anwendung durch Beziehungen Feld Wert Aktivitäten zulassen Ja Feldverlauf verfolgen Ja Bereitstellungsstatus Bereitgestellt Notizen und Anhänge zum Standardseitenlayout hinzufügen Ja Nach dem Speichern dieses Ja benutzerdefinierten Objekts den Assistenten für eine neue benutzerdefinierte Registerkarte starten Zur Erstellung der Registerkarte "Candidates" (Bewerber) wählen Sie im ersten Schritt des Assistenten einen Registerkartenstil aus und übernehmen Sie dann alle Standardwerte, bis Sie zur Seite "Fügen Sie sie benutzerdefinierten Anwendungen hinzu" gelangen. Wählen Sie auf dieser Seite nur die Personalbeschaffungsanwendung aus und klicken Sie auf Speichern. Die Personalbeschaffungsanwendung weist nun drei Registerkarten auf: "Startseite", "Positions" (Stellen) und "Candidates" (Bewerber). Fügen wir nun einige benutzerdefinierte Felder zum Objekt "Candidate" (Bewerber) hinzu. Probieren Sie es aus: Hinzufügen von Feldern zum Objekt "Candidate" (Bewerber) Um benutzerdefinierte Felder für das Objekt "Candidate" (Bewerber) zu erstellen, klicken Sie unter "Setup" auf Erstellen > Objekte und klicken Sie dann auf Candidate (Bewerber), um die zugehörige Detailseite anzuzeigen. Klicken Sie in der Themenliste "Benutzerdefinierte Felder und Beziehungen" auf Neu, um benutzerdefinierte Felder gemäß der folgenden Tabelle zu erstellen. Wo erforderlich, haben wir einige zusätzliche Werte angegeben, die Sie ausfüllen müssen. Ansonsten können Sie einfach alle Standardwerte übernehmen. Ein Unterschied, den Sie bei den Feldern des Bewerberobjekts feststellen werden, ist, dass bei drei davon – First Name (Vorname), Last Name (Nachname) und Email (E-Mail) – die Option Externe ID ausgewählt ist. Mit dieser Option können die Werte in diesen Feldern für die Suche über die Randleiste der Anwendung indiziert werden. Wenn wir diese Werte nicht als externe IDs auswählen würden, könnten wir ausschließlich anhand des Felds Candidate Number (Bewerbernummer) nach Datensätzen suchen. Die Festlegung des Felds 124 Kapitel 6: Erweitern der einfachen Anwendung durch Beziehungen Email (E-Mail) als externe ID hilft uns weiter hinten in diesem Kapitel auch beim Datenimport. Tabelle9: Objekt "Candidate" (Bewerber) – Benutzerdefinierte Felder Datentyp Feldbezeichnung Andere Werte Text First Name (Vorname) Länge: 50 Externe ID: Ausgewählt Text Last Name (Nachname) Länge: 50 Externe ID: Ausgewählt Phone (Telefon) Phone (Telefon) Email (E-Mail) Email (E-Mail) Externe ID: Ausgewählt Text Street (Straße) Länge: 50 Text City (Stadt) Länge: 50 Text State/Province (Bundesland) Länge: 50 Text Zip/Postal Code (Postleitzahl) Länge: 15 Text Country (Land) Länge: 50 Text Current Employer (Derzeitiger Arbeitgeber) Länge: 50 Zahl Years of Experience (Jahre Erfahrung) Länge: 2 Dezimalstellen: 0 Text SSN Länge: 9 (Sozialversicherungsnummer) Auswahlliste Education (Bildungsabschluss) Auswahllistenwerte: • HS Diploma (High School-Abschluss) • BA/BS (B.A./B.Sc.) • MA/MS/MBA (M.A., M.Sc., MBA) • Ph.D. (Promotion) • Post Doc (Post-Doc) 125 Kapitel 6: Erweitern der einfachen Anwendung durch Beziehungen Datentyp Feldbezeichnung Andere Werte Kontrollkästchen Currently Employed (Derzeit Standard: Aktiviert in Beschäftigung) Kontrollkästchen US Citizen (US-Bürger) Standard: Aktiviert Kontrollkästchen Visa Required (Visum erforderlich) Standard: Deaktiviert Phone (Telefon) Mobile (Mobiltelefon) Phone (Telefon) Fax Probieren Sie es aus: Ändern der Eigenschaften für das Layout der Bewerberseite Jetzt ordnen wir alle Felder auf dem Seitenlayout an und markieren einige Felder als "Erforderlich". Hierzu rufen wir das Seitenlayout für die Bewerberseite auf. 1. Klicken Sie unter "Setup" auf Erstellen > Objekte. 2. Klicken Sie auf Candidate (Bewerber). 3. Klicken Sie in der Themenliste "Seitenlayouts" neben "Candidate Layout" (Bewerber-Layout) auf Bearbeiten. 4. Erstellen Sie drei neue zweispaltige Abschnitte unterhalb des Abschnitts "Informationen": "Address" (Anschrift), "Employment" (Beschäftigung) und "Additional Details" (Weitere Details). Ziehen Sie die entsprechenden Felder in diese Bereiche, wie auf dem Bild des Seitenlayouts für das Objekt "Candidate" (Bewerber) dargestellt, und vergessen Sie nicht, auf Schnellspeicherung zu klicken und Ihre Arbeit immer wieder zu speichern. 5. Legen Sie die Felder First Name (Vorname), Last Name (Nachname) und Email (E-Mail) folgendermaßen als "Erforderlich" fest: a. Verwenden Sie Strg+Mausklick, um alle drei erforderlichen Felder auszuwählen. b. Doppelklicken Sie auf die ausgewählten Elemente. c. Aktivieren Sie das Kontrollkästchen Erforderlich in der Zeile "Alle auswählen" und klicken Sie anschließend auf OK. 6. Klicken Sie auf Speichern. 126 Kapitel 6: Erweitern der einfachen Anwendung durch Beziehungen Das Layout der Seite "Candidate" (Bewerber) sollte nun in etwa so aussehen wie der nachfolgend dargestellte Screenshot. Abbildung45: Seitenlayout des Objekts "Candidate" (Bewerber) Rekapitulation Hier eine schnelle Möglichkeit, um zu überprüfen, ob Sie alles richtig gemacht haben: 1. Klicken Sie auf die Registerkarte "Candidates" (Bewerber). 2. Klicken Sie auf Neu. 3. Erstellen Sie einen neuen Datensatz für einen Bewerber namens Ethan Tran aus San Francisco. 4. Geben Sie in jedem der Pflichtfelder einen Wert ein. Salesforce überprüft die im Feld E-Mail eingegebenen E-Mail-Adresse nicht sofort. Sie können also getrost eine fiktive eingeben. 5. Gebe Sie für den Bewerber unter Stadt den Wert San Francisco ein. 6. Klicken Sie auf Speichern. Wie sieht das Seitenlayout aus? Befinden sich die Felder an der gewünschten Position? 127 Kapitel 6: Erweitern der einfachen Anwendung durch Beziehungen Wenn die Seite nicht ganz Ihren Vorstellungen entspricht und Sie einige Anpassungen vornehmen möchten, klicken Sie auf den Link Layout bearbeiten in der rechten oberen Ecke. Abbildung46: Link "Layout bearbeiten" Der Link Layout bearbeiten führt Sie direkt zum Seitenlayout-Editor und ermöglicht Ihnen die Bearbeitung der aktuell angezeigten Seite. Probieren Sie es aus: Anpassen der Hervorhebungen im Bewerberdatensatz Als letzten Arbeitsschritt für dieses benutzerdefinierte Objekt wollen wir zur Unterstützung unserer mobilen Benutzer einige Felder in den Hervorhebungen des Datensatzes hinzufügen. Momentan wird ausschließlich das Feld mit der Bewerbernummer angezeigt, das nicht besonders hilfreich ist. Über die Hervorhebungen wollen wir unserem mobilen Benutzer die erforderlichen Informationen zu diesem Bewerber auf einen Blick verfügbar machen. Nützliche Daten könnten beispielsweise der Standort des Bewerbers oder seine Fertigkeiten sein. 1. 2. 3. 4. Klicken Sie unter "Setup" auf Erstellen > Objekte. Klicken Sie auf Candidate (Bewerber). Klicken Sie in der Themenliste "Kompakte Layouts" auf Neu. Geben Sie dem kompakten Layout einen Namen und verschieben Sie Felder in den Bereich "Verfügbare Felder", sodass sie in folgender Reihenfolge angezeigt werden: • • • • 128 Nachname Stadt Education (Bildung) Years of Experience (Jahre Erfahrung) Kapitel 6: Erweitern der einfachen Anwendung durch Beziehungen 5. Klicken Sie auf Speichern. Denken Sie daran, das neue kompakte Layout schnell als primäres kompaktes Layout für Bewerber zuzuweisen. 6. 7. 8. 9. Klicken Sie auf Zuordnungen für kompaktes Layout. Klicken Sie auf Zuordnung bearbeiten. Wählen Sie in der Dropdownliste das soeben erstellte kompakte Layout aus. Klicken Sie auf Speichern. Rekapitulation Jetzt wollen wir nachsehen, wie ein Bewerberdatensatz auf unserem mobilen Gerät aussieht. 1. Starten Sie Salesforce1 und melden Sie sich bei entsprechender Aufforderung an. 2. Tippen Sie im Navigationsmenü auf Mehr anzeigen > Candidates (Bewerber). 3. Tippen Sie auf C-00001. Abbildung47: Angepasste Datensatzhervorhebungen für C-00001 Die Datensatzhervorhebungen beinhalten bereits einige Daten, zwei der Felder sind jedoch leer. Das liegt daran, dass wir beim Erstellen des Datensatzes im letzten Abschnitt nur die erforderlichen Felder (Vorname, Nachname und E-Mail) sowie das Feld Stadt ausgefüllt haben. Füllen wir also auch die anderen Felder aus, um das kompakte Layout in seiner vollen Pracht anzeigen zu können. 4. Wischen Sie nach links, bis Sie zur Datensatzdetailseite gelangen. 5. Tippen Sie auf Bearbeiten. 6. Füllen Sie einige der leeren Felder aus. Sie können auch noch weitere hinzufügen, sollten aber mindestens sicherstellen, dass in den Feldern Education (Bildung) und Years of Experience (Jahre Erfahrung) Werte vorhanden sind. 7. Tippen Sie auf Speichern. 129 Kapitel 6: Erweitern der einfachen Anwendung durch Beziehungen Abbildung48: Angepasste Datensatzhervorhebungen für C-00001 mit Eintragungen in allen Feldern Wenn Sie erfolgreich einen neuen Bewerberdatensatz erstellen können und in den Hervorhebungen die richtigen Werte angezeigt werden, lassen Sie uns weitergehen zum Objekt "Job Application" (Stellenbewerbung). Verbinden von "Candidates" (Bewerber) und "Positions" (Stellen) mithilfe von "Job Applications" (Stellenbewerbungen) Mit unserer Anwendung können wir Bewerber und offene Stellen verfolgen, ein wichtiges Element fehlt aber noch: Wie erfahren wir, welche Bewerber sich für welche Stellen interessieren? Wir können im Objekt "Candidate" (Bewerber) Nachschlagebeziehungsfelder erstellen, in denen Personalbeschaffungsmitarbeiter die Stellen angeben können, für die sich der Bewerber interessiert. Wie können wir aber zusätzliche Informationen verfolgen, beispielsweise, ob für den Bewerber ein Bewerbungsgespräch für eine dieser Stellen geplant ist? Und wäre es nicht sinnvoll, wenn der Personalbeschaffungsmitarbeiter die Möglichkeit hätte, die Anschreiben der Bewerber für die einzelnen Stellen, für die sie sich bewerben, zu speichern? Diesen Anforderungen können wir mit dem benutzerdefinierten Objekt "Job Application" (Stellenbewerbung) gerecht werden, in dem Daten zu der Bewerbung der einzelnen Bewerber für eine bestimmte Stelle gespeichert werden. Immer wenn sich ein Bewerber für eine Stelle bewirbt, kann der Personalbeschaffungsmitarbeiter einen Stellenbewerbungsdatensatz erstellen, in dem der Name des Bewerbers und die Stelle, für die er sich bewirbt, sowie das Anschreiben, das der Bewerber genau für diese Stelle verfasst hat, gespeichert werden. Die Personalbeschaffungsmitarbeiter haben zudem die Möglichkeit, den Status der Bewerbung anzugeben, beispielsweise ob für den Bewerber ein Bewerbungsgespräch geplant ist oder ob die Bewerbung abgelehnt wurde. Nachdem wir das Objekt "Job Application" (Stellenbewerbung) und die zugehörigen Felder erstellt haben, nehmen wir an den Objekten "Position" (Stelle), "Candidate" (Bewerber) und "Job Application" (Stellenbewerbung) einige kleinere Änderungen vor, sodass in jedem Stellendatensatz die Namen der Bewerber angezeigt werden, die sich für 130 Kapitel 6: Erweitern der einfachen Anwendung durch Beziehungen diese Stelle beworben haben, und in jedem Bewerberdatensatz die Stellen aufgeführt werden, für die sich der Bewerber beworben hat. Probieren Sie es aus: Erstellen des Objekts "Job Application" (Stellenbewerbung) Dies sollten Sie mittlerweile im Schlaf können! Um das benutzerdefinierte Objekt "Job Application" (Stellenbewerbung) zu erstellen, klicken Sie unter "Setup" auf Erstellen > Objekte, klicken Sie auf Neues benutzerdefiniertes Objekt und füllen Sie die Seite gemäß der folgenden Tabelle aus. Tabelle10: Werte für die Definition des Objekts "Job Application" (Stellenbewerbung) Feld Wert Bezeichnung Job Application (Stellenbewerbung) Bezeichnung – Plural Job Applications (Stellenbewerbungen) Objektname Job_Application Beschreibung Stellt die Bewerbung eines Bewerbers für eine Stelle dar Einstellungen für die kontextabhängige Hilfe Öffnen des Standardfensters von Salesforce Hilfe & Schulung Datensatzname Job Application Number (Stellenbewerbungsnummer) Datentyp Automatisch nummerieren Anzeigeformat JA-{00000} Startnummer 00001 Berichte zulassen Ja Aktivitäten zulassen Ja Feldverlauf verfolgen Ja Bereitstellungsstatus Bereitgestellt Notizen und Anhänge zum Standardseitenlayout hinzufügen Ja 131 Kapitel 6: Erweitern der einfachen Anwendung durch Beziehungen Feld Wert Nach dem Speichern dieses Ja benutzerdefinierten Objekts den Assistenten für eine neue benutzerdefinierte Registerkarte starten Zur Erstellung der Registerkarte "Job Applications" (Stellenbewerbungen) wählen Sie im ersten Schritt des Assistenten einen Registerkartenstil aus und übernehmen Sie dann alle Standardwerte, bis Sie zur Seite "Fügen Sie sie benutzerdefinierten Anwendungen hinzu" gelangen. Wählen Sie auf dieser Seite nur die Personalbeschaffungsanwendung aus und klicken Sie dann auf Speichern. Nun benötigen wir nur noch ein paar benutzerdefinierte Felder, damit wir das Objekt "Job Application" (Stellenbewerbung) mit den Objekten "Position" (Stelle) und "Candidate" (Bewerber) verknüpfen können. Probieren Sie es aus: Hinzufügen von Feldern zum Objekt "Job Application" (Stellenbewerbung) Auch dieses Verfahren haben wir bereits mehrmals zuvor durchgeführt. Diesmal brauchen wir jedoch nur vier benutzerdefinierte Felder zu erstellen anstatt der fast zwanzig, die wir für das Objekt "Candidate" (Bewerber) eingerichtet haben. Wir müssen ein Textfeld für das Anschreiben des Bewerbers hinzufügen, ein Auswahllistenfeld, in dem wir den Status der Bewerbung verfolgen können, und zwei Nachschlagebeziehungsfelder, die Beziehungen zwischen dem Objekt "Job Application" (Stellenbewerbung) und den Objekten "Position" (Stelle) und "Candidate" (Bewerber) erstellen. Auch wenn diese Felder fast mit den zuvor erstellten identisch sind, werden Sie bei der Definition der Nachschlagebeziehungsfelder feststellen, dass es im Assistenten für benutzerdefinierte Felder einen neuen Schritt gibt, nämlich Schritt 6: Benutzerdefinierte Themenlisten hinzufügen. In diesem Schritt des Assistenten können wir eine Überschrift für die Themenliste "Job Applications" (Stellenbewerbungen) angeben, die auf den Detailseiten für Bewerber und Stellen angezeigt werden. Warum wurde dieser Schritt nicht bereits bei der Erstellung des Nachschlagefelds Hiring Manager (Einstellungs-Manager) angezeigt? Dies liegt daran, dass "Benutzer" ein ganz spezielles Standardobjekt ist: Es weist keine Registerkarte auf und Sie können keine Themenlisten dazu hinzufügen. Die Plattform weiß das und überspringt daher den Schritt für 132 Kapitel 6: Erweitern der einfachen Anwendung durch Beziehungen die Themenlisten, wenn ein Nachschlagebeziehungsfeld hinzugefügt wird, das auf das Objekt "Benutzer" verweist. Nachdem wir nun diesen kleinen Unterschied geklärt haben, sollten wir diese Felder für das Objekt "Job Application" (Stellenbewerbung) fertig stellen. Klicken Sie unter "Setup" auf Erstellen > Objekte und klicken Sie dann auf Job Application (Stellenbewerbung), um die zugehörige Detailseite anzuzeigen. Klicken Sie in der Themenliste "Benutzerdefinierte Felder und Beziehungen" auf Neu, um benutzerdefinierte Felder gemäß der folgenden Tabelle zu erstellen. Wo erforderlich, haben wir einige zusätzliche Werte angegeben, die Sie ausfüllen müssen. Ansonsten können Sie einfach alle Standardwerte übernehmen. Tabelle11: Hinzufügen von Feldern zum Objekt "Job Application" (Stellenbewerbung) Datentyp Feldbezeichnung Andere Werte Nachschlagebeziehung Candidate (Bewerber) Bezug zu: Candidate (Bewerber) Bezeichnung der Themenliste: Job Applications (Stellenbewerbungen) Nachschlagebeziehung Position (Stelle) Bezug zu: Position (Stelle) Bezeichnung der Themenliste: Job Applications (Stellenbewerbungen) Textbereich (lang) Auswahlliste Cover Letter (Anschreiben) Länge: 32,768 Status Auswahllistenwerte: • New (Neu) • Review Resume (Lebenslauf überprüfen) • Phone Screen (Telefonisches Vorgespräch) • Schedule Interviews (Bewerbungsgespräche planen) • Extend an Offer (Angebot unterbreiten) • Hired (Eingestellt) • Rejected (Abgelehnt) Anzahl sichtbarer Zeilen: 6 Ersten Wert als Standardwert verwenden: Ausgewählt 133 Kapitel 6: Erweitern der einfachen Anwendung durch Beziehungen Probieren Sie es aus: Anpassen der Hervorhebungen für den Stellenbewerbungsdatensatz Da hier nur wenige Felder vorhanden sind, müssen wir uns über die Anpassung des Seitenlayouts nicht kümmern. Es lohnt sich allerdings, das kompakte Layout anzupassen. 1. Klicken Sie unter "Setup" auf Erstellen > Objekte. 2. Klicken Sie auf Job Application (Stellenbewerbung). 3. Klicken Sie in der Themenliste "Kompakte Layouts" auf Neu, um ein kompaktes Layout mit folgenden Feldern zu erstellen: Geben Sie unter Bezeichnung einen Namen ein und passen Sie die Reihenfolge mithilfe der Schaltflächen Nach oben und Nach unten an. • • • • Job Application Number (Stellenbewerbungsnummer) Status Candidate (Bewerber) Position (Stelle) 4. Klicken Sie auf Speichern und weisen Sie dann das neue kompakte Layout als primäres kompaktes Layout für Stellenbewerbungen zu. Rekapitulation Tada! Wenn Sie auf die neue Registerkarte "Job Applications" (Stellenbewerbungen) und anschließend auf Neu klicken, werden das Nachschlagefeld Candidate (Bewerber), das Nachschlagefeld Position (Stelle), das Anschreiben des Bewerbers und ein Auswahllistenfeld namens Status angezeigt. 134 Kapitel 6: Erweitern der einfachen Anwendung durch Beziehungen Abbildung49: Benutzerdefinierte Felder auf der Bearbeitungsseite für "Job Application" (Stellenbewerbung) Vergessen Sie nicht, Salesforce1 zu starten, um das neue kompakte Layout in Aktion zu erleben. Neuen mobilen Benutzern werden wichtige Details angezeigt, ohne dass sie durch eine lange Felderliste blättern müssen. Abbildung50: Datensatzhervorhebungen für einen Stellenbewerbungs-Datensatz Aber es gibt noch mehr! Da wir einige Nachschlagebeziehungen erstellt haben, verfügen unsere Detailseiten für die Bewerber- und Stellendatensätze jetzt über eine neue Themenliste mit dem Namen "Job Applications" (Stellenbewerbungen). Und die Detailseite "Job Application" (Stellenbewerbung) enthält Links zu den Bewerber- und Stellendatensätzen, auf die sie verweist. Alle drei Objekte wurden nun in Beziehung zueinander gesetzt und verknüpft! 135 Kapitel 6: Erweitern der einfachen Anwendung durch Beziehungen Abbildung51: Links zu Daten für "Position" (Stelle) und "Candidate" (Bewerber) in "Job Application" (Stellenbewerbung) Bevor wir fortfahren, wollen wir sehen, ob wir die Gebrauchstauglichkeit unserer Anwendung etwas optimieren können, damit die Benutzer Bewerber und Stellenbewerbungen nicht anhand von Zahlen identifizieren müssen, wenn sie auf der Bearbeitungsseite der Stellenbewerbung auf die Schaltfläche zum Nachschlagen klicken oder wenn sie die Themenliste "Job Applications" (Stellenbewerbungen) auf den Detailseiten für "Candidate" (Bewerber) oder "Position" (Stelle) betrachten. Einführung zu Suchlayouts Alle Nachschlagefenster und Themenlisten, die sich aus neuen Beziehungen ergeben, wie beispielsweise diejenigen, die wir in diesem Kapitel definiert haben, zeigen standardmäßig nur den Datensatznamen oder die Datensatznummer an. Wenn Sie beispielsweise eine Stellenbewerbung erstellen, ist das Nachschlagefenster "Candidate" (Bewerber) möglicherweise schwer verständlich, da als einziges Feld Candidate Number (Bewerbernummer) aufgeführt wird. Sie sind wahrscheinlich davon ausgegangen, dass First Name (Vorname), Last Name (Nachname) und weitere Felder angezeigt werden, so wie im folgenden Screenshot dargestellt. 136 Kapitel 6: Erweitern der einfachen Anwendung durch Beziehungen Abbildung52: Standardmäßiges Nachschlagefenster für "Candidate" (Bewerber) im Objekt "Job Application" (Stellenbewerbung) Genauso wird in der Themenliste "Job Applications" (Stellenbewerbungen) auf den Detailseiten "Position" (Stelle) und "Candidate" (Bewerber) nur die Stellenbewerbungsnummer angezeigt. Es wäre viel sinnvoller, wenn diese Themenlisten auch den Namen oder die Stelle des zugehörigen Bewerbers enthielten. Um diese Probleme zu beheben, können wir in den Suchlayouts für die von uns definierten Objekte Felder hinzufügen. Suchlayouts sind geordnete Gruppen von Feldern, die angezeigt werden, wenn ein Datensatz in einem bestimmten Kontext dargestellt wird, beispielsweise in Suchergebnissen, in einem Nachschlagefenster oder in einer Themenliste. Indem wir Felder hinzufügen, können wir den Benutzern weitere Informationen zur Verfügung stellen und ihnen helfen, Datensätze schneller zu finden. In der Themenliste "Suchlayouts" auf der Detailseite für ein benutzerdefiniertes Objekt kann diese Gruppe von Feldern geändert werden. Klicken Sie unter "Setup" auf Erstellen > Objekte und wählen Sie das Objekt "Candidate" (Bewerber) aus. Die verfügbaren Suchlayouts enthalten Folgendes: 137 Kapitel 6: Erweitern der einfachen Anwendung durch Beziehungen Tabelle12: Verfügbare Suchlayouts Layoutname Beschreibung Suchergebnisse Die Suchergebnisse der Randleistensuche auf der linken Seite der Anwendung oder der erweiterten Suche. Suchdialoge Die Ergebnisse des Nachschlagefensters, die Sie erhalten, wenn Sie neben einem Nachschlagefeld auf einer Bearbeitungsseite auf klicken. Suchtelefondialoge Die Ergebnisse des Nachschlagefensters, die Sie erhalten, wenn Sie neben einem Nachschlagefeld mit dem Datentyp "Telefon" auf einer Bearbeitungsseite auf Candidates Tab (Registerkarte "Bewerber") klicken. Die Liste der zuletzt verwendeten Datensätze, die auf der Startseite einer Registerkarte und in den Themenlisten auf den Detailseiten anderer Objekte angezeigt wird. Candidates List View Dieses Layout dient nicht der Angabe von Feldern. Verwenden Sie (Bewerber-Listenansicht) es stattdessen, um die Schaltflächen festzulegen, die in der Listenansichtsseite für ein bestimmtes Objekt angezeigt werden sollen. Suchfilterfelder Die Filter, die auf die Suchergebnisse angewendet werden können. Probieren Sie es aus: Hinzufügen von Feldern im Nachschlagefenster "Candidate" (Bewerber) Fügen wir unserem Nachschlagefenster "Candidate" (Bewerber) Felder hinzu: 1. Klicken Sie unter "Setup" auf Erstellen > Objekte. 2. Klicken Sie auf Candidate (Bewerber). 3. Klicken Sie in der Themenliste "Suchlayouts" neben dem Layout "Suchdialoge" auf Bearbeiten. Die Seite "Suchlayout bearbeiten" enthält eine Liste der verfügbaren Felder des Objekts "Candidate" (Bewerber). Sie können bis zu zehn Felder auswählen, die in das Nachschlagefenster aufgenommen werden sollen, und diese anschließend nach Ihren Wünschen anordnen. Eine Ausnahme bilden die Felder mit dem eindeutigen Namen und der eindeutigen Nummer des Objekts. So muss Candidate Number (Bewerbernummer) beispielsweise zuerst aufgelistet werden. 138 Kapitel 6: Erweitern der einfachen Anwendung durch Beziehungen 4. Verschieben Sie die folgenden Felder in das Feld "Ausgewählte Felder" unterhalb von Candidate Number (Bewerbernummer): • • • • • First Name (Vorname) Last Name (Nachname) City (Stadt) State/Province (Bundesland) Phone (Telefon) 5. Klicken Sie auf Speichern. Schon sind Sie fertig! Kehren Sie nun zur Registerkarte "Positions" (Stellen) zurück und klicken Sie auf Neu, um es auszuprobieren. Wenn Sie neben dem Feld Candidate (Bewerber) auf das Nachschlagesymbol klicken, wird jetzt ein viel sinnvolleres Dialogfeld angezeigt. Abbildung53: Geändertes Nachschlagen für "Candidate" (Bewerber) im Objekt "Job Application" (Stellenbewerbung) Probieren Sie es aus: Aktualisieren zusätzlicher Suchlayouts Jetzt, nachdem wir ein Suchlayout für Nachschlagevorgänge aktualisiert haben, sollte der Rest Ihnen leicht fallen. Verwenden Sie die Themenliste "Suchlayouts" auf der Detailseite für ein benutzerdefiniertes Objekt, um die Anderen Suchlayouts gemäß den Beschreibungen in der folgenden Tabelle zu ändern. 139 Kapitel 6: Erweitern der einfachen Anwendung durch Beziehungen Tabelle13: Zusätzliche Suchlayouts Objekt Suchlayout Fügen Sie diese Felder hinzu Candidate (Bewerber) • • Suchergebnisse • Candidates Tab (Registerkarte "Bewerber") • • • • • Candidate Number (Bewerbernummer) First Name (Vorname) Last Name (Nachname) City (Stadt) State/Province (Bundesland) Phone (Telefon) Candidate (Bewerber) • Suchfilterfelder Candidate Number (Bewerbernummer) First Name (Vorname) Last Name (Nachname) Education (Bildungsabschluss) Years of Experience (Jahre Erfahrung) City (Stadt) State/Province (Bundesland) Country (Land) Currently Employed (Derzeit in Beschäftigung) • • • • • • • • • Position (Stelle) • • • • Suchergebnisse Suchdialoge Positions Tab (Registerkarte "Stellen") Suchfilterfelder • • • • • • • • • Job Application (Stellenbewerbung) 140 • • Suchergebnisse Suchdialoge • Position Title (Stellentitel) Location (Standort) Functional Area (Funktionsbereich) Job Level (Stellenebene) Type (Typ) Hiring Manager (Einstellungs-Manager) Status Open Date (Offen von) Close Date (Offen bis) Job Application Number (Stellenbewerbungsnummer) Kapitel 6: Erweitern der einfachen Anwendung durch Beziehungen Objekt Suchlayout • • Job Applications Tab (Registerkarte "Stellenbewerbungen") Suchfilterfelder Fügen Sie diese Felder hinzu • • • • • • Candidate (Bewerber) Position (Stelle) Status Created Date (Erstelldatum) Owner First Name (Inhabervorname) Owner Last Name (Inhabernachname) Jetzt erstellen wir ein weiteres benutzerdefiniertes Objekt, damit unsere Einstellungs-Manager und Gesprächsleiter ihre Kommentare zu Stellenbewerbungen eingeben können. Verwalten von Review-Bewertungen Gesprächsleiter, Personalbeschaffungsmitarbeiter und Einstellungs-Manager müssen in der Lage sein, Reviews zu erstellen, damit sie ihre Kommentare zu den Stellenbewerbungen der einzelnen Bewerber aufzeichnen und die Eignung des Bewerbers für die jeweilige Stelle beurteilen können. Zudem müssen sie die von anderen Personen geposteten Reviews anzeigen können. Damit unsere Benutzer all diese Aufgaben ausführen können, müssen wir ein benutzerdefiniertes Objekt namens "Review" erstellen und eine Beziehung zwischen diesem Objekt und dem Objekt "Job Application" (Stellenbewerbung) herstellen. Das Objekt "Review" verfügt über eine n:1-Beziehung mit dem Objekt "Job Application" (Stellenbewerbung), da einer Stellenbewerbung einer oder mehrere Reviews zugeordnet werden können. Die zugehörigen Reviews, die die "n"-Seite der Beziehung darstellen, werden über eine Themenliste im Datensatz der Stellenbewerbung angezeigt. Abbildung54: "Review" verfügt über eine n:1-Beziehung mit "Job Application" (Stellenbewerbung) 141 Kapitel 6: Erweitern der einfachen Anwendung durch Beziehungen In diesem Fall verwenden wir hier jedoch ein Feld für eine Master-Detail-Beziehung, anstatt für diese Beziehung ein Nachschlagebeziehungsfeld zu erstellen. Ein Feld für die Master-Detail-Beziehung macht hier Sinn, da Reviews nutzlos werden, wenn sie aus dem Kontext einer Stellenbewerbung herausgerissen werden. Daher möchten wir, dass Reviews automatisch gelöscht werden, wenn wir auch die Stellenbewerbung löschen, auf die sie sich beziehen. Probieren Sie es aus: Erstellen des Objekts "Review" Klicken Sie zum Erstellen des Objekts "Review" unter "Setup" auf Erstellen > Objekte, klicken Sie auf Neues benutzerdefiniertes Objekt und füllen Sie die Seite gemäß der folgenden Tabelle aus. Tabelle14: Werte für die Definition des Objekts "Review" Feld Wert Bezeichnung Review Bezeichnung – Plural Reviews Objektname Review Beschreibung Represents an interviewer's assessment of a particular candidate (Steht für die Einschätzung eines bestimmten Bewerbers durch einen Gesprächsleiter) Einstellungen für die kontextabhängige Hilfe Öffnen des Standardfensters von Salesforce Hilfe & Schulung 142 Datensatzname Review Number (Review-Nummer) Datentyp Automatisch nummerieren Anzeigeformat R-{000000} Startnummer 000001 Berichte zulassen Ja Aktivitäten zulassen Ja Feldverlauf verfolgen Ja Bereitstellungsstatus Bereitgestellt Kapitel 6: Erweitern der einfachen Anwendung durch Beziehungen Feld Wert Notizen und Anhänge zum Standardseitenlayout hinzufügen Ja Nach dem Speichern dieses Nein benutzerdefinierten Objekts den Assistenten für eine neue benutzerdefinierte Registerkarte starten Beachten Sie, dass wir diesmal den Registerkartenassistenten nicht gestartet haben. Für Reviews ist keine eigene Registerkarte erforderlich, da über eine Themenliste auf der Detailseite "Job Application" (Stellenbewerbung) darauf zugegriffen werden kann. Wenn Sie ein Objekt mit einer Registerkarte erstellen, bietet die Plattform Zugriff auf die Datensätze des betreffenden Objekts an verschiedenen anderen Orten als nur der Registerkarte, beispielsweise in Suchergebnissen und in der Liste "Zuletzt verwendete Elemente" im Randleistenbereich jeder Seite. Da die meisten Benutzer der Personalbeschaffungsanwendung keine Reviews in anderen Kontexten zu sehen brauchen als im Rahmen von Stellenbewerbungen, brauchen wir keine separate Registerkarte dafür zu erstellen. Stellen wir nun die benutzerdefinierten Felder für das Objekt "Review" fertig. Probieren Sie es aus: Hinzufügen von Feldern zum Objekt "Review" Beginnen wir mit dem Hinzufügen des Felds vom Typ "Master-Detail-Beziehung", das das Objekt "Review" in Bezug zum Objekt "Job Application" (Stellenbewerbung) setzt. Greifen Sie zur Erstellung des Felds vom Typ "Master-Detail-Beziehung" auf die Detailseite des Objekts "Review" zu. 1. 2. 3. 4. 5. Klicken Sie unter "Setup" auf Erstellen > Objekte. Klicken Sie auf Review. Klicken Sie in der Themenliste "Benutzerdefinierte Felder & Beziehungen" auf Neu. Wählen Sie Master-Detail-Beziehung aus und klicken Sie auf Weiter. Wählen Sie in der Dropdown-Liste Bezug zu die Option "Job Application" (Stellenbewerbung) aus und klicken Sie auf Weiter. 6. Klicken Sie in das Textfeld Feldbezeichnung, um es automatisch mit dem Feldnamen Job_Application auszufüllen. 7. Lassen Sie das Optionsfeld Lese-/Schreibzugriff ausgewählt. 143 Kapitel 6: Erweitern der einfachen Anwendung durch Beziehungen Diese Freigabeeinstellung bewirkt, dass nur diejenigen Benutzer einen Review erstellen, bearbeiten oder löschen können, die auch die zugehörige Stellenbewerbung erstellen, bearbeiten bzw. löschen können. Mehr zu Freigabe und Sicherheit erfahren Sie im nächsten Kapitel. 8. Klicken Sie auf Weiter. 9. Übernehmen Sie die Standardwerte in den restlichen drei Schritten des Assistenten. 10. Klicken Sie auf Speichern. Ihre Master-Detail-Beziehung ist nun vollständig. Beyond the Basics Wussten Sie, dass Sie Master-Detail-Beziehungen mit mehreren Ebenen erstellen können? Mit Master-Detail-Beziehungen mit mehreren Ebenen können Sie Berichte erstellen, die ein Rollup der Daten aus allen Ebenen des Datenmodells durchführen, und kaskadierende Löschvorgänge (Löschweitergabe) auslösen, wenn ein Master-Datensatz gelöscht wird. Angenommen, Sie möchten, dass die Bewerbungen und Review-Datensätze eines Bewerbers gelöscht werden, wenn ein Einstellungs-Manager den betreffenden Bewerber löscht. Sie können ein neues Feld vom Typ "Master-Detail-Beziehung" erstellen, das das Objekt "Job Application" (Stellenbewerbung) mit dem Objekt "Candidate" (Bewerber) in Bezug setzt. Da die Objekte "Review" und "Job Application" (Stellenbewerbung) bereits in einer Master-Detail-Beziehung in Bezug zueinander stehen, haben Sie somit eine Beziehung mit mehreren Ebenen erstellt, bei der "Candidate" Bewerber) das Master-Objekt ist, "Job Application" (Stellenbewerbung) das Detail-Objekt und "Review" das Unterdetail-Objekt. Nun, da Ihre Master-Detail-Beziehung in Kraft ist, ist es an der Zeit, über die anderen Arten von Feldern nachzudenken, die für Personen, die sich einen Review-Datensatz ansehen, nützlich wären. Höchstwahrscheinlich möchten die Benutzer den Namen des Bewerbers und die Stelle sehen, für die dieser gerade in einem Review bewertet wird. Wir könnten eine Nachschlagebeziehung zu den Objekten "Position" (Stelle) und "Candidate" (Bewerber) erstellen und den Reviewern vorschreiben, beim Erstellen von Review-Datensätzen Einträge in diesen Feldern vorzunehmen. Aber was, wenn sie den falschen Wert auswählen? Und wäre es nicht überhaupt besser, wenn diese Felder irgendwie automatisch ausgefüllt würden? Zur Lösung dieses Problems nutzen wir die Synergie von Formeln und Beziehungen, um objektübergreifende Formeln zu erstellen. Objektübergreifende Formeln sind Formeln, die sich auf zwei oder mehr Objekte erstrecken, indem sie Briefvorlagenfelder aus verwandten 144 Kapitel 6: Erweitern der einfachen Anwendung durch Beziehungen Datensätzen referenzieren. Die Formeln auf unserem Review-Objekt können also auf Felder des Stellenbewerbungsobjekts zugreifen und Formeln auf dem Stellenbewerbungsobjekt können auf Felder des Stellenobjekts und des Bewerberobjekts zugreifen. Wir gehen sogar noch einen Schritt weiter, indem wir Formelfelder auf unserem Review-Objekt erstellen, die das Objekt "Job Application" (Stellenbewerbung) ausdehnen, sodass es Felder auf den Objekten "Candidate "(Bewerber) und "Position" (Stelle) referenziert. Sie werden bald feststellen, dass die Verwendung von in Beziehung stehenden Daten einfacher ist, als es klingt. Erstellen wir zunächst ein Formelfeld auf dem Objekt "Review", das den Titel der Stelle im Stellenbewerbungsdatensatz referenziert, der dem Review übergeordnet ist. 1. 2. 3. 4. 5. Klicken Sie unter "Setup" auf Erstellen > Objekte. Klicken Sie auf Review. Klicken Sie in der Themenliste "Benutzerdefinierte Felder & Beziehungen" auf Neu. Wählen Sie den Datentyp Formel und klicken Sie auf Weiter. Geben Sie im Feld Feldbezeichnung den Text Position (Stelle) ein. Sobald Sie den Cursor bewegen, wird das Textfeld Feldname automatisch mit "Position" ausgefüllt. 6. Wählen Sie Text als Typ der Formelrückgabe und klicken Sie auf Weiter. 7. Klicken Sie auf die Schaltfläche Feld einfügen. Das Overlay "Feld einfügen" wird angezeigt, wie unten zu sehen. Abbildung55: Overlay "Feld einfügen" 8. Wählen Sie in der ersten Spalte den Eintrag "Review" aus. Wenn Sie "Review" auswählen, werden in der zweiten Spalte alle Felder des Objekts "Review" angezeigt sowie alle verwandten Objekte, die durch ein Größer-als-Zeichen (>) gekennzeichnet sind. Beachten Sie, dass die Felder Created by (Erstellt von) und Last modified by 145 Kapitel 6: Erweitern der einfachen Anwendung durch Beziehungen (Zuletzt geändert von) ebenfalls Größer-als-Zeichen aufweisen. Der Grund hierfür ist, dass es sich dabei um Nachschlagefelder auf dem Objekt "Benutzer" handelt. 9. Wählen Sie in der zweiten Spalte sen Eintrag Job Application > (Stellenbewerbung >) aus. In der dritten Spalte werden die Felder des Objekts "Job Application" (Stellenbewerbung) angezeigt. 10. Wählen Sie in der dritten Spalte den Eintrag Position > (Stelle >) aus. In der vierten Spalte werden die Felder des Objekts "Position" (Stelle) angezeigt. Achten Sie darauf, Position > (mit dem Größer-als-Zeichen) auszuwählen, und nicht Position. Der Eintrag mit dem Größer-als-Zeichen ist das Objekt "Position" (Stelle), während es sich bei dem Eintrag ohne Größer-als-Zeichen um das Nachschlagefeld Position (Stelle) auf dem Objekt "Job Application" (Stellenbewerbung) handelt. In den meisten Fällen geben Formeln, die auf Nachschlagefelder zugreifen, eine kryptische Datensatz-ID zurück. Stattdessen soll unsere Formel den Titel der Stelle zurückgeben. 11. Wählen Sie in der vierten Spalte den Eintrag Position Title (Stellentitel) aus. 12. Klicken Sie auf Einfügen. Ihre Formel sieht nun wie folgt aus: Job_Application__r.Position__r.Name Die Formel erstreckt sich auf die zu dem Review gehörende Stellenbewerbung (Job_Application__r), dann auf die zu der Stellenbewerbung gehörende Stelle (Position__r) und verweist schließlich auf den Titel der Stelle (Name). Beachten Sie, dass die einzelnen Teile der Formel durch einen Punkt getrennt sind und dass der Name der Beziehung aus dem zugehörigen Objekt, gefolgt von __r besteht. 13. Klicken Sie auf Weiter. 14. Übernehmen Sie die restlichen Standardeinstellungen für Feldebenensicherheit und Seitenlayout. 15. Klicken Sie auf Speichern. Damit ist unser erstes objektübergreifendes Formelfeld fertig. Versuchen wir es mit einem weiteren. Diesmal fügen wir ein objektübergreifendes Formelfeld auf unserem Review-Objekt hinzu, das den Vor- und Nachnamen des Bewerbers anzeigt, der im Review bewertet wird. Außerdem fügen wir diesmal die Funktion HYPERLINK hinzu, damit die Benutzer auf den Datensatz des Bewerbers zugreifen können, indem sie auf das Feld klicken. 1. 2. 3. 4. 146 Klicken Sie unter "Setup" auf Erstellen > Objekte. Klicken Sie auf Review. Klicken Sie in der Themenliste "Benutzerdefinierte Felder & Beziehungen" auf Neu. Wählen Sie den Datentyp Formel und klicken Sie auf Weiter. Kapitel 6: Erweitern der einfachen Anwendung durch Beziehungen 5. Geben Sie im Feld Feldbezeichnung den Text Candidate (Bewerber) ein. Sobald Sie den Cursor bewegen, wird das Textfeld Feldname automatisch mit "Candidate" ausgefüllt. 6. Wählen Sie Text als Typ der Formelrückgabe und klicken Sie auf Weiter. 7. Doppelklicken Sie in der Liste Funktionen auf HYPERLINK. Mit der Funktion HYPERLINK können Sie einen Hyperlink zu jedem beliebigen URL oder Datensatz in Salesforce erstellen. Der Text des Hyperlinks kann vom eigentlichen URL abweichen, was hier nützlich ist, da wir möchten, dass in unserem Hyperlink der Vor- und Nachname des Bewerbers angezeigt wird, wohingegen der URL auf den Datensatz des Bewerbers verweist. 8. Löschen Sie url aus der soeben eingefügten Funktion HYPERLINK, aber belassen Sie den Cursor an dieser Stelle. 9. Klicken Sie auf die Schaltfläche Feld einfügen und wählen Sie Review >, Job Application > (Stellenbewerbung >), Candidate > (Bewerber >), Record ID (Datensatz-ID) und klicken Sie auf Einfügen. Salesforce generiert für jeden Datensatz eine eindeutige ID. Wenn wir die Datensatz-ID des Bewerbers in die Funktion HYPERLINK einfügen, kann unser Formelfeld den Datensatz des Bewerbers finden und einen Link dazu herstellen. 10. Löschen Sie friendly_name aus der Funktion HYPERLINK, aber belassen Sie den Cursor an dieser Stelle. 11. Klicken Sie auf die Schaltfläche Feld einfügen und wählen Sie Review >, Job Application > (Stellenbewerbung >), Candidate > (Bewerber >), First Name (Vorname) und klicken Sie auf Einfügen. 12. Geben Sie ein Leerzeichen ein und klicken Sie auf die Schaltfläche Operator einfügen und wählen Sie die Option "Verketten". Der Operator "Verketten" fügt ein Und-Zeichen (&) in die Formel ein und verknüpft die Werte auf den beiden Seiten des Und-Zeichens. Wir verwenden hier nun den Operator "Verketten", um den Vor- und den Nachnamen des Bewerbers in einem gemeinsamen Feld zu verbinden, auch wenn sie im Objekt "Candidate" (Bewerber) in getrennten Feldern gespeichert werden. Mit dem Operator "Verketten" können wir auch ein Leerzeichen zwischen den beiden Namen einfügen, wie Sie im nächsten Schritt sehen werden. 13. Geben Sie ein weiteres Leerzeichen ein und geben Sie dann ein in Anführungsstriche eingeschlossenes Leerzeichen ein, wie hier zu sehen: " " Dadurch wird nach dem Vornamen des Bewerbers ein Leerzeichen eingefügt. 147 Kapitel 6: Erweitern der einfachen Anwendung durch Beziehungen 14. Geben Sie ein Leerzeichen ein, klicken Sie auf die Schaltfläche Operator einfügen und wählen Sie noch einmal die Option "Verketten" aus, um ein zweites Und-Zeichen in Ihre Formel einzufügen. 15. Klicken Sie auf die Schaltfläche Feld einfügen und wählen Sie Review >, Job Application > (Stellenbewerbung >), Candidate > (Bewerber >), Last Name (Nachname) und klicken Sie auf Einfügen. 16. Löschen Sie [ target ] aus der Funktion HYPERLINK. Dies ist ein optionaler Parameter, der für unser Formelfeld nicht nötig ist. 17. Klicken Sie auf Syntax prüfen, um die Formel auf Fehler zu überprüfen. Ihre fertige Formel sollte wie folgt aussehen: HYPERLINK ( Job_Application__r.Candidate__r.Id , Job_Application__r.Candidate__r.First_Name__c & " " & Job_Application__r.Candidate__r.Last_Name__c ) 18. Klicken Sie auf Weiter. 19. Übernehmen Sie die restlichen Standardeinstellungen für Feldebenensicherheit und Seitenlayout. 20. Klicken Sie auf Speichern. Puh! Diese Aufgabe erforderte ein wenig mehr Überlegung, doch der Denkaufwand hat sich gelohnt: Die Benutzerfreundlichkeit unserer Anwendung wurde erheblich gesteigert, wie Sie in Kürze sehen werden, wenn wir die Änderungen am Objekt "Review" testen. Bevor wir mit den Tests beginnen, sollten wir jedoch noch rasch zwei weitere, einfache Felder hinzufügen, um unser Review-Objekt fertigzustellen. Wir brauchen ein Textbereichsfeld für die Einschätzung des Reviewers und ein Zahlenfeld, in dem der Reviewer einen Zahlenwert als Bewertung für den Bewerber vergeben kann. Klicken Sie unter "Setup" auf Erstellen > Objekte und wählen Sie das Objekt "Review" aus. Verwenden Sie das Feld Neu in der Themenliste "Benutzerdefinierte Felder und Beziehungen", um die restlichen benutzerdefinierten Felder für das Objekt "Review" gemäß der folgenden Tabelle zu erstellen. Wo erforderlich, haben wir einige zusätzliche Werte angegeben, die Sie ausfüllen müssen. Ansonsten sollten Sie alle Standardwerte übernehmen. Tabelle15: Hinzufügen von benutzerdefinierten Feldern zum Objekt "Review" Datentyp Feldbezeichnung Andere Werte Textbereich (lang) Assessment (Einschätzung) Länge: 32,768 Anzahl sichtbarer Zeilen: 6 148 Kapitel 6: Erweitern der einfachen Anwendung durch Beziehungen Datentyp Feldbezeichnung Andere Werte Zahl Rating (Bewertung) Länge: 1 Zum Speichern von Datensätzen soll stets ein Wert in diesem Feld erforderlich sein Hilfetext: Enter a 1-5 rating of the candidate. (Bewertung von 1 bis 5 für den Bewerber eingeben.) Fügen Sie abschließend eine Regel zur schnellen Validierung hinzu, um sicherzustellen, dass im Feld "Rating" (Bewertung) nur die Zahlen 1 bis 5 akzeptiert werden. Dadurch bleibt unser Bewertungssystem für Reviews in der gesamten Organisation konsistent. 1. 2. 3. 4. 5. 6. Klicken Sie unter "Setup" auf Erstellen > Objekte. Klicken Sie auf Review. Klicken Sie in der Themenliste "Validierungsregel" auf Neu. Geben Sie im Textfeld Regelname den Wert Rating_Scale_Rule ein. Aktivieren Sie das Kontrollkästchen Aktiv. Geben Sie im Textfeld Beschreibung folgenden Text ein: Rating must be between 1 and 5. (Bewertung muss im Bereich von 1 bis 5 liegen.) 7. Geben Sie folgende Fehlerbedingungsformel ein: (Rating__c <1 || Rating__c > 5) Diese Formel verhindert, dass der Datensatz gespeichert wird, wenn der Wert des Felds Rating (Bewertung) kleiner als 1 oder größer als 5 ist. 8. Geben Sie im Textfeld Fehlermeldung folgenden Text ein: Invalid rating. Rating must be between 1 and 5. (Ungültige Bewertung. Bewertung muss im Bereich von 1 bis 5 liegen.) 9. Wählen Sie neben dem Feld Fehlerposition das Optionsfeld Feld aus und wählen Sie dann in der Dropdownliste den Eintrag Rating (Bewertung). 10. Klicken Sie auf Speichern. Das Objekt "Review" ist nun fertig. Wir haben mehrere Funktionen hinzugefügt, mit denen die Benutzer auf die Daten zugreifen können, die sie benötigen, um die einzelnen Stellenbewerbungen zu beurteilen. Es gibt nur noch eine weitere kleine Verbesserung, die wir 149 Kapitel 6: Erweitern der einfachen Anwendung durch Beziehungen vornehmen müssen, um den Review-Prozess für Stellenbewerbungen zu rationalisieren. Dazu kehren wir noch einmal zum Objekt "Job Application (Stellenbewerbung) zurück und nutzen einen der Vorteile, die uns die Verwendung einer Master-Detail-Beziehung bietet. Einführung zu Rollup-Zusammenfassungsfeldern Mithilfe des Bewertungssystems, das wir für das Objekt "Review" erstellt haben, können Benutzer schnell die Meinung der einzelnen Reviewer bezüglich der Eignung eines Bewerbers für die jeweilige Stelle anzeigen. Jede einzelne Meinung ist zwar wichtig, aber es wäre noch besser, wenn diese Bewertungen so kombiniert werden könnten, dass eine Zusammenfassung der Leistung des Bewerbers angezeigt wird. Wäre es zum Beispiel nicht toll, wenn wir für jeden Stellenbewerbungsdatensatz ein Feld Total Rating (Gesamtbewertung) hätten, in dem die Summe aller Review-Bewertungen für die Stellenbewerbung angezeigt wird? Das lässt sich einrichten! Über ein einfaches Rollup-Zusammenfassungsfeld für das Objekt "Job Application" (Stellenbewerbung) können die Daten von einer Gruppe verwandter Detaildatensätze zusammengefasst werden und die Ausgabe kann in einem Master-Datensatz angezeigt werden. Verwenden Sie Rollup-Zusammenfassungsfelder, um die Summe, den Mindestwert oder den Höchstwert für ein Feld in einer Themenliste oder die Anzahl aller in einer Themenliste aufgeführten Datensätze anzuzeigen. Probieren Sie es aus: Erstellen von Rollup-Zusammenfassungsfeldern Beginnen Sie mit der Erstellung Ihres Rollup-Zusammenfassungsfelds genau wie mit der Erstellung eines anderen benutzerdefinierten Felds: 1. 2. 3. 4. Klicken Sie unter "Setup" auf Erstellen > Objekte. Klicken Sie auf Job Application (Stellenbewerbung). Klicken Sie in der Themenliste "Benutzerdefinierte Felder & Beziehungen" auf Neu. Wählen Sie den Datentyp Rollup-Zusammenfassung und klicken Sie auf Weiter. Wenn Sie ein Feld für ein Objekt erstellen, das in einer Master-Detail-Beziehung nicht als Master fungiert, ist der Datentyp Rollup-Zusammenfassung nicht verfügbar. Das liegt daran, dass Rollup-Zusammenfassungsfelder nur für das Master-Objekt in einer Master-Detail-Beziehung zu Verfügung stehen. 150 Kapitel 6: Erweitern der einfachen Anwendung durch Beziehungen 5. Geben Sie in das Feld Feldbezeichnung den Text Total Rating (Gesamtbewertung) ein. Sobald Sie den Cursor weiter bewegen, wird das Textfeld Feldname automatisch mit dem Ausdruck "Total_Rating" ausgefüllt. 6. Klicken Sie auf Weiter. 7. Wählen Sie in der Dropdownliste Zusammengefasstes Objekt den Eintrag "Reviews" aus. 8. Wählen Sie unter "Rollup-Typ auswählen" die Option SUM aus. 9. Wählen Sie in der Dropdownliste Zu aggregierendes Feld den Eintrag Bewertung aus. 10. Lassen Sie die Option Alle Datensätze sollen in die Berechnung einbezogen werden aktiviert und klicken Sie auf Weiter. 11. Übernehmen Sie die restlichen Standardeinstellungen für Feldebenensicherheit und Seitenlayout. 12. Klicken Sie auf Speichern. Nun werden die Bewertungen der verwandten Reviews in unseren Stellenbewerbungsdatensätzen aggregiert. Diese Daten könnten jedoch leicht trügen, da einige Stellenbewerbungen möglicherweise über mehrere Reviews verfügen als andere. Es wäre sinnvoller, wenn wir die durchschnittliche Bewertung anzeigen könnten. Mit Rollup-Zusammenfassungsfeldern selbst ist es nicht möglich, die durchschnittlichen Werte insgesamt anzuzeigen, Sie können sie jedoch in Formeln verwenden, um diese Werte zu berechnen. Erstellen wir ein zweites Rollup-Zusammenfassungsfeld für das Objekt "Job Application" (Stellenbewerbung) und anschließend ein einfaches Formelfeld, in dem beide Rollup-Zusammenfassungsfelder zur Ermittlung der durchschnittlichen Bewertung herangezogen werden. 1. 2. 3. 4. 5. Klicken Sie unter "Setup" auf Erstellen > Objekte. Klicken Sie auf Job Application (Stellenbewerbung). Klicken Sie in der Themenliste "Benutzerdefinierte Felder & Beziehungen" auf Neu. Wählen Sie den Datentyp Rollup-Zusammenfassung und klicken Sie auf Weiter. Geben Sie im Feld Feldbezeichnung den Text Number of Reviews (Anzahl der Reviews) ein. Sobald Sie den Cursor weiter bewegen, wird das Textfeld Feldname automatisch mit dem Ausdruck "Number_of_Reviews" ausgefüllt. 6. Klicken Sie auf Weiter. 7. Wählen Sie in der Dropdownliste Zusammengefasstes Objekt den Eintrag "Reviews" aus. 8. Wählen Sie unter "Rollup-Typ auswählen" die Option COUNT aus. In diesem Fall müssen wir kein Zu aggregierendes Feld angeben, da wir nur die Anzahl der verwandten Detaildatensätze zählen und uns nicht für ein spezielles Feld interessieren. 151 Kapitel 6: Erweitern der einfachen Anwendung durch Beziehungen 9. Lassen Sie die Option Alle Datensätze sollen in die Berechnung einbezogen werden aktiviert und klicken Sie auf Weiter. 10. Übernehmen Sie die restlichen Standardeinstellungen für Feldebenensicherheit und Seitenlayout. 11. Klicken Sie auf Speichern. Nun befinden sich beide Rollup-Zusammenfassungsfelder an der richtigen Stelle. Erstellen wir ein Formelfeld mit dem Namen Average Rating (Durchschnittliche Bewertung), in dem der Wert des ersten Rollup-Zusammenfassungsfelds durch den Wert des zweiten Felds geteilt wird. 1. 2. 3. 4. 5. Klicken Sie unter "Setup" auf Erstellen > Objekte. Klicken Sie auf Job Application (Stellenbewerbung). Klicken Sie in der Themenliste "Benutzerdefinierte Felder & Beziehungen" auf Neu. Wählen Sie den Datentyp Formel und klicken Sie auf Weiter. Geben Sie im Feld Feldbezeichnung den Text Average Rating (Durchschnittliche Bewertung) ein. Sobald Sie den Cursor weiter bewegen, wird das Textfeld Feldname automatisch mit dem Ausdruck "Average_Rating" ausgefüllt. 6. Wählen Sie Anzahl als Typ der Formelrückgabe aus und klicken Sie auf Weiter. 7. Klicken Sie auf die Schaltfläche Feld einfügen. 8. Wählen Sie Job Application (Stellenbewerbung) und anschließend Total Rating (Gesamtbewertung) aus und klicken Sie auf Einfügen. 9. Klicken Sie auf die Schaltfläche Operator einfügen und wählen Sie Dividieren aus. 10. Klicken Sie erneut auf Feld einfügen. 11. Wählen Sie Job Application (Stellenbewerbung) und anschließend Number of Reviews (Anzahl der Reviews) aus und klicken Sie auf Einfügen. Ihre Formel sollte wie folgt aussehen: Total_Rating__c / Number_of_Reviews__c 12. Klicken Sie auf Weiter. 13. Übernehmen Sie die Standardwerte in den restlichen Schritten des Assistenten. 14. Klicken Sie auf Speichern. Damit sind alle Felder und Beziehungen abgeschlossen, die wir zum Verwalten der Reviews benötigen. Ordnen wir schnell die Darstellung unserer Felder an und testen wir anschließend alle Elemente, die wir erstellt haben. 152 Kapitel 6: Erweitern der einfachen Anwendung durch Beziehungen Probieren Sie es aus: Anpassen des Seiten- und Suchlayouts für das Objekt "Review" Zuerst aktualisieren wir das Seitenlayout des Objekts "Review", sodass das Textfeld Assessment (Einschätzung) in einem einspaltigen Abschnitt mit demselben Namen angezeigt wird. 1. Klicken Sie unter "Setup" auf Erstellen > Objekte. 2. Klicken Sie auf Review. 3. Klicken Sie in der Themenliste "Seitenlayouts" neben "Review-Layout" auf Bearbeiten. 4. Ziehen Sie den neuen Bereich direkt unter den Abschnitt "Systeminformationen". Daraufhin wird das Dialogfeld "Abschnitteigenschaften" geöffnet. 5. Geben Sie dem Abschnitt den Namen Assessment (Einschätzung) und konfigurieren Sie ihn so, dass er eine Spalte enthält. 6. Ziehen Sie die Felder Assessment (Einschätzung) und Rating (Bewertung) in den Abschnitt "Assessment" (Einschätzung). 7. Klicken Sie auf Speichern. Nun konfigurieren wir die Suchlayouts für "Review", sodass Reviews immer zusammen mit der zugeordneten Stellenbewerbung, Stelle und dem entsprechenden Bewerber angezeigt werden. 1. Klicken Sie auf der Detailseite des Objekts "Review" in der Themenliste "Suchlayouts" neben den Nachschlagefenstern auf Bearbeiten und fügen Sie folgende Felder hinzu: • • • • • • Review Number (Review-Nummer) Rating (Bewertung) Job Application (Stellenbewerbung) Candidate (Bewerber) Position (Stelle) Created Date (Erstelldatum) 2. Wiederholen Sie den Vorgang für das Layout "Suchfilterfelder". Um die Themenliste "Reviews", die auf der Detailseite "Job Application" (Stellenbewerbung) angezeigt wird, zu aktualisieren, müssen wir die Themenliste direkt im Seitenlayout für "Job Application" (Stellenbewerbung) bearbeiten. Dies unterscheidet sich von der Vorgehensweise, die wir beim Hinzufügen von Feldern in der Themenliste "Job Application" (Stellenbewerbung) auf den Stellen- und Bewerberdetailseiten angewendet haben, da dem Objekt "Review" keine Registerkarte zugeordnet ist und es daher nicht über ein Suchlayout verfügt. Wir erinnern uns: 153 Kapitel 6: Erweitern der einfachen Anwendung durch Beziehungen Das Suchlayout der Registerkarte ist sowohl für die Felder verantwortlich, die in der Liste auf der Registerkarte "Startseite" angezeigt werden, als auch für die Standardfelder, die in Themenlisten auf den Detailseiten anderer Objekte angezeigt werden. Anmerkung: Das Suchlayout der Registerkarte ist nur dann für die Felder im Layout der Themenliste verantwortlich, wenn die Eigenschaften der Themenliste auf den Seitenlayouts der anderen Objekte nicht geändert wurden. Wenn Sie beispielsweise die Eigenschaften der Themenliste "Job Application" (Stellenbewerbung) im Seitenlayout für "Position" (Stelle) ändern, überschreiben diese Änderungen immer die Feldangaben im Suchlayout der Registerkarte "Job Application" (Stellenbewerbung). Da das Objekt "Review" nicht über ein Registerkartensuchlayout verfügt, müssen wir die Werte für diese Felder auf eine andere Weise festlegen. 1. Klicken Sie unter "Setup" auf Erstellen > Objekte. 2. Klicken Sie auf Job Application (Stellenbewerbung). 3. Klicken Sie in der Themenliste "Seitenlayouts" neben "Job Application-Layout" (Stellenbewerbung-Layout) auf Bearbeiten. 4. Suchen Sie im Seitenlayout für "Job Application" (Stellenbewerbung) nach der Themenliste "Reviews" und klicken Sie auf das Schraubenschlüsselsymbol ( ), um die zugehörigen Eigenschaften zu bearbeiten. 5. Fügen Sie im Dialogfeld "Themenlisteneigenschaften" im Feld "Ausgewählte Felder" folgende Felder hinzu: • • • • • Review Number (Review-Nummer) Rating (Bewertung) Candidate (Bewerber) Position (Stelle) Created Date (Erstelldatum) 6. Wählen Sie in der Dropdownliste Sortieren nach den Eintrag "Review Number" (Review-Nummer) aus. 7. Klicken Sie auf OK. 8. Klicken Sie auf der Bearbeitungsseite des Seitenlayouts auf Speichern. 154 Kapitel 6: Erweitern der einfachen Anwendung durch Beziehungen Probieren Sie es aus: Anpassen der Datensatzhervorhebungen für Reviews Erstellen wir nun ein benutzerdefiniertes kompaktes Layout, mit dem Benutzer beim Anzeigen von Review-Datensätzen mehr Kontext erhalten. 1. Klicken Sie unter "Setup" auf Erstellen > Objekte. 2. Klicken Sie auf Review. 3. Klicken Sie in der Themenliste "Kompakte Layouts" auf Neu, um ein kompaktes Layout mit folgenden Feldern zu erstellen: Geben Sie unter Bezeichnung einen Namen ein und passen Sie die Reihenfolge mithilfe der Schaltflächen Nach oben und Nach unten an. • • • • Review Number (Review-Nummer) Rating (Bewertung) Candidate (Bewerber) Ersteller 4. Klicken Sie auf Speichern und weisen Sie dann das neue kompakte Layout als primäres kompaktes Layout für Reviews zu. Rekapitulation Hervorragend! Sehen wir uns einmal an, was wir bisher gemacht haben: 1. Klicken Sie auf die Registerkarte "Job Applications" (Stellenbewerbungen) und wählen Sie einen Datensatz aus oder erstellen Sie einen neuen Datensatz. Tipp: Wenn Sie die Nachschlagefenster "Candidate" (Bewerber) und "Position" (Stelle) beim Erstellen eines Stellenbewerbungsdatensatzes verwenden, beachten Sie, dass darin standardmäßig nur die zuletzt angezeigten Datensätze aufgeführt werden. Sie können mithilfe des Suchfelds weitere Datensätze suchen, mit denen Datensätze jeweils anhand der Felder Candidate Number (Bewerbernummer) oder Position Title (Stellentitel) ausgegeben werden. Verwenden Sie das Platzhalterzeichen * zusammen mit anderen Zeichen, um Ihre Suchergebnisse zu optimieren. Wenn Sie beispielsweise nach "C*" suchen, werden alle Bewerberdatensätze zurückgegeben. Genauso werden bei einer Suche nach "*e" alle Stellendatensätze zurückgegeben, in deren Titel der Buchstabe "e" enthalten ist. 155 Kapitel 6: Erweitern der einfachen Anwendung durch Beziehungen Beachten Sie, dass nach der Erstellung der Stellenbewerbung die Themenliste "Reviews" auf der Detailseite "Job Application" (Stellenbewerbung) angezeigt wird. Das liegt daran, dass wir das Objekt "Review" über eine Master-Detail-Beziehung mit dem Objekt "Job Application" (Stellenbewerbung) verbunden haben. 2. Klicken Sie in der Themenliste "Reviews" zum Erstellen eines Reviews auf New Review (Neuer Review). Können Sie sehen, wie die Plattform automatisch die Stellenbewerbungsnummer in die Bearbeitungsseite des Reviews eingefügt hat? Das ist einer der kleinen, aber wichtigen Vorteile bei der Verwendung der Plattform zum Erstellen einer solchen Anwendung. Es ist nicht nur einfach, Links und Beziehungen zwischen Objekten zu erstellen, sondern die Plattform sieht voraus, was wir tun möchten, und unterstützt uns beim Ausführen unserer Aufgabe mit möglichst wenig Aufwand. 3. Füllen Sie die Felder für den Review aus und klicken Sie auf Speichern. Beachten Sie, dass der Name des Bewerbers und der Stellentitel auf der Detailseite des Reviews angezeigt werden. Wenn Sie auf den Namen des Bewerbers klicken, wird sein Datensatz angezeigt. Bevor wir fortfahren, sehen wir uns noch einmal den Review an, den wir mit unserem kompakten Layout in Salesforce1 erstellt haben. 1. Öffnen Sie das Navigationsmenü in Salesforce1 und tippen Sie auf Mehr anzeigen > Job Applications (Stellenbewerbungen). 2. Tippen Sie auf JA-00001, um den soeben erstellten Stellenbewerbungsdatensatz zu öffnen. 3. Streichen Sie mit dem Finger zur Seite mit den zugehörigen Informationen. 4. Tippen Sie auf die Vorschaukarte für die Reviews, um alle Reviews anzuzeigen, die dieser Anwendung zugeordnet sind. 5. Tippen Sie auf R-000001, um den Review-Datensatz aufzurufen. Fahren Sie fort und erstellen Sie durch Tippen – oder Klicken, sofern Sie sich wieder auf der vollständigen Site befinden – in der restlichen Anwendung ein paar weitere Stellen, Stellenbewerbungen, Bewerber und Reviews. Nicht schlecht, oder? Unsere Daten sind alle untereinander verbunden und unsere Änderungen in den Suchlayouts ermöglichen es uns, Details zu vielen verwandten Objekten gleichzeitig anzuzeigen. 156 Kapitel 6: Erweitern der einfachen Anwendung durch Beziehungen Erstellen einer n:n-Beziehung Unsere Personalbeschaffungsanwendung verfügt nun über mehrere n:1-Beziehungen. Wie gehen wir aber vor, wenn wir eine n:n-Beziehung erstellen müssen? Was tun wir beispielsweise, wenn wir über ein Objekt verfügen, in dem Daten zu verschiedenen Jobbörsen enthalten sind, und wir verfolgen möchten, welche offenen Stellen auf diesen Jobbörsen ausgeschrieben wurden? Hierfür wäre aus folgenden Gründen eine n:n-Beziehung erforderlich: • • Eine Stelle könnte auf mehreren Jobbörsen ausgeschrieben sein. Auf einer Jobbörse können mehrere Stellen aufgelistet sein. An dieser Stelle werden wir ein wenig kreativ. Anstatt ein Beziehungsfeld für das Objekt "Position" (Stelle) zu erstellen, mit dem eine direkte Verbindung zum Objekt "Employment Website" (Jobbörse) hergestellt wird, können wir sie über ein Verknüpfungsobjekt miteinander verbinden. Bei einem Verknüpfungsobjekt handelt es sich um ein benutzerdefiniertes Objekt mit zwei Master-Detail-Beziehungen. Es ist für n:n-Beziehungen von zentraler Bedeutung. Für unsere Anwendung erstellen wir ein Verknüpfungsobjekt namens "Job Posting" (Stellenausschreibung). Eine Stellenausschreibung passt in den Bereich zwischen Stellen und Jobbörsen – eine Stelle kann mehrmals ausgeschrieben werden und eine Jobbörse kann über mehrere Stellenausschreibungen verfügen, eine Stellenausschreibung stellt jedoch immer eine Veröffentlichung einer einzelnen Stelle auf einer einzelnen Jobbörse dar. Im Grunde verfügt das Objekt "Job Posting" (Stellenausschreibung) jeweils über eine n:1-Beziehung mit den Objekten "Position" (Stelle) und "Employment Website" (Jobbörse). Durch diese vielen n:1-Beziehungen ergibt sich eine n:n-Beziehung zwischen den beiden Objekten "Position" (Stelle) und "Employment Website" (Jobbörse). Tipp: Bei vielen Anwendungen besteht der Zweck eines Verknüpfungsobjekts lediglich darin, zwei Objekte einfach miteinander zu verbinden. Daher ist es häufig sinnvoll, dem Verknüpfungsobjekt einen Namen zu geben, der auf die Zuordnung oder die Beziehung hinweist, die dadurch erstellt wird. Wenn Sie beispielsweise ein Verknüpfungsobjekt verwenden möchten, um eine n:n-Beziehung zwischen "bugs" (Fehler) und "cases" (Fälle) zu erstellen, könnten Sie als Namen für das Verknüpfungsobjekt BugCaseAssociation wählen. Sehen wir uns also ein typisches Szenario bei Universal Containers an. Es gibt offene Stellen für einen Project Manager und eine Sr. Developer. Die Project Manager-Stelle ist nur auf Monster.com ausgeschrieben worden. Da die Sr. Developer-Stelle schwieriger zu besetzen ist, wurde sie sowohl auf Monster.com als auch auf Dice ausgeschrieben. Immer wenn eine Stelle ausgeschrieben wird, wird die Ausschreibung anhand eines Stellenausschreibungsdatensatzes 157 Kapitel 6: Erweitern der einfachen Anwendung durch Beziehungen verfolgt. Wie Sie dem folgenden Diagramm entnehmen können, kann eine Stelle mehrmals ausgeschrieben werden und beide Stellen können auf derselben Jobbörse ausgeschrieben werden. Abbildung56: Erstellen einer n:n-Beziehung zwischen "Positions" (Stellen) und "Employment Websites" (Jobbörsen) mithilfe des Objekts "Job Posting" (Stellenausschreibung) In Bezug auf die relationale Datenbank heißt das, dass jeder Stellenausschreibungsdatensatz eine Zeile in der Tabelle "Job Posting" (Stellenausschreibung) ist und aus einem Fremdschlüssel zu einem Stellendatensatz und einem Fremdschlüssel zu einem Stellenbörsendatensatz besteht. Diese Beziehung wird im folgenden Entity-Relationship-Diagramm dargestellt. Abbildung57: Entity-Relationship-Diagramm für die Objekte "Position" (Stelle), "Job Posting" (Stellenausschreibung) und "Employment Website" (Jobbörse) Folglich müssen wir zum Erstellen einer n:n-Beziehung zwischen den Objekten "Position" (Stelle) und "Employment Website" (Jobbörse) das Objekt "Job Posting" (Stellenausschreibung) mit den folgenden Feldern erstellen: • • Eine Master-Detail-Beziehung für "Position" (Stelle) Eine Master-Detail-Beziehung für "Employment Website" (Jobbörse) Legen wir also los. 158 Kapitel 6: Erweitern der einfachen Anwendung durch Beziehungen Probieren Sie es aus: Erstellen des Objekts "Employment Website" (Jobbörse) Um das benutzerdefinierte Objekt "Employment Website" (Jobbörse) zu erstellen, klicken Sie unter "Setup" auf Erstellen > Objekte, klicken Sie auf Neues benutzerdefiniertes Objekt und füllen Sie die Seite gemäß der folgenden Tabelle aus. Tabelle16: Werte für die Definition des Objekts "Employment Website" (Jobbörse) Feld Wert Bezeichnung Employment Website (Jobbörse) Bezeichnung – Plural Employment Websites (Jobbörsen) Beginnt mit Vokal Aktiviert Objektname Employment_Website Beschreibung Information about a particular employment website (Informationen zu einer bestimmten Jobbörse) Einstellungen für die kontextabhängige Hilfe Öffnen des Standardfensters von Salesforce Hilfe & Schulung Datensatzname Employment Website Name (Jobbörse: Name der Jobbörse) Datentyp Text Berichte zulassen Aktiviert Aktivitäten zulassen Aktiviert Feldverlauf verfolgen Aktiviert Bereitstellungsstatus Bereitgestellt Notizen und Anhänge zum Standardseitenlayout hinzufügen Aktiviert Nach dem Speichern dieses Aktiviert benutzerdefinierten Objekts den Assistenten für eine neue benutzerdefinierte Registerkarte starten 159 Kapitel 6: Erweitern der einfachen Anwendung durch Beziehungen Zur Erstellung der Registerkarte "Employment Website" (Jobbörse) wählen Sie im ersten Schritt des Assistenten einen Registerkartenstil aus und übernehmen Sie dann alle Standardwerte, bis Sie zur Seite "Fügen Sie sie benutzerdefinierten Anwendungen hinzu." gelangen. Wählen Sie auf dieser Seite nur die Personalbeschaffungsanwendung aus und klicken Sie dann auf Speichern. Schließen wir die Erstellung des benutzerdefinierten Objekts "Employment Website" (Jobbörse) ab, indem wir einige benutzerdefinierte Felder hinzufügen. Probieren Sie es aus: Hinzufügen des URL-Felds zum Objekt "Employment Website" (Jobbörse) Offensichtlich muss im Objekt "Employment Website" (Jobbörse) die Webadresse der Jobbörse gespeichert sein. Wir verwenden den Datentyp "URL" für dieses Feld. Durch Klicken auf das Feld wird somit der URL in einem separaten Browserfenster geöffnet. Da die meisten Jobbörsen pro Ausschreibung abrechnen, möchten wir neben dem URL auch den Überblick darüber behalten, wie viel Stellenausschreibungen dort kosten, sowie unser maximales Budget für Stellenausschreibungen auf der Website angeben. Klicken Sie unter "Setup" auf Erstellen > Objekte und klicken Sie dann auf Employment Website (Jobbörse), um die zugehörige Detailseite anzuzeigen. Klicken Sie in der Themenliste "Benutzerdefinierte Felder und Beziehungen" auf Neu, um drei benutzerdefinierte Felder gemäß der folgenden Tabelle zu erstellen. Wo erforderlich, haben wir einige zusätzliche Werte angegeben, die Sie beim Erstellen der Felder ausfüllen müssen. Anderenfalls können Sie einfach alle Standardwerte übernehmen. Tabelle17: Hinzufügen dreier benutzerdefinierter Felder zum Objekt "Employment Website" (Jobbörse) Datentyp Feldbezeichnung Andere Werte URL Web Address (Jobbörse: Webadresse) Erforderlich Währung Price Per Post (Preis pro Ausschreibung) Länge: 5 Dezimalstellen: 2 Erforderlich Währung 160 Maximum Budget (Maximales Länge: 6 Budget) Dezimalstellen: 2 Kapitel 6: Erweitern der einfachen Anwendung durch Beziehungen Datentyp Feldbezeichnung Andere Werte Erforderlich Probieren Sie es aus: Erstellen des Objekts "Job Posting" (Stellenausschreibung) Nun ist es an der Zeit, das Verknüpfungsobjekt "Job Posting" (Stellenausschreibung) zu erstellen. Klicken Sie unter "Setup" auf Erstellen > Objekte, klicken Sie auf Neues benutzerdefiniertes Objekt und füllen Sie die Seite gemäß der folgenden Tabelle aus. Tabelle18: Werte für die Definition des Objekts "Job Posting" (Stellenausschreibung) Feld Wert Bezeichnung Job Posting (Stellenausschreibung) Bezeichnung – Plural Job Postings (Stellenausschreibungen) Objektname Job_Posting Beschreibung Represents the junction object between a position and an employment website (Stellt das Verbindungsobjekt zwischen einer Stelle und einer Jobbörse dar) Einstellungen für die kontextabhängige Hilfe Öffnen des Standardfensters von Salesforce Hilfe & Schulung Datensatzname Job Posting Number (Stellenausschreibungsnummer) Datentyp Automatisch nummerieren Anzeigeformat JP-{00000} Startnummer 00001 Berichte zulassen Ja Aktivitäten zulassen Ja Feldverlauf verfolgen Ja Bereitstellungsstatus Bereitgestellt 161 Kapitel 6: Erweitern der einfachen Anwendung durch Beziehungen Feld Wert Notizen und Anhänge zum Standardseitenlayout hinzufügen Ja Nach dem Speichern dieses Nein benutzerdefinierten Objekts den Assistenten für eine neue benutzerdefinierte Registerkarte starten Das war recht einfach, aber wir sind noch nicht ganz fertig. Wir müssen die Master-Detail-Beziehungsfelder erstellen, die das Objekt "Job Posting" (Stellenausschreibung) in Bezug zu den Objekten "Position" (Stelle) und "Employment Website" (Jobbörse) setzen. Probieren Sie es aus: Hinzufügen von Feldern zum Objekt "Job Posting" (Stellenausschreibung) Um das Objekt "Job Posting" (Stellenausschreibung) in das Verknüpfungsobjekt umzuwandeln, das die Objekte "Position" (Stelle) und "Employment Website" (Jobbörse) in Bezug zueinander setzt, müssen wir zwei Master-Detail-Beziehungsfelder hinzufügen. Die erste Master-Detail-Beziehung ist die primäre Beziehung. Die Detail- und Bearbeitungsseiten des Verknüpfungsobjekts ("Job Posting" (Stellenausschreibung)) verwenden die Farbe und etwaige verbundene Symbole des primären Masterobjekts ("Position" (Stelle)). Außerdem übernehmen die Verknüpfungsobjekt-Datensätze den Wert des Felds "Inhaber" und die Freigabeeinstellungen vom zugehörigen primären Master-Datensatz. 1. 2. 3. 4. 5. Klicken Sie unter "Setup" auf Erstellen > Objekte. Klicken Sie auf Job Posting (Stellenausschreibung). Klicken Sie in der Themenliste "Benutzerdefinierte Felder & Beziehungen" auf Neu. Wählen Sie Master-Detail-Beziehung aus und klicken Sie auf Weiter. Wählen Sie in der Dropdown-Liste Bezug zu die Option "Position" (Stelle) aus und klicken Sie auf Weiter. 6. Geben Sie im Textfeld Feldbezeichnung den Wert Position (Stelle) ein. Wenn Sie den Cursor bewegen, sollte das Textfeld Feldname ebenfalls automatisch mit "Position" ausgefüllt werden. 7. Übernehmen Sie die restlichen Standardwerte und klicken Sie auf Weiter, bis Sie den abschließenden Schritt des Assistenten erreichen. Hier erhalten wir die Chance, die Themenliste "Job Postings" (Stellenausschreibungen) zum Seitenlayout des Objekts "Position" (Stelle) hinzuzufügen. Anstatt Informationen zu verwandten 162 Kapitel 6: Erweitern der einfachen Anwendung durch Beziehungen Stellenausschreibungen anzuzeigen, soll diese Liste alle Jobbörsen enthalten, in denen diese Stelle ausgeschrieben ist. Fügen wir also die Themenliste "Job Posting" (Stellenausschreibung) hinzu, aber benennen wir sie in Employment Websites (Jobbörsen) um. 8. Geben Sie im Textfeld Bezeichnung für Themenliste den Text Employment Websites (Jobbörsen) ein. 9. Übernehmen Sie die restlichen Standardwerte und klicken Sie auf Speichern & Neu. Wir haben nun die Erstellung unserer n:n-Beziehung zur Hälfte geschafft. Der nächste Schritt besteht darin, eine zweite Master-Detail-Beziehung auf dem Objekt "Job Posting" (Stellenausschreibung) zu erstellen, um es mit dem Objekt "Employment Website" (Jobbörse) zu verknüpfen. Durch die zweite Master-Detail-Beziehung wird eine sekundäre Beziehung erstellt. Im Gegensatz zur primären Beziehung hat die sekundäre Beziehung keine Auswirkungen auf das Erscheinungsbild des Verknüpfungsobjekts. Wie bei der primären Beziehung wirken sich jedoch die Freigabeeinstellungen des Master-Objekts in der sekundären Beziehung auch darauf aus, welche Personen auf den Verknüpfungsdatensatz zugreifen können, und beim Löschen eines Datensatzes des sekundären Master-Objekts werden automatisch auch die zugehörigen Verknüpfungsobjektdatensätze gelöscht. Für unsere Anwendung bedeutet dies: Wenn Sie einen Datensatz für eine Jobbörse löschen, werden auch alle zugehörigen Datensätze zu Stellenausschreibungen gelöscht, selbst wenn die betreffende Stelle offen ist. 10. Wählen Sie Master-Detail-Beziehung aus und klicken Sie auf Weiter. 11. Wählen Sie in der Dropdown-Liste Bezug zu die Option "Employment Website" (Jobbörse) aus und klicken Sie auf Weiter. 12. Geben Sie im Textfeld Feldbezeichnung den Wert Employment Website (Jobbörse) ein. Wenn Sie den Cursor bewegen, sollte das Textfeld Feldname ebenfalls automatisch mit "Employment_Website" ausgefüllt werden. 13. Klicken Sie auf Weiter. Da wir eine Master-Detail-Beziehung erstellen, können diese Einstellungen nicht geändert werden. 14. Klicken Sie auf Weiter. Auch diese Einstellungen können nicht geändert werden. 15. Klicken Sie auf Weiter, um den abschließenden Schritt des Assistenten anzuzeigen. Diesmal haben wir die Möglichkeit, die Themenliste "Job Postings" (Stellenausschreibungen) zum Seitenlayout des Objekts "Employment Website" (Jobbörse) hinzuzufügen. Schließlich konfigurieren wir diese Themenliste so, dass alle Stellen angezeigt werden, die auf dieser Website ausgeschrieben werden. Fügen wir also die Themenliste "Job Postings" (Stellenausschreibungen) hinzu, aber benennen wir sie in Positions (Stellen) um. 16. Geben Sie im Textfeld Bezeichnung für Themenliste den Text Positions (Stellen) ein. 163 Kapitel 6: Erweitern der einfachen Anwendung durch Beziehungen 17. Übernehmen Sie die restlichen Standardwerte und klicken Sie auf Speichern. Nun ist unsere n:n-Beziehung vollständig. Oder etwa doch nicht? Es gibt nun zwar die Themenliste "Employment Websites" (Jobbörsen) auf dem Objekt "Position" (Stelle) und die Themenliste "Positions "(Stellen) auf dem Objekt "Employment Websites" (Jobbörsen), aber in beiden Themenlisten werden noch immer Stellenausschreibungsdatensätze angezeigt. Das geht so nicht. Um unser Ziel, nämlich mehrere Stellen in einem Jobbörsendatensatz und mehrere Jobbörsen in einem Stellendatensatz, zu erreichen, müssen wir die Felder in diesen Themenlisten anpassen. Anpassen benutzerdefinierter Themenlisten in einer n:n-Beziehung Die Funktion zur Anpassung benutzerdefinierter Themenlisten in einer n:n-Beziehung ist wesentlich robuster als die Funktion zur Anpassung von Themenlisten in einer Nachschlagebeziehung. Wenn eine Nachschlagebeziehung zwischen zwei Objekten vorliegt (wie diejenige, die wir zwischen den Objekten "Job Application" (Stellenbewerbung) und "Candidate" (Bewerber) erstellt haben), kann die Themenliste bei einem Objekt nur Felder aus dem Objekt anzeigen, mit dem es direkt in Bezug steht. Sie kann sich nicht auf andere Objekte erstrecken, wie dies bei Formeln möglich ist. Beispielsweise kann die Themenliste "Job Applications" (Stellenbewerbungen) in einem Bewerberdatensatz jegliche Stellenbewerbungsfelder anzeigen, sie kann jedoch keine Felder aus dem Objekt "Position" (Stelle) anzeigen, selbst wenn das Objekt "Job Application" (Stellenbewerbung) Nachschlagebeziehungen zu den Objekten "Candidate" (Bewerber) und "Position" (Stelle) aufweist. Glücklicherweise bieten n:n-Beziehungen eine größere Flexibilität. Bei der Arbeit mit einer n:n-Beziehung kann die Themenliste des Verknüpfungsobjekts in einem Master-Objekt die Felder des anderen Master-Objekts anzeigen. Wir machen uns dies zunutze, indem wir die Themenliste "Positions" (Stellen) in den einzelnen Jobbörsen-Datensätzen so konfigurieren, dass Felder aus dem Objekt "Position" (Stelle) angezeigt werden und umgekehrt, sodass sich diese beiden Objekte aufeinander erstrecken. Hier schließt sich der Kreis. 164 Kapitel 6: Erweitern der einfachen Anwendung durch Beziehungen Probieren Sie es aus: Anpassen der Themenlisten für Stellen und Jobbörsen Bearbeiten wir zunächst die Themenliste "Employment Websites" (Jobbörsen) auf dem Objekt "Position" (Stelle). 1. Klicken Sie unter "Setup" auf Erstellen > Objekte. 2. Klicken Sie auf Position (Stelle). 3. Klicken Sie in der Themenliste "Seitenlayouts" neben "Position Layout" (Stelle-Layout) auf Bearbeiten. 4. Suchen Sie die Themenliste "Employment Websites" (Jobbörsen) und klicken Sie auf das zugehörige Schraubenschlüsselsymbol ( ). Im Popup-Fenster, das eingeblendet wird, werden in der Spalte Verfügbare Felder Felder aus dem Objekt "Job Posting" (Stellenausschreibung) und aus dem Objekt "Employment Website" (Jobbörse) angezeigt. Wenn keine Master-Detail-Beziehung zwischen Stellenausschreibungen und Jobbörsen bestünde, würden in der Liste Verfügbare Felder ausschließlich Felder zu Stellenausschreibungen angezeigt. 5. Verschieben Sie die Felder Employment Website: Employment Website Name (Jobbörse: Name der Jobbörse) und Employment Website: Web Address (Jobbörse: Webadresse) in die Spalte Ausgewählte Felder und bringen Sie die Felder mithilfe des Aufwärts- und des Abwärtspfeils in folgende Reihenfolge: • Employment Website: Employment Website Name (Jobbörse: Name der Jobbörse) • • Employment Website: Web Address (Jobbörse: Webadresse) Job Posting: Job Number (Stellenausschreibung: Stellenausschreibungsnummer) 6. Klicken Sie auf OK. 7. Klicken Sie im Seitenlayout auf Speichern. Führen Sie nun denselben Vorgang für die Themenliste "Positions" (Stellen) auf dem Objekt "Employment Website" (Jobbörse) aus. Gehen Sie dazu wie folgt vor: 1. Klicken Sie unter "Setup" auf Erstellen > Objekte. 2. Klicken Sie auf Employment Website (Jobbörse). 3. Klicken Sie in der Themenliste "Seitenlayouts" neben "Employment Website Layout" (Jobbörse-Layout) auf Bearbeiten. 165 Kapitel 6: Erweitern der einfachen Anwendung durch Beziehungen 4. Suchen Sie die Themenliste "Positions" (Stellen) und klicken Sie auf das zugehörige Schraubenschlüsselsymbol ( ). 5. Verschieben Sie die folgenden Felder in die Spalte Ausgewählte Felder und bringen Sie die Felder mithilfe des Aufwärts- und des Abwärtspfeils in folgende Reihenfolge: • • Position: Position Title (Stelle: Stellentitel) Job Posting: Job Number (Stellenausschreibung: Stellenausschreibungsnummer) • • • Position: Functional Area (Stelle: Funktionsbereich) Position: Location (Stelle: Standort) Position: Open Date (Stelle: Offen von) 6. Klicken Sie auf OK. 7. Klicken Sie im Seitenlayout auf Speichern. Probieren Sie es aus: Anpassen der Datensatzhervorhebungen für Jobbörsen und Stellenausschreibungen Wie bei unseren anderen benutzerdefinierten Objekten müssen wir auch die Datensatzhervorhebungen anpassen, indem wir ein neues kompaktes Layout für die einzelnen Objekte erstellen. 1. Klicken Sie unter "Setup" auf Erstellen > Objekte. 2. Klicken Sie auf Employment Website (Jobbörse). 3. Klicken Sie in der Themenliste "Kompakte Layouts" auf Neu, um ein kompaktes Layout mit folgenden Feldern zu erstellen: Geben Sie unter Bezeichnung einen Namen ein und passen Sie die Reihenfolge mithilfe der Schaltflächen Nach oben und Nach unten an. • • • • Employment Website Name (Jobbörse: Name der Jobbörse) Price Per Post (Preis pro Ausschreibung) Webadresse Maximum Budget (Maximales Budget) 4. Klicken Sie auf Speichern und weisen Sie dann das neue kompakte Layout als primäres kompaktes Layout für Jobbörsen zu. Jetzt führen wir die gleichen Vorgänge für die Stellenausschreibung durch. 166 Kapitel 6: Erweitern der einfachen Anwendung durch Beziehungen 1. Klicken Sie unter "Setup" auf Erstellen > Objekte. 2. Klicken Sie auf Job Posting (Stellenausschreibung). 3. Klicken Sie in der Themenliste "Kompakte Layouts" auf Neu, um ein kompaktes Layout mit folgenden Feldern zu erstellen: Geben Sie unter Bezeichnung einen Namen ein und passen Sie die Reihenfolge mithilfe der Schaltflächen Nach oben und Nach unten an. • Job Posting Number (Stellenausschreibung: Stellenausschreibungsnummer) • • Employment Website (Jobbörse) Position (Stelle) 4. Klicken Sie auf Speichern und weisen Sie dann das neue kompakte Layout als primäres kompaktes Layout für Stellenausschreibungen zu. Rekapitulation Unsere n:n-Beziehung ist nun vollständig. Sehen wir uns an, wie sie funktioniert. 1. Erstellen Sie einige Beispieldatensätze für Stellen und Jobbörsen. 2. Blättern Sie nach unten zur Themenliste "Employment Websites" (Jobbörsen) unten in einem Stellendatensatz und klicken Sie auf New: Job Posting (Neu: Stellenausschreibung). Die Bearbeitungsseite für Stellenausschreibungen wird angezeigt. 3. Verwenden Sie das Nachschlagesymbol zur Auswahl der Jobbörse, in der Sie die Stelle ausschreiben möchten, und klicken Sie auf Speichern. 4. Starten Sie Salesforce1 und öffnen Sie Ihre Beispieldatensätze für Stellen und Jobbörsen. In der Themenliste "Employment Websites" (Jobbörsen) zu dieser Stelle werden nun der Name und die Webadresse der Website angezeigt, auf der Sie soeben die Ausschreibung vorgenommen haben, sowie die Nummer der Stellenausschreibung. Klicken Sie auf den Namen der Jobbörse in der Themenliste und blättern Sie nach unten, um die Themenliste "Stellen" anzuzeigen, auf der alle Stellen angezeigt werden, die auf der betreffenden Website ausgeschrieben wurden. Nun haben Sie gesehen, wie einfach es ist, zugehörige Informationen so bereitzustellen, dass sie mit einem einzigen Mausklick verfügbar sind. 167 Kapitel 6: Erweitern der einfachen Anwendung durch Beziehungen Zusammenführung Wir haben gerade mehrere Objekte und viele Beziehungen erstellt. Im folgenden einfachen Diagramm wird dargestellt, was wir bisher geschafft haben. Abbildung58: Beziehungen in der Personalbeschaffungsanwendung All diese Beziehungen, Objekte und Felder werden unten in einem Entity-Relationship-Diagramm (ERD) dargestellt. Bei einem Entity-Relationship-Diagramm (ERD) handelt es sich um eine konzeptuelle Darstellung strukturierter Daten. Es ist besonders bei der Planung und beim Verständnis einer Anwendung hilfreich. 168 Kapitel 6: Erweitern der einfachen Anwendung durch Beziehungen Abbildung59: Entity-Relationship-Diagramm (ERD) für die Personalbeschaffungsanwendung Jetzt haben wir alle Objekte für unsere Personalbeschaffungsanwendung erstellt und wir haben viele benutzerdefinierte Felder – von Textfeldern und Auswahllisten bis hin zu komplexeren Formelfeldern und Nachschlagebeziehungsfeldern – erstellt. Wir haben eine robuste Benutzeroberfläche geschaffen, sodass unsere Personalbeschaffungsmitarbeiter und Einstellungs-Manager Daten zu Stellen und den zugehörigen Bewerbern, Stellenbewerbungen und Reviews eingeben und abrufen können. Und das alles haben wir geschafft, ohne auch nur eine einzige Zeile Code zu schreiben. Erinnern Sie sich daran, dass wir Anastasia O’Toole als Einstellungs-Manager für die Stelle "Benefits Specialist" zugewiesen haben? Sehen wir uns einmal an, was Anastasia jetzt tun kann: Sie kann ihre Stellen erstellen und aktualisieren und nachverfolgen, auf welchen Websites sie 169 Kapitel 6: Erweitern der einfachen Anwendung durch Beziehungen diese ausgeschrieben hat. Sie kann sich Details zu allen Bewerbern ansehen, die sich für die Stelle "Benefits Specialist" beworben haben, und sie kann deren verwandte Stellenbewerbungen überprüfen. Darüber hinaus hat sie die Möglichkeit, den Status der Stellenbewerbungen zu überprüfen. Sie muss jetzt nicht mehr in der Personalabteilung zahlreiche Microsoft Word-Dokumente und Microsoft Excel-Tabellenblätter durchsuchen, um ihre Aufgaben im Personalbeschaffungsbereich zu verwalten. Die Personalbeschaffungsanwendung ist auf dem besten Weg, eine voll funktionsfähige und nützliche Anwendung zu werden! Bevor wir dieses Kapitel jedoch abschließen, bereiten wir uns auf die verbleibenden Abschnitte dieses Buchs vor, indem wir einige tatsächliche Daten erstellen und importieren. Es hilft uns im nächsten Kapitel über Sicherheit und Freigabe, wenn wir über einige Datensätze verfügen, mit denen wir arbeiten können. Probieren Sie es aus: Herunterladen von Beispieldaten Neben der Eingabe von Daten über die mit Registerkarten versehenen Seiten können wir außerdem den praktischen Importassistenten verwenden, um mehrere Datensätze gleichzeitig zu importieren. Die Fähigkeit zum einfachen Datenimport in Ihre benutzerdefinierten Objekte ist einer der wichtigsten Vorteile der Force.com-Plattform. Laden wir einige Beispieldaten herunter, damit wir weitere Datensätze zu unseren benutzerdefinierten Objekten hinzufügen können, ohne uns die Finger wund tippen zu müssen. 1. Laden Sie die Datei RecruitingApp-7_0.zip herunter, die die Beispiel-CSV-Importdateien (kommagetrennte Werte) enthält, von developer.force.com/books/fundamentals herunter. 2. Extrahieren Sie die Datei in ein Verzeichnis auf Ihrem Computer. 3. Wechseln Sie zu dem Verzeichnis, in das Sie die ZIP-Datei extrahiert haben. Dieses Verzeichnis enthält drei CSV-Dateien: Positions.csv, Candidates.csv und JobApplications.csv. (Das Verzeichnis enthält noch weitere Dateien, die Sie später im Abschnitt Jenseits der Point-and-Click-Anwendungsentwicklung auf Seite 393 verwenden werden. Bevor wir irgendetwas importieren, müssen wir eine Änderung an der Importdatei für Stellen vornehmen. Die Beispieldatei Positions.csv, die Sie heruntergeladen haben, enthält fiktive Benutzer in der Spalte "Hiring Manager" (Einstellungs-Manager). Die Namen dieser Benutzer stimmen höchstwahrscheinlich mit keinem Benutzer in Ihrer Organisation überein, und wenn Sie die Datei im jetzigen Zustand importieren, kann der Importassistent keine übereinstimmenden Benutzer finden und das Feld Hiring Manager (Einstellungs-Manager) in den einzelnen Stellendatensätzen bleibt jeweils leer. Ändern wir das also. 170 Kapitel 6: Erweitern der einfachen Anwendung durch Beziehungen 4. Wechseln Sie zu dem Verzeichnis, in das Sie die ZIP-Datei extrahiert haben, und öffnen Sie die Datei Positions.csv in Excel, einem Texteditor oder einem anderen Programm, mit dem CSV-Dateien gelesen werden können. 5. Ersetzen Sie in der Spalte "Hiring Manager" (Einstellungs-Manager) die fiktiven Benutzer durch den Vor- und Nachnamen eines Benutzers in Ihrer Organisation. 6. Speichern Sie die Datei und achten Sie darauf, das CSV-Format beizubehalten. Anmerkung: Wenn Sie ein anderes Gebietsschema verwenden als "Englisch (USA)" sind die Datums- und Feldwerte in der Datei Positions.csv ebenfalls ungültig. Sie müssen sie vor dem Beginn des Importvorgangs ändern. Probieren Sie es aus: Verwenden des Import-Assistenten Nun sehen wir uns Schritt für Schritt den Importvorgang für Stellendatensätze unter Verwendung des Importassistenten und der Datei Positions.csv, die Sie heruntergeladen haben, an. 1. Klicken Sie unter "Setup" auf Datenverwaltung > Benutzerdefinierte Objekte importieren. 2. Klicken Sie auf Starten Sie den Import-Assistenten!. Der Importassistent wird angezeigt. 3. Wählen Sie als Typ für den zu importierenden Datensatz Position (Stelle) aus und klicken Sie auf Weiter. 4. Wählen Sie Ja aus, um zu verhindern, dass nach diesem Import doppelte Stellendatensätze vorhanden sind. Übernehmen Sie die restlichen Standardwerte für den Abgleich und klicken Sie auf Weiter. 5. Wählen Sie im Feld für den Inhaber des Datensatzes Keine aus. Wir haben in die CSV-Datei kein Benutzerfeld zum Festlegen von Datensatzinhabern eingefügt. Im Importassistenten werden Sie als Inhaber aller neuen Datensätze zugeordnet. 6. Wählen Sie das Nachschlagebeziehungsfeld Hiring Manager (Einstellungs-Manager) aus, sodass Sie Stellendatensätze mit vorhandenen Benutzerdatensätzen in der Personalbeschaffungsanwendung verbinden können. Klicken Sie dann auf Weiter. 7. Wählen Sie Name als das Feld für den Abgleich aus, das herangezogen wird, wenn der Importassistent die Namen unter Hiring Manager (Einstellungs-Manager) in Ihrem Importprofil mit den Benutzernamen im System vergleicht, und klicken Sie auf Weiter. 171 Kapitel 6: Erweitern der einfachen Anwendung durch Beziehungen 8. Klicken Sie auf Durchsuchen und rufen Sie die Datei C:\recruiting\Positions.csv auf. Klicken Sie auf Weiter. 9. Geben Sie mithilfe der Dropdownlisten die Salesforce-Felder an, die den Spalten in Ihrer Importdatei entsprechen. Um Ihnen die Arbeit zu erleichtern, werden übereinstimmende Bezeichnungen automatisch ausgewählt. Klicken Sie auf Weiter. 10. Klicken Sie auf Jetzt importieren!. 11. Klicken Sie auf Fertigstellen. Verwenden Sie die folgende Tabelle, um den Importvorgang für Bewerberdatensätze zu wiederholen. Sie werden feststellen, dass der Assistent die beiden Schritte für den Abgleich des Nachschlagebeziehungsfelds überspringt. Da das Objekt "Candidate" (Bewerber) nicht über Nachschlagebeziehungsfelder verfügt, werden diese Schritte im Importassistenten automatisch ausgelassen. Tabelle19: Importieren der Datei Candidates.csv Gewünschter Schritt im Assistenten Erforderliche Optionen Datensatz auswählen Candidate (Bewerber) Doppelte Einträge verhindern Nein – alle Datensätze in meine Importdatei aufnehmen Beziehungen festlegen Keine Datei hochladen Navigieren Sie zu C:\recruiting\Candidates.csv Feldzuordnung Alle Standardwerte akzeptieren Importeinstellungen überprüfen Klicken Sie auf Jetzt importieren!. Wiederholen wir den Vorgang zum Schluss noch einmal für die Stellenbewerbungsdatensätze. Bei dieser Wiederholung verwenden wir das Feld Email (E-Mail), eine externe ID im Objekt "Candidate" (Bewerber), um Stellenbewerbungen mit den richtigen Bewerberdatensätzen abzugleichen. Tabelle20: Importieren der Datei Job_Applications.csv Gewünschter Schritt im Assistenten Erforderliche Optionen Datensatz auswählen Job Application (Stellenbewerbung) Doppelte Einträge verhindern Nein – alle Datensätze in meine Importdatei aufnehmen 172 Kapitel 6: Erweitern der einfachen Anwendung durch Beziehungen Gewünschter Schritt im Assistenten Erforderliche Optionen Beziehungen festlegen Welches Benutzerfeld...? Keine Welche Nachschlagefelder...? Candidate (Bewerber), Position (Stelle) Abgleich für Suchfelder definieren Welches Feld in Candidate...? Email (E-Mail), externe ID Welches Feld in Position...? Position Title (Stellentitel) Datei hochladen Navigieren Sie zu C:\recruiting\Job_Applications.csv Feldzuordnung Email (col 0): Candidate (Bewerber) Position Title (col 1): Position (Stelle) Importeinstellungen überprüfen Klicken Sie auf Jetzt importieren!. Hervorragend! Während diese Dateien importiert werden, können Sie unter "Setup" auf Importe klicken oder Überwachen > Importe auswählen, um ihren Status zu überprüfen. Nach dem Abschluss der Importvorgänge kehren Sie zur Registerkarte "Positions" (Stellen), "Candidates" (Bewerber) oder "Job Applications" (Stellenbewerbungen) zurück und klicken Sie auf Los! neben der Dropdownliste Anzeigen. Daraufhin wird eine Liste aller neu importierten Datensätze angezeigt. Wir haben unserer Anwendung mit wenig Aufwand gerade eine Reihe von Daten hinzugefügt. Im nächsten Kapitel sehen wir uns die Möglichkeiten an, mit denen wir den Zugriff auf diese Daten mithilfe der integrierten Tools der Plattform steuern können. Nun steigen wir in die Details hinsichtlich Sicherheit, Freigaberegeln, Berechtigungen, Rollen und Profilen ein. 173 Kapitel 7 Einrichten von Sicherheit und Freigabe für Daten Themen: • • • • • • • • • Steuern des Zugriffs auf Daten in unserer Anwendung Konzepte aus dem Bereich Datenzugriff Steuern des Zugriffs auf Objekte Steuern des Zugriffs auf Felder Steuern des Zugriffs auf Datensätze Anzeigen von Feldwerten und Seitenlayouts je nach Profil Zusammenführung Delegieren der Datenverwaltung Zusammenfassung Im letzten Kapitel haben wir die Personalbeschaffungsanwendung um fortgeschrittene Felder und komplexe Objektbeziehungen erweitert. Im neuen Objekt "Candidate" (Bewerber) werden Informationen zu potenziellen Mitarbeitern nachverfolgt, die Personalbeschaffungsmitarbeiter können über das neue Objekt "Job Application" (Stellenbewerbung) Bewerber in Bezug zu Stellen setzen und Gesprächsleiter können im neuen Objekt "Review" Einschätzungen und Bewertungen für die Bewerber hinzufügen. Das ist eine recht handfeste Anwendung! Mit dem erweiterten Datenmodell wurde außerdem die Basis für das Hinzufügen leistungsstarker Funktionen wie Workflow und Genehmigungen sowie Berichterstellungsfunktionen geschaffen, mit denen wir uns in späteren Kapiteln befassen. Nachdem nun alle Objektbeziehungen eingerichtet wurden, ist es an der Zeit, darüber nachzudenken, welche Personen die Anwendung verwenden werden und wie viel Zugriff sie auf die darin enthaltenen Daten haben sollten. Wie bei vielen Anwendungen sind in unserer Personalbeschaffungsanwendung sensible Daten enthalten, wie Sozialversicherungsnummern, Gehälter und Bewerberreviews, die uns in Teufels Küche bringen könnten, wenn sie von den falschen Leuten gesehen werden. Wir müssen für Sicherheit sorgen, ohne 175 Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten Personalbeschaffungsmitarbeitern, Einstellungs-Managern und Gesprächsleitern die Arbeit zu erschweren. Und hier kommt ein weiterer enormer Vorzug der Force.com-Plattform zum Vorschein: leicht zu konfigurierende Sicherheitssteuerungen, mit denen wir einfach und ohne viel Kopfzerbrechen den Zugriff auf Daten, die die Benutzer nicht sehen sollen, einschränken können. Ähnlich wie Zugriffssteuerungslisten oder Windows-Ordnerberechtigungen ermöglicht uns die Force.com-Plattform anzugeben, welche Personen die einzelnen Datensätze bzw. Felder in der Anwendung anzeigen, erstellen, bearbeiten oder löschen können. Im diesem Kapitels sehen wir, wie wir die Force.com-Plattform nutzen können, um diese Regeln zu implementieren. 176 Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten Steuern des Zugriffs auf Daten in unserer Anwendung Wie wir bereits gesehen haben, gibt es drei Typen von Benutzern, die Zugriff auf die Daten in unserer Personalbeschaffungsanwendung benötigen: Personalbeschaffungsmitarbeiter, Einstellungs-Manager und Gesprächsleiter. Fügen wir zu diesen dreien noch einen vierten Benutzertyp hinzu, einen Standardmitarbeiter, der keine Bewerbungsgespräche führen und niemanden einstellen muss. (Dieser Mitarbeiter hilft uns dabei, die Standardberechtigungen zu ermitteln, die für alle neuen Personalbeschaffungsobjekte in unserer Anwendung gelten sollten.) Betrachten wir im Einzelnen die Zugriffsarten, die diese Benutzer jeweils benötigen, und, was noch wichtiger ist, die Zugriffsarten, die sie für ihre Tätigkeit nicht benötigen. Nachdem wir einen Satz an erforderlichen Berechtigungen zusammengestellt haben, ermitteln wir im Rest des Kapitels, wie wir sie implementieren können. Erforderliche Berechtigungen für den Personalbeschaffungsmitarbeiter Sehen wir und den ersten Satz an Berechtigungen einmal am Beispiel von Mario Ruiz, einem Personalbeschaffungsmitarbeiter bei Universal Containers an. Um seinen Job zu machen, muss Mario sämtliche im System vorhandenen Stellen, Bewerber, Stellenbewerbungen oder Reviews erstellen, anzeigen und ändern können und er benötigt die vollständige Kontrolle über Stellenausschreibungen auf Jobbörsen. Ebenso muss Mario die Personalbeschaffungsdatensätze der anderen Personalbeschaffungsmitarbeiter anzeigen und ändern können, da alle Personalbeschaffungsmitarbeiter bei Universal Containers gemeinsam an der Besetzung sämtlicher Stellen arbeiten, unabhängig davon, wer die jeweilige Stelle erstellt hat. Auch wenn Mario die mächtigste Rolle in unserer Personalbeschaffungsanwendung innehat, dürfen wir ihm dennoch nicht sämtliche Rechte erteilen. Es ist zwar kein Problem, dass Stellenausschreibungs- und Jobbörsendaten jederzeit endgültig gelöscht werden, jedoch müssen nach staatlichen und bundesstaatliche Gesetzen zur Aufzeichnung öffentlicher Daten alle mit der Personalbeschaffung verbundenen Datensätze für mehrere Jahre archiviert werden, sodass Einstellungsentscheidungen bei Anfechtung später vor Gericht verteidigt werden können. Folglich müssen wir sicherstellen, dass Mario niemals versehentlich einen Datensatz löscht, der von Gesetzes wegen gespeichert werden muss. 177 Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten Aber wie soll er den Überblick über die Stellen, Bewerber, Stellenbewerbungen und Reviews behalten, wenn er sie nicht löschen darf? Wird die Anwendung dann nicht mit alten Daten überschwemmt? Nicht, wenn man dieses Problem auf intelligente Weise löst. Mario sollte, anstatt alte Datensätze zu löschen, über das Feld Status angeben, ob ein Datensatz aktuell ist. Wir filtern dann alle alten Datensätze heraus, indem wir eine einfache Listenansicht verwenden. Im Folgenden werden die Berechtigungen zusammengefasst, die wir für einen Personalbeschaffungsmitarbeiter implementieren müssen: Tabelle21: Zusammenfassung der erforderlichen Berechtigungen: Recruiter (Personalbeschaffungsmitarbeiter) Lesen Erstellen Bearbeiten Löschen Position (Stelle) Candidate (Bewerber) Job Application (Stellenbewerbung) Review Job Posting (Stellenausschreibung) Employment Website (Jobbörse) Erforderliche Berechtigungen für den Einstellungs-Manager Die nächste Gruppe von erforderlichen Berechtigungen stellt uns vor größere Herausforderungen. Ben Stuart, unser Einstellungs-Manager, muss in der Lage sein, auf die Personalbeschaffungsdatensätze zuzugreifen, die mit seinen offenen Stellen zu tun haben, er sollte jedoch nicht mit anderen Personalbeschaffungsdatensätzen herumspielen (es sei denn, die Inhaber dieser Datensätze sind andere Einstellungs-Manager, die ihm unterstellt sind). Außerdem gibt es bestimmte sensible Felder, die er nicht zu sehen braucht, wie beispielsweise das Feld mit der Sozialversicherungsnummer. Gehen wir Objekt für Objekt vor, um aufzuschlüsseln, auf welche Elemente genau Ben Zugriff benötigt, um seine Arbeit zu erledigen. 178 Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten Position (Stelle) Zunächst möchte Ben gerne seine eigenen Stellen ausschreiben, damit er sie so schnell wie möglich veröffentlichen kann. In unserer Anwendung muss jedoch Mario, der Personalbeschaffungsmitarbeiter, letztlich die Inhaberschaft über den Datensatz übernehmen, um sicherzustellen, dass die Stelle besetzt wird. Folglich benötigt Ben zwar die Fähigkeit, Stellen zu erstellen, aber dann brauchen wir einen Mechanismus, um sicherzustellen, dass sie letztlich an Mario als Inhaber übertragen werden. (Tipp: Wie Sie inVerwenden benutzerdefinierter Workflow- und Genehmigungsprozesse auf Seite 285 sehen werden, gehen wir dieses Problem mit einer Workflow-Regel an, die die Inhaberschaft von Stellen, die von einem Einstellungs-Manager erstellt wurden, an einen Personalbeschaffungsmitarbeiter überträgt. Im Moment gehen wir einfach davon aus, dass dies bereits so funktioniert.) Ben sollte außerdem in der Lage sein, alle Felder für Stellen zu sehen und zu aktualisieren, für die er der Einstellung-Manager ist, die Stellen anderer Manager sollte er jedoch lediglich sehen können. Candidate (Bewerber) Ben möchte zuweilen auch einen Top-Bewerber abwerben, der sich um eine Stelle bei einem anderen Manager bewirbt, aber diese Praxis wird von Universal Containers nicht gebilligt. Daher sollte Ben nur diejenigen Bewerber sehen können, die sich für eine Stelle beworben haben, bei der er als Einstellungs-Manager fungiert. Außerdem gibt es keinen Grund, warum Ben die Sozialversicherungsnummer des Bewerbers sehen müsste. Dieses Feld sollte also für ihn nicht sichtbar sein. Job Application (Stellenbewerbung) Als Einstellungs-Manager muss Ben in der Lage sein, den Status dieser Stellenbewerbungen zu aktualisieren, um anzugeben, welche Bewerber ausgewählt oder abgelehnt werden sollten. Er sollte jedoch nicht in der Lage sein, die Bewerberliste in der Stellenbewerbung zu ändern, und auch nicht die Stelle, auf die sich der Bewerber bewirbt. Wir müssen also eine Möglichkeit finden, um zu verhindern, dass Ben die Nachschlagefelder in Stellenbewerbungen aktualisiert. Review Um eine Entscheidung zu den Personen zu treffen, die sich bewerben, muss Ben die Reviews sehen, die von den Interviewern gepostet wurden. Außerdem muss er Kommentare dazu abgeben können, wenn er glaubt, der Gesprächsleiter sei zu voreingenommenen in seinem Review gewesen. Außerdem muss auch Ben selbst Reviews erstellen können, damit er seine eigenen Eindrücke von den Bewerbern, die er befragt, aufzeichnen kann. 179 Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten Job Posting (Stellenausschreibung) Ben möchte sicherstellen, dass seine schwieriger zu besetzenden Stellen für die talentiertesten Personen auf dem betreffenden Gebiet sichtbar sind. Die effizienteste Möglichkeit hierfür besteht darin, offene Stellen auf verschiedenen Jobbörsen auszuschreiben. Angesichts der Tatsache, dass die verschiedenen Jobbörsen unterschiedliche Benutzertypen mit uneinheitlichen Kompetenzen verwenden, sollten wir Ben die Möglichkeit geben, selbstständig Stellenausschreibungen auf Jobbörsen zu veröffentlichen, da er am besten beurteilen kann, welche Kompetenzen für seine offenen Stellen erforderlich sind. Employment Website (Jobbörse) Wenn es nach Ben ginge, würde er das gesamte Budget des Unternehmens für seine offenen Stellen auf Jobbörsen beanspruchen. Daher sollte Ben nicht gestattet sein, Jobbörsendatensätze zu bearbeiten, da er dadurch das Budget des Unternehmens für Stellenausschreibungen ändern könnte, was zu einem finanziellen Debakel führen könnte. Dennoch müssen wir sicherstellen, dass Ben Jobbörsendatensätze anzeigen kann, damit er sehen kann, bei welchen Jobbörsen Universal Containers Accounts hat und welcher Anteil des Budgets für die betreffende Jobbörse verfügbar ist. Im Folgenden werden die Berechtigungen zusammengefasst, die wir für einen Einstellungs-Manager implementieren müssen: Tabelle22: Zusammenfassung der erforderlichen Berechtigungen: Hiring Manager (Einstellungs-Manager) Lesen Erstellen Position (Stelle) Candidate (Bewerber) Bearbeiten * * (nicht für SSN) Job Application (Stellenbewerbung) (nicht für Nachschlagefelder) Review Job Posting (Stellenausschreibung) Employment Website (Jobbörse) 180 * * * Löschen Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten * Nur für die Datensätze, die mit einer Stelle verknüpft sind, der der Einstellungs-Manager zugewiesen wurde Erforderliche Berechtigungen für den Gesprächsleiter Sehen wir uns für unseren dritten Satz an erforderlichen Berechtigungen einmal die Rolle von Melissa Lee als Gesprächsleiter an. Ben, ihr Manager, möchte, dass Melissa Gespräche mit Bewerbern für anspruchsvolle technische Stellen führt, er möchte jedoch nicht, dass sie Gespräche mit Personen führt, die sich für Rollen im Benutzeroberflächenteam bewerben. Folglich sollte Melisse in der Lage sein, nur die Bewerber und Stellenbewerbungen anzuzeigen, denen sie als Gesprächsleiter zugewiesen ist. Es muss zwar keine derartige Beschränkung für die vorhandenen Stellen geben, aber sie sollte die Werte für das Mindestgehalt und Höchstgehalt für diese Personen nicht anzeigen können. Ebenso wenig sollte sie die Sozialversicherungsnummer der Bewerber sehen, da es sich hierbei um sensible Daten handelt, die nichts mit ihrer Aufgabe zu tun haben. Melissa muss ihre Reviews erstellen und bearbeiten können, sodass sie ihre Kommentare zu jedem Bewerber aufzeichnen kann. Sie sollte jedoch keinen Zugriff auf die Reviews anderer Gesprächsleiter haben, da sie möglicherweise durch diese in die eine oder andere Richtung beeinflusst werden könnte. Wie bei der Einstellung von Managern und Personalbeschaffungsmitarbeitern sollte Melissa auch nicht dazu berechtigt sein, irgendwelche Datensätze zu löschen, um die Gesetze hinsichtlich öffentlicher Aufzeichnung bzw. Archivierung einzuhalten. Letztendlich haben Stellenausschreibungen in Jobbörsen nichts mit Melissas Zuständigkeiten zu tun, sodass weder die Jobbörse noch Stellenausschreibungsdatensätze für sie zugänglich sein sollten. Im Folgenden werden die Berechtigungen zusammengefasst, die wir für einen Gesprächsleiter implementieren müssen: Tabelle23: Zusammenfassung der erforderlichen Berechtigungen: Interviewer (Gesprächsleiter) Lesen Position (Stelle) Erstellen Bearbeiten Löschen (nicht für Mindestgehalt/Höchstgehalt) 181 Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten Lesen Candidate (Bewerber) Erstellen Bearbeiten Löschen * (nicht für SSN) Job Application (Stellenbewerbung) * Review ** ** Job Posting (Stellenausschreibung) Employment Website (Jobbörse) * Nur für die Datensätze, die mit einer Stelle verknüpft sind, der der Gesprächsleiter zugewiesen wurde ** Nur für die Datensätze, deren Inhaber der Gesprächsleiter ist Erforderliche Berechtigungen für den Standardmitarbeiter Mitarbeiter wie Manny Damon im Western Sales Team sind häufig am erfolgreichsten bei der Anwerbung neuer Mitarbeiter, auch wenn sie keine aktiven Einstellungs-Manager oder Gesprächsleiter sind. Daher müssen wir sicherstellen, dass Mitarbeiter wie Manny offene Stellen sehen können, dass sie jedoch nicht die Werte der Felder für das Mindest- und das Höchstgehalt der Stellen anzeigen können. Anderenfalls geben sie womöglich Freunden entsprechende Hinweise, damit diese in den Gehaltsverhandlungen das Höchstgehalt anstreben. Außerdem sollte Manny auch keine anderen Datensätze in der Personalbeschaffungsanwendung sehen. Im Folgenden werden die Berechtigungen zusammengefasst, die wir für einen Standardmitarbeiter implementieren müssen: 182 Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten Tabelle24: Zusammenfassung der erforderlichen Berechtigungen: Standard Employee (Standardmitarbeiter) Lesen Position (Stelle) Erstellen Bearbeiten Löschen (nicht für Mindestgehalt/Höchstgehalt) Candidate (Bewerber) Job Application (Stellenbewerbung) Review Job Posting (Stellenausschreibung) Employment Website (Jobbörse) Wo stehen wir jetzt also? Nun, da wir die erforderlichen Berechtigungen für die jeweiligen Benutzer durchgegangen sind, sollten wir unsere Gedanken organisieren, indem wir sie in der folgenden Tabelle zusammenfassen. Im Rest dieses Kapitels werden wir dann herausfinden, wie wir die Plattform nutzen können, um diese Regeln in unserer Personalbeschaffungsanwendung zu implementieren. Tabelle25: Zusammenfassung der erforderlichen Berechtigungen Recruiter Hiring Manager Interviewer Standard (Personalbeschafungsmitarbeiter) (Einstellungs-Manager) (Gesprächsleiter) Employee (Standardmitarbeiter) Position (Stelle) Lesen, Erstellen, Lesen, Erstellen, Lesen (nicht für Lesen (nicht für Bearbeiten Bearbeiten* Mindestgehalt/Höchstgehalt) Mindestgehalt/Höchstgehalt) Candidate (Bewerber) Lesen, Erstellen, Lesen* (nicht für Lesen* (nicht für Bearbeiten SSN) SSN) Job Application Lesen, Erstellen, Lesen, Lesen* (Stellenbewerbung) Bearbeiten Bearbeiten (nicht 183 Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten Recruiter Hiring Manager Interviewer Standard (Personalbeschafungsmitarbeiter) (Einstellungs-Manager) (Gesprächsleiter) Employee (Standardmitarbeiter) für Nachschlagefelder) Review Lesen, Erstellen, Lesen, Erstellen, Lesen**, Bearbeiten Bearbeiten Erstellen, Bearbeiten** Job Posting Lesen, Erstellen, Lesen*, (Stellenausschreibung) Bearbeiten, Erstellen*, Löschen Bearbeiten* Employment Website (Jobbörse) Lesen, Erstellen, Lesen Bearbeiten, Löschen * Nur für die Datensätze, die mit einer Stelle verknüpft sind, der der Einstellungs-Manager/Gesprächsleiter zugewiesen wurde ** Nur für die Datensätze, deren Inhaber der Gesprächsleiter ist Tipp: Bei der Implementierung der Sicherheits- und Freigaberegeln für Ihre eigene Organisation bietet es sich oft an, eine solche Tabelle mit den erforderlichen Berechtigungen zu erstellen, um Ihre Gedanken zu ordnen und sicherzustellen, dass Sie nicht vergessen, einem bestimmten Benutzer Zugriffsberechtigungen zu erteilen oder zu verwehren. Sie werden feststellen, dass wir im Verlauf dieses Kapitels immer wieder auf diese Tabelle verweisen. Konzepte aus dem Bereich Datenzugriff Bevor wir mit der Implementierung unserer Sicherheits- und Freigaberegeln beginnen, sollten wir uns einen raschen Überblick darüber verschaffen, mit welchen Methoden der Datenzugriff auf der Plattform gesteuert werden kann: Objektebenensicherheit Die offenkundigste Methode zur Steuerung des Datenzugriffs besteht darin zu verhindern, dass ein Benutzer eine Instanz eines bestimmten Objekttyps, wie beispielsweise eine Stelle oder einen Review, anzeigen, erstellen, bearbeiten oder löschen kann. Mit 184 Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten objektspezifischem Zugriff können wir ganze Registerkarten und Objekte vor bestimmten Benutzern verbergen, sodass diese nicht einmal wissen, dass diese Art von Daten existiert. Auf der Plattform legen wir den objektspezifischen Zugriff durch Objektberechtigungen in Benutzerprofilen und Berechtigungssätzen fest. Wir erfahren in Kürze mehr darüber. Feldebenensicherheit Eine Abwandlung des objektspezifischen Zugriffs ist der feldspezifische Zugriff, bei dem verhindert werden kann, dass ein Benutzer den Wert für ein bestimmtes Feld in einem Objekt anzeigen, bearbeiten bzw. löschen kann. Mit feldspezifischem Zugriff können wir sensible Informationen, wie das Höchstgehalt für eine Stelle oder die Sozialversicherungsnummer eines Bewerbers, ausblenden, ohne das gesamte Objekt verbergen zu müssen. Auf der Plattform legen wir den feldspezifischen Zugriff durch Feldberechtigungen in Benutzerprofilen und Berechtigungssätzen fest. Auch dazu erfahren wir in Kürze mehr. Sicherheit auf der Datensatzebene Um den Datenzugriff mit ein wenig mehr Raffinesse zu steuern, können wir bestimmten Benutzern die Anzeige eins Objekts gestatten, aber dann die einzelnen Objektdatensätze einschränken, die sie sehen können. Beispielsweise gestattet der datensatzspezifische Zugriff Gesprächsleitern wie Melissa Lee, ihre eigenen Reviews zu sehen, ohne dass für sie die Reviews aller anderen Personen in ihrem Team sichtbar sind. Auf der Plattform gibt es mehrere Möglichkeiten zur Festlegung von Regeln für den datensatzspezifischen Zugriff: • Mit unternehmensweiten Standardeinstellungen können wir den Basiszugriff angeben, den ein Benutzer in der Organisation hat. Beispielsweise können wir festlegen, dass alle Benutzer jeden beliebigen Datensatz eines bestimmten Objekts sehen können, auf das sie laut ihren Objektberechtigungen Zugriff haben, dass sie jedoch eine gesonderte Genehmigung benötigen, um einen solchen Datensatz zu bearbeiten. • Mit Rollenhierarchien können wir sicherstellen, dass ein Vorgesetzter immer Zugriff auf dieselben Datensätze hat wie die ihm unterstellten Personen. • Freigaberegeln ermöglichen automatische Ausnahmen von den unternehmensweiten Standardeinstellungen für bestimmte Gruppen von Benutzern. • Durch die manuelle Freigabe können Datensatzinhaber Benutzern, die keinen anderweitigen Zugriff auf den Datensatz haben, Lese- und Bearbeitungsberechtigungen erteilen. 185 Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten Abbildung60: Steuern des Datenzugriffs mit der Force.com-Plattform Durch die Kombination aller dieser Freigabe- und Sicherheitseinstellungen in der Plattform können wir schnell und einfach Benutzerberechtigungen für eine Organisation mit Tausenden Benutzern festlegen, ohne die Berechtigungen jeder einzelnen Person manuell konfigurieren zu müssen. Nicht schlecht! Informieren wir uns nun genauer über die einzelnen Methoden zur Steuerung des Datenzugriffs und darüber, wie die Sicherheits- und Freigaberegeln für unsere Anwendung implementiert werden können. Steuern des Zugriffs auf Objekte Konfigurieren wir als Erstes den Zugriff auf die benutzerdefinierten Objekte unserer Personalbeschaffungsanwendung. Wie bereits erwähnt, können wir steuern, ob ein Benutzer erfährt, dass ein bestimmtes Objekt in der Anwendung vorhanden ist, indem wir die entsprechenden Berechtigungen in seinen Profilen und Berechtigungssätzen festlegen. Aber was genau sind Profile und Berechtigungssätze und was wird damit gesteuert? 186 Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten Einführung in Profile Ein Profil ist eine Sammlung von Einstellungen und Berechtigungen, die festlegen, was ein Benutzer auf der Plattform tun kann, ähnlich wie eine Gruppe in einem Windows-Netzwerk, wobei alle Mitglieder der Gruppe dieselben Ordnerberechtigungen und Zugriff auf dieselbe Software haben. Profile steuern Folgendes: • • • • • • • • • • • Objektberechtigungen – Die Objekte, die die Benutzer anzeigen, erstellen, bearbeiten und löschen können Feldberechtigungen (auch als "Feldebenensicherheit" bekannt) – Die Objektfelder, die die Benutzer anzeigen und bearbeiten können Benutzerberechtigungen – Die einzelnen Funktionen, die die Benutzer ausführen können, wie die Anzeige des Setup-Menüs und die Anpassung von Anwendungen Registerkarteneinstellungen – Die Registerkarten, die die Benutzer in der Anwendung anzeigen können Anwendungseinstellungen – Die standardmäßigen und benutzerdefinierten Anwendungen, auf die die Benutzer zugreifen können Apex-Klassenzugriff – Die Apex-Klassen, die ein Benutzer ausführen kann Visualforce-Seitenzugriff – Die Visualforce-Seiten, die ein Benutzer ausführen kann Seitenlayouts – Die Seitenlayouts, die der Benutzer sieht Datensatztypen – Die Datensatztypen, die dem Benutzer zur Verfügung stehen Anmeldezeiten – Die Stunden, während deren sich der Benutzer bei der Anwendung anmelden kann IP-Bereiche für die Anmeldung – Die IP-Adressen, über die sich der Benutzer bei der Anwendung anmelden kann Profile werden üblicherweise durch den Tätigkeitsbereich eines Benutzers definiert (z. B. Systemadministrator oder Vertriebsmitarbeiter), Profile können jedoch für jede Kategorie angelegt werden, die in Ihrer Organisation sinnvoll ist. Ein Profil kann mehreren Benutzern zugeordnet werden, aber ein Benutzer kann jeweils nur einem Profil zugeordnet sein. Standardprofile Die Plattform bietet den folgenden Satz an Standardprofilen in jeder Organisation: • • • • Schreibschutz Standardbenutzer Marketingbenutzer Vertragsmanager 187 Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten • • Lösungsmanager Systemadministrator Jedes dieser Standardprofile enthält einen standardmäßigen Satz an Berechtigungen für alle auf der Plattform verfügbaren Standardobjekte. Wenn ein benutzerdefiniertes Objekt erstellt wird, wird durch die meisten Profile (außer durch die mit der Berechtigung "Alle Daten modifizieren") kein Zugriff auf das Objekt erteilt. Sie finden weitere detaillierte Beschreibungen aller Standardprofile in der Salesforce-Hilfe, aber es ist wichtig zu wissen, dass Sie die Objektberechtigungen grundsätzlich nicht in einem Standardprofil bearbeiten können. Wenn Sie Zugriff auf die Enterprise, Unlimited, Performance oder Developer Edition der Plattform haben, bietet es sich an, Kopien der Standardprofile zu erstellen und die Kopien dann den Bedürfnissen in Ihrer Organisation entsprechend anzupassen. Sie können außerdem Berechtigungssätze verwenden, um zusätzliche Berechtigungen zu erteilen. Für unsere Personalbeschaffungsanwendung erstellen wir eine Kopie des Standardprofils und passen es an (die Enterprise, die Unlimited, die Performance und die Developer Edition sind die einzigen Editionen, die von der Personalbeschaffungsanwendung unterstützt werden). Wir verwenden die Berechtigungssätze auch, um zusätzliche Berechtigungen für eine kleinere Gruppe von Benutzern zu erteilen. Einführen von Berechtigungssätzen Ähnlich wie ein Profil ist auch ein Berechtigungssatz eine Sammlung von Einstellungen und Berechtigungen, die festlegen, was ein Benutzer tun kann. Berechtigungssätze beinhalten teilweise dieselben Berechtigungen und Einstellungen, die auch in Profilen zu finden sind. • • • • • • • Objektberechtigungen Feldberechtigungen (auch als "Feldebenensicherheit" bekannt) Benutzerberechtigungen Registerkarteneinstellungen Anwendungseinstellungen Apex-Klassenzugriff Visualforce-Seitenzugriff Warum gibt es also Profile und Berechtigungssätze? Der wichtigste Unterschied zwischen diesen Elementen ist, dass Benutzer zwar nur ein einziges Profil aufweisen können, jedoch eine große Anzahl von Berechtigungssätzen. Sie können also Profile verwenden, um die Mindestberechtigungen und -einstellungen festzulegen, die alle 188 Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten Benutzertypen benötigen, und anschließend Berechtigungssätze verwenden, um zusätzliche Berechtigungen zu gewähren, ohne irgendwelche Benutzerprofile ändern zu müssen. Es gibt mehrere Möglichkeiten, wie Sie Berechtigungssätze nutzbringend einsetzen können. • Gewähren von Zugriff auf benutzerdefinierte Objekte oder ganze Anwendungen Angenommen, es gibt in Ihrer Organisation sehr viele Benutzer mit denselben Haupttätigkeitsbereichen. Sie können all diesen Benutzern dasselbe Profil zuweisen, das ihnen alle Zugriffsrechte gewährt, die sie für ihre Tätigkeit benötigen. Aber nehmen wir an, einige dieser Benutzer arbeiten an einem speziellen Projekt und benötigen Zugriff auf eine Anwendung, die sonst niemand benutzt. Nehmen wir weiter an, einige andere Benutzer benötigen Zugriff auf diese Anwendung und noch eine weitere Anwendung, die die erste Gruppe nicht benötigt. Wenn wir nur mit Profilen arbeiten würden, müssten Sie weitere Profile erstellen, die auf die Bedürfnisse dieser wenigen Benutzer zugeschnitten wären, oder alternativ riskieren, dem ursprünglichen Profil weitere Zugriffsrechte zu gewähren, wodurch die Anwendungen auch Benutzern zur Verfügung stehen würden, die sie nicht benötigen. Keine dieser Optionen ist ideal, insbesondere, wenn Ihre Organisation wächst und sich die Bedürfnisse der Benutzer häufig ändern. Mit Berechtigungssätzen können Sie ganz einfach Zugriff auf die verschiedenen Anwendungen und benutzerdefinierten Objekte in Ihrer Organisation gewähren und den Zugriff wieder entziehen, wenn er nicht mehr benötigt wird. • Gewähren von Zugriff – vorübergehend oder langfristig – auf bestimmte Felder Nehmen wir beispielsweise an, es gibt eine Benutzerin namens Dana, die vorübergehenden Zugriff auf ein Feld benötigt, während ihr Kollege im Urlaub ist. Sie können einen Berechtigungssatz erstellen, der Zugriff auf das Feld gewährt, und diesen Berechtigungssatz Dana zuweisen. Wenn Danas Kollege aus dem Urlaub zurückkommt und Dana keinen Zugriff mehr auf das Feld benötigt, entfernen Sie einfach die Zuweisung dieses Berechtigungssatzes aus Danas Benutzerdatensatz. Profile und Berechtigungssätze in unserer Personalbeschaffungsanwendung Wir haben bereits über vier verschiedene Benutzertypen gesprochen: Personalbeschaffungsmitarbeiter, Einstellungs-Manager, Standardmitarbeiter und Gesprächsleiter. Sehen wir uns das genauer an. 189 Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten Mit Personalbeschaffungsmitarbeitern verhält es sich recht eindeutig. Sie repräsentieren definitiv einen bestimmten Tätigkeitsbereich und benötigen Zugriff auf andere Datentypen als andere Benutzer. Sie benötigen ihr eigenes Profil. Einstellungs-Manager ist hingegen keine einzelne eindeutige Funktion. Bei den meisten Organisationen benötigt ein Einstellungs-Manager in der Vertriebsabteilung sehr wahrscheinlich Zugriff auf andere Datentypen als ein Einstellungs-Manager in der Konstruktionsabteilung. In unserer Anwendung jedoch benötigen Vertriebsleiter und Software-Manager nach wie vor dieselbe Art von Zugriff auf Personalbeschaffungsdaten – Reviews, Bewerber, Stellen, Stellenbewerbungen, Stellenausschreibungen und Jobbörsen. Falls wir unsere Anwendung in eine Organisation integrieren würden, die über eine andere CRM-Funktionalität verfügt, müssten die Berechtigungen des Einstellungs-Managers für Personalbeschaffungsdaten möglicherweise von verschiedenen Typen von Benutzern mit wahrscheinlich unterschiedlichen Profilen, gemeinsam genutzt werden. In diesem Fall erstellen wir einen Berechtigungssatz für den Einstellungs-Manager, der verschiedenen Typen von Benutzern zugewiesen werden kann. Standardmitarbeiter werden eher nicht genau zugeordnet und stehen für keinen bestimmten Tätigkeitsbereich. Standardmitarbeiter können mit einem Profil starten, mit dem sie Zugriff auf eine kleine Gruppe von Daten haben, und dann können wir je nach ihren Fachgebieten Berechtigungssätze erstellen und zuweisen, um ihnen nach Bedarf weitere Zugriffsberechtigungen zu erteilen. Werfen wir zu guter Letzt noch einen Blick auf die Gesprächsleiter. Genau genommen kann nahezu jede Person in einer Organisation herangezogen werden, um ein Bewerbungsgespräch zu führen. Zudem kann es sein, dass es in einem Unternehmen eine Hauptsaison für die Personalbeschaffung gibt, zu der für einen begrenzten Zeitraum viele Mitarbeiter als Gesprächsleiter eingesetzt werden. Idealerweise sollten die Berechtigungen für Gesprächsleiter mühelos gewährt und wieder aufgehoben werden können. Es ist einfach, Berechtigungssätze basierend auf einer bestimmten Aufgabe zu definieren. Noch einfacher ist es, die Berechtigungssätze zuzuweisen bzw. deren Zuweisung aufzuheben. Definieren wir also einen Berechtigungssatz für Gesprächsleiter. Probieren Sie es aus: Erstellen des Profils "Recruiter" (Personalbeschaffungsmitarbeiter) Nun können wir richtig loslegen und unser erstes Profil für die Anwendung erstellen! Beginnen wir mit dem Profil "Recruiter" (Personalbeschaffungsmitarbeiter). 1. Klicken Sie unter "Setup" auf Benutzer verwalten > Profile. 190 Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten Abbildung61: Standardprofile Hier sollten Sie die Liste der Standardprofile sehen, von denen wir vorhin gesprochen haben. Nachdem wir unsere benutzerdefinierten Profile erstellt haben, werden diese ebenfalls in dieser Liste angezeigt. Zunächst lässt sich schnell erkennen, mit welchen Profilen wir herumexperimentieren können, indem wir die Spalte Benutzerdefiniert betrachten. Wenn dort ein Häkchen gesetzt ist, handelt es sich um ein benutzerdefiniertes Profil und wir können praktisch alles daran bearbeiten. Wenn in dieser Spalte kein Häkchen gesetzt ist, können wir zwar trotzdem auf den Link Bearbeiten klicken, wir können allerdings keine Berechtigungseinstellungen ändern. (Was können wir also auf Standardprofilen überhaupt ändern? Nun, wir können auswählen, welche Registerkarten oben auf der Seite des Benutzers angezeigt werden sollen, und wir können auch auswählen, welche Anwendungen im Force.com-Anwendungsmenü rechts oben auf der Seite verfügbar sein sollen.) 2. Erstellen Sie ein neues Profil namens "Recruiter" (Personalbeschaffungsmitarbeiter), das auf dem Standardbenutzerprofil beruht. Es gibt hierfür zwei Möglichkeiten: Wir können entweder auf Neues Profil klicken, ein bestehendes Profil auswählen, das dupliziert werden soll, ihm einen Namen geben und auf Speichern klicken, oder aber wir können einfach auf der Detailseite des Profils, das kopiert werden soll, auf Duplizieren klicken, dem Profil einen Namen geben und auf Speichern klicken. Letztlich ist die Anzahl der Klicks gleich. Sie können also einfach die Methode verwenden, die Ihnen persönlich mehr zusagt. "Standardbenutzer" ist das Profil, das unserem angestrebten Profil "Recruiter" (Personalbeschaffungsmitarbeiter) am nächsten kommt. Daher ist es eine gute Ausgangsbasis. 3. Klicken Sie auf der Detailseite des neuen Profils "Recruiter" (Personalbeschaffungsmitarbeiter) auf Bearbeiten. Die Bearbeitungsseite für Personalbeschaffungsmitarbeiter sollte genauso aussehen und funktionieren wie die Bearbeitungsseite des Standardbenutzerprofils, mit einer wichtigen Ausnahme: Sie können alle Berechtigungseinstellungen bearbeiten. 191 Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten 4. Setzen Sie im Bereich "Einstellungen für benutzerdefinierte Anwendungen" die Personalbeschaffungsanwendung für alle Benutzer, die dem Profil "Recruiter" (Personalbeschaffungsmitarbeiter) zugewiesen sind, auf "sichtbar", wie im folgenden Screenshot zu sehen. Abbildung62: Bereich "Einstellungen für benutzerdefinierte Anwendungen" für das Profil Tipp: Sie können diesem Profil auch Zugriff auf alle anderen verfügbaren Anwendungen erteilen. Für jedes Profil muss mindestens eine Anwendung sichtbar sein. Wenn eine Anwendung sichtbar ist, kann ein Benutzer sie aus dem Force.com-Anwendungsmenü rechts oben auf der Seite auswählen. Achten Sie jedoch auf Folgendes: Selbst wenn eine Anwendung sichtbar ist, werden die Registerkarten der Anwendung nur angezeigt, wenn ein Profil über die Berechtigung zur Anzeige der Registerkarten und die Berechtigung zur Anzeige des zugehörigen Objekts verfügt. (Wir legen diese beiden Berechtigungen weiter unten auf der Profilbearbeitungsseite fest.) 5. Wählen Sie neben der Personalbeschaffungsanwendung die Option Standard aus. Diese Auswahl bedeutet, dass die Personalbeschaffungsanwendung angezeigt wird, wenn sich ein Benutzer anmeldet. Wenn Sie eine Anwendung als Standardanwendung auswählen, ist für sie das Kontrollkästchen Sichtbar automatisch aktiviert, da eine Standardanwendung keinen Sinn hat, wenn sie nicht für den Benutzer sichtbar ist. 6. Wählen Sie im Bereich "Registerkarteneinstellungen" für die Registerkarten "Candidates" (Bewerber), "Employment Websites" (Jobbörsen), "Job Applications" (Stellenbewerbungen) und "Positions" (Stellen) die Option "Standard: Ein" aus. Tipp: Sie können auswählen, ob weitere Registerkarten angezeigt werden sollen, je nachdem, welche weiteren Anwendungen Sie im letzten Schritt als sichtbar festgelegt haben. Für unsere Personalbeschaffungsanwendung sind alle benutzerdefinierten Registerkarten für die Personalbeschaffung standardmäßig aktiviert. Bei allen anderen Registerkarten, die Sie auswählen, können Sie festlegen, welche oben auf der Seite des Benutzers angezeigt werden sollen ("Standard: Ein"), welche auf der Seite des Benutzers ausgeblendet sein, aber zur 192 Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten Verfügung stehen sollen, wenn der Benutzer ganz rechts auf "Alle Registerkarten" klickt ("Standard: Aus") und welche vollständig vor dem Benutzer verborgen sein sollen ("Registerkarte ausgeblendet"). Denken Sie daran, dass die Benutzer, auch wenn Sie eine Registerkarte vollständig verbergen, die Datensätze, die auf der Registerkarte angezeigt werden würden, noch immer in Suchergebnissen und Themenlisten sehen können. (Um zu verhindern, dass ein Benutzer auf Daten zugreift, müssen wir weiter unten auf der Profilbearbeitungsseite in den Bereichen "Standardobjektberechtigungen" und "Benutzerdefinierte Objektberechtigungen" die entsprechenden Einschränkungen festlegen. Dazu kommen wir in Kürze.) Die Einstellung Registerkartenanpassungen des Benutzers überschreiben wird angezeigt, wenn Ihre Organisation aktuell verwendet wird und Sie sicherstellen möchten, dass Ihre bestehenden Benutzer die von Ihnen ausgewählten Registerkarten betrachten. Für unsere Anwendung brauchen Sie diese Option nicht auszuwählen, da wir ein brandneues Profil definieren und noch niemand persönliche Einstellungen für die Registerkartensichtbarkeit festgelegt hat. Wenn Sie jedoch diese Option später auswählen möchten, sollten Sie darauf achten, dass Sie nicht die Benutzer verärgern, indem Sie alle ihre Anpassungen löschen! Abbildung63: Bereich "Registerkarteneinstellungen" für das Profil Unmittelbar unterhalb des Bereichs "Registerkarteneinstellungen" können Sie in den Bereichen "Administrative Berechtigungen" und "Allgemeine Benutzerberechtigungen" speziellen Zugriff auf Funktionen festlegen, die sich nicht direkt bestimmten Objekten zuordnen lassen. Keine dieser Berechtigungen betrifft unsere Personalbeschaffungsanwendung. Sie können jedoch mehr dazu in der Salesforce-Hilfe erfahren. Nun sollten wir zu den Objektebenenberechtigungen übergehen. 7. Geben Sie im Bereich "Benutzerdefinierte Objektberechtigungen" die Objektebenenberechtigungen für das Profil "Recruiter" (Personalbeschaffungsmitarbeiter) gemäß der folgenden Tabelle an. 193 Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten Tabelle26: Zusammenfassung der erforderlichen Berechtigungen: Recruiter (Personalbeschaffungsmitarbeiter) Lesen Erstellen Bearbeiten Löschen Alle anzeigen Alle ändern Candidate (Bewerber) Employment Website (Jobbörse) Job Application (Stellenbewerbung) Job Posting (Stelenausschreibung) Position (Stelle) Review Tipp: Je nachdem, welche Anwendungen Sie zuvor auf "sichtbar" gesetzt haben, können Sie auch zusätzliche Objektberechtigungen für Standardobjekte und andere benutzerdefinierte Objekte festlegen. Da es keine Fälle gibt, in denen ein Personalbeschaffungsmitarbeiter in der Lage sein soll, Stellen, Bewerber, Stellenbewerbungen und Reviews zu löschen, sollten wir sicherstellen, dass die Objektebenenberechtigungen zum Löschen für diese Objekte deaktiviert sind. Achten Sie außerdem darauf, dass die Berechtigung "Alle anzeigen" nur für Jobbörsen, Stellen und Stellenausschreibungen und die Berechtigung und "Alle ändern" nur für Stellenausschreibungen und Jobbörsen ausgewählt ist. Dies sind besondere Arten von Objektberechtigungen, die wir später in diesem Kapitel erörtern. Dass wir hier die Fähigkeit zum Löschen von Objekten, die mit der Personalbeschaffung zu tun haben, einschränken, bewirkt, dass die Personalbeschaffungsmitarbeiter nie in der Lage sind, diese Objekte zu löschen. Die Tatsache, dass wir den Personalbeschaffungsmitarbeitern die Berechtigung zum Erstellen, Lesen oder Bearbeiten von Objekten im Zusammenhang mit der Personalbeschaffung gewähren, bedeutet jedoch nicht, dass die Personalbeschaffungsmitarbeiter jeden Objektdatensatz der Personalbeschaffungsanwendung lesen bzw. bearbeiten dürfen. Warum ist das so? 194 Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten Hier sehen wir das Ergebnis zweier wirklich wichtiger Konzepte bei der Plattform: • • Die Berechtigungen für einen Datensatz werden stets gemäß einer Kombination aus Berechtigungen auf der Objekt-, Feld-, und Datensatzebene ausgewertet. Wenn die Berechtigungen auf der Objektebene mit denen auf der Datensatzebene in Konflikt stehen, haben die strengeren Einstellungen Vorrang. Auch wenn wir diesem Profil Erstell-, Lese- und Bearbeitungsberechtigungen für die Personalbeschaffungsobjekte erteilen, gilt daher: Wenn die Berechtigungen auf der Datensatzebene für einen einzelnen Personalbeschaffungsdatensatz strenger sind, richten sich die Zugriffsmöglichkeiten des Personalbeschaffungsmitarbeiters nach diesen strengeren Regeln. Hier ein Beispiel: Unser neues Profil gewährt einem Personalbeschaffungsmitarbeiter die Berechtigung zum Erstellen, Bearbeiten und Anzeigen von Reviews. Wenn wir jedoch die unternehmensweiten Standardeinstellungen für Reviews auf "Privat" setzen (eine Berechtigung auf der Datensatzebene), darf unser Personalbeschaffungsmitarbeiter nur seine eigenen Reviews bearbeiten und anzeigen, nicht jedoch die Reviews, deren Inhaber andere Benutzer sind. Wir befassen uns später genauer mit Berechtigungen auf der Datensatzebene und behandeln weitere Beispiele für die Kombination aus diesen Berechtigungen und Berechtigungen auf der Objektebene. Im Moment brauchen Sie sich lediglich zu merken, dass Objektebenenberechtigungen nur ein Baustein des Ganzen sind. 8. Klicken Sie auf Speichern, um Ihr Profil zu erstellen und zur Profildetailseite zurückzukehren. Herzlichen Glückwunsch! Wir sind mit unserem ersten Profil fertig. Wie Sie sehen können, war das gar nicht so schwer, da wir bereits analysiert hatten, welche Berechtigungen erforderlich waren, und wussten, auf welche Objekte Personalbeschaffungsmitarbeiter Zugriff benötigen. Im nächsten Abschnitt stellen wir schnell noch unsere beiden anderen Profile fertig und gehen dann weiter zur Feldebenensicherheit. Beyond the Basics Wussten Sie, dass Sie eine verbesserte Benutzeroberfläche zur Verwaltung von Profilen verwenden können? Angenommen, Sie müssen eine große Anzahl von Profilen verwalten und würden gerne eine rationalisiertere Vorgehensweise verwenden. Mit der verbesserten Benutzeroberfläche für die Profilverwaltung können Sie schnell und einfach in Profileinstellungen navigieren und diese durchsuchen und bearbeiten. Weitere Informationen finden Sie in der Salesforce-Hilfe unter "Verbesserte Benutzeroberfläche für die Profilverwaltung – Übersicht". 195 Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten Probieren Sie es aus: Erstellen des Profils "Standard Employee" (Standardmitarbeiter) Nachdem wir nun das Profil "Recruiter" (Personalbeschaffungsmitarbeiter) erstellt haben, richten wir abschließend noch ein Profil für Standardmitarbeiter ein. Wie bereits erwähnt, möchten Sie in Ihrem eigenen Unternehmen vielleicht weitere Profile mit Basiszugriff für die verschiedenen Haupttätigkeitsbereiche festlegen, aber für unsere Zwecke hier reichen die bisherigen vollkommen aus. Um unser Gedächtnis aufzufrischen, werfen wir einen Blick auf die Übersichtstabelle für die erforderlichen Berechtigungen: Tabelle27: Zusammenfassung der erforderlichen Berechtigungen: Standard Employee (Standardmitarbeiter) Positions (Stellen) Standard • Employee (Standardmitarbeiter) Candidates Job Reviews (Bewerber) Applications (Stelenbewerbungen) Lesen (nicht für Mnidesgteha/tH l öchsgteha)tl - - Job Employment Postings Websites (Stelenausschreibungen) (Jobbörsen) - - Standardmitarbeiter brauchen nicht viel Zugriff, aber sie sollen dennoch in der Lage sein, alle offenen Stellen zu sehen, damit sie bei der Anwerbung neuer Mitarbeiter mithelfen können. Dieses Profil lässt sich ganz einfach erstellen. Führen Sie einfach die Schritte aus, die wir im vorherigen Abschnitt angegeben haben, und legen Sie Folgendes fest: • • Geben Sie dem Profil den Namen Standard Employee (Standardmitarbeiter) und legen Sie ihm das Profil "Standardbenutzer" zugrunde. Aktivieren Sie die Berechtigung "Lesen" für das Objekt "Positions" (Stellen). Fantastisch! Jetzt haben wir Profile für alle Benutzer in unserer Personalbeschaffungsanwendung definiert. Als Nächstes erstellen wir Berechtigungssätze, um den Personen, die sie benötigen, weitere Berechtigungen zu erteilen. 196 Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten Probieren Sie es aus: Erstellen des Berechtigungssatzes "Hiring Manager" (Einstellungs-Manager) Wir haben zwei Profile für unsere leicht zu definierenden Tätigkeitsbereiche erstellt. Nun müssen wir zusätzlichen Zugriff für Funktionen gewähren, die nicht an eine bestimmte Position gebunden sind. 1. Klicken Sie unter "Setup" auf Benutzer verwalten > Berechtigungssätze. 2. Klicken Sie auf der Seite "Berechtigungssätze" auf Neu. 3. Geben Sie im Feld Bezeichnung den Text Hiring Manager (Einstellungs-Manager) ein. 4. Das Feld API-Name wird automatisch als Hiring_Manager vorgegeben. Lassen wir es so, wie es ist. Wenn Sie einem Benutzer Berechtigungssätze zuweisen, können Sie nur Berechtigungssätze zuweisen, die dieselbe Benutzerlizenz aufweisen wie der Benutzer, oder Berechtigungssätze ohne zugehörige Lizenz. Sie können die Lizenz später nicht mehr ändern. Daher ist es wichtig, beim Erstellen eines Berechtigungssatzes die richtige Benutzerlizenz auszuwählen. 5. Wählen Sie im Feld Benutzerlizenz die Option Salesforce aus. 6. Klicken Sie auf Speichern. 197 Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten Abbildung64: Seite "Berechtigungssatz-Übersicht" Wir haben nun den ersten Schritt zur Erstellung eines Berechtigungssatzes durchgeführt. Sie können Berechtigungssätze nicht nur duplizieren, sondern auch ganz von vorne erstellen. Genau das haben wir bei der Erstellung dieses Berechtigungssatzes getan. Derzeit sind für diesen Berechtigungssatz keine Einstellungen oder Berechtigungen aktiviert. Er ist noch völlig unkonfiguriert. Aktivieren wir also einige Berechtigungen und Einstellungen. Da dieser Berechtigungssatz für Einstellungs-Manager gedacht ist, machen wir zunächst die Personalbeschaffungsanwendung sichtbar. 7. Klicken Sie auf Zugewiesene Anwendungen. 8. Klicken Sie auf der Seite "Zugewiesene Anwendungen" auf Bearbeiten. 9. Wählen Sie unter "Verfügbare Anwendungen" den Eintrag Recruiting (Personalbeschaffung) aus und klicken Sie auf Hinzufügen, um ihn zur Liste "Aktivierte Anwendungen" hinzuzufügen. 198 Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten Abbildung65: Zuweisen der Personalbeschaffungsanwendung im Berechtigungssatz für Einstellungs-Manager 10. Klicken Sie auf Speichern. Als Nächstes möchten wir Registerkarteneinstellungen und Berechtigungen für unsere benutzerdefinierten Objekte aktivieren. Wo können diese aktiviert werden und wie gelangen wir dort hin? In Berechtigungssätzen gibt es einige einfache Möglichkeiten zur Navigation zwischen Seiten. Sehen wir uns das an. 11. Klicken Sie neben "Zugewiesene Anwendungen" auf den Abwärtspfeil, um das Navigationsmenü zu öffnen, und wählen Sie die Option Objekteinstellungen aus. Abbildung66: Navigationsmenü für Berechtigungssätze Auf der Seite Objekteinstellungen wird eine Übersicht für alle Objekte und Registerkarten in Ihrer Organisation angezeigt. Dazu gehört eine Zusammenfassung der Registerkarteneinstellungen, Objektberechtigungen und Feldberechtigungen für alle Objekte und Registerkarten. Gehen wir zum Objekt "Positions" (Stellen). 199 Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten 12. Klicken Sie in der Liste der Objekte auf Positions (Stellen). 13. Klicken Sie auf der Seite "Positions" (Stellen) auf Bearbeiten. Sie werden feststellen, dass die Bezeichnungen von Registerkarteneinstellungen in Berechtigungssätzen von den Bezeichnungen in Profilen abweichen. Sie sind ein wenig anders konfiguriert, aber Sie erhalten dieselben Ergebnisse. Tabelle28: Vergleich der Registerkarteneinstellungen in Berechtigungssätzen und Profilen Aktivierte Einstellungen in Aktivierte Einstellungen in Beschreibung Berechtigungssätzen Profilen Standard: Aus Die Registerkarte ist auf der Seite "Alle Registerkarten" verfügbar. Einzelne Benutzer können ihre Anzeige anpassen, damit die Registerkarte in beliebigen Anwendungen angezeigt wird. Verfügbar und Sichtbar Standard: Ein Die Registerkarte ist auf der Seite "Alle Registerkarten" verfügbar und wird in den sichtbaren Registerkarten für deren verknüpfte Anwendung angezeigt. Einzelne Benutzer können ihre Anzeige anpassen, damit die Registerkarte ausgeblendet oder in anderen Anwendungen sichtbar gemacht wird. Keine Die Registerkarte ist auf der Seite "Alle Registerkarten" nicht verfügbar und wird in keinen Anwendungen angezeigt. Verfügbar Registerkarte ausgeblendet 14. Wählen Sie unter "Registerkarteneinstellungen" die Optionen Verfügbar und Sichtbar aus. 15. Aktivieren Sie unter "Objektberechtigungen" die Optionen Lesen, Erstellen und Bearbeiten. 200 Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten Nun gewähren wir Zugriff auf die Felder in Stellendatensätzen. Wir erfahren später noch viel mehr zu Feldberechtigungen unter Einführung in die Feldebenensicherheit auf Seite 206, aber im Moment aktivieren wir einfach die Feldberechtigungen, die wir brauchen. 16. Aktivieren Sie unter "Feldberechtigungen" für alle Felder jeweils das Kontrollkästchen Bearbeiten. Tipp: Wenn Sie Bearbeiten für ein Feld aktivieren, ist automatisch auch Lesen aktiviert. Sie haben sicherlich bemerkt, dass Sie bei einigen der Felder die Einstellungen nicht ändern können. Für diese Felder wurde der Zugriff voreingestellt, da es sich um Pflichtfelder handelt oder ihre Daten automatisch berechnet werden. Beispiel: Da "Days Open" (Tage offen) ein Formelfeld ist, kann es grundsätzlich nicht bearbeitet werden. Sie sollten es jedoch lesbar machen. 17. Aktivieren Sie Lesen für "Days Open" (Tage offen). 18. Klicken Sie auf Speichern. Nun müssen wir den Zugriff für unsere restlichen Objekte festlegen. Wie wir bereits gesehen haben, können Sie mit dem Navigationsmenü schnell von einer Seite zu einer anderen springen. Beachten Sie, dass sich auf der Seite "Positions" (Stellen) nun zwei Abwärtspfeile befinden: einer neben "Objekteinstellungen" und einer neben "Positions" (Stellen). Immer wenn Sie sich auf der Seite eines bestimmten Objekts befinden, steht dieses zweite Navigationsmenü zur Verfügung. Klicken Sie auf den zweiten Abwärtspfeil und es werden Ihnen alle Objekte und Registerkarten in Ihrer Organisation angezeigt. 201 Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten Abbildung67: Navigationsmenü für Objekt Doch das ist nicht die einzige Möglichkeit, wie Sie in einem Berechtigungssatz navigieren können. Eine weitere Option ist das Feld Einstellungen suchen..., das auf jeder Seite in einem Berechtigungssatz verfügbar ist. Hier können Sie drei oder mehr aufeinander folgende Buchstaben eines Objekt-, Einstellungs- oder Berechtigungsnamens eingeben und dann das gewünschte Objekt aus der angezeigten Liste auswählen. Versuchen wir es. 19. Klicken Sie in das Feld Einstellungen suchen... und geben Sie job ein. Es gibt zwei Objekte mit der Zeitenfolge "job" und sie werden beide in der Liste angezeigt. 20. Wählen Sie Job Applications (Stellenbewerbungen) aus. Abbildung68: Verwenden des Felds "Einstellungen suchen". Nun, da wir wissen, wie wir schnell und einfach in einem Berechtigungssatz navigieren können, sollten Sie weitermachen und die restlichen Berechtigungen und Einstellungen gemäß der folgenden Tabelle hinzufügen. 202 Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten Tabelle29: Registerkarteneinstellungen und Objektberechtigungen für Einstellungs-Manager Objektname Registerkarteneinstellungen Objektberechtigungen Feldberechtigungen Job Applications • (Stellenbewerbungen) • Verfügbar Sichtbar • • Lesen Bearbeiten • • Lesen für alle Bearbeiten für "Cover Letter" (Anschreiben) und "Status" Candidates (Bewerber) Verfügbar Sichtbar • Lesen • Kein Zugriff auf "SSN" Lesen für alle anderen • • • Reviews - • • • Lesen Erstellen Bearbeiten • • Job Postings (Stellenausschreibungen) • • • Lesen Erstellen Bearbeiten - Employment Websites (Jobbörsen) • Lesen - Lesen für "Candidate" (Bewerber) und "Position" (Stelle) Lesen und Bearbeiten für "Assessment" (Einschätzung) Hervorragend! Wir haben unseren ersten Berechtigungssatz erstellt und die Einstellungen hinzugefügt, die wir für Einstellungs-Manager brauchen. Nun erstellen wir einen weiteren Berechtigungssatz für einen anderen Tätigkeitsbereich, nämlich das Führen von Einstellungsgesprächen mit Bewerbern. 203 Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten Probieren Sie es aus: Erstellen des Berechtigungssatzes "Interviewer" (Gesprächsleiter) Nun können wir den Berechtigungssatz "Interviewer" (Gesprächsleiter) erstellen. Erstellen Sie anhand der im letzten Abschnitt erörterten Schritte einen Berechtigungssatz mit folgenden Einstellungen: • • • Geben Sie diesem Berechtigungssatz den Namen Interviewer (Gesprächsleiter) und weisen Sie ihm die Salesforce-Benutzerlizenz zu. Legen Sie unter "Zugewiesene Anwendungen" fest, dass die Personalbeschaffungsanwendung sichtbar sein soll. Aktivieren Sie die folgenden Registerkarteneinstellungen und Objektberechtigungen: Tabelle30: Registerkarteneinstellungen und Objektberechtigungen für Gesprächsleiter 204 Objektname Registerkarteneinstellungen Objektberechtigungen Feldberechtigungen Positions (Stellen) ◊ Verfügbar ◊ Sichtbar ◊ Lesen ◊ Kein Zugriff auf Min Pay (Mindestgehalt) und Max Pay (Höchstgehalt) ◊ Lesen für alle anderen Candidates (Bewerber) ◊ Verfügbar ◊ Sichtbar ◊ Lesen ◊ Kein Zugriff auf "SSN" ◊ Lesen für alle anderen Job Applications ◊ Verfügbar (Stellenbewerbungen) ◊ Sichtbar ◊ Lesen ◊ Lesen für alle Reviews ◊ Lesen ◊ Erstellen ◊ Bearbeiten ◊ Lesen für "Candidate" (Bewerber) und "Position" (Stelle) - Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten Objektname Registerkarteneinstellungen Objektberechtigungen Feldberechtigungen ◊ Lesen und Bearbeiten für "Assessment" (Einschätzung) Gehen wir die erforderlichen Berechtigungen für Einstellungs-Manager, Gesprächsleiter und Standardmitarbeiter noch einmal durch. Tabelle31: Zusammenfassung der erforderlichen Berechtigungen: Einstellungs-Manager, Gesprächsleiter und Standardmitarbeiter Positions (Stellen) Candidates Job Reviews (Bewerber) Applications (Stelenbewerbungen) Job Employment Postings Websites (Stelenausschreibungen) (Jobbörsen) Hiring • Manager • (Einstelungs-Manager) • Lesen • Erstellen Bearbeiten* Lesen* (nicht für SSN) • • Lesen • Bearbeiten • (nicht • für Nachschalgefed ler) Lesen • Erstellen • Bearbeiten • Lesen* • Erstellen* Bearbeiten* Interviewer • (Gesprächsleiter) Lesen • (nicht für Mnidesgteha/tH l öchsgteha)tl Lesen* (nicht für SSN) • Lesen* • • • Lesen** Erstellen Bearbeiten** - Standard • Employee (Standardmitarbeiter) Lesen (nicht für Mnidesgteha/tH l öchsgteha)tl - - - - Lesen * Nur für die Datensätze, die mit einer Stelle verknüpft sind, der der Einstellungs-Manager/Gesprächsleiter zugewiesen wurde ** Nur für die Datensätze, deren Inhaber der Gesprächsleiter ist Toll, aber was ist mit den Sternchen? Müssen wir sie bei der Festlegung unserer Objektberechtigungen berücksichtigen? 205 Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten Durchaus nicht. Die Sternchen stehen für Sicherheitseinstellungen auf der Datensatzebene, die wir in Kürze festlegen werden. Hier brauchen wir uns lediglich um die Berechtigungen zu kümmern, auf die diese Benutzer zumindest manchmal Zugriff benötigen. Genau darum geht es bei Objektberechtigungen. Wir müssen jedoch sicherstellen, dass sensible Daten in diesen Objekten vor Benutzern geschützt sind, die keinen Zugriff benötigen. Und dazu müssen wir uns mit den Datensätzen selbst befassen, die die einzelnen Benutzer jeweils anzeigen und bearbeiten können sollen. Steuern des Zugriffs auf Felder Nachdem wir nun den Zugriff auf Objekte insgesamt eingeschränkt haben, ist es an der Zeit, engmaschiger vorzugehen, um die Sicherheit einzelner Objektfelder zu verwalten. Mit diesen Einstellungen können wir sensible Felder, wie die Sozialversicherungsnummer des Bewerbers, schützen, ohne die Existenz dieses Bewerberobjekts insgesamt verschleiern zu müssen. Einführung in die Feldebenensicherheit Auf der Plattform wird der Zugriff auf einzelne Felder über die Feldebenensicherheit gesteuert. Durch die Feldebenensicherheit wird festgelegt, ob ein Benutzer den Wert für ein bestimmtes Feld auf einem Objekt anzeigen, bearbeiten bzw. löschen kann. Anders als Seitenlayouts, die lediglich die Sichtbarkeit von Feldern auf Detail- und Bearbeitungsseiten festlegen, steuert die Feldebenensicherheit die Sichtbarkeit von Feldern in jedem Teil der Anwendung, einschließlich Themenlisten, Listenansichten, Berichten und Suchergebnissen. Um vollkommen sicher zu sein, dass ein Benutzer nicht auf ein bestimmtes Feld zugreifen kann, muss die Seite für die Feldebenensicherheit für das betreffende Objekt verwendet werden, um den Zugriff auf das Feld einzuschränken. Es gibt einfach keine kürzeren Vorgehensweisen, die dieselbe Schutzstufe für ein bestimmtes Feld bieten. Feldebenensicherheit in unserer Personalbeschaffungsanwendung Um uns noch einmal ins Gedächtnis zu rufen, welche Einstellungen für die Feldebenensicherheit wir für unsere Personalbeschaffungsanwendung benötigen, sollten wir einen erneuten Blick auf die erforderlichen Berechtigungen in der folgenden Tabelle werfen. Wir haben sie nach Personalbeschaffungsmitarbeiter, Einstellungs-Manager und Standardmitarbeiter sortiert, da 206 Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten (welche Überraschung!) die Einstellungen für die Feldebenensicherheit eng mit Profilen und Berechtigungssätzen verwandt sind: Tabelle32: Überarbeitete Zusammenfassung der erforderlichen Berechtigungen Recruiter Hiring Manager Standard Employee (Personalbeschaffungsmitarbeiter) (Einstellungs-Manager) (Standardmitarbeiter) Position (Stelle) Lesen, Erstellen, Bearbeiten Lesen, Erstellen, Bearbeiten* Lesen (nicht für Mindestgehalt/Höchstgehalt) Candidate (Bewerber) Lesen, Erstellen, Bearbeiten Lesen* (nicht für SSN) Lesen* (nicht für SSN) Job Application (Stellenbewerbung) Lesen, Erstellen, Bearbeiten Lesen, Bearbeiten (nicht für Nachschlagefelder) Lesen* Review Lesen, Erstellen, Bearbeiten Lesen, Erstellen, Bearbeiten Lesen**, Erstellen, Bearbeiten** Job Posting Lesen, Erstellen, (Stellenausschreibung) Bearbeiten, Löschen Lesen*, Erstellen*, Bearbeiten* Employment Website Lesen, Erstellen, (Jobbörse) Bearbeiten, Löschen Lesen * Nur für die Datensätze, die mit einer Stelle verknüpft sind, der der Einstellungs-Manager/Gesprächsleiter zugewiesen wurde ** Nur für die Datensätze, deren Inhaber der Gesprächsleiter ist Für die Einstellungen für die Feldebenensicherheit konzentrieren wir uns zunächst auf diejenigen Regeln, die Feldeinschränkungen in Klammern enthalten, insbesondere folgende: • • • Beim Objekt "Position" (Stelle) Mindest- und Höchstgehalt vor Standardmitarbeitern und Gesprächsleitern verbergen Beim Objekt "Candidate" (Bewerber) Sozialversicherungsnummern vor Einstellungs-Managern und Gesprächsleitern verbergen Beim Objekt "Job Application" (Stellenbewerbung) die Nachschlagefelder Position (Stelle) und Candidate (Bewerber) für Einstellungs-Manager als schreibgeschützt festlegen Legen wir also los! 207 Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten Probieren Sie es aus: Einschränken des Zugriffs auf Felder im Profil "Standard Employee" (Standardmitarbeiter) Gehen wir noch einmal die Regeln für die Feldebenensicherheit durch. • • • Bei Stellen Mindest- und Höchstgehalt vor Standardmitarbeitern und Gesprächsleitern verbergen Bei Bewerbern Sozialversicherungsnummern vor Gesprächsleitern und Einstellungs-Managern verbergen Bei Stellenbewerbungen für Einstellungs-Manager Schreibschutz bei Nachschlagefeldern für Bewerber und Stellen festlegen Zur Definition dieser Regeln greifen wir auf die Einstellungen für die Feldebenensicherheit im Profil "Standard Employee (Standardmitarbeiter) zu. Sie fragen sich vielleicht: Die letzten beiden Regeln betreffen Gesprächsleiter und Einstellungs-Manager, aber diese Funktionen sind doch durch Berechtigungssätze definiert. Warum befassen wir uns jetzt damit? Berechtigungen sind additiv: Durch die Zuweisung von Berechtigungssätzen können Sie nie bestehende Berechtigungen eines Benutzers entfernen. Sie können lediglich weitere Berechtigungen hinzufügen. Wenn wir den Zugriff einschränken möchten, müssen wir sicherstellen, dass das Basisprofil für unsere Benutzer – ebenso wie alle etwaigen für sie geltenden Berechtigungssätze – den betreffenden Zugriffstyp einschränken. Im Falle unserer Organisation wissen wir, dass wir Benutzern mit dem Profil "Standard Employee" (Standardmitarbeiter) später die Berechtigungssätze "Interviewer" (Gesprächsleiter) und "Hiring Manager" (Einstellungs-Manager) zuweisen, daher müssen wir die Feldberechtigungen sowohl in diesem Profil als auch in den Berechtigungssätzen einschränken. Richten wir also nun die Feldebenensicherheit für das Profil "Standard Employee" (Standardmitarbeiter) ein. Später überprüfen wir dann die Feldebenensicherheit für unsere Berechtigungssätze. 1. Klicken Sie unter "Setup" auf Benutzer verwalten > Profile und wählen Sie das Profil "Standard Employee" (Standardmitarbeiter) aus. 208 Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten Abbildung69: Detailseite für das Profil "Standard Employee" (Standardmitarbeiter) Das Erste, was Ihnen vermutlich auf der Detailseite für das Profil "Standard Employee" (Standardmitarbeiter) auffällt, ist, dass sie einige Bereiche mehr enthält als die Bearbeitungsseite, die wir ursprünglich zur Definition des Profils verwendeten. Bei diesen zusätzlichen Bereichen handelt es sich um "Seitenlayouts" (von denen wir bereits gehört haben), "Feldebenensicherheit", "Datensatztypeinstellungen", "Anmeldezeiten" und "IP-Bereiche für die Anmeldung". In diesem Buch befassen wir uns zwar nur mit der Feldebenensicherheit (und später mit Datensatztypen) detaillierter, doch auch die anderen Bereiche tragen zu der Vielzahl der Funktionen bei, die mit Profilen in unserer Anwendung ausgeführt werden können. In der Salesforce-Hilfe können Sie mehr darüber erfahren. 2. Klicken Sie im Bereich "Feldebenensicherheit" neben dem Objekt "Position" (Stelle) auf Anzeigen. 3. Klicken Sie auf Bearbeiten. 209 Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten Abbildung70: Bearbeitungsseite für Feldebenensicherheit Hier sehen wir Sicherheitseinstellungen für alle Felder des Objekts "Position" (Stelle), einschließlich Min Pay (Mindestgehalt) und Max Pay (Höchstgehalt), die beiden Felder, die wir einschränken möchten. Wie Sie sehen, können einige Einstellungen für die Feldebenensicherheit für einige Felder nicht geändert werden. Dies liegt daran, dass es sich entweder um systemgenerierte Felder handelt oder dass sie als Nachschlagebeziehungsfelder (Fremdschlüssel) für andere Datensätze fungieren. Da die Kontrollkästchen für die Sicherheitseinstellungen ein wenig verwirrend sein können, sollten wir eine kurze Übung durchführen, um zu sehen, wie ihre Werte (Sichtbar und Schreibschutz) den drei logischen Berechtigungseinstellungen für Felder zugeordnet werden: "Verborgen", "Schreibschutz" und "Bearbeitbar": Tabelle33: Zuordnung der Feldebenenberechtigungen Berechtigung Sichtbar Schreibschutz Schreibschutz X X Bearbeitbar X Verborgen 210 Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten Nach dieser Übung ist deutlich zu sehen, dass die meisten Felder bearbeitbar sind, da bei ihnen ausschließlich das Kontrollkästchen Sichtbar ausgewählt ist. Um festzulegen, dass ein Feld nicht von einem Benutzer gesehen werden kann, brauchen wir lediglich beide Kontrollkästchen zu deaktivieren. 4. Heben Sie neben Max Pay (Höchstgehalt) die Auswahl von Sichtbar auf. 5. Heben Sie neben Min Pay (Mindestgehalt) die Auswahl von Sichtbar auf. 6. Klicken Sie auf Speichern. Kümmern wir uns nun um die übrigen Sicherheitsregeln auf der Feldebene. Auch hier gilt wieder: Da wir wissen, dass unseren Gesprächsleitern und Einstellungs-Managern später das Profil "Standard Employee" (Standardmitarbeiter) zugewiesen wird, stellen wir nun sicher, dass die Feldberechtigungen für dieses Profil korrekt festgelegt sind. 7. Klicken Sie auf Zurück zum Profil. 8. Klicken Sie im Bereich "Feldebenensicherheit" neben dem Objekt "Candidate" (Bewerber) auf Anzeigen. 9. Klicken Sie auf Bearbeiten. 10. Heben Sie neben SSN die Auswahl von Sichtbar auf. 11. Klicken Sie auf Speichern. 12. Klicken Sie auf Zurück zum Profil. 13. Klicken Sie im Bereich "Feldebenensicherheit" neben dem Objekt "Job Application" (Stellenbewerbung) auf Anzeigen. 14. Klicken Sie auf Bearbeiten. 15. Wählen Sie neben den Feldern Candidate (Bewerber) und Position (Stelle) die Option Schreibschutz aus. 16. Klicken Sie auf Speichern. Wir haben die Festlegung der Feldebenensicherheit für das Profil "Standard Employee" (Standardmitarbeiter) abgeschlossen. Wir brauchten keine Änderungen beim Profil "Recruiter" (Personalbeschaffungsmitarbeiter) vorzunehmen, da wir bereits in der Planungsphase festgelegt hatten, dass Personalbeschaffungsmitarbeiter auf alle Felder zugreifen können, die wir in unseren Objekten erstellt haben. Probieren Sie es aus: Überprüfen der Feldebenensicherheit in Berechtigungssätzen Aber was ist mit den Berechtigungssätzen, die wir erstellt haben? 211 Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten Erinnern Sie sich daran, wie wir bei der Erstellung der Berechtigungssätze für Einstellungs-Manager und Gesprächsleiter Feldberechtigungen festgelegt haben? Nun, da wir mehr über die Feldebenensicherheit wissen, sollten wir die sensibelsten Felder in unseren Berechtigungssätzen nochmals überprüfen, um sicherzustellen, dass sie korrekt sind. Wenn einige dieser Einstellungen falsch sind, dann nehmen Sie die entsprechenden Änderungen vor. Vergessen Sie nicht, auf Speichern zu klicken, wenn Sie eine andere Seite aufrufen. Überprüfen wir zunächst die Feldberechtigungen im Berechtigungssatz "Interviewer" (Gesprächsleiter). 1. Klicken Sie unter "Setup" auf Benutzer verwalten > Berechtigungssätze und wählen Sie den Berechtigungssatz "Interviewer" (Gesprächsleiter) aus. 2. Geben Sie im Feld Einstellungen suchen... pos ein und wählen Sie dann "Positions" (Stellen) aus. 3. Neben den Feldern Max Pay (Höchstgehalt) und Min Pay (Mindestgehalt) sollte sowohl Read (Lesen) als auch Edit (Bearbeiten) deaktiviert sein. Überprüfen wir nun den Berechtigungssatz "Hiring Manager" (Einstellungs-Manager). 4. Öffnen Sie den Berechtigungssatz "Hiring Manager" (Einstellungs-Manager) und navigieren Sie zum Objekt "Positions" (Stellen). 5. Neben den Feldern Max Pay (Höchstgehalt) und Min Pay (Mindestgehalt) sollte sowohl Read (Lesen) als auch Edit (Bearbeiten) aktiviert sein. Abschließend möchten wir sicherstellen, dass die Einstellungs-Manager sehen können, welcher Bewerber und welche Stelle jeweils den einzelnen Stellenbewerbungen zugeordnet sind. Wir möchten jedoch verhindern, dass sie diese Nachschlagefelder ändern. 6. Geben Sie im Feld Einstellungen suchen... job ein und wählen Sie dann "Job Applications" (Stellenbewerbungen) aus. 7. Neben den Feldern Candidate (Bewerber) und Position (Stelle) sollte Read (Lesen) aktiviert und Edit (Bearbeiten) deaktiviert sein. Alles erledigt. Wir haben soeben den zweiten Baustein für Sicherheit und Freigabe abgeschlossen, indem wir die Feldebenensicherheit für die sensiblen Felder in unserer Personalbeschaffungsanwendung definierten. Als letzten Baustein müssen wir noch die einzelnen Datensätze angeben, auf die die Benutzer jeweils zugreifen können. Wir müssen unsere Daten schützen, ohne irgendwelche Mitarbeiter bei ihrer Tätigkeit zu behindern. 212 Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten Steuern des Zugriffs auf Datensätze Durch die Festlegung von feldspezifischen Zugriffsberechtigungen in unseren Profilen und Berechtigungssätzen haben wir effektiv alle Objekte und Felder definiert, auf die die Benutzer der Personalbeschaffungsanwendung zugreifen können. In diesem Abschnitt konzentrieren wir uns auf die Festlegung von Berechtigungen für die Datensätze selbst. Sollten unsere Benutzer offenen Zugriff auf alle Datensätze haben oder nur auf eine Teilmenge davon? Wenn nur auf eine Teilmenge, welche Regeln sollten festlegen, ob der Benutzer Zugriff? Wir verwenden eine Reihe verschiedener Plattform-Tools für Sicherheit und Freigabe, um diesen Fragen nachzugehen und sicherzustellen, dass wir die richtige Lösung finden. Einführung zu unternehmensweiten Standardeinstellungen Beim Umgang mit Zugriffseinstellungen auf der Datensatzebene müssen wir als Erstes die unternehmensweiten Standardeinstellungen für die einzelnen Objekte in der Personalbeschaffungsanwendung bestimmen. Die unternehmensweiten Standardeinstellungen, die auch als Freigabemodell bezeichnet werden, geben den Basiszugriff an, der für die Benutzer mit den strengsten Einschränkungen gelten soll. Mithilfe der unternehmensweiten Standardeinstellungen sperren wir die Daten auf der restriktivsten Ebene. Anschließend öffnen wir die Daten mithilfe der anderen Sicherheits- und Freigabetools auf der Datensatzebene (Rollenhierarchien, Freigaberegeln und manuelle Freigabe) für andere Benutzer, die Zugriff darauf benötigen. Unternehmensweite Standardeinstellungen in unserer Personalbeschaffungsanwendung Um die unternehmensweiten Standardeinstellungen zu bestimmen, die wir in unserer Personalbeschaffungsanwendung benötigen, müssen wir folgende Fragen für die einzelnen Objekte beantworten: 1. Für welche Benutzer dieses Objekts gelten die strengsten Einschränkungen? 2. Kann es jemals eine Instanz dieses Objekts geben, die dieser Benutzer nicht sehen können soll? 3. Kann es jemals eine Instanz dieses Objekts geben, die dieser Benutzer nicht bearbeiten können soll? 213 Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten Anhand unserer Antworten auf diese Fragen können wir das Freigabemodell bestimmen, das wir für das betreffende Objekt benötigen, wie im folgenden Diagramm dargestellt. Abbildung71: Bestimmen des Freigabemodells für ein Objekt Betrachten wir beispielsweise das Objekt "Position" (Stelle) in unserer Personalbeschaffungsanwendung. Zur Auffrischung unseres Gedächtnisses hier noch einmal die Tabelle der erforderlichen Berechtigungen: Tabelle34: Überarbeitete Zusammenfassung der erforderlichen Berechtigungen Recruiter Hiring Manager Standard Employee (Personalbeschaffungsmitarbeiter) (Einstellungs-Manager) (Standardmitarbeiter) Position (Stelle) 214 Lesen, Erstellen, Bearbeiten Lesen, Erstellen, Bearbeiten* Lesen (nicht für Mindestgehalt/Höchstgehalt) Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten Recruiter Hiring Manager Standard Employee (Personalbeschaffungsmitarbeiter) (Einstellungs-Manager) (Standardmitarbeiter) Candidate (Bewerber) Lesen, Erstellen, Bearbeiten Lesen* (nicht für SSN) Lesen* (nicht für SSN) Job Application (Stellenbewerbung) Lesen, Erstellen, Bearbeiten Lesen, Bearbeiten (nicht für Nachschlagefelder) Lesen* Review Lesen, Erstellen, Bearbeiten Lesen, Erstellen, Bearbeiten Lesen**, Erstellen, Bearbeiten** Job Posting Lesen, Erstellen, (Stellenausschreibung) Bearbeiten, Löschen Lesen*, Erstellen*, Bearbeiten* Employment Website Lesen, Erstellen, (Jobbörse) Bearbeiten, Löschen Lesen * Nur für die Datensätze, die mit einer Stelle verknüpft sind, der der Einstellungs-Manager/Gesprächsleiter zugewiesen wurde ** Nur für die Datensätze, deren Inhaber der Gesprächsleiter ist Gehen wir nun die Liste unserer Fragen für das Objekt "Position" (Stelle) durch und beantworten wir sie: 1. Für welche Benutzer dieses Objekts gelten die strengsten Einschränkungen? Mitglieder des Profils "Standard Employee" (Standardmitarbeiter). Diese Personen dürfen lediglich Stellen anzeigen. 2. Kann es jemals eine Instanz dieses Objekts geben, die dieser Benutzer nicht sehen können soll? Nein. Zwar sind die Werte für Mindest- und Höchstgehalt für Standardmitarbeiter ausgeblendet, sie dürfen jedoch alle Stellendatensätze anzeigen. 3. Kann es jemals eine Instanz dieses Objekts geben, die dieser Benutzer nicht bearbeiten können soll? Ja. Standardmitarbeiter dürfen keine Stellendatensätze bearbeiten. Gemäß unserem Flussdiagramm bedeutet die Antwort "Ja" auf Frage 3, dass das Freigabemodell für das Objekt "Position" (Stelle) auf "Öffentlicher Lesezugriff" gesetzt werden sollte. Dasselbe gilt für die Objekte "Employment Website" (Jobbörse) und "Job Posting" (Stellenausschreibung), mit der Ausnahme, dass dort Einstellungs-Manager die Benutzer mit 215 Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten den strengsten Einschränkungen sind und nicht Standardmitarbeiter. (Standardmitarbeiter verfügen über keine Berechtigungen für diese Objekte, aber von den Benutzern, die über Berechtigungen verfügen, gelten für Einstellungs-Manager die strengsten Einschränkungen.) Wir möchten Einstellungs-Managern erlauben, alle Jobbörsen- und Stellenausschreibungsdatensätze anzuzeigen. Sie sollen diese jedoch nicht bearbeiten können. Die Antwort auf die zweite Frage lautet also "Nein", während die Antwort auf die dritte Frage "Ja" lautet. Daher sollte das Freigabemodell für die Objekte "Employment Website" (Jobbörse) und "Job Posting" (Stellenausschreibung) "Öffentlicher Lesezugriff" lauten. Indem wir die erforderlichen Berechtigungen für die restlichen Personalbeschaffungsobjekte durchgehen, können wir auch problemlos deren Freigabemodelle ermitteln. Das Profil "Standard Employee" (Standardmitarbeiter) ist für jedes Objekt derjenige Benutzer mit den strengsten Einschränkungen und es gibt Bewerber-, Stellenbewerbungs- und Review-Datensätze, die bestimmte Mitarbeiter nicht anzeigen können. Folglich sollte das Freigabemodell für die Objekte "Candidate" (Bewerber), "Job Application" (Stellenbewerbung) und "Review" jeweils auf "Privat" gesetzt sein. Probieren Sie es aus: Festlegen unternehmensweiter Standardeinstellungen Nachdem wir nun für alle Personalbeschaffungsobjekte jeweils die unternehmensweiten Standardeinstellungen ermittelt haben, werden wir sie nun in unserer Personalbeschaffungsanwendung implementieren. 1. Klicken Sie unter "Setup" auf Sicherheitssteuerungen > Freigabeeinstellungen. Wenn Ihnen eine einführende Vorschaltseite angezeigt wird, klicken Sie unten auf der Seite auf Freigabe einrichten, um zum eigentlichen Tool zu gelangen. Auf der Seite "Freigabeeinstellungen" werden sowohl die unternehmensweiten Standardeinstellungen als auch die Freigaberegeln festgelegt. Wir befassen uns genauer mit dieser Seite, wenn wir uns in Kürze den Freigaberegeln zuwenden. Im Moment bearbeiten wir lediglich unsere organisationsweiten Standardeinstellungen. 2. Klicken Sie im Bereich "Unternehmensweite Standardeinstellungen" auf Bearbeiten. Auf dieser Seite werden die unternehmensweiten Standardeinstellungen für alle Objekte in unserer Organisation festgelegt. Wie Sie bemerken werden, wird bei einigen Standardobjekten (wie Leads und Kalender) eine andere Menge an unternehmensweiten Standardwerten verwendet als uns für unsere benutzerdefinierten Personalbeschaffungsobjekte zur Verfügung steht. In der Salesforce-Hilfe können Sie mehr darüber erfahren. Im Moment setzen wir einfach unsere Personalbeschaffungsobjekte auf die unternehmensweiten Standardeinstellungen, für die wir uns im letzten Abschnitt entschieden haben. 216 Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten Abbildung72: Bearbeitungsseite für unternehmensweite Standardeinstellungen 3. Wählen Sie neben Candidate (Bewerber) und Job Application (Stellenbewerbung) die Option "Privat" aus. 4. Wählen Sie neben Employment Website (Jobbörse) und Position (Stelle) die Option "Öffentlicher Lesezugriff" aus. Sie fragen sich vermutlich gerade, warum Sie die unternehmensweiten Standardeinstellungen nicht für die Objekte "Review" und "Job Posting" (Stellenausschreibung) festlegen können. Dies liegt daran, dass sich diese Objekte auf der Detailseite von Master-Detail-Beziehungen befinden und, wie im letzten Kapitel erwähnt, Detaildatensätze automatisch die Freigabeeinstellung des zugehörigen übergeordneten Elements übernehmen. Somit ist in unserer Anwendung das Objekt "Review" automatisch auf "Privat" gesetzt und das Objekt "Job Posting" (Stellenausschreibung) ist automatisch auf "Öffentlicher Lesezugriff" gesetzt. Außerdem wundern Sie sich vielleicht über die Kontrollkästchen-Spalte Verwenden von Zugriff mithilfe von Hierarchien. Lassen Sie diese Kontrollkästchen vorerst aktiviert. Mit dem Thema Hierarchien befassen wir uns im nächsten Abschnitt. 5. Klicken Sie auf Speichern. Ganz einfach! Nachdem wir nun unsere Daten durch unternehmensweite Standardeinstellungen gesperrt haben, dürfen die Benutzer derzeit nur die Bewerber-, Stellenbewerbungs- und Review-Datensätze bearbeiten, deren Inhaber sie sind, und sie dürfen Stellen-, Jobbörsen- 217 Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten und Stellenausschreibungsdatensätze mit beliebigem Inhaber anzeigen. Da diese Einstellungen viel zu streng sind, als dass irgendein Benutzer unsere Anwendung sinnvoll einsetzen könnte, müssen wir nun Rollenhierarchien, Freigaberegeln und manuelle Freigabe verwenden, um den Zugriff auf Bewerber-, Stellenbewerbungs- und Review-Datensätze für diejenigen Mitarbeiter zu öffnen, die ihn benötigen. Einführung in Rollenhierarchien Die erste Möglichkeit zur Freigabe des Zugriffs auf Datensätze besteht in der Definition einer Rollenhierarchie. Ähnlich wie ein Organigramm stellt eine Hierarchie die Datenzugriffsebene dar, die ein Benutzer oder eine Gruppe von Benutzern benötigt. Benutzer, die Rollen fast ganz oben in der Hierarchie zugewiesen sind (normalerweise die Geschäftsleitung, Führungskräfte und andere leitende Mitarbeiter) haben Zugriff auf die Daten aller Benutzer, die in der Hierarchie direkt unter ihnen stehen. Die Rollenhierarchie ermöglicht die folgenden Verhaltensweisen: • • Ein Vorgesetzter hat unabhängig von den unternehmensweiten Standardeinstellungen immer Zugriff auf dieselben Daten wie seine Mitarbeiter. Bei benutzerdefinierten Objekten können Sie dieses Verhalten überschreiben, indem Sie das Kontrollkästchen Verwenden von Zugriff mithilfe von Hierarchien deaktivieren. Wir möchten jedoch, dass unsere Rollenhierarchie auf alle unsere benutzerdefinierten Objekte angewendet werden kann. Die Kontrollkästchen sollten also aktiviert bleiben. Benutzer, die wahrscheinlich Zugriff auf dieselben Typen von Datensätzen benötigen, können gruppiert werden. Wir verwenden diese Gruppen später noch im Zusammenhang mit Freigaberegeln. Sehen wir uns zur Veranschaulichung einmal einen Teil der Rollenhierarchie von Universal Containers an: 218 Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten Abbildung73: Rollenhierarchie bei Universal Containers Die Rollenhierarchien stimmen nicht unbedingt exakt mit dem Organigramm überein. Stattdessen sollte jede Rolle in der Hierarchie lediglich die Datenzugriffsebene darstellen, die ein Benutzer oder eine Gruppe von Benutzern benötigt. Nehmen wir beispielsweise an, Ihre Organisation stellt einen Firmenanwalt ein, der Zugriff auf alle Datensätze in der Anwendung benötigt. Eine einfache Möglichkeit, dies zu erreichen, besteht darin, dem Anwalt die Rolle "CEO" in der Rollenhierarchie Ihrer Organisation zuzuweisen. Da die Rolle "CEO" sich in der Hierarchie ganz oben befindet, erhält jeder, dem diese Rolle zugewiesen ist, automatisch den vollen Zugriff auf sämtliche Datensätze in der Organisation. Es spielt dabei keine Rolle, dass der Anwalt im eigentlichen Organigramm tatsächlich unter dem CEO angesiedelt ist. Rollen, Profile und Berechtigungssätze im Vergleich Profile und Berechtigungssätze werden zwar leicht mit Rollen verwechselt, sie regeln jedoch jeweils zwei ganz verschiedene Dinge. Wie wir weiter vorne in diesem Kapitel gelernt haben, legen Profile und Berechtigungssätze die Zugriffsberechtigungen eines Benutzers auf der Objekt- und Feldebene fest. Tatsächlich kann ein Benutzer nicht definiert werden, ohne dass er einem bestimmten Profil zugewiesen wird, da das Profil den Grundzugriff für die Benutzer festlegt. 219 Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten Rollen dagegen legen in erster Linie die Zugriffsberechtigung eines Benutzers auf der Datensatzebene über Rollenhierarchie und Freigaberegeln fest. Auch wenn eine Rollenzuweisung bei der Benutzerdefinition nicht zwingend erforderlich ist, wäre es dumm von uns, keine Rolle zuzuweisen, da Rollen die Definition von Berechtigungen auf der Datensatzebene erheblich erleichtern. Der Versuch, Berechtigungen auf der Datensatzebene zu definieren, ohne dem Benutzer eine Rolle zuzuweisen, wäre in etwa so, wie wenn man mit dem Auto von New York nach San Francisco reisen würde, obwohl es doch eine Flugverbindung gibt: Es gibt einfach eine wesentlich effizientere Vorgehensweise. Sie sollten sich merken: Rollen steuern Datensätze. Rollenhierarchien in unserer Personalbeschaffungsanwendung Auf Basis der Rollenhierarchie bei Universal Containers, die in der Abbildung "Rollenhierarchie bei Universal Containers" dargestellt ist, sollten wir uns nun überlegen, wie die Implementierung dieser Hierarchie bestimmte Arten von Berechtigungen auf Datensatzebene für verschiedene Benutzer der Personalbeschaffungsanwendung ermöglicht. Bedenken Sie, dass durch das Definieren unserer unternehmensweiten Standards unsere Einstellungs-Manager derzeit berechtigt sind, alle Stellen-, Stellenausschreibungs- und Jobbörsendatensätze anzuzeigen und andere Personalbeschaffungsdatensätze, deren Inhaber sie sind, anzuzeigen und zu aktualisieren. Das trägt nicht gerade zur Nützlichkeit unserer Anwendung bei. Sobald wir jedoch unsere Rollenhierarchie implementieren, erteilen wir automatisch verschiedene Arten von Berechtigungen auf Datensatzebene an verschiedene Benutzer. Beispiele: • • • • • • 220 CEO, Cynthia Capobianco, kann jeden Datensatz, den jede andere Person in der Organisation anzeigen und aktualisieren kann anzeigen und aktualisieren. VP of Development, Andrew Goldberg, kann jeden Datensatz, den seine Manager oder die Mitarbeiter seiner Manager anzeigen oder aktualisieren können, ebenfalls anzeigen und aktualisieren. VP of Human Resources, Megan Smith, kann jeden Datensatz anzeigen und aktualisieren, den Phil Katz, ihr Personalbeschaffungsmanager oder Mario Ruiz, Personalbeschaffungsmitarbeiter von Phil Katz, anzeigen und aktualisieren kann. Personalbeschaffungsmanager, Phil Katz, kann jeden Datensatz anzeigen und aktualisieren, dessen Inhaber sein Personalbeschaffungsmitarbeiter, Mario Ruiz, ist. Software Development Manager, Ben Stuart, kann jeden Datensatz anzeigen und aktualisieren, dessen Inhaber Melissa Lee, Tom Zales oder Craig Kingman, seine Software-Ingenieure, sind. Director of QA, Clark Kentman kann jeden Datensatz anzeigen und aktualisieren, dessen Inhaber Flash Stevenson oder Harry Potterham, seine QA Engineers, sind. Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten • Director of Product Management, Frank Linstrom, kann jeden Datensatz anzeigen und aktualisieren, dessen Inhaber Amy Lojack oder Andy Macrola, seine Produktmanager, sind. Wie wir sehen, spielt die Rollenhierarchie eine große Rolle, wenn es darum geht, Personen in den oberen Regionen der Rollenhierarchiestruktur den Zugriff auf Daten zu ermöglichen! Sehen wir uns jedoch einige Lücken an, die noch in unseren Berechtigungen auf Datensatzebene zu finden sind: • • • Megan Smith (und ihr gesamtes Personalbeschaffungsteam) ist nicht berechtigt, Reviews anzuzeigen, deren Inhaber Mitglieder des Entwicklungsteams von Andrew Goldberg sind, da sie keine direkte Linie nach unten zu Rollen im Bereich "Development" in der Rollenhierarchie hat. Ben Stuart, der Software Development Manager, kann ebenfalls keine Reviews anzeigen, die von Mitgliedern der QA- oder Product Management-Gruppen sind, auch wenn QA Engineers oder Produktmanager Bewerbungsgespräche mit Bewerbern für eine Stelle im Bereich Software Engineering in seiner Gruppe geführt haben. Melissa Lee, Software Engineer, kann die Datensätze der Bewerber, mit denen Sie Gespräche führen soll, nicht anzeigen. Es wird deutlich, dass wir andere Freigabemethoden auf Datensatzebene nutzen müssen, um den Zugriff auf Daten zwischen Kollegen in derselben Gruppe zu ermöglichen und auch zwischen Gruppen, die sich verschiedenen Verzweigungen der Rollenhierarchie befinden (darauf wird weiter unten in diesem Kapitel eingegangen). Mit der Rollenhierarchie haben wir allerdings eine gute Ausgangsposition für die Einrichtung des Datensatzzugriffs. Sehen wir uns also an, wie dieser zu definieren ist. Probieren Sie es aus: Erstellen eines Benutzers Bevor wir die Rollenhierarchie einrichten, benötigen wir einige Benutzer, denen wir die Rollen zuweisen können. Erstellen wir zunächst den CEO von Universal Containers: Cynthia Capobianco. 1. 2. 3. 4. 5. Klicken Sie unter "Setup" auf Benutzer verwalten > Benutzer. Klicken Sie auf Neuer Benutzer. Geben Sie bei Vorname Cynthia ein. Geben Sie bei Nachname Capobianco ein. Geben Sie im Feld E-Mail Ihre E-Mail-Adresse und im Feld Benutzername eine erfundene E-Mail-Adresse ein. Jeder Benutzer muss über alle Salesforce-Organisationen hinweg über einen eindeutigen Benutzernamen verfügen. Der Wert im Feld E-Mail muss jedoch eine gültige E-Mail-Adresse 221 Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten sein. Wir können den erfundenen Wert im Feld Benutzername verwenden, um uns bei der Anwendung als Cynthia anzumelden, wir erhalten jedoch das für Cynthia automatisch generierte Kennwort unter dem realen E-Mail-Account, den wir im Feld E-Mail angegeben haben. Ohne dieses Kennwort könnten wir uns nicht anmelden. Abbildung74: Bearbeitungsseite für neue Benutzer Tipp: Beim Erstellen eines neuen Benutzers müssen Sie auch den Nickname des Benutzers erstellen. Der Nickname dient zur Identifizierung des Benutzers in der Anwendung "Ideas", bei der es sich um eine Community von Benutzern handelt, die Ideen posten, darüber abstimmen und sie kommentieren. Sie können sie sich vorstellen wie ein Forum für Verbesserungsvorschläge, in dem es auch Diskussionen und Beliebtheitsranglisten zu jedem Thema gibt. Für den Nickname sind bis zu 40 alphanumerische Zeichen zulässig. Weitere Informationen finden Sie in der Salesforce-Hilfe. 6. Geben Sie keinen Wert für Rolle an. Wir werden diese während der Erstellung der Rollenhierarchie zuweisen. 7. Behalten Sie im Feld Benutzerlizenz die Standardauswahl von Salesforce bei. 8. Wählen Sie im Feld Profil "Standard Employee" (Standardmitarbeiter) aus. 9. Füllen Sie alle restlichen Felder aus, die Sie verwenden möchten. 10. Klicken Sie auf Speichern. 222 Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten Probieren Sie es aus: Definieren einer Rollenhierarchie Das Implementieren einer Rollenhierarchie in der Plattform ist einfach, sobald Sie eine Vorstellung davon haben, wie die Hierarchie aussehen soll. Am besten beginnen Sie mit dem Organigramm Ihres eigenen Unternehmens und fassen verschiedene Positionen wann immer möglich zu einer gemeinsamen Rolle zusammen. Wenn beispielsweise zur Softwareentwicklungsgruppe von Ben Stuart ein Staff Software Engineer und ein Junior Software Engineer gehören, können diese Positionen in der Hierarchie zu einer gemeinsamen Rolle "Software Engineer" zusammengefasst werden. Nachdem wir diese Aufgabe erledigt haben, können wir mit der Definition der Rollenhierarchie selbst beginnen. Für unsere Übung verwenden wir die vorhin erwähnte Rollenhierarchie. 1. Klicken Sie unter "Setup" auf Benutzer verwalten > Rollen. Wenn Ihnen eine einführende Vorschaltseite mit dem Titel "Grundlegendes zu Rollen" angezeigt wird, klicken Sie unten auf der Seite auf Rollen einrichten, um zum eigentlichen Tool zu gelangen. Abbildung75: Leere Rollenhierarchieseite im Ansichtsmodus für Baumstruktur Die Standardansicht für diese Seite ist die Strukturansicht, wie in der Dropdownliste ganz rechts in der Titelleiste "Rollenhierarchie" zu sehen. Bei der Erstellung einer Rollenhierarchie ist es vermutlich am einfachsten, diese Ansicht oder die Listenansicht zu verwenden, da aus beiden gut ersichtlich ist, wie die Rollen in der Hierarchie zusammengehören. Die sortierte Listenansicht eignet sich am besten, wenn Sie den Namen einer Rolle kennen, die Sie suchen, sich jedoch nicht sicher sind, wohin sie in der Hierarchie gehört, oder wenn Sie nicht auf alle Baumknoten klicken möchten, um sie zu öffnen. Für unsere Zwecke bleiben wir bei der Strukturansicht. Wenn Sie erstmals eine Rollenhierarchie definieren, wird in der Strukturansicht ein einzelner Platzhalterknoten mit dem Namen Ihrer Organisation angezeigt. Nun müssen wir den Namen der Rolle hinzufügen, die sich an der Spitze der Hierarchie befindet. In diesem Fall der CEO. 223 Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten Anmerkung: Wenn Sie Ihre Personalbeschaffungsanwendung mit einer kostenlosen Developer Edition-Organisation erstellen, ist möglicherweise bereits eine Rollenhierarchie als Beispiel vordefiniert. Das ist in Ordnung. Sie können trotzdem mitmachen und einige weitere Rollen erstellen. 2. Klicken Sie unmittelbar unter "Universal Containers" auf Rolle hinzufügen. Anmerkung: Wenn die Rolle "CEO" bereits vorhanden ist, klicken Sie auf Bearbeiten. 3. Geben Sie im Textfeld Bezeichnung CEO ein. Das Textfeld Rollenname wird automatisch mit "CEO" ausgefüllt. 4. Klicken Sie im Textfeld Vorgesetzter auf das Nachschlagesymbol Sie neben dem Namen Ihrer Organisation auf Auswählen. und klicken Indem wir im Textfeld Vorgesetzter den Namen der Organisation auswählen, geben wir an, dass der CEO an der Spitze unserer Rollenhierarchie steht und keinen Vorgesetzten hat. 5. Geben Sie im Textfeld In Berichten angezeigter Rollenname den Text CEO ein. Dieser Text wird in Berichten verwendet, um den Namen einer Rolle anzugeben. Da es störend sein kann, wenn lange Rollennamen, wie "Vice President of Product Development", sehr viel Platz in Ihren Berichtspalten einnehmen, ist es ratsam, eine gekürzte, aber dennoch leicht identifizierbare Abkürzung zu verwenden. 6. Behalten Sie bei den anderen Optionen, wie Opportunityzugriff, die Standardwerte bei. Dies Zugriffsoptionen haben nichts mit unserer Personalbeschaffungsanwendung zu tun und werden nur angezeigt, wenn die unternehmensweiten Standardeinstellungen für ein Standardobjekt auf eine strengere Einstellung gesetzt sind als "Öffentlicher Lese-/Schreibzugriff". 7. Klicken Sie auf Speichern. 224 Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten Abbildung76: Detailseite für die Rolle "CEO" Nachdem wir unsere erste Rolle erstellt haben, können wir ihr den entsprechenden Benutzer zuweisen. 8. Klicken Sie auf CEO, um die Detailseite für die Rolle "CEO" zu öffnen. 9. Klicken Sie auf der Detailseite für die Rolle "CEO" auf Benutzern eine Rolle zuordnen. 10. Wählen Sie in der Dropdownliste Verfügbare Benutzer den Eintrag "Alle nicht zugewiesenen" aus. 11. Wählen Sie einen Benutzer aus der Liste aus (in unserem Fall: Cynthia Capobianco) und klicken Sie auf Hinzufügen, um sie in die Liste Ausgewählte Benutzer für CEO zu verschieben. 12. Klicken Sie auf Speichern. Wenn wir zur Hauptseite für Rollen zurückkehren, indem wir unter "Setup" auf Benutzer verwalten > Rollen klicken, können wir nun unsere neue CEO-Rolle in der Hierarchie sehen. Anmerkung: Wenn Sie das Bild "Rollenhierarchie-Beispiel" sehen, klicken Sie auf Rollen einrichten. 13. Definieren Sie die restlichen Rollen gemäß dem Diagramm "Rollenhierarchie bei Universal Containers". 225 Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten Abbildung77: Rollenhierarchie bei Universal Containers Sie brauchen derzeit nicht jeder Rolle Benutzer zuzuweisen. Das erledigen wir später, wenn wir die restlichen unserer Benutzer erstellen und unsere Anwendung testen. Tipp: Um das Hinzufügen einer neuen Rolle zu beschleunigen, klicken Sie unmittelbar unter dem Namen der Rolle, der die neue Rolle unterstellt sein soll, auf Rolle hinzufügen. Wenn Sie dies tun, wird das Textfeld Vorgesetzter automatisch mit dem Namen der entsprechenden Rolle ausgefüllt. Das war doch gar nicht so schwer, oder? Nachdem wir nun die unternehmensweiten Standardeinstellungen und eine Rollenhierarchie eingerichtet haben, sind wir schon fast mit unseren Zugriffsberechtigungen auf der Datensatzebene fertig. Wir müssen nur noch personalbeschaffungsbezogene Datensätze zwischen Gruppen freigeben, die in unterschiedlichen Zweigen der Rollenhierarchie vorkommen, sowie zwischen den gleichrangigen Personen innerhalb derselben Gruppe. Glücklicherweise können wir beide Aufgaben mit einer Kombination aus Freigaberegeln und manueller Freigabe erledigen. Wir müssen lediglich herausfinden, was noch freigegeben werden muss und für wen. Was muss noch freigegeben werden? Was muss also noch freigegeben werden? Wenn wir unsere Tabelle der erforderlichen Berechtigungen durchgehen, sehen wir, dass es sich nur noch um einige wenige Elemente handelt. (Denken Sie daran: Da die Benutzer immer auf die Datensätze zugreifen können, 226 Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten deren Inhaber sie sind, brauchen wir uns lediglich um die Lese- und Aktualisierungsberechtigungen für die Zugriffseinstellungen auf der Datensatzebene zu kümmern): • • Personalbeschaffungsmitarbeiter benötigen Lese- und Aktualisierungszugriff für alle Stellen-, Bewerber-, Stellenbewerbung- und Review-Datensätze, die in der Anwendung vorhanden sind. Einstellungs-Manager benötigen folgende Zugriffsrechte: ◊ Lese- und Aktualisierungszugriff auf Stellen- und Stellenausschreibungsdatensätze, für die sie als Einstellungs-Manager fungieren ◊ Lesezugriff auf die Datensätze der Bewerber, für die sie als Einstellungs-Manager fungieren ◊ Lese- und Aktualisierungszugriff für sämtliche Stellenbewerbungen und Review-Datensätze • Gesprächsleiter benötigen Lesezugriff für die Bewerber- und Stellenbewerbungsdatensätze der Personen, mit denen sie ein Bewerbungsgespräch führen, sowie die Fähigkeit, deren Reviews zu aktualisieren. Das sollte nicht allzu schwer sein. Fangen wir an. Einführung in Freigaberegeln Sehen wir zunächst einmal an, welche Möglichkeiten wir mit Freigaberegeln haben. Freigaberegeln ermöglichen automatische Ausnahmen von den unternehmensweiten Standardeinstellungen für bestimmte Gruppen von Benutzern. Wir haben bereits verschiedene bestimmte Gruppen mit den Rollen definiert, die wir im vorherigen Abschnitt erstellt haben, aber wir können nach Bedarf auch weitere Gruppen ergänzen. Wir dürfen im Zusammenhang mit Freigaberegeln nicht vergessen, dass wir sie, ebenso wie Rollenhierarchien, nur verwenden können, um den Zugriff auf Datensätze für mehr Benutzer zu ermöglichen. Freigaberegeln und Rollenhierarchien können niemals strenger sein als unsere unternehmensweiten Standardeinstellungen. Freigaberegeln in unserer Personalbeschaffungsanwendung Freigaberegeln funktionieren am besten, wenn sie für eine bestimmte Gruppe von Benutzern definiert sind, die wir genau festlegen oder im Voraus vorhersagen können, und nicht für eine 227 Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten Menge von Benutzern, die sich häufig ändert. Beispielsweise müssen wir in unserer Personalbeschaffungsanwendung jede Stelle, jeden Bewerber, jede Stellenbewerbung und jeden Review für jeden Personalbeschaffungsmitarbeiter freigeben. Da die Personalbeschaffungsmitarbeiter allesamt entweder die Rolle des Personalbeschaffungsmanagers oder die Rolle des Personalbeschaffungsmitarbeiters in der Rollenhierarchie innehaben, können wir problemlos eine Freigaberegel verwenden, um die entsprechenden Objekte für die Rolle des Personalbeschaffungsmanagers und dessen nachgeordnete Positionen freizugeben. Alternativ können Sie einen anderen Anwendungsfall aus unserer Personalbeschaffungsanwendung heranziehen: Gesprächsleiter benötigen Schreibzugriff für die Bewerber und Stellenbewerbungen hinsichtlich der Personen, mit denen Sie ein Bewerbungsgespräch führen. In diesem Fall ist die Gruppe der Gesprächsleiter viel schwerer vorauszusagen – Einstellungs-Manager setzen möglicherweise je nachdem, welche Stelle besetzt werden soll, verschiedene Gruppen von Gesprächsleitern ein und die Gesprächsleiter können aus verschiedenen Gruppen in der Rollenhierarchie stammen. Folglich sollten für diesen Anwendungsfall möglicherweise keine Freigaberegeln verwendet werden, da das Gesprächsleiterteam für einen bestimmten Manager einfach zu schwer vorauszusagen ist. Gehen wir die Liste der noch zu implementierenden erforderlichen Berechtigungen einmal durch und greifen uns die heraus, die am besten mit Freigaberegeln funktionieren: Anwendungsfall Soll eine Freigaberegel verwendet werden? Personalbeschaffungsmitarbeiter benötigen Lese- und Aktualisierungszugriff für alle Stellen-, Bewerber-, Stellenbewerbung- und Review-Datensätze, die in der Anwendung vorhanden sind. Ja. Wie bereits weiter oben erörtert, ist es einfach, die Gruppe der Personalbeschaffungsmitarbeiter in unserer Rollenhierarchie auszuwählen. Einstellungs-Manager benötigen Lese- und Aktualisierungszugriff auf Stellen- und Stellenausschreibungsdatensätze, für die sie als Einstellungs-Manager fungieren. Nein. Es ist zu schwer vorherzusagen, welche Stellen welchem Einstellungs-Manager zugewiesen werden. Dieser Anwendungsfall muss auf andere Weise gehandhabt werden. Einstellungs-Manager benötigen Lesezugriff Nein. Auch hier ist es zu schwer auf die Datensätze der Bewerber, für die sie vorherzusagen, welche Stellen welchem als Einstellungs-Manager fungieren. Einstellungs-Manager zugewiesen werden. Einstellungs-Manager benötigen Lese- und Ja. Da wir nicht einschränken, welche Aktualisierungszugriff für sämtliche Stellenbewerbungen und Reviews ein Stellenbewerbungen und Review-Datensätze. Einstellungs-Manager zum Lesen und aktualisieren erhält, können wir einfach sämtliche Einstellungs-Manager aus unserer 228 Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten Anwendungsfall Soll eine Freigaberegel verwendet werden? Rollenhierarchie auswählen und eine Freigaberegel für sie definieren. Gesprächsleiter benötigen Lesezugriff auf die Bewerber- und Stellenbewerbungsdatensätze der Personen, mit denen sie ein Bewerbungsgespräch führen. Nein. Wie bereits weiter oben dargelegt, ist es sehr schwer vorauszusagen, wer Mitglied eines Gesprächsleiterteams für eine bestimmte Stelle wird. Hervorragend! Nun, da wir wissen, welche erforderlichen Berechtigungen wir für die Freigaberegeln implementieren möchten, können wir sie direkt definieren. Probieren Sie es aus: Definieren einer öffentlichen Gruppe Bevor wir uns richtig intensiv mit dem Erstellen unserer Freibageregeln befassen, müssen wir sicherstellen, dass wir die geeigneten öffentlichen Gruppen eingerichtet haben. Eine öffentliche Gruppe ist eine Sammlung von individuellen Benutzern, anderen Gruppen, individuellen Rollen und/oder Rollen mit deren nachgeordneten Rollen, die alle eine Funktion gemein haben. Beispielsweise sind sowohl Benutzer, die über das Profil "Recruiter" (Personalbeschaffungsmitarbeiter) verfügen als auch Benutzer mit der Rolle "SW Dev Manager" für das Überprüfen von Stellenbewerbungen zuständig. Die Verwendung einer öffentlichen Gruppe für das Definieren einer Freigaberegel vereinfacht die Erstellung der Regel und macht sie, was noch wichtiger ist, später leichter verständlich. Insbesondere dann, wenn es sich um eine von vielen Freigaberegeln handelt, die Sie in einer großen Organisation verwalten müssen. Sie müssen eine öffentliche Gruppe erstellen, wenn Sie irgendwann einmal eine Freigaberegel definieren möchten, die mehr als eine oder zwei Gruppen oder Rollen oder irgendeine Einzelperson einschließt. Wenn wir uns die erforderlichen Berechtigungen ansehen, die wir implementieren möchten, gibt es lediglich zwei Objekte, die eine öffentliche Gruppe für ihre Freigaberegeln benötigen: "Job Application" (Stellenbewerbung) und "Review". Erfreulich ist, dass wir diese Objekte in einer einzigen Gruppe abdecken können, da das Objekt "Review" sich auf der Detailseite einer Master-Detail-Beziehungen befindet und demzufolge die Freigabeeinstellungen übernimmt, die wir auf das Objekt "Job Application" (Stellenbewerbung) anwenden. Da sowohl Personalbeschaffungsmitarbeiter als auch Einstellungs-Manager einen Lese- und Aktualisierungszugriff auf Stellenbewerbungen und Reviews benötigen, lassen Sie uns nun eine öffentliche Gruppe mit der Bezeichnung "Reviewers" (Reviewer) erstellen, die sowohl Personalbeschaffungsmitarbeiter als auch Einstellungs-Manager einschließt. 229 Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten 1. Klicken Sie unter "Setup" auf Benutzer verwalten > Öffentliche Gruppen. 2. Klicken Sie auf Neu. Abbildung78: Seite "Neue öffentliche Gruppe" Auf der Seite "Neue öffentliche Gruppe" können Sie andere öffentliche Gruppen, individuelle Rollen, in denen deren nachgeordnete Rollen enthalten sind, oder individuelle Benutzer auswählen. 3. Geben Sie im Textfeld Bezeichnung Reviewers (Reviewer) ein. Klicken Sie in das Textfeld Gruppenname, um es automatisch auszufüllen. Gruppenname bezieht sich auf den eindeutigen Namen, der von der API und verwalteten Paketen verwendet wird. 4. Wählen Sie in der Dropdownliste Suchen die Option "Rollen" aus. 5. Wählen Sie in der Liste Verfügbare Mitglieder die Mitglieder "SW Dev Manager", "Director Product Management" und "Director QA" aus und klicken Sie auf Hinzufügen. 6. Kehren Sie zur Dropdownliste Suchen zurück und wählen Sie diesmal "Rolle und nachgeordnete Positionen". 7. Wählen Sie in der Liste Verfügbare Mitglieder die Option "Recruiting Manager" (Personalbeschaffungsmanager) und klicken Sie auf Hinzufügen. 8. Klicken Sie auf Speichern. Ganz einfach! Nun sind wir bereit, unsere Freigaberegeln zu definieren. 230 Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten Probieren Sie es aus: Definieren von Freigaberegeln Nachdem wir soeben die öffentliche Gruppe "Reviewers" (Reviewer) erstellt haben, verwenden wir sie, um unsere Freigaberegeln für Review-Datensätze zu definieren. 1. Klicken Sie unter "Setup" auf Sicherheitssteuerungen > Freigabeeinstellungen. Erinnern Sie sich an diese Seite? Wir waren zuletzt hier, als wir unsere unternehmensweiten Standardeinstellungen definierten. 2. Wählen Sie in der Dropdownliste Freigabeeinstellungen verwalten für die Option "Job Application" (Stellenbewerbung) aus. Durch Auswahl eines Objekts in dieser Dropdownliste können wir uns auf die unternehmensweiten Standardeinstellungen und Freigaberegeln für jeweils ein einzelnes Objekt konzentrieren, anstatt alle auf einer langen Seite zu betrachten. Dies ist wirklich nützlich bei großen Organisationen mit mehreren benutzerdefinierten Objekten. Wenn Sie statt "Job Application" (Stellenbewerbung) "Review" ausgewählt hätten, hätten Sie nicht die Möglichkeit, Freigaberegeln zu erstellen, da für Detaildatensätze in einer Master-Detail-Beziehung keine Freigaberegeln erstellt werden können. Da Sie jedoch "Job Application" (Stellenbewerbung) ausgewählt haben, wird eine Themenliste für die Freigaberegeln angezeigt. Wir verwenden sie zur Erstellung der Freigaberegeln, die sowohl für das Objekt "Job Application" (Stellenbewerbung) als auch für das Objekt "Review" gelten sollen. 3. Klicken Sie im Bereich "Job Application - Freigaberegeln" auf Neu. 4. Geben Sie im Textfeld Bezeichnung Review-Records (Review-Datensätze) ein. 5. Klicken Sie in das Textfeld Regelname, um es automatisch auszufüllen. 6. Achten Sie darauf, dass als Regeltyp Basierend auf Datensatzinhaber ausgewählt ist. 7. Wählen Sie in der Dropdownliste Job Application: Inhaber: Mitglieder von die Option "Öffentliche Gruppen" aus. 8. Wählen Sie neben dieser Dropdownliste die Option "Gesamtes Unternehmen" aus. Wie soeben erwähnt, können Sie eine Freigaberegel nur für eine einzelne öffentliche Gruppe, eine Rolle oder eine Rolle mit allen nachgeordneten Positionen definieren. Standardmäßig gehört zu der Plattform eine öffentliche Gruppe, die alle Benutzer in Ihrer Organisation umfasst. 231 Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten 9. Wählen Sie in der Dropdownliste Freigeben für die Option "Öffentliche Gruppen" aus. 10. Wählen Sie neben dieser Dropdownliste die Option "Reviewers" (Reviewer) aus. 11. Wählen Sie in der Dropdownliste Zugriffsebene die Option "Lese-/Schreibzugriff" aus. 12. Klicken Sie auf Speichern. 13. Klicken Sie in dem Dialogfeld, das besagt, dass dieser Vorgang einige Zeit in Anspruch nehmen kann, auf OK. Und schon sind Sie fertig! Wir haben soeben eine Regel erstellt, mit die Reviews, die von einem beliebigen Mitglied der Organisation geschrieben wurden (bzw. die ein beliebiges Mitglied als Inhaber haben), für alle Personalbeschaffungsmitarbeiter und Einstellungs-Manager freigegeben werden. Da alle Personalbeschaffungsmitarbeiter und Einstellungs-Manager in der Lage sein müssen, Reviews zu lesen und zu aktualisieren, haben wir alle mittels einer einzelnen Freigaberegel und einer öffentlichen Gruppe abgehandelt. Erstellen Sie abschließend die folgenden inhaberbasierten Freigaberegeln: Tabelle35: Zusätzliche Freigaberegeln Objekt Regelbezeichnung Inhaber: Candidate Edit Gesamtes Unternehmen (Bewerber) Candidates (Bewerber bearbeiten) Freizugeben für: Die Rolle des Lese-/Schreibzugriff Personalbeschaffungsmanagers und die nachgeordneten Positionen Employment Edit Website Employment (Jobbörse) Websites (Jobbörsen bearbeiten) Die Rolle des Reviewers (Reviewer) Personalbeschaffungsmanagers und die nachgeordneten Positionen Position (Stelle) Die Rolle des Personalbeschaffungsmanagers und die nachgeordneten Positionen Edit Positions (Stellen bearbeiten) Zugriffsebene Lese-/Schreibzugriff Die Rolle des Lese-/Schreibzugriff Personalbeschaffungsmanagers und die nachgeordneten Positionen Die Freigaberegel für das Objekt "Employment Website" (Jobbörse) ist erforderlich, damit die Einstellungs-Manager Stellen ausschreiben können, auch wenn sie nie die Datensätze der Jobbörse direkt aktualisieren (dies wird durch die unternehmensweiten Standardeinstellungen verhindert). Ohne die Regel werden den Einstellungs-Managern die Datensätze der Jobbörse zwar angezeigt, sie können jedoch keine Stellenausschreibungen erstellen. Dies liegt daran, 232 Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten dass das Objekt "Job Posting" (Stellenausschreibung) ein Verknüpfungsobjekt ist (wie Sie aus dem letzten Kapitel wissen) und dass das Objekt "Employment Website" (Jobbörse) eine der beiden Master-Detail-Beziehungen des Objekts "Job Posting" (Stellenausschreibung) ist. Die Freigabe des Zugriffs auf einen Verknüpfungsobjektdatensatz richtet sich nach dem Freigabezugriff des Benutzers auf die zugehörigen Masterdatensätze (in diesem Fall: die zugehörigen Datensätze für die Stelle und die Jobbörse) und die Option "Freigabeeinstellung" im Beziehungsfeld. Wenn beispielsweise die Freigabeeinstellung für beide übergeordneten Objekte "Lesen/Schreiben" lautet, dann muss der Benutzer über die Schreib-/Leseberechtigung für beide übergeordneten Objekte verfügen, damit er diesen Zugriff auf das Verknüpfungsobjekt hat. In der Freigaberegel für das Objekt "Employment Website" (Jobbörse) entschieden wir uns, die bestehende öffentliche Gruppe "Reviewers" (Reviewer) zu verwenden. Dies ersparte uns einige Klicks, ohne dass Zugriff für irgendwelche Benutzer gewährt wurde, die keinen Einblick in die Datensätze der Jobbörse haben sollten. Beyond the Basics Wussten Sie, dass Sie kriterienbasierte Freigaberegeln verwenden können, um Datensatzzugriff für die Benutzer zu ermöglichen? Angenommen, Sie möchten Datensätze basierend auf den in den Datensätzen enthaltenen Feldwerten freigegeben, und nicht basierend auf den Datensatzinhabern. Sie können Freigaberegeln anhand der Feldwertkriterien einrichten und Filterlogik anwenden, um den Benutzern den Zugriff auf einen bestimmten Datensatz zu ermöglichen. Weitere Informationen finden Sie in der Salesforce-Hilfe unter "Kriterienbasierte Freigaberegeln – Übersicht". Einführung in die manuelle Freigabe Sprechen wir nun darüber, was uns noch zu tun bleibt, um die Definition unseres Freigabemodells abzuschließen. Nach der Implementierung der Freigaberegeln bleiben folgende erforderlichen Berechtigungen übrig: • • • Einstellung-Manager benötigen Lese- und Aktualisierungszugriff auf Stellendatensätze, für die sie als Einstellungs-Manager fungieren. Einstellungs-Manager benötigen Lesezugriff auf die Datensätze der Bewerber, für die sie als Einstellungs-Manager fungieren. Gesprächsleiter benötigen Lesezugriff auf die Bewerber- und Stellenbewerbungsdatensätze der Personen, mit denen sie ein Bewerbungsgespräch führen. 233 Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten Wir haben diese erforderlichen Berechtigungen nicht durch Freigaberegeln implementiert, weil es zu schwierig war, eine konsistente Gruppe von Benutzern zu definieren, die Zugriff auf dieselbe Menge von Datensätzen benötigen. Hier kommt nun die Rolle des Personalbeschaffungsmitarbeiters ins Spiel. Personalbeschaffungsmitarbeiter wie Mario Ruiz sind Inhaber der Stellen-, Bewerber-, und Stellenbewerbungsdatensätze für die Stellen, die sie zu besetzen versuchen, und sie wissen auch, welcher Einstellungs-Manager und welche Gesprächsleiter diesen Datensätzen zugewiesen werden sollten. Glücklicherweise gibt es noch einen letzten Einstellungstyp für den Datensatzzugriff, mit dem Mario ganz bestimmte Datensätze für ganz bestimmte Benutzer freigeben kann: die manuelle Freigabe. Mit der manuellen Freigabe kann Mario anderen Benutzern, Rollen oder öffentlichen Gruppen Lese-/Schreibzugriff für Datensätze gewähren, deren Inhaber er ist. Die manuelle Freigabe ist zwar nicht automatisiert wie die unternehmensweiten Standardeinstellungen, Rollenhierarchien und Freigaberegeln, aber sie gibt Mario dennoch die Flexibilität, bestimmte Datensätze für die sich ständig ändernden Gruppen von Gesprächsleitern und Einstellungs-Managern freizugeben, mit denen er täglich zu tun hat. Probieren Sie es aus: Definieren von Regeln für die manuelle Freigabe Nehmen wir an, wir sind ein Personalbeschaffungsmitarbeiter wie Mario und müssen einen bestimmten Bewerberdatensatz, dessen Inhaber wir sind, für eine andere Rolle, eine andere Gruppe oder einen anderen Benutzer freigeben: 1. Klicken Sie auf der Detailseite für den Bewerber auf Freigabe. Abbildung79: Freigabe-Detailseite Da wir der Inhaber dieses Bewerberdatensatzes sind, können wir Details dazu anzeigen, welche weiteren Personen den Datensatz ebenfalls sehen können und warum. Wenn wir nicht Inhaber dieses Datensatzes wären, gäbe es eine Meldung darüber, dass unsere Berechtigungen nicht ausreichen. 234 Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten Tipp: Wenn wir die Namen der einzelnen Benutzer anzeigen wollten, die auf den Datensatz zugreifen können, anstatt der Namen der Rollen und öffentlichen Gruppen, könnten wir auf dieser Seite auf Liste erweitern klicken. Auch wenn der Vorgang in Abhängigkeit von der Anzahl der Benutzer in unserer Organisation geraume Zeit in Anspruch nehmen kann, ist es sinnvoll zu ermitteln, ob wir eine manuelle Freigaberegel für einen bestimmten Benutzer definieren müssen, oder ob dieser bereits über Zugriff verfügt. 2. Klicken Sie auf Hinzufügen. 3. Wählen Sie in der Dropdownliste Suche aus, ob der Datensatz manuell für einen Benutzer, eine öffentliche Gruppe, eine Rolle oder eine Rolle und deren nachgeordnete Positionen freigegeben werden soll. 4. Wählen Sie in der Liste Verfügbar den Benutzer, die öffentliche Gruppe bzw. die Rolle aus, die Zugriff auf den Datensatz haben sollte, und klicken Sie auf Hinzufügen. 5. Geben Sie in der Dropdownliste Zugriffsebene an, ob der Benutzer, die öffentliche Gruppe oder die Rolle über Lesezugriff oder über Lese-/Schreibzugriff auf den Datensatz verfügen soll. 6. Klicken Sie auf Speichern. Das war nicht allzu schwer. Wenn wir unsere Personalbeschaffungsanwendung an die Benutzer verteilen, müssen wir unsere Personalbeschaffungsmitarbeiter schulen, damit sie diese Schritte für die Stellen-, Bewerber- und Stellenbewerbungsdatensätze durchführen können, auf die ihre Einstellungs-Manager und Gesprächsleiter Zugriff benötigen. Nach Abschluss dieser Schulung haben wir alle erforderlichen Freigabe- und Sicherheitseinstellungen implementiert, über die wir zu Beginn des Kapitels gesprochen haben. Bravo. Anzeigen von Feldwerten und Seitenlayouts je nach Profil Bevor wir unser Sicherheits- und Freigabemodell gründlich testen, sollten wir die bisher geleistete Arbeit nutzen, um die Gebrauchstauglichkeit unserer Anwendung weiter zu erhöhen und gleichzeitig die Datenintegrität zu verbessern. Irrelevante Daten wirken sich negativ auf Gebrauchstauglichkeit und Datenintegrität aus. Je weniger irrelevante Daten wir den Benutzern anzeigen, desto besser für alle. Irrelevante Daten können nicht nur verwirrend sein und die Effizienz eines Benutzers senken, sondern sie erhöhen auch die Wahrscheinlichkeit, dass der Benutzer falsche Daten eingibt. Indem wir unnötige Auswahlmöglichkeiten entfernen, verringern wir das Risiko vermeidbarer Fehler. 235 Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten Wir haben uns zwar schon viele Gedanken über die Gebrauchstauglichkeit unserer Anwendung gemacht, aber es gibt immer Spielraum für Verbesserungen. Wir nehmen hier keine detaillierte Gebrauchstauglichkeitsanalyse vor, aber wir sollten einige kleinere Änderungen durchführen, damit Sie ein Gespür dafür bekommen, wie Sie die Gebrauchstauglichkeit und Datenintegration Ihrer Anwendungen in Zukunft verbessern können. Die Änderungen, die wir vornehmen, betreffen Stellendatensätze. Derzeit werden in allen Stellendatensätzen dieselben Daten angezeigt, auch wenn es einige Einträge auf dem Stellendatensatz gibt, die für Personalbeschaffungsmitarbeiter, die Stellen für andere Abteilungen als die Entwicklungsabteilung anlegen, von keinerlei Nutzen sind. So hat ein Personalbeschaffungsmitarbeiter, der eine Stelle vom Typ "Sr. Financial Analyst" anlegt, keine Verwendung für den Abschnitt "Required Programming Languages" (Erforderliche Programmiersprachen). Ebenso gibt es einige Optionen in Stellendatensätzen, die nichts mit technischen Stellen zu tun haben, beispielsweise die Werte "Human Resources" (Personalbereich) und "Warehousing" (Lagerhaltung) in der Auswahlliste Functional Area (Funktionsbereich). Wäre es nicht günstig, wenn wir zwei Arten von Stellendatensätzen erstellen könnten: eine mit IT-bezogenen Daten für IT-Stellen und eine andere für Nicht-IT-Personal? Glücklicherweise ist das mit Datensatztypen möglich. Mit Datensatztypen können Sie Kategorien von Datensätzen angeben, die unterschiedliche Auswahllistenwerte und Seitenlayouts anzeigen. Sie können Datensatztypen mit Profilen verknüpfen, sodass Sie angeben können, welche Auswahllistenwerte und Seitenlayouts den verschiedenen Benutzertypen auf Datensatzdetailseiten angezeigt werden. Um die oben erörterten Probleme anzugehen, erstellen wir zwei Typen von Stellendatensätzen. Der erste Datensatztyp für Stellen ist für IT-Stellen gedacht und beinhaltet den Abschnitt "Required Programming Languages" (Erforderliche Programmiersprachen) des Seitenlayouts. Außerdem schließen wir alle Optionen in der Auswahlliste Functional Area (Funktionsbereich) aus, mit Ausnahme von "Information Technology" (Informationstechnologie) und "Miscellaneous" (Sonstiges). Der zweite Datensatztyp für Stellen ist für alle Stellen außerhalb des IT-Bereichs gedacht und beinhaltet alle Werte der Auswahlliste Functional Area (Funktionsbereich), weist jedoch nicht den Abschnitt "Required Programming Languages" (Erforderliche Programmiersprachen) auf. Probieren Sie es aus: Erstellen eines Datensatztyps Erstellen wir zunächst einmal den Stellendatensatztyp für standardmäßige Stellen außerhalb des IT-Bereichs. 236 Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten 1. 2. 3. 4. Klicken Sie unter "Setup" auf Erstellen > Objekte. Klicken Sie auf Position (Stelle). Klicken Sie in der Themenliste "Datensatztypen" auf Neu. Geben Sie im Feld Bezeichnung für Datensatztyp den Text Standard Position (Standardstelle) ein. Sobald Sie den Cursor bewegen, wird der Wert des Felds Datensatztypname in Standard_Position geändert. 5. Geben Sie im Feld Beschreibung den Text Record type for all non-IT positions (Datensatztyp für alle Stellen außerhalb des IT-Bereichs) ein. 6. Aktivieren Sie das Kontrollkästchen Aktiv. Unten auf dem Bildschirm werden alle Ihre Profile aufgelistet. Hier können wir auch bestimmen, welche Profile Zugriff auf diesen Datensatztyp haben. Alle sind standardmäßig ausgewählt. 7. Klicken Sie auf Weiter. 8. Belassen Sie das Optionsfeld Gleiches Layout auf alle Profile anwenden ausgewählt und wählen Sie "Position Layout" (Stelle-Layout) in der benachbarten Dropdownliste aus. 9. Klicken Sie auf Speichern. Die Detailseite für den Datensatztyp "Standard Position" (Standardstelle) wird angezeigt. Auf der Seite werden die Auswahllistenfelder angezeigt, die im zugehörigen Seitenlayout des Datensatztyps, "Position Layout" (Stelle-Layout), zu finden sind. 10. Klicken Sie auf Bearbeiten neben dem Feld Functional Area (Funktionsbereich). Da es sich hierbei um den Datensatztyp für alle Stellen außerhalb des IT-Bereichs handelt, sollten wir nun die Option "Information Technology" (Informationstechnologie) aus der Auswahlliste Functional Area (Funktionsbereich) entfernen. 11. Wählen Sie im Feld "Ausgewählte Werte" den Eintrag "Information Technology" (Informationstechnologie) aus und verschieben Sie ihn mithilfe der Pfeile in das Feld "Verfügbare Werte". 12. Belassen Sie die Einstellung für die Dropdownliste Standard auf "Keine" und klicken Sie auf Speichern. Sie haben nun Ihren ersten Datensatztyp erstellt, wobei dieser noch nicht ganz unseren Vorstellungen entsprechend konfiguriert ist. Der Wert "Information Technology" (Informationstechnologie) ist zwar nicht mehr in der Auswahlliste Functional Area (Funktionsbereich) enthalten, jedoch wird nach wie vor der Abschnitt "Required Programming Languages" (Erforderliche Programmiersprachen) angezeigt. Darum kümmern wir uns später, wenn wir die Seitenlayouts für unsere Datensatztypen ändern. Zunächst aber müssen wir einen weiteren Datensatztyp erstellen. 237 Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten 1. 2. 3. 4. Klicken Sie unter "Setup" auf Erstellen > Objekte. Klicken Sie auf Position (Stelle). Klicken Sie in der Themenliste "Datensatztypen" auf Neu. Geben Sie im Feld Bezeichnung für Datensatztyp den Text IT Position (IT-Stelle) ein. Sobald Sie den Cursor bewegen, wird der Wert des Felds Datensatztypname in IT_Position geändert. 5. Im Feld Beschreibung geben Sie Record type for all IT positions (Datensatztyp für alle IT-Stellen) ein. 6. Aktivieren Sie das Kontrollkästchen Aktiv. Wieder werden unten auf dem Bildschirm die Profile Ihrer Organisation aufgelistet, wobei sie diesmal standardmäßig deaktiviert sind. 7. Aktivieren Sie neben den Profilen "Recruiter" (Personalbeschaffungsmitarbeiter) und "Standard Employee" (Standardmitarbeiter) das Kontrollkästchen Für Profil aktivieren. 8. Klicken Sie auf Weiter. Wieder haben wir die Möglichkeit, unterschiedliche Layouts auf die unterschiedlichen Profile anzuwenden. Wir müssen jedoch noch das Seitenlayout für diesen Datensatztyp erstellen, sodass wir die Seitenlayouts erst später anwenden können. 9. Belassen Sie das Optionsfeld Gleiches Layout auf alle Profile anwenden ausgewählt und wählen Sie "Position Layout" (Stelle-Layout) in der benachbarten Dropdownliste aus. 10. Klicken Sie auf Speichern. Die Detailseite für den Datensatztyp "IT Position" (IT-Stelle) wird angezeigt. 11. Klicken Sie auf Bearbeiten neben dem Feld Functional Area (Funktionsbereich). Da es sich hierbei um den Datensatztyp für alle IT-Stellen handelt, sollten wir nun alle Optionen mit Ausnahme von "Information Technology" (Informationstechnologie) und "Miscellaneous" (Sonstiges) aus der Auswahlliste Functional Area (Funktionsbereich) entfernen. 12. Verschieben Sie die Werte mithilfe der Pfeile, bis im Feld "Ausgewählte Werte" nur noch die Einträge "Information Technology" (Informationstechnologie) und "Miscellaneous" (Sonstiges) enthalten sind. 13. Wählen Sie in der Dropdownliste Standard den Eintrag "Information Technology" (Informationstechnologie) aus. 14. Klicken Sie auf Speichern. 238 Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten Beide Datensatztypen sind jetzt eingerichtet und enthalten jeweils nicht die Auswahllistenwerte, die auch nicht enthalten sein sollen. Nun sollten wir die Seitenlayouts für diese Datensatztypen konfigurieren. Wir benötigen für jeden Datensatztyp ein separates Seitenlayout. Glücklicherweise haben wir schon das Seitenlayout für das Objekt "Position" (Stelle), "Position Layout" (Stelle-Layout), sodass wir nur noch ein weiteres Layout erstellen müssen. 1. 2. 3. 4. Klicken Sie unter "Setup" auf Erstellen > Objekte. Klicken Sie auf Position (Stelle). Klicken Sie in der Themenliste "Seitenlayouts" auf Neu. Wählen Sie in der Dropdownliste Bestehendes Seitenlayout den Eintrag "Position Layout" (Stelle-Layout). Durch die Auswahl des bestehenden Seitenlayouts wird eine Kopie erstellt, anhand der wir unser neues Seitenlayout erstellen können. So müssen wir das Layout nicht komplett neu erstellen. 5. Geben Sie im Feld Seitenlayoutname den Text IT Position Layout (IT-Stellen-Layout) ein und klicken Sie auf Speichern. Wir haben nun unser neues Seitenlayout für IT-Stellen erstellt. Nun sollten wir sowohl unser neues als auch das ursprüngliche Seitenlayout bearbeiten, sodass darin jeweils die erforderlichen Daten angezeigt werden. Da wir uns im Seitenlayout für IT-Stellen befinden, beginnen wir hiermit. Diese Seite weist bereits den Abschnitt "Required Programming Languages" (Erforderliche Programmiersprachen) auf, sodass wir diesen nicht hinzufügen müssen. Wir müssen jedoch das Feld Datensatztyp im Seitenlayout hinzufügen, damit die Benutzer sofort wissen, welche Art von Stellendatensatz sie gerade bearbeiten. 6. Wählen Sie in der Palette die Kategorie "Felder" aus und ziehen Sie dann das Feld Datensatztyp direkt unter das Feld Last modified by (Zuletzt geändert von). 7. Klicken Sie auf Speichern. Bearbeiten wir nun das Seitenlayout für "Position Layout" (Stelle-Layout). Es handelt sich hierbei um das Layout, das wir für den Datensatztyp "Standard Position" (Standardstelle) verwenden, demzufolge sollten wir den Abschnitt "Required Languages" (Erforderliche Sprachen) entfernen. 1. Klicken Sie unter "Setup" auf Erstellen > Objekte. 2. Klicken Sie auf Position (Stelle). 3. Klicken Sie in der Themenliste "Seitenlayouts" neben "Position Layout" (Stelle-Layout) auf Bearbeiten. 239 Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten 4. Klicken Sie auf in der rechten oberen Ecke des Abschnitts "Required Languages" (Erforderliche Sprachen). Wir möchten auch das Feld Datensatztyp zu diesem Seitenlayout hinzufügen. 5. Wählen Sie in der Palette die Kategorie "Felder" aus und ziehen Sie dann das Feld Datensatztyp direkt unter das Feld Last modified by (Zuletzt geändert von). 6. Klicken Sie auf Speichern. Das war es auch schon fast! Wir müssen nur noch eine einfache Aufgabe durchführen: und zwar müssen wir unsere Seitenlayouts für Stellen noch unseren neuen Datensatztypen zuweisen. Das Zuweisen von Seitenlayouts ist einfach, da Sie sämtliche Zuweisungen für ein Objekt auf einer einzelnen Seite vornehmen können. 1. Klicken Sie unter "Setup" auf Erstellen > Objekte. 2. Klicken Sie auf Position (Stelle). 3. Klicken Sie entweder in der Themenliste "Seitenlayouts" oder in der Themenliste "Datensatztypen" auf Seitenlayoutzuordnung. 4. Klicken Sie auf Zuordnung bearbeiten. In einer Tabelle werden die Zuweisungen für das Stellenseitenlayout für die verschiedenen Kombinationen der Datensatztypen für Profile und Stellen dargestellt. Wählen Sie in der Tabelle die Kombinationen aus den Datensatztypen für das Profil und die Stelle aus, die Sie ändern möchten. Verwenden Sie UMSCHALT+Klicken, um einen Zellenbereich auszuwählen, und STRG+Klicken, um mehrere Zellen einzeln auszuwählen. Über die Dropdownliste über der Tabelle können Sie das Seitenlayout angeben, dem Sie Ihre Auswahl erneut zuweisen möchten. 5. Klicken Sie auf die Spaltenüberschrift "IT Position" (IT-Stelle). Hierdurch werden alle Werte in der Spalte für den Datensatztyp "IT Position" (IT-Stelle) ausgewählt. 6. Wählen Sie "IT Position Layout" (IT-Stellen-Layout) in der Dropdownliste Zu verwendendes Seitenlayout aus. 7. Klicken Sie auf Speichern. Ihre Datensatztypen können nun verwendet werden! Zusammenführung Herzlichen Glückwunsch! Wir haben soeben alle unsere erforderlichen Sicherheits- und Freigabeeinstellungen implementiert, indem wir zuerst den Zugriff auf Objektebene über Profile und Berechtigungssätze definiert haben, anschließend den Zugriff auf Feldebene 240 Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten mithilfe der Feldebenensicherheit gesichert haben und schließlich den Zugriff auf Datensatzebene mit unternehmensweiten Standards, Rollenhierarchien, Freigaberegeln und manueller Freigabe definiert haben. Wir haben die Unterschiede bei der Sicherheit auf Objektebene, Feldebene und Datensatzebene kennengelernt und erfahren, wie sich durch die Kombination aus Profilen, Berechtigungssätzen und Rollen Objekte und Registerkarten bestimmen lassen, die ein Benutzer möglicherweise verwenden kann, und Datensätze erstellen lassen, die der Benutzer tatsächlich aufrufen und bearbeiten kann. Wir haben auch Möglichkeiten kennengelernt, mit denen andere profilbasierte Funktionen wie Datensatztypen eingerichtet werden können, um sowohl unsere Datenintegrität als auch die Benutzerfreundlichkeit unserer Anwendung zu verbessern. Probieren wir das alles nun einmal aus. Zu diesem Zweck müssen wir zunächst einmal eine Anzahl an Benutzern definieren und anschließend verschiedene Vorgänge mit diesen durchspielen, indem wir Datensätze erstellen und sehen wer worauf Zugriff hat. Probieren Sie es aus: Erstellen von mehr Benutzern Um unsere Personalbeschaffungsanwendung wirklich auf Herz und Nieren testen zu können, müssen wir zunächst die restlichen Benutzer definieren und ein paar davon einigen Personalbeschaffungsdatensätzen zuweisen, die wir vorhin importiert haben. Anmerkung: Wenn Sie die Personalbeschaffungsanwendung in einer Organisation mit Developer Edition implementieren, können Sie neben dem Systemadministrator-Benutzer nur mit wenigen weiteren Benutzern experimentieren. Sie können zwar alle hier beschriebenen Anwendungsfälle ausprobieren, aber Sie müssen das Profil, die Berechtigungssätze und die Rolle des Benutzers jeweils für die einzelnen Anwendungsfälle, an denen Sie arbeiten, aktualisieren. Tabelle36: Zusammenfassung der erforderlichen Berechtigungen: Profil "Recruiter" (Personalbeschaffungsmitarbeiter) und "Standard Employee" (Standardmitarbeiter) Recruiter Standard Employee (Personalbeschaffungsmitarbeiter) (Standardmitarbeiter) Position (Stelle) Lesen, Erstellen, Bearbeiten Candidate (Bewerber) Lesen, Erstellen, Bearbeiten Lesen (nicht für Mindestgehalt/Höchstgehalt) 241 Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten Recruiter Standard Employee (Personalbeschaffungsmitarbeiter) (Standardmitarbeiter) Job Application (Stellenbewerbung) Lesen, Erstellen, Bearbeiten Review Lesen, Erstellen, Bearbeiten Job Posting (Stellenausschreibung) Lesen, Erstellen, Bearbeiten, Löschen Employment Website (Jobbörse) Lesen, Erstellen, Bearbeiten, Löschen Lassen Sie uns gemeinsam einen Personalbeschaffungsmitarbeiter erstellen: Mario Ruiz. Anschließend können Sie die anderen Benutzer alleine fertigstellen. 1. Klicken Sie unter "Setup" auf Benutzer verwalten > Benutzer. 2. Klicken Sie auf Neuer Benutzer. 3. Füllen Sie die Pflichtfelder auf der Bearbeitungsseite für Benutzer aus. Geben Sie wie bei Cynthia Capobianco im Feld E-Mail eine reale E-Mail-Adresse ein, auf die Sie Zugriff haben, und im Feld Benutzername eine erfundene E-Mail-Adresse (z. B. [email protected]). 4. Wählen Sie in der Dropdownliste Profil den Eintrag "Recruiter" (Personalbeschaffungsmitarbeiter) aus. 5. Klicken Sie auf Speichern. Nachdem wir nun den Benutzer Mario Ruiz erstellt haben, geben wir ihm die Inhaberschaft über die Stelle "DBA" und die zugehörigen Datensätze für Stellenbewerbungen und Bewerber. 6. Klicken Sie auf die Registerkarte "Positions" (Stellen). 7. Wählen Sie in der Dropdownliste Anzeigen die Option "Alle" aus und klicken Sie dann auf Los. Tipp: Wenn Sie in dieser Ansicht mehr als nur das Feld Position Title (Stellentitel) sehen möchten, klicken Sie neben der Dropdownliste Ansicht auf Bearbeiten und fügen Sie im Abschnitt "Anzuzeigende Felder auswählen" weitere Felder hinzu. 8. Klicken Sie auf DBA. 9. Klicken Sie neben dem Feld Inhaber auf Ändern. 10. Klicken Sie auf das Nachschlagesymbol 242 und wählen Sie "Mario Ruiz" aus. Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten 11. Klicken Sie auf Speichern. 12. Klicken Sie in der Themenliste "Job Applications" (Stellenbewerbungen) auf den Namen der aufgelisteten Stellenbewerbung und wiederholen Sie die Schritte 8–10. 13. Klicken Sie auf die ID des zugehörigen Bewerbers auf der Detailseite für die Stellenbewerbung und wiederholen Sie die Schritte 8–10. Anmerkung: Als Sie Datensätze aus den CSV-Dateien für Bewerber, Stellenbewerbungen und Stellen importierten, waren Sie vermutlich nicht als Personalbeschaffungsmanager oder einer dieser Rolle nachgeordnete Position angemeldet. Wir haben Freigaberegeln erstellt, mit denen die Datensätze, deren Inhaber die Rolle "Recruiting Manager" (Personalbeschaffungsmanager) und die nachgeordneten Positionen sind, freigegeben werden, weshalb Sie nun die Inhaberschaft für den Rest dieser Datensätze auf einen Personalbeschaffungsmanager oder eine nachgeordnete Position (Phil Katz oder Mario Ruiz) übertragen sollten. Erstellen Sie nun die anderen Benutzer in der Übersicht der Benutzerprofilzuweisungen auf Seite 243 und weisen Sie ihnen die in der Tabelle aufgeführten Profile zu. Da Mario der einzige Personalbeschaffungsmitarbeiter ist, ist er der einzige Benutzer, dem wir das Profil "Recruiter" (Personalbeschaffungsmitarbeiter) zuweisen. Alle anderen Benutzer sollten das Profil "Standard Employee" (Standardmitarbeiter) haben. Tabelle37: Übersicht der Benutzerprofilzuweisungen Benutzer Profil Phil Katz Recruiter (Personalbeschaffungsmitarbeiter) Megan Smith Standard Employee (Standardmitarbeiter) Craig Kingman Standard Employee (Standardmitarbeiter) Tom Zales Standard Employee (Standardmitarbeiter) Melissa Lee Standard Employee (Standardmitarbeiter) Ben Stuart Standard Employee (Standardmitarbeiter) Andy Macrola Standard Employee (Standardmitarbeiter) Amy Lojack Standard Employee (Standardmitarbeiter) Frank Linstrom Standard Employee (Standardmitarbeiter) Andrew Goldberg Standard Employee (Standardmitarbeiter) Harry Potterham Standard Employee (Standardmitarbeiter) Flash Stevenson Standard Employee (Standardmitarbeiter) 243 Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten Benutzer Profil Clark Kentman Standard Employee (Standardmitarbeiter) Cynthia Capobianco Standard Employee (Standardmitarbeiter) Die meisten unserer Benutzer haben das gleiche Profil. Mit dem Profil "Standard Employee" (Standardmitarbeiter) können diese Benutzer in unserer Personalbeschaffungsanwendung nur Stellen anzeigen (mit Ausnahme bestimmter Felder). Doch was ist mit den Benutzern, die mehr Informationen abrufen müssen, wie etwa Einstellungs-Manager Ben Stuart? An dieser Stelle kommen die Berechtigungssätze ins Spiel, die wir unter Einführen von Berechtigungssätzen auf Seite 188 erstellt haben. Nachstehend folgt eine kurze Zusammenfassung der Berechtigungen, die wir den Berechtigungssätzen "Hiring Manager" (Einstellungs-Manager) und "Interviewer" (Gesprächsleiter) zugewiesen haben. Tabelle38: Zusammenfassung der erforderlichen Berechtigungen: Berechtigungssätzen "Hiring Manager" (Einstellungs-Manager) und "Interviewer" (Gesprächsleiter) Hiring Manager (Einstellungs-Manager) Interviewer (Gesprächsleiter) Position (Stelle) Lesen, Erstellen, Bearbeiten* Lesen (nicht für Mindestgehalt/Höchstgehalt) Candidate (Bewerber) Lesen* (nicht für SSN) Lesen* (nicht für SSN) Job Application (Stellenbewerbung) Lesen, Bearbeiten (nicht für Nachschlagefelder) Lesen* Review Lesen, Erstellen, Bearbeiten Lesen**, Erstellen, Bearbeiten** Job Posting (Stellenausschreibung) Lesen*, Erstellen*, Bearbeiten* Employment Website (Jobbörse) Lesen * Nur für die Datensätze, die mit einer Stelle verknüpft sind, der der Einstellungs-Manager/Gesprächsleiter zugewiesen wurde ** Nur für die Datensätze, deren Inhaber der Gesprächsleiter ist Da Ben Einstellungs-Manager für die Softwareentwicklung ist, muss er beispielsweise in der Lage sein, neue Stellen zu erstellen oder einen Bewerber und dessen Bewerbung anzuzeigen. 244 Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten Dazu weisen wir Ben den Berechtigungssatz "Hiring Manager" (Einstellungs-Manager) zu, sodass er diese Aufgaben erledigen kann. 1. Klicken Sie unter "Setup" auf Benutzer verwalten > Benutzer. 2. Klicken Sie auf den Namen von Ben Stuart. 3. Blättern Sie auf der Benutzerdetailseite zur Themenliste "Berechtigungssatzzuweisungen" und klicken Sie auf Zuweisungen bearbeiten. 4. Wählen Sie im Feld "Verfügbare Berechtigungssätze" den Eintrag "Hiring Manager" (Einstellungs-Manager) aus und verschieben Sie ihn mithilfe der Pfeile in das Feld "Aktivierte Berechtigungssätze". 5. Klicken Sie auf Speichern. Wiederholen Sie diese Schritte für die anderen Einstellungs-Manager: Andy Macrola, Amy Lojack und Clark Kentman. Nachdem wir allen Einstellungs-Managern den richtigen Berechtigungssatz zugewiesen haben, beschäftigen wir uns nun mit den Gesprächsleitern. Mario hat für nächste Woche ein Bewerbungsgespräch mit einem Bewerber angesetzt, und Ben hat zwei seiner Entwickler gebeten, das Gespräch mit dem Bewerber zu führen. Weisen Sie Melissa Lee und Craig Kingman den Berechtigungssatz "Interviewer" (Gesprächsleiter) zu, sodass sie die Stelle und die Bewerbung anzeigen und Reviews zum Bewerbungsgespräch abgeben können. Beyond the Basics Wussten Sie, dass Sie steuern können, wer welche Benutzer in der Organisation anzeigen kann? Beispiel: Personalbeschaffungsmitarbeiter, Einstellungs-Manager und Gesprächsleiter sollen in der Lage sein, sich gegenseitig anzuzeigen und miteinander zusammenzuarbeiten, dies soll jedoch nicht für Standardmitarbeiter gelten. Sie können die organisationsweite Standardeinstellung für das Benutzerobjekt auf "Privat" festlegen und Freigaberegeln erstellen, die es Personalbeschaffungsmitarbeitern, Einstellungs-Managern und Gesprächsleitern ermöglichen, sich gegenseitig in der Personalbeschaffungsanwendung anzuzeigen und miteinander zusammenzuarbeiten, es jedoch nicht zulassen, dass Standardmitarbeiter diese Benutzer anzeigen können und umgekehrt. Weitere Informationen finden Sie in der Salesforce-Hilfe unter "Benutzerfreigabe – Übersicht" . 245 Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten Probieren Sie es aus: Überprüfen, ob alles funktioniert Nun, da wir unseren Benutzern Daten zugewiesen haben, sollten wir unsere Personalbeschaffungsanwendung durchgehen, um zu sehen, wie die Sicherheits- und Freigabeberechtigungen, die wir in diesem Kapitel definiert haben, in der Praxis funktionieren: 1. Melden Sie sich zuerst als Mario Ruiz an. Vergewissern Sie sich, dass er alle Stellen, alle Bewerber und alle Stellenbewerbungen sehen und bearbeiten kann. Vergewissern Sie sich, dass die Schaltfläche Neu für alle Objekte in der Personalbeschaffungsanwendung zur Verfügung steht. Vergewissern Sie sich, dass er Stellen mit jedem der beiden Typen von Stellendatensätzen erstellen kann. 2. Melden Sie sich als Melissa Lee an. Vergewissern Sie sich, dass sie neue Stellen sehen kann, dass jedoch die Schaltfläche Neu nicht angezeigt wird. Vergewissern Sie sich, dass sie keine Bewerber, Stellenbewerbungen, Reviews und Jobbörsen sehen kann. 3. Melden Sie sich als Ben Stuart an. Vergewissern Sie sich, dass er Stellen sehen kann und dass die Schaltfläche Neu angezeigt wird. Vergewissern Sie sich, dass er Jobbörsen anzeigen, nicht jedoch bearbeiten kann. Vergewissern Sie sich, dass er keine Bewerber sehen kann. Vergewissern Sie sich, dass er Stellenbewerbungen anzeigen, nicht jedoch die zugehörigen Nachschlagefelder bearbeiten kann. Vergewissern Sie sich, dass er Reviews sehen kann und dass die Schaltfläche Neu angezeigt wird. (Wie sehen die Reviews aus? Kann er die Namen der Bewerber und Stellenbewerbungen auf den Reviews sehen?) 4. Melden Sie sich erneut als Mario Ruiz an. Lassen sie ihn manuell Lese-/Schreibzugriff für die Stelle „DBA" für Ben freigeben. Lassen Sie ihn manuell Lesezugriff auf den Bewerber für Melissa und Ben freigeben. Lassen Sie ihn manuell Lese-/Schreibzugriff auf die Stellenbewerbung für Melissa und Ben freigeben. 5. Melden Sie sich erneut als Melissa Lee an. Vergewissern Sie sich, dass sie nun den Bewerber und die Stellenbewerbung sehen kann, die Mario soeben für sie freigegeben hat, dass jedoch die Sozialversicherungsnummer des Bewerbers für sie nicht sichtbar ist. Lassen Sie sie einen Review für den betreffenden Bewerber erstellen. 6. Melden Sie sich erneut als Ben Stuart an. Vergewissern Sie sich, dass er die Stelle "Documentation Writer" bearbeiten kann. Vergewissern Sie sich, dass er Melissas Review lesen und aktualisieren kann. Vergewissern Sie sich, dass er den Status der Stellenbewerbung auf Extend an Offer (Angebot unterbreiten) aktualisieren kann. Wie haben wir abgeschnitten? Wenn alle diese Anwendungsfälle korrekt funktionierten, haben Sie soeben erfolgreich Sicherheit und Freigabe für unsere Personalbeschaffungsanwendung 246 Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten eingerichtet. Wenn ein Anwendungsfall nicht funktionierte, überprüfen Sie Rolle, Profil, Berechtigungssatz und Freigaberegeln der einzelnen Benutzer anhand der Angaben in der Tabelle Zusammenfassung der erforderlichen Berechtigungen: Profil "Recruiter" (Personalbeschaffungsmitarbeiter) und "Standard Employee" (Standardmitarbeiter). Einer wichtigen sicherheitsrelevanten Frage müssen wir noch nachgehen: Wer soll dafür zuständig sein, den Betrieb der Personalbeschaffungsanwendung und die zugehörigen Daten zu überwachen, wenn die Anwendung live geschaltet wird? Delegieren der Datenverwaltung Wie bei fast allen Force.com-Anwendungen ist bei unserer Personalbeschaffungsanwendung keine mühsame laufende Verwaltung oder eine ständige Überwachung des Alltagsbetriebs erforderlich. Nach ihrer Bereitstellung funktioniert die Anwendung einfach. Von Zeit zu Zeit jedoch gibt es Entscheidungen oder Probleme, die menschliches Eingreifen erfordern und gewisse manuelle Verwaltungstätigkeiten erforderlich machen, wie beispielsweise: • • • • Ein Einstellungs-Manager tritt in den Ruhestand und hat vierzig offene Stellen, die auf einen anderen Manager übertragen werden müssen. Ein aktueller Benutzer der Personalbeschaffungsanwendung benötigt sofortigen Zugriff auf private Daten, deren Inhaber ein anderer Benutzer ist, der sich gerade im Urlaub befindet. Doppelte Datensätze haben sich in der Personalbeschaffungsanwendung angesammelt und müssen entfernt werden. Es wurde gerade ein neuer Mitarbeiter eingestellt, der Zugriff auf die Personalbeschaffungsanwendung benötigt. In diesen Situationen kann es erforderlich sein, dass ein Mitarbeiter die Sicherheit- und Freigabeeinstellungen außer Kraft setzt, die wir soeben erstellt haben. Welche Personen sollten über derartige Kompetenzen in unserer Anwendung verfügen und wie können diese Kompetenzen gewährt werden? Offensichtlich kann der Salesforce-Hauptadministrator Ihres Unternehmens praktisch jedes Problem behandeln, auf das die Benutzer im Umgang mit Salesforce stoßen könnten. Hauptadministratoren wird das Profil "Systemadministrator" zugewiesen, das automatisch mehrere globale administrative Berechtigungen gewährt, darunter: • • "Alle Daten anzeigen" – Alle Daten anzeigen, die sich im Besitz anderer Benutzer befinden "Alle Daten modifizieren" – Alle Daten bearbeiten, deren Inhaber andere Benutzer in Ihrer Organisation sind, Datensätze per Massenvorgang aktualisieren und löschen sowie das Löschen von Datensätzen rückgängig machen, die von anderen Benutzern gelöscht wurden 247 Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten • • "Anwendung anpassen" – Praktisch alles in Salesforce anpassen, von Seitenlayouts bis hin zum Datenmodell "Benutzer verwalten" – Benutzer hinzufügen und entfernen, Kennwörter zurücksetzen, Berechtigungen erteilen usw. Bei kleineren Unternehmen ist ein einzelner Administrator sinnvoll, der als Anlaufstelle für alle Salesforce-Probleme fungiert. Für mittlere und große Unternehmen jedoch ist es nicht praktikabel, alle Salesforce-Zuständigkeiten einer einzigen Person zuzuweisen, insbesondere wenn man bedenkt, dass ein Unternehmen seinen gesamten Geschäftsbetrieb in der Cloud abwickeln kann, wobei für die verschiedenen betrieblichen Anforderungen unterschiedliche Force.com-Anwendungen verwendet werden. Das kann auf Dutzende von Anwendungen und Hunderte oder Tausende Benutzer hinauslaufen. Ihr Salesforce-Administrator würde wahnsinnig werden, wenn er nicht durch andere Mitarbeiter bei der Verwaltung unterstützt wird. Andererseits jedoch erhöht jede administrative Berechtigung, die Sie erteilen, das Risiko von Datenschutzverletzungen. Daher müssen Sie den Umfang des gewährten Zugriffs genau steuern können. Um sowohl die geistige Gesundheit Ihres Administrators als auch die Sicherheit Ihres Unternehmens aufrecht zu erhalten, bietet Ihnen die Force.com-Plattform zwei Methoden zur raschen Delegation von eingeschränktem Datenverwaltungszugriff: Objektebenenberechtigungen und Gruppen für die delegierte Verwaltung. Überschreiben der Freigabe durch Objektberechtigungen Ob Sie es glauben oder nicht: Wir haben vor ein paar Seiten bereits einige Verwaltungsaufgaben delegiert, als wir den Berechtigungssatz für Personalbeschaffungsmitarbeiter erstellten. Wenn Sie zu dem betreffenden Abschnitt zurückblättern, sehen Sie, dass wir die Objektberechtigungen "Alle anzeigen" und "Alle ändern" für Stellenausschreibungen und Jobbörsen ausgewählt haben. Wie zu erwarten, gestattet "Alle anzeigen" den Benutzern, alle Datensätze des betreffenden Objekts anzuzeigen, während "Alle ändern" den Benutzern gestattet, alle Datensätze des betreffenden Objekts zu lesen, zu bearbeiten und zu löschen. Worin unterscheidet sich also die Auswahl dieser Berechtigungen von der Auswahl der Einzelberechtigungen "Lesen", "Bearbeiten" und "Löschen"? Und wie unterstützen die Berechtigungen "Alle anzeigen" und "Alle ändern" Sie beim Delegieren der Verwaltung? Das Wort, auf das es hier ankommt, ist "alle". Wenn Sie die Berechtigung "Alle anzeigen" oder "Alle ändern" für ein Objekt in einem Profil oder einem Berechtigungssatz zuweisen, gewähren Sie allen zugehörigen Benutzern Zugriff auf alle Datensätze des betreffenden Objekts, unabhängig von den Freigabe- und Sicherheitseinstellungen. Im Grunde ignorieren die Berechtigungen "Alle anzeigen" und "Alle ändern" das Freigabemodell, die Rollenhierarchie 248 Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten und die Freigaberegeln, die bei den Berechtigungen "Lesen", "Bearbeiten" und "Löschen" eingehalten werden. Außerdem bietet "Alle ändern" dem Benutzer die Möglichkeit, Datensätze dieses speziellen Objekts per Massenvorgang zu übertragen, zu aktualisieren und zu löschen. Außerdem kann der Benutzer derartige Datensätze selbst dann genehmigen, wenn er kein zugewiesener Genehmiger ist. Diese Aufgaben sind typischerweise Administratoren vorbehalten, aber da wir mit "Alle anzeigen" und "Alle ändern" das System selektiv überschreiben können, können Zuständigkeiten, die üblicherweise dem Administrator vorbehalten sind, unter genauester Kontrolle an andere Benutzer delegiert werden. Anmerkung: Mehr zur Datensatzgenehmigung erfahren Sie im nächsten Kapitel. Andere Verwaltungstätigkeiten, wie beispielsweise Massenaktualisierungen, werden in der Salesforce-Online-Hilfe behandelt. Sie fragen sich vielleicht, ob die Berechtigungen "Alle anzeigen" und "Alle ändern" Ähnlichkeit zu den globalen Berechtigungen "Alle Daten anzeigen" und "Alle Daten modifizieren" aufweisen. In der Tat ignorieren alle diese Berechtigungen das Freigabemodell, die Hierarchie und die Freigaberegeln. Behalten Sie jedoch im Hinterkopf, dass Objektberechtigungen nur für Datensätze eines bestimmten Objekts gelten, wohingegen globale Berechtigungen für Datensätze jedes beliebigen Objekts in Ihrer Organisation gelten. Als Faustregel lässt sich Folgendes festlegen: Wenn globale administrative Berechtigungen zu großzügig für einen bestimmten Benutzer sind, verwenden Sie stattdessen die Objektberechtigungen, um den Datenzugriff für die einzelnen Objekte zu steuern. Da wir bereits bei der Erstellung des Berechtigungssatzes für Personalbeschaffungsmitarbeiter Objektberechtigungen angewendet haben, brauchen wir den Vorgang hier nicht mehr durchzugehen. Sie können sich jedoch sicherlich andere Umstände vorstellen, unter denen die Berechtigungen "Alle Anzeigen" und "Alle ändern" für diese Anwendung nützlich sein könnten. Beispielsweise haben wir bereits erwähnt, dass es bestimmte Gesetze geben könnten, die vorschreiben, das Ihr Unternehmen alle Stellen-, Bewerber- und Stellenbewerbungsdatensätze für eine bestimmte Zeit aufbewahrt. Dieses Gesetz ist der Grund dafür, warum wir uns entschieden haben, den Personalbeschaffungsmitarbeitern nicht die Berechtigung zum Löschen dieser Datensätze zu erteilen. Nach Ablauf der gesetzlich vorgeschriebenen Aufbewahrungspflicht könnte Ihr Unternehmen eine externe Firma, die auf Datenbereinigung spezialisiert ist, damit betrauen, alte Personalbeschaffungsdaten aus dem System zu entfernen. Indem Sie einen Berechtigungssatz mit der Objektberechtigung "Alle ändern" für Stellen, Bewerber und Stellenbewerbungen erstellen, können Sie dieser externen Firma schnell die erforderlichen Berechtigungen erteilen, die sie braucht, um diese Aufgabe zu erledigen, ohne andere Unternehmensdaten offenzulegen. 249 Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten Gruppen für die delegierte Verwaltung Wir haben soeben gesehen, wie die Objektberechtigungen "Alle anzeigen" und "Alle ändern" verwendet werden können, um den Hauptadministrator erheblich zu entlasten. Es gibt jedoch noch einige andere Verwaltungsaufgaben, die Sie vielleicht gerne delegieren möchten, aber mit Objektberechtigungen nicht delegieren können. Beispielsweise möchten Sie den Hauptadministrator möglicherweise nicht damit belasten, jeden neuen Mitarbeiter manuell zu Salesforce hinzuzufügen oder alle vergessenen Benutzerkennwörter zurückzusetzen. Außerdem kann sich im Laufe der Zeit herausstellen, dass Ihr Unternehmen ein oder zwei weitere Felder für Review-Datensätze oder einen neuen Datensatztyp für Stellen braucht. Manchmal ist es effizienter, solche grundlegenden Verwaltungsaufgaben an die Mitglieder einer Gruppe zu delegieren, damit sich der Hauptadministrator auf andere Dinge konzentrieren kann. Eine Gruppe für die delegierte Verwaltung ist eine Gruppe von Benutzern, die eigentlich keine Administratoren sind, die jedoch über begrenzte administrative Berechtigungen verfügen. Dazu können folgende Berechtigungen gehören: • • • • Erstellen und Bearbeiten von Benutzern sowie Zurücksetzen von Kennwörtern für Benutzer in angegebenen Rollen und allen untergeordneten Rollen Zuordnen von Benutzern zu bestimmten Profilen Anmelden als Benutzer, der einem Administrator Anmeldezugriff gewährt hat Verwalten von benutzerdefinierten Objekten, die vom Hauptadministrator erstellt wurden Definieren wir eine Gruppe für die delegierte Verwaltung in unserer Personalbeschaffungsanwendung, die es ihren Mitgliedern ermöglicht, die Benutzer der Personalbeschaffungsanwendung zu verwalten und Anpassungen an den benutzerdefinierten Objekten der Anwendung vorzunehmen, ohne Zugriff auf alle anderen Daten in Salesforce zu haben. Probieren Sie es aus: Definieren der Verwaltungsgruppe für Personalbeschaffungsmanager Zunächst erstellen wir die Gruppe für die delegierte Verwaltung: 1. Klicken Sie unter "Setup" auf Sicherheitssteuerungen > Delegierte Verwaltung. 2. Klicken Sie auf Neu. 250 Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten 3. Geben Sie im Textfeld Name für delegierte Gruppe den Text Recruiting App Admins (Administratoren für Personalbeschaffungsanwendung) ein. 4. Klicken Sie auf der Detailseite "Delegierte Gruppe" auf Bearbeiten. 5. Aktivieren Sie das Kontrollkästchen Gruppe für Anmeldezugriff aktivieren. Mit der Option Gruppe für Anmeldezugriff aktivieren können sich die delegierten Administratoren in dieser Gruppe als Benutzer anmelden, der ausdrücklich für einen bestimmten Zeitraum Administratoren Anmeldezugriff gewährt hat. Dies ist nützlich zur Fehlerbehebung bei Problemen, auf die der Benutzer stoßen könnte. 6. Klicken Sie auf Speichern. Auf der Detailseite "Delegierte Gruppe" können wir die Themenliste "Delegierte Administratoren" verwenden, um die Benutzer anzugeben, die in diese delegierte Gruppe aufgenommen werden sollen. 7. Klicken Sie in der Themenliste "Delegierte Administratoren" auf Hinzufügen. 8. Geben Sie im ersten leeren Textfeld Phil Katz, den Personalbeschaffungsmanager bei Universal Containers, ein. Anmerkung: Mitglieder von Gruppen für die delegierte Verwaltung müssen über die Berechtigung "Setup und Konfiguration anzeigen" verfügen. Jede Gruppe für die delegierte Verwaltung kann bis zu fünf Mitglieder umfassen, aufgrund des Schwerpunkts unserer Anwendung nehmen wir jedoch nur den Personalbeschaffungsmanager in diese Gruppe auf. 9. Klicken Sie auf Speichern. Wir befinden uns nun wieder auf der Detailseite "Delegierte Gruppe". Über die Themenliste "Benutzeradministration" können wir angeben, welche Arten von Benutzern von dieser Gruppe verwaltet werden können. 10. Klicken Sie in der Themenliste "Benutzeradministration" auf Hinzufügen. Anstatt einzelne Benutzer für die Verwaltung auszuwählen, wählen wir sie anhand ihrer Rollen aus. Für jede Rolle, die wir auswählen, werden automatisch auch die zugehörigen nachgeordneten Rollen ausgewählt. (Gehen Sie zurück zu Rollenhierarchie bei Universal Containers auf Seite 219, wenn Sie sich nicht mehr erinnern können, welche Rollen nachgeordnet sind.) Die Mitglieder dieser Gruppe sollen zwar nicht die Salesforce-Accounts von leitenden Mitarbeitern bei Universal Containers verwalten können, die Gruppe sollte jedoch in der Lage sein, die Personalbeschaffungsanwendung für 251 Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten Recruiter/Personalbeschaffungsmitarbeiter, Directors, Manager und die ihnen unterstellten Mitarbeiter zu verwalten. 11. Geben Sie in den Feldern "Rollen und nachgeordnete Positionen" folgende Werte ein: • • • • Recruiter (Personalbeschaffungsmitarbeiter) Director Product Management Director QA SW Dev Manager 12. Klicken Sie auf Speichern. Über die Themenliste "Zuweisbare Profile" können wir angeben, welche Profile diese Gruppe den von ihnen verwalteten Benutzern zuweisen kann. Beachten Sie, dass delegierte Administratoren diese Profile nicht bearbeiten können; sie können ihnen lediglich Benutzer zuweisen. 13. Klicken Sie in der Themenliste "Zuweisbare Profile" auf Hinzufügen. 14. Geben Sie in den Feldern für "Zuweisbare Profile" Recruiter (Personalbeschaffungsmitarbeiter) und Standard Employee (Standardmitarbeiter) ein. 15. Klicken Sie auf Speichern. Über die Themenliste "Administration von benutzerdefinierten Objekten" können wir angeben, welche benutzerdefinierten Objekte von den delegierten Administratoren dieser Gruppe verwaltet werden können. Die delegierten Administratoren können praktisch jeden Aspekt des benutzerdefinierten Objekts verwalten. Sie können beispielsweise Seitenlayouts bearbeiten, Felder hinzufügen und sogar das Objekt löschen. Sie sind jedoch nicht in der Lage, Berechtigungen für das benutzerdefinierte Objekt festzulegen, Workflow und Freigaben für das Objekt zu verwalten und Beziehungen zu anderen Objekten zu bearbeiten. 16. Klicken Sie in der Themenliste "Administration von benutzerdefinierten Objekten" auf Hinzufügen. Geben wir den Mitgliedern dieser Gruppe von delegierten Administratoren (in diesem Fall: Phil) die Fähigkeit zur Bearbeitung des Objekts "Position" (Stelle). Wenn nun ein weiteres Feld zu Stellendatensätzen hinzugefügt werden muss oder Einstellungs-Manager irgendwann einen weiteren Datensatztyp benötigen, kann Phil das erledigen. (Natürlich sollten wir Phil auch darauf hinweisen, darauf zu achten, dass er das Objekt "Position" (Stelle) nicht vollständig löscht – mit seinen Verwaltungsrechten für benutzerdefinierte Objekte ist er auch dazu in der Lage!) 17. Geben Sie im ersten leeren Textfeld Position (Stelle) ein. 252 Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten 18. Klicken Sie auf Speichern. Damit ist die Konfiguration unsere Gruppe für die delegierte Verwaltung abgeschlossen. Für unsere Personalbeschaffungsanwendung gibt es nun einen delegierten Administrator, der unseren Salesforce-Hauptadministrator ein wenig entlasten kann. Probieren Sie es aus: Überprüfen, ob die delegierte Verwaltung funktioniert Um zu sehen, was ein delegierter Administrator der Personalbeschaffungsanwendung tun kann und was nicht, melden Sie sich als Phil Katz an. 1. Klicken Sie unter "Setup" auf Benutzer verwalten > Benutzer. Beachten Sie, dass der Link Bearbeiten neben jedem Benutzer angezeigt wird, der einer Rolle oder untergeordneten Rolle zugewiesen ist, für den unsere Gruppe delegierter Administratoren Benutzer verwalten kann. Der Link Bearbeiten wird nicht neben Benutzern angezeigt, die anderen Rollen zugewiesen sind, wie beispielsweise Cynthia Capobianco, die die Rolle "CEO" inne hat. Außerdem sehen Sie, dass Phil nun die Schaltflächen Neuer Benutzer, Kennwort (-wörter) zurücksetzen und Mehrere Benutzer hinzufügen zur Verfügung stehen. Sehen wir, was geschieht, wenn Phil einen neuen Benutzer hinzufügt. 2. Klicken Sie auf Neuer Benutzer. Die Seite "Benutzer bearbeiten" wird angezeigt. Auf den ersten Blick sieht diese Seite genauso aus wie die Seite "Benutzer bearbeiten", die wir beim Hinzufügen von Benutzern sahen, als wir als Systemadministrator angemeldet waren. Wenn Sie sich jedoch die Optionen, die in den Dropdownlisten Rolle und Profil zur Verfügung stehen, genau ansehen, bemerken Sie einen Unterschied: Die Optionen sind auf diejenigen Elemente beschränkt, die wir beim Erstellen der Gruppe für die delegierte Verwaltung angaben. Beispielsweise kann Phil keinen Benutzer mit einer Rolle als leitender Angestellter erstellen und er kann auch nicht Benutzer einem anderen Profil zuweisen als "Recruiter" (Personalbeschaffungsmitarbeiter) oder "Standard Employee" (Standardmitarbeiter). Im Moment brauchen wir keine weiteren Mitarbeiter zu erstellen. Klicken Sie daher einfach auf Abbrechen. Zuletzt muss noch überprüft werden, ob Phil das Objekt "Position" (Stelle) bearbeiten kann. 3. Klicken Sie unter "Setup" auf Erstellen > Objekte. 253 Kapitel 7: Einrichten von Sicherheit und Freigabe für Daten Wir sehen, dass die Links Bearbeiten und Löschen neben dem Objekt "Position (Stelle) verfügbar sind. Phil kann nun also das Objekt "Position" (Stelle) sowohl bearbeiten als auch löschen. Unser Test ist abgeschlossen. Beyond the Basics Wussten Sie, dass Sie Single Sign-On zwischen Ihrer Organisation und anderen autorisierten Web-Ressourcen einrichten können? Angenommen, Sie möchten, dass sich Ihre Mitarbeiter nur ein einziges Kennwort zu merken brauchen, um sich bei der Personalbeschaffungsanwendung und bei Ihrer Unternehmenswebsite anzumelden. Sie können mit einem Identitätsanbieter zusammenarbeiten, Informationen mit ihm austauschen und anschließend Salesforce für Single Sign-On konfigurieren. Weitere Informationen finden Sie in der Salesforce-Hilfe unter "Info zu Single Sign On". Zusammenfassung In diesem Kapitel haben wir eine ganze Menge Stoff abgedeckt. Wir haben die Unterschiede zwischen der Sicherheit auf der Objekt-, Feld- und Datensatzebene behandelt. Wir haben erfahren, wie sich durch die Kombination aus Profilen und Rollen die Objekte und Registerkarten bestimmen lassen, die ein Benutzer möglicherweise verwenden kann, und wie sich anschließend Datensätze erstellen lassen, die der Benutzer tatsächlich aufrufen und bearbeiten kann. Wir haben auch Möglichkeiten kennengelernt, mit denen andere profilbasierte Funktionen wie Datensatztypen eingerichtet werden können, um sowohl unsere Datenintegrität als auch die Gebrauchstauglichkeit unserer Anwendung zu verbessern. Abschließend haben wir alles getestet und die Verwaltung unserer Personalbeschaffungsanwendung auf effiziente und sichere Weise delegiert. Nun, da wir die Sicherheitsfragen behandelt haben, sollten wir mithilfe von Workflowregeln Geschäftslogik in unsere Anwendung integrieren. 254 Kapitel 8 Zusammenarbeit mit Chatter Themen: • • • • • • • Einführung in Chatter Verfolgen von Feldern in Objekten Folgen von Datensätzen Einrichten von Gruppen Einführung zu Benachrichtigungen Einführung in Publisher-Aktionen Zusammenfassung Im letzten Kapitel haben wir ein Sicherheits- und Freigabemodell entwickelt, um zu bestimmen, welche Personen welche Daten in der erweiterten Personalbeschaffungsanwendung sehen können. Wir haben gesehen, wie einfach es mit der Force.com-Plattform ist, den Zugriff auf Felder und Datensätze einzuschränken. Nun, da unsere Anwendung sicher ist, möchten wir den Personalbeschaffungsmitarbeitern, Gesprächsleitern und Einstellungs-Managern die Zusammenarbeit im Einstellungsprozess erleichtern. Mit Chatter bieten wir ihnen eine benutzerfreundliche, schnelle und effektive Methode für Informationsbeschaffung und -austausch. In diesem Kapitel stellen wir einige der Grundfunktionen von Chatter vor, beispielsweise die Feed-Verfolgung und das Folgen von Datensätzen, und zeigen, wie mit Chatter die Zusammenarbeit zum Kinderspiel wird. 255 Kapitel 8: Zusammenarbeit mit Chatter Einführung in Chatter Mit Chatter kann Ihre Anwendung besser denn je für die Zusammenarbeit verwendet werden. Sobald Sie Chatter für Ihre Organisation aktiviert haben, können Sie Feeds für die meisten Standardobjekte und alle benutzerdefinierten Objekte aktivieren, sodass Sie bei jeglichen Änderungen Aktualisierungen in Echtzeit sehen können. Die Benutzer können in Feeds posten, Kommentare zu anderen Posts abgeben, Dateien und Links freigeben, zusammen an Dokumenten arbeiten, Personen und Datensätzen folgen und vieles mehr. Mit der Feed-Verfolgung können die Benutzer sogar ganz bestimmten Feldern eines Datensatzes folgen. Wenn sich ein Wert für eines dieser Felder ändert, postet Chatter eine Aktualisierung im Feed, wodurch sofort alle Personen, die dem betreffenden Datensatz folgen, benachrichtigt werden. Mit Erwähnungen können die Benutzer eine Person erwähnen, um sicherzustellen, dass die Aktualisierung dieser Person angezeigt wird. Und mit Hashtags können die Benutzer Themen zu Posts und Kommentaren hinzufügen, damit andere Personen ihre Aktualisierungen leichter finden können. Chatter-Benutzer verfügen über ihre eigenen persönlichen Profil-Feeds, in denen sie Aktualisierungen posten und Aktualisierungen der Personen und Datensätze anzeigen können, denen sie folgen. Außerdem können die Benutzer öffentliche oder private Gruppen einrichten, um die Zusammenarbeit auf ein bestimmtes Gebiet zu konzentrieren. Jede Gruppe besitzt ihren eigenen Feed, in dem die Gruppenmitglieder Informationen austauschen, Fragen stellen und Dateien zur Zusammenarbeit hochladen können. Mit Chatter können Sie problemlos über die Personen und Informationen auf dem Laufenden bleiben, die für Sie besonders wichtig sind. Weitere Informationen finden Sie in der Salesforce-Hilfe unter "Übersicht über Chatter". Verfolgen von Feldern in Objekten Chatter kann Feldänderungen für die meisten Ihrer Datensätze und Objekte, einschließlich benutzerdefinierten Objekten, verfolgen und diese Informationen automatisch in einem Push-Vorgang an den Feed des Datensatzes übertragen. Durch die Feldverfolgung bleiben Sie über die aktuellsten Änderungen bei Objekten und Datensätzen, die für Sie von Belang sind, auf dem Laufenden. Aktivieren Sie einfach die Feed-Verfolgung für das Objekt und wählen Sie dann die zu verfolgenden Felder aus. 256 Kapitel 8: Zusammenarbeit mit Chatter Probieren Sie es aus: Aktivieren der Feed-Verfolgung für Stellen und Stellenbewerbungen Die Personalbeschaffungsmitarbeiter bei Universal Containers möchten wissen, wenn sich der Status oder Standort einer Stelle ändert. Die Einstellungs-Manager möchten wissen, wenn eine Stellebewerbung eingeht. Verfolgen wir diese Felder für diese Personen in Chatter. Aktivieren von Chatter für Ihre Organisation: 1. 2. 3. 4. Klicken Sie unter "Setup" auf Anpassen > Chatter > Einstellungen. Klicken Sie auf Bearbeiten. Wählen Sie Aktivieren aus. Klicken Sie auf Speichern. Abbildung80: Chatter-Einstellungen Verfolgen wir nun die Änderungen an den Feldern Status und Location (Standort) für Stellen: 1. 2. 3. 4. Klicken Sie unter "Setup" auf Anpassen > Chatter > Feed-Verfolgung. Wählen Sie das Objekt "Position" (Stelle). Aktivieren Sie das Kontrollkästchen Feedaufzeichnung aktivieren. Wählen Sie die Felder Status und Location (Standort) aus. Wenn sich eines dieser Felder für eine Stelle ändert, wird der Feed für diese Stelle aktualisiert, wodurch die Personalbeschaffungsmitarbeiter, die ihm folgen, benachrichtigt werden. 5. Klicken Sie auf Speichern. 257 Kapitel 8: Zusammenarbeit mit Chatter Abbildung81: Feed-Verfolgung für Stellen Der Einstellungs-Manager möchte benachrichtigt werden, wenn sich der Status einer Stellenbewerbung ändert. Verfolgen wir also dieses Feld: 1. 2. 3. 4. Klicken Sie unter "Setup" auf Anpassen > Chatter > Feed-Verfolgung. Wählen Sie das Objekt "Job Application" (Stellenbewerbung) aus. Wählen Sie Feedaufzeichnung aktivieren aus. Wählen Sie das Feld Status aus. Wenn sich der Wert ändert – beispielsweise von "New" (Neu) zu "Review Resume" (Lebenslauf überprüfen) –, wird der Feed für die Stellenbewerbung aktualisiert und die Einstellungs-Manager, die dieser Bewerbung folgen, werden benachrichtigt. 5. Klicken Sie auf Speichern. Da wir gerade dabei sind, aktivieren wir nun auch die verbleibenden benutzerdefinierten Objekte für die Feed-Verfolgung. Wiederholen Sie die Schritte, die Sie für die Objekte "Position" (Stelle) und "Job Application" (Stellenbewerbung) ausgeführt haben, um "Candidate" (Bewerber), "Employment Website" (Jobbörse), "Job Posting" (Stellenausschreibung) und "Review" für die Feed-Verfolgung zu aktivieren. 258 Kapitel 8: Zusammenarbeit mit Chatter Rekapitulation Wir haben festgelegt, dass Aktualisierungen der Felder Status und Location (Standort) des Objekts "Position" (Stelle) verfolgt werden sollen. Wenn jemand Feldaktualisierungen zu einer Stelle sehen möchte, kann er den Feed auf der Detailseite des betreffenden Datensatzes anzeigen. Wenn beispielsweise die Personalbeschaffungsmitarbeiterin, die bei der Stellenbesetzung in der Abteilung "Technical Publications" behilflich ist, den Datensatz "Documentation Writer" betrachtet, sieht sie, dass sich der Standort zu "San Francisco, CA" geändert hat. Abbildung82: Aktualisieren des Standort-Felds in einem Datensatz-Feed der vollständigen Site Starten Sie Salesforce1, um festzustellen, wie Feldaktualisierungen in Stellendatensätzen auf einem mobilen Gerät aussehen. Tippen Sie im Navigationsmenü auf Mehr anzeigen > Positions (Stellen) und tippen Sie dann auf Documentation Writer. Jetzt werden drei Ansichten angezeigt und nicht mehr nur zwei wie in den vorigen Kapiteln. Die neue Ansicht, die zuerst angezeigt wird, wenn Sie einen Datensatz öffnen, ist der Datensatz-Feed. Datensatz-Feeds werden nur angezeigt, wenn Feeds für den Objekttyp des Datensatzes aktiviert sind. Im Datensatz-Feed werden alle Feldaktualisierungen in Chatter für diesen Datensatz angezeigt – für die Felder, die wir bei der Aktivierung von Feeds im Objekt "Position" (Stelle) ausgewählt haben. 259 Kapitel 8: Zusammenarbeit mit Chatter Abbildung83: Aktualisieren des Standort-Felds in einem Datensatz-Feed in Salesforce1 Feed-Verfolgung ist eine nützliche Funktion, aber wer möchte schon immer die Datensatz-Detailseite aufrufen, um Aktualisierungen zu sehen? Als Nächstes zeigen wir Ihnen, wie einfach es ist, Datensätzen zu folgen, sodass Ihnen die Aktualisierungen automatisch angezeigt werden. Folgen von Datensätzen Mit Chatter können Sie den Benutzern, Gruppen, Dokumenten und Datensätzen folgen, an denen Sie interessiert sind. Aktualisierungen zu den Personen und Informationen, die Ihnen wichtig sind, werden in Ihrem persönlichen Feed gepostet. Außerdem können Sie E-Mail-Benachrichtigungen für Aktionen aktivieren, beispielsweise wenn jemand einen Kommentar zu Ihrem Post abgibt, und tägliche oder wöchentliche Auszüge mit Posts und Kommentaren aus Ihrem persönlichen Feed und Gruppen erhalten. Probieren Sie es aus: Einem Stellenbewerbungs-Datensatz folgen Wir wissen, dass bei unserer Personalbeschaffungsanwendung die Einstellungs-Manager über Stellenbewerbungen für ihre offenen Stellen auf dem Laufenden bleiben möchten. Dazu brauchen sie einfach nur diesen Datensätzen zu folgen. Um es selbst auszuprobieren, öffnen Sie einfach die Detailseite für eine Stellenbewerbung und klicken Sie auf Folgen. So einfach ist das. 260 Kapitel 8: Zusammenarbeit mit Chatter Abbildung84: Einem Stellenbewerbungs-Datensatz folgen Alle nachverfolgten Feldaktualisierungen sowie die Posts und Kommentare anderer Benutzer zu den Datensätzen, denen Sie folgen, werden in Ihrem persönlichen Feed gepostet. Verwenden Sie Chatter, um die richtigen Personen mit den richtigen Datensätzen zu verbinden und mit der Echtzeit-Zusammenarbeit am Einstellungsprozess zu beginnen. Beyond the Basics Wussten Sie, dass Sie Chatter für die Zusammenarbeit außerhalb Ihres Browsers verwenden können? Angenommen, Sie möchten ein Auge auf Chatter-Aktualisierungen haben, Sie können sich jedoch nicht über einen Browser anmelden. Beispiel: Sie erstellen gerade einige Folien auf dem Laptop und haben nicht genügend Platz auf dem Bildschirm für den Browser. In solchen Fällen ist es nützlich, wenn eine Chatter-Client-Anwendung installiert ist. Chatter Desktop ist eine Chatter-Client-Anwendung, die Chatter in Ihren Computer integriert. Mit Chatter Desktop ist die Zusammenarbeit einfacher denn je. Möchten Sie benachrichtigt werden, wenn Personen, denen Sie folgen, etwas Neues posten? Installieren Sie einfach Chatter Desktop: Damit werden bei jeder Aktualisierung Popup-Benachrichtigungen angezeigt. Möchten Sie eine Datei für Ihre Mitarbeiter freigeben? Ziehen Sie sie einfach auf die Chatter Desktop-Benutzeroberfläche. Installieren von Chatter Desktop: 1. Klicken Sie oben auf einer beliebigen Salesforce-Seite auf den Abwärtspfeil neben Ihrem Namen. Wählen Sie im Menü unterhalb Ihres Namens Meine Einstellungen oder Setup aus, je nachdem, welche Option angezeigt wird. 2. Wählen Sie im linken Fenster eine der folgenden Optionen aus: 261 Kapitel 8: Zusammenarbeit mit Chatter • • Wenn Sie auf Meine Einstellungen geklickt haben, wählen Sie Meine Einstellungen > Desktop-Add-Ons > Chatter Desktop aus. Wenn Sie auf Setup geklickt haben, wählen Sie Desktop-Integration > Chatter Desktop. Einrichten von Gruppen Nun, da Sie Chatter aktiviert haben, können Sie andere Personen zur Zusammenarbeit ermutigen, indem Sie öffentliche und private Diskussionsgruppen zu gemeinsamen Interessen erstellen. Beispielsweise können Sie Gruppen für verschiedene Teams erstellen, wie Vertrieb, Marketing, Produktentwicklung usw. Gruppen stellen eine hervorragende Möglichkeit für die Benutzer dar, Informationen und Dateien auszutauschen und Fragen zu stellen. Anstatt eine Massen-E-Mail zu versenden, können die Gruppenmitglieder Fragen auf der Seite der Gruppe posten. Wenn eine Frage beantwortet wird, ist die Antwort sofort allen Gruppenmitgliedern zugänglich. Gruppen bieten sofortigen Zugang zu Fachleuten. Probieren Sie es aus: Eine Gruppe erstellen Bei Chatter dreht sich alles um Informationsaustausch und Zusammenarbeit. Nun, da Sie Feeds aktiviert haben, besteht eine der besten Methoden, wie Sie die Zusammenarbeit zwischen den Benutzern fördern können, darin, Gruppen zu gemeinsamen Interessen zu erstellen. Erstellen wir nun eine private Gruppe für die Zusammenarbeit von Personalbeschaffungsmitarbeitern, damit diese an Personalbeschaffungsmaßnahmen zusammenarbeiten und sicher Informationen innerhalb der Gruppe austauschen können. 1. Klicken Sie in Chatter auf Gruppen > Neue Gruppe. 2. Geben Sie der Gruppe einen aussagekräftigen Namen, beispielsweise "Recruiting Team" (Personalbeschaffungsteam). Außerdem haben Sie die Möglichkeit, eine kurze Beschreibung der Gruppe hinzuzufügen. 3. Wählen Sie die Option Privat, wenn Sie die Gruppe ausschließlich für die Personalbeschaffungsmitarbeiter erstellen möchten. Wenn Sie die Gruppe nicht auf "Privat" setzen, kann jeder Chatter-Benutzer in Ihrer Organisation beitreten. Und da Kunden Benutzer von außerhalb Ihres Unternehmens sind, möchten Sie ihnen vermutlich nicht gestatten, dieser Gruppe beizutreten. Wenn es sich zu einem 262 Kapitel 8: Zusammenarbeit mit Chatter späteren Zeitpunkt als sinnvoll herausstellen sollte, Kunden zuzulassen, können Sie dies jederzeit tun, indem Sie die Einstellungen für die Gruppe ändern. 4. Klicken Sie auf Speichern. Abbildung85: Erstellen einer privaten Zusammenarbeitsgruppe Sie haben die Gruppe erstellt. Nun können Sie einfach Mitglieder, in diesem Fall Personalbeschaffungsmitarbeiter, hinzufügen oder einladen. Außerdem haben Sie die Möglichkeit, ein aussagekräftiges Foto für die Gruppe hochzuladen. Einführung zu Benachrichtigungen Für Benutzer, die oft nicht an ihrem Arbeitsplatz sind, ist es besonders wichtig, zu erfahren, wenn sie sich um etwas in Salesforce kümmern müssen. Salesforce1-Benutzern können zwei Arten von Benachrichtigungen angezeigt werden. • • Benachrichtigungen innerhalb der Anwendung halten Benutzer bezüglich relevanter Aktivitäten auf dem Laufenden, während diese Salesforce1 verwenden. Durch Tippen auf kann ein Benutzer die letzten 20 Benachrichtigungen anzeigen, die er in den vergangenen 90 Tagen erhalten hat. Bei Push-Benachrichtigungen handelt es sich um Hinweise, die auf einem Mobilgeräte angezeigt werden, wenn ein Benutzer die herunterladbare Salesforce1-Anwendung installiert hat, sie aber nicht verwendet. Diese Hinweise können je nach Gerätetyp in Form von Text, 263 Kapitel 8: Zusammenarbeit mit Chatter Symbolen und akustischen Signalen vorliegen. Wenn ein Administrator Push-Benachrichtigungen für Ihre Organisation aktiviert, können Benutzer selbst auswählen, ob sie Push-Benachrichtigungen auf ihrem Gerät empfangen möchten. Anmerkung: Einige Benachrichtigungen enthalten Text, den die Benutzer in Salesforce eingeben. Um sicherzustellen, dass ohne entsprechende Autorisierung keine sensiblen Daten über einen Drittanbieterdienst verbreitet werden, enthalten Push-Benachrichtigungen nur minimalen Inhalt (wie den Namen eines Benutzers), sofern Sie keinen vollständigen Inhalt in Push-Benachrichtigungen aktiviert haben. Angenommen, eine Benachrichtigung innerhalb der Anwendung enthält Folgendes: "Allison Wheeler hat Sie erwähnt: @Hans Schmidt, Achtung! Neue Vertriebsstrategie für Acme-Account." Die entsprechende Push-Benachrichtigung würde standardmäßig "Allison Wheeler hat Sie erwähnt" lauten. Wenn Sie jedoch den vollständigen Inhalt in Push-Benachrichtigungen standardmäßig aktiviert haben, würde diese Push-Benachrichtigung denselben (vollständigen) Inhalt wie die Benachrichtigung innerhalb der Anwendung enthalten. Wenn Sie die Option aktivieren, mit der der vollständige Inhalt in Push-Benachrichtigungen eingefügt wird, stimmen Sie im Nahmen Ihres Unternehmens den beim Speichern der Einstellung angezeigten Bedingungen zu. Einzelheiten finden Sie unter "Benachrichtigungen – Übersicht" in der Salesforce-Hilfe. Probieren Sie es aus: Aktivieren von Benachrichtigungen Jetzt wollen wir sicherstellen, dass Benachrichtigungen aktiviert sind, damit wir sicher sein können, dass Benutzer informiert werden, wenn Personen Kommentare zu einem ihrer Posts hinterlassen oder sie an einer beliebigen Stelle in Salesforce erwähnen. 1. Klicken Sie unter "Setup" auf Mobile Administration > Benachrichtigungen > Einstellungen. 2. Wählen Sie die Benachrichtigungen aus, die Ihre Salesforce1-Benutzer empfangen sollen. 3. Wenn Sie von Ihrem Unternehmen dazu autorisiert wurden, wählen Sie Vollständigen Inhalt in Push-Benachrichtigungen einfügen aus. 4. Klicken Sie auf Speichern. Wenn Sie das Kontrollkästchen zum Einfügen des vollständigen Inhalts in Push-Benachrichtigungen aktiviert haben, wird ein Popup-Fenster mit den Bedingungen angezeigt. Klicken Sie auf OK oder Abbrechen.. Durch Aktivieren dieser Option stimmen Sie den Bedingungen im 264 Kapitel 8: Zusammenarbeit mit Chatter Namen Ihres Unternehmens zu. Einzelheiten finden Sie unter "Benachrichtigungen – Übersicht in der Salesforce-Hilfe. Rekapitulation Genau wie beim Testen des Benutzerzugriffs im Abschnitt "Einrichten von Sicherheit und Freigabe für Daten auf Seite 175 müssen wir uns auch als mehrere Benutzer anmelden, um die Benachrichtigungsfunktion zu testen. Zuerst erstellen wir einige Aktivitäten in Chatter. 1. Wenn Sie noch nicht angemeldet sind, melden Sie sich bei Salesforce als "Ben Stuart" an. 2. Öffnen Sie das Profil von "Mario Ruiz". Geben Sie hierzu seinen Namen in das Feld für die globale Suche ein und klicken Sie auf den zuletzt erstellten Datensatz, der unterhalb des Feldes angezeigt wird. 3. Geben Sie in das Textfeld Can you share the candidates and applications for the SW Engineer position with me and @Melissa Lee? Thanks! (Könnten Sie die Bewerber und Bewerbungen für die SW Engineer-Stelle für mich freigeben und @Melissa Lee einfügen? Vielen Dank!) ein und klicken Sie auf Freigeben. 4. Melden Sie sich als "Melissa Lee" an und kommentieren Sie diesen Post: Thanks in advance, @Mario Ruiz! (Vielen Dank im Voraus, @Mario Ruiz!). Jetzt überprüfen wir, ob unser Benutzer in Salesforce1 die richtigen Benachrichtigungen erhalten hat. 1. Melden Sie sich bei Salesforce1 als "Mario Ruiz" an. Tippen Sie auf und überprüfen Sie, ob zwei neue Benachrichtigungen innerhalb der Anwendung für Sie vorhanden sind: eine, nachdem Ben einen Post in Ihrem Profil hinzugefügt hat, und eine, die Sie erhalten haben, als Melissa Sie erwähnt hat. 265 Kapitel 8: Zusammenarbeit mit Chatter Abbildung86: Benachrichtigungen für Mario Ruiz 2. Melden Sie sich bei Salesforce1 als "Ben Stuart" an. Vergewissern Sie sich, dass eine neue Benachrichtigung innerhalb der Anwendung für Sie vorliegt, die generiert wurde, als Melissa einen Kommentar zu Ihrem Post hinterlassen hat. Einführung in Publisher-Aktionen Nachdem wir nun Chatter aktiviert haben, konnten wir feststellen, wie hilfreich es für Benutzer ist, die direkt miteinander kommunizieren. Chatter wird noch für eine weitere Funktion verwendet, sodass Ihre Benutzer beim erledigen ihrer täglichen Aufgaben Zeit sparen können: Publisher-Aktionen. Mit der Funktion für Publisher-Aktionen können Sie Aktionen erstellen und zum Chatter-Publisher auf der Startseite, der Chatter-Registerkarte, in Chatter-Gruppen und auf Datensatz-Detailseiten hinzufügen. Außerdem können Sie die Reihenfolge anpassen, in der die standardmäßigen Chatter-Aktionen angezeigt werden sollen, einschließlich Post, Datei, Link und Abstimmung. Mithilfe von Aktionen können Benutzer leichter von ihren jeweiligen Positionen in der Anwendung aus arbeiten. Megan Smith muss beispielsweise nicht mehr das Navigationsmenü aufrufen, auf "Kontakte" und dann auf "Neu" klicken und angeben, welchem Account der neue Kontakt zugeordnet werden soll. Über Publisher-Aktionen kann sie einen neuen Kontakt über den Feed eines Accounts erstellen, indem sie einfach im Publisher auf die zugeordnete Aktion klickt oder tippt. Publisher-Aktionen sind hilfreich für sie. Im Publisher, der im Feed verfügbar ist, sind bereits einige Standardaktionen vorhanden. • • 266 Standardaktionen sind Aktionen, die beim Aktivieren von Chatter automatisch hinzugefügt werden, wie beispielsweise "Post", "Datei", Link" und "Abstimmung". Erstellaktionen sind Aktionen, mit denen Benutzer Datensätze erstellen können, beispielsweise "Neuer Kontakt", "Neue Opportunity" und "Neuer Lead". Dabei werden Kapitel 8: Zusammenarbeit mit Chatter • • Ihre Validierungsregeln und Vorgaben für Pflichtfelder berücksichtigt und Sie können die Felder, die für die einzelnen Aktionen angezeigt werden sollen, auswählen. Mit Aktionen vom Typ "Anruf protokollieren" können Benutzer die Details eines Telefonanrufs oder anderer Kundeninteraktionen aufzeichnen. Diese Anrufprotokolle werden als abgeschlossene Aufgaben gespeichert. Mit Aktualisierungsaktionen können Benutzer Änderungen an einem Datensatz über die zugehörige Detailseite vornehmen. Die meisten dieser vordefinierten Aktionen sind für die Benutzer unserer Personalbeschaffungsanwendung nicht sehr hilfreich. Diese Funktion lässt sich jedoch leicht anpassen. In diesem Abschnitt personalisieren wir die Aktionen, die unseren Benutzern auf der vollständigen Site und in Salesforce1 angezeigt werden. Mit der Plattform können deklarativ drei Arten von Aktionen erstellt werden. • • • Erstellaktionen Aktionen vom Typ "Anruf protokollieren" Aktualisierungsaktionen Standardaktionen können nicht erstellt werden, es besteht jedoch die Möglichkeit zu steuern, ob sie angezeigt werden oder nicht und in welcher Reihenfolge sie angezeigt werden. Für Erstellaktionen und Aktionen vom Typ "Anruf protokollieren können entweder globale oder objektspezifische Aktionen erstellt werden. Für Aktualisierungsaktionen können nur objektspezifische Aktionen erstellt werden. Probieren Sie es aus: Erstellen einer globalen Aktion Über globale Aktionen können Benutzer Aufgaben, wie das Erstellen von Datensätzen oder das Aufzeichnen von Anrufdetails direkt über die Registerkarte "Startseite" im Publisher, über die Registerkarte "Chatter", den Salesforce1-Feed und Chatter-Gruppen ausführen. Sie können zudem globale Erstellaktionen zu Datensatz-Detailseiten hinzufügen. Mit globalen Erstellaktionen können Benutzer Objektdatensätze erstellen, es wird jedoch nicht automatisch eine Beziehung zwischen dem erstellten Datensatz und irgendwelchen anderen Datensätzen hergestellt. Wenn Ben Stuart beispielsweise eine globale Erstellaktion in einem Account verwendet, um einen Kontakt zu erstellen, wird der neue Kontakt über die Aktion nicht automatisch dem Account zugeordnet. Bei objektspezifischen Aktionen ist dies jedoch der Fall. Diese werden später besprochen. Erstellen wir also eine globale Aktion. 267 Kapitel 8: Zusammenarbeit mit Chatter 1. 2. 3. 4. 5. Klicken Sie unter "Setup" auf Erstellen > Globale Aktionen. Klicken Sie auf Neue Aktion. Belassen Sie die Auswahl für Aktionstyp bei "Datensatz erstellen". Wählen Sie für Zielobjekt "Position" (Stelle) aus. Wählen Sie für Datensatztyp "Standard Position" (Standardstelle) aus. Nachdem wir mit dieser Aktion fertig sind, erstellen wir eine Aktion für IT-Stellen. 6. Lassen Sie die Bezeichnung vorerst leer. 7. Wählen Sie als Standardbezeichnungstyp "Neuer Datensatztyp" aus. Beachten Sie, dass Bezeichnung nicht mehr angezeigt wird. Wenn Sie einen anderen Wert auswählen als "--Keine--“, erhält Salesforce die Anweisung, die Bezeichnung für diese Aktion zu automatisieren. Der ausgewählte Standardbezeichnungstyp verwendet den zum Erstellen der Bezeichnung ausgewählten Datensatztyp: New Standard Position (Neue Standardstelle). 8. Geben Sie für Name den Wert New_Standard_Position ein. 9. Geben Sie eine Beschreibung ein. 10. Klicken Sie auf Speichern. Jetzt konfigurieren wir die Felder, die im Publisher angezeigt werden, wenn ein Benutzer diese Aktion auswählt. Einführung zu Aktionslayouts Datensatzseiten für Objekte können wir über Seitenlayouts anpassen und genauso können wir Publisher-Aktionen mithilfe von Aktionslayouts anpassen. Im Aktionslayout-Editor können wir die Felder auswählen, die angezeigt werden sollen, wenn ein Benutzer auf eine Aktion klickt. Der Aktionslayout-Editor verfügt über eine Palette im oberen Bildschirmbereich und im Aktions-Layout darunter. Die Palette enthält Felder aus dem Zielobjekt der Aktion, die dem Aktionslayout hinzugefügt werden können. Die folgenden Feldtypen werden jedoch nicht unterstützt und in der Palette nicht angezeigt: • • • Datensatztypfelder Schreibgeschützte Feldtypen, wie beispielsweise Rollup-Zusammenfassungsfelder, Formelfelder und Felder mit automatischer Nummerierung Schreibgeschützte Systemfelder, wie Ersteller oder Zuletzt geändert von Anmerkung: Wenn Sie den Typ eines Felds von einem für Aktionen unterstützten Typ in einen nicht unterstützten Typ ändern, wird das betreffende Feld aus dem Aktionslayout entfernt. Wenn Sie das Feld wieder in einen unterstützten Typ ändern, ohne das Aktionslayout zu ändern, wird das Feld wieder automatisch im Layout 268 Kapitel 8: Zusammenarbeit mit Chatter hinzugefügt. Wenn Sie das Layout bearbeitet haben und das Feld wieder in einen unterstützten Typ ändern, müssen Sie das Feld manuell wieder im Layout hinzufügen. Rich-Text-Bereichsfelder werden nur unterstützt, wenn Sie sie zu einspaltigen Layouts oder in zweispaltigen Layouts als Felder, die sich über beide Spalten erstrecken, hinzufügen. Wenn Sie ein Rich-Text-Bereichsfeld in einem zweispaltigen Layout zu nur einer Spalte hinzufügen, wird es als Nur-Text-Bereich angezeigt, da der Platz nicht ausreicht, um den Rich-Text-Editor vollständig anzuzeigen. Probieren Sie es aus: Anpassen von Aktionslayouts Die Anzahl der Felder im Aktionslayout sollte möglichst gering gehalten werden, damit sich die Benutzer auf die wichtigsten Informationen konzentrieren können. Für eine optimale Nutzbarkeit sind acht Felder ein geeigneter Grenzwert. Wenn mehr als 20 Felder hinzugefügt werden, so kann dies die Benutzereffizienz gravierend beeinträchtigen. Für Status, Open Date (Offen von) und Hire By (Einstellen bis) legen wir vordefinierte Werte fest, sodass wir diese dem Layout nicht hinzufügen müssen. 1. Ziehen Sie die folgenden Felder in die erste Spalte des Aktionslayouts: • • • Typ Min Pay (Mindestgehalt) Functional Area (Funktionsbereich) 2. Ziehen Sie folgende Felder in die zweite Spalte: • • • • Hiring Manager (Einstellungs-Manager) Location (Standort) Max Pay (Höchstgehalt) Job Level (Stellenebene) Abbildung87: Layout für "New Standard Position" (Neue Standardstelle) 269 Kapitel 8: Zusammenarbeit mit Chatter 3. Klicken Sie auf Speichern. Probieren Sie es aus: Hinzufügen von vordefinierten Feldwerten Einige Felder müssen noch ausgefüllt werden: Status, Open Date (Offen von) und Hire By (Einstellen bis). Diese Felder enthalten wichtige Details, sie müssen jedoch nicht im Publisher von den Benutzern ausgefüllt werden. Wir wissen, dass jede neue Stelle den Status "New Position" (Neue Stelle) aufweisen sollte, für Open Date (Offen von) sollte das aktuelle Datum angegeben sein und der Wert für Hire By (Einstellen bis) sollte 90 Tage nach dem Datum für "Open Date" (Offen von) liegen. Darum kümmern wir uns jetzt mithilfe von vordefinierten Feldwerten auf der Detailseite der globalen Aktion "New Standard Position" (Neue Standardstelle). 1. 2. 3. 4. Klicken Sie in der Themenliste "Vordefinierte Feldwerte" auf Neu. Wählen Sie in der Dropdown-Liste Feldname die Option Status aus. Wählen Sie für den spezifischen Wert "New Position" (Neue Stelle) aus. Klicken Sie auf Speichern. Abbildung88: Festlegen des vordefinierten Werts für den Status einer neuen Stelle Jetzt weist jede über diese globale Aktion erstellte Stelle automatisch den Status "New Position" (Neue Stelle) auf. Benutzer, die eine Stelle über den Publisher erstellen, müssen sich um die Auswahl dieses Feldes nicht kümmern. Sie können sich auf die variierenden Informationen kümmern. Führen Sie dieselben Schritte aus wie beim Erstellen der vordefinierten Feldwerte für Open Date (Offen von) und Hire By (Einstellen bis) und verwenden Sie dafür die unten stehende Tabelle. Tabelle39: Zusätzliche vordefinierte Feldwerte 270 Feldname Neuer Feldwert Open Date (Offen von) TODAY() Hire By (Einstellen bis) TODAY() + 90 Kapitel 8: Zusammenarbeit mit Chatter Schon sind Sie fertig! Jetzt erstellen wir ein paar weitere globale Aktionen. Momentan gibt es eine zum Erstellen neuer Standardstellen, aber noch keine für IT-Stellen. Und unsere Personalbeschaffungsmitarbeiter wären auch froh, wenn sie neue Bewerber- und Stellenbewerbungsdatensätze ohne viel Aufwand erstellen könnten. Also, an die Arbeit! Probieren Sie es aus: Erstellen weiterer globaler Aktionen Wir beginnen mit einer globalen Aktion zum Erstellen neuer IT-Stellen. Wiederholen Sie alle Schritte, die Sie bei der Erstellung der globalen Aktion "New Standard Position" (Neue Standardstelle) ausgeführt haben, aber setzen Sie den Datensatztyp auf "IT Position" (IT-Stelle). Erstellen Sie die beiden anderen globalen Aktionen anschließend anhand der folgenden Tabelle. Globale Aktion Informationen zur Aktion New Candidate (Neuer Bewerber) • Aktionstyp: Datensatz Spalte 1: erstellen • • Vorname • E-Mail (Bewerber) Standardbezeichnungstyp: • Education (Bildung) Neuer "Datensatz" Spalte 2: Name: New_Candidate • Nachname (Neuer_Bewerber) • Years of Experience (Jahre Erfahrung) • Stadt • Aktionstyp: Datensatz • • • New Application (Neue Bewerbung) Aktionslayout Zielobjekt: Candidate erstellen • Zielobjekt: Job • Application (Stellenbewerbung) Bezeichnung: New Application (Neue Bewerbung) • Standardbezeichnungstyp: • • Candidate (Bewerber) Position (Stelle) Cover Letter (Anschreiben) --Keine-- 271 Kapitel 8: Zusammenarbeit mit Chatter Für die Aktion "New Candidate" (Neuer Bewerber) sind keine vordefinierten Feldwerte erforderlich, da wir keinen der Feldwerte vorhersagen können. In der Aktion "New Application" (Neue Bewerbung) ist dies jedoch der Fall. Wir wissen, dass jede über den Publisher erstellte Stellenbewerbung als "neu" markiert werden soll. Erstellen wir also einen vordefinierten Feldwert für "New Application" (Neue Bewerbung), mit dem das Feld Status auf "Neu" gesetzt wird. Einführung zu globalen Publisher-Layouts Globale Publisher-Layouts legen fest, welche Aktionen im Publisher auf verschiedenen Seiten in Salesforce angezeigt werden, darunter die Registerkarte "Startseite", die Registerkarte "Chatter" und die Detailseiten für Chatter-Gruppen in der vollständigen Site sowie der Feed in Salesforce1. Globale Publisher-Layouts können nur globale Aktionen enthalten. Nachdem wir jetzt alle benutzerdefinierten Aktionen erstellt haben, die wir für die Personalbeschaffungsmitarbeiter benötigen, wollen wir sie einem globalen Publisher-Layout hinzufügen. Probieren Sie es aus: Anpassen globaler Publisher-Layouts Bevor wir starten, sollten wir sicherstellen, dass wir Aktionen in einem globalen Publisher-Layout hinzufügen können. Klicken Sie unter "Setup" auf Anpassen > Chatter > Einstellungen und vergewissern Sie sich, dass Publisher-Aktionen aktivieren ausgewählt ist. Nun fahren wir mit dem Layout fort. 1. Klicken Sie unter "Setup" auf Anpassen > Chatter > Publisher-Layouts. Wie auch bei Seitenlayouts und kompakten Layouts kann jedes globale Publisher-Layout einem einzelnen Profil zugewiesen werden. Da für unsere Personalbeschaffungsmitarbeiter andere Anforderungen gelten als für andere Mitarbeiter des Unternehmens, erstellen wir ein benutzerdefiniertes Layout mit Aktionen, die genau auf die für sie typischen Aufgaben zugeschnitten sind. Dieses Layout wollen wir dem Profil "Recruiter" (Personalbeschaffungsmitarbeiter) zuweisen, damit unsere anderen normalen Mitarbeiter, die so gut wie nie Bewerber oder Stellenbewerbungen erstellen müssen, sich nicht in unwichtigen Aktionen verzetteln. 2. Klicken Sie auf Neu. 272 Kapitel 8: Zusammenarbeit mit Chatter 3. Wählen Sie ein globales Layout als zu duplizierendes Bestehendes Publisher-Layout aus. 4. Geben Sie für Name des Publisher-Layouts den Namen Recruiter Layout (Personalbeschaffungsmitarbeiter-Layout) ein. 5. Klicken Sie auf Speichern. Entfernen wir nun die Aktionen, die eher für unsere Vertriebsmitarbeiter und nicht so sehr für die Personalbeschaffungsmitarbeiter relevant sind. 1. Ziehen Sie Neuer Kontakt, Anruf protokollieren, Neue Opportunity, Neuer Kundenvorgang und Neuer Lead zurück auf die Palette. 2. Ziehen Sie New IT Position (Neue IT-Stelle), New Standard Position (Neue Standardstelle), New Application (Neue Bewerbung) und New Candidate (Neuer Bewerber) in das Layout, sodass sie nach Abstimmung angezeigt werden. 3. Klicken Sie auf Speichern. Nachdem wir jetzt über ein funktionierendes Publisher-Layout für Personalbeschaffungsmitarbeiter verfügen, wollen wir sicherstellen, dass sie dies auch anzeigen können, indem wir das neue Layout dem Profil für Personalbeschaffungsmitarbeiter zuweisen. 1. Klicken Sie auf Publisher-Layout-Zuordnung. 2. Klicken Sie auf Zuordnung bearbeiten und ändern Sie das Publisher-Layout für das Profil "Recruiter (Personalbeschaffungsmitarbeiter) in "Recruiter Layout" (Personalbeschaffungsmitarbeiter-Layout). 3. Klicken Sie auf Speichern. Rekapitulation Bevor wir mit dem Erstellen einer anderen Art von Aktionen, nämlich objektspezifischen Aktionen, fortfahren, wollen wir überprüfen, ob unsere globalen Aktionen ordnungsgemäß funktionieren. Melden Sie sich zum Testen der Änderungen als "Mario Ruiz" bei Salesforce an und vergewissern Sie sich, dass Mario über den globalen Publisher eine IT-Stelle, eine Standardstelle, einen Bewerber und eine Stellenbewerbung erstellen kann. Überprüfen Sie dies auch in Salesforce1. 1. Melden Sie sich bei Salesforce als Personalbeschaffungsmitarbeiter "Mario Ruiz" an. 2. Klicken Sie im Publisher auf der Registerkarte "Startseite" auf Mehr. Die unteren vier Optionen sollten "New IT Position" (Neue IT-Stelle), "New Standard Position" 273 Kapitel 8: Zusammenarbeit mit Chatter (Neue Standardstelle), "New Application" (Neue Bewerbung) und "New Candidate" (Neuer Bewerber) sein. 3. Klicken Sie auf New IT Position (Neue IT-Stelle). Die daraufhin angezeigten Felder sollten mit der Konfiguration übereinstimmen, die wir im Aktionslayout vorgenommen haben. Abbildung89: Felder für eine neue IT-Stelle im Chatter-Publisher 4. Füllen Sie die Felder aus und klicken Sie auf Erstellen. Durch Klicken auf Erstellen wird ein Feedelement erstellt. Abbildung90: Feed-Element für neue QE Engineer II-Stelle 5. Klicken Sie auf den Namen der neuen IT-Stelle. 6. Vergewissern Sie sich, dass unseren vordefinierten Feldwerten Werte zugewiesen sind: Für Status sollte "New Position" angezeigt werden, für Open Date (Offen von) sollte das heutige Datum angezeigt werden und Hire By (Einstellen bis) sollte 90 nach dem heutigen Datum liegen. 7. Kehren Sie zur Registerkarte "Startseite" zurück und wiederholen Sie diese Überprüfungsschritte für die Aktionen "New Standard Position" (Neue Standardstelle), "New Application" (Neue Bewerbung) und "New Candidate" (Neuer Bewerber). 274 Kapitel 8: Zusammenarbeit mit Chatter Einführung zu objektspezifischen Aktionen Moment! Das ist noch nicht alles! Wir können auch objektspezifische Aktionen erstellen. Genau wie mit globalen Aktionen können Benutzer über objektspezifische Aktionen Datensätze oder Details zu Anrufprotokollen oder sonstigen Interaktionen erstellen. Der Hauptunterschied besteht darin, dass Sie diese Aktionen nur auf Datensatz-Detailseiten hinzufügen können, da diese automatisch einem bestimmten Objekt zugeordnet sind. Wenn ein Benutzer einen Datensatz mit einer objektspezifischen Erstellaktion erstellt, wird an folgenden Stellen ein Feed-Element für den betreffenden Datensatz angezeigt: • • • • • • In dem Feed für den Datensatz, zu dem der neue Datensatz erstellt wurde. Als erster Eintrag in dem Feed für den neuen Datensatz. Im Chatter-Feed des Benutzers, der den Datensatz erstellt hat. Im Benutzerprofil-Feed des Benutzers, der den Datensatz erstellt hat. Im Chatter-Feed von Benutzern, die dem Datensatz folgen, zu dem der neue Datensatz erstellt wurde. Im Chatter-Feed von Benutzern, die dem neuen Datensatz automatisch folgen, sei es über benutzerdefinierte Regeln oder Regeln für das automatische Folgen von neuen Datensätzen. Probieren Sie es aus: Erstellen von objektspezifischen Aktionen Objektspezifische Aktionen sind sehr nützlich für Personalbeschaffungsmitarbeiter. Wenn wir im Stellendatensatz eine Aktion zum Erstellen einer neuen Stellenbewerbung hinzufügen, müssen die Benutzer nicht die Stelle angeben, der die neue Bewerbung zugeordnet werden soll. Die Plattform verfügt dann bereits über die erforderlichen Informationen, um sie dem richtigen Stellendatensatz zuzuordnen. Also los! Es dauert nicht lange, um effizienter arbeiten zu können. 1. Klicken Sie unter "Setup" auf Erstellen > Objekte und anschließend auf Position (Stelle). 2. Klicken Sie in der Themenliste "Schaltflächen, Links und Aktionen" auf Neue Aktion. Das sollte Ihnen bekannt vorkommen. Die Felder, die wir zum Erstellen von objektspezifischen Aktionen ausfüllen müssen, sind beinahe identisch mit denen, die wir bereits für globale Aktionen ausgefüllt haben. Es gibt nur ein neues Feld: Objektname. Da wir eine neue Aktion im Objekt "Position" (Stelle) erstellen, weiß die Plattform, dass der Objektname "Position" 275 Kapitel 8: Zusammenarbeit mit Chatter (Stelle) lauten sollte. Das bedeutet, dass diese Aktion nur in einem Seitenlayout für das Objekt "Position" (Stelle) hinzugefügt werden kann. Füllen wir nun die restlichen Felder aus. 3. 4. 5. 6. 7. Wählen Sie für Aktionstyp "Datensatz erstellen" aus. Wählen Sie für Zielobjekt "Job Application" (Stellenbewerbung) aus. Geben Sie für Bezeichnung New Application (Neue Bewerbung) ein. Belassen Sie die Einstellung für Standardbezeichnungstyp beim Standardwert. Klicken Sie auf Speichern. Nach dem Speichern wird der Aktionslayout-Editor für unsere neue Aktion angezeigt. Im Objekt "Job Application" (Stellenbewerbung) sind nur wenige Felder vorhanden, sodass es Ihnen leicht fallen sollte, festzulegen, welche Felder dem Layout hinzugefügt werden sollen. Da alle über diese Aktion erstellten Stellenbewerbungen automatisch der Stelle zugeordnet werden, die der Benutzer geöffnet hat, müssen wir das Feld Position (Stelle) nicht im Layout hinzufügen. Als Inhaber wird automatisch der Benutzer zugewiesen, der den Datensatz erstellt hat. Bei Status können wir sicher sein, dass für alle erstellten Stellenbewerbungen "Neu" festgelegt werden soll, also können wir für dieses Feld einen vordefinierten Feldwert verwenden. Anmerkung: Möglicherweise wird Ihnen eine Meldung angezeigt, in der Sie gewarnt werden, dass erforderliche Felder im Layout fehlen. Das erforderliche Feld ist in diesem Fall Position (Stelle), aber keine Sorge! Die Plattform ordnet die Stellenbewerbung automatisch der Stelle zu, für die wir sie erstellen, da auf diese Aktion nur über einen Stellendatensatz zugegriffen wird. Dann bleiben noch zwei Felder übrig. fügen Sie dem Layout also "Candidate" (Bewerber) und "Cover Letter" (Anschreiben) hinzu und speichern Sie es. Jetzt weisen wir, bevor wir es vergessen, Status einen vordefinierten Feldwert zu. 8. Klicken Sie unter "Setup" auf Erstellen > Objekte und wählen Sie Position (Stelle). 9. Klicken Sie in der Themenliste "Schaltflächen, Links und Aktionen" auf New Application (Neue Bewerbung). 10. Klicken Sie in der Themenliste "Vordefinierte Feldwerte" auf Neu. 11. Wählen Sie für Feldname "Status" aus. 12. Wählen Sie für den spezifischen Wert "Neu" aus. 13. Klicken Sie auf Speichern. 276 Kapitel 8: Zusammenarbeit mit Chatter Probieren Sie es aus: Erstellen weiterer objektspezifischer Aktionen Nachdem wir nun das Erstellen von objektspezifischen Aktionen geübt haben, erstellen wir ein paar mehr. Objekt Informationen zur Aktion Position (Stelle) • Aktionslayout Aktionstyp: Datensatz • erstellen • • • Employment Website (Jobbörse) Zielobjekt: Job Posting (Stellenausschreibung) Bezeichnung: New Posting (Neue Ausschreibung) Standardbezeichnungstyp: --Keine-Candidate (Bewerber) • Aktionstyp: Datensatz • • Position (Stelle) Cover Letter (Anschreiben) Aktionstyp: Datensatz • Position (Stelle) erstellen • Zielobjekt: Job • Application (Stellenbewerbung) Bezeichnung: New Application (Neue Bewerbung) • Standardbezeichnungstyp: --Keine-Employment Website (Jobbörse) • erstellen • • • Zielobjekt: Job Posting (Stellenausschreibung) Bezeichnung: New Posting (Neue Ausschreibung) Standardbezeichnungstyp: --Keine-- 277 Kapitel 8: Zusammenarbeit mit Chatter Objekt Informationen zur Aktion Job Application (Stellenbewerbung) • Aktionstyp: Datensatz • erstellen • • • Aktionslayout Zielobjekt: Review • Rating (Bewertung) Assessment (Einschätzung) Standardbezeichnungstyp: Neuer "Datensatz" Name: New_Review (Neuer_Review) Nur für eine dieser Aktionen ist ein vordefinierter Wert erforderlich. Darum kümmern wir uns jetzt. 1. Klicken Sie unter "Setup" auf Erstellen > Objekte und anschließend auf Candidate (Bewerber). 2. Klicken Sie in der Themenliste "Schaltflächen, Links und Aktionen" auf New Application (Neue Bewerbung). 3. Erstellen Sie einen vordefinierten Feldwert, durch den der Wert für Status automatisch auf "Neu" gesetzt wird. Probieren Sie es aus: Zuweisen objektspezifischer Aktionen zu Seitenlayouts Im Gegensatz zu globalen Aktionen gibt es für objektspezifische Aktionen keinen neuen Layout-Typ. Für sie ist jedoch eine bestimmte Stelle auf jedem Seitenlayout vorgesehen. Der Bereich "Publisher-Aktionen" im Seitenlayout-Editor ähnelt dem Editor für globale Publisher-Layouts und erfüllt in etwa die gleichen Funktionen. Wir müssen lediglich Aktionen aus der Palette an die richtige Stelle ziehen und dort ablegen. 1. Klicken Sie unter "Setup" auf Erstellen > Objekte und anschließend auf Position (Stelle). 2. Klicken Sie in der Themenliste "Seitenlayouts" neben "IT Position Layout" (IT-Stelle-Layout) auf Bearbeiten. Beachten Sie, dass der Bereich "Publisher-Aktionen" leer ist. Derzeit wird für das Seitenlayout das globale Publisher-Layout verwendet, das dem jeweiligen Benutzerprofil zugewiesen ist. Da wir objektspezifische Aktionen erstellt haben, können wir diese nicht im globalen Publisher-Layout hinzufügen. Das ist kein Problem. Damit unsere neuen Aktionen im Publisher in Stellendatensätzen angezeigt werden, müssen wir einfach das globale Publisher-Layout überschreiben. 278 Kapitel 8: Zusammenarbeit mit Chatter 3. Klicken Sie im Bereich "Publisher-Aktionen" auf das globale Publisher-Layout überschreiben. Beim Überschreiben des globalen Publisher-Layouts stehen auf der Plattform automatisch einige Aktionen zur Verfügung: Standardmäßige Chatter-Aktionen, wie "Post" und "Datei" sowie "Intelligente mobile Aktionen". Intelligente mobile Aktionen sind wie Standardaktionen eine Reihe von vorkonfigurierten Aktionen. Diese sind jedoch nur in Salesforce1 verfügbar. Intelligente mobile Aktionen werden im Seitenlayout-Editor als einzelnes Element angezeigt. In der Anwendung lässt sich das Element "Intelligente mobile Aktionen" zu einer Reihe verschiedener Erstellaktionen erweitern, mit denen Benutzer Datensätze direkt im Feed erstellen können. Bei benutzerdefinierten Objekten wie unserem heißen diese Aktionen "Neue Aufgabe", "Neuer Kontakt", "Anruf protokollieren", "Neue Gruppe", "Neue Opportunity", "Neuer Kundenvorgang" und "Neuer Lead". Wir können nicht ändern, welche Aktionen als Teil eines Pakets intelligenter mobiler Aktionen enthalten sind, daher entfernen wir es und fügen manuell die für dieses Objekt relevanten Aktionen hinzu. Weitere Informationen zu intelligenten mobilen Aktionen und eine Liste der Erweiterungen des Elements "Intelligente mobile Aktionen" in den einzelnen unterstützten Objekten finden Sie in der Salesforce-Hilfe unter "Übersicht über intelligente mobile Aktionen" . 4. Klicken Sie in der Palette auf Aktionen. 5. Ziehen Sie "Intelligente mobile Aktionen" zurück auf die Palette. 6. Ziehen Sie Aktionen von der Palette in den Bereich "Publisher-Aktionen", sodass sie in der folgenden Reihenfolge angezeigt werden: • • • • • • • • New Application (Neue Bewerbung) New Candidate (Neuer Bewerber) New Posting (Neue Ausschreibung) Post Neue Aufgabe Neue Notiz File (Datei) Link Anmerkung: Hier sind einige doppelte Einträge vorhanden, da wir die globale Aktion "New Application" (Neue Bewerbung) und die objektspezifische Aktion "New Application" (Neue Bewerbung) erstellt haben. Die Force.com-Plattform hilft uns an dieser Stelle durch Hover-Text über den Aktionen. Eine der Aktionen heißt "New_Application" (Neue Bewerbung) und die andere "Position__c.New_Application" (Stelle__c.Neue_Bewerbung). Der zweite Eintrag ist unsere objektspezifische Aktion. Durch das Präfix "Position__c" (Stelle__c) wird im Namen angegeben, dass diese Aktion direkt dem Stellenobjekt zugeordnet ist. Das 279 Kapitel 8: Zusammenarbeit mit Chatter bedeutet, dass diese Aktion nur in einem Seitenlayout für Stellen hinzugefügt werden kann. 7. Klicken Sie auf Speichern. Abbildung91: Anpassen der verfügbaren Aktionen in einem Standardstellendatensatz 8. Klicken Sie oben in der Palette auf IT Position Layout (IT-Stelle-Layout) und wählen Sie in der Dropdown-Liste Position Layout (Stelle-Layout) aus. 9. Passen Sie die Publisher-Aktionen für das Stellenlayout so an, dass es mit dem IT-Stellen-Layout übereinstimmt. Fügen wir diesen Seitenlayouts nun objektspezifische Aktionen für Bewerber, Jobbörsen und Stellenbewerbungen hinzu. Rufen Sie die einzelnen Seitenlayouts auf und fügen Sie die Aktionen in der Reihenfolge dieser Tabelle hinzu. Tabelle40: Zusammenfassung der Publisher-Aktionen in Seitenlayouts Objekt Seitenlayout Publisher-Aktionen Candidate (Bewerber) Candidate Layout (Bewerber-Layout) • • • • • • Employment Website (Jobbörse) Employment Website Layout • (Jobbörse-Layout) • • • • • 280 New Application (Neue Bewerbung) Neue Aufgabe Neue Notiz Post File (Datei) Link New Posting (Neue Ausschreibung) Neue Aufgabe Neue Notiz Post File (Datei) Link Kapitel 8: Zusammenarbeit mit Chatter Objekt Seitenlayout Publisher-Aktionen Job Application (Stellenbewerbung) Job Application Layout (Stellenbewerbung-Layout) • • • • • • New Review (Neuer Review) Neue Aufgabe Neue Notiz Post File (Datei) Link Rekapitulation Nachdem wir alle objektspezifischen Aktionen erstellt und sie den jeweiligen Seitenlayouts zugewiesen haben, wollen wir uns vergewissern, dass sie in der Salesforce1-Anwendung funktionieren. 1. Starten Sie Salesforce1 und melden Sie sich als "Mario Ruiz" an. 2. Öffnen Sie einen Stellendatensatz, indem Sie im Navigationsmenü auf Positions (Stellen) und anschließend auf eine Ihrer kürzlich erstellten Stellen tippen. 3. Tippen Sie zum Öffnen des Publishers auf und anschließend auf New Application (Neue Bewerbung). 4. Wählen Sie einen Bewerber aus, geben Sie Text für das Anschreiben ein und tippen Sie dann auf Senden. Wir mussten nicht angeben, dass die neue Stellenbewerbung der entsprechenden Stelle zugeordnet werden soll, diese wird jedoch trotzdem in der Themenliste "Job Applications" (Stellenbewerbungen) für die entsprechende Stelle angezeigt. Darin liegt die Stärke der objektspezifischen Aktionen. 281 Kapitel 8: Zusammenarbeit mit Chatter Abbildung92: Einer Stelle zugeordnete Stellenbewerbungen 5. Tippen Sie auf der Seite mit den Informationen zu einer Stelle auf Job Applications (Stellenbewerbungen), um die Elemente in dieser Themenliste anzuzeigen. 6. Tippen Sie auf das verwandte Element, das Ihrer neuen Stellenbewerbung zugeordnet ist, um den betreffenden Datensatz zu öffnen. 7. Überprüfen Sie, ob der von uns festgelegte vordefinierte Feldwert ordnungsgemäß funktioniert: Der Wert für Status sollte auf "New" gesetzt sein, obwohl wir es bei der Datensatzerstellung nicht manuell ausgewählt haben. Überprüfen wir nun die anderen objektspezifischen Aktionen. Vergewissern Sie sich im Publisher, dass folgende Vorgänge funktionieren: • • • • • 282 Über einen Stellendatensatz kann ein neuer Bewerber erstellt werden. Über einen Stellendatensatz kann ein neues Stellenangebot erstellt werden. Das Stellenangebot wird automatisch der Stelle zugeordnet. Über einen Bewerberdatensatz kann eine neue Stellenbewerbung erstellt werden. Die Bewerbung wird automatisch dem Bewerber zugeordnet und der Status auf "Neu" gesetzt. Über eine Jobbörse kann ein neues Stellenangebot erstellt werden. Das Stellenangebot wird automatisch der Jobbörse zugeordnet. Über einen Stellenbewerbungsdatensatz kann ein neuer Review erstellt werden. Der Review wird automatisch der Stellenbewerbung zugeordnet. Kapitel 8: Zusammenarbeit mit Chatter Zusammenfassung Wir haben Chatter und Publisher-Aktionen in unsere Personalbeschaffungsanwendung integriert. Doch damit haben wir nur einen Bruchteil der Möglichkeiten ausgeschöpft. Mit Chatter geben Sie den Benutzern die Möglichkeit, den Überblick über alles, was in Ihrem Unternehmen geschieht, zu behalten. Außerdem ermöglichen Sie es ihnen, schnell und einfach zusammenzuarbeiten und Informationen auszutauschen. Mithilfe von Publisher-Aktionen können Ihre Benutzer Datensätze leichter erstellen und miteinander verknüpfen. Und da es ein Teil der Force.com-Plattform ist, können Sie Feed-Aktualisierungen in Echtzeit, Benutzerprofile, Gruppen und vieles mehr in alle Ihre benutzerdefinierten Anwendungen einbeziehen. Wenn Sie ein wenig tiefer in die Materie vorstoßen, können Sie lernen, wie Sie Posts und Kommentare programmgesteuert hinzufügen, Feeds zu benutzerdefinierten Seiten hinzufügen und sogar Publisher-Aktionen für die Integration mit externen Systemen verfügbar machen können. Diese fortgeschrittenen Themen würden den Rahmen dieses Buchs sprengen. Sie finden jedoch weitere Informationen auf der Seite mit den Chatter-Entwicklerressourcen unter developer.force.com/chatter. 283 Kapitel 9 Verwenden benutzerdefinierter Workflowund Genehmigungsprozesse Themen: • • • • • • • Einführung in Workflow Workflow in der Personalbeschaffungsanwendung Erstellen von Workflowregeln zum Zuweisen von Aufgaben Erstellen einer Workflowregel, die Felder aktualisiert Erstellen einer Workflowregel, die E-Mail-Benachrichtigungen sendet Einführung in Genehmigungen Zusammenfassung Robuste Anwendung? Ja. Sicherer Datenzugriff? Ja. Schnell, benutzerfreundlich und für die Zusammenarbeit geeignet? Ja! Unser Einstellungsteam bei Universal Containers war noch nie produktiver. Das letzte Kapitel hat uns gezeigt, wie einfach es ist, mit Chatter in Echtzeit zusammenzuarbeiten. Nun sollten wir nach Möglichkeiten suchen, wie wir die Leistungsfähigkeit unserer Anwendung erhöhen können. Bislang haben wir lediglich eine bessere Datenbank erstellt: Sie enthält die benötigten Informationen und ermöglicht die Suche nach Datensätzen anhand verschiedener Kriterien, sie hilft unseren Personalbeschaffungsmitarbeitern und Einstellungsmanagern jedoch nicht dabei, ihre Tätigkeiten erfolgreicher zu verrichten. Es ist kein Mechanismus enthalten, der einen Personalbeschaffungsmitarbeiter automatisch darauf hinweist, wenn sich der Status eines Bewerbers geändert hat oder wenn eine neue Stelle in das System aufgenommen wurde. Über Chatter erhalten sie Informationen zu den Datensätzen, denen sie folgen, aber wir möchten unsere Anwendung automatisieren, um die Abläufe weiter zu verbessern. Auch hier hilft uns die Force.com-Plattform wieder mit weiteren integrierten Funktionen. In diesem Fall heißen die Tools, die wir zur Lösung unseres Prozessautomatisierungsproblems verwenden, Workflow 285 Kapitel 9: Verwenden benutzerdefinierter Workflow- und Genehmigungsprozesse und Genehmigungsprozesse. Zunächst betrachten wir die verschiedenen Möglichkeiten zur Verwendung des Workflows. Anschließend, am Ende des Kapitels befassen wir uns mit einem Genehmigungsprozess. 286 Kapitel 9: Verwenden benutzerdefinierter Workflow- und Genehmigungsprozesse Einführung in Workflow Workflow ist ein Geschäftslogik-Modul der Force.com-Plattform, mit dem wir Regeln definierten können, um bestimmte Aktionen zu automatisieren, beispielsweise das Versenden von E-Mail-Benachrichtigungen, das Zuweisen von Aufgaben oder das Aktualisieren von Feldwerten. Immer wenn ein Datensatz so geändert wird, dass die Bedingungen einer Workflowregel erfüllt sind, führt die Plattform automatisch die Aktionen aus, die der betreffenden Regel zugeordnet sind. Nehmen wir als Beispiel Ben Stuart, einen Software Development Manager, der Herrn Ethan Tran, einem intelligenten jungen Bewerber, der sich für die Stelle als Software Engineer interessiert, ein Angebot unterbreiten möchte. Bei Universal Containers zählt es zu den Aufgaben eines Personalbeschaffungsmitarbeiters, Angebote zu unterbreiten. In diesem Fall weiß der für die Stelle des Software Engineers zuständige Personalbeschaffungsmitarbeiter, Mario Ruiz, jedoch nicht, ob Ben eine Entscheidung getroffen hat, es sei denn, Ben schickt ihm direkt eine E-Mail oder ruft ihn an. Anstatt uns darauf zu verlassen, dass Ben daran denkt, Mario seine Entscheidung mitzuteilen, können wir einen einfachen Workflow festlegen, mit dem die Zuweisung der entsprechenden Aufgabe ausgelöst wird, sobald der Status eine Stellenbewerbungsdatensatzes auf "Extend an Offer" (Angebot unterbreiten) oder "Rejected" (Abgelehnt) gesetzt wird. Sobald Ben den Status der Stellenbewerbung des Bewerbers ändert, wird über den Workflow die entsprechende Aufgabe erstellt und Mario erhält eine E-Mail-Benachrichtigung, so wie im folgenden Diagramm dargestellt. 287 Kapitel 9: Verwenden benutzerdefinierter Workflow- und Genehmigungsprozesse Abbildung93: Automatische Zuweisung einer Aufgabe zu einem Personalbeschaffungsmitarbeiter mithilfe eines Workflows Ist das nicht eine leistungsstarke Funktion? Allgemein gilt: Wenn wir eine Standardregel festlegen können, mit der angegeben wird, wann ein bestimmtes Ereignis stattfinden soll, können wir es automatisch über einen Workflow ausführen lassen. Workflows sind das Geheimrezept, mit dem unsere Personalbeschaffungsanwendung von einer besseren Datenbank zu einem voll funktionsfähigen Tool wird, das alle sinnvoll nutzen können. Jetzt haben wir eine allgemeine Vorstellung davon, was ein Workflow ist. Sehen wir uns die einzelnen Komponenten eines Workflows also genauer an: Regeln und Aktionen. Einführung in Workflowregeln Im Allgemeinen ist eine Workflowregel der Hauptcontainer für eine Reihe von Workflowanweisungen. Sie enthält die Kriterien dafür, wann der Workflow ausgeführt werden soll, sowie bestimmte Aktionen, wie Aufgaben, E-Mail-Benachrichtigungen und Feldaktualisierungen, die ausgeführt werden sollen, wenn die Kriterien für die entsprechende Regel erfüllt sind. 288 Kapitel 9: Verwenden benutzerdefinierter Workflow- und Genehmigungsprozesse Jede Workflowregel muss auf einem einzelnen Objekt basieren, das Sie beim Definieren der Regel auswählen. Dieses Objekt wirkt sich darauf aus, welche Felder für die Festlegung der Kriterien der Workflowregel zur Verfügung stehen. Wenn wir beispielsweise eine Workflowregel für das Objekt "Job Application" (Stellenbewerbung) definieren, können wir die Kriterien der Regel z. B. basierend auf den Werten der Felder Job Application Number (Stellenbewerbungsnummer) und Status festlegen. Wir können die Kriterien der Regel auch basierend auf Standardfeldern wie Datensatzinhaber oder Erstelldatum festlegen, oder anhand der Felder, die auf dem zur Zeit der Auswertung der Regel aktiven Benutzer basieren, beispielsweise dessen Felder Rolle oder Zeitzone. Wir sehen uns die verschiedenen Möglichkeiten, mit denen wir die Kriterien für Workflowregeln festlegen können, etwas später an. An dieser Stelle möchten wir lediglich darstellen, dass es mit der Plattform sehr einfach ist, detaillierte Workflowregeln zu erstellen, die auf bestimmte Situationen ausgerichtet sind. Einführung in Workflowaktionen Wenn eine Workflowregel ausgelöst wird, werden die ihr zugeordneten Aktionen ausgeführt. Workflowaufgaben Eine Workflowaufgabe weist eine Aufgabe gemäß einer bestimmten Vorlage einem Benutzer zu. Wie in Microsoft Outlook enthalten Aufgaben Informationen über etwas, was bis zu einem bestimmten Zeitpunkt erledigt werden muss, beispielsweise ein Anruf oder die Rückgabe eines Buchs in der Bibliothek. Zugewiesene Aufgaben werden in der Themenliste "Meine Aufgaben" auf der Registerkarte "Startseite" des jeweiligen Benutzers angezeigt und generieren Popup-Nachrichten, wenn sich der Benutzer anmeldet. Beim Definieren von Workflowaufgaben geben wir Standardwerte für die Felder Empfänger, Thema, Status, Priorität und Fälligkeitsdatum für Aufgaben an, die durch eine zugehörige Workflowregel erstellt werden. Außerdem können wir sicherstellen, dass der Empfänger eine Benachrichtigungs-E-Mail erhält, wenn eine Aufgabe automatisch generiert wurde. Workflowfeldaktualisierungen Durch eine Workflowfeldaktualisierung wird der Wert eines bestimmten Felds in dem Datensatz geändert, der die Workflowregel ursprünglich auslöste. Es stehen auch objektübergreifende Feldaktualisierungen zum Ändern der Werte von Feldern in einem verknüpfen Masterdatensatz zur Verfügung. Nähere Informationen 289 Kapitel 9: Verwenden benutzerdefinierter Workflow- und Genehmigungsprozesse und Einschränkungen finden Sie in der Salesforce-Hilfe unter "Grundlegendes zu objektübergreifenden Feldaktualisierungen". Workflow-E-Mail-Benachrichtigungen Eine Workflow-E-Mail-Benachrichtigung sendet eine E-Mail gemäß einer angegebenen E-Mail-Vorlage. Im Gegensatz zu Workflowaufgaben, die nur Benutzern der Anwendung zugewiesen werden können, können Workflowbenachrichtigungen an jeden beliebigen Benutzer oder Kontakt gesendet werden, solange dieser über eine gültige E-Mail-Adresse verfügt. Anmerkung: Es sind weitere Aktionen verfügbar. Eine Workflowausgangsnachricht beispielsweise sendet Daten an einen externen Webservice, beispielsweise eine andere Anwendung in der Cloud. Ausgehende Nachrichten kommen in erster Linie bei Anwendungsprogrammierschnittstellen (APIs) zum Einsatz, weshalb wir sie in diesem Kapitel nicht verwenden. Informationen über weitere Aktionen finden Sie in der Salesforce-Hilfe unter "Workflow und Genehmigungen – Übersicht". Workflowregeln können jede beliebige Kombination von Aktionen enthalten, wenn die Regel ausgelöst wird. Beispielsweise könnte eine einzige Regel sowohl eine Benachrichtigung versenden als auch zwei Felder in einem bestimmten Datensatz aktualisieren. Die Aktion, die durch eine Workflowregel ausgeführt wird, kann auch die Ausführung einer weiteren Workflowregel auslösen. Workflow in der Personalbeschaffungsanwendung Jetzt haben wir uns mit den verschiedenen an einem Workflow beteiligten Komponenten vertraut gemacht. Überlegen wir uns also nun, wie wir mithilfe eines Workflows die Anforderungen erfüllen können, die im Abschnitt Informationen zur Beispielanwendung zur Personalbeschaffung auf Seite 23 besprochen wurden. Anschließend werden wir einige Zeit damit verbringen, die hier erarbeiteten Regeln zu implementieren. Wir haben bereits ein Beispiel erwähnt, in dem wir durch einen Workflow einen enormen Vorteil erhalten: beim automatischen Zuordnen einer Aufgabe zu einem Personalbeschaffungsmitarbeiter, wenn der Status eines Stellenbewerbungsdatensatzes in "Reject" (Ablehnen) oder "Extend an Offer" (Angebot unterbreiten) geändert wird. Das ist ein guter Anfang, aber was können wir noch tun? Erinnern wir uns an das letzte Kapitel zum Thema Sicherheit und Freigabe: Wir wollten sowohl Personalbeschaffungsmitarbeitern als auch Einstellungs-Managern die Berechtigung 290 Kapitel 9: Verwenden benutzerdefinierter Workflow- und Genehmigungsprozesse zum Erstellen neuer Stellen erteilen. Am Ende sollte jedoch immer nur ein Personalbeschaffungsmitarbeiter der Inhaber dieser Datensätze sein, da die Besetzung neuer Stellen in den Verantwortungsbereich der Personalbeschaffungsmitarbeiter fällt. Im Kapitel "Sicherheit und Freigabe" haben wir darauf hingewiesen, dass dies mithilfe eines Workflows erreicht werden kann. Wir müssen nur eine Workflow-Feldaktualisierung verwenden, um als Datensatzinhaber eines Stellendatensatzes einen Personalbeschaffungsmitarbeiter festzulegen, wenn der Datensatz ursprünglich durch einen Einstellungs-Manager erstellt wurde. Damit nicht ein einzelner Personalbeschaffungsmitarbeiter mit all diesen zusätzlichen Stellen überlastet wird, nutzen wir darüber hinaus eine weitere Funktion der Plattform, nämlich Warteschlangen, damit die nicht zugeordneten Stellendatensätze gleichmäßig verteilt werden. Wir stellen den Datensatz zusammen mit anderen Stellendatensätzen ohne Inhaber in eine Warteschlange und lassen dann einzelne Personalbeschaffungsmitarbeiter die Inhaberschaft für die gewünschten Positionen beanspruchen. Jetzt wollen wir darüber nachdenken, wie die Verfügbarkeit von Stellen im Unternehmen Universal Containers bekannt gegeben wird. Wie auch in vielen anderen Unternehmen werden bei Universal Containers Stellen vorzugsweise durch Weiterempfehlungen von Mitarbeitern besetzt. Häufig sind die Mitarbeiter jedoch gar nicht über die derzeit ausgeschriebenen Stellen informiert. Wir können mithilfe einer Workflowbenachrichtigung automatisch eine E-Mail an alle Mitarbeiter senden, wenn eine neue Stelle ausgeschrieben wird. Auf diese Weise erfahren die Mitarbeiter umgehend von den Stellen, sobald diese verfügbar werden, und bekommen die Gelegenheit, Freunde und Familienmitglieder darüber zu informieren, die möglicherweise interessiert sind. Klingt gut, oder? Es gibt bestimmt noch viel mehr Möglichkeiten, mithilfe von Workflows eine unglaublich gute On-Demand-Personalbeschaffungsanwendung in der Cloud zu erstellen, wir bleiben aber vorerst bei diesen drei Beispielen, da wir mit ihnen die Haupttypen von Workflowaktionen gut demonstrieren können. Fassen wir also zusammen, was wir erstellen werden: 1. Eine Workflowaufgabe, die einem Personalbeschaffungsmitarbeiter eine Aufgabe zuweist, sobald der Status einer Stellenbewerbung in "Rejected" (Abgelehnt) oder "Extend an Offer" (Angebot unterbreiten) geändert wird. 2. Eine Workflow-Feldaktualisierung, mit der die Inhaberschaft einer durch einen Einstellungs-Manager erstellten Stelle neu an eine Warteschlange mit Stellendatensätzen ohne Inhaber zuweist, sodass einzelne Personalbeschaffungsmitarbeiter die Inhaberschaft der gewünschten Stellen beanspruchen können 3. Eine Workflow-Benachrichtigung, mit der immer dann eine E-Mail an alle Mitarbeiter gesendet wird, wenn eine neue Stelle erstellt wird Legen wir also los. 291 Kapitel 9: Verwenden benutzerdefinierter Workflow- und Genehmigungsprozesse Erstellen von Workflowregeln zum Zuweisen von Aufgaben Für die erste Verwendung in einem Workflow erstellen wir zwei Regeln: eine, mit der die Aufgabe "Send Rejection Letter" (Absage senden) dem entsprechenden Personalbeschaffungsmitarbeiter zugewiesen wird, wenn der Wert für das Feld Status in einer Stellenbewerbung auf "Rejected" (Abgelehnt) gesetzt wird, und eine, mit der dem entsprechenden Personalbeschaffungsmitarbeiter die Aufgabe "Extend Offer" (Angebot unterbreiten) zugewiesen wird, wenn der Wert für das Feld Status in einer Stellenbewerbung auf "Extend an Offer" (Angebot unterbreiten) gesetzt wird. Beginnen wir mit der Workflowregel "Send Rejection Letter" (Absage senden). Probieren Sie es aus: Erstellen der Workflowregel "Send Rejection Letter" (Absage senden) Damit diese Regel vollständig funktionsfähig wird, müssen wir sowohl eine Workflowregel erstellen, die die Kriterien dafür angibt, wann die Regel ausgeführt werden soll, als auch eine Workflowaufgabe, die die Aufgabenvorlage "Send Rejection Letter" (Absage senden) enthält. Workflowkomponenten können zwar in beliebiger Reihenfolge definiert werden. Wir beginnen jedoch mit der Definition der Workflowregel selbst. Dadurch sparen wir uns später bei der Erstellung der zugehörigen Workflowaufgabe einige Klicks. 1. Klicken Sie unter "Setup" auf Erstellen > Workflow & Genehmigungen > Workflowregeln. 2. Wenn eine einführende Vorschaltseite angezeigt wird, klicken Sie einfach auf Fortfahren. 3. Klicken Sie auf Neue Regel. Als Erstes müssen wir das Objekt auswählen, das mit unserer Workflowregel verknüpft sein soll. Wie bereits erwähnt, muss jede Workflowregel mit genau einem Objekt verknüpft sein, um die Felder zu bestimmen, über die wir Kriterien festlegen können. Da diese Workflowregel ausgelöst werden muss, wenn das Feld Status eines Stellenbewerbungsdatensatzes auf "Ablehnen" gesetzt ist, müssen wir hier "Job Application" (Stellenbewerbung) auswählen. 4. Wählen Sie in der Dropdownliste "Objekt" die Option "Job Application" (Stellenbewerbung) aus und klicken Sie auf Weiter. Nun müssen wir die Details für unsere Workflowregel festlegen. 292 Kapitel 9: Verwenden benutzerdefinierter Workflow- und Genehmigungsprozesse 5. Geben Sie im Textfeld Regelname den Wert Send Rejection Letter (Absage senden) ein. 6. Geben Sie im Textfeld Beschreibung folgenden Text ein: Send a rejection letter when a hiring manager changes the status of a job application to Rejected (Absage senden, wenn ein Einstellungs-Manager den Status einer Stellenbewerbung auf "Abgelehnt" ändert). Verwenden Sie nun den Bereich "Evaluationskriterien", um anzugeben, wann diese Regel ausgewertet werden sollte. Folgende Optionen stehen zur Verfügung: Regel auswerten, wenn Beschreibung ein Datensatz: erstellt wird Regelkriterien bei jeder Erstellung eines Datensatzes auswerten. Wenn die Regelkriterien erfüllt sind, Regel ausführen. Alle Aktualisierungen für bestehende Datensätze ignorieren. Bei dieser Option wird die Regel nie mehrmals pro Datensatz ausgeführt. erstellt wird und bei Regelkriterien bei jeder Erstellung oder Aktualisierung eines jeder Bearbeitung Datensatzes auswerten. Wenn die Regelkriterien erfüllt sind, Regel ausführen. Bei dieser Option wird die Regel wiederholt bei jeder Bearbeitung des Datensatzes ausgeführt, solange der Datensatz die Kriterien der Regel erfüllt. Anmerkung: Wenn Sie diese Option auswählen, können Sie keine zeitabhängigen Aktionen zu der Regel hinzufügen. erstellt wird, und jederzeit, wenn er bearbeitet wird, damit er bestimmten Kriterien entspricht (Standard) Regelkriterien bei jeder Erstellung oder Aktualisierung eines Datensatzes auswerten. • Bei einem neuen Datensatz die Regel ausführen, wenn die Regelkriterien erfüllt werden. • Bei einem aktualisierten Datensatz die Regel nur ausführen, wenn die Änderung bewirkt, dass ein Datensatz, der zuvor die Regelkriterien nicht erfüllte, dies nun tut. Bei dieser Option kann die Regel mehrmals pro Datensatz ausgeführt werden. Sie wird jedoch nicht ausgeführt, wenn die 293 Kapitel 9: Verwenden benutzerdefinierter Workflow- und Genehmigungsprozesse Regel auswerten, wenn Beschreibung ein Datensatz: Bearbeitungen des Datensatzes nichts mit den Regelkriterien zu tun haben. Nehmen wir beispielsweise an, ein Opportunity-Datensatz erfüllt nur dann die Regelkritieren, wenn die Wahrscheinlichkeit für die Opportunity höher als 50 % ist. Wenn Sie eine Opportunity mit einer Wahrscheinlichkeit von 75 % erstellen, wird die Workflowregel ausgeführt. Falls Sie diese Opportunity nun ändern, indem Sie die Wahrscheinlichkeit auf 25 % setzen, so wird die Regel aufgrund dieser Bearbeitung nicht ausgeführt. Falls Sie diese Opportunity anschließend ändern, indem Sie die Wahrscheinlichkeit von 25 % auf 75 % setzen, verursacht diese Bearbeitung, dass die Regel ausgeführt wird. Nach dieser letzten Bearbeitung wird die Regel ausgeführt, da der Datensatz, der zuvor die Regelkriterien nicht erfüllt hat, dahingehend geändert wird, dass er die Regelkriterien erfüllt. Da wir nicht bei jedem Speichern des Datensatzes einem Personalbeschaffungsmitarbeiter doppelte Aufgaben zuweisen möchten, behalten wir die Standardoption bei. 7. Wählen Sie unter "Regel auswerten, wenn ein Datensatz:" die Option erstellt wird, und jederzeit, wenn er bearbeitet wird, damit er bestimmten Kriterien entspricht aus. Um die Definition der Regel abzuschließen, müssen wir die Bedingungen angeben, die die Ausführung der mit der Regel verknüpften Aktionen auslösen. Dazu haben wir folgende Möglichkeiten: Wir können eine Menge von Kriterien definieren, bei deren Erfüllung die Workflowregel ausgelöst wird, oder wir können eine Formel erstellen, die die Workflowregel auslöst, wenn sie als wahr ausgewertet wird. Das Erstellen einer Formel bietet zwar mehr Flexibilität, das Festlegen der Kriterien ist jedoch einfacher. Für diese Regel können wir unser Ziel durch das Festlegen der Kriterien erreichen. Verwenden wir also diese Vorgehensweise. Für jede Workflowregel ist mindestens eine Zeile an Filterkriterien erforderlich, wir können jedoch mittels weiterer Zeilen beliebig viele Filter festlegen. 8. Führen Sie in der ersten Zeile der Filterkriterien für die Regel folgende Vorgänge aus: 294 Kapitel 9: Verwenden benutzerdefinierter Workflow- und Genehmigungsprozesse • • • Setzen Sie die Spalte Feld auf Job Application: Status (Stellenbewerbung: Status). Setzen Sie die Spalte Operator auf equals (gleich). Setzen Sie die Spate Wert auf Rejected (Abgelehnt). 9. Klicken Sie auf Speichern & Weiter. Abbildung94: Erstellen einer neuen Workflowregel Bisher haben wir lediglich die Workflowregel "Send Rejection Letter" (Ablehnung schreiben) definiert. Wenn wir den Workflow-Assistenten abbrechen und unter "Setup" auf Erstellen > Workflow & Genehmigungen > Workflowregeln klicken würden, würde die Regel in der Listenansicht angezeigt. Da jedoch Workflowregeln ohne eine damit verknüpfte Aktion nicht sonderlich nützlich sind, führt uns der Workflow-Assistent direkt zu einem Bildschirm, in dem wir die Workflowaufgabe "Send Rejection Letter" (Ablehnung schreiben) definieren können. Gehen wir das nun gemeinsam durch. 295 Kapitel 9: Verwenden benutzerdefinierter Workflow- und Genehmigungsprozesse Probieren Sie es aus: Erstellen der Workflowaufgabe "Send Rejection Letter" (Absage senden) Im Schritt "Workflow-Aktionen angeben" im Workflow-Assistenten können Sie die Aktionen, wie Aufgaben, Feldaktualisierungen und E-Mail-Benachrichtigungen, angeben, die ausgeführt werden sollen, wenn die Bedingung für unsere Workflowregel erfüllt wird. Abbildung95: Angeben von Workflowaktionen Sie können entweder Aktionen definieren, die direkt stattfinden sollen, sobald die Bedingung erfüllt ist. Alternativ haben Sie die Möglichkeit, Aktionen zu definieren, die eine bestimmte Zeit vor oder nach einem festgelegten Zeitpunkt stattfinden sollen, beispielsweise sieben Tage vor dem im Feld Hire By (Einstellen bis) angegebenen Datum oder drei Tage nach dem Auslösen der Workflowregel. Auf diese zeitabhängigen Workflowaktionen gehen wir etwas später genauer ein. Vorerst müssen wir nur eine einzige Workflowaufgabe definieren, die ausgeführt wird, sobald die Kriterien für die Regel erfüllt sind. 1. Klicken Sie im Bereich "Sofortige Workflowaktionen" auf Workflowaktion hinzufügen und wählen Sie Neue Aufgabe. Haben Sie bemerkt, dass im Feld Objekt bereits der Eintrag "Job Application" (Stellenbewerbung) vorhanden ist? An dieser Stelle konnten wir uns einige Klicks sparen: Hätten wir mit der Erstellung unserer Workflowaufgabe begonnen, bevor wir die Workflowregel erstellt hatten, hätten wir das Objekt angeben müssen, dem die Aufgabe zugeordnet werden 296 Kapitel 9: Verwenden benutzerdefinierter Workflow- und Genehmigungsprozesse soll. Das liegt daran, dass Workflowaktionen genau wie Workflowregeln einem einzelnen Objekt zugeordnet werden müssen. In diesem Fall müssen wir eine Seite überspringen, da das Objekt, dem eine Workflowaktion zugeordnet ist, mit dem Objekt der verwendeten Workflowregel übereinstimmen muss. Hätten wir dem Objekt "Candidate" (Bewerber) beispielsweise eine Workflowregel zugeordnet, müssten auch alle Aktionen, die durch die Workflowregel für "Candidate" (Bewerber) ausgelöst würden, ebenfalls dem Objekt "Candidate" (Bewerber) zugeordnet werden. Da wir im Assistenten mit dem Erstellen unserer Workflowaufgabe "Send Rejection Letter" (Absage senden) direkt begonnen haben, nachdem wir die gleichnamige Workflowregel im Assistenten erstellt haben, war der Plattform bekannt, dass das Objekt, das unserer Aufgabe zugeordnet ist, mit der bereits erstellten Regel übereinstimmen muss. Daher ist unsere neue Workflowaufgabe dem Objekt "Job Application" (Stellenbewerbung) bereits zugeordnet. Die restlichen Felder auf dieser Bearbeitungsseite dienen als Vorlage für alle Aufgaben namens "Send Rejection Letter" (Absage senden), die mit unserer Workflowregel erstellt werden. 2. Klicken Sie neben dem Feld Zugewiesen zu auf das Nachschlagesymbol ( ). Hier können wir den Empfänger der Aufgabe durch Angabe eines bestimmten Benutzers, einer Rolle oder eines Inhabers des Stellenbewerbungsdatensatzes, der die Workflowregel ausgelöst hat, festlegen. Da die Personalbeschaffungsmitarbeiter immer die Inhaber der Stellenbewerbungsdatensätze für die Stellen sind, für die sie die Verantwortung tragen, und es bei Universal Containers auch ihre Aufgabe ist, Absagen zu verschicken, wählen wir nun den Datensatzinhaber aus. 3. Wählen Sie in der Dropdownliste Typ den Eintrag "Inhaber" aus. 4. Klicken Sie auf Job Application Owner (Stellenbewerbung-Inhaber). ACHTUNG: Möglicherweise dachten Sie, dass auch die Auswahl der Rolle "Recruiter" (Personalbeschaffungsmitarbeiter) im Feld Zugewiesen zu eine gültige Option sei, aber seien Sie vorsichtig. Wenn es sich bei dem Empfänger einer Workflowaufgabe um eine Rolle handelt, die mehrere zugewiesene Benutzer enthält, wird die Person, die die Regel ausgelöst hat, zum Empfänger der Aufgabe. Aus diesem Grund sollten Sie Workflowaufgaben niemals Rollen zuweisen, es sei denn, Sie sind sich ganz sicher, dass ihnen immer nur ein Benutzer zugewiesen ist. Die Festlegungen für die restlichen Felder der Workflowaufgabe sind ganz einfach. 5. Geben Sie im Textfeld Thema Send Rejection Letter (Absage senden) ein. 6. Wählen Sie in den Dropdownlisten mit dem Namen Fälligkeitsdatum die Option "Auslösedatum der Regel plus 2 Tage" aus. 297 Kapitel 9: Verwenden benutzerdefinierter Workflow- und Genehmigungsprozesse Mit dieser Einstellung für Fälligkeitsdatum haben die Personalbeschaffungsmitarbeiter zwei Tage Zeit, den Bewerber zu benachrichtigen, nachdem ihnen die Aufgabe zum ersten Mal zugewiesen wurde. 7. Wählen Sie in der Dropdownliste Status die Option "Not Started" (Nicht gestartet) aus. 8. Wählen Sie in der Dropdownliste Priorität "Hoch" aus. Durch das Aktivieren des Kontrollkästchens Empfänger benachrichtigen können wir dem Empfänger immer eine E-Mail senden, sobald die Aufgabe durch die Workflowregel erstellt wird. Dadurch wird sichergestellt, dass der Empfänger von der Aufgabe erfährt, ohne dass er sich regelmäßig bei der Anwendung anmelden muss. Also wählen wir diese Option aus. 9. Aktivieren Sie das Kontrollkästchen Empfänger benachrichtigen. 10. Klicken Sie auf Speichern. 11. Klicken Sie auf Fertig. Abbildung96: Erstellen der Workflowaufgabe "Send Rejection Letter" (Absage senden) An dieser Stelle können wir endlich die Detailseite für die soeben erstellte Workflowregel anzeigen. Sie enthält die Kriterien für die Workflowregel und eine Liste der zugehörigen Aktionen. Jetzt müssen wir die Regel nur noch aktivieren. 12. Klicken Sie auf Aktivieren. 298 Kapitel 9: Verwenden benutzerdefinierter Workflow- und Genehmigungsprozesse Alles erledigt. Wir haben gerade unsere erste Workflowregel und -aufgabe erstellt. Sie werden feststellen, dass auch die restlichen Workflowaktionen auf sehr ähnliche Weise funktionieren, sodass wir uns hier kurz fassen und uns auf die Felder konzentrieren, die nur für die jeweiligen Aktionen vorkommen. Probieren Sie es aus: Erstellen der Workflowregel und der Aufgabe "Extend an Offer" (Angebot unterbreiten) Um unseren ersten Fall abzuschließen, müssen wir eine weitere Workflowregel für den Fall erstellen, dass der Status einer Stellenbewerbung auf "Extend an Offer" (Angebot unterbreiten) gesetzt wird. Diese Regel und Aufgabe sind mit der Workflowregel und der Aufgabe "Send Rejection Letter" (Absage senden) nahezu identisch, sodass wir in den folgenden beiden Tabellen nur die Werte auflisten, die Sie hierfür benötigen. Tabelle41: Werte für die Erstellung der Workflowregel "Extend an Offer" (Angebot unterbreiten) Feld Wert Objekt Job Application (Stellenbewerbung) Name Extend an Offer (Angebot unterbreiten) Beschreibung Make an offer when a hiring manager changes the status of a job application to Extend Offer. (Unterbreiten Sie ein Angebot, wenn ein Einstellungs-Manager den Status einer Stellenbewerbung auf "Extend Offer" (Angebot unterbreiten) setzt.) Regel auswerten, wenn ein Datensatz: erstellt wird, und jederzeit, wenn er bearbeitet wird, damit er bestimmten Kriterien entspricht Filterkriterien Job Application (Stellenbewerbung): Status equals Extend an Offer (Status gleich Angebot unterbreiten) Tabelle42: Werte für die Erstellung der Workflowaufgabe "Extend an Offer" (Angebot unterbreiten) Feld Wert Zugewiesen zu Job Application Owner (Stellenbewerbung-Inhaber) 299 Kapitel 9: Verwenden benutzerdefinierter Workflow- und Genehmigungsprozesse Feld Wert Thema Extend an Offer (Angebot unterbreiten) Fälligkeitsdatum Auslösedatum der Regel plus 1 Tage Status Not Started (Nicht gestartet) Priorität Hoch Empfänger benachrichtigen? Ja Alles erledigt. Vergewissern Sie sich, dass auch die Regel "Extend an Offer" (Angebot unterbreiten) aktiviert ist und dann legen wir los und probieren eine unserer neuen Workflowregeln aus. Rekapitulation Probieren wir unsere neue Workflowregel "Send Rejection Letter" (Absage senden) aus und sehen wir uns an, was geschieht: 1. Klicken Sie auf die Registerkarte "Job Applications" (Stellenbewerbungen) und wählen Sie einen Stellenbewerbungsdatensatz aus. 2. Klicken Sie auf Bearbeiten und ändern Sie Status in Rejected (Abgelehnt). 3. Klicken Sie auf Speichern. Die Aufgabe "Send Rejection Letter" (Absage senden) wird automatisch in der Themenliste "Offene Aktivitäten" der Detailseite "Job Application" (Stellenbewerbung) angezeigt, wie im folgenden Screenshot zu sehen. 300 Kapitel 9: Verwenden benutzerdefinierter Workflow- und Genehmigungsprozesse Abbildung97: Themenliste "Offene Aktivitäten" auf der Detailseite "Job Application" (Stellenbewerbung) Nicht schlecht, oder? Nicht nur das: Wenn Sie im Posteingang des Personalbeschaffungsmitarbeiters nachsehen, sollte dieser eine automatisch generierte E-Mail-Benachrichtigung erhalten haben, die wie folgt aussieht: Jane Smith has assigned you a new task: Subject: Send Rejection Letter Job Application: JA-00002 Due Date: 8/29/2013 Priority: High For more details, click the following link: https://na1.salesforce.com/00Tx04123s5k1 Der Link in der E-Mail-Nachricht führt den Personalbeschaffungsmitarbeiter direkt zur Aufgabendetailseite, wo er die Kontaktinformationen des Bewerbers finden und nach Abschluss der Aufgabe den Aufgabenstatus aktualisieren kann. Die Aufgabe wird außerdem im Bereich "Meine Aufgaben" auf der Registerkarte "Startseite" des Personalbeschaffungsmitarbeiters angezeigt und einen Tag später wird eine Erinnerungsnachricht als Popup eingeblendet, wenn er bis dahin den Status der Aufgabe nicht zu "Abgeschlossen" geändert hat. Und schon hat sich die Interaktivität und Leistungsfähigkeit unserer Personalbeschaffungsanwendung enorm erhöht. 301 Kapitel 9: Verwenden benutzerdefinierter Workflow- und Genehmigungsprozesse Erstellen einer Workflowregel, die Felder aktualisiert Für unseren nächsten Anwendungsfall möchten wir eine Workflowregel erstellen, die sicherstellt, dass der Inhaber eines neuen Stellendatensatzes immer ein Personalbeschaffungsmitarbeiter ist. Zu diesem Zweck werden wir eine Workflow-Feldaktualisierung definieren, mit der die Inhaberschaft einer durch einen Einstellungs-Manager erstellten Stelle neu an eine Warteschlange mit Stellendatensätzen ohne Inhaber zugewiesen wird. Sobald sich ein Stellendatensatz in der entsprechenden Warteschlange befindet, können einzelne Personalbeschaffungsmitarbeiter die Inhaberschaft an den von Ihnen gewünschten Stellen beanspruchen. Um aber nicht zu weit vorzugreifen, möchten wir noch einen Moment innehalten. Denn was genau ist eigentlich eine Warteschlange? Einführung in Warteschlangen Vergleichbar mit einer Kiste für Fundsachen ist eine Warteschlange auch eine Sammlung von Datensätzen, die keinen Inhaber haben. Benutzer, die Zugriff auf die Warteschlange haben, können jeden darin vorhandenen Datensatz untersuchen und die Inhaberschaft für die von ihnen gewünschten Datensätze beanspruchen. Warteschlangen werden normalerweise in Vertriebs- und Supportorganisationen verwendet, um neue Leads uns Support-Kundenvorgänge an die Mitarbeiter zu verteilen, die die meisten Kapazitäten haben. Da die Plattform Warteschlangen für Leads, Kundenvorgänge und beliebige benutzerdefinierte Objekte nativ unterstützt, können wir eine Warteschlange für das Objekt "Position" (Stelle) der Personalbeschaffungsanwendung erstellen. Probieren Sie es aus: Erstellen einer Warteschlange für Stellen Um eine Warteschlange zu definieren, müssen wir wissen, welche Datensatztypen in der Warteschlange platziert werden können (in unserem Fall Stellen), und welche Benutzer Datensätze aus ihr herausziehen können (in unserem Fall Personalbeschaffungsmitarbeiter). Wenn uns diese beiden Punkte bekannt sind, lässt sich die Warteschlange selbst mit nur wenigen einfachen Klicks definieren: 1. Klicken Sie unter "Setup" auf Benutzer verwalten > Warteschlangen. 2. Klicken Sie auf Neu. 302 Kapitel 9: Verwenden benutzerdefinierter Workflow- und Genehmigungsprozesse 3. Geben Sie im Textfeld Bezeichnung Unclaimed Positions Queue (Warteschlange für nicht beanspruchte Stellen) ein. 4. Geben Sie in das Textfeld Warteschlangen-E-Mail eine E-Mail-Adresse einer Einzelperson oder einer Verteilerliste ein, beispielsweise [email protected]. Wenn Sie in das Textfeld Warteschlangen-E-Mail klicken, wir das Textfeld Warteschlangenname automatisch gefüllt. 5. Wählen Sie E-Mail an Mitglieder senden. Beachten Sie hierbei, dass wir, falls es sich bei [email protected] tatsächlich um eine E-Mail-Verteilerliste an alle Personalbeschaffungsmitarbeiter handeln würde, die Option E-Mail an Mitglieder senden nicht auswählen müssten. Wir wählen diese Option hier nur aus, weil [email protected] eine erfundene E-Mail-Adresse ist, die später nicht zum Testen verwendet werden kann. Es stehen zwei Optionen für die Benachrichtigung der Warteschlangenmitglieder zur Verfügung, wenn neue Datensätze zur Warteschlange hinzugefügt werden. E-Mail an Mitglieder senden nicht ausgewählt • • Wenn Sie keine Warteschlangen-E-Mail angeben, werden die einzelnen Warteschlangenmitglieder immer benachrichtigt, unabhängig davon, ob das Kontrollkästchen E-Mail an Mitglieder senden aktiviert ist. Wenn Sie eine Warteschlangen-E-Mail-Adresse angeben, wird nur diese Adresse benachrichtigt. E-Mail an Mitglieder senden ausgewählt • • Wenn Sie keine Warteschlangen-E-Mail angeben, werden die einzelnen Warteschlangenmitglieder immer benachrichtigt, unabhängig davon, ob das Kontrollkästchen E-Mail an Mitglieder senden aktiviert ist. Wenn Sie eine Warteschlangen-E-Mail-Adresse angeben, werden diese Adresse und die einzelnen Warteschlangenmitglieder benachrichtigt. Beachten Sie, dass, falls ein einzelnes Warteschlangenmitglied auch die E-Mails empfängt, die an die angegebene Warteschlangen-E-Mail-Adresse gesendet werden, die entsprechende Person doppelte Benachrichtigungen empfängt. 6. Verschieben Sie im Abschnitt "Unterstützte Objekte" das Objekt "Position" (Stelle) in die Liste "Ausgewählte Objekte". 303 Kapitel 9: Verwenden benutzerdefinierter Workflow- und Genehmigungsprozesse Abbildung98: Definieren einer Warteschlange Wie Sie sehen, können mit einer einzigen Warteschlange mehrere Objekte verarbeitet werden – die Plattform bietet Ihnen diese Möglichkeit, damit Sie nicht mehrere Warteschlangen für dieselbe Gruppe von Benutzern definieren müssen. 7. Wählen Sie im Abschnitt "Warteschlangenmitglieder" die Option Rollen und nachgeordnete Positionen in der Dropdownliste "Suche" aus. 8. Verschieben Sie Rollen und nachgeordnete Positionen: Recruiting Manager (Personalbeschaffungsmanager) in die Liste "Ausgewählte Mitglieder". 304 Kapitel 9: Verwenden benutzerdefinierter Workflow- und Genehmigungsprozesse 9. Klicken Sie auf Speichern. Perfekt! Wir haben soeben eine neue Warteschlange definiert, die als temporärer Inhaber für all die Stellendatensätze eingesetzt werden kann, die von Einstellungs-Managern erstellt werden. Immer wenn eine Stelle in der Warteschlange platziert wird, werden alle Personalbeschaffungsmitarbeiter benachrichtigt und die entsprechende Person kann die Inhaberschaft für sich beanspruchen. Nun müssen wir lediglich eine Workflowregel definieren, die die entsprechenden Stellendatensätze in die Warteschlange stellt. Probieren Sie es aus: Erstellen einer Workflowregel, die Felder aktualisiert Nun, da unsere Warteschlange einsatzbereit ist, können wir damit fortfahren, unsere Workflowregel zu definieren. 1. Klicken Sie unter "Setup" auf Erstellen > Workflow & Genehmigungen > Workflowregeln. 2. Klicken Sie auf Neue Regel. 3. Wählen Sie in der Dropdownliste "Objekt" den Eintrag Position (Stelle) aus und klicken Sie auf Weiter. 4. Geben Sie im Textfeld Regelname den Text Assign Position to Recruiter (Stelle einem Personalbeschaffungsmitarbeiter zuweisen) ein. 5. Geben Sie im Textfeld Beschreibung den Text Reassign position records to a recruiter if they were created by another type of employee (Stellendatensätze erneut einem Personalbeschaffungsmitarbeiter zuweisen, wenn sie von einem anderen Mitarbeitertyp erstellt wurden) ein. Wir wissen zwar, dass Personalbeschaffungsmitarbeiter fast immer die Inhaber von Stellendatensätzen sein sollten, dies sollte jedoch eine Organisation nicht behindern, wenn in einem besonderen Fall ein Mitarbeiter, der kein Personalbeschaffungsmitarbeiter ist, stattdessen Inhaber des Datensatzes sein sollte. Werten wir diese Regel erst aus, wenn ein Datensatz erstellt wird, damit für den Fall, dass eine Ausnahme gemacht werden muss, der Workflow keine Änderungen ablöst, die von einem Personalbeschaffungsmitarbeiter vorgenommen wurden. 6. Wählen Sie im Feld Regel auswerten, wenn ein Datensatz: den Wert erstellt aus. Schließlich müssen wir noch sicherstellen, dass diese Regel immer dann initiiert wird, wenn ein Stellendatensatz von einer Person erstellt wird, die kein Personalbeschaffungsmitarbeiter 305 Kapitel 9: Verwenden benutzerdefinierter Workflow- und Genehmigungsprozesse oder Personalbeschaffungsmanager ist. Wir können diese Filterkriterien in einer einzigen Zeile angeben, indem wir ein Komma in der Spalte Wert verwenden. 7. Im Abschnitt "Regelkriterien": • • • Legen Sie in der Spalte "Feld" den Wert Aktueller Benutzer: Rolle fest. Setzen Sie die Spalte "Operator" auf nicht gleich. Setzen Sie die Spalte "Wert" auf Recruiter, Recruiting Manager (Personalbeschaffungsmitarbeiter, Personalbeschaffungsmanager). 8. Klicken Sie auf Speichern & Weiter. Erstellen wir nun die Feldaktualisierungsaktion für diese Workflowregel. 9. Klicken Sie im Bereich "Sofortige Workflowaktionen" auf Workflowaktion hinzufügen und wählen Sie Neue Feldaktualisierung. 10. Geben Sie im Textfeld Name den Text Reassign Position to Queue (Stelle erneut zu Warteschlange zuweisen) ein. 11. Geben Sie im Testfeld Beschreibung den Text Assign the Position to the Unclaimed Positions Queue (Stelle zur Warteschlange für nicht beanspruchte Stellen zuweisen) ein. 12. Wählen Sie in der Dropdownliste Zu aktualisierendes Feld die Option "Inhaber". Sobald Sie in dieser Dropdownliste eine Auswahl vornehmen, werden neue Optionen je nach Ihrer Auswahl direkt darunter angezeigt. 13. Wählen Sie in der Dropdownliste Inhaber die Option "Warteschlange". 14. Klicken Sie auf das Nachschlagesymbol ( ) und wählen Sie Unclaimed Positions Queue (Warteschlange für nicht beanspruchte Stellen) aus. 15. Wählen Sie Empfänger benachrichtigen aus. 16. Klicken Sie auf Speichern. Das war nicht allzu schwer. Bevor wir diese Workflowregel jedoch hinter uns lassen, sollten wir sie mit einer zweiten Workflowaktion ausstatten – mit einer, die sicherstellt, dass keine Stellen in der Warteschlange vergessen werden, ohne dass sie von einem Personalbeschaffungsmitarbeiter beansprucht werden. In diesem Fall verwenden wir eine zeitabhängige Workflowaktion. 306 Kapitel 9: Verwenden benutzerdefinierter Workflow- und Genehmigungsprozesse Einführung in zeitabhängige Workflowaktionen Wie bereits erwähnt, handelt es sich bei zeitabhängigen Workflowaktionen um Aktionen, die eine bestimmte Zeit vor oder nach einem festgelegten Zeitpunkt stattfinden sollen, beispielsweise sieben Tage vor dem im Feld Hire By (Einstellen bis) angegebenen Datum oder drei Tage nach dem Auslösen der Workflowregel. Wir können zeitabhängige Workflowaktionen verwenden, um Aufgaben, Feldaktualisierungen und E-Mail-Benachrichtigungen auszulösen, wenn die Bedingung einer Workflowregel erfüllt ist. So dient zum Beispiel das erneute Zuweisen von Stellendatensätzen zur Warteschlange für nicht beanspruchte Stellen dazu, dass der entsprechende Personalbeschaffungsmitarbeiter die Inhaberschaft übernimmt. Es kann jedoch vorkommen, dass eine Stelle in die Warteschlange gestellt wird und von keinem Personalbeschaffungsmitarbeiter beansprucht wird. Anstatt die Stelle in der Warteschlange verharren zu lassen, ohne dass sie beansprucht wird, können wir eine zeitabhängige Workflowaktion definieren, durch die der Personalbeschaffungsmanager benachrichtigt wird, wenn kein Personalbeschaffungsmitarbeiter den Stellendatensatz innerhalb einer bestimmten Anzahl von Tagen beansprucht. Da diese Aktion nur stattfindet, wenn die Bedingung erfüllt ist (d. h., solange der Inhaber der Stelle ein Mitarbeiter ist, der kein Personalbeschaffungsmitarbeiter ist), wird der Manager nur benachrichtigt, wenn dies notwendig ist. Nicht schlecht, oder? Sehen wir uns nun an, wie zeitabhängige Aktionen definiert werden. Probieren Sie es aus: Erstellen der zeitabhängigen Workflowaufgabe "Notify Recruiting Manager" (Personalbeschaffungsmanager benachrichtigen) An dieser Stelle sollten wir uns nach wie vor auf der Seite "Angeben von Workflowaktionen" für unsere Workflowregel "Assign Position to Recruiter Queue" (Stelle zu Personalbeschaffungsmitarbeiter-Warteschlange zuweisen) befinden. Falls nicht, können wir dorthin zurückkehren, indem wir unter "Setup" auf Erstellen > Workflow & Genehmigungen > Workflowregeln klicken, dann auf "Assign Position to Recruiter" (Stelle einem Personalbeschaffungsmitarbeiter zuweisen) und schließlich Bearbeiten im Abschnitt "Workflowaktionen" auswählen. 307 Kapitel 9: Verwenden benutzerdefinierter Workflow- und Genehmigungsprozesse Bevor wir eine zeitabhängige Workflowaufgabe definieren können, müssen wir zunächst einen Zeitauslöser angeben. Zeitauslöser definieren, wann die zeitabhängigen Workflowaktionen ausgelöst werden sollen. 1. Klicken Sie auf Zeitauslöser hinzufügen. In diesem Fall möchten wir, dass unser Personalbeschaffungsmanager drei Tage, nachdem eine Stelle der Warteschlange für nicht beanspruchte Stellen zugewiesen wurde, benachrichtigt wird. 2. Verwenden Sie das Textfeld und die Dropdownlisten und geben Sie Folgendes an: 3 Days After Rule Trigger Date (3 Tage nach Auslösedatum der Regel). 3. Klicken Sie auf Speichern. Abbildung99: Die Bearbeitungsseite für den Zeitauslöser Unser Zeitauslöser wird jetzt im Abschnitt "Zeitabhängige Workflowaktionen" aufgelistet. Die Dropdown-Schaltfläche Workflowaktion hinzufügen ist jetzt aktiv und wir können unsere Workflowaufgabe wie gewohnt definieren. 4. Klicken Sie im Abschnitt "Zeitabhängige Workflowaktionen" auf Workflowaktion hinzufügen und wählen Sie Neue Aufgabe. 5. Wählen Sie im Feld Zugewiesen zu die Rolle "Recruiting Manager" (Personalbeschaffungsmanager). Anmerkung: Bedenken Sie, dass Workflowaufgaben einer Rolle nur dann zugewiesen werden sollten, wenn Sie sicher sind, dass dieser Rolle jeweils immer nur ein Benutzer zugewiesen ist. Falls die Rolle mehrere Benutzer aufweist, wird die Aufgabe dem Inhaber der Workflowregel zugewiesen. 6. Geben Sie im Feld Thema den TextAssign Unclaimed Position Record to Recruiter (Nicht beanspruchten Stellendatensatz zu Personalbeschaffungsmitarbeiter zuweisen) ein. Wenn Sie den Mauszeiger vom Feld Thema wegbewegen, sollte Assign_Unclaimed_Position_Record_to_Recruiter im Feld Eindeutiger Name stehen. 308 Kapitel 9: Verwenden benutzerdefinierter Workflow- und Genehmigungsprozesse 7. Legen Sie für das Feld Fälligkeitsdatum den Wert Auslösedatum der Regel plus 4 Tage fest. Da diese Workflowaktion erst drei Tage nach dem ursprünglichen Auslösedatum der Regel ausgelöst wird, hat der Personalbeschaffungsmanager, wenn wir das Fälligkeitsdatum auf vier Tage nach dem Auslösedatum der Regel festlegen, noch einen zusätzlichen Tag, um die Stelle einem Personalbeschaffungsmitarbeiter zuzuweisen. 8. Setzen Sie Status auf Nicht begonnen. 9. Setzen Sie Priorität auf Hoch. 10. Wählen Sie Empfänger benachrichtigen aus. 11. Klicken Sie auf Speichern. 12. Klicken Sie auf Fertig. Wir sind fast fertig. Zum jetzigen Zeitpunkt müssen wir nur noch unsere Workflowregel aktivieren. Wenn Sie jedoch jetzt auf die Schaltfläche Aktivieren klicken, werden Sie durch eine Fehlermeldung darauf hingewiesen, dass vor dem Aktivieren der Regel der standardmäßige Workflowbenutzer festgelegt werden muss. Was hat es damit auf sich? Der standardmäßige Workflowbenutzer ist der Benutzer, der als Inhaber einer Workflowaktion zugewiesen sein sollte, falls der Benutzer, der die Regel ursprünglich ausgelöst hat, nicht mehr aktiv ist. Wenn Ihre Organisation zeitabhängige Aktionen in Workflowregeln verwendet, müssen Sie einen standardmäßigen Workflowbenutzer festlegen. Salesforce zeigt diesen Benutzernamen im Feld Ersteller für Aufgaben, im Feld Sendender Benutzer für E-Mails und im Feld Zuletzt geändert von für Feldaktualisierungen an. Salesforce zeigt diesen Benutzernamen nicht für ausgehende Nachrichten an. Falls ein Problem mit einer ausstehenden Aktion auftritt, erhält der standardmäßige Workflowbenutzer eine E-Mail-Benachrichtigung. Festlegen des standardmäßigen Workflowbenutzers: 13. Klicken Sie unter "Setup" auf Erstellen > Workflow & Genehmigungen > Einstellungen. Anmerkung: Falls Sie auf Aktivieren klicken, ohne dass Sie den standardmäßigen Workflowbenutzer zuvor festgelegt haben, und falls Sie dann im Fehlerdialogfeld auf OK klicken, werden Sie direkt zur Seite "Einstellungen für Workflow & Genehmigungen" weitergeleitet. 14. Legen Sie im Feld Standardmäßiger Workflowbenutzer einen beliebigen Benutzer in Ihrer Organisation fest. In den meisten Fällen empfiehlt es sich, einen Systemadministrator auszuwählen. 15. Klicken Sie auf Speichern. Jetzt können wir die Workflowregel aktivieren: 309 Kapitel 9: Verwenden benutzerdefinierter Workflow- und Genehmigungsprozesse Anmerkung: Wenn Sie die Seite "Einstellungen für Workflow & Genehmigungen" durch Klicken auf Aktivieren und anschließendes Klicken auf OK im Fehlerdialogfeld erreicht haben, wird Ihre Workflowregel durch Klicken auf Speichern ebenfalls automatisch aktiviert. 16. Klicken Sie unter "Setup" auf Erstellen > Workflow & Genehmigungen > Workflowregeln. 17. Klicken Sie neben der Workflowregel "Assign Position to Recruiter" (Stelle einem Personalbeschaffungsmitarbeiter zuweisen) auf Aktivieren. Rekapitulation Hervorragend! Jetzt verfügen wir über eine Workflowregel, mit der Stellendatensätze, die nicht von Personalbeschaffungsmitarbeitern erstellt wurden, in eine Warteschlange mit noch nicht beanspruchten Stellen gestellt werden. Wenn sie nicht innerhalb von drei Tagen durch einen Personalbeschaffungsmitarbeiter beansprucht werden, wird dem jeweiligen Personalbeschaffungsmanager eine Aufgabe zugewiesen. Wenn Sie es ausprobieren möchten, melden Sie sich einfach als Einstellungs-Manager (beispielsweise als Ben Stuart) an und erstellen Sie eine neue Stelle. Sobald Sie zur Detailseite für die Stelle zurückkehren, werden Sie feststellen, dass die Warteschlange für nicht beanspruchte Stellen automatisch als Datensatzinhaber zugewiesen wurde. Darüber hinaus haben alle Benutzer, denen die Rolle "Recruiter" (Personalbeschaffungsmitarbeiter) oder "Recruiting Manager" (Personalbeschaffungsmanager) zugeordnet ist, eine E-Mail-Benachrichtigung erhalten. Wenn Sie den Inhalt der Warteschlange anzeigen möchten, klicken Sie auf die Registerkarte "Positions" (Stellen) und wählen Sie in der Dropdownliste "Anzeigen" den Eintrag Unclaimed Positions Queue (Warteschlange für nicht beanspruchte Stellen) aus. Jeder Personalbeschaffungsmitarbeiter oder Personalbeschaffungsmanager kann auf dieser Seite auf Akzeptieren klicken und die Inhaberschaft für die neue Stelle übernehmen. Unsere Workflowaufgabe "Assign Unclaimed Position Record to Recruiter" (Nicht beanspruchten Stellendatensatz zu Personalbeschaffungsmitarbeiter zuweisen) wird zwar erst nach drei Tagen aktiviert, wir können anhand der Workflow-Warteschlange jedoch sehen, dass die Ausführung der Workflowaufgabe momentan geplant ist. In der Warteschlange werden alle zeitabhängigen Workflowaktionen aufgelistet, die zukünftig geplant sind. Anzeigen: 1. Melden Sie sich in Ihrer Organisation erneut als Administrator an. 2. Klicken Sie unter "Setup" auf Zeitbasierter Workflow oder auf Überwachen > Zeitbasierter Workflow. 3. Klicken Sie auf Suche. 310 Kapitel 9: Verwenden benutzerdefinierter Workflow- und Genehmigungsprozesse Abbildung100: Die Seite zum Überwachen der Workflow-Warteschlange Nachdem ein Personalbeschaffungsmitarbeiter die Inhaberschaft des neuen Stellendatensatzes übernommen hat, wird die entsprechende Aufgabe aus der Workflow-Warteschlange gelöscht. Ganz schön praktisch, oder? Erstellen wir nun eine letzte Workflowregel, um zu sehen, wie eine E-Mail-Benachrichtigung erstellt wird. Erstellen einer Workflowregel, die E-Mail-Benachrichtigungen sendet Für unser letztes Beispiel für die Anwendung eines Workflows erstellen wir eine Workflowregel und eine E-Mail-Benachrichtigung, mit denen immer dann eine Benachrichtigung gesendet wird, wenn eine neue Stelle erstellt wird. Wir möchten alle Mitarbeiter bei Universal Containers über neue freie Stellen informieren, um ihnen die Gelegenheit zu geben, Weiterempfehlungen einzubringen. Für diese Workflowregel müssen wir zunächst einen bestimmten Schritt ausführen: wir müssen eine Vorlage für die E-Mail-Benachrichtigung entwerfen. Einführung zu E-Mail-Vorlagen Die Plattform beinhaltet integrierte Tools zum Festlegen von Sicherheitsberechtigungen, zum Verfolgen von Ereignissen und Aufgaben und zum Erstellen einer Geschäftslogik mithilfe eines Workflows. Darüber hinaus steht auch ein integriertes Tool zum Verfassen von E-Mails an Benutzer und Kontakte in Ihrer Organisation zur Verfügung. Mithilfe von E-Mail-Vorlagen 311 Kapitel 9: Verwenden benutzerdefinierter Workflow- und Genehmigungsprozesse können Sie E-Mail-Formulare erstellen, mit denen eine Standardnachricht wie ein Begrüßungsschreiben für neue Mitarbeiter oder eine Bestätigung über den Empfang einer Kundendienstanfrage kommuniziert wird. Wenn wir den Inhalt einer E-Mail-Vorlage anpassen möchten, können wir mithilfe von Briefvorlagenfeldern Werte aus Datensätzen, die im System gespeichert sind, integrieren. Wenn wir beispielsweise den Empfänger einer E-Mail mit dem Vornamen ansprechen möchten, können wir wie folgt eine E-Mail-Vorlage erstellen: Dear {!Contact.FirstName}, ... In diesem Beispiel ist {!Contact.FirstName} ein Briefvorlagenfeld, über das der Vorname des Kontakts eingefügt wird, an den die E-Mail adressiert ist. Eine E-Mail an John Smiley würde also wie folgt lauten: Dear John, ... Für die Workflowbenachrichtigung können wir eine E-Mail-Vorlage erstellen, mit der Benutzer über die im System neu hinzugefügten Stellen informiert werden. Mithilfe von Briefvorlagenfeldern können wir Informationen aus dem Stellendatensatz einfügen, beispielsweise den Titel und die erforderlichen Fertigkeiten. Fahren wir damit also fort. Danach schließen wir unsere letzte Workflowregel ab. Probieren Sie es aus: Erstellen einer E-Mail-Vorlage Zum Erstellen einer neuen E-Mail-Vorlage müssen wir den Bereich "Setup" aufrufen. 1. Klicken Sie unter "Setup" auf Kommunikationsvorlagen > E-Mail-Vorlagen. Hier wird eine Liste aller E-Mail-Vorlagen angezeigt, die bereits für Ihre Organisation definiert wurden, darunter auch einige Beispielvorlagen von salesforce.com. 2. Klicken Sie auf Neue Vorlage. Wir können auswählen, ob wir eine Text-, HTML- oder benutzerdefinierte E-Mail-Vorlage erstellen möchten. HTML- und benutzerdefinierte E-Mail-Vorlagen sind fast gleich, in HTML-Vorlagen können Sie jedoch einen Briefkopf erstellen, um Ihren E-Mails dasselbe Erscheinungsbild wie anderen E-Mails derselben Herkunft zu geben. 312 Kapitel 9: Verwenden benutzerdefinierter Workflow- und Genehmigungsprozesse Anmerkung: Als vierte Option können Entwickler in Visualforce E-Mail-Vorlagen unter Verwendung der Tag-basierten Markupsprache von salesforce.com erstellen. Visualforce wird im Abschnitt Jenseits der Point-and-Click-Anwendungsentwicklung auf Seite 393 besprochen. Um alles einfach zu halten, bleiben wir vorerst bei einer reinen Text-E-Mail. 3. Wählen Sie Text und klicken Sie auf Weiter. Abbildung101: Definieren einer E-Mail-Vorlage Auf der Seite "Neue Vorlage" können wir die E-Mail-Vorlage selbst definieren. Im oberen Bereich generieren wir die Briefvorlagenfeld-Codes für die Felder in der darunter stehenden E-Mail-Vorlage. Überspringen wir diesen Schritt zunächst und beginnen wir mit der Dropdownliste "Ordner". 313 Kapitel 9: Verwenden benutzerdefinierter Workflow- und Genehmigungsprozesse 4. Wählen Sie in der Dropdownliste "Ordner" den Eintrag Nicht abgelegte öffentliche E-Mail-Vorlagen aus. Bei dem Ordner "Nicht abgelegte öffentliche E-Mail-Vorlagen" handelt es sich um einen standardmäßigen öffentlichen Ordner, der in jeder Organisation zur Verfügung steht. Durch das Speichern der E-Mail-Vorlagen in einem öffentlichen Ordner steht sie auch anderen Benutzern zur Verfügung, die über die Berechtigung zum Anzeigen und Bearbeiten von E-Mail-Vorlagen verfügen. 5. Aktivieren Sie das Kontrollkästchen Zur Verwendung verfügbar. Mit dieser Option machen wir unsere E-Mail-Vorlage verfügbar, wenn wir unsere Workflowbenachrichtigung erstellen. 6. Geben Sie im Textfeld E-Mail-Vorlagenname den Text Recruiting App: New Position Alert (Personalbeschaffungsanwendung: Benachrichtigung bei neuer Stelle) ein. Tipp: Um die E-Mail-Vorlagen übersichtlich anordnen zu können, empfiehlt es sich, alle Vorlagennamen mit dem Namen der Anwendung beginnen zu lassen, für die die Vorlage verwendet wird. Noch besser: Sie können einen öffentlichen Ordner für E-Mail-Vorlagen mit dem Namen der Anwendung erstellen, wie beispielsweise "Recruiting App Templates" (Vorlagen für die Personalbeschaffungsanwendung), in dem sie alle relevanten E-Mail-Vorlagen speichern. 7. Akzeptieren Sie im Textfeld Kodierung den Standardwert "Westeuropäisch (ISO-8859-1, ISO-LATIN-1)". 8. Geben Sie im Textfeld Beschreibung Folgendes ein: Send update email to all Universal Containers employees (Aktualisierungs-E-Mail an alle Mitarbeiter von Universal Containers senden). Nun kommen wir zu den zentralen Elementen unserer E-Mail-Vorlage - dem Betreff und dem Text der E-Mail. 9. Geben Sie in das Textfeld Thema New Open Position Alert: (Benachrichtigung über neue offene Stelle:) ein. Wir möchten den Titel der neuen Stelle in den Betreff unserer E-Mail einfügen, sodass wir an dieser Stelle unser erstes Briefvorlagenfeld direkt hinter dem Doppelpunkt in der Betreffzeile verwenden müssen. Damit wir den richtigen Code erhalten, müssen wir oben auf der Seite zurück zum Bereich für Briefvorlagenfelder gehen. 10. Wählen Sie in der Dropdownliste "Feldtyp auswählen" Position Fields (Stelle-Felder) aus. 314 Kapitel 9: Verwenden benutzerdefinierter Workflow- und Genehmigungsprozesse In der Dropdownliste "Feldtyp auswählen" stehen mehrere Objekte zur Auswahl. Da wir jedoch eine E-Mail-Vorlage für eine Workflowregel erstellen, beschränkt sich unsere Auswahl auf die Felder für das Objekt, das dem betreffenden Workflow zugeordnet ist. In diesem Fall ist es "Position" (Stelle). Der Grund hierfür ist, dass der Workflowregel, die diese E-Mail-Vorlage verwendet, neben dem Stellendatensatz, der die Workflow-Regel ausgelöst hat, keine Datensätze bekannt sind. Würden wir Felder aus einem anderen Objekt einfügen, würden sie in unserer E-Mail leer bleiben. Jetzt nehmen wir uns die gewünschten Felder vor. 11. Wählen Sie in der Dropdownliste "Feld auswählen" Position Title (Stellentitel) aus. Im Feld Mischfeldwert kopieren wird ein Briefvorlagenfeld-Code für "Position Title" (Stellentitel) angezeigt. Wir können ihn kopieren und am Ende unserer Betreffzeile einfügen, sodass der Betreff so aussieht: New Open Position Alert: {!Position__c.Name}. Wenn anhand dieser Vorlage eine E-Mail generiert wird, wird {!Position__c.Name} durch den entsprechenden Stellentitel ersetzt. Ganz einfach, oder? Jetzt stellen wir die verbleibenden Elemente unserer E-Mail fertig. 12. Geben Sie in das Textfeld Thema folgenden Text ein: There's a new position open at Universal Containers! Title: {!Position__c.Name} Functional Area: {!Position__c.Functional_Area__c} Location: {!Position__c.Location__c} Job Description {!Position__c.Job_Description__c} Responsibilities {!Position__c.Responsibilities__c} Skills Required {!Position__c.Skills_Required__c} Educational Requirements {!Position__c.Educational_Requirements__c} If you know of anyone great who might be able to fill this role, please contact the hiring manager, {!Position__c.Hiring_Manager__c}. Thanks! 13. Klicken Sie auf Speichern. Damit ist unsere E-Mail-Vorlage fertig. Jetzt sind wir bereit für die Erstellung der Workflowregel und der Benachrichtigung "New Position" (Neue Stelle). 315 Kapitel 9: Verwenden benutzerdefinierter Workflow- und Genehmigungsprozesse Probieren Sie es aus: Erstellen der Workflowregel und Benachrichtigung für "New Position" (Neue Stelle) Jetzt, da wir unsere E-Mail-Vorlage erstellt haben, können wir die Workflowregel und die E-Mail-Benachrichtigung erstellen, für die die Vorlage verwendet wird. Mittlerweile sollte ihnen die folgende Vorgehensweise vertraut sein: 1. Klicken Sie unter "Setup" auf Erstellen > Workflow & Genehmigungen > Workflowregeln. 2. Klicken Sie auf Neue Regel. 3. Wählen Sie in der Dropdownliste "Objekt" den Eintrag Position (Stelle) aus und klicken Sie auf Weiter. 4. Geben Sie im Textfeld Regelname den Wert Email New Position Alert (E-Mail-Benachrichtigung bei neuer Stelle) ein. 5. Geben Sie im Textfeld Beschreibung den Text Send an email to everyone whenever a position record is opened (E-Mail an alle senden, wenn ein Stellendatensatz geöffnet wird). Wir möchten, dass diese Regel ausgeführt wird, wenn der Status eines Stellendatensatzes in "Open - Approved" (Offen - Genehmigt) geändert wird. 6. Wählen Sie im Feld Regel auswerten, wenn ein Datensatz: die Option erstellt wird, und jederzeit, wenn er bearbeitet wird, damit er bestimmten Kriterien entspricht aus. 7. Führen Sie in der ersten Zeile der Regelkriterien folgende Vorgänge aus: • • • Setzen Sie "Feld" auf Job Application: Status (Stellenbewerbung: Status). Legen Sie als Operator gleich fest. Legen Sie für den Wert Open - Approved (Offen - Genehmigt) fest. "New Position" (Neue Stelle) ist zwar der Standardwert in der Auswahlliste Status, wir möchten jedoch nur die Stellen veröffentlichen, deren Ausschreibung durch einen leitenden Angestellten genehmigt wurde. 8. Klicken Sie auf Speichern & Weiter. Erstellen wir nun die E-Mail-Benachrichtigung für diese Workflowregel: 9. Klicken Sie im Bereich "Sofortige Workflowaktionen" auf Workflowaktion hinzufügen und wählen Sie Neue E-Mail-Benachrichtigung. 316 Kapitel 9: Verwenden benutzerdefinierter Workflow- und Genehmigungsprozesse 10. Geben Sie im Textfeld Beschreibung den Wert Email New Position Alert (E-Mail-Benachrichtigung bei neuer Stelle) ein. 11. Klicken Sie neben dem Feld E-Mail-Vorlage auf das Nachschlagesymbol ( und wählen Sie Recruiting App: New Position Alert (Personalbeschaffungsanwendung: Benachrichtigung bei neuer Stelle) aus. ) Wir möchten diese E-Mail an alle Mitarbeiter von Universal Containers senden, es gibt bei dieser Workflowregel jedoch keine einfache Möglichkeit dies zu tun. Wir können das Problem umgehen, indem wir unsere Rollenhierarchie nutzen und die E-Mail an alle Mitglieder der Rolle CEO und an deren nachgeordnete Positionen senden. 12. Wählen Sie im Feld für die Empfängertypsuche Rolle und nachgeordnete Positionen aus. 13. Wählen Sie in der Liste "Verfügbare Empfänger" Rolle und nachgeordnete Positionen: CEO aus und klicken Sie auf Hinzufügen. 14. Klicken Sie auf Speichern. 15. Klicken Sie auf Fertig. 16. Klicken Sie auf Aktivieren. Das ist schon alles. Um diese Workflowregel auszuprobieren, müssen Sie nur einen neuen Stellendatensatz erstellen und ihm den Status "Open - Approved" (Offen - Genehmigt) zuweisen. Innerhalb weniger Sekunden erhalten alle Benutzer in Ihrer Organisation eine E-Mail, in der sie über die neu erstellte Stelle informiert werden. Also legen Sie los und probieren Sie es aus. Beyond the Basics Wussten Sie, dass Sie über die Entwicklerkonsole Fehler in Apex, in Workflowregeln und in der Validierungslogik beheben können? Angenommen, Sie möchten eine Workflowregel debuggen, die nicht richtig funktioniert. In der Konsole können Sie Schritt für Schritt das Ausführungsprotokoll aller Vorgänge, die während der Anfrage ausgeführt wurden Zeile für Zeile durchgehen, bis Sie das Problem gefunden haben. Zugriff auf die Entwicklerkonsole erhalten Sie durch Klicken auf Ihr Name > Entwicklerkonsole. Weitere Informationen erhalten Sie, indem Sie in der Entwicklerkonsole auf Hilfe klicken. 317 Kapitel 9: Verwenden benutzerdefinierter Workflow- und Genehmigungsprozesse Einführung in Genehmigungen Wenden wir uns, nachdem wir soeben einige Workflowregeln erstellt haben, einem anderen Geschäftslogikwerkzeug zu, das die Plattform bietet: und zwar den Genehmigungsprozessen. Mithilfe von Genehmigungsprozessen können Sie eine Abfolge von Schritten angeben, die für die Genehmigung eines Datensatzes erforderlich sind. Für jeden Schritt sind ein oder mehrere zugewiesene Genehmiger zulässig, die einen Datensatz annehmen oder ablehnen können. Die Schritte können auf alle Datensätze für das dem Prozess zugeordnete Objekt angewendet werden oder nur auf die Datensätze, die bestimmte Anforderungen erfüllen. Wie beim Workflow haben Sie auch bei Genehmigungsprozessen die Möglichkeit, Aktionen anzugeben – beispielsweise das Senden einer E-Mail-Benachrichtigung, das Aktualisieren eines Feldwerts oder das Zuweisen einer Aufgabe –, die immer durchgeführt werden sollen, wenn ein Datensatz genehmigt, abgelehnt, zur Genehmigung eingereicht oder zurückgerufen wird. Abbildung102: Genehmigungsprozesse bestehen aus Schritten und Aktionen 318 Kapitel 9: Verwenden benutzerdefinierter Workflow- und Genehmigungsprozesse Ihre Organisation sieht möglicherweise einen dreistufigen Prozess zur Genehmigung von Ausgaben vor: eingereichte Ausgaben, die weniger als 50 US-Dollar betragen, werden automatisch genehmigt, Ausgaben über 50 US-Dollar müssen von einem Manager, also Vorgesetzten, genehmigt werden und Ausgaben über 5.000 US-Dollar müssen zusätzlich von einem Vice President genehmigt werden. In diesem Beispiel würde im Genehmigungsprozess Folgendes angegeben: • • • • • • Wenn ein Spesendatensatz zur Genehmigung eingereicht wird, sperren Sie den Datensatz, sodass er nicht mehr von den Benutzern bearbeitet werden kann, und ändern Sie den Status in "Gesendet". Wenn der Betrag 50 US-Dollar nicht überschreitet, genehmigen Sie die Anforderung automatisch. Wenn der Betrag über 50 US-Dollar liegt, senden Sie eine Genehmigungsanfrage an den direkten Vorgesetzten. Wenn der Betrag über 5.000 US-Dollar liegt und die erste Genehmigungsanfrage genehmigt wurde, senden Sie eine Genehmigungsanfrage an den Vice President. Wenn alle Genehmigungsanfragen genehmigt wurden, ändern Sie den Status in "Genehmigt" und heben Sie die Sperre des Datensatzes auf. Falls eine Genehmigungsanfrage abgelehnt wurde, ändern Sie den Status in "Abgelehnt" und heben Sie die Sperre des Datensatzes auf. Im Falle unserer Personalbeschaffungsanwendung werden wir einen ähnlichen Genehmigungsprozess definieren, um neue Stellen zur Genehmigung einzureichen. Wir möchten sicherstellen, dass sämtliche Stellen, die von Mitarbeitern eingereicht werden, von dessen Manager, also Vorgesetztem, genehmigt werden, und dass sämtliche Stellen mit einem Mindestgehalt von über 150.000 US-Dollar vom CEO genehmigt werden. Legen wir also los. Planung von Genehmigungsprozessen In den meisten Fällen wird im Vorfeld eine gewisse Planung erforderlich sein, bevor Sie einen Genehmigungsprozess selbst implementieren. In der Checkliste, die unter "Erste Schritte mit Genehmigungsprozessen" in der Salesforce-Hilfe zu finden ist, wird dargestellt, welche Punkte Sie beachten müssen und welche Komponenten Sie erstellen müssen, bevor Sie loslegen. Bei diesem Genehmigungsprozess ist der einzige vorbereitende Schritt, den wir durchführen müssen, das Definieren einer E-Mail-Vorlage, die verwendet werden kann, um den zugewiesenen Genehmiger zu benachrichtigen, dass eine anstehende Genehmigungsanfrage für ihn vorliegt. Beyond the Basics 319 Kapitel 9: Verwenden benutzerdefinierter Workflow- und Genehmigungsprozesse Wenn für Ihre Organisation Chatter aktiviert ist, können Ihre Benutzer Genehmigungsanfragen als Posts in ihren Chatter-Feeds empfangen. Sie können auch anpassen, wie Genehmigungsanfragen im Feed angezeigt werden, indem Sie Postvorlagen erstellen und diese den Genehmigungsprozessen zuweisen. Wie das funktioniert, erfahren Sie im Detail unter "Informationen zu Genehmigungen in Chatter" in der Salesforce-Hilfe. Da wir Benachrichtigungen für Salesforce1 aktiviert haben, können Ihre Benutzer Benachrichtigungen innerhalb der Anwendung und Push-Benachrichtigungen empfangen, wenn jemand einen Datensatz zur Genehmigung einreicht. Einzelne Benutzer können Benachrichtigungen für Genehmigungsanfragen per E-Mail und in Salesforce1 über das Benutzerfeld Genehmigungsanfrage-E-Mails empfangen individuell aktivieren oder deaktivieren. Weitere Informationen finden Sie in der Salesforce-Hilfe unter "Ändern der Einstellungen für den Genehmigungsbenutzer". Probieren Sie es aus: Erstellen einer E-Mail-Vorlage für Genehmigungen Da wir im Abschnitt Einführung zu E-Mail-Vorlagen auf Seite 311 bereits über E-Mail-Vorlagen gesprochen haben, nehmen wir nur die Werte aus der folgenden Tabelle auf, die wir für die Vorlage verwenden möchten. Sie können die Vorlage unter "Setup" erstellen, indem Sie auf Kommunikationsvorlagen > E-Mail-Vorlagen klicken. Tabelle43: Die E-Mail-Vorlage "Recruiting App: New Position Requires Approval" (Personalbeschaffungsanwendung: Für die neue Stelle ist eine Genehmigung erforderlich) Parameter Wert Vorlagentyp Text Zur Verwendung verfügbar Ausgewählt E-Mail-Vorlagenname Recruiting App: New Position Requires Approval (Personalbeschaffungsanwendung: Für die neue Stelle ist eine Genehmigung erforderlich) 320 Kodierung Westeuropäisch (ISO-8859-1, ISO-LATIN-1 Beschreibung Send notification email to designated approver when new position record requires approval. Kapitel 9: Verwenden benutzerdefinierter Workflow- und Genehmigungsprozesse Parameter Wert (Benachrichtigungs-E-Mail an festgelegten Genehmiger senden, wenn für einen neuen Stellendatensatz eine Genehmigung erforderlich ist.) Thema New Position Requires Approval (Für die neue Stelle ist eine Genehmigung erforderlich) E-Mail-Nachrichtentext A new position record has been submitted for your approval. Please visit the link below and either approve or reject it. (Ein neuer Stellendatensatz ist gesendet worden, damit Sie ihn genehmigen. Folgen Sie dem unten stehenden Link und genehmigen Sie die Stelle oder lehnen Sie sie ab.) {!Position__c.Link} Thanks! (Vielen Dank!) Probieren Sie es aus: Erstellen eines Genehmigungsprozesses Nun, da wir unsere Vorbereitung abgeschlossen haben, können wir den Genehmigungsprozess an sich definieren. Die Definition des Genehmigungsprozesses liefert das Grundgerüst für die Genehmigungsschritte und -aktionen, die wir später noch definieren werden. 1. Klicken Sie unter "Setup" auf Erstellen > Workflow & Genehmigungen > Genehmigungsprozesse. 2. Wählen Sie in der Dropdownliste "Genehmigungsprozesse verwalten für" die Option Position (Stelle) aus. Uns stehen zwei verschiedene Assistenten für die Erstellung eines neuen Genehmigungsprozesses zur Verfügung: ein Schnellstartassistent und ein Standardassistent für das Setup. Der Schnellstartassistent legt bereits einige Standardwerte für uns fest, sodass wir nur Festlegungen für die wichtigsten Felder vornehmen müssen: die E-Mail-Vorlage für Genehmigungszuordnungen, die Filterkriterien für den Start des Genehmigungsprozesses und die zugewiesenen Genehmiger. Mit dem Standardassistenten für das Setup können wir andererseits jede mögliche Option für unseren Genehmigungsprozess konfigurieren. An dieser 321 Kapitel 9: Verwenden benutzerdefinierter Workflow- und Genehmigungsprozesse Stelle verwenden wir daher auch letzteren Assistenten, damit wir uns alle verfügbaren Optionen ansehen können. 3. Wählen Sie über die Dropdown-Schaltfläche Neuen Genehmigungsprozess erstellen die Option Standardassistenten für Setup verwenden. 4. Geben Sie im Feld Prozessname den Text Approve New Position (Neue Stelle genehmigen) ein. 5. Geben Sie im Feld Beschreibung folgenden Text ein: Ensure that a manager approves any position that his or her employee creates, and that any position with a minimum salary of more than $150,000 is approved by the CEO (Sicherstellen, dass ein Vorgesetzter jede Stelle genehmigt, die sein Mitarbeiter erstellt, und dass jede Stelle mit einem Mindestgehalt von über 150.000 US-Dollar vom CEO genehmigt wird). 6. Klicken Sie auf Weiter. Nachdem wir den Namen und die Beschreibung eingegeben haben, müssen wir im nächsten Schritt die Bedingungen angeben, mit denen festgelegt wird, welche Stellen genehmigt werden müssen. Wie auch schon bei den Workflowregeln können wir auch hierfür entweder einen Satz aus Kriterien definieren oder eine Formel erstellen. Definieren wir die Kriterien so, dass alle Stellen, die von einem anderen Benutzer als dem CEO erstellt werden, von mindestens einem direkten Vorgesetzten genehmigt werden müssen. 7. Wählen Sie in der ersten Zeile der Filterkriterien Current User: Role not equal to CEO (Aktueller Benutzer: Rolle nicht gleich CEO) . 8. Klicken Sie auf Weiter. 9. Wählen Sie in der Dropdownliste Nächster automatischer Genehmiger bestimmt durch die Option Manager. Das Feld Manager ist ein Standardfeld im Benutzerobjekt, das den Vorgesetzten des Benutzers angibt. Das Feld stellt eine hierarchische Beziehung zwischen den Benutzern her, die verhindert, dass Sie einen Benutzer auswählen, der direkt oder indirekt sich selbst unterstellt ist. Dieser Manager wird der zugewiesene Genehmiger für den ersten Schritt in unserem Genehmigungsprozess. Alternativ können Sie auch die Option Neues hierarchisches Beziehungsfeld erstellen in der Dropdownliste auswählen, um spontan ein neues benutzerdefiniertes Nachschlagefeld für hierarchische Beziehungen zu definieren. Der Feldtyp für hierarchische Beziehungen ist speziell auf das Benutzerobjekt ausgerichtet und ahmt das Verhalten des standardmäßigen Felds Manager nach, indem ein Benutzer einem anderen Benutzer zugeordnet wird, ohne dass der entsprechende Benutzer sich selbst zugeordnet wird. Für diesen Genehmigungsprozess jedoch eignet sich das standardmäßige Feld Manager perfekt, sodass wir direkt fortfahren können. 322 Kapitel 9: Verwenden benutzerdefinierter Workflow- und Genehmigungsprozesse Abbildung103: Angeben des Genehmigerfelds 10. Aktivieren Sie das Kontrollkästchen Use Approver Field of Position Owner (Genehmigerfeld von Stelleninhaber verwenden). Das Kontrollkästchen Use Approver Field of Position Owner (Genehmigerfeld von Stelleninhaber verwenden) kann bearbeitet werden, wenn Sie "Manager" in der Dropdownliste Nächster automatischer Genehmiger bestimmt durch auswählen. Wenn Sie dieses Kontrollkästchen aktivieren, wird die Genehmigungsanfrage an den im Feld Manager angegeben Benutzer im Benutzerdatensatz des Datensatzinhabers weitergeleitet. Falls Sie dieses Kontrollkästchen nicht aktivieren, wird die Genehmigungsanfrage an den Manager, also den Vorgesetzten, des Benutzers weitergeleitet, der den Datensatz eingereicht hat. In unserem Fall möchten wir die Genehmigung vom Manager des Stelleninhabers erhalten und müssen das Kontrollkästchen demzufolge aktivieren. 11. Wählen Sie im Abschnitt "Bearbeitbarkeitseigenschaften des Datensatzes" die Option NUR Administratoren können Datensätze während des Genehmigungsprozesses bearbeiten. Über die Bearbeitbarkeit der Datensätze können Sie angeben, ob ein Datensatz, der zur Genehmigung eingereicht wurde, vom Genehmiger bearbeitet werden darf, bevor er genehmigt wird. Da wir nicht möchten, dass Manager Stellen, die ein Einstellungs-Manager oder Personalbeschaffungsmitarbeiter erstellt hat, ändern, ohne den Inhaber zu benachrichtigen, lassen wir Bearbeitungen durch Administratoren nur zu, solange sich der Datensatz noch in unserem Genehmigungsprozess befindet. 12. Klicken Sie auf Weiter. 13. Wählen Sie im Nachschlagefeld E-Mail-Vorlage für Genehmigungszuordnungen die Option Recruiting App: New Position Requires Approval (Personalbeschaffungsanwendung: Für die neue Stelle ist eine Genehmigung erforderlich). 14. Klicken Sie auf Weiter. Unser nächster Schritt bei der Definition des Genehmigungsprozesses besteht darin, dass wir angeben, welche Felder im Seitenlayout für die Genehmigung (das der Genehmiger sieht, wenn er einen Datensatz genehmigt oder ablehnt) angezeigt werden sollen. Jeder Genehmigungsprozess verfügt über sein eigenes Seitenlayout und im Gegensatz zu anderen 323 Kapitel 9: Verwenden benutzerdefinierter Workflow- und Genehmigungsprozesse Seitenlayouts kann das Seitenlayout für die Genehmigung nur innerhalb des zugehörigen Genehmigungsprozesses konfiguriert werden. 15. Verschieben Sie die folgenden Felder von "Verfügbare Felder" in "Ausgewählte Felder". • • • • • • • • • Position Title (Stellentitel) Owner (Inhaber) Hiring Manager (Einstellungs-Manager) Type (Typ) Location (Standort) Hire By (Einstellen bis) Job Description (Tätigkeitsbeschreibung). Min Pay (Mindestgehalt) Max Pay (Höchstgehalt) Abbildung104: Definieren des Seitenlayouts für die Datensatzgenehmigung 324 Kapitel 9: Verwenden benutzerdefinierter Workflow- und Genehmigungsprozesse Auf dieser Seite können wir zudem angeben, ob Informationen zum Genehmigungsverlauf im Seitenlayout für die Genehmigung angezeigt werden sollen. Diese Informationen zeigen, ob der betreffende Datensatz in der Vergangenheit bereits zur Genehmigung eingereicht wurde, welche Personen in dem Fall die zugewiesenen Genehmiger waren und ob der Datensatz genehmigt oder abgelehnt wurde. 16. Wählen Sie die Option Zusätzlich zu den oben ausgewählten Feldern Informationen zum Genehmigungsverlauf anzeigen. Schließlich können wir, bevor wir diese Seite verlassen, Sicherheitseinstellungen festlegen, um zu bestimmen, ob Genehmiger über einen beliebigen Browser, einschließlich solchen auf Mobilgeräten, auf eine externe Version der Genehmigungsseite zugreifen können, ohne sich bei Salesforce anmelden zu müssen. Sofern dies nicht zwingend für Ihre Genehmiger erforderlich ist, empfiehlt es sich, diese Option nicht auszuwählen, da Sie dann keine Genehmigungsschritte hinzufügen können, in denen die Benutzer den nächsten Genehmiger manuell auswählen können. Wir behalten vorerst die Standardauswahl bei. 17. Klicken Sie auf Weiter. Auf der letzten Seite des Assistenten für neue Genehmigungsprozesse haben wir die Möglichkeit auszuwählen, welche Personen berechtigt sind, Stellendatensätze zur Genehmigung einzureichen. Und wieder behalten wir den standardmäßig ausgewählten "Position Owner" (Stelleninhaber) bei, da es keinen Grund dafür gibt, dass ein anderer Benutzer diese Berechtigung haben sollte. Mit den beiden letzten Optionen auf dieser Seite können wir die Themenliste "Genehmigungsverlauf" auf allen Seitenlayouts für "Position" (Stelle) platzieren und den Benutzern die Möglichkeit geben, anstehende Genehmigungsanfragen zurückzurufen. Die Themenliste "Genehmigungsverlauf" ist dieselbe Verlaufsthemenliste, die wir in das Seitenlayout für die Genehmigung aufgenommen haben, also fügen wir sie auch in die Detailseite "Position" (Stelle) ein. In dieser Themenliste können die Benutzer auch auf die Schaltfläche Genehmigungsanfrage abrufen klicken, um ihre anstehenden Genehmigungsanfragen zurückzuziehen. Falls wir letztere Option nicht aktivieren, haben nur Administratoren Zugriff auf die Schaltfläche Genehmigungsanfrage abrufen. 18. Wählen Sie Add Approval History Related List to All Position Page Layouts (Themenliste "Genehmigungsverlauf" in alle Stellen-Seitenlayouts einfügen). 19. Wählen Sie Sendern das Abrufen von Genehmigungsanfragen genehmigen. 20. Klicken Sie auf Speichern. Puh! Wir haben nun das Grundgerüst für unseren Genehmigungsprozess definiert, aber wir können den Prozess erst aktivieren, wenn wir einige Schritte und Aktionen angegeben haben, 325 Kapitel 9: Verwenden benutzerdefinierter Workflow- und Genehmigungsprozesse die gestartet werden, wenn Datensätze tatsächlich genehmigt oder abgelehnt werden. Fahren wir also damit fort. 21. Wählen Sie Ja, ich möchte nun einen Genehmigungsschritt erstellen. 22. Klicken Sie auf Los! Probieren Sie es aus: Erstellen von Genehmigungsschritten Wie bereits erwähnt, besteht jeder Genehmigungsprozess aus einer Reihe von Schritten, die erforderlich sind, um einen Datensatz zu genehmigen. Dabei ist es für jeden Schritt möglich, dass einer oder mehrere zugewiesene Genehmiger den eingereichten Datensatz annehmen oder ablehnen. Anders ausgedrückt: Jede Runde von "Signaturen", die Sie benötigen, um einen Datensatz genehmigen zu lassen, muss einen entsprechenden Schritt im Genehmigungsprozess aufweisen. Ein Genehmigungsschritt umfasst Folgendes: • • • • • Ein oder mehrere zugewiesene Genehmiger Optionale Filterkriterien, sodass nur Datensätze, die bestimmte Bedingungen erfüllen, eine Genehmigung bei dem entsprechenden Schritt benötigen Optionale Schrittgenehmigungsaktionen, die unabhängig vom Ergebnis des gesamten Genehmigungsprozesses ausgeführt werden Optionale Schrittablehnungsaktionen, die unabhängig vom Ergebnis des gesamten Genehmigungsprozesses ausgeführt werden Optionale Schrittabrufaktionen, die ausgeführt werden, falls der Datensatz abgerufen wird Für unseren Genehmigungsprozess für "New Position" (Neue Stelle) müssen wir zwei Schritte definieren – einen, der die Genehmigung durch den Manager des Datensatzeinreichers für alle Datensätze für neue Stellen erfordert, und einen, der die zusätzliche Genehmigung durch den CEO für Stellendatensätze mit Mindestgehältern über 150.000 US-Dollar erfordert. Definieren wir nun den ersten Schritt für alle Datensätze für neue Stellen. Da wir Ja, ich möchte nun einen Genehmigungsschritt erstellen am Ende des Assistenten für Standardgenehmigungsprozesse im letzten Abschnitt ausgewählt haben, befinden wir uns bereits im Assistenten für den neuen Genehmigungsschritt. Falls nicht, könnten wir über folgende Schritte zu eben diesem Assistenten zurückkehren: 1. Klicken Sie unter "Setup" auf Erstellen > Workflow & Genehmigungen > Genehmigungsprozesse. 2. Klicken Sie in der Themenliste "Inaktive Genehmigungsprozesse" auf Approve New Position (Neue Stelle genehmigen). 326 Kapitel 9: Verwenden benutzerdefinierter Workflow- und Genehmigungsprozesse 3. Klicken Sie in der Themenliste "Genehmigungsschritte" auf Neuer Genehmigungsschritt. Bei diesem ersten Schritt möchten wir, dass die Genehmigungsanfrage an die Manager des Stelleninhabers geht: 4. Geben Sie im Feld Name den Text Manager Approval (Genehmigung durch den Vorgesetzten) ein. 5. Im Feld Beschreibung geben Sie Every new position record must be approved by the Position owner's manager (Jeder neue Stellendatensatz muss vom Vorgesetzten des Stelleninhabers genehmigt werden) ein. 6. Im Feld Schrittnummer geben Sie 1 ein. Das Feld Schrittnummer gibt die Reihenfolge an, in der mehrere Schritte verarbeitet werden sollten. Wenn Sie diesen Schritt als Schritt 1 angeben, wird dieser zuerst ausgeführt, wenn der Genehmigungsprozess gestartet wird. 7. Klicken Sie auf Weiter. Im Bereich "Schrittkriterien angeben" können wir die Kriterien angeben oder eine Formel erstellen, mit der die Datensätze gefiltert werden, die bei diesem Schritt genehmigt werden müssen. Da wir bereits die Stellendatensätze, deren Inhaber der CEO ist, vom gesamten Genehmigungsprozess herausgefiltert haben, ist für diesen Schritt keine zusätzliche Filterung erforderlich. 8. Klicken Sie auf Weiter. Zu guter Letzt müssen wir den zugewiesenen Genehmiger für diesen Schritt auswählen und angeben, ob dessen Delegierter die Anfrage ebenfalls genehmigen darf. Da es sich hierbei um den Schritt "Genehmigung durch den Vorgesetzten" handelt, ist es eindeutig sinnvoll, die Standardoption Automatisch mithilfe des zuvor ausgewählten benutzerdefinierten Felds zuweisen (Vorgesetzter) zu akzeptieren. Da Stellendatensätze jedoch nicht besonders sensibel sind, ist es unproblematisch, dass Vorgesetzte delegierte Genehmiger zuweisen. Demzufolge können Vorgesetzte, die im Urlaub sind oder große Mengen an Genehmigungsanfragen erhalten, ihre Arbeit gemeinsam mit einem anderen Mitarbeiter erledigen. 9. Wählen Sie Der Delegierte des Genehmigers kann dieser Anfrage auch zustimmen. 10. Klicken Sie auf Speichern. Nachdem wir unseren ersten Genehmigungsschritt abgeschlossen haben, haben wir folgende Möglichkeiten: Wir können entweder optionale Genehmigungs- oder Ablehnungsaktionen für diesen Schritt erstellen oder zur Detailseite für den Genehmigungsprozess zurückkehren. 327 Kapitel 9: Verwenden benutzerdefinierter Workflow- und Genehmigungsprozesse Auch wenn wir letztendlich die finalen Genehmigungs- und Ablehnungsaktionen angeben müssen, die stattfinden, wenn der Genehmigungsprozess auf die eine oder andere Weise endet, gibt es nichts Bestimmtes, das nach diesem Schritt getan werden muss und das nicht an anderer Stelle angegeben werden könnte. Kehren wir nun zur Detailseite für unseren Genehmigungsprozess zurück und definieren wir unseren zweiten Genehmigungsschritt für stellen mit Mindestgehältern von über 150.000 US-Dollar. 11. Wählen Sie Nein, ich mache das später. Ich möchte nun die Detailseite für den Genehmigungsprozess anzeigen, um zu überprüfen, was ich gerade erstellt habe. 12. Klicken Sie auf Los!. 13. Klicken Sie in der Themenliste "Genehmigungsschritte" auf Neuer Genehmigungsschritt. Wir sind somit wieder zum Assistenten für neue Genehmigungsschritte zurückgekehrt, der jedoch diesmal eine Zusammenfassung unseres zuvor erstellten Schritts enthält. Somit können wir uns besser merken, wo in unserem Genehmigungsprozess wir uns gerade befinden. Abbildung105: Definieren eines zweiten Genehmigungsschritts 14. Geben Sie im Feld Name den Text CEO Approval (Genehmigung durch den CEO) ein. 328 Kapitel 9: Verwenden benutzerdefinierter Workflow- und Genehmigungsprozesse 15. Im Feld Beschreibung geben Sie folgenden Text ein: Every new position record with a minimum salary over $150,000 must be approved by the CEO (Jeder neue Stellendatensatz mit einem Mindestgehalt von über 150.000 US-Dollar muss vom CEO genehmigt werden). 16. Geben Sie im Feld Schrittnummer die Zahl 2 ein. 17. Klicken Sie auf Weiter. Bei diesem Genehmigungsschritt geht es darum, dass wir nur Stellen mit einem Mindestgehalt von über 150.000 US-Dollar an den CEO senden möchten. Zudem möchten wir sämtliche Datensätze ausschließen, die der CEO bereits genehmigt hat (z. B. weil ein dem CEO direkt unterstellter Mitarbeiter den Datensatz erstellt hat). 18. Wählen Sie das Optionsfeld In diesen Schritt eintreten, wenn folgendes Kriterium erfüllt ist aus und wählen Sie dann in der Dropdownliste Kriterien erfüllt sind aus. 19. Geben Sie in der ersten Zeile mit Filtern den Text Position: Min Pay greater or equal 150000 (Stelle: Mindestgehalt größer/gleich 150.000) ein. Tipp: Als Abkürzung können Sie für 150.000 auch 150k eingeben. 20. Geben Sie in der zweiten Zeile mit Filtern Current User: Manager not equal to Cynthia Capobianco (Aktueller Benutzer: Manager nicht gleich Cynthia Capobianco). (Derzeit CEO in der Rollenhierarchie bei Universal Containers auf Seite 219). 21. Klicken Sie auf Weiter. Schließlich müssen wir den Genehmiger (den CEO) auswählen und angeben, was passiert, wenn dieser diese Anfrage ablehnt. 22. Wählen Sie das Optionsfeld Automatisch Genehmiger(n) zuweisen aus. 23. Wählen Sie in der Dropdownliste unterhalb des Optionsfelds Benutzer aus, klicken Sie auf das Nachschlagesymbol ( ) und wählen Sie den Namen des CEO in Ihrer Organisation aus (Cynthia Capobianco). Wir möchten diesen Genehmigungsprozess an dieser Stelle eher einfach halten, wir könnten in diesem Schritt jedoch auch die Links Zeile hinzufügen und Zeile entfernen verwenden, um die Genehmigungsanfrage an mehrere Genehmiger zu senden. Zudem könnten wir in der ersten Dropdownliste in der Zeile auch Related Users (Zugeordnete Benutzer) auswählen, um einen Genehmiger hinzuzufügen, der in den Feldern im eingereichten Datensatz aufgeführt ist. So könnten wir beispielsweise, da es sich hierbei um einen Genehmigungsprozess für Stellendatensätze handelt, den Einstellungs-Manager der Stelle zur Liste der Genehmiger hinzufügen. 329 Kapitel 9: Verwenden benutzerdefinierter Workflow- und Genehmigungsprozesse 24. Wählen Sie unter den Links Zeile hinzufügen und Zeile entfernen die Option Genehmigung oder Ablehnung basierend auf der ersten Antwort. Falls wir in diesem Schritt die Genehmigung von mehreren Benutzern anfordern würden, würden die Links Zeile hinzufügen und Zeile entfernen bestimmen, ob für die Genehmigungsanfrage eine einstimmige Genehmigung erforderlich ist oder ob der Datensatz basierend auf der ersten Antwort durch einen Benutzer genehmigt oder abgelehnt wird. 25. Wählen Sie Der Delegierte des Genehmigers kann dieser Anfrage auch zustimmen. Im nächsten Abschnitt können wir festlegen, was mit dem Datensatz geschieht, wenn er in diesem Schritt abgelehnt wird. Da der Stellendatensatz während des Genehmigungsprozesses für die Bearbeitung gesperrt ist, ist es am sinnvollsten, die endgültige Ablehnung vorzunehmen. 26. Wählen Sie Alle Ablehnungsaktionen für diesen Schritt durchführen UND alle Aktionen für die endgültige Ablehnung durchführen. (Endgültige Ablehnung) aus. 27. Klicken Sie auf Speichern. Erneut müssen wir eine Entscheidung treffen und Genehmigungs- oder Ablehnungsaktionen für diesen speziellen Schritt definieren. Umgehen wir diesen Schritt an dieser Stelle und kehren wir zur Detailseite für den Genehmigungsprozess zurück, um unsere Aktionen für die ursprüngliche Einreichung, die endgültige Genehmigung und die endgültige Ablehnung für den gesamten Prozess zu definieren. 28. Wählen Sie Nein, ich mache das später. Ich möchte nun die Detailseite für den Genehmigungsprozess anzeigen, um zu überprüfen, was ich gerade erstellt habe. 29. Klicken Sie auf Los! Probieren Sie es aus: Erstellen von Genehmigungsaktionen Nun, da wir die Definition der Schritte in unserem Genehmigungsprozess abgeschlossen haben, sind wir fast fertig. Wir müssen nur noch die Genehmigungsaktionen angeben, die durchgeführt werden sollen, wenn ein Datensatz erstmalig eingereicht oder abschließend genehmigt oder abgelehnt wurde. Wie bei Workflowaktionen können Sie auch bei Genehmigungsaktionen Aufgaben erstellen und zuweisen, Felder aktualisieren und E-Mail-Aktualisierungen und ausgehende Nachrichten 330 Kapitel 9: Verwenden benutzerdefinierter Workflow- und Genehmigungsprozesse senden. Sie können mit dem Genehmigungsprozess als Ganzem oder mit einzelnen Genehmigungsschritten verknüpft sein. Abbildung106: Die Detailseite für den Genehmigungsprozess Da die Definition von Genehmigungsaktionen kaum Unterschiede zu der Erstellung von Workflowaktionen aufweist, gehen wir rasch zusammen die Aktualisierung des Felds Status auf "Pending Approval" (Genehmigung ausstehend) durch, wenn eine Stelle ursprünglich eingereicht wird, und überlassen Ihnen dann die anderen Genehmigungsaktionen als Übungen. 331 Kapitel 9: Verwenden benutzerdefinierter Workflow- und Genehmigungsprozesse 1. Sofern Sie sich noch nicht auf der Detailseite für den Genehmigungsprozess befinden, klicken Sie unter "Setup" auf Erstellen > Workflow & Genehmigungen > Genehmigungsprozesse und dann auf Approve New Position (Neue Stelle genehmigen). 2. Klicken Sie in der Themenliste "Aktionen beim ursprünglichen Einreichen" auf Neue hinzufügen und wählen Sie Feldaktualisierung aus. Kommt Ihnen die Seite für neue Feldaktualisierungsaktionen bekannt vor? Das liegt daran, dass wir sie schon einmal gesehen haben: für alle Genehmigungsaufgaben, Feldaktualisierungen, E-Mail-Benachrichtigungen und ausgehenden Nachrichten wird dieselbe Bearbeitungsoberfläche verwendet wie für Workflowaktionen. Es ist sogar so, dass alle Workflow- und Genehmigungsaktionen, die Sie erstellen, jeweils sowohl in Workflow- als auch in Genehmigungsprozessen verwendet werden können. 3. Geben Sie im Feld Name den Text Set Status to Pending Approval (Status auf "Genehmigung ausstehend" setzen) ein. 4. Geben Sie im Feld Beschreibung den Text While a position is in an approval process, its status should be set to Pending Approval (Während sich eine Stelle in einem Genehmigungsprozess befindet, sollte ihr Status auf "Genehmigung ausstehend" gesetzt sein). 5. Wählen Sie in der Dropdownliste Zu aktualisierendes Feld die Option "Status" aus. 6. Wählen Sie im Bereich "Optionen in der Auswahlliste" die Option Ein bestimmter Wert und wählen Sie "Pending Approval" (Genehmigung ausstehend) aus der Liste aus. 7. Klicken Sie auf Speichern. Stellen Sie nun den Rest des Genehmigungsprozesses fertig: Definieren Sie selbst die restlichen Genehmigungsaktionen gemäß den Werten in der folgenden Tabelle . Tabelle44: Weitere Genehmigungsaktionen Kategorie Typ Werte Aktionen für endgültige Genehmigung Feldaktualisierung Name: Set Status to Open Approved (Status auf "Offen - Genehmigt" setzen) Zu aktualisierendes Feld: Status Ein bestimmter Wert: Open - Approved (Offen - Genehmigt) 332 Kapitel 9: Verwenden benutzerdefinierter Workflow- und Genehmigungsprozesse Kategorie Typ Aktionen für Feldaktualisierung endgültige Ablehnung Werte Name: Set Status to Closed - Not Approved (Status auf "Geschlossen - Nicht genehmigt" setzen) Zu aktualisierendes Feld: Status Ein bestimmter Wert: Closed - Not Approved (Geschlossen - Nicht genehmigt) Aktionen für Feldaktualisierung endgültige Ablehnung Name: Set Close Date to Today ("Offen bis" auf "Heute" setzen) Zu aktualisierendes Feld: Close Date (Offen bis) Neuen Wert mithilfe einer Formel festlegen: TODAY() Probieren Sie es aus: Aktivieren des Genehmigungsprozesses Wir haben nun die Definition unseres Genehmigungsprozesses "Approve New Position" (Neue Stelle genehmigen) vollständig abgeschlossen, aber um ihn testen zu können, bleibt noch ein abschließender Schritt zu tun: Wir müssen ihn aktivieren. Tun Sie dies jedoch nicht leichtfertig! Sobald ein Genehmigungsprozess aktiviert wurde, können seine Genehmigungsschritte nicht mehr bearbeitet werden, auch dann nicht, wenn Sie den Prozess wieder deaktivieren. Änderungen können nur vorgenommen werden, indem der bestehende Genehmigungsprozess dupliziert und die Bearbeitungen am duplizierten Prozess durchgeführt werden. Gehen Sie wie folgt vor, um den Genehmigungsprozess zu testen: 1. Klicken Sie unter "Setup" auf Erstellen > Workflow & Genehmigungen > Genehmigungsprozesse, um zu der Seite mit der Liste der Genehmigungsprozesse zurückzukehren. 2. Klicken Sie neben dem Genehmigungsprozess "Approve new Position" (Neue Stelle genehmigen) auf Aktivieren. Der Genehmigungsprozess "Approve new Position" (Neue Stelle genehmigen) wird automatisch in die Liste der aktiven Elemente verschoben und es wird ein neues Feld angezeigt: 333 Kapitel 9: Verwenden benutzerdefinierter Workflow- und Genehmigungsprozesse Prozessreihenfolge. Dieses Feld ist wichtig, wenn wir versuchen, mehrere Genehmigungsprozesse gleichzeitig zu verwenden, da es angibt, in welcher Reihenfolge die einzelnen Genehmigungsprozesse ausgewertet werden sollen. Rekapitulation Wie wir gesehen haben, sind Genehmigungsprozesse von Natur aus komplex und ihre Einrichtung erfordert einen gewissen Aufwand. Sie müssen mehrere Bildschirme aufrufen und mehrere Parameter festlegen, sodass es schwierig ist, den Genehmigungsprozess zu visualisieren und ganzheitlich zu verstehen. Glücklicherweise enthält die Force.com-Plattform einen Process Visualizer, der die einzelnen Genehmigungsprozesse als Flussdiagramm darstellt. Das Flussdiagramm enthält alle wichtigen Details für die einzelnen Genehmigungsprozesse, einschließlich der erforderlichen Schritte für die Genehmigung von Datensätzen, die zugewiesenen Genehmiger für die einzelnen Schritte, die Kriterien, die zum Auslösen des Genehmigungsprozesses verwendet werden, sowie die Aktionen, die durchgeführt werden, wenn ein Datensatz genehmigt, abgelehnt, zurückgerufen oder erstmals zur Genehmigung eingereicht wird. Um auf den Process Visualizer zuzugreifen, klicken Sie oben auf einer beliebigen Detailseite für einen Genehmigungsprozess auf Diagramm anzeigen. 334 Kapitel 9: Verwenden benutzerdefinierter Workflow- und Genehmigungsprozesse Abbildung107: Der Process Visualizer Testen wir nun unseren Genehmigungsprozess: 1. Klicken Sie unter "Setup" auf Benutzer verwalten > Benutzer und bearbeiten Sie den Benutzerdatensatz für Ihren Personalbeschaffungsmanager, indem Sie das Feld Manager ausfüllen, sodass die Genehmigungskette ordnungsgemäß eingerichtet ist. Legen Sie "Amy Lojack" (die Produktmanagerin) als Manager für "Phil Katz" fest. 2. Melden Sie sich als Phil Katz bei der Anwendung an und erstellen Sie eine neue Stelle. Beachten Sie, dass nach dem Klicken auf Speichern auf der Detailseite die Schaltfläche Für Genehmigung einreichen in der neuen Themenliste "Genehmigungsverlauf" angezeigt wird. 335 Kapitel 9: Verwenden benutzerdefinierter Workflow- und Genehmigungsprozesse Abbildung108: Die Schaltfläche "Für Genehmigung einreichen" 3. Klicken Sie auf Für Genehmigung einreichen und dann auf OK. Das Klicken auf Für Genehmigung einreichen bewirkt mehrere Vorgänge. Zunächst wird der Datensatz gegen Bearbeitung gesperrt, worauf das Symbol mit dem Vorhängeschloss oben auf der Seite hinweist. Außerdem werden zwei neue Einträge in der Themenliste "Genehmigungsverlauf" angezeigt, aus denen ersichtlich ist, wer den Datensatz eingereicht hat und wie die aktuelle Genehmigungszuordnung lautet. Schließlich erhält der vorgesetzte Manager des Stelleninhabers eine E-Mail, die angibt, dass eine neue Stelle genehmigt werden muss. 336 Kapitel 9: Verwenden benutzerdefinierter Workflow- und Genehmigungsprozesse Abbildung109: Ein eingereichter Stellendatensatz Wenn sich der Manager das nächste Mal anmeldet und den Datensatz aufruft, ist in der Themenliste "Genehmigungsverlauf" die Schaltfläche Genehmigen/Ablehnen zu sehen. Er kann auf diese Schaltfläche klicken, um die Genehmigungsanfrage anzuzeigen, und den Datensatz genehmigen bzw. ablehnen (mit Kommentaren). 4. Melden Sie sich als Amy Lojack an, die unmittelbar vorgesetzte Managerin, die für die Genehmigung der Anfrage zuständig ist. 337 Kapitel 9: Verwenden benutzerdefinierter Workflow- und Genehmigungsprozesse 5. Klicken Sie in der Themenliste "Genehmigungsverlauf" des Datensatzes auf Genehmigen/Ablehnen, geben Sie optionale Kommentare ein und klicken Sie dann auf Genehmigen. Tipp: Um das Annehmen und Ablehnen von Genehmigungsanfragen zu vereinfachen, sollten Sie in Erwägung ziehen, die Themenliste "Zu genehmigende Elemente" zum Standardlayout der Registerkarte "Startseite" hinzuzufügen. 1. Klicken Sie unter "Setup" auf Anpassen > Startseite > Startseitenlayouts. 2. Klicken Sie neben "Standardwert für Dashboard-Startseite" bzw. neben "DE Default" auf Bearbeiten. 3. Wählen Sie Zu genehmigende Elemente aus und klicken Sie auf Weiter. 4. Ordnen Sie die Komponente Zu genehmigende Elemente auf dem Seitenlayout an, indem Sie sie in der Liste "Breite (rechte) Spalte" nach Bedarf nach oben bzw. unten verschieben. 5. Klicken Sie auf Speichern. Abbildung110: Die Seite "Genehmigungsanfrage" 338 Kapitel 9: Verwenden benutzerdefinierter Workflow- und Genehmigungsprozesse Wenn der Genehmiger den Datensatz akzeptiert, rückt er zum nächsten Schritt des Genehmigungsprozesses vor (wenn im Feld Min Pay (Mindestgehalt) ein höherer Wert als 150.000 Dollar steht und der CEO ihn noch nicht genehmigt hat) oder aber das Feld Status der Stelle wird auf "Open - Approved" (Offen - Genehmigt) gesetzt. Die Datensatzdetails bleiben gesperrt, damit sie nicht geändert werden können, die Personalbeschaffungsmitarbeiter können jedoch die Stelle weiterhin mit Stellenbewerbungen, Aufgaben oder anderen Aktivitäten verknüpfen. Wenn der Datensatz abgelehnt wird, wird sein Status auf "Closed - Not Approved" (Geschlossen - Nicht genehmigt) gesetzt, das Feld Close Date (Offen bis) wird auf das heutige Datum gesetzt und die Sperre des Datensatzes wird aufgehoben, für den Fall, dass er kurz bearbeitet werden muss, bevor er wieder in den Genehmigungsprozess eintritt. Mit nur wenigen Minuten Arbeit haben wir einen leistungsstarken Geschäftsprozess erstellt, der die Produktivität aller Benutzer bei Universal Containers erhöht. Zusammenfassung Testen Sie nun Ihre Personalbeschaffungsanwendung! Durch die gezielte Nutzung der integrierten Workflow- und Genehmigungsprozesstools haben wir unser Anwendungsprogramm von einer besseren Datenbank zu einem voll funktionsfähigen Tool werden lassen, das alle sinnvoll nutzen können. Im nächsten Schritt nehmen wir etwas in Angriff, das insbesondere für unsere Benutzer im Bereich Geschäftsleitung von großem Nutzen ist: Berichte und Dashboards, mit denen unsere Benutzer eine komplette analytische Darstellung der Funktionsweise des Personalbeschaffungsprogramms bei Universal Containers erhalten. 339 Kapitel 10 Analysieren von Daten mit Berichten und Dashboards Themen: • • • • Einführung zu Berichten Einführung zu Dashboards Einführung zu benutzerdefinierten Berichten Rekapitulation Wir sind mit unserer Personalbeschaffungsanwendung schon weit gekommen. Wir verfügen nun nicht nur über benutzerdefinierte Objekte zum Speichern unserer Daten, sondern wir haben auch Sicherheits- und Freigaberegeln definiert, um diese Daten zu schützen und gleichzeitig die Zusammenarbeit innerhalb des Einstellungsteams zu erleichtern. Außerdem haben wir Automatisierung hinzugefügt, indem wir mehrere Geschäftsprozesse mit Workflow und Genehmigungen implementiert haben. Wir haben eine funktionsfähige Anwendung in der Cloud erstellt, ohne auch nur eine einzige Zeile Code zu schreiben. Nun ist es an der Zeit, uns den Bedürfnissen der Manager und Führungskräfte von Universal Containers zuzuwenden. Da sie über viele verschiedene geschäftliche Aspekte auf dem Laufenden bleiben müssen, benötigen wir eine Möglichkeit, wie wir ihnen einen Überblick über die Personalbeschaffungsaktivitäten des Unternehmens verschaffen können, ohne sie zu zwingen, sich mit Unmengen von Daten zu befassen. Dazu erstellen wir eine Reihe von benutzerdefinierten Berichten für unser Personalbeschaffungsanwendung und erstellen anschließend ein Dashboard, mit dem die Benutzer Zusammenfassungen bei jedem Anmeldevorgang wichtige Statistiken der Personalbeschaffungsanwendung anzeigen können. 341 Kapitel 10: Analysieren von Daten mit Berichten und Dashboards Einführung zu Berichten Wir können die Benutzer bei der Überwachung und Analyse der in ihrer Organisation generierten Daten unterstützen, indem wir Berichte erstellen. Berichte sind Zusammenfassungen der in einer Anwendung gespeicherten Daten. Sie bestehen in erster Linie aus einer Tabelle mit Daten, können jedoch auch Datenfilter, Gruppierungen und einen angepassten Graphen enthalten. Zu jeder Organisation gehört zwar automatisch eine umfassende Menge an Berichten, die Informationen zu Standardobjekten, wie Kontakten und Accounts bereitstellen, wir können jedoch auch benutzerdefinierte Berichte erstellen, die interessante Kennzahlen zu den Daten aufzeigen, die in unseren benutzerdefinierten Objekten gespeichert sind. Beispielsweise könnte ein leitender Angestellter bei Universal Containers folgende Fragen zur Personalbeschaffung haben. • • • • • • • Wie lange brauchen die einzelnen Personalbeschaffungsmitarbeiter durchschnittlich, um eine Stelle zu besetzen? In welchen Funktionsbereichen gibt es die meisten offenen Stellen? Welche Stellen sind bereits seit mehr als 90 Tagen unbesetzt? Für welche Stellen gibt es die meisten Bewerber? Welche Mitarbeiter führen die meisten Bewerbungsgespräche durch? Wie sieht die Stellenbewerbungspipeline für die einzelnen offenen Stellen aus? Wer wurde in den letzten 90 Tagen eingestellt? Wir können alle diese Fragen und noch weitere beantworten, indem wir benutzerdefinierte Berichte auf der Registerkarte "Berichte" der Anwendung erstellen. Auch wenn diese Registerkarte in der Personalbeschaffungsanwendung nicht standardmäßig sichtbar ist, kann jeder Benutzer auf den Pfeil auf der rechten Seite der Registerkartenleiste klicken und dann durch Klicken auf Berichte zum Berichtsbereich navigieren. 342 Kapitel 10: Analysieren von Daten mit Berichten und Dashboards Abbildung111: Beispielbericht Berichtsformate Die Plattform unterstützt vier verschiedene Berichtsformate, jedes mit unterschiedlichen Funktionen und unterschiedlicher Komplexität: 343 Kapitel 10: Analysieren von Daten mit Berichten und Dashboards • Tabellarische Berichte stellen die schnellste und einfachste Möglichkeit zur Betrachtung von Daten dar. Ähnlich wie Tabellenblätter bestehen sie einfach aus einer bestimmten Reihenfolge von Feldern in Spalten; die einzelnen entsprechenden Datensätze sind hierbei in einer Reihe aufgeführt. Sie sind zwar einfach einzurichten, können jedoch nicht zum Erstellen von Datengruppen oder Graphen verwendet werden. Daher werden sie am besten nur für Aufgaben wie die Erstellung von Verteilerlisten verwendet. Tipp: Verwenden Sie tabellarische Berichte, wenn Sie eine einfache Liste oder eine Liste von Elementen mit einer Gesamtsumme erstellen möchten. • Zusammenfassungsberichte ähneln tabellarischen Berichten, jedoch haben die Benutzer hier die Möglichkeit, Datenreihen zu gruppieren, Zwischenergebnisse/-summen anzuzeigen und Diagramme zu erstellen. Beispielsweise werden bei den Beispielen für Berichte vom Typ "Employee Interviewers" (Angestellte Gesprächsleiter), die im folgenden Screenshot angezeigt werden, im Zusammenfassungsbericht die Zeilen von Reviews anhand der möglichen Werte im Feld Inhabername gruppiert, sodass wir auf einen Blick Zwischensummen dazu sehen können, wie oft die beiden Gesprächsleiter mit Bewerbern gesprochen und Reviews für sie eingegeben haben. Zusammenfassungsberichte sind zwar ein wenig zeitaufwendiger bei der Einrichtung, sie bieten uns jedoch wesentlich mehr Optionen zur Bearbeitung und Organisation der Daten und im Gegensatz zu tabellarischen Berichten können sie auch in Dashboards verwendet werden. Zusammenfassungsberichte tragen die Hauptlast bei der Berichterstellung: Sie werden feststellen, dass gemeinhin die meisten Berichte dieses Format aufweisen. Tipp: Verwenden Sie Zusammenfassungsberichte, wenn Sie Zwischenergebnisse/-summen basierend auf dem Wert eines bestimmten Felds anzeigen oder einen hierarchisch gruppierten Bericht erstellen möchten, beispielsweise die Umsatzzahlen nach Jahr und dann nach Quartal gegliedert. • 344 Mit Matrixberichten können Sie Datensätze sowohl nach Zeile als auch nach Spalte gruppieren. Beispielsweise gruppiert bei den folgenden Beispielen für Berichte vom Typ "Employee Interviewers" (Angestellte Gesprächsleiter) der Matrixbericht die Review-Ziele anhand der möglichen Werte für das Feld Inhabername und schlüsselt auch die möglichen Werte des Felds Position (Stelle) in Spalten auf. Folglich bietet uns der Bericht Zusammenfassungsinformationen. Beispielsweise kann entnommen werden, wie oft ein Gesprächsleiter Bewerber befragt hat und Reviews für eine bestimmte Stelle eingegeben hat. Diese Berichte sind besonders zeitaufwendig in der Einrichtung, sie bieten jedoch auch die detailliertesten Einblicke in die Daten. Ebenso wie Zusammenfassungsberichte können auch Matrixberichte Graphen aufweisen und in Dashboards verwendet werden. Kapitel 10: Analysieren von Daten mit Berichten und Dashboards Tipp: Verwenden Sie Matrixberichte, wenn Sie Daten nach zwei verschiedenen Dimensionen aufschlüsseln möchten, die nicht miteinander verwandt sind, wie beispielsweise Datum und Produkt. • Mit verbundenen Berichten können Sie verschiedene Datenansichten aus mehreren Berichtstypen erstellen. In verbundenen Berichten sind die Daten in Blöcken organisiert. Die einzelnen Blöcke fungieren jeweils als "Unterbericht", mit eigenen Feldern und Spalten, eigener Sortierung und eigener Filterung. Sie können ein Diagramm zum verbundenen Bericht hinzufügen. Beispielsweise übernimmt der verbundene Bericht im folgenden Beispiel Daten aus zwei Berichtstypen, die mit dem Objekt "Positions" (Stellen) verwandt sind. Zusammen zeigt der Bericht Bewerbungen an, die zu Stellenanzeigen eingegangen sind, die für die einzelnen Stellen veröffentlicht wurden. Tipp: Mit verbundenen Berichten können Sie Daten aus mehreren Berichtstypen in verschiedenen Ansichten gruppieren und anzeigen. 345 Kapitel 10: Analysieren von Daten mit Berichten und Dashboards Abbildung112: Tabellarische Berichte, Zusammenfassungsberichte, Matrixberichte 346 Kapitel 10: Analysieren von Daten mit Berichten und Dashboards und verbundene Berichte bieten unterschiedliche Optionen zur Datenanzeige Einrichten der Personalbeschaffungsanwendung für Berichte Bevor wir mit der Erstellung von Berichten beginnen, müssen wir zunächst einige Aufgaben erledigen, um dafür zu sorgen, dass unsere Berichte problemlos in der Berichterstellungsanwendung gefunden werden können. Wir müssen die Registerkarte "Berichte" zur Standardregisterkartenanzeige hinzufügen, neben den Registerkarten "Positions" (Stellen), "Candidates" (Bewerber) und "Job Applications" (Stellenbewerbungen). Außerdem müssen wir einen Ordner erstellen, in dem alle von uns erstellten Berichte gespeichert werden. Beide Aufgaben sind rein optional, sie verbessern jedoch die Benutzerfreundlichkeit der Personalbeschaffungsanwendung erheblich. Probieren Sie es aus: Hinzufügen der Registerkarte "Berichte" Zuerst fügen wir die Registerkarte "Berichte" der Gruppe der Standardregisterkarten hinzu, die für jeden Benutzer der Personalbeschaffungsanwendung angezeigt werden. Hierzu müssen wir uns noch einmal die Personalbeschaffungsanwendung ansehen, die wir anfangs im Abschnitt Erstellen einer einfachen Anwendung auf Seite 39 erstellt haben. 1. Klicken Sie unter "Setup" auf Erstellen > Anwendungen. 2. Klicken Sie neben der Personalbeschaffungsanwendung auf Bearbeiten. 3. Fügen Sie im Abschnitt "Registerkarten wählen" die Registerkarte "Berichte" in der Liste "Ausgewählte Registerkarten" hinzu. 4. Sie können optional auch das Kontrollkästchen Persönliche Anpassungen von benutzerdefinierten Anwendungen des Benutzers überschreiben aktivieren. Bei Auswahl dieser Option wird die Registerkarte "Berichte" automatisch standardmäßig für alle Benutzer der Registerkartenleiste hinzugefügt. Wenn Sie Ihre Anwendung bereits bereitgestellt haben und Sie die von den vorhandenen Benutzern vorgenommenen Änderungen lieber nicht überschreiben möchten, deaktivieren Sie diese Option. Die Benutzer können die Registerkarte "Berichte" dann manuell auf ihrer persönlichen Registerkartenleiste hinzufügen, indem sie auf die Registerkarte + klicken. 5. Klicken Sie auf Speichern. 347 Kapitel 10: Analysieren von Daten mit Berichten und Dashboards Perfekt! Rufen wir nun die Registerkarte "Berichte" auf, um unsere nächste Aufgabe auszuführen: Erstellen eines Ordners für Personalbeschaffungsberichte. Probieren Sie es aus: Erstellen des Ordners "Recruiting Reports" (Personalbeschaffungsberichte) Auf der Registerkarte "Berichte" werden kürzlich angezeigte Berichte und Dashboards angezeigt, die in Berichts- oder Dashboard-Ordnern organisiert sind. Sie können schnell den Fensterbereich "Ordner" durchsuchen oder eine Suche nach dem gewünschten Element durchführen. Um alle Elemente oder beispielsweise nur Berichte anzuzeigen, können Sie die Listenansicht filtern. Jede Organisation enthält als Vorgabe Standardordner, von denen einige Berichtsvorlagen enthalten. "Nicht abgelegte öffentliche Berichte" ist ein Standardordner, auf den alle Benutzer zugreifen können. Als Administrator können Sie Berichte in diesem Ordner speichern, um sie für alle Personen in Ihrer Organisation freizugeben. Sie können alle anderen Ordner als öffentlich festlegen, indem Sie sie für alle Benutzer freigeben. Persönliche Ordner (auch Standardordner) wie "Meine persönlichen benutzerdefinierten Berichte" und "Meine persönlichen Dashboards" stellen eine Ausnahme dar. Sie enthalten Berichte oder Dashboards, die für den betreffenden Benutzer privat sind und auf die keine anderen Personen zugreifen können. Abbildung113: Die Registerkarte "Berichte" und Ordner Damit die Benutzer auf Ihre Berichte zugreifen können, müssen Sie ihnen Zugriff auf den Ordner, in dem die Berichte gespeichert sind, gewähren. Erstellen wir einen Ordner für Berichte, den unsere Benutzer problemlos finden können. 1. Klicken Sie auf der Registerkarte "Berichte" auf neben dem Fenster "Ordner" und wählen Sie Neuer Berichtsordner aus. 2. Geben Sie im Feld Bezeichnung des Berichtordners den Text Recruiting Reports (Personalbeschaffungsberichte) ein. In das Feld Eindeutiger Ordnername wird automatisch der Eintrag Recruiting_Reports eingefügt. Behalten Sie diesen Standardwert bei. 3. Klicken Sie auf Speichern. 348 Kapitel 10: Analysieren von Daten mit Berichten und Dashboards 4. Klicken Sie neben dem Ordner "Recruiting Reports" (Personalbeschaffungsberichte) auf und wählen Sie dann Freigeben. Anmerkung: Wenn die Option "Freigeben" nicht angezeigt wird, müssen Sie lediglich die Ordnerfreigabe aktivieren. Klicken Sie unter "Setup" auf Anpassen > Berichte & Dashboards > Ordnerfreigabe und stellen Sie sicher, dass Zugriffsebenen für die Freigabe von Berichts- und Dashboard-Ordnern aktivieren ausgewählt ist. Sie können alle Inhalte eines Berichtordners freigeben, indem Sie oben im Dialogfeld eine der verfügbaren Optionen auswählen: "Benutzer", "Rollen", "Rollen und nachgeordnete Positionen" oder "Öffentliche Gruppen". Wir wollen festlegen, dass alle Mitarbeiter von Universal Containers die Berichte in diesem Ordner anzeigen aber nicht ändern können. 5. Klicken Sie auf Rollen und nachgeordnete Positionen. 6. Klicken Sie neben "CEO" auf Freigeben. 7. Vergewissern Sie sich, dass in der Spalte "Zugriff" die Zugriffsebene Betrachter ausgewählt ist. Dadurch können alle Benutzer in Ihrem Unternehmen diesen Ordner und die darin enthaltenen Berichte anzeigen. Das Ändern der Berichte innerhalb des Ordners oder das Hinzufügen neuer Berichte ist jedoch Administratoren vorbehalten. 8. Klicken Sie zum Speichern der Einstellungen auf Fertig und klicken Sie dann auf Schließen. Großartig. Wir können nun unseren ersten Bericht erstellen. Erstellen eines Zusammenfassungsberichts Wir beginnen mit der Erstellung eines Zusammenfassungsberichts, mit dem folgende Frage beantwortet wird: "Für welche Funktionsbereiche sind die meisten neuen oder offenen Stellen vorhanden und in welcher Region?" Dieser Bericht soll den Titel, den Einstellungs-Manager, den Standort und den Status der einzelnen Stellen und ein Kreisdiagramm enthalten, in dem die Daten visuell dargestellt sind. Dabei überspringen wir einige komplexere Berichterstellungsoptionen, damit wir schnell einen Bericht erstellen können, der unseren Anforderungen genügt. In unserem zweiten Beispiel definieren wir dann einen komplexeren Matrixbericht, mit dem einige erweiterte Berichtsfunktionen demonstriert werden. Da für diesen Bericht so viele verschiedene Berichtsfunktionen verwendet werden, unterteilen wir den Vorgang in drei Teile: 349 Kapitel 10: Analysieren von Daten mit Berichten und Dashboards 1. Erstellen eines Zusammenfassungsberichts 2. Hinzufügen von Spalten und Filtern 3. Hinzufügen eines Diagramms Probieren Sie es aus: Erstellen eines Zusammenfassungsberichts Zum Erstellen unseres Zusammenfassungsberichts öffnen wir zunächst den Berichtsgenerator, einen leistungsstarken visuellen Editor für Berichte. 1. Klicken Sie auf der Registerkarte "Berichte" auf Neuer Bericht. Der erste Schritt bei der Berichterstellung ist die Auswahl des richtigen Berichtstyps. Ein Berichtstyp definiert den Satz an Datensätzen und Feldern, die bei einem Bericht, basierend auf den Beziehungen zwischen einem primären Objekt und dessen dazugehörigen Objekten, verfügbar sind. In Berichten werden nur Datensätze angezeigt, die den im Berichtstyp definierten Kriterien entsprechen. Ihre Administratoren haben möglicherweise benutzerdefinierte Berichtstypen eingerichtet, die Sie verwenden können. Es stehen für Sie jedoch auch die verfügbaren Standardberichtstypen zur Wahl. Um die Navigation in diesem Bildschirm zu erleichtern, wurden alle Objekte und Beziehungen in Kategorien wie beispielsweise "Accounts & Kontakte" oder "Kundensupportberichte" eingeordnet. Die benutzerdefinierten Objekte und Beziehungen, die wir für unsere Personalbeschaffungsanwendung erstellt haben, finden Sie unter "Andere Berichte". Anmerkung: Die Kategorie "Andere Berichte" enthält alle Berichte, die auf benutzerdefinierten Objekten basieren. Wenn Sie ein benutzerdefiniertes Objekt erstellt haben, das sich auf ein Standardobjekt bezieht, wie beispielsweise "Account" oder "Kontakt", können Sie auch einen Bericht über Ihr benutzerdefiniertes Objekt in der Kategorie des Standardobjekts ausführen. 2. Wählen Sie auf der Seite "Neuen Bericht erstellen" die Kategorie "Andere Berichte" aus. 350 Kapitel 10: Analysieren von Daten mit Berichten und Dashboards Abbildung114: Die Kategorie "Andere Berichte" auf der Seite "Neuen Bericht erstellen" Objekte, die über eine n:1-Beziehung mit einem anderen Objekt verfügen, wie beispielsweise "Job Applications" (Stellenbewerbungen) und "Positions" (Stellen), können entweder einzeln oder im Kontext mit der Beziehung zu dem anderen Objekt ausgewählt werden. Wenn wir zum Beispiel "Job Applications" (Stellenbewerbungen) zusammen mit "Position" (Stelle) auswählen, werden in unserem Bericht die Datensätze für "Job Applications" (Stellenbewerbungen) gezählt, es besteht jedoch auch die Möglichkeit, nach Feldern aus den zugehörigen Stellendatensätzen zu filtern, zu gruppieren oder anzuzeigen. Dies wird sich etwas später beim Erstellen von Berichten, in denen Stellenbewerbungsdatensätze gezählt werden, als sehr nützlich erweisen. Da wir momentan jedoch keine Stellendatensätze in unserem Bericht zählen müssen und Stellen nicht auf der n-Seite der Beziehung stehen, sehen wir uns vorerst einen Bericht nur für "Positions" (Stellen) an. 3. Wählen Sie "Positions" (Stellen). 4. Klicken Sie auf Erstellen. Abbildung115: Benutzerdefinierter Bericht im Berichtsgenerator Jetzt, nachdem wir den Berichtstyp ausgewählt haben, können wir den Bericht anpassen. Beachten Sie, dass wir den Berichtstyp nachträglich nicht mehr ändern können. Wenn sie dies 351 Kapitel 10: Analysieren von Daten mit Berichten und Dashboards tun möchten, müssen Sie mit einem ganz neuen Bericht beginnen. Im Berichtsgenerator im Fenster "Vorschau" wird eine begrenzte Gruppe von Daten angezeigt; wir können den Bericht auch jederzeit ausführen, um festzustellen, ob wir die gewünschten Ergebnisse erhalten. Sehen wir beispielsweise nach, wie ein Basisbericht für "Positions" (Stellen) ohne Anpassungen aussieht. 5. Klicken Sie auf Bericht ausführen. Abbildung116: Ein Bericht über "Positions" (Stellen) ohne Anpassungen Anmerkung: Für die Dropdownliste "Anzeige von" wird standardmäßig "My Positions" (Meine Stellen) angezeigt. Wenn Sie als Benutzer angemeldet sind, der für keine Stelle als Inhaber zugewiesen ist, wählen Sie "All Positions" (Alle Stellen) aus, bevor Sie auf Bericht ausführen klicken. Anschließend werden im Bericht alle Stellen angezeigt, auf die Sie zugreifen können. Wie Sie sehen, ohne detaillierte Angaben machen zu müssen, verfügen wir bereits jetzt über eine Liste mit Stellendatensätzen mit einem Wert für "Gesamtsumme" im unteren Seitenbereich. Dies entspricht in etwa der Darstellung, wenn wir einen tabellarischen Bericht ohne zusätzliche Spalten auswählen. Sehen wir uns für diesen grundlegenden Bericht nun die nächste Stufe an. 6. Klicken Sie auf Anpassen, um zum Berichtsgenerator zurückzukehren. Zum Erstellen eines neuen Berichts müssen wir zunächst das gewünschte Format für den Bericht auswählen. Die Standardvorgabe lautet "Tabellarisch". Da wir Zeilen mit offenen Stellen nach Funktionsbereich einordnen möchten, erstellen wir einen Zusammenfassungsbericht. 352 Kapitel 10: Analysieren von Daten mit Berichten und Dashboards 7. Klicken Sie auf Tabellarisch und wählen Sie zum Ändern des Formats Übersicht aus. Jetzt möchten wir unsere Zeilen mit Daten nach den Angaben im Feld Functional Area (Funktionsbereich) gruppieren. 8. Suchen Sie im Fenster "Felder" nach Functional Area (Funktionsbereich) und ziehen Sie es in den Ablegebereich für Gruppierungen im Fenster "Vorschau". Wenn Sie über zahlreiche Felder verfügen, können Sie diesen Vorgang am schnellsten mithilfe der Schnellsuche ausführen. Abbildung117: Hinzufügen einer Gruppierung für einen Bericht Die Stellen sollen auch nach Region gruppiert werden. Im Feld "Standort" werden die Stadt und das Bundesland angezeigt, wir möchten die Daten allerdings nach geografischen Regionen, wie USA, Großbritannien und Asien/Pazifik gruppieren. Wenn wir das Feld für den Standort in Buckets einordnen, erhalten wir ein Feld, das wir für die Gruppierung verwenden können. 9. Ziehen Sie Standort aus dem Fenster "Feld" in die Vorschau und platzieren Sie es hinter "Position Title" (Stellentitel). 10. Klicken Sie auf das für "Standort" und wählen Sie Bucketing für dieses Feld durchführen aus. 11. Geben Sie Region unter Name des Bucket-Felds ein. 12. Klicken Sie auf Neuer Bucket, geben Sie USA ein und drücken Sie die Eingabetaste. 13. Wählen Sie: • • • • San Francisco, CA Austin, TX Boulder, CO New York, NY 353 Kapitel 10: Analysieren von Daten mit Berichten und Dashboards 14. Klicken Sie auf Verschieben in und wählen Sie in der zugehörigen Dropdownliste USA aus. 15. Klicken Sie auf Neuer Bucket, geben Sie "UK" (Großbritannien) ein und drücken Sie die Eingabetaste. 16. Verschieben Sie London, England in die Kategorie "UK" (Großbritannien). 17. Verschieben Sie die verbleibenden Einträge in einen Bucket namens "Asia Pacific" (Asien/Pazifik). 18. Klicken Sie auf OK. Abbildung118: Erstellen von Bucket-Feldern Wenn Sie fertig sind, sind die Standorte nach Region eingeordnet und Sie verfügen über ein Bucket-Feld mit dem Namen "Region", das im Feldfenster angezeigt wird. Wir müssen an dieser Stelle jedoch nichts tun, da die Plattform es bereits automatisch links neben "Position Title" (Stellentitel) hinzugefügt hat. Abbildung119: Bucket-Felder in der Berichtvorschau Jetzt kommen wir dem Ziel schon näher! In unserem Bericht werden weiterhin nur Stellentitel aufgelistet, sie sind jedoch nach Funktionsbereichen und nach Region geordnet. Darüber hinaus wird für jede Gruppierung ein Wert für die Gesamtsumme der Datensätze in Klammern angegeben. Diese Zahlen bilden die Grundlage für ein Kreisdiagramm, das wir später hinzufügen. Probieren Sie es aus: Hinzufügen von Spalten und Filtern Wählen wir nun die angezeigten Felder aus, ordnen wir sie und legen wir die Filter fest, die die Menge der in den Bericht aufgenommenen Datensätze begrenzen. 354 Kapitel 10: Analysieren von Daten mit Berichten und Dashboards Neben Position Title (Stellentitel) und Location (Standort) möchten wir auch die Felder Hiring Manager (Einstellungs-Manager) und Status für die einzelnen Datensätze anzeigen. Drücken Sie die Strg-Taste (Windows) bzw. die Befehlstaste (Mac), um mehrere Felder oder Spalten hinzuzufügen. 1. Ziehen Sie im Berichtsgenerator folgende Felder in die Vorschau. • • Hiring Manager (Einstellungs-Manager) Status Sie können auch auf Felder doppelklicken, um sie am Ende des Berichts hinzuzufügen. 2. Ordnen Sie die Spalten durch Ziehen neu an. Wenn Sie fertig sind, sollte die Reihenfolge wie folgt aussehen: • • • • Position Title (Stellentitel) Location (Standort) Hiring Manager (Einstellungs-Manager) Status Abbildung120: Hinzufügen von Spalten mittels Ziehen und Ablegen Wir sind unserem Ziel nun noch näher. Allerdings sehen wir am Feld Status, dass im Bericht auch Datensätze zu Stellen enthalten sind, die bereits besetzt wurden. Da wir nur die neuen und offenen Stellen sehen möchten, müssen wir Filter festlegen. Mit Filtern wird die Menge an Datensätzen festgelegt, die in den Bericht aufgenommen werden sollen. Beispielsweise könnten Sie nur Datensätze mit aufnehmen, die in diesem Monat erstellt wurden, oder nur Datensätze, die zu einem bestimmten Benutzer gehören. Mit Standardfiltern können Sie rasch nach dem Feld für den Datensatzinhaber bzw. das Datum filtern. Mit Feldfiltern können Sie nach jedem beliebigen Feld im Bericht filtern. Da wir offene Stellen in der gesamten Organisation anzeigen möchten und nicht nur Stellen, deren Inhaber wir selbst sind (standardmäßig enthalten alle benutzerdefinierten Berichte nur Datensätze vom Typ "Meine"), müssen wir zwei Filter festlegen. 3. Wählen Sie in der Dropdown-Liste "Anzeige von" die Option All Positions (Alle Stellen) aus. 355 Kapitel 10: Analysieren von Daten mit Berichten und Dashboards 4. Klicken Sie auf Hinzufügen > Feldfilter. 5. Definieren Sie einen Filter für Status equals New Position, Pending Approval, Open - Approved (Status gleich Neue Stelle, Genehmigung ausstehend, Offen - Genehmigt) Tipp: Beachten Sie: Jedes Mal, wenn Sie ein Kontrollkästchen oder ein Auswahllistenfeld wie Status in Ihrem Filter auswählen, wird neben der Filterzeile ein Nachschlagesymbol ( ) angezeigt. Klicken Sie auf das Symbol, um gültige Werte für das betreffende Feld anzuzeigen und schnell diejenigen Felder einzufügen, die Sie filtern möchten. Die Verwendung des Filters Status equals New Position, Pending Approval, Open - Approved (Status gleich Neue Stelle, Genehmigung ausstehend, Offen Genehmigt) führt dazu, dass in unserem Bericht nur diejenigen Stellendatensätze enthalten sind, die einen dieser drei Statuswerte aufweisen. Beachten Sie, dass das Komma zwischen den drei Status-Werten als OR-Funktion behandelt wird. Dieser Filter entspricht also der Kombination aus folgenden drei Filtern. • • • Status equals New Position, OR (Status gleich Neue Stelle, OR) Status equals Pending Approval, OR (Status gleich Genehmigung ausstehend, OR) Status equals Open - Approved (Status gleich Offen- Genehmigt) Beyond the Basics Wussten Sie, dass Sie nach einem Bucket-Feld filtern können? Angenommen, Sie möchten Daten für Regionen außerhalb Großbritanniens anzeigen. Sie können einen Filter zu dem Bucket-Feld Region hinzufügen, das Sie in der letzten Übung zum Gruppieren von Daten verwendet haben. Sie können Bucket-Felder wie jedes andere Feld im Bericht filtern. Der Filter in diesem Beispiel sollte dazu wie folgt festgelegt werden: Region does not contain UK. (Region enthält nicht Großbritannien) Wenn Sie weitere Felder hinzufügen, werden diese Standardmäßig kumulativ mithilfe der Funktion AND auf den Bericht angewendet. Es werden also nur Daten, die alle Filterbedingungen erfüllen, angezeigt. Aber nun können Sie steuern, wie Filter sich verhalten, indem Sie Filterlogik aus der Dropdownliste "Hinzufügen" verwenden. Probieren Sie es aus: Hinzufügen eines Kreisdiagramms Der letzte Schritt besteht darin, ein Diagramm zusammen mit dem Bericht anzuzeigen. In unserem Fall möchten wir ein Kreisdiagramm. 356 Kapitel 10: Analysieren von Daten mit Berichten und Dashboards 1. Klicken Sie auf Diagramm hinzufügen und wählen Sie den Diagrammtyp "Kreisdiagramm" aus. Die Diagrammerstellungsfunktion weiß automatisch, dass die Werte die Anzahl der Datensätze und die Segmente bzw. Keile die verschiedenen Funktionsbereiche sein sollen. Das liegt daran, dass Diagrammwerte mit den Zusammenfassungsfeldern des zugehörigen Berichts korrelieren und die Keile von Kreisdiagrammen mit den Gruppierungen des Berichts. Da wir noch eine zweite Gruppierung nach Region haben, können wir ein anderes Feld für die Anzeige in den Keilen auswählen. Wir behalten jedoch die Standardauswahl bei. Stellen wir nun unser Diagramm fertig und generieren wir unseren endgültigen Bericht. 2. Klicken Sie auf OK. Abbildung121: Zusammenfassungsbericht für die offenen Stellen nach Region und Funktionsbereich Nach der Ausführung des Berichts stehen Ihnen mehrere Optionen zur Anzeige von Daten zur Verfügung. • Sie können die Daten anhand eines anderen Felds gruppieren bzw. zusammenfassen. Beispielsweise kann die Zusammenfassung anstatt nach Functional Area (Funktionsbereich) nach Hiring Manager (Einstellungs-Manager) erfolgen. 357 Kapitel 10: Analysieren von Daten mit Berichten und Dashboards • • • Sie können Daten in ein Excel-Tabellenblatt oder eine CSV-Datei (Comma Separated Values, kommagetrennte Werte) exportieren. Sie können alle etwaigen angewendeten Filter löschen. Sie können die Ergebnisse mit Standardfiltern, wie beispielsweise Datum oder Bereich, eingrenzen. Da unser Bericht alle unsere Kriterien erfüllt, speichern wir ihn nun im Ordner "Personalbeschaffungsberichte". 3. Klicken Sie oben im Bericht auf Speichern. 4. Geben Sie im Feld Berichtsname den Text Open Positions by Functional Area and Region (Offene Stellen nach Funktionsbereich und Region) ein. 5. Geben Sie im Feld Berichtsbeschreibung den Text Which functional areas have the most new or open positions by region? (Welche Funktionsbereiche weisen die meisten neuen oder offenen Stellen, geordnet nach Region, auf?) ein. 6. Geben Sie im Feld Eindeutiger Berichtsname den Text Open_Positions_by_Functional_Area ein, sofern dies nicht bereits der vorgegebene Wert ist. 7. Wählen Sie in der Dropdownliste Berichtsordner den Eintrag "Recruiting Reports" (Personalbeschaffungsberichte) aus. 8. Klicken Sie auf Speichern. Wenn wir nun den Ordner "Recruiting Reports" (Personalbeschaffungsberichte) anzeigen, sehen wir unseren neuen Zusammenfassungsbericht. Als Nächstes erstellen wir einen Matrixbericht, mit dem einige erweiterte Berichtsfunktionen genutzt werden können. Erstellen eines Matrixberichts Bei unserem nächsten Bericht beantworten wir die Frage "Wie lange brauchen die einzelnen Personalbeschaffungsmitarbeiter durchschnittlich, um eine Stelle mit bzw ohne erforderliche Reisetätigkeit zu besetzen?" In diesem Bericht verwenden wir ein Matrixformat, um zu ermitteln, welchen Unterschied verpflichtende Reisetätigkeit bei der Dauer bis zur Stellenbesetzung macht. Wenn wir ausschließlich die Daten für das aktuelle und das letzte Jahr betrachten, enthält der Bericht folgende Elemente: • • 358 Datensatzzahl für die einzelnen Stellen, deren Inhaber ein bestimmter Personalbeschaffungsmitarbeiter ist. Eine benutzerdefinierte Summenformel für den Prozentsatz der Stellen eines Personalbeschaffungsmitarbeiters, die verpflichtende Reisetätigkeit beinhalten. Kapitel 10: Analysieren von Daten mit Berichten und Dashboards • • Einen zeitbasierten Filter, der die Daten auf Stellen einschränkt, die in diesem Jahr oder im letzten Jahr erstellt wurden Eine farbcodierte Feldzusammenfassung für die Anzahl der Tage, die die Stellen durchschnittlich unbesetzt bleiben: ◊ Durchschnittswerte von weniger als 30 Tagen sind grün farbcodiert. ◊ Durchschnittswerte zwischen 30 und 60 Tagen sind gelb farbcodiert. ◊ Durchschnittswerte von mehr als 60 Tagen sind rot farbcodiert. Da in diesem Bericht so viele verschiedene Berichterstellungsfunktionen verwendet werden, gliedern wir das Verfahren in vier Teile: 1. 2. 3. 4. Erstellen eines Matrixberichts Hinzufügen benutzerdefinierter Zusammenfassungsfelder Hinzufügen von Spalten und Filtern Hinzufügen eines Diagramms und von bedingter Hervorhebung Probieren Sie es aus: Erstellen eines Matrixberichts Zur Erstellung des Matrixberichts verwenden wir erneut den Berichtsgenerator, wobei wir diesmal Schritte hervorheben, bei denen die Vorgehensweise von der für den Zusammenfassungsbericht abweicht. 1. Klicken Sie auf der Registerkarte "Berichte" auf Neuer Bericht. Auch hier erstellen wir einen Bericht, bei dem die Stellendatensätze gezählt werden. 2. Klicken Sie in der Liste auf das "+", um den Bereich "Andere Berichte" zu erweitern. 3. Wählen Sie "Positions" (Stellen) aus und klicken Sie auf Erstellen. Da wir die Leistung der einzelnen Personalbeschaffungsmitarbeiter direkt für Stellen vergleichen möchten, bei denen Reisetätigkeit erforderlich ist bzw. nicht erforderlich ist, verwenden wir einen Matrixbericht . Auf diese Weise können wir die Stellenzeilen nach Personalbeschaffungsmitarbeiter gruppieren und die Stellenspalten danach, ob Reisetätigkeit erforderlich ist oder nicht. 4. Wählen Sie in der Dropdownliste "Format" die Option Matrix aus. 359 Kapitel 10: Analysieren von Daten mit Berichten und Dashboards Abbildung122: Angabe von Gruppierungen in einem Matrixbericht Führen wir nun die Gruppierung sowohl nach Zeilen als auch nach Spalten durch. Beachten Sie die zwei Gruppen von Ablegebereichen für Matrixberichte. 5. Ziehen Sie im Fenster "Felder" Position: Owner Name (Stelle: Inhabername) in den Ablegebereich für die Zeilengruppierung. 6. Ziehen Sie nun Travel Required (Reise erforderlich) in den Ablegebereich für die Spaltengruppierung. Unser Bericht schlüsselt nun die möglichen Werte für das Feld Travel Required (Reise erforderlich) in der Spaltendimension auf. Die Personalbeschaffungsmitarbeiter werden in der Zeilendimension ebenfalls aufgeschlüsselt, aber da alle benutzerdefinierten Berichte standardmäßig nur die Daten zu der Person abfragen, die den Bericht erstellte (d. h. nur Datensätze vom Typ "Meine"), ist im Bericht bisher nur ein einziger Personalbeschaffungsmitarbeiter aufgeführt. Machen wir weiter. Probieren Sie es aus: Hinzufügen von Zusammenfassungsfeldern Im nächsten Schritt möchten wir angeben, welche Werte von numerischen Feldern bzw. von Kontrollkästchenfeldern in unseren Bericht aufgenommen werden sollen und wie die einzelnen Werte jeweils in Zwischen- und Gesamtsummen zusammengefasst werden sollen. Die Anzahl 360 Kapitel 10: Analysieren von Daten mit Berichten und Dashboards der Datensätze wird zwar stets als Summe zusammengefasst, die anderen numerischen Felder und Kontrollkästchenfelder können jedoch auf verschiedene Weisen zusammengefasst werden. Beispielsweise ist es nicht sinnvoll, die Werte der Spalte Days Open (Tage offen) zu summieren, da die sich so ergebende Summe nicht viel Nutzen hätte. Wenn wir jedoch den Durchschnitt für Days Open (Tage offen) berechnen, wissen wir ungefähr, wie lange Stellen unbesetzt bleiben. Für unseren Bericht müssen wir drei verschiedene Arten von Zusammenfassungen mit aufnehmen: Datensatzanzahl, Durchschnitt von "Days Open" (Tage offen) und eine Formel, die den Prozentsatz der Datensätze berechnet, bei denen Reisen erforderlich sind. Die ersten beiden sind Standard-Zusammenfassungsfelder, für das dritte müssen wir jedoch den Editor für benutzerdefinierte Zusammenfassungsformeln aufrufen. Beginnen wir mit den ersten beiden. Das Feld Datensatzzahl wird standardmäßig zum Bericht hinzugefügt. Befassen wir uns also mit dem Durchschnitt für die Anzahl der Tage, die eine Stelle offen bleibt. 1. Suchen Sie das Feld Days Open (Tage offen) und legen Sie es in der Matrix ab. 2. Wählen Sie im Dialogfeld "Zusammenfassen" die Option Durchschnitt aus. Erstellen wir nun die Formel zur Berechnung des Prozentsatzes der Datensätze, bei denen Reisen erforderlich sind. 3. Doppelklicken Sie auf Formel hinzufügen. Der Editor für benutzerdefinierte Zusammenfassungsformeln wird angezeigt. 361 Kapitel 10: Analysieren von Daten mit Berichten und Dashboards Abbildung123: Die Erstellungsfunktion für benutzerdefinierte Zusammenfassungsformeln Im Formeleditor können wir eine neue Formel auf der Grundlage der zusammenfassbaren Felder im Bericht definieren. In unserem Fall möchten wir eine Zusammenfassung mit aufnehmen, die den Prozentsatz der Stellendatensätze angibt, bei denen in den verschiedenen Segmenten Reisen erforderlich sind. Für diese Berechnung müssen wir die Summe der Datensätze, bei denen Reisen erforderlich sind, durch die Summe aller Datensätze dividieren: 4. Geben Sie im Feld Spaltenname den Text Travel Required Percentage (Prozentsatz Reise erforderlich) ein. 5. Geben Sie im Feld Beschreibung den Text The percentage of total position records that require travel (Der Prozentsatz der Stellendatensätze insgesamt, bei denen Reisen erforderlich sind) ein. 6. Wählen Sie in der Dropdownliste Format den Wert Prozent aus. 7. Wählen Sie in der Dropdownliste Dezimalstellen den Wert 0 aus. 8. Wählen Sie unter Wo wird diese Formel angezeigt? die Option Auf allen Zusammenfassungsebenen aus. Schreiben wir nun unsere Formel. Ähnlich wie bei den anderen Formeleditoren in der Plattform werden Tools bereitgestellt, die uns die Arbeit erleichtern. 9. Klicken Sie im Abschnitt "Formel" auf Zusammenfassungsfelder und wählen Sie Travel Required (Reise erforderlich) und dann "Summe" aus. 362 Kapitel 10: Analysieren von Daten mit Berichten und Dashboards Der Formeleditor zeigt die folgende API-Darstellung dieser Werte an: Position__c.Travel_Required__c:SUM 10. Klicken Sie auf die Dropdownliste Operatoren und wählen Sie die Option Dividieren aus. 11. Klicken Sie auf Zusammenfassungsfeld und wählen Sie Datensatzzahl aus. Die endgültige Formel sieht wie folgt aus: Position__c.Travel_Required__c:SUM / RowCount Wir können rasch überprüfen, dass die Formel korrekt ist, indem wir vor dem Speichern ihre Syntax überprüfen. 12. Klicken Sie auf Syntax prüfen. 13. Klicken Sie auf OK. Probieren Sie es aus: Hinzufügen von Spalten und Filtern In den nächsten Schritten wählen wir Berichtspalten aus und definieren dann unsere Filter. Da wir mit dem Hinzufügen von Spalten bereits vertraut sind, führen wir diesen Schritt schnell zuerst aus. Anmerkung: Bevor Sie Felder in einen Matrixbericht einfügen, müssen Sie in der Dropdown-Liste Anzeigen die Option "Details" auswählen. Wenn die Details nicht angezeigt werden, können Sie nur Zusammenfassungsfelder hinzufügen. 1. Fügen Sie folgende Berichtspalten hinzu, indem Sie darauf doppelklicken: • • Functional Area (Funktionsbereich) Status Position: Position Title (Stelle: Stellentitel), Days Open (Tage offen) und Travel Required (Reise erforderlich) sollten bereits im Bericht enthalten sein. Für unseren Bericht möchten wir drei Filter definieren: einen, in dem alle Stellen enthalten sind, einen in dem nur die im vergangenen Jahr erstellten Stellen enthalten sind, und einen, in dem alle Stellen mit dem Status "Open - Approved" (Offen - Genehmigt) oder "Closed - Filled" (Geschlossen - Besetzt) enthalten sind. 363 Kapitel 10: Analysieren von Daten mit Berichten und Dashboards 2. Wählen Sie in der Dropdownliste "Anzeige von" die Option All Positions (Alle Stellen) aus. 3. Wählen Sie im Filter "Datumsfeld" die Option Position: Created Date (Stelle: Erstelldatum) aus. Beachten Sie, dass alle anderen für das Objekt "Position" (Stelle) definierten Datumsfelder auch im Filter "Datumsfeld" vorhanden sind. Dazu zählen Close Date (Offen bis), Hire By (Einstellen bis) und Open Date (Offen von). 4. Wählen Sie für Bereich die Option Aktuelles und vorheriges Kalenderjahr aus. Die Werte für das Startdatum und das Enddatum werden automatisch ausgefüllt. Nun fügen wir einen Feldfilter hinzu, der auf dem Status basieren soll. 5. Klicken Sie auf Hinzufügen. 6. Erstellen Sie diesen Filter: Status equals Open - Approved, Closed - Filled (Status gleich Offen - Genehmigt, Geschlossen - Besetzt) 7. Klicken Sie auf OK. Abbildung124: Filtern des Matrixberichts Beyond the Basics Mithilfe von Kreuzfiltern können Sie nach untergeordneten Objekten eines Berichts anhand der einfachen Bedingungen MIT und OHNE filtern. Beispiel: Sie möchten nur die Daten für Stellen anzeigen, die über Stellenbewerbungen verfügen. Sie können über die Dropdownliste "Hinzufügen" im Fenster "Felder" einen Kreuzfilter wie folgt hinzufügen: Positions with Job Applications (Stellen mit Stellenbewerbungen). Anschließend können Sie einen weiteren untergeordneten Filter für das Objekt Job Applications (Stellenbewerbungen) ausführen, um die Ergebnisse zu verfeinern. 364 Kapitel 10: Analysieren von Daten mit Berichten und Dashboards Abbildung125: Hinzufügen eines Kreuzfilters Probieren Sie es aus: Hinzufügen eines Diagramms und von bedingter Hervorhebung Wir sind fast fertig. Jetzt fügen wir ein horizontales Balkendiagramm hinzu, in dem die durchschnittliche Anzahl der Tage, die Stellen ausgeschrieben waren, die Personalbeschaffungsmitarbeiter und ob eine Reisetätigkeit erforderlich ist oder nicht, angezeigt werden. Zusätzlich wollen wir für bestimmte Daten eine bedingte Hervorhebung festlegen, damit wir schnell analysieren können, welche Personalbeschaffungsmitarbeiter eine gute Leistung aufweisen und welche Mitarbeiter sich um eine schnellere Besetzung ihrer Stellen bemühen müssen. 1. Klicken Sie auf Diagramm hinzufügen. 2. Wählen Sie den Typ "Vertikales Balkendiagramm" aus. 3. Wählen Sie in der Dropdownliste Y-Achse den Eintrag Average Days Open (Durchschnitt Tage offen) aus. 4. Wählen Sie in der Dropdownliste X-Achse den Eintrag Position: Owner Name (Stelle: Inhabername) aus. 5. Wählen Sie in der Dropdownliste Gruppieren nach den Eintrag Travel Required (Reise erforderlich) aus und behalten Sie das Gruppierungsformat "Nebeneinander" bei. 6. Lassen Sie das Kontrollkästchen Weitere Werte darstellen leer. 365 Kapitel 10: Analysieren von Daten mit Berichten und Dashboards Kombinationsdiagramme stellen mehrere Datensets in einem einzigen Diagramm dar. Jedes Datenset beruht auf einem anderen Feld, sodass die Werte leicht vergleichbar sind. Außerdem können Sie bestimmte Diagrammtypen kombinieren, um Daten in einem einzigen Diagramm auf verschiedene Weise darzustellen. Für den Bericht, den wir erstellen, ist kein Kombinationsdiagramm erforderlich, diese Diagramme sind aber nützlich, um Daten zu vergleichen, Trends in Diagrammen darzustellen usw. 7. Klicken Sie auf die Registerkarte "Formatierung". 8. Geben Sie in das Feld Diagrammtitel den Text Avg Days to Hire With and Without Travel (Durchschnittliche Tage bis zur Einstellung mit und ohne Reisetätigkeit) ein. 9. Klicken Sie auf OK. Unsere drei Zusammenfassungsfelder können alle hervorgehoben werden, wir möchten jedoch nur eines markieren: Average Days Open (Durchschnitt Tage offen). Wir möchten nämlich hervorheben, welche Personalbeschaffungsmitarbeiter Stellen in weniger als 30 Tagen, weniger als 60 Tagen oder mehr als 60 Tagen besetzen. 10. Klicken Sie auf die Dropdownliste Anzeige von und wählen Sie Bedingte Hervorhebung aus. Abbildung126: Hinzufügen von bedingten Hervorhebungen zum Anzeigen von Datenänderungen 11. Legen Sie in der ersten Zeile die Option Feld auswählen auf Average Days Open (Durchschnitt Tage offen) fest. 12. Wählen Sie in der ersten Farbauswahl einen Grünton aus. Dies ist die Farbe für den unteren Bereich. 13. Geben Sie in das erste Textfeld 30 ein. Dies ist der Haltepunkt für den unteren Bereich. 14. Geben Sie in das zweite Textfeld 60 ein. Dies ist der Haltepunkt für den oberen Bereich. 15. Wählen Sie in der dritten Farbauswahl einen Rotton aus. Dies ist die Farbe für den oberen Bereich. 16. Klicken Sie auf OK. 17. Klicken Sie auf Bericht ausführen. 366 Kapitel 10: Analysieren von Daten mit Berichten und Dashboards Abbildung127: Anzeigen der Ergebnisse des Matrixberichts Mit unserem Bericht sehen wir auf einen Blick, wie schnell unsere Personalbeschaffungsmitarbeiter Stellen besetzen und wie lange die Stellen im Durchschnitt ausgeschrieben sind. Mit der bedingten Hervorhebung wird dargestellt, bei welchen Stellen die Besetzung länger dauert – das sind im Allgemeinen die, bei denen eine Reisetätigkeit erforderlich ist. Speichern wir den Bericht schnell, bevor wir fortfahren. 18. Klicken Sie auf Anpassen, um zum Berichtsgenerator zurückzukehren. 19. Klicken Sie oben im Bericht auf Speichern. 20. Geben Sie in das Feld Berichtsname den Text Avg Days to Hire With and Without Travel (Durchschnittliche Tage bis zur Einstellung mit und ohne Reisetätigkeit) ein. Das Feld Eindeutiger Berichtsname wird automatisch ausgefüllt. 21. Geben Sie in das Feld Berichtsbeschreibung den Text On average, how many days does it take each recruiter to fill a position with or without required travel? (Wie lange brauchen die einzelnen Personalbeschaffungsmitarbeiter durchschnittlich, um eine Stelle mit bzw. ohne erforderliche Reisetätigkeit zu besetzen?) ein. 22. Wählen Sie in der Dropdownliste Berichtsordner den Eintrag Recruiting Reports (Personalbeschaffungsberichte) aus. 23. Klicken Sie auf Speichern. 367 Kapitel 10: Analysieren von Daten mit Berichten und Dashboards 24. Klicken Sie auf Schließen und dann auf Speichern & Schließen, um zur Registerkarte "Berichte" zurückzukehren. [other]: Wussten Sie eigentlich, dass Sie Diagramme auch zu anderen Elementen außer Berichten und Dashboards hinzufügen können? Sie können den Benutzern direkt auf den Seiten, die sie häufig besuchen, wertvolle Informationen bereitstellen. Betten Sie dazu einfach Berichtsdiagramme in Detailseiten für Standardobjekte oder benutzerdefinierte Objekte ein. Wenn Benutzer Diagramme auf Seiten sehen, haben sie die Möglichkeit, anhand der Daten, die sie im Kontext der Seite angezeigt bekommen, Entscheidungen zu treffen, ohne an einer anderen Stelle danach suchen zu müssen. Weitere Informationen zum Einbetten von Diagrammen in Seitenlayouts erhalten Sie in der Salesforce-Hilfe unter "Hinzufügen eines Berichtsdiagramms zu einem Seitenlayout". Wir haben gelernt, dass mit benutzerdefinierten Berichten viele interessante Daten angezeigt werden können, sodass wir einen Überblick über die Herausforderungen erhalten, denen sich eine Organisation stellen muss. Wenn Benutzer diese Berichte jedoch kaum aufrufen, können ihre Vorteile nicht in vollem Umfang genutzt werden. Wie können wir den Benutzern die Möglichkeit geben, ohne viel Zeitaufwand Registerkarten mit den Informationen aus ihren Berichten zu erstellen? Wie wir gleich sehen werden, sind hier Dashboards die Lösung. Einführung zu Dashboards In einem Dashboard werden Daten aus Quellberichten als visuelle Komponenten angezeigt. Bei diesen Komponenten kann es sich um Diagramme, Messdiagramme, Tabellen, Metriken oder Visualforce-Seiten handeln. Die Komponenten bieten eine Momentaufnahme wichtiger Kennzahlen und Leistungsindikatoren für Ihre Organisation. Jedes Dashboard kann bis zu 20 Komponenten enthalten. Die Benutzer können alle verfügbaren Dashboards in einem öffentlichen Ordner in ihrer Organisation anzeigen, wie beispielsweise "Company Dashboards" (Unternehmens-Dashboards). Sie haben die Möglichkeit, einen Favoriten auszuwählen, dessen ersten drei Komponenten auf der Registerkarte "Startseite" angezeigt werden. Benutzer lieben die zusammengefassten Ansichten, die sie über Dashboards erhalten, und sie dürfen in keiner guten Force.com-Anwendung fehlen. 368 Kapitel 10: Analysieren von Daten mit Berichten und Dashboards Abbildung128: Beispiel-Dashboard für die Personalbeschaffung Probieren Sie es aus: Erstellen zusätzlicher Berichte Wir erstellen in diesem Kapitel ein kleineres Personalbeschaffungs-Dashboard. Vorher wenden wir unsere neuen Kenntnisse im Bereich der Berichterstellung an und erstellen ein paar weitere Berichte. Da wir bereits mit der Funktionsweise des Berichtsgenerators vertraut sind, gehen wir hier nur auf die Besonderheiten einiger Berichte in der folgenden Tabelle ein. Sie können sie entweder selbst erstellen oder sich einfach nur mit den Optionen vertraut machen. Tipp: Sie möchten sich auch durch unsere Dashboard-Anweisungen klicken, haben aber keine Lust, all diese neuen Berichte zu erstellen? Dann erstellen Sie einfach nur den Bericht "Positions Open Longer Than 90 Days" (Seit mehr als 90 Tagen unbesetzte Stellen) in der ersten Zeile. Wenn Sie jedoch das Beispiel-Dashboard nachstellen möchten, müssen Sie auch die anderen vier Berichte erstellen. 369 Kapitel 10: Analysieren von Daten mit Berichten und Dashboards Tabelle45: Spezifikationen für den zusätzlichen Personalbeschaffungsbericht Berichtsname Frage Berichtstyp Positions Open Welche Stellen sind bereits Positions Longer Than seit mehr als 90 Tagen (Stellen) 90 Days (Seit unbesetzt? mehr als 90 Tagen unbesetzte Stellen) Optionen Format: Zusammenfassungsbericht Daten zusammenfassen nach: Location and then by Functional Area (Standort und dann nach Funktionsbereich) Spalten: Position: (Stelle:) Position Title (Stellentitel), Position: (Stelle:) Inhabername, Status, Open Date (Offen von), Hire By (Einstellen bis), Days Open (Tage offen) Filter: All Positions (Alle Stellen); Days Open greater or equal 90 (Tage offen größer/gleich 90) Diagr.-Typ: Kreis Keile: Functional Area (Funktionsbereich) Diagrammtitel: Positions Open Longer Than 90 Days (Seit mehr als 90 Tagen unbesetzte Stellen) Job Für welche Stellen gibt es Applications by die meisten Bewerber? Functional Area (Stellenbewerbungen nach Funktionsbereich) 370 Job Applications with Position (Stellenbewerbungen mit Stelle) Format: Zusammenfassungsbericht Daten zusammenfassen nach: Position: (Stelle:) Functional Area and then by Position (Funktionsbereich und dann nach Stelle): Position Title (Stellentitel) Kapitel 10: Analysieren von Daten mit Berichten und Dashboards Berichtsname Frage Berichtstyp Optionen Spalten: Job Application Number (Stellenbewerbungsnummer), Job Application Status (Status der Stellenbewerbung) Filter: All job applications (Alle Stellenbewerbungen); Position (Stelle): Status equals Open Approved (Status gleich OffenGenehmigt) Diagr.-Typ: Vertikale Spalte X-Achse: Position: (Stelle:) Functional Area (Funktionsbereich) Diagrammtitel: Job Applications by Functional Area (Stellenbewerbungen nach Funktionsbereich) Employee Interviewers (Angestellte Gesprächsleiter) Welche Mitarbeiter führen die meisten Bewerbungsgespräche durch? Job Applications with Reviews (Stellenbewerbungen mit Reviews) Format: Zusammenfassungsbericht Daten zusammenfassen nach: Review: Created By (Erstellt von) Spalten: Job Application (Stellenbewerbung); Job Application Number (Stellenbewerbungsnummer), Job Application (Stellenbewerbung): Position (Stelle), Job Application (Stellenbewerbung): Status, Review: Created Date (Erstelldatum) Filter: All job applications (Alle Stellenbewerbungen) Diagr.-Typ: Kreis 371 Kapitel 10: Analysieren von Daten mit Berichten und Dashboards Berichtsname Frage Berichtstyp Optionen Diagrammtitel: Employee Interviewers (Angestellte Gesprächsleiter) Recruiter Status (Status des Personalbeschafungsmitarbeiters) Wie sieht die Stellenbewerbungspipeline für die einzelnen Personalbeschaffungsmitarbeiter und die einzelnen offenen Stellen aus? Job Applications with Position (Stellenbewerbungen mit Stelle) Format: Matrixbericht Subtotal Rows by (Zwischensumme Zeilen nach): Position: (Stelle:) Owner Name and then by Position (Inhabername und dann nach Stelle): Position Title (Stellentitel) Subtotal Columns by (Zwischensumme Spalten nach): Job Application Status (Status der Stellenbewerbung) Spalten: Job Application (Stellenbewerbung); Job Application Number (Stellenbewerbungsnummer) Filter: All job applications (Alle Stellenbewerbungen); Job Application (Stellenbewerbung): Last Modified Date Last 120 Days (Zuletzt geändert am Letzten 120 Tage); Position (Stelle): Status equals Open Approved, Closed - Filled (Status gleich Offen - Genehmigt, Geschlossen - Besetzt) Positions Hired Wer wurde in den letzten Positions in Last 90 Days 90 Tagen eingestellt? (Stellen) (In den letzten 90 Tagen besetzte Stellen) 372 Format: Zusammenfassungsbericht Daten zusammenfassen nach: Functional Area (Funktionsbereich) Kapitel 10: Analysieren von Daten mit Berichten und Dashboards Berichtsname Frage Berichtstyp Optionen Spalten: Position: (Stelle:) Position Title (Stellentitel), Position: (Stelle:) Inhabername, Hiring Manager (Einstellungs-Manager), Job Level (Stellenebene), Location (Standort), Close Date (Offen bis) Filter: All positions (Alle Stellen); Close Date Last 90 Days (Offen bis Letzten 90 Tage); Status equals Closed Filled (Status gleich Geschlossen - Besetzt) Probieren Sie es aus: Erstellen von Dashboards Nun verfügen wir über eine Reihe von Berichten als Referenz und sind bereit, ein kleines Dashboard für die Personalbeschaffung zu erstellen. Hierzu arbeiten wir auf der Registerkarte "Berichte". Zuerst müssen wir einen Ordner erstellen, in dem unsere Dashboards gespeichert werden sollen. Wir führen dieselben Schritte aus wie bei der Erstellung eines Ordners, in dem unsere Berichte gespeichert werden. 1. Klicken Sie auf der Registerkarte "Berichte" auf neben dem Fenster Ordner und wählen Sie Neuer Dashboard-Ordner aus. 2. Geben Sie unter Dashboard-Ordner-Bezeichnung Recruiting Dashboards (Dashboards für die Personalbeschaffung) ein. In das Feld Eindeutiger Ordnername wird automatisch der Eintrag Recruiting_Dashboards eingefügt. 3. Klicken Sie auf Speichern. 4. Klicken Sie neben dem Ordner "Recruiting Dashboards" (Dashboards für die Personalbeschaffung) auf und wählen Sie dann Freigeben. 5. Klicken Sie oben im Dialogfeld auf Rollen und nachgeordnete Positionen. 6. Klicken Sie neben "CEO" auf Freigeben. 373 Kapitel 10: Analysieren von Daten mit Berichten und Dashboards 7. Vergewissern Sie sich, dass in der Spalte "Zugriff" die Zugriffsebene Betrachter ausgewählt ist. Dadurch können alle Benutzer in Ihrem Unternehmen diesen Ordner und die darin enthaltenen Berichte anzeigen. Das Ändern der Berichte innerhalb des Ordners oder das Hinzufügen neuer Berichte ist jedoch Administratoren vorbehalten. 8. Klicken Sie zum Speichern der Einstellungen auf Fertig und klicken Sie dann auf Schließen. Jetzt erstellen wir ein Dashboard. 1. Klicken Sie auf der Seite „Berichte & Dashboards" auf Neues Dashboard. Abbildung129: Die Seite "Dashboard bearbeiten" Nachdem wir die Dashboard-Eigenschaften angegeben haben, können wir Komponenten hinzufügen. 2. Klicken Sie auf Dashboard-Eigenschaften. 3. Geben Sie im Feld Titel den Begriff Recruiting Dashboard (Dashboard für die Personalbeschaffung) ein. 4. In das Feld Eindeutiger Dashboard-Name wird automatisch der Eintrag "Recruiting_Dashboard" eingefügt. 5. Wählen Sie zum Speichern den Ordner "Recruiting Dashboards" (Dashboards für die Personalbeschaffung) aus. 6. Klicken Sie auf OK. 7. Geben Sie als Dashboard-Beschreibung – in das bearbeitbare Feld im oberen Bereich der Seite – Folgendes ein: A snapshot of open positions, job applications, frequent interviewers, and recruiter performance (Ein Snapshot von offenen Stellen, Stellenbewerbungen, häufigen Gesprächsleitern und der Leistung von Personalbeschaffungsmitarbeitern). 374 Kapitel 10: Analysieren von Daten mit Berichten und Dashboards Für jedes Dashboard gibt es einen aktuellen Benutzer, dessen Sicherheitseinstellungen festlegen, welche Daten in einem Dashboard angezeigt werden. Allen Benutzern mit Zugriff auf den Ordner werden unabhängig von ihren persönlichen Sicherheitseinstellungen die gleichen Daten angezeigt. Die Sicherheitseinstellungen für den aktuellen Benutzer gelten nur für die Dashboard-Ansicht. Sobald ein Benutzer einen Drilldown zu einem Quellbericht oder einer Detailseite außerhalb des Dashboards ausführt, bekommt der Benutzer die Daten auf der Grundlage seiner normalen Sicherheitseinstellungen angezeigt. Nehmen wir beispielsweise an, dass ein Systemadministrator mit der Berechtigung "Alle Daten modifizieren" der aktuelle Benutzer unseres Dashboards für die Personalbeschaffung ist. In diesem Fall wird jeder Datensatz mit Bezug auf die Personalbeschaffung in allen Gesamtsummen des Berichts in unserem Dashboard gezählt. Dies beinhaltet auch Benutzer, die bestimmte Datensätze normalerweise nicht anzeigen können (wie beispielsweise diejenigen, die dem Profil "Standard Employee" (Standardmitarbeiter) zugewiesen sind). Obgleich diese Benutzer die Zusammenfassungsdaten für alle Datensätze im Dashboard anzeigen könnten, würden sie, wenn sie zum Quellbericht navigieren, nur die Datensätze anzeigen können, auf die sie Zugriff haben. Behalten Sie beim Entwerfen eines Dashboards die Zielgruppe des Dashboards im Hinterkopf. Überlegen Sie sich, ob es sensible Informationen gibt und wie viel davon die Benutzer Ihrer Meinung nach anzeigen können sollen. Wenn Sie einem Benutzer Zugriff auf Dashboards erteilen, die mehr Daten enthalten als die, zu deren Anzeige er normalerweise berechtigt ist, sollten Sie ihm auf jeden Fall mitteilen, dass er möglicherweise andere Werte angezeigt bekommt, wenn er im Dashboard durch Klicken zu zugehörigen Berichten navigiert. Wenn Sie verhindern möchten, dass bestimmte Benutzer auf ein Dashboard zugreifen, speichern Sie es einfach in einem Ordner mit eingeschränktem Zugriff. Beyond the Basics Wussten Sie, dass Sie ein dynamisches Dashboard einrichten können, in dem Benutzern die Daten entsprechend ihren jeweiligen Sicherheitseinstellungen angezeigt werden? Angenommen, Sie möchten die gleichen Dashboard-Komponenten für verschiedene Benutzergruppen anzeigen, wobei jede über einen anderen Umfang verfügen soll, mit dem sich die Benutzer die Daten anzeigen lassen können. Eigentlich müssten Sie Dutzende Dashboards mit dem entsprechenden aktuellen Benutzer einrichten und diese in separaten Ordnern speichern. Mit dynamischen Dashboards können die Administratoren dasselbe Ziel erreichen, ohne diverse zusätzliche Dashboards und Ordner erstellen und pflegen zu müssen. In einem einzelnen dynamischen Dashboard kann eine Standardmenge an Kennzahlen für alle Ebenen der Organisation angezeigt werden. 375 Kapitel 10: Analysieren von Daten mit Berichten und Dashboards Weitere Informationen finden Sie unter "Bereitstellen individualisierter Ansichten von Dashboards" in der Salesforce-Hilfe. Die Daten, die wir in unserem Dashboard für die Personalbeschaffung anzeigen möchten, sind nicht besonders sensibel. Folglich wählen wir einen Systemadministrator als aktuellen Benutzer aus und speichern das Dashboard in einem öffentlichen Ordner. 8. Im Feld Dashboard anzeigen als oben rechts im Bildschirm geben Sie den Namen Ihres Benutzers ein, da Sie über Systemadministratorberechtigungen verfügen. Hiermit wird der aktuelle Benutzer für das Dashboard festgelegt. Nun haben wir ein leeres Dashboard erstellt, das mit Komponenten gefüllt werden kann. Hinzufügen von Dashboard-Komponenten Wir haben noch keine Komponenten definiert, sie lassen sich jedoch ganz leicht im Dashboard-Generator hinzufügen und neu anordnen. Es gibt fünf Arten von Komponenten. Symbol Typ Beschreibung Diagramme Zeigt ein Balken-, Spalten-, Linien-, Kreis-, Ringoder Trichterdiagramm oder ein anderes beliebiges Diagramm an, das in einem Bericht enthalten ist. Tabellen Zeigt eine Tabelle an, die Werte und Summen aus den Spalten im Bericht enthält. Metriken Zeigt die Gesamtsumme aus einem Bericht zusammen mit einer von Ihnen eingegebenen Bezeichnung an. Messungen Zeigt die Gesamtsumme eines Berichts als Punkt auf einer Skala an, die einer Tankanzeige ähnelt. 376 Kapitel 10: Analysieren von Daten mit Berichten und Dashboards Visualforce-Seiten Zeigt alle Visualforce-Dashboard-Komponenten in Ihrer Organisation an. Probieren Sie es aus: Hinzufügen von Diagrammkomponenten Beginnen wir, indem wir ein Diagramm hinzufügen, in dem die Anzahl der offenen Stellen nach Funktionsbereich angezeigt wird: 1. Ziehen Sie eine Kreisdiagrammkomponente in die linke Spalte Ihres Dashboards. 2. Klicken Sie auf Titel bearbeiten und geben Sie Open Positions by Functional Area (Offene Stellen nach Funktionsbereich) ein. 3. Klicken Sie auf die Registerkarte "Datenquellen" und suchen Sie nach dem Bericht "Open Positions by Functional Area" (Offene Stellen nach Funktionsbereich) und wählen Sie ihn aus. 4. Ziehen Sie den Bericht und legen Sie ihn auf der Kreisdiagrammkomponente ab. Tipp: Klicken Sie auf für das Kreisdiagramm, um den Komponenteneditor zu öffnen. Beachten Sie, dass auf der Registerkarte "Komponentendaten" die Eintragungen für Werte und Keile für das Kreisdiagramm automatisch vorgenommen werden. Das liegt daran, dass die Anzahl der Datensätze und das Feld Functional Area (Funktionsbereich) im Quellberichtsdiagramm verwendet werden. Wenn im Quellbericht hingegen kein Diagramm vorhanden wäre, würden die Eintragungen für "Werte" und "Keile" automatisch aus der Anzahl der Datensätze und der ersten Gruppierung im Bericht abgerufen. 377 Kapitel 10: Analysieren von Daten mit Berichten und Dashboards Abbildung130: Die Seite "Dashboard-Komponente bearbeiten" Tada! Jetzt verfügt unser Dashboard über ein Kreisdiagramm! Wenn ein Benutzer auf das Diagramm klickt, gelangt er zu dem Bericht, anhand dessen das Diagramm erstellt wurde. Probieren Sie es aus: Hinzufügen einer Messdiagramm-Komponente Erstellen wir nun eine Messdiagramm-Komponente, die uns zeigt, wie die Situation in Bezug auf Stellen aussieht, die seit mehr als 90 Tagen unbesetzt sind. 1. Klicken Sie auf die Registerkarte "Komponenten". 2. Ziehen Sie eine Messdiagramm-Komponente in die mittlere Spalte Ihres Dashboards. 3. Klicken Sie auf Titel bearbeiten und geben Sie Positions Open Longer Than 90 Days (Seit mehr als 90 Tagen unbesetzte Stellen) ein. 4. Klicken Sie auf die Registerkarte "Datenquellen" und suchen Sie nach dem Bericht "Positions Open Longer Than 90 Days" (Seit mehr als 90 Tagen unbesetzte Stellen) und wählen Sie ihn aus. 5. Ziehen Sie den Bericht und legen Sie ihn auf der Messdiagramm-Komponente ab. Ändern wir nun das Erscheinungsbild unseres Messdiagramms. Wie bei bedingten Hervorhebungen in unseren Matrixberichten kann auch dieses Messdiagramm unterschiedliche Farben anzeigen, je nach der Gesamtzahl der Stellen, die schon zu lange unbesetzt sind. Die Farbe soll grün sein, wenn es weniger als zwei Stellen gibt, gelb, wenn es zwischen zwei und fünf Stellen gibt, und rot bei mehr als fünf Stellen. 378 Kapitel 10: Analysieren von Daten mit Berichten und Dashboards 6. Klicken Sie auf für die Messdiagramm-Komponente, um den Komponenteneditor zu öffnen. 7. Klicken Sie auf die Registerkarte "Formatierung" und legen Sie folgende Felder fest. Abbildung131: Formatieren der Messdiagramm-Komponente • • • • • • • Geben Sie für Minimum den Wert 0 ein. Wählen Sie für Farbe für unteren Bereich einen Grünton aus. Geben Sie für Haltepunkt 1 den Wert 2 ein. Belassen Sie den Farbton für Farbe für mittleren Bereich bei "Gelb". Geben Sie für Haltepunkt 2 den Wert 5 ein. Wählen Sie für Farbe für oberen Bereich einen Rotton aus. Geben Sie für Maximum den Wert 10 ein. 8. Klicken Sie auf OK. Perfekt! Unser Dashboard für die Personalbeschaffung enthält nun zwei Komponenten. Probieren Sie es aus: Hinzufügen einer Tabellenkomponente Erstellen wir nun eine Tabellenkomponente, mit der wir anzeigen können, wie viele Tage alle Personalbeschaffungsmitarbeiter durchschnittlich brauchen, um einen Stelle mit oder ohne Reisetätigkeit zu besetzen. 1. Klicken Sie auf die Registerkarte "Komponenten". 2. Ziehen Sie eine Tabellenkomponente in die rechte Spalte Ihres Dashboards. 3. Klicken Sie auf Titel bearbeiten und geben Sie Recruiter Performance (Leistung der Personalbeschaffungsmitarbeiter) ein. 4. Klicken Sie auf die Registerkarte "Datenquellen" und suchen Sie nach dem Bericht "Avg Days to Hire With and Without Travel" (Durchschnittliche Tage bis zur Einstellung mit und ohne Reisetätigkeit) und wählen Sie ihn aus. 5. Ziehen Sie den Bericht und legen Sie ihn auf der Messdiagramm-Komponente ab. 379 Kapitel 10: Analysieren von Daten mit Berichten und Dashboards 6. Klicken Sie auf für die Tabelle, um den Komponenteneditor zu öffnen. 7. Klicken Sie auf die Registerkarte "Formatierung". Stellen Sie sicher, dass Chatter-Fotos anzeigen aktiviert ist. Damit wird das Chatter-Profilbild der einzelnen Personalbeschaffungsmitarbeiter in der Tabelle angezeigt. Genau wie im zugrundeliegenden Quellbericht können wir unserer Tabellenkomponente bedingte Hervorhebungen hinzufügen, um die Leistungsstufen der Personalbeschaffungsmitarbeiter hervorzuheben. Die Farbe soll grün sein, wenn der Personalbeschaffungsmitarbeiter weniger als 45 Tage benötigt, gelb, wenn er zwischen 45 und 75 Tage benötigt, und rot, wenn der Wert über 75 liegt. 8. Legen Sie folgende Felder für die bedingte Hervorhebung fest: • • • • • Wählen Sie für Farbe für unteren Bereich einen Grünton aus. Geben Sie für Haltepunkt 1 den Wert 45 ein. Belassen Sie den Farbton für Farbe für mittleren Bereich bei "Gelb". Geben Sie für Haltepunkt 2 den Wert 75 ein. Wählen Sie für Farbe für oberen Bereich einen Rotton aus. 9. Klicken Sie auf OK. Abbildung132: Tabellenkomponente Probieren Sie es aus: Hinzufügen einer metrischen Komponente Erstellen wir abschließend eine metrische Komponente, mit der wir anzeigen können, wie lange alle Personalbeschaffungsmitarbeiter durchschnittlich brauchen, um eine Stelle zu besetzen. 1. Klicken Sie auf die Registerkarte "Komponenten". 380 Kapitel 10: Analysieren von Daten mit Berichten und Dashboards 2. Ziehen Sie eine metrische Komponente auf die rechte Spalte Ihres Dashboards und legen Sie sie unterhalb der soeben erstellten Tabelle ab. 3. Klicken Sie auf die Registerkarte "Datenquellen" und suchen Sie nach dem Bericht "Avg Days to Hire With and Without Travel" (Durchschnittliche Tage bis zur Einstellung mit und ohne Reisetätigkeit) und wählen Sie ihn aus. 4. Ziehen Sie den Bericht und legen Sie ihn auf der metrischen Komponente ab. Da metrische Komponenten aus einem einzelnen Wert bestehen, benötigen sie keinen Titel. Stattdessen geben wir ihnen eine Bezeichnung, wie auch bei den anderen Feldern in der Plattform üblich. 5. Geben Sie im Feld "Bezeichnung" den Text Average Days to Hire (Durchschnittliche Tage bis zur Einstellung) ein. Anmerkung: Haben Sie bemerkt, dass wir hier denselben Bericht verwenden, den wir auch für unsere Tabelle verwendeten? Bei dieser Metrik handelt es sich einfach um eine weitere Visualisierung der Daten in diesem Bericht. 6. Klicken Sie auf für die metrische Komponente, um den Komponenteneditor zu öffnen. 7. Klicken Sie auf die Registerkarte "Komponentendaten". Beachten Sie, dass der metrische Wert automatisch mit der Gesamtsumme der Spalte ausgefüllt wird, die im Diagramm des Quellenmatrixberichts verwendet wird. Fügen wir abschließend noch weitere bedingte Hervorhebungen hinzu, um die Werte besonders zu verdeutlichen. 8. Klicken Sie auf die Registerkarte "Formatierung" und legen Sie folgende Felder fest. • • • • • Wählen Sie für Farbe für unteren Bereich einen Grünton aus. Geben Sie für Haltepunkt 1 den Wert 45 ein. Belassen Sie den Farbton für Farbe für mittleren Bereich bei "Gelb". Geben Sie für Haltepunkt 2 den Wert 75 ein. Wählen Sie für Farbe für oberen Bereich einen Rotton aus. 9. Klicken Sie auf OK. Beyond the Basics Wussten Sie, dass Sie Komponenten im gesamten Dashboard filtern können, um mehrere Datenansichten zu erreichen? Dashboard-Filter bieten Ihnen die Flexibilität zur direkten, spontanen Bearbeitung der Dashboard-Informationen, sodass Sie nicht jeden einzelnen zugrunde liegenden Bericht 381 Kapitel 10: Analysieren von Daten mit Berichten und Dashboards zu filtern brauchen. Klicken Sie im Dashboard-Generator auf Filter hinzufügen, um einen Dashboard-Filter und die zugehörigen Werte zu erstellen. Dashboards können bis zu drei Filter aufweisen. In diesem Dashboard können Sie beispielsweise einen Filter namens Function (Funktion) im Feld "Functional Area" (Funktionsbereich) erstellen. Bei der Anzeige des Dashboards können die Benutzer verschiedene Filterwerte auswählen, wie "Finance" (Finanzen) oder "Human Resources" (Personalbereich), um Daten für die einzelnen Tätigkeitsbereiche im gesamten Dashboard anzuzeigen. Weitere Informationen finden Sie in der Salesforce-Hilfe unter "Hinzufügen von Dashboard-Filtern". Abbildung133: Hinzufügen von Dashboard-Filtern Wir haben nun ein einfaches, aus vier Komponenten bestehendes Dashboard für unsere Personalbeschaffungsanwendung. (Ihr Dashboard kann geringfügige Abweichungen aufweisen.) Speichern wir das Dashboard. 10. Klicken Sie auf Schließen und dann auf Speichern & Schließen. Sie können auch auf Speichern klicken, wenn Sie den Titel oder die Beschreibung aktualisieren oder den Ordner ändern möchten. Abbildung134: Vier Komponenten auf dem Dashboard für die Personalbeschaffung 382 Kapitel 10: Analysieren von Daten mit Berichten und Dashboards Wenn Sie auf die Registerkarte "Startseite" klicken, können Sie die erste Zeile des Dashboards zu Ihrer Startseite hinzufügen. Vergewissern Sie sich, dass Sie den Dashboard-Abschnitt zum Layout der Registerkarte "Startseite" hinzugefügt haben, und wählen Sie anschließend das Dashboard aus, das in diesem Abschnitt angezeigt werden soll: das Dashboard für die Personalbeschaffung, das Sie gerade erstellt haben. 1. Klicken Sie unter "Setup" auf Anpassen > Startseite > Startseitenlayouts. 2. Wählen Sie Dashboard-Snapshot aus und klicken Sie auf Weiter. 3. Belassen Sie die Komponenten in ihrer Standardreihenfolge und klicken Sie auf Speichern. 4. Klicken Sie auf der Registerkarte "Startseite" in der rechten oberen Ecke der Dashboard-Komponente auf Seite anpassen. 5. Wählen Sie in der Dropdownliste "Dashboard-Snapshot" die Option Recruiting Dashboard (Dashboard für die Personalbeschaffung) aus. 6. Klicken Sie auf Speichern. Da wir das Dashboard in einem öffentlichen Ordner gespeichert haben, kann es auch von allen anderen Benutzern zu ihrer jeweiligen Startseite hinzugefügt werden. Wie Sie sehen konnten: Nachdem wir die Berichte für unsere Personalbeschaffungsanwendung erstellt hatten, war es ein Kinderspiel, sie zu einem Dashboard hinzuzufügen. Es ist so einfach, dass wir Ihnen die restlichen Komponenten als Übung überlassen. Versuchen Sie es einfach selbst: Probieren Sie aus, wie genau Sie das Beispiel-Dashboard für die Personalbeschaffung auf Seite 369 nachstellen können. Aktualisieren von Dashboards Dashboards stellen einen Schnappschuss Ihrer Daten zu einem bestimmten Zeitpunkt dar. Auf der Registerkarte "Startseite" ist dieser Zeitpunkt in der linken oberen Ecke der Dashboard-Komponente angegeben. Auf der Registerkarte "Berichte" ist er in der rechten oberen Ecke angegeben. Sie können Ihre Dashboards auf jeder dieser Registerkarten aktualisieren, indem Sie auf Aktualisieren klicken. Wenn Sie die Enterprise, Unlimited oder Performance Edition verwenden, können Sie festlegen, dass Dashboards zu bestimmten Zeiten automatisch aktualisiert werden sollen. Nach Abschluss des Vorgangs erhalten Sie eine Benachrichtigung per E-Mail, in der das aktualisierte Dashboard enthalten ist. Die Planung einer Dashboard-Aktualisierung ist einfach. Klicken Sie einfach auf der Registerkarte "Berichte" auf den Abwärtspfeil auf der Schaltfläche Aktualisieren und wählen Sie die Option Aktualisierung planen... aus. Geben Sie dann an, wer die 383 Kapitel 10: Analysieren von Daten mit Berichten und Dashboards Benachrichtigungs-E-Mail erhalten und zu welchem Zeitpunkt die Aktualisierung erfolgen soll. Einführung in Mobile-Dashboards Die Informationen, die wir in unserem Dashboard für die Personalbeschaffung zusammengepackt haben, können für viele Leute nützlich sein – selbst für Personalbeschaffungsmitarbeiter, die sich außerhalb ihres Büros befinden. Bevor wir uns wieder mit Salesforce1 beschäftigen, müssen wir sicherstellen, dass Dashboards für die mobile Verwendung aktiviert sind. Wenn das Navigationsmenü keine Dashboards enthält, können die Benutzer sie auch nicht anzeigen. Sehen wir uns kurz die Konfiguration für unsere mobile Navigation an. 1. Klicken Sie unter "Setup" auf Mobile Administration > Mobile Navigation. Diese Seite bestimmt das Erscheinungsbild des Navigationsmenüs in Salesforce1. Das erste Element in der Liste wird die Zielseite unserer Benutzer in Salesforce1, und da diese Konfiguration für alle unsere Benutzer gleich ist, soll das erste Element etwas sein, das für alle nützlich ist. Das Prinzip der Nützlichkeit zieht sich wie ein roter Faden durch die gesamte Konfiguration: Wir wollen die Elemente, die Benutzer am häufigsten verwenden, ganz oben platzieren. Das Element Today bezieht sich auf eine Anwendung, mit deren Hilfe Benutzer ihren Tagesablauf planen und strukturieren können, indem sie Kalenderereignisse von ihrem Mobilgerät in ihre Aufgaben, Kontakte und Accounts in Salesforce integrieren. Nur verfügbar in den herunterladbaren Salesforce1-Anwendungen. Das Element "Intelligente Suchelemente", das als eine dynamische Liste mit kürzlich verwendeten Objekten dargestellt wird, kann in der mobilen Version zu einem Satz von acht oder mehr Menüelementen erweitert werden. Hierbei können andere Elemente nach unten in den nicht sichtbaren Bildlaufbereich verschoben werden, wenn Sie dieses ganz oben im Menü einfügen. Alle Elemente, die Sie über den intelligenten Suchelementen einfügen, werden im unbenannten ersten Abschnitt des Navigationsmenüs angezeigt. Alle Elemente, die Sie unterhalb der intelligenten Suchelemente einfügen, werden im Abschnitt "Apps" des Navigationsmenüs angezeigt. 2. Ordnen Sie die Elemente im Bereich "Ausgewählt" mithilfe des Pfeils nachoben bzw. nach unten wie folgt an: • • • 384 Today Aufgaben Feed Kapitel 10: Analysieren von Daten mit Berichten und Dashboards • • Intelligente Suchelemente Dashboards Nachdem wir sichergestellt haben, dass Dashboards für unsere Organisation in Salesforce1 angezeigt werden, sehen wir uns nun an, wie Dashboards auf einem Mobilgerät funktionieren. 1. Starten Sie Salesforce1. 2. Tippen Sie im Navigationsmenü auf Dashboards. 3. Tippen Sie in der Liste der zuletzt verwendeten Dashboards auf Recruiting Dashboard (Dashboard für die Personalbeschaffung). Abbildung135: Das Dashboard für die Personalbeschaffung in Salesforce1 Unser Dashboard sieht in der mobilen Version etwas anders aus. Statt alle drei Spalten in einer Ansicht darzustellen, wird jede Spalte komplett in einer einzigen Ansicht angezeigt. Um weitere Spalten anzuzeigen, streichen Sie nach links oder rechts. Um die Details zu einer Komponente anzuzeigen, tippen Sie einfach darauf. In dieser Komponentenansicht können wir auf Datenpunkte tippen, um ihre Werte markiert anzuzeigen. 385 Kapitel 10: Analysieren von Daten mit Berichten und Dashboards Einführung zu benutzerdefinierten Berichten Dashboards eignen sich zwar hervorragend zum Darstellen von Daten, viele Benutzer benötigen aber präzisere Information, die sich speziell auf ihren Tätigkeitsbereich beziehen, sodass sie ihre eigenen Berichte erstellen müssen. Sie möchten möglicherweise steuern, auf welche Daten diese Benutzer für ihre Berichte zugreifen können. Zudem möchten Sie ihnen die die Erstellung der für sie nützlichen Berichte so einfach wie möglich gestalten. Dies können Sie erreichen, indem Sie Typen für benutzerdefinierte Berichte erstellen. Mit Typen für benutzerdefinierte Berichte werden Berichtskriterien definiert, mit denen Ihre Benutzer benutzerdefinierte Berichte erstellen und ausführen können. Wenn Sie einen Berichtstyp erstellen, geben Sie die Objekte, Beziehungen und Felder an, die die Benutzer für ihre Berichte auswählen können. Wofür sind Typen für benutzerdefinierte Berichte in unserer Personalbeschaffungsanwendung hilfreich? Unsere Personalbeschaffungsmitarbeiter sind bestimmt dankbar, wenn wir ihnen die Möglichkeit geben, nach Stellen zu suchen, für die sich die Bewerber beworben haben. Darüber hinaus möchten die Personalbeschaffungsmitarbeiter wahrscheinlich sehen, für welche dieser Stellenbewerbungen Reviews vorliegen. Auf diese Weise erfahren sie, ob die Ausschreibungen von Stellen möglicherweise kurz vor dem Abschluss stehen. Probieren Sie es aus: Erstellen von Berichtstypen Die meiste Zeit haben wir für dieses Kapitel mit der Registerkarte "Berichte" verbracht. Nun ist es an der Zeit, zum Menü "Setup" zurückzukehren. 1. Klicken Sie unter "Setup" auf Erstellen > Berichtstypen. 2. Falls eine Vorschaltseite eingeblendet wird, klicken Sie einfach auf Weiter. 3. Klicken Sie auf Neuer Typ für benutzerdefinierte Berichte. Der Typ des benutzerdefinierten Berichts, den wir erstellen, soll Daten von drei verschiedenen Objekten enthalten: "Position" (Stelle), "Job Application" (Stellenbewerbung) und "Review". Da sich die Personalbeschaffungsmitarbeiter aber hauptsächlich für die Stellen interessieren, legen wir "Position" (Stelle) als Hauptobjekt in diesem Berichtstyp fest. 4. Wählen Sie in der Dropdownliste Hauptobjekt den Eintrag Positions (Stellen) aus. 386 Kapitel 10: Analysieren von Daten mit Berichten und Dashboards Dann geben wir diesem Berichtstyp einen intuitiven Namen und ordnen ihn in eine Kategorie ein, sodass die Benutzer ihn leichter finden können. Darüber hinaus geben wir eine Beschreibung ein, damit die Benutzer, die den Berichtstyp auswählen, über dessen Funktion informiert werden. 5. Geben Sie in das Feld Bezeichnung des Berichtstyps Positions with Reviewed Job Applications (Stellen mit überprüften Stellenbewerbungen) ein. 6. Geben Sie in das Feld Name des Berichtstyps Positions_with_Reviewed_Job Applications ein, falls dieser Eintrag noch nicht vorhanden ist. 7. Geben Sie in das Feld Beschreibung Folgendes ein: Which positions have job applications that have been reviewed? (Für welche Positionen sind Stellenbewerbungen vorhanden, die überprüft wurden?) 8. Wählen Sie in der Dropdownliste In Kategorie speichern die Option Andere Berichte aus. Wenn Sie einen Berichtstyp erstellen und diesen testen möchten, bevor Sie ihn allen Benutzern zur Verfügung stellen, setzen Sie dessen Status auf In Entwicklung. Für den Berichtstyp, den wir gerade erstellen, sind jedoch keine Tests erforderlich, also fahren wir mit seiner Bereitstellung fort. 9. Wählen Sie Bereitgestellt. 10. Klicken Sie auf Weiter. Auf der Plattform werden eine grafische Hierarchie und festgelegte Diagramme (auch Venn-Diagramme genannt) verwendet, damit wir einfach angeben können, welche verwandten Datensätze von anderen Objekten in die Berichtsergebnisse aufgenommen werden sollen. 11. Klicken Sie in das weiße Feld unter A (Positions (Stellen)). Feld B wird angezeigt. 12. Wählen Sie in Feld B in der Dropdownliste "Job Applications" (Stellenbewerbungen) aus und lassen Sie die Option Jeder "A"-Datensatz muss mindestens einen verwandten "B"-Datensatz haben aktiviert. 387 Kapitel 10: Analysieren von Daten mit Berichten und Dashboards Abbildung136: Berichtstyphierarchie und festgelegtes Diagramm für "Positions" (Stellen) und "Job Applications" (Stellenbewerbungen) Wenn wir diese Option aktiviert lassen, geben wir an, dass dieser Berichtstyp nur Stellendatensätze enthalten soll, für die Stellenbewerbungen vorhanden sind. Beachten Sie, wie sich die festgelegten Diagramme auf der rechten Seite ändern, wenn wir eine Auswahl treffen. 13. Klicken Sie in das weiße Feld unter B (Job Applications (Stellenbewerbungen)). Feld C wird angezeigt. 14. Wählen Sie in Feld C in der Dropdownliste "Reviews" aus und lassen Sie die Option Jeder "B"-Datensatz muss mindestens einen verwandten "C"-Datensatz haben aktiviert. 388 Kapitel 10: Analysieren von Daten mit Berichten und Dashboards Abbildung137: Berichtstyphierarchie und festgelegtes Diagramm für "Positions" (Stellen), "Job Applications" (Stellenbewerbungen) und "Reviews" Wir haben den Umfang unseres Berichts so eingeschränkt, dass darin nur Stellenbewerbungen enthalten sind, für die Reviews vorliegen. 15. Klicken Sie auf Speichern. Unser benutzerdefinierter Berichtstyp ist beinahe fertig. Eigentlich könnten wir sagen, dass er technisch gesehen fertig ist, wir können ihn für unsere Benutzer allerdings noch praktischer gestalten: Wir können die Darstellung der Felder im Fenster "Felder" im Berichtsgenerator neu anordnen. Dieser Berichtstyp enthält drei Objekte ("Position" (Stelle), "Job Application" (Stellenbewerbung) und "Review"), die wiederum jeweils mehrere Felder enthalten. Ein Benutzer, der mithilfe dieses benutzerdefinierten Berichtstyps einen Bericht erstellt, ist mit diesen vielen Feldern höchstwahrscheinlich überfordert. Also entfernen wir die nicht benötigten Felder und verschieben die wichtigen Felder nach oben. Wir können auch angeben, welche Felder standardmäßig ausgewählt werden sollen. 16. Führen Sie auf der Detailseite "Typ des benutzerdefinierten Berichts" einen Bildlauf nach unten bis zur Themenliste "Für Berichte verfügbare Felder" aus und klicken Sie auf Layout bearbeiten. Die nun angezeigte Seite ähnelt der Darstellung im Seitenlayout-Editor, den wir im Abschnitt Erweitern der einfachen Anwendung mit erweiterten Feldern, Datenvalidierung und Seitenlayouts auf Seite 71 verwendet haben. Sie können die Felder neu anordnen, indem Sie 389 Kapitel 10: Analysieren von Daten mit Berichten und Dashboards sie an andere Positionen verschieben, ausgewählte Elemente löschen usw. Sie haben außerdem die Möglichkeit, auf die Felder doppelt zu klicken, um ihre Bezeichnung zu ändern und anzugeben, ob sie standardmäßig aktiviert sein sollen. Wichtig: Wenn ein Feld nicht in einem Abschnitt vorhanden ist, steht es den Benutzern bei der Erstellung von Berichten, die auf diesem Berichtstyp basieren, nicht zur Verfügung. Die Seite soll nun neu angeordnet werden. 17. Erstellen Sie einen neuen Abschnitt mit dem Namen Position, Job Application, and Review Fields (Felder für Stelle, Stellenbewerbung und Review). 18. Ändern Sie die Bezeichnung der folgenden Felder im Abschnitt "Positions" (Stellen), indem Sie auf den Feldnamen doppelklicken und ihn im daraufhin angezeigten Dialogfeld bearbeiten. • • • Created by (Erstellt von) in Position Created By (Stelle erstellt von) Erstelldatum inPosition Created Date (Erstelldatum der Stelle) Status in Position Status (Stellenstatus) 19. Ändern Sie die Bezeichnung der folgenden Felder im Abschnitt "Job Applications" (Stellenbewerbungen), indem Sie auf den Feldnamen doppelklicken und ihn im daraufhin angezeigten Dialogfeld bearbeiten. • • • Created by (Erstellt von) in Job Application Created By (Stellenbewerbung erstellt von) Erstelldatum in Job Application Created Date (Erstelldatum der Stellenbewerbung) Status in Job Application Status (Status der Stellenbewerbung) 20. Ändern Sie die Bezeichnung der folgenden Felder im Abschnitt "Reviews", indem Sie auf den Feldnamen doppelklicken und ihn im daraufhin angezeigten Dialogfeld bearbeiten. • • Created by (Erstellt von) in Review Created By (Review erstellt von) Erstelldatum in Review Created Date (Erstelldatum des Reviews) 21. Verschieben Sie die folgenden Felder aus dem Abschnitt "Positions" (Stellen) in den Abschnitt mit den Feldern "Position" (Stelle), "Job Application" (Stellenbewerbung) und "Review". • • 390 Position Title (Stellentitel) Created By (Erstellt von) Kapitel 10: Analysieren von Daten mit Berichten und Dashboards • • • • • • • • Created Date (Erstelldatum) Days Open (Tage offen) Functional Area (Funktionsbereich) Hire By (Einstellen bis) Hiring Manager (Einstellungs-Manager) Open Date (Offen von) Status Travel Required (Reise erforderlich) 22. Verschieben Sie die folgenden Felder aus dem Abschnitt "Job Applications" (Stellenbewerbungen) in den Abschnitt mit den Feldern "Position" (Stelle), "Job Application" (Stellenbewerbung) und "Review". • • • • • • Job Application Number (Stellenbewerbungsnummer) Average Rating (Durchschnittliche Bewertung) Created By (Erstellt von) Created Date (Erstelldatum) Number of Reviews (Anzahl der Reviews) Status Beachten Sie, dass wir das Feld Candidate (Bewerber) nicht mit eingeschlossen haben. Wir haben es weggelassen, weil dieser Berichtstyp für alle Benutzer verfügbar ist, auch für Einstellungs-Manager. Wie bereits im letzten Kapitel erwähnt, könnte ein Einstellungs-Manager versuchen, Bewerber abzuwerben, die sich für eine andere Stelle bewerben. Daher empfiehlt es sich, die Namen der Bewerber in den Berichten nicht anzuzeigen. 23. Verschieben Sie die folgenden Felder aus dem Abschnitt "Reviews" in den Abschnitt mit den Feldern "Position" (Stelle), "Job Application" (Stellenbewerbung) und "Review". • • • • Review Number (Review-Nummer) Created By (Erstellt von) Created Date (Erstelldatum) Rating (Bewertung) 24. Aktivieren Sie standardmäßig folgende Felder: • • • • Days Open (Tage offen) Hiring Manager (Einstellungs-Manager) Job Application Number (Stellenbewerbungsnummer) Open Date (Offen von) 391 Kapitel 10: Analysieren von Daten mit Berichten und Dashboards • • Position Title (Stellentitel) Review Number (Review-Nummer) 25. Löschen Sie die einzelnen Abschnitte "Positions" (Stellen), "Job Applications" (Stellenbewerbungen) und "Reviews". 26. Klicken Sie auf Speichern. Ihr benutzerdefinierter Berichtstyp ist jetzt fertig! Um ihn auszuprobieren, rufen Sie die Registerkarte "Berichte" auf, klicken Sie auf Neuer Bericht und wählen Sie die Berichtstypkategorie "Anderer Bericht" aus. Der Berichtstyp "Positions with Reviewed Job Applications" (Stellen mit überprüften Stellenbewerbungen) wird unten in der Liste angezeigt. Rekapitulation Testen Sie nun Ihre Personalbeschaffungsanwendung! Wir haben fast alle Anforderungen erfüllt, über die wir am Anfang des Buches gesprochen haben, aber wir haben es noch nicht ganz geschafft. Im nächsten Kapitel gehen wir über die Point-and-Click-Tools der Plattform (z. B. Sicherheit und Workflow) hinaus und führen Visualforce und die SOAP-API ein. Diese Funktionen sind der Schlüssel zur Integration von Funktionen aus dem gesamten Web und helfen uns dabei, eine wirklich leistungsstarke Anwendung in der Cloud zu erstellen. Und noch mehr: Wenn Sie erst einmal die Tools beherrschen, die in der Plattform zur Verfügung stehen, können Sie Ihrer Kreativität freien Lauf lassen: Der Funktionsumfang der Anwendungen, die Sie auf der Plattform erstellen können, ist nur durch das Web selbst begrenzt. 392 Kapitel 11 Jenseits der Point-and-Click-Anwendungsentwicklung Themen: • • • • Einführung in Mashups und Webservices Einführung zu Visualforce Implementieren der Bewerberkarte Implementieren der Schaltfläche "Mass Update Status" (Status-Massenaktualisierung) Bisher haben wir eine überzeugende Anwendung unter Verwendung verschiedener Teile der Plattform erstellt. Wir haben ein Datenmodell zur Speicherung unserer Informationen zur Personalbeschaffung erstellt, Workflowund Genehmigungslogik eingerichtet, um die Datenverwaltung zu erleichtern, und Berichte und ein Dashboard zur Erleichterung der Datenfreigabe erstellt. Dass wir alle diese Teile schnell und einfach zusammenstellen konnten, ohne irgendwelchen Code schreiben zu müssen, zeigt, wie leistungsfähig die Force.com-Plattform ist. Die Plattform wurde mit einem enormen Aufwand an Forschungsarbeit und Überlegung entwickelt. Salesforce.com ist bestrebt, die verschiedenen Anforderungen an Geschäftsanwendungen im 21. Jahrhundert zu antizipieren und hat viele dieser Anforderungen durch einfache und dennoch leistungsstarke deklarative Point-and-Click-Tools abgedeckt, mit denen Benutzer ohne technischen Hintergrund ihre speziellen Geschäftsziele erreichen können. Ein Unternehmen kann jedoch unmöglich eine einzelne Lösung bereitstellen, die für jeden perfekt geeignet ist. Daher bietet salesforce.com Entwicklern die Möglichkeit, schnell und einfach Code zu schreiben, der auf den Point-and-Click-Funktionen der Force.com-Plattform beruht. Nachdem Sie sich mit der Programmierung für die Force.com-Plattform vertraut 393 Kapitel 11: Jenseits der Point-and-Click-Anwendungsentwicklung gemacht haben, können Sie Anwendungen für die Cloud erstellen, mit denen praktisch jede erdenkliche Funktion ausgeführt werden kann. Ihnen sind keine Grenzen gesetzt. Personen ohne IT-Hintergrund leiden häufig an "Programmier-Phobie" und viele Leser haben vermutlich gute Lust, dieses Buch wegzulegen, sobald sie auf die Wörter "Code" und "Variable" stoßen. Entspannen Sie sich. Wenn Sie dieses Kapitel lesen, werden Sie entdecken, wie einfach und interessant die Programmierung für die Force.com-Plattform sein kann. Bedenken Sie auch, dass es nicht Ziel dieses Kapitels ist, aus Ihnen einen Programmierer zu machen (auch wenn es einen guten Einstieg darstellt). Stattdessen soll dieses Kapitel Ihnen einfach nur einen Eindruck davon vermitteln, wie Sie Ihre Anwendung mit ganz einfacher Programmierung verbessern können. Wenn Sie den Code nicht selbst eintippen möchten, kopieren Sie einfach die Codebeispiele aus den Dateien in der Datei RecruitingApp-7_0.zip, die Sie unter Erweitern der einfachen Anwendung durch Beziehungen auf Seite 117 heruntergeladen haben. Mit dem Beispielcode und einigen Mausklicks können wir rasch unsere Anwendung erweitern, indem wir Folgendes hinzufügen: • • Candidate Map (Bewerberkarte) – Eine interaktive Karte, die die Standorte der Bewerber für eine bestimmte Stelle anzeigt Mass Update Status (Status-Massenaktualisierung) – Die Fähigkeit, das Feld Status bei mehreren Stellenbewerbungen gleichzeitig zu aktualisieren. Fangen wir an. 394 Kapitel 11: Jenseits der Point-and-Click-Anwendungsentwicklung Einführung in Mashups und Webservices Wenn wir die Anforderungen an unsere Personalbeschaffungsanwendung erneut durchgehen, sehen wir, dass wir noch eine interaktive Karte implementieren müssen, die die Standorte der Bewerber für eine bestimmte Stelle anzeigt. Eine derartige Funktion steht natürlich nicht standardmäßig auf der Plattform zur Verfügung und wir haben definitiv keine Zeit, eine eigene Karten-Engine zu erstellen. Ist diese Art von Funktion überhaupt möglich? Natürlich ist sie das. Da die Force.com-Plattform im Web ausgeführt wird, können wir andere Websites nutzen, um Funktionen zu implementieren, die über unsere Plattform allein nie zur Verfügung gestellt werden könnten. Mit ein wenig Code können wir also unsere eigenen Personalbeschaffungsdaten in einem Mashup mit einer interaktiven Karten-Website, wie Yahoo! Maps, kombinieren und diese Funktion in unsere eigene Anwendung integrieren. Zur Implementierung eines Mashups müssen wir uns zunächst ein wenig über die Technologie klar werden, die das alles möglich macht: Webservices. Ein Webservice ist der Mechanismus, mit dem zwei Anwendungen, die auf verschiedenen Plattformen ausgeführt werden, die in verschiedenen Sprachen geschrieben wurden und die räumlich voneinander getrennt sind, Daten über das Internet austauschen können. Mit Webservices ist der Datenaustausch zwischen zwei derartigen Anwendungen ebenso problemlos möglich, wie bei zwei Prozessen, die Daten auf demselben Computer austauschen. Der Datenaustausch zwischen zwei Webservices ähnelt der Methode, mit der Daten zwischen einem Webbrowser, wie dem Microsoft Internet Explorer, und einem Webserver ausgetauscht werden. Genau wie ein Webbrowser ein gängiges Netzwerkprotokoll (HTTP über TCP/IP) verwendet, um HTML-Dateien herunterzuladen, die auf einem Webserver gehostet werden, kann auch ein Webservice dieses Netzwerkprotokoll verwenden, um Daten von einem anderen Webservice herunterzuladen. Der wichtigste Unterschied besteht in den eigentlichen Daten, die gesendet und empfangen werden: Webservices verwenden XML und nicht HTML. In der Online-Welt gibt es unzählige Webservices, viele davon kostenlos. Für unsere Funktion "Candidate Map" (Bewerberkarte) nutzen wir die kostenlosen Yahoo! Maps Web Services, mit denen Sie problemlos interaktive Karten in Ihre Anwendungen einbetten können. Wenn wir eine Möglichkeit finden, wie wir die Bewerberadressen aus unserer Anwendung an die Yahoo! Maps Web Services weiterleiten können, übernimmt Yahoo! alle Eintragungen in der Karte, sodass wir uns nicht darum zu kümmern brauchen, wie unsere Anwendung eine interaktive Karte rendern kann. Wir müssen nur herausfinden, wie wir die gerenderte Karte in unsere Anwendung integrieren können. Anmerkung: Die Force.com-Plattform besitzt außerdem eine eigene leistungsstarke Webservices-API, zu der auch die SOAP-API gehört. Mit der SOAP-API können 395 Kapitel 11: Jenseits der Point-and-Click-Anwendungsentwicklung Sie Ihre Salesforce-Organisation unter Verwendung der von Ihnen bevorzugten Sprache und Plattform anpassen und integrieren. Die SOAP-API definiert einen Webservice, der vollständigen, zuverlässigen Zugriff auf alle Daten in Ihrer Organisation ermöglicht, einschließlich der Fähigkeit, Datensätze zu lesen, zu erstellen, zu aktualisieren und zu löschen. Da die SOAP-API für unsere Funktion "Candidate Map" (Bewerberkarte) nur im Hintergrund verwendet wird, werden in diesem Buch keine Details dazu erörtert. Sie können jedoch mehr darüber im Web Services API Developer's Guide, unter www.salesforce.com/us/developer/docs/api/index.htm, erfahren. Einführung zu Visualforce Wie geben wir also die Adressen unserer Bewerber an Yahoo! Maps Web Services weiter? Und nachdem Yahoo! Maps Web Services eine interaktive Karte gerendert hat, in der diese Adressen eingetragen sind, wie integrieren wir dann diese Karte in unsere Anwendung? Diese Anforderungen wirken vielleicht schrecklich schwer, sie sind jedoch tatsächlich recht einfach zu erreichen – dank Visualforce. Visualforce ist ein leistungsstarkes und flexibles Framework, mit dem Sie die Benutzeroberfläche Ihrer Anwendung wesentlich umfassender anpassen können, als dies mit den Point-and-Click-Tools der Plattform möglich ist. Es ist die effizienteste Methode zur Kombination von Daten aus mehreren Force.com-Objekten, zur Einbindung von Daten aus Webservices in Ihre Anwendungen und zur Anpassung der Logik, die das Verhalten der Benutzeroberfläche der Anwendung vorgibt. Sie werden sehen: Wenn Sie Visualforce verwenden, steigt Ihre Produktivität und Sie können praktisch jede Art von browserbasierter Benutzeroberfläche erstellen, die Sie sich nur vorstellen können. Das Visualforce-Framework besteht aus einer Tag-basierten Markup-Sprache, ähnlich wie HTML. In der Visualforce-Markup-Sprache entspricht jedes Visualforce-Tag einer Komponente in der Benutzeroberfläche. Sie brauchen eine Themenliste? Fügen Sie einfach das Komponenten-Tag <apex:relatedList> hinzu. Sie möchten die Details eines Datensatzes anzeigen? Verwenden Sie einfach das Tag <apex:detail>. In der folgenden Grafik sind einige der am häufigsten verwendeten Visualforce-Tags dargestellt und es ist angegeben, welchen Komponenten der Benutzeroberfläche sie entsprechen. Es gibt mehr als 125 Tags: von großen Komponenten, wie dem Detailabschnitt einer Standardseite bis hin zu kleinen Komponenten, wie einem einzigen Feld oder Link. Zu allen diesen Tags finden Sie Informationen im Visualforce Developer's Guide, unter www.salesforce.com/us/developer/docs/pages/index.htm. 396 Kapitel 11: Jenseits der Point-and-Click-Anwendungsentwicklung Abbildung138: Beispiele für Visualforce-Komponenten und die zugehörigen Tags Das Verhalten der Visualforce-Komponenten kann entweder über dieselbe Logik gesteuert werden, die auch auf Salesforce-Standardseiten verwendet wird, oder Sie können Ihre eigene, in Apex geschriebene Logik zuordnen. Apex ist die Programmiersprache von salesforce.com, die in der Cloud auf Force.com-Servern ausgeführt wird. Keine Panik! Sie brauchen nicht zu lernen, wie man Apex schreibt, um die Funktionen in diesem Buch erstellen zu können. Visualforce ist mit einer umfangreichen Komponentenbibliothek ausgestattet, mit der Sie rasch Seiten erstellen können, ohne dass Sie einen größeren Teil der Funktionalität selbst kodieren müssen. Und da Visualforce-Markup letztlich in HTML gerendert wird, können Sie Visualforce-Tags neben standardmäßigem HTML-, JavaScript-, Flash-, AJAX- oder sonstigen Code verwenden, der innerhalb von HTML-Seiten ausgeführt wird. Wir können also unsere Bewerberkarte erstellen, indem wir einfach eine Visualforce-Seite erstellen, auf der ein wenig einfaches Visualforce-Markup sowie JavaScript verwendet wird, um unsere Bewerberadressen an Yahoo! Maps Web Services weiterzuleiten. Anmerkung: Weitere Informationen zu Apex finden Sie im Force.com Apex Code Developer's Guide unter www.salesforce.com/us/developer/docs/apexcode/index.htm. 397 Kapitel 11: Jenseits der Point-and-Click-Anwendungsentwicklung Einführung in den Visualforce-Entwicklungsmodus Das Erstellen von Visualforce-Seiten ist schnell und einfach und es gibt dafür zwei Möglichkeiten: Klicken Sie unter "Setup" auf Entwickeln > Seiten oder aktivieren Sie den Visualforce-Entwicklungsmodus und navigieren Sie zu einer "leeren" Seite. In diesem Buch verwenden wir den Visualforce-Entwicklungsmodus zur Erstellung und Bearbeitung unserer Visualforce-Seiten, da er einige praktische Merkmale aufweist. Eines davon ist die spezielle Entwicklungsfußzeile auf jeder Visualforce-Seite. Über die Fußzeile können Sie auf einen Editor für das Seitenmarkup zugreifen, der Tools enthält, mit denen Sie nach Werten suchen, zu einer bestimmten Zeile in Ihrem Code springen sowie Änderungen rückgängig machen und wiederholen können. Außerdem ermöglicht der Seiteneditor Hervorhebungen und automatische Vorschläge für Komponenten-Tags und Attribute und enthält einen Link zur Komponentenreferenzdokumentation, in der Sie Beschreibungen und Beispiele für alle Visualforce-Komponenten finden. Während Sie sich im Visualforce-Entwicklungsmodus befinden, können Sie eine neue Seite erstellen, indem Sie einfach einen eindeutigen URL in die Adressleiste Ihres Browsers eingeben. Und wenn Sie Code zu Ihrer Visualforce-Seite hinzufügen, können Sie ihn speichern und Ihre Änderungen werden sofort in Ihrem Browser gerendert! Abbildung139: Visualforce-Entwicklungsmodus 398 Kapitel 11: Jenseits der Point-and-Click-Anwendungsentwicklung Probieren Sie es aus: Aktivieren des Visualforce-Entwicklungsmodus 1. Klicken Sie oben auf einer beliebigen Salesforce-Seite auf den Abwärtspfeil neben Ihrem Namen. Wählen Sie im Menü unterhalb Ihres Namens Meine Einstellungen oder Setup aus, je nachdem, welche Option angezeigt wird. 2. Wählen Sie im linken Fenster eine der folgenden Optionen aus: • • Wenn Sie auf Meine Einstellungen geklickt haben, wählen Sie die Optionsfolge Persönlich > Erweiterte Benutzerdetails. Wenn Sie auf Setup geklickt haben, wählen Sie die Optionsfolge Meine persönlichen Daten > Persönliche Daten. 3. Klicken Sie auf Bearbeiten. 4. Aktivieren Sie das Kontrollkästchen Entwicklungsmodus. 5. Klicken Sie auf Speichern. Implementieren der Bewerberkarte Nachdem wir nun mit Webservices und Visualforce vertraut sind, können wir den Mashup-Teil für unsere Personalbeschaffungsanwendung implementieren: die Bewerberkarte. Laut unseren Anforderungen müssen wir eine Karte für alle Bewerber generieren, die sich um eine bestimmte Stelle beworben haben, damit wir uns ein besseres Bild von den Umzugskosten machen können, die mit einer Neueinstellung verbunden wären. Da Universal Containers über Niederlassungen überall in den USA verfügt, können wir mit dieser Karte auch leichter Bewerber einer bestimmten Niederlassung zuweisen, wenn eine bestimmte Stelle an mehreren Standorten offen ist. Probieren Sie es aus: Erstellen einer Visualforce-Seite Nun, da wir uns im Entwicklungsmodus befinden, können wir eine Visualforce-Seite namens "CandidateMap" erstellen, indem wir einfach den URL in unserem Browser abändern. Salesforce-URLs sehen üblicherweise wie folgt aus: https://na1.salesforce.com/001/o. Sie können eine neue Visualforce-Seite erstellen, indem Sie alles rechts neben dem Teil 399 Kapitel 11: Jenseits der Point-and-Click-Anwendungsentwicklung salesforce.com/ des URL entfernen und durch apex/, gefolgt vom Namen der zu erstellenden Seite, ersetzen. 1. Ersetzen Sie in der Adressleiste Ihres Browsers alles rechts von salesforce.com/ durch apex/CandidateMap. ACHTUNG: Ändern Sie nichts links von salesforce.com/, da diese Informationen speziell für die verwendete Force.com-Plattform gelten, und eine Änderung dieser Informationen dazu führt, dass Sie die Visualforce-Seite nicht erstellen können. Der so entstehende URL sollte in etwa wie folgt aussehen: https://na1.salesforce.com/apex/CandidateMap. Beachten Sie, dass bei Ihrem URL vor dem Teil salesforce.com/ ein anderer Instanzname stehen kann als na1. Das ist kein Problem. 2. Drücken Sie die Eingabetaste. Die folgende Visualforce-Fehlerseite wird angezeigt. Sie besagt, dass die Seite noch nicht vorhanden ist. Auch das ist kein Problem. Es gibt uns die Möglichkeit, den Umgang mit einer der anderen praktischen Funktionen des Entwicklungsmodus zu üben, der schnellen Fehlerbehebung. Mit einer schnellen Fehlerbehebung können Elemente zwischendurch erstellt werden, genau dann, wenn wir sie benötigen. In diesem Fall ist die Seite "CandidateMap" noch nicht vorhanden, aber im Entwicklungsmodus wird ein Link zur schnellen Fehlerbehebung angezeigt, mit dem wir sie sofort erstellen können. Das Klicken auf diesen Link entspricht folgenden Schritten: Setup-Bereich öffnen, zum Abschnitt für Visualforce-Seiten navigieren, auf Neu klicken, den Namen der Seite eingeben und auf Speichern klicken. Abbildung140: Visualforce-Fehlerseite 3. Klicken Sie auf den Link Seite "CandidateMap" erstellen. 400 Kapitel 11: Jenseits der Point-and-Click-Anwendungsentwicklung Abbildung141: Visualforce-Seite "CandidateMap" Herzlichen Glückwunsch! Sie haben Ihre erste Visualforce-Seite erstellt! Nun ist es an der Zeit, Visualforce-Markup hinzuzufügen, damit unsere Bewerberkarte angezeigt wird. Probieren Sie es aus: Schreiben von Visualforce-Markup Klicken Sie in der Fußzeile unten auf Ihrer neuen Visualforce-Seite auf CandidateMap, um den Visualforce-Seiteneditor im Entwicklungsmodus anzuzeigen. In diesem Editor wird das gesamte Markup für die aktuell betrachtete Seite angezeigt. Abbildung142: Visualforce-Entwicklungsmodus 401 Kapitel 11: Jenseits der Point-and-Click-Anwendungsentwicklung Wie Sie sehen, weist der Seiteneditor den Standardinhalt auf. <apex:page > <!-- Begin Default Content REMOVE THIS --> <h1>Congratulations</h1> This is your new Page: CandidateMap <!-- End Default Content REMOVE THIS --> </apex:page> Zum Standardinhalt gehören das Visualforce-Komponenten-Tag <apex:page> in der ersten Zeile und das schließende Tag, </apex:page>, in der letzten Zeile. Wie bei Elementen in anderen Markup-Sprachen bestehen auch die Visualforce-Komponenten-Tags aus einem Start-Tag, wie <apex:page>, und einem End-Tag, das, abgesehen davon, dass es einen Schrägstrich enthält, mit dem Start-Tag identisch ist, beispielsweise </apex:page>. Das Tag <apex:page> steht für eine einzelne Visualforce-Seite. Alle anderen Inhalte, die auf einer Seite angezeigt werden sollen, müssen sich innerhalb des öffnenden und schließenden <apex:page>-Tags befinden. Wie bereits besprochen, kann es sich bei den Inhalten um andere Visualforce-Tags, normalen Text, Briefvorlagenfelder, HTML, JavaScript usw. handeln. Beispielsweise gibt es im Standardinhalt Kommentare, die durch die Symbole <!-- und -->, das HTML-Header-Tag <h1> und normalen Text gekennzeichnet sind. Ändern wir das Erscheinungsbild der Seite so, dass es dem Stil des Objekts "Position" (Stelle) entspricht, also des Objekts, das am engsten mit unserer Bewerberkarte verbunden ist. Wir können dies tun, indem wir einfach ein Attribut für das Tag <apex:page> festlegen. Wie bei HTML-Tags konfigurieren Attribute bei Visualforce-Tags den Stil bzw. das Verhalten des Elements, das durch das Tag repräsentiert wird. Das Attribut, das wir festlegen müssen, ist standardcontroller. In Visualforce dienen Controller/Steuerfelder dazu, den Stil der Seite, die Verhaltensweise der Seite, wenn ein Benutzer auf eine Schaltfläche klickt, sowie die Daten, die auf der Seite angezeigt werden sollen, festzulegen. Indem wir einfach den Wert des Attributs standardcontroller auf das Objekt "Position" (Stelle) setzen, konfigurieren wir unsere Seite so, dass sie dasselbe Erscheinungsbild und dieselbe Verhaltensweisen aufweist wie die Stellenseiten und Stellendaten anzeigt. 1. Setzen Sie einfach den Cursor unmittelbar vor die schließende Klammer des Tags <apex:page>, drücken Sie die Leertaste und geben Sie standardcontroller="Position__c" ein. Es sollte sich in etwa Folgendes ergeben: <apex:page standardcontroller="Position__c"> 402 Kapitel 11: Jenseits der Point-and-Click-Anwendungsentwicklung Tipp: Sie können Ihre eigenen Steuerfelder entwickeln, die Force.com-Plattform beinhaltet jedoch auch ein Standard-Steuerfeld für alle Objekte, auch für die von Ihnen erstellten benutzerdefinierten Objekte. Dies ist ein weiterer Vorteil von Force.com! Beachten Sie, dass das Format für die Festlegung von Attributen wie folgt lautet: Name des Attributs, gefolgt vom Gleichheitszeichen (=), und dann der Wert des Attributs in Anführungszeichen. Denken Sie außerdem daran, dass die eindeutigen API-Namen von benutzerdefinierten Objekten zwei Unterstriche (__) und den Buchstaben c am Ende aufweisen. Speichern wir unsere Arbeit, damit wir sehen können, was unsere Änderungen bewirken. 2. Klicken Sie auf das Speichersymbol ( Tastenkombination STRG+S. ) im Seiteneditor oder drücken Sie die Wenn Sie Ihr Markup speichern, wird es von der Force.com-Plattform überprüft, um sicherzustellen, dass es gültig ist, und Sie werden darauf hingewiesen, wenn Fehler vorliegen. Wenn das Markup gültig ist, wird die neue Version Ihrer Visualforce-Seite gespeichert und in Ihrem Browser gerendert. Sehen Sie die Änderungen an Ihrer Seite? Durch die Festlegung des Attributs standardcontroller wurde das Erscheinungsbild der Visualforce-Seite dahingehend geändert, dass nun die Registerkarte "Positions" (Stellen) ausgewählt ist. 403 Kapitel 11: Jenseits der Point-and-Click-Anwendungsentwicklung Abbildung143: Vor und nach der Festlegung des Attributs standardcontroller Entfernen wir nun den HTML-Standardcode auf unserer Visualforce-Seite und ersetzen wir ihn durch Elemente, die für unsere Bewerberkarte relevant sind, beispielsweise eine kurze Beschreibung der Seite, für den Fall, dass der Zweck der Karte für die Benutzer nicht sofort offensichtlich ist. 3. Löschen Sie das folgende Markup: <!-- Begin Default Content REMOVE THIS --> <h1>Congratulations</h1> This is your new Page: CandidateMap <!-- End Default Content REMOVE THIS --> 4. Geben Sie das folgende Markup zwischen dem öffnenden und dem schließenden <apex:page>-Tag ein. This map shows the locations of candidates who have applied for the <b>{!Position__c.Name}</b> position. Es sollte sich in etwa Folgendes ergeben: <apex:page standardController="Position__c"> This map shows the locations of candidates who have applied for the <b>{!Position__c.Name}</b> position. </apex:page> 404 Kapitel 11: Jenseits der Point-and-Click-Anwendungsentwicklung Die Beschreibung enthält das Briefvorlagenfeld {!Position__c.Name}, eingeschlossen in das HTML-Tag <b>. Wir haben bei der Erstellung unserer Anwendung recht häufig auf Briefvorlagenfelder zurückgegriffen. Sie wurden in unserer E-Mail-Vorlage und in einigen unserer Formeln verwendet. Nun verwenden wir sie noch einmal. Diesmal zusammen mit HTML-Code und Visualforce-Komponenten-Tags. 5. Klicken Sie auf das Speichersymbol ( ) im Seiteneditor. Derzeit wird unser Briefvorlagenfeld nicht angezeigt, da die Bewerberkarte noch keinen Kontext aufweist, da es also keinen Stellendatensatz gibt, aus dem sie die Daten übernehmen kann. Dies braucht Sie im Moment nicht zu kümmern. Wir erfahren später, wie der Kontext festgelegt wird. Gehen Sie für den Moment davon aus, dass das Briefvorlagenfeld {!Position__c.Name} den Namen der Stelle rendern und dass das HTML-Tag <b> den Namen fett formatieren wird. Wir können nun also die interaktive Karte zu unserer Visualforce-Seite hinzufügen. Probieren Sie es aus: Hinzufügen der Karte zur Visualforce-Seite Die Eigenschaften einer interaktiven Karte, die wesentlich für unsere Funktion "Candidate Map" (Bewerberkarte) sind, lassen sich durch eine Mischung aus Visualforce-Markup und JavaScript, das auf Yahoo! Maps Web Services zugreift, erreichen. Wie versprochen, brauchen Sie nicht JavaScript zu lernen, um die Bewerberkarte einzurichten. Stattdessen verwenden wir den Beispielcode aus der Datei RecruitingApp-7_0.zip, die Sie im Abschnitt Erweitern der einfachen Anwendung durch Beziehungen auf Seite 117 von Developer Force heruntergeladen haben. 1. Suchen Sie in der Datei RecruitingApp-7_0.zip die Datei CandidateMapSample und öffnen Sie sie in einem Texteditor. Wichtig: Achten Sie darauf, dass alle Funktionen, die Zeilenumbrüche zum Code hinzufügen könnten, im Texteditor deaktiviert sind. Sie müssen die ursprünglichen Zeilenumbrüche im Codebeispiel beibehalten. Neue Zeilenumbrüche, die durch Umbruchfunktionen in Texteditoren bewirkt werden, können den Code beschädigen und bewirken, dass das Codebeispiel nicht ordnungsgemäß funktioniert. Beachten Sie außerdem, dass das Kopieren von Code aus Adobe-PDF-Dateien ebenfalls den Code beschädigen kann. Sie sollten also keinen Code aus PDF-Versionen dieses Buchs kopieren. 405 Kapitel 11: Jenseits der Point-and-Click-Anwendungsentwicklung 2. Wählen Sie den gesamten Inhalt der Datei aus, kopieren Sie ihn und fügen Sie ihn in den Seiteneditor unten auf der Visualforce-Seite "CandidateMap" ein. Die Datei CandidateMapSample enthält das Visualforce-Markup, das Sie in den oben stehenden Schritten hinzugefügt haben. Ersetzen Sie also einfach alles im Seiteneditor mit dem gesamten Beispiel in der Datei. 3. Klicken Sie auf das Speichersymbol ( ) im Seiteneditor. Die interaktive Karte sollte auf Ihrer Visualforce-Seite "CandidateMap" angezeigt werden, allerdings mit einer Fehlermeldung und ohne Eintragungen. Dies liegt daran, dass die Bewerberkarte noch keinen Kontext hat und die Seite nicht ermitteln kann, welche Bewerber angezeigt werden sollen. Wir können dies korrigieren, indem wir die Visualforce-Seite "CandidateMap" einfach zu unseren Layouts für die Stellenseite hinzufügen. Probieren Sie es aus: Hinzufügen der Candidate Map (Bewerberkarte) zum Seitenlayout für Stellen Visualforce-Seiten können ebenso einfach zu Seitenlayouts hinzugefügt werden wie Felder oder Abschnitte. Und sobald wir die Visualforce-Seite "CandidateMap" zu unseren Seitenlayouts für Stellen hinzugefügt haben, werden auf der Karte automatisch die Standorte der Bewerber um die einzelnen Stellen angezeigt. Wie von Zauberhand. Wir haben zwei Seitenlayouts für das Objekt "Position" (Stelle) und möchten, dass die Karte auf beiden angezeigt wird. Fügen wir zunächst die Seite zum ursprünglichen Seitenlayout "Position Layout" (Stelle-Layout) hinzu. Wenn Sie standardmäßige Stellendatensätze besitzen, die das Stellenlayout verwenden, navigieren Sie zu einer dieser Stellen und klicken Sie auf den Link Seitenlayout bearbeiten in der rechten oberen Ecke des Datensatzes. Wenn Sie keine standardmäßigen Stellendatensätze besitzen: 1. Klicken Sie unter "Setup" auf Erstellen > Objekte. 2. Klicken Sie auf Position (Stelle). 3. Klicken Sie in der Themenliste "Seitenlayouts" neben "Position Layout" (Stelle-Layout) auf Bearbeiten. Das Stellenlayout kann nun bearbeitet werden. Erstellen wir einen Abschnitt im Seitenlayout für die Visualforce-Seite "CandidateMap". 4. Wählen Sie in der Palette die Kategorie "Felder" aus. 406 Kapitel 11: Jenseits der Point-and-Click-Anwendungsentwicklung 5. Ziehen Sie das Benutzeroberflächenelement "Abschnitt" von der Palette auf die Stelle unmittelbar unterhalb des Abschnitts "Beschreibung" im Seitenlayout. Das Popup-Fenster "Layouteigenschaften" wird angezeigt. 6. Geben Sie im Textfeld Abschnittsname den Wert Candidate Map (Bewerberkarte) ein. 7. Aktivieren Sie im Bereich "Anzeige Abschnittsüberschrift ein" sowohl das Kontrollkästchen Detailseite als auch das Kontrollkästchen Seite bearbeiten. 8. Wählen Sie in der Dropdownliste Layout die Option 1 Spalte aus. 9. Klicken Sie auf OK. Verschieben wir nun die Visualforce-Seite "CandidateMap" in unseren neuen Abschnitt. 10. Wählen Sie in der Palette die Kategorie "Visualforce-Seiten" aus. Wie Sie sehen, ist in der Palette unsere Visualforce-Seite "CandidateMap" als Benutzeroberflächenelement aufgelistet. 11. Ziehen Sie das Benutzeroberflächenelement "CandidateMap" aus der Palette in den Abschnitt "Candidate Map" (Bewerberkarte) des Seitenlayouts. Das JavaScript für "Candidate Map" (Bewerberkarte) generiert eine Karte, die 400 Pixel hoch ist und sich über die gesamte Breite des Bildschirms erstreckt. Dies ist gerade groß genug, um nützlich zu sein, ohne zu viel Platz auf dem Bildschirm einzunehmen. Die Standardeigenschaften des Benutzeroberflächenelements der Visualforce-Seite müssen für die Karte angepasst werden. Anderenfalls könnte es zu merkwürdigen Abständen um die Karte und verwirrenden Bildlaufleisten kommen. Passen wir die Eigenschaften des Benutzeroberflächenelements der Visualforce-Seite für die Größe der generierten Karte und den Text an, den wir oben zur Visualforce-Seite "CandidateMap" hinzugefügt haben. (Für den Fall, dass Sie sich nicht mehr erinnern: Der Text lautete: "This map shows the locations of candidates who have applied for the <b>{!Position__c.Name}</b> position." (Auf dieser Karte werden die Standorte von Bewerbern angezeigt, die sich für die Stelle <b>{!Position__c.Name}</b> beworben haben.)) 12. Doppelklicken Sie auf das Element "CandidateMap", um die zugehörigen Eigenschaften aufzurufen. 13. Setzen Sie die Breite auf 100%. 14. Setzen Sie die Höhe auf 405. Die Höhe wird stets in Pixel angegeben, wohingegen die Breite entweder in Pixel oder als Prozentsatz angegeben werden kann. Durch die Höhe von 405 Pixel haben wir 400 Pixel Platz für die Karte und 5 weitere für den Text. Perfekt! 15. Lassen Sie die Kontrollkästchen Bildlaufleisten anzeigen und Bezeichnung anzeigen deaktiviert. 407 Kapitel 11: Jenseits der Point-and-Click-Anwendungsentwicklung 16. Klicken Sie auf OK, um die Eigenschaften für das Benutzerelement zu schließen. 17. Klicken Sie im Seitenlayout auf Speichern. Wiederholen Sie alle oben angegebenen Schritte für Ihr anderes Seitenlayout für das Objekt "Position" (Stelle): "IT Position Layout" (IT-Stellen-Layout). Probieren Sie es aus: Aktivieren der Bewerberkarte für mobile Anwendungen Eine letzte Maßnahme müssen wir noch ergreifen, bevor wir die Karte ausprobieren können. Wir wollen sicherstellen, dass die Karte unseren Benutzern angezeigt wird, unabhängig davon, ob sie über die vollständige Site oder über ein mobiles Gerät auf einen Stellendatensatz zugreifen. Auf der Detailseite aller Visualforce-Seiten ist ein Kontrollkästchen vorhanden, mit dem sie für mobile Salesforce-Anwendungen aktiviert werden kann. 1. Klicken Sie unter "Setup" auf Entwickeln > Seiten. 2. Klicken Sie auf CandidateMap (Bewerberkarte). Sie können auf den Link unter der Spalte "Bezeichnung" oder "Name" klicken. Über beide Links wird die zugeordnete Detailseite aufgerufen. 3. Klicken Sie auf Bearbeiten. 4. Wählen Sie Verfügbar für Salesforce-Mobilanwendungen aus und klicken Sie auf Speichern. Wenn Sie damit fertig sind, ist es an der Zeit die Bewerberkarte zu testen! Probieren Sie es aus: Testen der Bewerberkarte Navigieren Sie zu einem Stellendatensatz mit einer oder mehreren Bewerbungen. (Wenn Sie noch keine Stellenbewerbungen in Ihrer Anwendung erstellt haben, wäre jetzt ein guter Zeitpunkt dafür.) Nachdem Sie einen Stellendatensatz aufgerufen haben, blättern Sie nach unten, um die Bewerberkarte in Aktion zu sehen. 408 Kapitel 11: Jenseits der Point-and-Click-Anwendungsentwicklung Abbildung144: Unsere funktionsfähige Bewerberkarte Starten Sie Salesforce1, um zu sehen, wie die mobile Version der Bewerberkarte aussieht. Wenn Sie einen Stellendatensatz aufrufen, wischen Sie, bis Sie zur Datensatzdetailansicht gelangen, und blättern Sie nach unten, um die Bewerberkarte anzusehen. Eine Interaktion mit der Karte ist auf der Datensatzdetailseite nicht möglich. Tippen Sie hierzu auf die Karte, um sie auf einer anderen Seite zu öffnen. Das sieht gut aus! Wie Sie sehen, ist die Visualforce-Seite "Candidate Map" (Bewerberkarte) in unsere Personalbeschaffungsanwendung eingebettet, genau wie die anderen Funktionen, die wir mit den deklarativen Point-and-Click-Tools der Plattform erstellt haben. Außerdem sehen Sie, dass auf der Karte automatisch nur Bewerber angezeigt werden, die sich auf diese Stelle beworben haben. Mit sehr wenig Programmieraufwand und einigen wenigen Klicks haben wir Yahoo Maps Web Services mit Force.com kombiniert und das Ergebnis so aussehen lassen, als sei es speziell für unsere Personalbeschaffungsanwendung erstellt worden. Sie können die SOAP-API mit den Tausenden Webservices kombinieren, die heutzutage im Internet verfügbar sind. Die Möglichkeiten sind praktisch unbegrenzt! 409 Kapitel 11: Jenseits der Point-and-Click-Anwendungsentwicklung Implementieren der Schaltfläche "Mass Update Status" (Status-Massenaktualisierung) Die Funktion "Candidate Map" (Bewerberkarte), die wir soeben hinzugefügt haben, ist sowohl nützlich als auch auffällig. Sie hilft den Personalbeschaffungsmitarbeitern, noch effizienter zu arbeiten, und fügt außerdem eine prägnante Grafik zu einer ansonsten eher unscheinbaren Datensammlung hinzu. Die nächste Funktion, die wir implementieren, ist ästhetisch weniger ansprechend, aber wesentlich nützlicher und spart Ihren Benutzern vermutlich sehr viel Zeit. Stellen Sie sich vor, Sie wären ein Personalbeschaffungsmitarbeiter bei Universal Containers. Sie sind damit betraut, eine hochattraktive Stelle zu besetzen, für die mehrere Hundert Bewerbungen eingegangen sind, und Sie haben den Bewerberkreis schließlich auf die drei besten Kandidaten eingegrenzt. Bevor Sie weitermachen können, müssen Sie jedoch die Bewerbungen aller anderen Bewerber um die Stelle ablehnen, eine Aufgabe, die etliche Stunden in Anspruch nehmen kann, wenn Sie jeden einzelnen dieser Stellenbewerbungsdatensätze öffnen und den Status auf "abgelehnt" setzen müssen. Was können Sie tun? Glücklicherweise ist die Erstellung von Tools zur Ausführung von Massenaktionen bei Daten eine weitere der unzähligen Möglichkeiten, für die Sie die Funktionen der Plattform nutzen können. Mit einigen wenigen Visualforce-Zeilen und den Point-and-Click-Tools der Plattform können wir die Personalbeschaffungsanwendung so erweitern, dass die Produktivität unserer Benutzer enorm gesteigert wird. Wenn wir damit fertig sind, ist die Aktualisierung des Felds Status bei einer Vielzahl von Stellenbewerbungen keine stundenlange stupide Arbeit mehr, sondern lässt sich ganz einfach mit einigen Mausklicks in wenigen Sekunden erledigen. Planen der Funktion "Mass Update Status" (Status-Massenaktualisierung) Das Ziel ist einfach: Eine Methode erstellen, mit der das Feld Status bei mehreren Stellenbewerbungen in einem einzigen Vorgang aktualisiert werden kann. Wir müssen nur ein wenig die Logistik ausarbeiten, um sicherzustellen, dass die Implementierung reibungslos verläuft. Beispielsweise stellen sich folgende Fragen: Wo in unserer Anwendung möchten die Benutzer auf die Funktion zur Status-Massenaktualisierung zugreifen? Und wie soll der eigentliche Aktualisierungsvorgang durchgeführt werden? Beim Entwerfen einer neuen Funktion ist es wichtig, sich zu überlegen, in welchem Kontext die Benutzer darauf zugreifen. Da mit der Funktion zur Status-Massenaktualisierung der 410 Kapitel 11: Jenseits der Point-and-Click-Anwendungsentwicklung Zweck verfolgt wird, das Feld Status bei mehreren Bewerbungen für eine bestimmte Stelle gleichzeitig zu aktualisieren, ist es am wahrscheinlichsten, dass die Benutzer diesen Vorgang durchführen möchten, wenn sie gerade einen Stellendatensatz anzeigen. Daher ist es am sinnvollsten, den Zugriff auf die Funktion "Mass Update Status" (Status-Massenaktualisierung) auf Stellendatensätzen zur Verfügung zu stellen. Und wo genau in einem Stellendatensatz sollten wir den Zugriff auf die Funktion bereitstellen? Nun, im Abschnitt Erweitern der einfachen Anwendung durch Beziehungen auf Seite 117 haben wir die Themenliste "Job Applications" (Stellenbewerbungen) zu unseren Stellendatensätzen hinzugefügt, mit der die Benutzer rasch alle Bewerbungen ermitteln konnten, die für eine Position eingegangen waren. Wir können diese Liste nutzen, indem wir neben jeder Stellenbewerbung ein Kontrollkästchen hinzufügen, sodass die Benutzer diejenigen Stellenbewerbungen auswählen können, die aktualisiert werden sollen. Anschließend könnten wir die benutzerdefinierte Listenschaltfläche Update Status (Status aktualisieren) hinzufügen, mit der die Benutzer die Status-Felder aller ausgewählten Stellenbewerbungen auf einen Schlag aktualisieren können. Wenn wir damit fertig sind, funktioniert die Funktion in etwa wie folgt: 1. Öffnen Sie einen Positionsdatensatz und blättern Sie nach unten zur Themenliste "Job Applications" (Stellenbewerbungen). 2. Wählen Sie in der Themenliste "Job Applications" (Stellenbewerbungen) die Kontrollkästchen neben den Bewerbungen aus, die aktualisiert werden sollen. Abbildung145: Themenliste "Job Applications" (Stellenbewerbungen) 3. Klicken Sie auf die Schaltfläche Update Status (Status aktualisieren). Die Seite "Mass Update Status" (Status-Massenaktualisierung) wird angezeigt. 411 Kapitel 11: Jenseits der Point-and-Click-Anwendungsentwicklung Abbildung146: Seite "Mass Update Status" (Status-Massenaktualisierung) 4. Wählen Sie einen Wert für das Feld Status aus. 5. Klicken Sie auf Speichern. Das klingt vielleicht so, als sei die Implementierung dieser Funktion mit enormem Aufwand verbunden, aber es ist wirklich recht einfach. Sie brauchen lediglich die Seite "Mass Update Status" (Status-Massenaktualisierung) mit ein wenig einfachem Visualforce-Markup zu erstellen und eine benutzerdefinierte Listenschaltfläche zur Themenliste "Job Applications" (Stellenbewerbungen) auf Stellendatensätzen hinzufügen. Und im Handumdrehen sind Sie fertig. Probieren Sie es aus: Erstellen der Seite "Mass Update Status" (Status-Massenaktualisierung) Wir beginnen mit der Implementierung der Funktion "Mass Update Status" (Status-Massenaktualisierung), indem wir die Visualforce-Seite erstellen, auf der die Benutzer den Wert auswählen können, mit der das Feld Status aktualisiert wird. Um diese Seite noch besser nutzbar zu machen, nehmen wir eine Tabelle mit auf, in der für jede ausgewählte Stellenbewerbung die folgenden Elemente angezeigt werden: Job Application Number (Stellenbewerbungsnummer), Position Title (Stellentitel), Candidate Name (Bewerbername) und Status. 1. Ersetzen Sie in der Adressleiste Ihres Browsers alles rechts von salesforce.com/ durch apex/MassUpdateStatus. Der so entstehende URL sollte in etwa wie folgt aussehen: https://na1.salesforce.com/apex/MassUpdateStatus. Achten Sie darauf, nur den Teil des URL zu ändern, der nach salesforce.com/ steht. 412 Kapitel 11: Jenseits der Point-and-Click-Anwendungsentwicklung 2. Drücken Sie die Eingabetaste. 3. Klicken Sie auf den Link Seite "MassUpdateStatus" erstellen. Wir haben nun eine neue Visualforce-Seite namens "MassUpdateStatus". Als Nächstes fügen wir das Visualforce-Markup hinzu, mit dem die Funktionen von "Mass Update Status" (Status-Massenaktualisierung) implementiert werden. Zur Eingabe des Markup verwenden wir wie zuvor den Visualforce-Seiteneditor im Entwicklungsmodus. Diesmal benötigen wir jedoch kein JavaScript; Visualforce kann alles automatisch erledigen. 4. Klicken Sie in der Fußzeile unten auf der Visualforce-Seite "MassUpdateStatus" auf MassUpdateStatus, um den Visualforce-Seiteneditor im Entwicklungsmodus anzuzeigen. 5. Löschen Sie das gesamte Standard-Markup im Visualforce-Seiteneditor im Entwicklungsmodus und ersetzen Sie es durch folgendes Markup. Denken Sie daran, dass es einfacher ist, den Code nicht einzutippen, sondern ihn aus der Datei MassUpdateStatusSample zu kopieren und einzufügen, die in der Datei RecruitingApp-7_0.zip enthalten ist, die Sie von developer.force.com/books/fundamentals heruntergeladen haben. <apex:page standardController="Job_Application__c" recordSetVar="applications"> <apex:sectionHeader title="Mass Update the Status of Job Applications"/> <apex:form> <apex:pageBlock> <apex:pageMessages /> <apex:pageBlockButtons> <apex:commandButton value="Save" action="{!save}"/> <apex:commandButton value="Cancel" action="{!cancel}"/> </apex:pageBlockButtons> <apex:pageBlockSection title="Status Update" collapsible="false"> <apex:inputField value= "{!Job_Application__c.Status__c}"/> </apex:pageBlockSection> <apex:pageBlockSection title="Selected Job Applications" columns="1"> <apex:pageBlockTable value="{!selected}" var="application"> <apex:column value="{!application.name}"/> <apex:column value= "{!application.position__r.name}"/> <apex:column headerValue="Candidate Name"> <apex:outputText value= "{!application.candidate__r. First_Name__c & ' ' & application. candidate__r.Last_Name__c}"/> 413 Kapitel 11: Jenseits der Point-and-Click-Anwendungsentwicklung </apex:column> <apex:column value= "{!application.Status__c}"/> </apex:pageBlockTable> </apex:pageBlockSection> </apex:pageBlock> </apex:form> </apex:page> Tipp: Beachten Sie, dass in diesem Beispielcode einige Komponenten keine schließenden Tags aufweisen. Wenn in einer Komponente keine anderen Komponenten geschachtelt sind, können Sie ein schließendes Tag erstellen, indem Sie am Ende des Start-Tags einen Schrägstrich einfügen, wie in folgendem Beispiel: <apex:sectionHeader/>. 6. Klicken Sie auf . Grundlegendes zum Visualforce Markup "MassUpdateStatus" Nehmen wir uns einen Augenblick Zeit, um die wichtigsten Visualforce-Tags zu erörtern, die wir soeben zu unserer Seite "MassUpdateStatus" hinzugefügt haben. Auch wenn wir nicht sämtliche Anwendungsfälle für jede Komponente behandeln oder jedes einzelne Attribut detailliert besprechen, so erhalten Sie doch einen besseren Einblick in die Funktionsweise von Visualforce. Tipp: Um allgemeine Beschreibungen und Beispiele für alle Visualforce-Komponenten und ihre Attribute anzuzeigen, klicken Sie auf den Link Komponentenverweis in der rechten oberen Ecke des Visualforce-Seiteneditors im Entwicklungsmodus. <apex:page> Wie alle Visualforce-Seiten muss auch die Seite "MassUpdateStatus" mit einer <apex:page>-Komponente beginnen. Wie Sie sehen, weist das Tag dasselbe standardController-Attribut auf, das auch in unserer interaktiven Funktion "Candidate Map" (Bewerberkarte) verwendet wurde, auch wenn es diesmal auf das Stellenbewerbungs-Objekt gesetzt ist: Job_Application__c). Dies liegt daran, dass die Funktion "Mass Update Status" (Status-Massenaktualisierung) ein Feld in Bewerbungsdatensätzen aktualisiert, nicht in Stellendatensätzen. 414 Kapitel 11: Jenseits der Point-and-Click-Anwendungsentwicklung Die Komponente weist außerdem ein recordSetVar-Attribut auf. Wir verwenden dieses Attribut, um standardcontroller zu ändern, sodass anstatt eines einzelnen Datensatzes eine Gruppe von Datensätzen verwendet werden kann. <apex:sectionHeader> Die Komponente <apex:sectionHeader> fügt oben auf der Seite eine Kopfzeile hinzu. Über das Attribut title der Komponente wird der Text in der Kopfzeile festgelegt. <apex:form> Die Komponente <apex:form> richtet einen Abschnitt auf der Seite ein, in dem die Benutzer Daten eingeben und durch Klicken auf eine Schaltfläche oder einen Link übermitteln können. Sie ist wie ein unsichtbarer Container, ähnlich einem <form>-Element in HTML. <apex:pageBlock> Die Komponente <apex:pageBlock> gibt einen umrandeten Bereich auf der Seite an, ähnlich den Bereichen auf Detailseiten, die Abschnitte enthalten. <apex:pageMessages> Die Komponente <apex:pageMessages> stellt Platz für Standardsystemmeldungen (beispielsweise Meldungen, die den Benutzer darauf hinweisen, wenn eine Datei gespeichert wird) und Fehler, die sich auf die Validierungsregeln beziehen, bereit. Diese Meldungen sind bereits in der Force.com-Plattform enthalten. Sie brauchen Sie also nicht zu erstellen, sondern müssen lediglich diese Komponente verwenden, um Platz für sie zu schaffen, für den Fall, dass die Plattform sie anzeigen muss. <apex:pageBlockButtons> Die Komponente <apex:pageBlockButtons> stellt Platz für eine Reihe von Schaltflächen auf der Seite bereit. In den zugehörigen Unterkomponenten wird angegeben, was die Schaltflächen bewirken und wie sie beschriftet sind. <apex:commandButton> Die einzelnen <apex:commandButton>-Komponenten erstellen jeweils eine einzelne Schaltfläche innerhalb der Komponente <apex:pageBlockButtons>. Die Seite "Mass Update Status" (Status-Massenaktualisierung) verwendet zwei <apex:commandButton>-Komponenten: eine zur Erstellung einer Schaltfläche zum Speichern und eine zweite zum Erstellen einer Schaltfläche zum Abbrechen. Die Schaltflächen entsprechen von ihrem Stil her standardmäßigen Salesforce-Schaltflächen. Das Attribut value in der Komponente <apex:commandButton> bestimmt, welcher Text auf der Schaltfläche angezeigt wird (z. B. "Speichern" oder "Abbrechen"), während das Attribut action festlegt, welcher Vorgang beim Klicken auf die Schaltfläche ausgeführt wird. Bei der 415 Kapitel 11: Jenseits der Point-and-Click-Anwendungsentwicklung Festlegung des Attributs action müssen Sie die Syntax für Briefvorlagenfelder verwenden. Um beispielsweise die Schaltfläche so zu konfigurieren, dass die auf der Seite eingegebenen Daten gespeichert werden, setzen Sie das Attribut action auf {!save}. Jede Schaltfläche wird zweimal auf der Seite "MassUpdateStatus" angezeigt, einmal am oberen Rand des durch die Komponente <apex:pageBlock> zugewiesenen Bereichs und einmal am unteren Rand. Dies ist eine integrierte Vorsichtsmaßnahme der Komponente <apex:pageBlockButtons>, um sicherzustellen, dass die Schaltflächenfunktion für die Benutzer problemlos sichtbar ist, auch bei großen Seitenblöcken. <apex:pageBlockSection> Die Komponente <apex:pageBlockSection> kann innerhalb von <apex:pageBlock>-Komponenten verwendet werden, um einen Abschnitt auf einer Seite zu erstellen, der den Abschnitten in Seitenlayouts ähnelt. Auf dieser Seite wird die Komponente <apex:pageBlockSection> zweimal verwendet. Die erste Instanz der Komponente <apex:pageBlockSection> weist das Attribut title auf, das auf "Status Update" (Statusaktualisierung) gesetzt ist. Dieser Text wird oben im Abschnitt angezeigt. Außerdem weist sie das Attribut collapsible auf, das festlegt, ob die Benutzer den Abschnitt minimieren und erweitern können, indem sie auf einen Pfeil links neben dem Titel klicken. Die Benutzer sollen diesen Blockabschnitt der Seite nicht versehentlich ausblenden können. Daher ist das Attribut auf "false" gesetzt. Die zweite <apex:pageBlockSection>-Komponente erstellt einen Abschnitt, in dem die für die Aktualisierung ausgewählten Stellenbewerbungen in Tabellenform angezeigt werden. Das zugehörige title-Attribut ist auf "Selected Job Applications" (Ausgewählte Stellenbewerbungen) gesetzt. Außerdem ist das Attribut columns auf "1" gesetzt. Tipp: Anders als bei Seitenlayouts können Abschnitte auf Visualforce-Seiten mehr als zwei Spalten aufweisen. Die Stylesheets der Plattform sind jedoch für ein bis zwei Spalten optimiert, sodass diese Obergrenze besser nicht überschritten werden sollte. <apex:inputField> Die Komponente <apex:inputField> rendert das Feld Status aus dem Objekt "Job Application" (Stellenbewerbung) auf unserer Seite. Verwenden Sie <apex:inputField>-Komponenten, um HTML-Eingabeelemente für beliebige Salesforce-Felder zu erstellen. Sie müssen lediglich das Attribut value der Komponente auf den API-Namen des Salesforce-Objekts und -Felds setzen. <apex:pageBlockTable> Die Komponente <apex:pageBlockTable> rendert eine Tabelle mit Feldwerten aus mehreren Datensätzen eines bestimmten Objekts. Für unsere Funktion müssen wir zwei Attribute dieser Komponente festlegen: value und var. 416 Kapitel 11: Jenseits der Point-and-Click-Anwendungsentwicklung Das Attribut value informiert die Tabelle darüber, welche Gruppe von Datensätzen die anzuzeigenden Werte enthält . In dieser Instanz setzen wir das Attribut auf den Ausdruck {!selected}, damit die Tabelle Werte aus den ausgewählten Stellenbewerbungen anzeigen kann. Das zweite Attribut, var, erstellt einen Namen, den Komponenten innerhalb der Tabelle verwenden können, um auf einzelne Datensätze in der Datensatzgruppe zu verweisen, ohne jeden Datensatz tatsächlich anhand des Namens zu referenzieren. <apex:column> Die <apex:column>-Komponenten innerhalb von <apex:pageBlockTable> legen die Spalten der Tabelle fest sowie die Bewerbungsfelder, die in den einzelnen Spalten angezeigt werden. Für drei der vier <apex:column>-Komponenten brauchen wir lediglich das Attribut value auf einen Ausdruck zu setzen, der das Feld mithilfe des Werts des Attributs var der Komponente <apex:pageBlockTable> referenziert, gefolgt vom API-Namen des Felds. Beispielsweise werden mit dem folgenden Ausdruck die Werte des Felds Job Application Number (Stellenbewerbungsnummer) angezeigt. {!application.name} Für das Feld Candidate Name (Bewerbername) dagegen ist ein wenig mehr Arbeit erforderlich, da es sich bei dem Feld im Grunde um eine Kombination der Felder First Name (Vorname) und Last Name (Nachname) aus dem Objekt "Candidate" (Bewerber) handelt. Um diese Felder zu kombinieren, verwenden wir eine <apex:outputText>-Komponente in einer <apex:column>-Komponente und setzen das zugehörige Attribut value auf einen Ausdruck, der die Felder First Name (Vorname) und Last Name (Nachname) aus dem Objekt "Candidate" (Bewerber) kombiniert. <apex:column headerValue="Candidate Name"> <apex:outputText value="{!application. candidate__r.First_Name__c & ' ' & application.candidate__r.Last_Name__c}"/> </apex:column> Wenn Sie Spaltenfelder auf diese Weise generieren, wird das Attribut value (Wert) der Komponente <apex:column> nicht festgelegt, sodass die Tabelle nicht weiß, was als Spaltenüberschrift verwendet werden soll. Korrigieren Sie dies, indem Sie das Attribut headerValue für diese <apex:column>-Komponente festlegen. Beyond the Basics Wussten Sie, dass Sie einen Chatter-Feed zu einer Visualforce-Seite hinzufügen können? 417 Kapitel 11: Jenseits der Point-and-Click-Anwendungsentwicklung Angenommen, Sie möchten den Chatter-Feed für eine Stelle zur zugehörigen Detailseite hinzufügen. Sie können einfach die Standardkomponente <chatter:feed> verwenden: <apex:page standardController="Position__c"> <chatter:feed entityId="{$!Position__c.id}"> <apex:detail /> </apex:page> Weitere Informationen finden Sie im Visualforce Developer's Guide unter wiki.developerforce.com/index.php/Documentation#Reference_Guides. Probieren Sie es aus: Erstellen von benutzerdefinierten Listenschaltflächen Nun, da unsere Visualforce-Seite "Mass Update Status" (Status-Massenaktualisierung) fertig ist, können wir die Schaltfläche erstellen, auf die die Benutzer klicken, um auf die Seite zuzugreifen. Mit der Plattform können wir zwei Typen von Schaltflächen erstellen: Schaltflächen auf der Detailseite Schaltflächen, die auf Detailseiten im Schaltflächenabschnitt des Seitenlayouts angezeigt werden. Listenschaltflächen Schaltflächen, die in Listenansichten, Suchergebnislayouts oder Themenlisten angezeigt werden. Wir benötigen eine Schaltfläche, auf die die Benutzer in der Themenliste "Job Applications" (Stellenbewerbungen) in Stellendatensätzen klicken können. Daher erstellen wir eine Listenschaltfläche. 1. Klicken Sie unter "Setup" auf Erstellen > Objekte. 2. Klicken Sie auf Job Application (Stellenbewerbung). Sie fragen sich vielleicht, warum wir das Objekt Job Application (Stellenbewerbung) ausgewählt haben und nicht das Objekt Position (Stelle), da die Schaltfläche doch in Stellendatensätzen angezeigt wird. Der Grund hierfür ist, dass Listenschaltflächen auf dem Objekt erstellt werden, das aufgelistet wird. 3. Klicken Sie in der Themenliste "Benutzerdefinierte Schaltflächen und Links" auf Neue Schaltfläche/neuer Link. 418 Kapitel 11: Jenseits der Point-and-Click-Anwendungsentwicklung Abbildung147: Bearbeitungsseite für benutzerdefinierte Schaltflächen Die Bearbeitungsseite für benutzerdefinierte Schaltflächen sollte Ihnen bekannt vorkommen, da sie große Ähnlichkeit mit dem Formeleditor aufweist, den wir vor einiger Zeit gesehen haben. 4. Geben Sie im Textfeld Bezeichnung den Wert Update Status (Status aktualisieren) ein. 5. Akzeptieren Sie im Textfeld Name den Standardwert Update_Status. 6. Geben Sie im Feld Beschreibung den Text Updates the Status field on multiple job applications "Aktualisiert das Statusfeld bei mehreren Stellenbewerbungen" ein. Nun können wir angeben, ob wir einen Link für die Detailseite, eine Schaltfläche für die Detailseite oder eine Listenschaltfläche erstellen möchten. Wir haben uns bereits entschieden, eine Listenschaltfläche zu erstellen. Behalten Sie die anderen Optionen jedoch für zukünftige Anwendungen im Hinterkopf. 7. Wählen Sie Listenschaltfläche als Anzeigetyp aus. Haben Sie bei der Auswahl der Option Listenschaltfläche das Kontrollkästchen Kontrollkästchen anzeigen (für Auswahl mehrerer Datensätze) bemerkt, das unterhalb angezeigt wurde? Wenn diese Option aktiviert bleibt, zeigt die Plattform Kontrollkästchen neben den Datensätzen in der Themenliste an. 8. Lassen Sie das Kontrollkästchen Kontrollkästchen anzeigen (für Auswahl mehrerer Datensätze) aktiviert. Als Nächstes können Sie in der Auswahlliste Verhalten auswählen, was geschieht, wenn ein Benutzer auf die Schaltfläche klickt. Wir wissen, dass die Schaltfläche die Seite "Mass Update Status" (Status-Massenaktualisierung) öffnen soll, wir können jedoch angeben, ob die Seite in einem neuen Fenster oder im bestehenden Fenster geöffnet werden soll und ob sie eine Randleiste und eine Kopfzeile enthalten soll oder nicht. Sie können die Schaltfläche sogar bei 419 Kapitel 11: Jenseits der Point-and-Click-Anwendungsentwicklung Bedarf für die Ausführung von JavaScript konfigurieren. Für unsere Anwendung ist es am sinnvollsten, die Schaltfläche so zu konfigurieren, dass die Seite für die Massenaktualisierung im bestehenden Fenster geöffnet wird, und auch die Randleiste und die Kopfzeile dort zu belassen. 9. Wählen Sie in der Auswahlliste Verhalten die Option In vorhandenem Fenster mit Randleiste öffnen aus. Nun müssen wir die Inhalte angeben, die angezeigt werden sollen. Dazu müssen wir zunächst den anzuzeigenden Inhaltstyp in der Auswahlliste Inhaltsquelle angeben. 10. Wählen Sie in der Auswahlliste Inhaltsquelle die Option Visualforce-Seite aus. Wenn Sie die Option Visualforce-Seite auswählen, wird im unteren Abschnitt der Bearbeitungsseite für die benutzerdefinierte Listenschaltfläche die Auswahlliste Inhalt angezeigt. Die Auswahlliste enthält die Visualforce-Seiten in Ihrer Organisation, bei denen ein Standardsteuerfeld für das Objekt festgelegt ist, für das Sie die Schaltfläche erstellen. 11. Wählen Sie in der Dropdownliste Inhalt die Option MassUpdateStatus[MassUpdateStatus] aus. 12. Klicken Sie auf Speichern. Nach dem Klicken auf Speichern werden Sie daran erinnert, dass die Benutzer erst dann auf die Schaltfläche zugreifen können, wenn sie zu einem Seitenlayout hinzugefügt wurde. Dies liegt daran, dass die Erstellung von benutzerdefinierten Schaltflächen dem Hinzufügen eines benutzerdefinierten Felds zu einem Objekt ähnelt: Selbst wenn es in der Datenbank definiert ist, ist es für niemanden sichtbar, solange Sie es nicht explizit zu einem Seitenlayout hinzufügen. Probieren Sie es aus: Hinzufügen einer benutzerdefinierter Listenschaltfläche zu einem Seitenlayout Stellen wir unsere Funktion "Mass Update Status" (Status-Massenaktualisierung) fertig, indem wir die Listenschaltfläche "Update Status" (Status aktualisieren) zu unseren Layouts für die Stellenseite hinzufügen. 1. Klicken Sie unter "Setup" auf Erstellen > Objekte. 2. Klicken Sie auf Position (Stelle). 3. Klicken Sie in der Themenliste "Seitenlayouts" neben dem Seitenlayout, das Sie als Erstes bearbeiten möchten, auf Bearbeiten. 420 Kapitel 11: Jenseits der Point-and-Click-Anwendungsentwicklung 4. Klicken Sie in der Themenliste "Job Application" (Stellenbewerbung) auf das Schraubenschlüsselsymbol ( ), um die zugehörigen Eigenschaften zu bearbeiten. 5. Klicken Sie unten im Fenster "Themenlisteneigenschaften" auf die Leiste Schaltflächen, um den Bereich "Schaltflächen" zu erweitern. Abbildung148: Bearbeitungsseite für benutzerdefinierte Schaltflächen Hier können wir angeben, welche Standardschaltflächen und benutzerdefinierten Schaltflächen in der Themenliste angezeigt werden sollen. Die Schaltfläche "Update Status" (Status aktualisieren), die wir soeben erstellt haben, sollte in der Liste "Verfügbare Schaltflächen" angezeigt werden. 6. Wählen Sie die Schaltfläche "Update Status" (Status aktualisieren) aus und klicken Sie auf Hinzufügen, um sie in die Liste "Selected Buttons" (Ausgewählte Schaltflächen) zu verschieben. 7. Klicken Sie auf OK, um das Fenster mit den Themenlisteneigenschaften zu schließen. 8. Klicken Sie auf Speichern. Wiederholen Sie das oben stehende Verfahren für das andere Layout der Stellenseite. Anmerkung: Diese Visualforce-Seite soll nicht für mobile Anwendungen in Salesforce aktiviert werden. Da in den Themenlisten in Salesforce1 keine Schaltflächen angezeigt werden, können unsere Benutzer die Seite "Mass Update Status" (Status-Massenaktualisierung) nicht über ein mobiles Gerät ausführen. 421 Kapitel 11: Jenseits der Point-and-Click-Anwendungsentwicklung Wenn dies geschehen ist, kann die Funktion "Mass Update Status" (Status-Massenaktualisierung) getestet werden. Probieren Sie es aus: Testen der Funktion "Mass Update Status" (Status-Massenaktualisierung) Um die Funktion "Mass Update Status" (Status-Massenaktualisierung) zu testen, navigieren Sie zu einem Stellendatensatz, auf den sich mehrere Personen beworben haben, und blättern Sie nach unten zur Themenliste "Job Applications" (Stellenbewerbungen). Wie Sie sehen, ist die Schaltfläche Update Status (Status aktualisieren) vorhanden und neben den Stellenbewerbungsnummern werden Kontrollkästchen angezeigt, genau wie wir es geplant hatten. Wählen Sie nun einige Stellenbewerbungen aus und klicken Sie auf die Schaltfläche Update Status (Status aktualisieren). Die Visualforce-Seite "Mass Update Status" (Status-Massenaktualisierung) wird angezeigt. Wie Sie sehen, werden in der unteren Hälfte der Seite die Stellenbewerbungen angezeigt, die wir auf der vorangegangenen Seite ausgewählt haben. Abbildung149: Seite "Mass Update Status" (Status-Massenaktualisierung) mit Anzeige ausgewählter Bewerbungen Wählen Sie in der Auswahlliste Status den neuen Status für die ausgewählten Datensätze und klicken Sie auf Speichern. Salesforce aktualisiert alle ausgewählten Datensätze mit dem neuen Wert. Die Funktion arbeitet einwandfrei. 422 Kapitel 12 Weitere Informationen Themen: • • • • • Developer Force Optionen für Hilfe und Schulungen Multimedia AppExchange-Partnerprogramm Was halten Sie davon? In diesem Buch wurden einige der nativen Technologien eingeführt, die zur Force.com-Plattform gehören. Wir haben eine voll funktionsfähige Personalbeschaffungsanwendung erstellt und wir haben Visualforce und die SOAP-API eingeführt, um Ihnen zu zeigen, wie Sie damit zusammengesetzte Anwendungen erstellen können. Aber in einem einzigen Buch kann natürlich nicht alles behandelt werden. Wir haben viele weitere leistungsstarke Tools und Optionen übersprungen und nicht erörtert, wie Sie Ihre eigenen Anwendungen auf AppExchange für andere freigeben können. In der Tat wären wir überrascht, wenn Sie keine weiteren Fragen dazu hätten, wie Sie all die Funktionen nutzen können, die die Plattform zu bieten hat. Glücklicherweise gibt es einige Möglichkeiten, wie Sie sich eingehender über die Plattform informieren können. 423 Kapitel 12: Weitere Informationen Developer Force Developer Force ist das kostenlose Entwicklerprogramm von salesforce.com für die Force.com-Plattform. Die Developer Force-Website ist eine Entwickler-Community, in der Sie sich informieren, auf wichtige Ressourcen zugreifen und vielfältige Themen mit anderen Entwicklern in der Community diskutieren können, die mit Force.com, Database.com, Heroku und anderen ähnlichen salesforce.com-Plattformen zu tun haben. Zu den Themen aus dem Bereich der Anwendungsentwicklung gehören Apex, Visualforce, Integration-APIs, Datenbankthemen, Paketerstellung und Verteilung von Anwendungen und vieles mehr. Es gibt zahlreiche Möglichkeiten, wie Sie Developer Force nutzen und selbst Beiträge dazu leisten können. Hier einige Beispiele: • • • • • • • • Technische Artikel zu Entwicklungsthemen lesen und selbst beitragen. Beispielcode herunterladen und selbst beitragen. Unsere Blogs lesen, unsere RSS-Feeds abonnieren oder selbst bloggen. In den Developer Force-Diskussionsforen lesen und selbst Beiträge erstellen. Den monatlichen Force.com-E-Mail-Newsletter mit Neuigkeiten aus dem Entwicklungsbereich lesen. Sich für Veranstaltungen in unserem Veranstaltungskalender anmelden oder archivierte Multimedia-Veranstaltungen ansehen und -hören. An speziellen Programmen teilnehmen, wie beispielsweise Entwicklervorschauen, um sich einen Einblick in die kommenden Neuerungen zu gewinnen. Technische Webinare ansehen, mit denen Sie sich schnell in neue Funktionen einarbeiten können. Optionen für Hilfe und Schulungen Neben der Developer Force-Website bietet die Plattform selbst zahlreiche Optionen für Hilfe und Schulungen: • • 424 Antworten auf Ihre Fragen: Klicken Sie oben auf einer beliebigen Seite auf Hilfe. Geben Sie Ihre Stichwörter in das Suchfeld ein und drücken Sie die Eingabetaste. Die Suche liefert Online-Hilfethemen, Lösungen aus der Knowledge Base und empfohlene Schulungen, die mit den von Ihnen eingegebenen Stichwörtern übereinstimmen. Online-Schulungen: Klicken Sie im Fenster "Hilfe & Schulung" auf die Registerkarte "Schulung", wählen Sie Ihre Rolle und Ihren geografischen Standort aus und klicken Sie auf Schulungen anzeigen!, um kostenlose Online-Schulungen zu finden. Ihnen stehen Kapitel 12: Weitere Informationen • • mehr als fünfzehn Online-Schulungskurse zur Verfügung, die Sie rund um die Uhr abrufen können! Präsenzschulungen: Eine Reihe von Beispielen in diesem Buch wurde von Salesforce.com Training & Certification bereitgestellt und ist den weltweit verfügbaren von Experten geleiteten Schulungskursen entnommen. Die Schulungskurse von Salesforce.com Training & Certification bieten eine Gelegenheit, praktische Erfahrungen mit der Force.com-Plattform und den Salesforce-Anwendungen zu sammeln, und bereiten Sie auf die Salesforce-Zertifizierung vor. Wenn Sie weitere Informationen wünschen oder sich für einen Kurs einschreiben möchten, rufen Sie die Seite www.salesforce.com/training auf. Herunterladen von Tipps und Leitfäden zu bewährten Methoden: Wählen Sie die Registerkarte "Hilfe" im Fenster "Hilfe & Schulung" und klicken Sie in der Taskleiste auf Tipps, um Tipps, Implementierungsleitfäden und bewährte Methoden für bestimmte Funktionen anzuzeigen bzw. herunterzuladen. Multimedia Dank der harten Arbeit unserer Kollegen in der Salesforce.com-Community und auf den Force.com-Websites steht eine beträchtliche Anzahl an Podcasts und Videos zur Verfügung. Unsere Podcasts und Videos halten die Force.com-Plattform-Community zusammen, indem sie kostenlosen Zugang zu einer Vielzahl an bewährten Vorgehensweisen, Fallstudien und produkt- und plattformbezogenen digitalen Audio-Inhalten bieten. Sie finden Podcasts auf unserem iTunes-Kanal. Suchen Sie dazu im iTunes Music Store nach "salesforce". Unsere Videos finden Sie unter http://developer.force.com/content/type/Tech+Talk auf der Developer Force-Website. Der Zugang zur Force.com-Plattform und zu CRM-bezogenen Interviews mit Koryphäen, Präsentationen von Vordenkern sowie zu bewährten Vorgehensweisen ist nur einen Mausklick entfernt. Viel Spaß beim Zuhören und Zusehen! AppExchange-Partnerprogramm Dank der zunehmenden Verbreitung von The Business WebTM können Unternehmen ihre Services und Anwendungen anderen Unternehmen über das Internet ebenso problemlos zur Verfügung stellen wie Einzelhändler und Auktionshäuser mit Online-Interessenten in Verbindung treten können. Als AppExchange-Partner sind bereits über 150 Unternehmen an diesem neuen Kapitel im EDV-Bereich beteiligt und stellen ihre Angebote über AppExchange 425 Kapitel 12: Weitere Informationen in The Business Web zur Verfügung. Dank des AppExchange-Partnerprogramms können sich sowohl junge als auch etablierte Unternehmen dieser stetig größer werdenden Community von On-Demand-Anbietern ganz problemlos anschließen. Besuchen Sie die Website des Partnerprogramms unter www.salesforce.com/partners/ und nehmen Sie noch heute am Force.com AppExchange-Partnerprogramm teil! Was halten Sie davon? Nun, damit sind wir am Ende angelangt. Hat Ihnen die Lektüre gefallen? Hat sie Sie dazu angeregt, Ihre eigenen On-Demand-Anwendungen zu erstellen und sich aktiv am Cloud Computing zu beteiligen? Wir hoffen das sehr. Wir würden Kommentare von Ihrer Seite zu schätzen wissen. Mehr noch: Wir hoffen fest auf Ihr Feedback und Ihre Ideen. Rufen Sie die Developer Force-Diskussionsforen unter community.salesforce.com/sforce?category.id=developers auf oder senden Sie uns eine E-Mail unter [email protected] und teilen Sie uns mit, was Sie denken. 426 Glossar A|B|C|D|E|F|G|H|I|J|K|L|M|N|P|O|Q|R|S|T|U|V|W|X |Y|Z A Aktivität (Kalenderereignisse/Aufgaben) Geplante Aufgabe oder Ereignis, optional in Beziehung zu einem anderen Typ von Datensatz stehend, z. B. einem Account, einem Kontakt, einem Lead, einer Opportunity oder einem Kundenvorgang. Administrator (Systemadministrator) Eine oder mehrere Personen in Ihrem Unternehmen, die die Anwendung konfigurieren und an die jeweiligen Bedürfnisse anpassen können. Benutzer, denen das Profil eines Systemadministrators zugewiesen wurde, verfügen über Administratorberechtigungen. Erweiterte Funktionen Eine Formelfunktion für die Verwendung bei benutzerdefinierten Schaltflächen, Links und S-Controls. Beispielsweise gibt die erweiterte Funktion INCLUDE den Inhalt aus einem S-Control-Auszug zurück. Analytischer Snapshot Mit einem analytischen Snapshot können Sie Berichte zu Verlaufsdaten erstellen. Autorisierte Benutzer können Ergebnisse aus tabellarischen Berichten bzw. Zusammenfassungsberichten in Feldern in einem benutzerdefinierten Objekt speichern und anschließend diese Felder den entsprechenden Feldern in einem Zielobjekt zuordnen. Anschließend können sie planen, wann der Bericht ausgeführt werden soll, um die Felder des benutzerdefinierten Objekts mit den Daten des Berichts zu laden. 427 Kapitel 1: Glossar Aktueller Benutzer des analytischen Snapshots Der Benutzer, dessen Sicherheitseinstellungen die Datenzugriffsebene des Quellberichts festlegen. Dadurch werden die Sicherheitseinstellungen umgangen. Alle Benutzer, die die Ergebnisse des Quellberichts im Zielobjekt anzeigen können, erhalten auf diese Weise u. U. auch Zugriff auf Daten, die ihnen normalerweise nicht zugänglich sind. Quellbericht für analytischen Snapshot Der benutzerdefinierte Bericht, der geplant ausgeführt wird und Daten als Datensätze in ein benutzerdefiniertes Objekt lädt. Zielbericht für analytischen Snapshot Das benutzerdefinierte Objekt, das Ergebnisse aus dem Quellbericht in Form von Datensätzen übernimmt. Apex Apex ist eine streng typisierte, objektorientierte Programmiersprache, die Entwicklern die Ausführung von Anweisungen zur Fluss- und Transaktionssteuerung auf dem Force.com-Plattformserver in Verbindung mit Aufrufen der Force.com-API gestattet. Unter Verwendung einer Syntax, die äußerlich Java ähnelt und wie in einer Datenbank gespeicherte Prozeduren arbeitet, ermöglicht Apex Entwicklern, Geschäftslogik in die meisten Systemereignisse zu integrieren. Dazu gehören Klicks auf Schaltflächen, die Aktualisierung verwandter Datensätze und Visualforce-Seiten. Apex-Code kann durch Webservice-Anforderungen und durch Auslöser für Objekte initiiert werden. Apex-Steuerfeld Siehe: Steuerfeld, Visualforce. Apex-Seite Siehe: Visualforce-Seite. Anwendung Im Englischen auch kurz als "App" (für "Application") bezeichnet. Eine Sammlung von Komponenten, etwa Registerkarten, Berichte, Dashboards und Visualforce-Seiten, für eine bestimmte Geschäftsanforderung. Salesforce stellt Standardanwendungen zur Verfügung, beispielsweise eine Vertriebsanwendung und die Callcenter-Anwendung. Sie können die Standardanwendungen an Ihre Arbeitsweise anpassen. Darüber hinaus können Sie eine Anwendung zu einem Paket zusammenstellen und zusammen mit zugehörigen Komponenten wie benutzerdefinierten Feldern, benutzerdefinierten Registerkarten und benutzerdefinierten Objekten in AppExchange hochladen. Anschließend können Sie die Anwendung für andere Salesforce-Benutzer über AppExchange verfügbar machen. Anwendungsmenü Siehe: Force.com-Anwendungsmenü. 428 Kapitel 1: Glossar AppExchange AppExchange ist einen Schnittstelle von salesforce.com zum Freigeben, mit der Sie Anwendungen und Services für die Force.com-Plattform durchsuchen und freigeben können. Anwendungsprogrammierschnittstelle (Application Programming Interface, API) Eine Schnittstelle, die von einem Computersystem, einer Bibliothek oder einer Anwendung bereitgestellt wird, damit andere Computerprogramme Services darüber anfordern und Daten austauschen können. Genehmigungsaktion Siehe: Workflow- und Genehmigungsaktionen. Genehmigungsprozess Als Genehmigungsprozess wird ein automatisierter Prozess bezeichnet, der in Ihrem Unternehmen zur Genehmigung von Datensätzen in Salesforce eingesetzt werden kann. In einem Genehmigungsprozess werden die Schritte angegeben, die zur Genehmigung eines Datensatzes erforderlich sind. Zudem geht hieraus hervor, wer ihn bei den einzelnen Schritten genehmigen muss. Ein Schritt kann für alle Datensätze im Prozess Gültigkeit haben oder nur für Datensätze, die bestimmte, vom Administrator definierte Kriterien erfüllen. Ein Genehmigungsprozess gibt zudem Aufschluss über die Aktionen, die durchgeführt werden müssen, wenn ein Datensatz genehmigt, abgelehnt, zurückgerufen oder erstmals zur Genehmigung eingereicht wird. Automatisch nummerieren Ein benutzerdefiniertes Feld, bei dem jedem Datensatz automatisch eine eindeutige laufende Nummer hinzugefügt wird. Diese Felder sind schreibgeschützt. B Boole'sche Operatoren Sie können Boole'sche Operatoren in Berichtsfiltern verwenden, um die logische Beziehung zwischen zwei Werten anzugeben. So führt der Operator AND zwischen zwei Werten beispielsweise zu Suchergebnissen, in denen beide Werte enthalten sind. Der Operator OR zwischen zwei Werten führt zu Suchergebnissen, in denen mindestens einer der Werte enthalten ist. C Klasse, Apex Eine Vorlage oder ein Entwurf zum Erstellen von Apex-Objekten. Klassen bestehen aus anderen Klassen, benutzerdefinierten Methoden, Variablen, Ausnahmetypen und statischem Initialisierungscode. In den meisten Fällen sind Apex-Klassen ihrem jeweiligen Gegenstück in Java nachempfunden. 429 Kapitel 1: Glossar Duplizieren "Duplizieren" ist der Name einer Schaltfläche oder eines Links, mit der bzw. mit dem Sie neue Elemente durch Kopieren der Informationen aus einem vorhandenen Element (z. B. eines Kontakts oder einer Opportunity) erstellen können. Cloud Computing Ein Modell für die internetbasierte Software-Entwicklung und -Verteilung. Die Technologie-Infrastruktur für einen Service, einschließlich Daten, wird im Internet gehostet. Dadurch wird den Kunden das Entwickeln und Verwenden von Services mit Browsern oder anderen Thin Clients ermöglicht, anstatt in Hardware, Software oder Wartungen zu investieren. Kombinationsdiagramm Kombinationsdiagramme stellen mehrere Datensets in einem einzigen Diagramm dar. Jedes Datenset beruht auf einem anderen Feld, sodass die Werte leicht vergleichbar sind. Außerdem können Sie bestimmte Diagrammtypen kombinieren, um Daten in einem einzigen Diagramm auf verschiedene Weise darzustellen. Komponente, Visualforce Ein Element, das mit einem Satz Tags zu einer Visualforce-Seite hinzugefügt werden kann, beispielsweise <apex:detail>. Visualforce beinhaltet eine Reihe von Standardkomponenten, Sie können jedoch auch Ihre eigenen benutzerdefinierten Komponenten erstellen. Komponentenreferenz, Visualforce Eine Beschreibung der standardmäßigen und benutzerdefinierten Visualforce-Komponenten, die in Ihrer Organisation zur Verfügung stehen. Sie können die Komponentenbibliothek über die Entwicklungsfußzeile aufrufen, die auf allen Visualforce-Seiten zu finden ist, oder aber über den Visualforce Developer's Guide. Steuerfeld, Visualforce Eine Apex-Klasse, die eine Visualforce-Seite mit der Daten- und Geschäftslogik bereitstellt, die sie ausführen muss. Visualforce-Seiten können die Standardsteuerfelder verwenden, die standardmäßig für alle Standardobjekte und benutzerdefinierten Objekte bereitgestellt werden. Alternativ können benutzerdefinierte Steuerfelder verwendet werden. Steuerfelderweiterung Eine Steuerfelderweiterung ist eine Apex-Klasse, die die Funktionen von Standardsteuerfeldern bzw. benutzerdefinierten Standardsteuerfeldern erweitert. Steuerfeld Alle Standard- oder benutzerdefinierten Auswahllisten- oder Kontrollkästchenfelder, deren Werte die verfügbaren Werte in einem oder mehreren entsprechenden abhängigen Feldern steuern. 430 Kapitel 1: Glossar Benutzerdefinierte Anwendung Siehe: Anwendung. Benutzerdefiniertes Steuerfeld Ein benutzerdefiniertes Steuerfeld ist eine Apex-Klasse, die die gesamte Logik für eine Seite implementiert, ohne dass ein Standardsteuerfeld verwendet wird. Verwenden Sie benutzerdefinierte Steuerfelder, wenn Ihre Visualforce-Seite vollständig im Systemmodus ausgeführt werden soll, bei dem die Berechtigungen und Feldebenensicherheit des aktuellen Benutzers nicht erzwungen werden. Benutzerdefiniertes Feld Ein Feld, dass zusätzlich zu den Standardfeldern hinzugefügt werden kann, um Salesforce an die Anforderungen Ihrer Organisation anzupassen. Benutzerdefinierte Hilfe Benutzerdefinierter Text, den Administratoren erstellen können, um Benutzer mit Informationen auf dem Bildschirm zu Standardfeldern, benutzerdefinierten Feldern oder benutzerdefinierten Objekten zu unterstützen. Benutzerdefinierte Links Benutzerdefinierte Links sind URLs, die von den Administratoren festgelegt wurden, um Salesforce-Daten mit externen Websites und Back-Office-Systemen zu integrieren. Wurden früher als Weblinks bezeichnet. Benutzerdefiniertes Objekt Bei benutzerdefinierten Objekten handelt es sich um benutzerdefinierte Datensätze, in denen unternehmensspezifische Daten gespeichert werden. Typ des benutzerdefinierten Berichts Siehe: Berichtstyp. Benutzerdefinierte Einstellungen Benutzerdefinierte Einstellungen ähneln benutzerdefinierten Objekten und ermöglichen den Anwendungsentwicklern, benutzerdefinierte Datensets zu erstellen und benutzerdefinierte Daten für eine Organisation, ein Profil oder einen bestimmten Benutzer zu erstellen und zuzuordnen. Alle Daten zu benutzerdefinierten Einstellungen sind im Anwendungs-Cache verfügbar, was einen effizienten Zugriff ohne den Aufwand wiederholter Anfragen an die Datenbank ermöglicht. Diese Daten können dann von Formelfeldern, Validierungsregeln, Apex und der SOAP-API verwendet werden. Siehe auch: Benutzerdefinierte Hierarchieeinstellungen und Benutzerdefinierte Listeneinstellungen. Benutzerdefinierte Ansicht Eine Anzeigefunktion, mit der ein bestimmter Satz an Datensätzen für ein bestimmtes Objekt angezeigt wird. 431 Kapitel 1: Glossar D Dashboard In einem Dashboard werden Daten aus Quellberichten als visuelle Komponenten angezeigt. Bei diesen Komponenten kann es sich um Diagramme, Messdiagramme, Tabellen, Metriken oder Visualforce-Seiten handeln. Die Komponenten bieten eine Momentaufnahme wichtiger Kennzahlen und Leistungsindikatoren für Ihre Organisation. Jedes Dashboard kann bis zu 20 Komponenten enthalten. Datenbank Eine geordnete Sammlung von Informationen. Zu der Architektur, die der Force.com-Plattform zugrunde liegt, gehört auch eine Datenbank, in der Ihre Daten gespeichert sind. Datenbanktabelle Eine Liste von Informationen – dargestellt als Zeilen und Spalten – zu der Person, dem Element bzw. dem Konzept, die bzw. das sie verfolgen möchten. Siehe auch: Objekt. Data Loader Ein Tool der Force.com-Plattform, das zum Importieren und Exportieren von Daten aus Ihrer Salesforce-Organisation verwendet wird. Dezimalstellen Parameter für benutzerdefinierte Zahlen-, Währungs- und Prozentfelder, der die Gesamtzahl der Ziffern festlegt, die Sie rechts neben einem Dezimalzeichen eingeben können, z. B. "4,98", wenn Sie "2" angeben. Beachten Sie, dass die eingegebenen Dezimalzahlen ggf. gerundet werden. Wenn Sie z. B. "4,986" in einem Feld mit dem Wert "2" für Dezimalstellen eingeben, wird die Zahl auf "4,99" aufgerundet. Salesforce verwendet das kaufmännische Runden. Werte mit einer 5 an zweiter Stelle nach dem Komma werden immer aufgerundet. Der Wert 1,45 wird beispielsweise auf 1,5 gerundet. Der Wert -1,45 wird auf -1,5 gerundet. Delegierte Verwaltung Ein Sicherheitsmodell, bei dem eine Gruppe von Benutzern, die keine Administratoren sind, Administratoraufgaben wahrnimmt. Delegierte Authentifizierung Ein Sicherheitsprozess, bei dem die Benutzer der Force.com-Plattform über eine externe Stelle authentifiziert werden. Abhängigkeiten Eine Beziehung, bei der das Vorhandensein eines Objekts vom Vorhandensein eines anderen Objekts abhängt. Es gibt eine Vielzahl verschiedener Abhängigkeiten, beispielsweise Pflichtfelder, abhängige Objekte (übergeordnet/untergeordnet), 432 Kapitel 1: Glossar Dateieinschluss (z. B. referenzierte Bilder) sowie Sortierabhängigkeiten (wenn ein Objekt vor einem anderen Objekt bereitgestellt werden muss). Abhängiges Feld Jedes benutzerdefinierte Auswahllisten- oder Mehrfach-Auswahllistenfeld, das verfügbare Werte basierend auf dem in seinem entsprechenden Steuerfeld ausgewählten Wert anzeigt. Detail Eine Seite, auf der Informationen zu einem einzelnen Objektdatensatz angezeigt werden. Die Detailseite eines Datensatzes ermöglicht das Anzeigen der Informationen, während die Bearbeitungsseite deren Bearbeitung erlaubt. Dieser Begriff wird in Berichten verwendet, um zwischen zusammenfassenden Informationen und der Einbeziehung aller Spaltendaten für alle Informationen in einem Bericht zu unterscheiden. Mit der Schaltfläche Details anzeigen/Details ausblenden können Sie die Anzeige von Detailinformationen in einem Bericht umschalten. Developer Edition Eine kostenlose, voll funktionsfähige Salesforce-Organisation für Entwickler für Erweiterungs-, Integrations- und Entwicklungsarbeiten mit der Force.com-Plattform. Developer Edition-Accounts sind unter developer.force.com verfügbar. Entwicklungsumgebung Eine Salesforce-Organisation, in der Sie Konfigurationsänderungen vornehmen können, die sich nicht auf die Benutzer in der Produktionsumgebung auswirken. Es gibt zwei Arten von Entwicklungsumgebungen: Sandbox-Instanzen und Organisationen mit Developer Edition. Developer Force Die Developer Force-Website unter developer.force.com bietet eine vollständige Palette von Ressourcen für Plattformentwickler, darunter Beispielcode, Toolkits, eine Online-Entwickler-Community sowie die Möglichkeit, eingeschränkte Force.com-Plattformumgebungen zu erhalten. Dokumentbibliothek Ein Ort zum Speichern von Dokumenten, ohne diese mit Accounts, Kontakten, Opportunities oder anderen Datensätzen zu verknüpfen. E E-Mail-Benachrichtigung E-Mail-Benachrichtigungen sind Workflow- und Genehmigungsaktionen, die mithilfe einer E-Mail-Vorlage und einer Workflowregel oder eines Genehmigungsprozesses 433 Kapitel 1: Glossar generiert und an festgelegte Empfänger, entweder Salesforce- Benutzer oder andere Personen, gesendet werden. Unternehmensanwendung Eine Anwendung, die dazu gedacht ist, die Funktionstüchtigkeit einer Organisation insgesamt zu unterstützen, und nicht dazu, ein bestimmtes Problem zu lösen. Entity-Relationship-Diagramm (ERD) Ein Datenmodellierungstool, mit dem Sie Ihre Daten in Einheiten/Entitäten (bzw. Objekte, wie sie bei der Force.com-Plattform genannt werden) organisieren und die zwischen ihnen herrschenden Beziehungen definieren können. ERD-Diagramme für wichtige Salesforce-Objekte wurden im SOAP API Developer's Guide veröffentlicht. Ereignis Ein Ereignis ist eine Aktivität, dessen Ausführungszeit geplant ist. Beispiel: eine Besprechung oder ein geplanter Anruf. F Feld Ein Teil eines Objekts, der eine bestimmte Information enthält, beispielsweise einen Text oder einen Währungswert. Feldebenensicherheit Einstellungen, die angeben, ob Felder verborgen, sichtbar, schreibgeschützt oder von Benutzern bearbeitet werden können. Nur in der Enterprise, Unlimited, Performance und Developer Edition verfügbar. Feldabhängigkeit Ein Filter, mit dem Sie die Inhalte einer Auswahlliste auf der Grundlage des Werts eines anderen Felds ändern können. Feldaktualisierung Feldaktualisierungen sind Workflow- und Genehmigungsaktionen, die das zu aktualisierende Feld und den neuen Wert dafür angeben. Je nach Feldtyp können Sie auswählen, dass ein bestimmter Wert angewendet werden soll, einen leeren Wert festlegen oder einen Wert auf der Grundlage einer von Ihnen erstellten Formel berechnen. Filterbedingung/-kriterien Bedingung für bestimmte Felder, durch die Elemente in eine Listenansicht oder einen Bericht eingeschlossen werden, z. B. "Bundesland gleich Bayern". Ordner Ein Ordner ist ein Ort, an dem Sie Berichte, Dashboards, Dokumente bzw. E-Mail-Vorlagen speichern können. Ordner können öffentlich, ausgeblendet oder 434 Kapitel 1: Glossar freigegeben sein und sie können auf "Schreibschutz" oder "Lese-/Schreibzugriff" gesetzt sein. Sie legen anhand von Rollen, Berechtigungen, öffentlichen Gruppen und Lizenztypen fest, wer auf die Inhalte zugreifen darf. Sie können einen Ordner in der gesamten Organisation verfügbar machen oder als privat deklarieren, sodass nur dessen Inhaber darauf zugreifen kann. Force.com Die salesforce.com-Plattform zur Erstellung von Anwendungen in der Cloud. Force.com bietet eine Kombination aus leistungsstarker Benutzeroberfläche, Betriebssystem und Datenbank und ermöglicht Ihnen so, Anwendungen in der Cloud für Ihr gesamtes Unternehmen anzupassen und bereitzustellen. Force.com-Anwendungsmenü Ein Menü, über das Benutzer mit einem einzigen Mausklick zwischen anpassbaren Anwendungen ("Apps") hin- und herschalten können. Das Force.com-Anwendungsmenü wird oben auf jeder Seite der Benutzeroberfläche angezeigt. Force.com IDE Ein Eclipse-Plug-in, mit dem Entwickler Force.com-Anwendungen in der Eclipse-Entwicklungsumgebung verwalten, verfassen, debuggen und bereitstellen können. Web Services-API Eine Anwendungsprogrammierschnittstelle für Webservices, die Zugriff auf die Informationen Ihrer Salesforce-Organisation bereitstellt. Siehe auch: SOAP-API und Bulk API. Fremdschlüssel Ein Feld, dessen Wert mit dem Primärschlüssel einer anderen Tabelle übereinstimmt. Sie können sich einen Fremdschlüssel als Kopie des Primärschlüssels aus einer anderen Tabelle vorstellen. Zwischen zwei Tabellen wird eine Beziehung erstellt, indem die Werte des Fremdschlüssels in einer Tabelle mit den Werten des Primärschlüssels in einer anderen Tabelle abgeglichen werden. Formelfeld Eine benutzerdefinierte Feldart. Formelfelder berechnen ihre Werte basierend auf den Werten von Briefvorlagenfeldern, Ausdrücken oder anderen Werten automatisch. Funktion Integrierte Formeln, die Sie mit Eingabeparametern anpassen können. Die DATE-Funktion erstellt z. B. einen Datumsfeldtyp aus einem angegebenen Jahr, Monat und Tag. 435 Kapitel 1: Glossar G Globale Variable Ein spezielles Briefvorlagenfeld, mit dem Sie Daten in Ihrer Organisation referenzieren können. Ein Modifizierer für den Methodenzugriff für jede beliebige Methode, die außerhalb einer Anwendung referenziert werden muss, entweder in der SOAP-API oder durch anderen Apex-Code. Gruppe Eine Gruppe ist ein Satz Benutzer. Gruppen können einzelne Benutzer, andere Gruppen oder die Benutzer in einer Rolle umfassen. Gruppen können verwendet werden, um den Freigabezugriff auf Daten zu definieren oder um anzugeben, welche Daten bei der Verwendung von Connect für Outlook oder Connect für Lotus Notes synchronisiert werden sollen. Benutzer können ihre eigenen persönlichen Gruppen definieren. Administratoren können persönliche Gruppen erstellen, die alle Personen in der Organisation verwenden können. Group Edition Ein Produkt für kleinere Unternehmen und Arbeitsgruppen mit einer begrenzten Anzahl an Benutzern. H Benutzerdefinierte Hierarchieeinstellungen Eine Art von benutzerdefinierter Einstellung, bei der eine integrierte hierarchische Logik verwendet wird, mit der Sie Einstellungen für bestimmte Profile oder Benutzer "personalisieren" können. Die hierarchische Logik überprüft Organisation, Profil und Benutzereinstellungen für den aktuellen Benutzer und gibt den spezifischsten ("niedrigsten") Wert zurück. In der Hierarchie werden Einstellungen für eine Organisation durch Profileinstellungen überschrieben, die wiederum durch Benutzereinstellungen überschrieben werden. Registerkarte “Startseite” Auf der Startseite können Benutzer in der Randleiste Menüpunkte und Optionen auswählen, aktuelle Aufgaben und Aktivitäten anzeigen oder eine andere Registerkarte auswählen. Hover-Detail In Hover-Details wird ein interaktives Overlay mit detaillierten Informationen zu einem Datensatz angezeigt, wenn Benutzer in der Liste der zuletzt verwendeten Elemente in der Randleiste oder in einem Nachschlagefeld auf einer Datensatz-Detailseite mit dem Mauscursor auf einen Link zu diesem Datensatz zeigen. Auf diese Weise können Benutzer schnell Informationen zu einem Datensatz anzeigen, bevor sie auf Anzeigen für die 436 Kapitel 1: Glossar Detailseite des Datensatzes bzw. Bearbeiten für die Bearbeitungsseite klicken. Die in den Hover-Details angezeigten Felder werden durch das Mini-Seitenlayout des jeweiligen Datensatzes bestimmt. Die Felder, die in dokumentbezogenen Hover-Details angezeigt werden, können nicht angepasst werden. I ID Siehe: Salesforce-Datensatz-ID. Integrierte Entwicklungsumgebung (Integrated Development Environment, IDE) Eine Softwareanwendung, die Softwareentwicklern umfassende Möglichkeiten bietet, beispielsweise einen Quellcode-Editor, Test- und Debugging-Tools sowie Integration mit Quellcode-Steuersystemen. Sofortige Aktion Eine Workflowaktion, die umgehend ausgeführt wird, wenn die Bedingungen einer Workflowregel erfüllt sind. Importassistent Ein Tool für den Import von Daten in Ihre Salesforce-Organisation, das über das Setup aufgerufen werden kann. Instanz Der Cluster an Software und Hardware, der als einzelner logischer Server dargestellt wird, der als Host für die Daten einer Organisation fungiert und deren Anwendungen ausführt. Die Force.com-Plattform wird auf mehreren Instanzen ausgeführt, die Daten für die verschiedenen Einzelorganisationen werden jedoch jeweils stets auf einer einzelnen Instanz konsolidiert. J Verknüpfungsobjekt Ein benutzerdefiniertes Objekt mit zwei Master-Detail-Beziehungen. Mit einem benutzerdefinierten Verknüpfungsobjekt können Sie eine n:n-Beziehung zwischen zwei Objekten herstellen. Beispielsweise können Sie ein benutzerdefiniertes Objekt mit dem Namen "Problem" verwenden, das sich auf das Standardobjekt eines Kundenvorgangs bezieht. Dabei könnte sich ein Problem auf mehrere Kundenvorgänge beziehen und ein Kundenvorgang auch auf mehrere Probleme. K Kein Glossareintrag unter diesem Buchstaben. 437 Kapitel 1: Glossar L Layout Siehe: Seitenlayout. Länge Parameter für benutzerdefinierte Textfelder, der die Höchstzahl der Zeichen (bis zu 255) angibt, die ein Benutzer in das jeweilige Feld eingeben kann. Parameter für Zahlen-, Währungs- und Prozentfelder, der die Gesamtzahl der Ziffern festlegt, die Sie links neben einem Dezimalzeichen eingeben können, z. B. "123,98", wenn Sie "3" angeben. Briefkopf Bestimmt die grundlegenden Attribute einer HTML-E-Mail-Vorlage. Benutzer können Briefköpfe mit Attributen wie Hintergrundfarbe, Logo, Schriftgröße und Schriftfarbe erstellen. Listenansicht Eine Listenanzeige von Elementen (z. B. Accounts oder Kontakte), die auf bestimmten Kriterien beruht. Salesforce bietet einige vordefinierte Ansichten. In der Agentenkonsole ist die Listenansicht der obere Rahmen, der eine Listenansicht von Datensätzen enthält, die auf bestimmten Kriterien basiert. Die Listenansichten, die Sie zur Anzeige in der Konsole auswählen können, sind dieselben Listenansichten, die auch auf den Registerkarten anderer Objekte definiert sind. Das Erstellen einer Listenansicht innerhalb der Konsole ist nicht möglich. Nachschlagefenster Bei einigen Feldern verfügbares Popup-Dialogfeld, mit dem Sie nach neuen Elementen wie Kontakten, Accounts oder Benutzern suchen können. Nachschlagefeld Ein Typ Feld, das einen linkfähigen Wert zu einem anderen Datensatz enthält. Nachschlagefelder können in Seitenlayouts angezeigt werden, bei denen das Objekt eine Nachschlage- oder Master-Detail-Beziehung zu einem anderen Objekt aufweist. Kundenvorgänge weisen z. B. eine Nachschlagebeziehung mit Vermögenswerten auf, die es Benutzern ermöglicht, von der Kundenvorgangsbearbeitungsseite einen Vermögenswert mit einem Nachschlagedialogfeld auszuwählen und in der Detailseite des Kundenvorgangs auf den Namen eines Vermögenswerts zu klicken. Nachschlagebeziehung Eine Beziehung zwischen zwei Datensätzen, sodass Sie Datensätze einander zuordnen können. Beispiel: Kundenvorgänge haben eine Suchbeziehung mit Vermögenswerten, über die Sie einen bestimmten Vermögenswert mit einem Kundenvorgang verknüpfen können. Auf der einen Seite der Beziehung ermöglicht es ein Nachschlagefeld Benutzern, auf ein Nachschlagesymbol zu klicken und einen weiteren Datensatz aus einem 438 Kapitel 1: Glossar Popup-Fenster auszuwählen. In dem verknüpften Datensatz kann dann eine Themenliste mit allen Datensätzen angezeigt werden, die mit dem Datensatz verbunden sind. Wenn ein Nachschlagefeld einen Datensatz referenziert, der gelöscht wurde, löscht Salesforce standardmäßig das Nachschlagefeld. Alternativ können Sie verhindern, dass Datensätze gelöscht werden, wenn sie sich in einer Nachschlagebeziehung befinden. M Manuelle Freigabe Regeln für den Zugriff auf der Datensatzebene, mit denen die Datensatzinhaber Benutzern, die keinen anderweitigen Zugriff auf den Datensatz haben, Lese- und Bearbeitungsberechtigungen erteilen können. n:n-Beziehung Eine Beziehung, in der jede Seite der Beziehung zahlreiche untergeordnete Elemente auf der anderen Seite aufweisen kann. n:n-Beziehungen werden über Verknüpfungsobjekte implementiert. Masterauswahlliste Eine vollständige Liste der Auswahllistenwerte, die für einen Datensatztyp oder Geschäftsprozess verfügbar sind. Matrixbericht Matrixberichte ähneln Übersichtsberichten, ermöglichen jedoch das Gruppieren und Zusammenfassen von Daten nach Zeilen und Spalten. Sie können als Quellbericht für Dashboard-Komponenten verwendet werden. Verwenden Sie diesen Typ zum Vergleich verwandter Summen, insbesondere wenn Sie große Datenmengen zusammenfassen möchten und Werte in mehreren unterschiedlichen Feldern miteinander vergleichen müssen. Dieser Typ eignet sich auch für Fälle, in denen Daten anhand von Datum und anhand von Produkt, Person oder Geografie betrachtet werden sollen. Metadaten Informationen zu Struktur, Erscheinungsbild und Funktionsumfang einer Organisation und ihrer Teile. Force.com verwendet XML zur Beschreibung von Metadaten. Mini-Seitenlayout Eine Untergruppe der Elemente im bestehenden Seitenlayout eines Datensatzes, die von Administratoren zur Anzeige in der Miniansicht der Agentenkonsole sowie in den Hover-Details ausgewählt wurden. Mini-Seitenlayouts übernehmen Datensatztyp- und Profilverknüpfungen, Themenlisten, Felder sowie Feldzugriffseinstellungen des Seitenlayouts. Mandantenfähigkeit Ein Anwendungsmodell, bei dem alle Benutzer und Anwendungen eine einzige, gemeinsame Infrastruktur und Codebasis gemeinsam verwenden. 439 Kapitel 1: Glossar N Notizen Verschiedene Informationen zu einem bestimmten Datensatz. O Objekt Mit einem Objekt können Informationen in der Salesforce-Organisation gespeichert werden. Das Objekt stellt die allgemeine Definition des zu speichernden Informationstyps dar. So können Sie beispielsweise mit dem Kundenvorgangsobjekt Informationen zu Kundenanfragen speichern. Für jedes Objekt verfügt die Organisation über mehrere Datensätze, in denen die Informationen zu bestimmten Instanzen des betreffenden Datentyps gespeichert werden. So könnte es beispielsweise einen Kundenvorgangsdatensatz geben, in dem die Informationen zur Schulungsanfrage von Michael Schmidt gespeichert werden, und einen anderen Kundenvorgangsdatensatz zur Speicherung der Informationen, die das Konfigurationsproblem von Marie Hansen betreffen. Objektspezifische Hilfe Benutzerdefinierter Hilfstext, der bei jedem benutzerdefinierten Feld bereitgestellt werden kann. Sie wird auf der Startseite (Übersicht) und den Detail- und Bearbeitungsseiten des benutzerdefinierten Objektdatensatzes sowie auf allen Listenansichten und Themenlisten angezeigt. Objektebenensicherheit Einstellungen, mit denen ein Administrator ganze Objekte vor Benutzern verbergen kann, sodass diese nicht wissen, dass Daten dieser Art vorliegen. Die Objektebenensicherheit wird mit Objektberechtigungen angegeben. 1:n-Beziehung Eine Beziehung, bei der ein Einzelobjekt mit vielen anderen Objekten in Verbindung steht. Beispielsweise kann ein Account einen oder mehrere zugehörige Kontakte aufweisen. Organisation Eine Bereitstellung von Salesforce mit einer definierten Menge lizenzierter Benutzer. Eine Organisation ist der virtuelle Speicherplatz, der einem einzelnen Kunden von salesforce.com zur Verfügung gestellt wird. Ihre Organisation enthält alle Ihre Daten und Anwendungen und ist von allen anderen Organisationen getrennt. Unternehmensweite Standardeinstellungen Einstellungen, mit denen Sie den Basiszugriff auf Daten angeben können, der für einen Benutzer in Ihrer Organisation gilt. Beispielsweise können Sie durch unternehmensweite Standardeinstellungen festlegen, dass alle Benutzer jeden beliebigen Datensatz eines 440 Kapitel 1: Glossar bestimmten Objekts sehen können, das über ihre Objektberechtigungen aktiviert wurde, dass sie jedoch eine gesonderte Genehmigung benötigen, um einen solchen Datensatz zu bearbeiten. Ausgehende Nachricht Eine ausgehende Nachricht ist eine Workflow-, Genehmigungs- bzw. Meilensteinaktion, die die von Ihnen angegebenen Informationen an den von Ihnen bestimmten Endpunkt, beispielsweise einen externen Service, sendet. Eine ausgehende Nachricht sendet die Daten in den angegebenen Feldern als SOAP-Nachricht an den Endpunkt.Ausgehende Nachrichten werden im Salesforce-Setup-Menü konfiguriert. Im Anschluss muss der externe Endpunkt konfiguriert werden. Mithilfe der SOAP-API können Sie einen Listener für die Nachrichten erstellen. Overlay Ein Overlay zeigt zusätzliche Informationen an, wenn mit dem Mauszeiger auf bestimmte Elemente der Benutzeroberfläche gezeigt wird. Je nach Overlay werden die Informationen ausgeblendet, wenn der Mauszeiger wegbewegt, außerhalb des Overlay geklickt oder auf eine Schaltfläche zum Schließen geklickt wird. Owner (Inhaber) Einzelner Benutzer, dem ein Datensatz (z. B. ein Kontakt oder Kundenvorgang) zugewiesen wurde. P Platform as a Service (PaaS) Eine Umgebung, in der die Entwickler mithilfe von Programmiertools von einem Dienstanbieter Anwendungen erstellen und diese in einer Cloud bereitstellen. Die Anwendung wird als Service gehostet und den Kunden über das Internet bereitgestellt. Der PaaS-Anbieter stellt eine API zum Erstellen und Erweitern spezialisierter Anwendungen bereit. Der PaaS-Anbieter ist außerdem für die tägliche Wartung, den Betrieb und die Unterstützung der bereitgestellten Anwendung und der Daten der einzelnen Kunden zuständig. Dank dieses Service brauchen die Programmierer die Anwendungen nicht mit ihrer eigenen Hardware, Software und ihren eigenen IT-Ressourcen zu installieren, zu konfigurieren und zu warten. Über die PaaS-Umgebung können Services für jedes beliebige Marktsegment bereitgestellt werden. Platform Edition Eine Salesforce-Edition, die auf der Enterprise, Unlimited oder Performance-Edition beruht und keine der standardmäßigen Salesforce-CRM-Anwendungen beinhaltet, wie die Vertriebsanwendung oder die Service & Support-Anwendung. Primärschlüssel Ein Begriff aus dem Bereich der relationalen Datenbanken. Jede Tabelle in einer relationalen Datenbank enthält ein Feld, in dem der Datenwert den Datensatz eindeutig 441 Kapitel 1: Glossar kennzeichnet. Dieses Feld wird als Primärschlüssel bezeichnet. Die Beziehung zwischen zwei Tabellen wird erstellt, indem die Werte des Fremdschlüssels in einer Tabelle mit den Werten des Primärschlüssels in einer anderen Tabelle abgeglichen werden. Druckvorschau Eine Option, mit der eine Seite in einem druckbaren Format angezeigt wird. Private Freigabe Bei privaten Freigaben werden hochgeladene Pakete durch den URL von Salesforce freigegeben. Dieser URL wird auf der AppExchange-Plattform nicht angegeben. Durch Verwendung der nicht aufgelisteten URL können Sie ein Paket freigeben, ohne den Prozess des Auflistens zu durchlaufen oder es zu veröffentlichen. Process Visualizer Ein Tool, das eine grafische Version eines Genehmigungsprozesses anzeigt. Dieses schreibgeschützte Diagramm wird als Flussdiagramm angezeigt. Das Diagramm und ein Randleistenbereich mit Informationen erleichtern Visualisierung und Verständnis der definierten Schritte, Regelkriterien und Aktionen, aus denen der Genehmigungsprozess besteht. Produktionsorganisation Eine Salesforce-Organisation, bei der live geschaltete Benutzer auf Daten zugreifen. Profil Legt die Berechtigungen eines Benutzers zur Ausführung verschiedener Funktionen in Salesforce fest. So berechtigt das Profil eines Lösungsmanagers einen Benutzer z. B zum Erstellen, Bearbeiten und Löschen von Lösungen. Q Warteschlange Ein Bereich, in dem Elemente vor der Verarbeitung zwischengespeichert werden. Bei Salesforce kommen Warteschlangen bei zahlreichen unterschiedlichen Funktionen und Technologien zum Einsatz. R Schreibschutz Eines der Standardprofile, die einem Benutzer zugewiesen werden können. Benutzer, die lediglich über Lesezugriff verfügen, können im Rahmen ihrer Rolle im Unternehmen Informationen einsehen und zur Berichterstellung nutzen. (Wenn der Benutzer, der über Lesezugriff verfügt, der CEO ist, kann er sämtliche Daten im System anzeigen. Wenn der Benutzer, der über Lesezugriff verfügt, die Rolle "Westlicher Vertrieb" besitzt, kann er sämtliche Daten für seine Rolle und alle in der Hierarchie untergeordneten Rollen anzeigen.) 442 Kapitel 1: Glossar Zuletzt verwendete Elemente Liste der Links in der Randleiste mit den Datensätzen, auf die zuletzt zugegriffen wurde. Beachten Sie, dass nicht alle Datensatztypen in den zuletzt verwendeten Elementen angezeigt werden. Datensatz Eine einzelne Instanz eines Salesforce-Objekts. Beispielsweise könnte "Christian Müller" der Name eines Kontaktdatensatzes sein. Datensatz-ID Siehe: Salesforce-Datensatz-ID. Sicherheit auf der Datensatzebene Eine Methode zur Datenkontrolle, bei der Sie einem bestimmten Benutzer gestatten können, ein Objekt anzuzeigen und zu bearbeiten, dann jedoch die Datensätze einschränken, die der Benutzer anzeigen darf. Datensatzname Ein Standardfeld bei allen Salesforce-Objekten. Immer wenn ein Datensatzname in einer Force.com-Anwendung angezeigt wird, wird der Wert als Link zu einer Detailansicht des Datensatzes dargestellt. Bei einem Datensatznamen kann es sich entweder um Freiform-Texte oder um ein Feld mit automatischer Nummerierung handeln. Datensatzname braucht keinen eindeutigen Wert aufzuweisen. Datensatztyp Ein Datensatztyp ist ein Feld, das für bestimmte Datensätze verfügbar ist und einige oder alle der standardmäßigen und benutzerdefinierten Auswahllistenwerte für den jeweiligen Datensatz enthalten kann. Datensatztypen können mit Profilen verknüpft werden, damit für Benutzer mit diesem Profil nur die enthaltenen Auswahllistenwerte verfügbar sind. Papierkorb Eine Seite, auf der Sie gelöschte Informationen anzeigen und wiederherstellen können. Der Zugriff auf den Papierkorb ist über den Link in der Randleiste möglich. Themenliste Ein Abschnitt eines Datensatzes oder einer anderen Detailseite, in dem die zu diesem Datensatz gehörenden Einträge aufgeführt sind. Beispielsweise die Themenliste “Phasenverlauf” einer Opportunity oder die Themenliste “Offene Aktivitäten” eines Kundenvorgangs. Hover-Links für Themenlisten Ein Typ Link, mit dem Sie rasch Informationen auf einer Detailseite zu Themenlisten anzeigen können, indem Sie mit dem Mauszeiger auf den Link zeigen. Der Administrator muss die Anzeige von Hover-Links aktivieren. Der angezeigte Text enthält die 443 Kapitel 1: Glossar entsprechende Themenliste und ihre Datensatzanzahl. Sie können des Weiteren auf diesen Typ Link klicken, um zum Inhalt der Themenliste zu gelangen, ohne auf der Seite einen Bildlauf nach unten durchführen zu müssen. Verwandtes Objekt Objekte, die laut Festlegung eines Administrators in der Miniansicht der Agentenkonsole angezeigt werden, wenn ein bestimmter Typ von Datensätzen in der Detailansicht der Konsole eingeblendet wird. Wenn die Detailansicht beispielsweise einen Kundenvorgang enthält, kann ein Administrator einen zugehörigen Account, Kontakt oder Vermögenswert zur Anzeige in der Miniansicht auswählen. Beziehung Eine Verbindung zwischen zwei Objekten, die dazu dient, miteinander verbundene Listen in Seitenlayouts und Detailebenen in Berichten zu erstellen. Entsprechende Werte in einem bestimmten Feld in beiden Objekten werden zum Verknüpfen in Beziehung stehender Daten verwendet; wenn ein Objekt z. B. Daten zu Unternehmen und ein anderes Objekt Daten zu Personen speichert, kann eine Beziehung verwendet werden, um zu ermitteln, welche Personen in einem bestimmten Unternehmen arbeiten. Bericht Ein Bericht gibt eine Menge von Datensätzen aus, die bestimmte Kriterien erfüllen, und zeigt diese in geordneten Zeilen und Spalten an. Berichtsdaten können gefiltert, gruppiert und grafisch als Diagramm dargestellt werden. Berichte werden in Ordnern gespeichert, über die gesteuert wird, welche Benutzer zugreifen können. Siehe: Tabellarischer Bericht, Übersichtsbericht und Matrixbericht. Berichtstyp Ein Berichtstyp definiert den Satz an Datensätzen und Feldern, die bei einem Bericht basierend auf den Beziehungen zwischen einem primären Objekt und dessen dazugehörigen Objekten verfügbar sind. In Berichten werden nur Datensätze angezeigt, die den im Berichtstyp definierten Kriterien entsprechen. Salesforce umfasst einen Satz vordefinierter Standardberichtstypen. Darüber hinaus können Administratoren auch benutzerdefinierte Berichtstypen erstellen. Rollenhierarchie Eine Sicherheitseinstellung auf Datensatzebene, die verschiedene Benutzerebenen definiert, sodass Benutzer höherer Ebenen unabhängig von den organisationsübergreifenden Freigabemodelleinstellungen Informationen anzeigen und bearbeiten können, deren Inhaber Benutzer sind bzw. die von Benutzern freigegeben wurden, welche sich in der Rollenhierarchie unter ihnen befinden. Rollup-Zusammenfassungsfeld Ein Feldtyp, der automatisch aggregierte Werte aus untergeordneten Datensätzen in einer Master-Detail-Beziehung bereitstellt. 444 Kapitel 1: Glossar Aktueller Benutzer Für jedes Dashboard gibt es einen aktuellen Benutzer, dessen Sicherheitseinstellungen festlegen, welche Daten in einem Dashboard angezeigt werden. Wenn der aktuelle Benutzer ein spezieller Benutzer ist, sind die den Dashboard-Benutzern angezeigten Daten von den Sicherheitseinstellungen dieses Benutzers abhängig. Ihre eigenen persönlichen Sicherheitseinstellungen sind dabei unerheblich. Bei dynamischen Dashboards können Sie den aktuellen Benutzer auf den angemeldeten Benutzer festlegen, sodass die einzelnen Benutzer das Dashboard gemäß ihrer eigenen Zugriffsebene anzeigen können. S SaaS Siehe: Software as a Service (SaaS). Salesforce-Datensatz-ID Eine eindeutige 15- oder 18-stellige alphanumerische Zeichenfolge, die einen einzelnen Datensatz in Salesforce kennzeichnet. Sandbox-Organisation Eine nahezu identische Kopie einer Salesforce-Produktionsorganisation. Sie können mehrere Sandbox-Instanzen in separaten Umgebungen zu verschiedensten Zwecken erstellen, beispielsweise für Tests und Schulungen, ohne die Daten und Anwendungen in Ihrer Produktionsumgebung zu gefährden. Speichern unter Option bei standardmäßigen, öffentlichen oder benutzerdefinierten Berichten zum Speichern der Parameter des Berichts, ohne den ursprünglichen Bericht zu ändern. Es wird ein neuer benutzerdefinierter Bericht mit Ihren gespeicherten Änderungen erstellt. Speichern & Neu Alternative Speicherfunktion auf den meisten Seiten, mit denen Sie Ihre aktuellen Änderungen speichern und einen neuen Eintrag erstellen können. Suche Funktion, mit der Sie nach Informationen suchen können, die mit bestimmten Stichwörtern übereinstimmen. Wenn Sie die Randleistensuche verwenden, geben Sie die Suchbegriffe in den Suchabschnitt der Randleiste ein oder klicken Sie auf Erweiterte Suche..., um weitere Suchoptionen anzuzeigen. Wenn Sie die globale Suche verwenden, geben Sie die Suchbegriffe im Suchfeld in der Kopfzeile ein. Einstellungen Ein Menü, in dem Administratoren Organisationseinstellungen und Force.com-Anwendungen anpassen und definieren können. In Abhängigkeit von den Benutzeroberflächeneinstellungen Ihrer Organisation kann es sich bei "Setup" um einen 445 Kapitel 1: Glossar Link in der Kopfzeile der Benutzeroberfläche oder in der Dropdown-Liste unter Ihrem Namen handeln. Details anzeigen/ausblenden Bei Berichten verfügbare Option, mit denen die Details einzelner Spaltenwerte in Berichtsergebnissen angezeigt bzw. ausgeblendet werden können. Randleiste Links auf jeder Seite angezeigte Spalte mit Links zu zuletzt verwendeten Elementen und anderen Ressourcen. SOAP (Simple Object Access Protocol) Ein Protokoll, das eine einheitliche Methode zur Weitergabe von XML-kodierten Daten festlegt. Software as a Service (SaaS) Ein Bereitstellungsmodell, bei dem eine Software-Anwendung als Service gehostet und den Kunden über das Internet bereitgestellt wird. Der SaaS-Anbieter ist für die tägliche Wartung, den Betrieb und die Unterstützung der Anwendung und der Daten der einzelnen Kunden zuständig. Dank dieses Service brauchen die Kunden die Anwendungen nicht mit ihrer eigenen Hardware, Software und ihren eigenen IT-Ressourcen zu installieren, zu konfigurieren und zu warten. Über das SaaS-Modell können Services für jedes beliebige Marktsegment bereitgestellt werden. Quellbericht Ein benutzerdefinierter Bericht, der geplant ausgeführt wird und Daten als Datensätze in ein Zielobjekt für einen analytischen Snapshot lädt. Standardobjekt Ein integriertes Objekt, das in der Force.com-Plattform enthalten ist. Sie können auch benutzerdefinierte Objekte erstellen, um anwendungsspezifische Informationen zu speichern. Zusammenfassungsbericht Zusammenfassungsberichte ähneln tabellarischen Berichten, jedoch haben die Benutzer hier die Möglichkeit, Datenreihen zu gruppieren, Zwischenergebnisse/-summen anzuzeigen und Diagramme zu erstellen. Sie können als Quellbericht für Dashboard-Komponenten verwendet werden. Verwenden Sie diesen Berichtstyp, um Zwischenergebnisse/-summen basierend auf dem Wert eines bestimmten Felds anzuzeigen oder zur Erstellung einer hierarchischen Liste, etwa aller Opportunities Ihres Teams, mit Zwischenergebnissen/-summen nach Phase und Eigentümer geordnet. Systemadministrator Siehe: Administrator (Systemadministrator). 446 Kapitel 1: Glossar T Tab Eine Registerkarte ist eine Schnittstellenkomponente, mit der Sie in einer Anwendung navigieren können. Registerkarten dienen als Ausgangspunkt für Anzeige, Bearbeitung und Eingabe von Informationen für ein bestimmtes Objekt. Wenn Sie oben auf der Seite auf eine Registerkarte klicken, wird die zugehörige Registerkartenstartseite für das betreffende Objekt angezeigt. Registerkarten können mit einem Objekt, einer Webseite oder einer Visualforce-Seite verknüpft sein. Tabellarischer Bericht Tabellarische Berichte stellen die schnellste und einfachste Möglichkeit zur Betrachtung von Daten dar. Ähnlich wie Tabellenblätter bestehen sie einfach aus einer bestimmten Reihenfolge von Feldern in Spalten; die einzelnen entsprechenden Datensätze sind hierbei in einer Reihe aufgeführt. Tabellarische Berichte sind am besten zum Erstellen von Listen mit Datensätzen oder mit einer einzelnen Gesamtübersicht geeignet. Sie können nicht zum Erstellen von Gruppen mit Daten oder Diagrammen und in Dashboards nur dann verwendet werden, wenn die Zeilenanzahl beschränkt ist. Beispiele sind Kontaktverteilerlisten und Aktivitätsberichte. Aufgabe Weist eine Aufgabe einem von Ihnen angegebenen Benutzer zu. Sie können Thema, Status, Priorität und Fälligkeitsdatum für die Aufgabe angeben. Aufgaben sind Workflow- und Genehmigungsaktionen, die durch Workflowregeln oder Genehmigungsprozesse ausgelöst werden. Informationen zu kalenderbezogenen Aufgaben finden Sie unter Aktivität (Kalenderereignisse/Aufgaben). Text Datentyp eines benutzerdefinierten Felds, das die Eingabe einer beliebigen Kombination aus Buchstaben, Zahlen oder Symbolen mit einer maximalen Länge von 255 Zeichen ermöglicht. Textbereich Datentyp eines benutzerdefinierten Felds, das Einträge mit bis zu 255 Zeichen in separaten Zeilen ermöglicht. Textbereich (lang) Siehe: Langer Textbereich. Zeitabhängige Workflowaktion Eine Workflowaktion, die ausgeführt wird, wenn die Bedingungen einer Workflowregel sowie ein damit verknüpfter Zeitauslöser erfüllt sind. 447 Kapitel 1: Glossar Zeitauslöser Ein Ereignis, das gemäß einem angegebenen Zeitschwellenwert startet, beispielsweise sieben Tage vor dem Schlusstermin einer Opportunity. Sie können beispielsweise eine zeitbasierte Workflow-Aktion definieren, die sieben Tage vor einem geplanten Meilenstein eine E-Mail an den Account-Manager sendet. U V Validierungsregel Eine Regel, die verhindert, dass ein Datensatz gespeichert wird, wenn er nicht den angegebenen Standards entspricht. Visualforce Eine einfache, Tag-basierte Markupsprache, mit der Entwickler problemlos benutzerdefinierte Seiten und Komponenten für auf der Plattform erstellte Anwendungen definieren können. Jedes Tag entspricht einer grob- oder feinteiligen Komponente, z. B. einem Seitenabschnitt, einer verwandten Liste oder einem Feld. Die Komponenten können durch dieselbe Logik gesteuert werden, die auf den Salesforce-Standardseiten verwendet wird. Alternativ können Entwickler Ihre eigene Logik mit einem in Apex geschriebenen Steuerfeld verknüpfen. Visualforce-Steuerfeld Siehe: Steuerfeld, Visualforce. Visualforce-Seite Eine mithilfe von Visualforce erstellte Webseite. Typischerweise stellen Visualforce-Seiten Informationen dar, die für Ihre Organisation relevant sind, sie können jedoch auch Daten ändern oder erfassen. Sie können auf verschiedene Weisen gerendert werden, beispielsweise als PDF-Dokument oder E-Mail-Anhang, und sie können mit einem CSS-Stil verknüpft werden. W Webservice Ein Mechanismus, anhand dessen zwei Anwendungen problemlos Daten über das Internet austauschen können, selbst wenn sie auf verschiedenen Plattformen ausgeführt werden, in verschiedenen Sprachen geschrieben wurden oder räumlich voneinander getrennt sind. Webregisterkarte Eine benutzerdefinierte Registerkarte, die Ihren Benutzern die Verwendung externer Websites aus der Anwendung heraus gestattet. 448 Kapitel 1: Glossar Assistent Eine Benutzeroberfläche, die einen Benutzer in mehreren Schritten durch eine komplexe Aufgabe führt. Workflow- und Genehmigungsaktionen Workflow- und Genehmigungsaktionen wie z. B. E-Mail-Benachrichtigungen, Aufgaben, Feldaktualisierungen und ausgehenden Nachrichten, können durch eine Workflowregel oder einen Genehmigungsprozess ausgelöst werden. Workflowaktion Eine Workflowaktion, wie etwa eine E-Mail-Benachrichtigung, Feldaktualisierung, ausgehende Nachricht oder Aufgabe, wird ausgelöst, wenn die Bedingungen einer Workflowregel erfüllt sind. Workflow-E-Mail-Benachrichtigung Eine Workflow-Aktion, die eine E-Mail sendet, wenn eine Workflowregel ausgelöst wird. Im Gegensatz zu Workflowaufgaben, die nur Anwendungsbenutzern zugewiesen werden können, können Workflowbenachrichtigungen an jeden beliebigen Benutzer oder Kontakt gesendet werden, solange dieser über eine gültige E-Mail-Adresse verfügt. Workflowfeldaktualisierung Eine Workflowaktion, die den Wert eines bestimmten Felds in einem Datensatz ändert, wenn eine Workflowregel ausgelöst wird. Workflowausgangsnachricht Eine Workflowaktion, die Daten an einen externen Webservice sendet, beispielsweise eine andere Cloud Computing-Anwendung. Ausgehende Nachrichten kommen in erster Linie bei zusammengesetzten Anwendungen zum Einsatz. Workflowwarteschlange Eine Liste von Workflow-Aktionen, die planungsgemäß auf der Grundlage von Workflowregeln ausgelöst werden, die mindestens eine zeitabhängige Workflowaktion aufweisen. Workflowregel Workflowregeln lassen Workflowaktionen ausführen, sobald ihre festgelegten Bedingungen erfüllt sind. Sie können Workflowaktionen so konfigurieren, dass sie sofort ausgeführt werden, wenn ein Datensatz die Bedingungen Ihrer Workflowregel erfüllt, oder Zeitauslöser einrichten, die Workflowaktionen an einem bestimmten Tag ausführen. Workflowaufgabe Eine Workflowaktion, die einem Anwendungsbenutzer eine Aufgabe zuweist, wenn eine Workflowregel ausgelöst wird. 449 Kapitel 1: Glossar X XML (Extensible Markup Language) Eine Markup-Sprache, die Freigabe und Transport strukturierter Daten ermöglicht. Alle Force.com-Komponenten, die über die Metadaten-API abgerufen oder bereitgestellt werden, werden durch XML-Definitionen dargestellt. Y Kein Glossareintrag unter diesem Buchstaben. Z Zip-Datei Ein Format zur Datenkomprimierung und -archivierung. Eine Sammlung von Dateien, die von der Metadaten-API abgerufen oder bereitgestellt wurden. Siehe auch: Lokales Projekt. 450 Index Index __c, Suffix 49, 63 "Job Posting" (Stellenausschreibung), benutzerdefiniertes Objekt 157, 161 *, Platzhalterzeichen für die Suche 155 &&, Funktion 94 ||, Funktion 94 1 n-Beziehungen 157 Alle anzeigen, Berechtigung 248 Alle Daten anzeigen, Berechtigung 247 Alle Daten modifizieren, Berechtigung 247 Amazon.com 2 Analysen Siehe:Berichte 342 AND(), Funktion 94 Andere Berichte, Kategorie 350 Anforderungen, Personalbeschaffungsanwendung 24 Anhänge, Aktivieren für benutzerdefinierte Objekte A Abhängige Auswahllisten Mobil 97 Abhängige Auswahllistenfelder Erstellen 77 Abhängigkeitsmatrix, Feld 77 Abkürzung für die Eingabe von Zahlenwerten 329 Ablehnen von Datensätzen 337 Abschnitte, Seitenlayout 101 Administrative Berechtigungen Global 247 Aktionen, Genehmigung Siehe:Genehmigungsaktionen 330 Aktionen, Workflow Siehe:Workflowaktionen 289 Aktionslayouts Anpassen 269 Informationen 268 Aktivieren Genehmigungsprozesse 333 Workflowregeln 298 Zeitabhängiger Workflow 309 Aktivitäten, Aktivieren für benutzerdefinierte Objekte 51 Aktualisieren von Dashboards 383 Aktualisierungen, Workflowfeld Siehe:Workflowfeldaktualisierungen 289 Aktueller Benutzer, Dashboard 375 Alle ändern, Berechtigung 248 51 Ansichten, Definieren 242 Anwendung anpassen, Berechtigung 247 Anwendungen Bearbeitungsseiten 11 Benutzerdefinierte Anwendung, Assistent 42 Cloud Computing 1 Datenbanken 31 Datenzentriert 14 Debuggen 46 Detailseiten 11 Erstellen 42 Felder 35 Festlegen des Standards 192 Formulare 11 Grundelemente 11 Informationen 42 Iterative Erstellung 46 Logos 44 Mandantenfähig 17 metadatengesteuert 18 Navigation 11 Objekte 33 Profile 45 Registerkarten 11, 44, 52 Standardregisterkartenanzeige 192 Verteilung auf AppExchange 21 Vorteile 14 Zusammenarbeit 15 Anzeigen von Warteschlangeninhalten 310 451 Index Apex Informationen 19, 397 API __c, Suffix 49, 63 Bezeichnungen und Namen, Feld 63 Bezeichnungen und Namen, Objekt 49 Informationen 19, 395 Name 82 Objektbezeichnungen und Namen 49 Vergleich von Feldbezeichnungen und Namen 62 AppExchange Partnerprogramm 425 Architektur, mandantenfähig 17 Assistenten Benutzerdefinierte Anwendung 42 Benutzerdefinierte Registerkarte 51, 53 Benutzerdefiniertes Formelfeld 84 Genehmigungsprozess, Schnellstart 321 Genehmigungsprozess, standardmäßiges Setup 321 Importieren 171 Neuer Genehmigungsschritt 326 Workflowregel 292 Attribute, Visualforce 402 Aufgaben Aktivieren für benutzerdefinierte Objekte 51 Aufgaben, Workflow Siehe:Workflowaufgaben 289 Ausbildungs-Services, Force.com-Plattform 424 Ausdehnen von Formelfeldern 144 Ausgehende Nachrichten, Workflow Siehe:Workflowausgangsnachrichten 290 Auslöser Workflowregel 293 Zeitabhängiger Workflow 308 Auswahllisten Mobil 97 Auswahllistenfelder Abhängig und steuernd 76 Erstellen 73 Erstellen von abhängigen 77 Automatische Nummerierung, Datentypen 49 B Bearbeitbarkeit, Datensatz 323 452 Bearbeitungsseiten 11, 57 Bedingte Hervorhebung 365 Bedingungen, Fehler bei Validierungsregel 92 Beispielformeln 82 Benachrichtigungen Aktivieren 264 Benachrichtigungen innerhalb der Anwendung 263 Benachrichtigungen übertragen (Push) 263 Genehmigungsanfragen 320 Informationen 263 Benachrichtigungen, Workflow Siehe:Workflow-E-Mail-Benachrichtigungen 290 Benutzer Dashboard, aktueller Benutzer 375 Definieren 242 Erstellen 221 Hierarchische Beziehungsfelder 322 Unterstützung für mehrere 15 Benutzer verwalten, Berechtigung 247 Benutzer, standardmäßiger Workflowbenutzer 309 Benutzer, Standardobjekt 121 Benutzerdefinierte Anwendung, Assistent 42 Benutzerdefinierte E-Mail-Vorlagen 312 Benutzerdefinierte Formelfelder Mobil 97 Siehe:Formelfelder 81 Benutzerdefinierte Objekte Detailseite 59 Siehe auch:Objekte 25, 47 Warteschlangen 302 Zugriff mithilfe von Hierarchien gewähren 218 Benutzerdefinierte Registerkarten, Assistent 51 Benutzeroberflächendesign Visualforce 20 Benutzerobjekt Manager, Feld 322 Berechtigungen Administrativ 247 Objekt- und Datensatzebene im Vergleich 195 Berechtigungssätze Erstellen 197 Informationen 188 Bereiche, Seitenlayoutfeld 101 Bereinigen von Daten 90 Bereitstellungsstatus 51 Index Berichte Aktivieren für benutzerdefinierte Objekte 50 Andere Berichte, Kategorie 350 Bedingte Hervorhebung 365 Dashboards 368, 384 Diagramme 356, 365 Erstellen einer Zusammenfassung 349 Erstellen von Matrixberichten 358 Filtern von Daten 355, 363 Formate 343 Gruppieren von Datensätzen 353, 360 Informationen 342 Kombinationsdiagramm 366 Mobil 384 Objekte 350 Ordner 347–348 Personalbeschaffungsanwendung 28 Registerkarte 342, 347 Zusammenfassungsfelder 360 Berichtsgenerator Benutzerdefinierter Bericht 350 Berichtstypen, benutzerdefiniert Erstellen 386 Informationen 386 Bezeichnungen und Namen Feld 49, 62 Objekt 49, 62 Beziehungen Berichte über 350 Entity-Relationship-Diagramm (ERD) für die Personalbeschaffungsanwendung 168 Hierarchisch 322 Informationen 118 Master-Detail, benutzerdefinierte Felder 120 n:n 157 Nachschlagefelder, benutzerdefiniert 119 Übersicht 119 Verknüpfungsobjekte 157 Beziehungsfelder 119 Briefvorlagenfelder Name 82 C Candidate (Bewerber), benutzerdefiniertes Objekt Erstellen 123 Candidate Map (Bewerberkarte) Aktivieren für mobile Anwendung 408 Code 405 Erstellen 399 Hinzufügen zu Seitenlayouts 406 Testen 408 Chatter Benachrichtigungen 263–265 Feed-Verfolgung 256 Folgen 260 Gruppen 262 Hinzufügen von Elementen zu Visualforce-Seiten 417 Informationen 256, 266 Chatter Desktop 261 Cloud Computing Anwendungen 1 Datenbanken 31 Plattformen 2 Code Apex 19 Informationen 19 Force.com-Plattform 393 Code, Candidate Map (Bewerberkarte) 405 Company Dashboards (Unternehmens-Dashboards), Ordner 376 D Dashboard-Registerkarte 373 Dashboards Aktualisieren 383 Aktueller Benutzer 375 Erstellen 373 Hinzufügen einer Diagrammkomponente 377 Hinzufügen einer Messdiagramm-Komponente 378 Hinzufügen einer metrischen Komponente 380 Hinzufügen einer Tabellenkomponente 379 Hinzufügen zur Registerkarte "Startseite" 382 Informationen 368, 384 Komponenten 376 Mobil 384 Personalbeschaffungsanwendung 28 Planen 383 453 Index Dashboards (Fortsetzung) Sicherheit 375 Daten, Importieren 170 Datenbanken Datensätze 34 Datenwerte 35 Definition 33 Entitäten 33 Felder 35 Fremdschlüssel 37 Objekte 33 Primärschlüssel 37 Relational 35 Tabellen 33 Datenbankkonzepte 37 Datenbereinigung 90 Datenintegrität 235 Datensatz-ID 147 Datensätze Anzeigen in Warteschlangen 310 Bearbeitbarkeit in Genehmigungsprozessen Delegieren der Verwaltung (Fortsetzung) Informationen 247 Objektebenenberechtigungen 248 Delegierte Verwaltung, Gruppen Definieren 250 Überprüfen 253 Delegierte, Genehmigungsprozess 327 Demos von Anwendungen 21 Detailseiten 11, 57 Developer Edition 5 Developer Force Informationen 6 Diagramme Dashboard 376–377 Siehe:Berichte 342 Dokumentation, Force.com-Plattform 424 Drahtlose Geräte, Genehmigungsprozesse 325 Dreamforce-Veranstaltung 424 Duplizieren von Profilen 191 Durchschnitte, Bericht 360 Durchsuchbare Felder 124 323 Einreichen für Genehmigung 335 Genehmigen und Ablehnen 337 Gesperrt 336 Gruppieren in einem Bericht 353, 360 Validieren vor dem Speichern 90 Datensatztyp, Feld 239 Datensatztypen Erstellen 236 Informationen 236 Datentypen Automatische Nummerierung 49 Feld ändern 62 Text 49 Datenwerte Abkürzung für die Eingabe von Zahlen 329 Einschränken mit Seitenlayouts 99 Datenzentrierte Anwendungen 14 Datumsfelder 66 Days Open (Tage offen), Feld, Berechnung 82 Debuggen von Anwendungen 46 Delegieren der Verwaltung Gruppen 250 Gruppen, definieren 250 Gruppen, Überprüfen 253 454 E E-Mail-Benachrichtigungen, Workflow Siehe:Workflow-E-Mail-Benachrichtigungen 290 E-Mail-Vorlagen Auswählen eines Briefvorlagenfeldtyps 315 Benennen 314 Briefvorlagenfelder 312 Erstellen 312, 320 Typen 312 eBay 2, 17 Editor, erweiterte Formel 85 Eigenschaften, Feld 105 Einführende Vorschaltseite 43 Einschränken von Feldern mit Seitenlayouts 99 Employment Website (Jobbörse), benutzerdefiniertes Objekt 159 Entitäten, Datenbank 33 Entity-Relationship-Diagramm (ERD), Personalbeschaffungsanwendung 168 Entwicklerkonsole 317 Entwicklerressourcen 423 Entwicklung, metadatengesteuert 18 Index Entwicklungsmodus, Visualforce 398 Ereignisse Aktivieren für benutzerdefinierte Objekte 51 Erstellen der mobilen Version 67 Erweiterte Felder Mobil 97 Erweiterte Formeln, Editor 85 Externe ID, Felder 124 F Farben, Registerkarte 53 Feedback, Senden, Buch 6 Fehlerbedingungen, Validierungsregel 92 Fehlerprüfung bei Datensätzen 90 Feldabhängigkeiten Mobil 97 Feldabhängigkeitsmatrix 77 Feldaktualisierungen, Workflow Siehe:Workflowfeldaktualisierungen 289 Feldebenensicherheit Definieren in Profilen 208 Vergleich mit Seitenlayouts 206 Felder __c, Suffix 63 Abhängige Auswahllisten 76 Auswahlliste, Mehrfachauswahl 72 Auswahlliste, Standard 72 Briefvorlagen 81, 312 Datentyp 60 Definition 35, 60 Durchsuchbar 124 Eigenschaften 105 Einschränken mit Seitenlayouts 99 Erforderlich 43, 105 Erstellen einer Master-Detail-Beziehung 143 Erstellen einer Nachschlagebeziehung 120 Erstellen für Datum 66 Erstellen für Währung 64 Erstellen von abhängigen Auswahllisten 77 Erstellen von Auswahllisten 73 Erstellen von Formeln 84 Erstellen von Kontrollkästchen 65 Erstellen von Master-Detail-Beziehungen mit mehreren Ebenen 144 Erstellen von Text 61 Felder (Fortsetzung) Erweitert 72 Externe ID 124 Formel 81 Fremdschlüssel 37 Hierarchische Beziehung 322 Hinzufügen auf Startseiten von Registerkarten 138 Hinzufügen in Nachschlagefenstern 138 Hinzufügen in Suchergebnissen 138 Hinzufügen in Themenlisten 138 Hinzufügen in Themenlisten für Objekte ohne Registerkarte 153 Indiziert 124 Kompakte Layouts 113 Master-Detail-Beziehung 120 Nachschlagebeziehung 119 Owner (Inhaber) 56 Primärschlüssel 37 Schreibschutz 105 Seitenlayouts 98, 108 Standardmäßig und benutzerdefiniert 35 Standardwerte 88 Validierungsregeln 90 Wechselnde Datentypen 62 Zusammenfassungsbericht 360 Feldverlaufsverfolgung Aktivieren für benutzerdefinierte Objekte 51 Filter Berichtseinstellungen 355, 363 Hinzufügen von Feldern für die Suche 138 Force.com-Plattform Anwendungsmenü 45 API 19 AppExchange-Verzeichnis 21 Datenbanken 31 Datensätze 34 Datenzentrierte Anwendungen 14 Einführung 9 Hilfe und Schulung 424 Integration 395 Kodieren 393 Kollaborative Anwendungen 15 Mandantenfähigkeit 17 Metadaten-API 18 Metadatengesteuerte Entwicklung 18 455 Index Force.com-Plattform (Fortsetzung) Mobil 20 Objekte 33 Partner 425 Podcasts 425 Setup-Bereich 40 Strukturierte Informationen 14 Unterstützende Technologie 15 Videos 425 Force.com-Plattform – Grundlagen, Buch Inhalt 3 Online-Version 3 Screenshots 5 Senden von Feedback 6 Übungen 5 Zielgruppe 3 Formelfelder Beispielformeln 82 Benutzerdefinierter Bericht, Zusammenfassung 361 Erstellen 84 Erweiterter Editor 85 IF(), Funktion 83 Informationen 81 ISBLANK(), Funktion 83 Prüfen der Syntax 88 TODAY(), Funktion 82 Zusammenführen von Feldern 81 Formeln Ausdehnung 144 Objektübergreifend 144 Standardwert 88 Formulare 11 Fragen zur Bestimmung der unternehmensweiten Standardeinstellungen 213 Freigabe Benutzer 245 Kriterienbasiert 233 Überschreiben 248 Freigabe, manuell Siehe:Manuelle Freigabe 185 Freigabeeinstellungen, Seite 216 Freigabemodelle Siehe:Unternehmensweite Standardeinstellungen 213 Freigaberegeln Erstellen 231 456 Freigaberegeln (Fortsetzung) Informationen 227 Öffentliche Gruppen 229 Freigeben von Anwendungen 21 Fremdschlüssel 37, 158 Funktionen && 94 || 94 AND() 94 HYPERLINK 147 IF() 83 ISBLANK() 83, 93 ISPICKVAL() 94 OR() 94 TODAY() 82 Funktionen, Personalbeschaffungsanwendung 24 Für Genehmigung einreichen, Schaltfläche 335 G Gebrauchstauglichkeit 235 Genehmigen von Datensätzen 337 Genehmigungen in Chatter 320 Genehmigungsaktionen Erstellen 331 Informationen 330 Siehe auch:Workflowaktionen 330 Genehmigungsbenachrichtigungen 320 Genehmigungsprozesse Aktionen 318 Aktivieren 333 Datensatz, Bearbeitbarkeit 323 Drahtlose Geräte 325 Erstellen 321 Für Genehmigung einreichen, Schaltfläche 335 Genehmigen und Ablehnen von Datensätzen 337 Genehmiger delegieren 327 Mehrere Genehmiger 329 Personalbeschaffungsanwendung 27 Planung 319 Schnellstart oder standardmäßiges Setup 321 Seitenlayouts 323 Testen 334 Themenliste "Zu genehmigende Elemente" 338 Index Genehmigungsprozesse (Fortsetzung) Verlaufsinformationen 325 Visualizer 334 Zugeordnete Benutzer 329 Genehmigungsschritte Anordnen 327 Erstellen 326 Genehmigungs- und Ablehnungsaktionen 327 Informationen 326 Zuweisen eines Genehmigers 327 Genehmigungsverlauf, Themenliste 325, 336 Geschäftslogik 287, 318 Gesperrte Datensätze 336 Google 2, 17 Graphen Siehe:Berichte 342 Gruppen, öffentlich 229 Gruppieren von Berichtsdatensätzen 353, 360 Gruppierungen, Seitenlayoutfeld 101 H Hervorhebung, bedingt Siehe bedingte Hervorhebung 365 Hierarchien, Rolle Siehe:Rollenhierarchien 185 Hierarchische Beziehungsfelder 322 Hilfe und Schulung, Optionen 424 Hiring Manager (Einstellungs-Manager), Berechtigungssatz 197 HTML-E-Mail-Vorlagen 312 HYPERLINK 147 Hyperlinks Siehe:Links 11 I ID-Felder, extern 124 IF(), Funktion 83 Importieren von Daten Anzeigen in der Importwarteschlange 173 Indizierte Felder 124 Information, strukturiert 14 Inhaber, Standardfeld 56 Inhalt, Buch 3 Installieren von Anwendungen 21 Interviewer (Gesprächsleiter), Berechtigungssatz 204 ISBLANK(), Funktion 83, 93 ISPICKVAL(), Funktion 94 iTunes, Force.com-Plattform, Podcasts 425 J JavaScript, mit Visualforce 405 Job Application (Stellenbewerbung), benutzerdefiniertes Objekt Erstellen 131 Job applications (Stellenbewerbungen) Mass Update Status (Status-Massenaktualisierung), Info 410 Mass Update Status (Status-Massenaktualisierung), Seite 412 K Kanal, Force.com iTunes 425 Kartenfunktion, Personalbeschaffungsanwendung Erstellen 399 Kollaborative Anwendungen 15 Kombinationsdiagramm 366 Kommunikationsvorlagen 312 Kompakte Layouts 113, 128–129, 134 Komponenten, Dashboard 376 Kontext 410 Kontrollkästchenfelder 65 Kundenvorgangswarteschlangen 302 L Layout, Schaltfläche für die Listenansicht 136 Layouts, kompakte Siehe "Kompakte Layouts" 113 Layouts, Seite Siehe "Seitenlayouts" 98, 108 Layouts, Suche Siehe Suchlayouts 136 Leadwarteschlangen 302 Leerräume, Seitenlayouts 104 Links 11 Listen, Themenlisten 59, 118 Listenansicht, Rollenhierarchie 223 Listenansicht, Schaltfläche, Layout 136 457 Index Listenansichten 11 Listenschaltflächen Benutzerdefiniertes Erstellen 418 Listenseiten 43, 58 Logik, Geschäft 287 Logos, Anwendung 44 Lösungsmanager, Profil 187 M Manager, Feld 322 Mandantenfähige Architektur 17 Manuelle Freigabe Definieren 234 Marketingbenutzer, Profil 187 Markup, Visualforce Verwenden 401 Mashups Implementieren 399 Informationen 2, 395 Mass Update Status (Status-Massenaktualisierung) Informationen 410 Planung 410 Seite 412 Testen 422 Master-Detail Beziehung Primär 162 Sekundär 163 Sekundär, Freigabeauswirkungen 232 Master-Detail-Beziehung, Felder Erstellen 143 Erstellen mehrerer Ebenen 144 Unternehmensweite Standardeinstellungen 217 Matrix, Feldabhängigkeit 77 Matrixberichte 344 Mehrere Benutzer, Unterstützen 15 Mehrfach-Auswahllistenfelder 72 Menü, Force.com-Plattform Informationen 45 Messdiagramme, Dashboard 376, 378 Metadaten-API Informationen 18 Metadatengesteuerte Entwicklung 18 Metriken, Dashboard 376, 380 Microsoft 14 Mobil Abhängige Auswahllisten 97 458 Mobil (Fortsetzung) Aktivieren von Visualforce-Seiten 408 Auswahllisten 97 Benutzerdefinierte Formelfelder 97 Candidate Map (Bewerberkarte) 408 Dashboards 384 Erweiterte Felder 97 Feldabhängigkeiten 97 Validierungsregeln 97 Mobile, Force.com-Plattform 20 Modell, metadatengesteuerte Entwicklung 18 Modelle, Freigabe Siehe:Unternehmensweite Standardeinstellungen 213 N n n-Beziehungen 157 Nachrichten, Workflow, ausgehend Siehe:Workflowausgangsnachrichten 290 Nachschlagebeziehungsfelder Erstellen 120 Symbol 121 Nachschlagefenster *, Platzhalterzeichen für die Suche 155 Hinzufügen von Feldern 138 Namen und Bezeichnungen Feld 49, 62 Objekt 49, 62 Navigation 11, 52 Neu erstellen, Dropdownliste 56 Nicht abgelegte öffentliche E-Mail-Vorlagen, Ordner 314 Notizen, Aktivieren für benutzerdefinierte Objekte 51 O Objekte __c, Suffix 49 Aktivieren der Feldverlaufsverfolgung 51 Aktivieren von Aktivitäten 51 Aktivieren von Berichten 50 Aktivieren von Notizen und Anhängen 51 Automatisch nummeriert 49 Benutzerdefiniert 25 Index Objekte (Fortsetzung) Bereitstellungsstatus 51 Berichte über 350 Bezeichnungen und Namen 50 Beziehungen 26, 36, 118, 157 Erstellen 48 Erstellen einer Registerkarte 53 Festlegen der Objektebenenberechtigungen 194 Hinzufügen abhängiger Auswahllistenfelder 77 Hinzufügen von Auswahllistenfelder 73 Hinzufügen von Datumsfeldern 66 Hinzufügen von Formelfeldern 84 Hinzufügen von Kontrollkästchenfeldern 65 Hinzufügen von Master-Detail-Feldern 143 Hinzufügen von Master-Detail-Feldern mit mehreren Ebenen 144 Hinzufügen von Nachschlagefeldern 120 Hinzufügen von Textfeldern 61 Hinzufügen von Währungsfeldern 64 Informationen 47 Kompakte Layouts 113 Seitenlayouts 98, 108 Standardbenutzer 121 Standardmäßig und benutzerdefiniert 35, 47 Themenlisten 59, 118 Validierungsregeln 90 Verknüpfung 157 Warteschlangen 302 Workflow 292 Workflowaktionen 297 Objektebenenberechtigungen 248 Objektebenensicherheit Vergleich mit Feldebenensicherheit 195 Objektübergreifende Formelfelder 144 Öffentliche Gruppen 229 Online-Version des Buchs 3 Operatoren Verketten 147 OR(), Funktion 94 Oracle 14 Ordner Bericht 347–348 Company Dashboards (Unternehmens-Dashboards) 376 Ordner (Fortsetzung) Nicht abgelegte öffentliche E-Mail-Vorlagen 314 Organisationen 42 Organisieren von Feldern auf Seiten 98 P Palette, Seitenlayout 101 Partnerprogramm 425 Personalbeschaffungsanwendung "Job Posting" (Stellenausschreibung), benutzerdefiniertes Objekt 157 "Job Posting" (Stellenausschreibung), Objekt 161 Anforderungen 24 Benutzerdefinierte Objekte 25 Berechnung des Felds "Days Open" (Tage offen) 82 Berechtigungssätze 189 Berichte und Dashboards 28 Candidate (Bewerber), Objekt 123 Candidate Map (Bewerberkarte) 399 Design-Übersicht 25 Einführung 23 Employment Website (Jobbörse), Objekt 159 Entity-Relationship-Diagramm (ERD) 168 Hiring Manager (Einstellungs-Manager), Berechtigungssatz 197 Importieren von Beispieldaten 170 Interviewer (Gesprächsleiter), Berechtigungssatz 204 Job Application (Stellenbewerbung), Objekt 130 Kodieren 393 Objekte 33 Position (Stelle), benutzerdefiniertes Objekt 47 Profile 189 Registerkarten 26 Review, Objekt 141 Rollenhierarchie 218 Sicherheits- und Freigaberegeln 27 Standard Employee (Standardmitarbeiter), Profil 196 Steuern des Datenzugriffs 177 Visualforce 29 459 Index Personalbeschaffungsanwendung (Fortsetzung) Workflow und Genehmigungen 27 Pflichtfelder 43, 105 Planen von Dashboards 383 Planung, Funktion "Mass Update Status" (Status-Massenaktualisierung) 410 Plattform, Salesforce Siehe:Force.com-Plattform 9 Plattformen, Cloud Computing 2 Platzhalterzeichen, *, Suche 155 Podcasts 425 Position (Stelle), benutzerdefiniertes Objekt 47 Primärschlüssel 37 Process Visualizer 334 Profile Anwendungen 45 Definieren der Feldebenensicherheit 208 Duplizieren 191 Erstellen 190 Feldberechtigungen 185 Feldebenensicherheit 206 Festlegen einer Standardanwendung 192 Informationen 187 Objektberechtigungen 184 Objektebenensicherheit 186 Registerkarten 55 Standard 187 Vergleich mit Rollen 219 Prozesse, Genehmigung Siehe Genehmigungsprozesse 318 Publisher-Aktionen Aktionen vom Typ "Anruf protokollieren" 266 Aktionslayouts 268–269 Aktualisierungsaktionen 266 Anpassen globaler Publisher-Layouts 272 Anpassen von Aktionen und Aktionslayouts 269 Erstellaktionen 266 Erstellen von globalen Aktionen 267, 271 Erstellen von objektspezifischen Aktionen 275, 277 Erstellen von vordefinierten Feldwerten 270 Globale Aktionen 266–267, 271, 273 Globale Publisher-Layouts 272 Informationen 266 460 Publisher-Aktionen (Fortsetzung) Objektspezifische Aktionen 266, 275, 277– 278, 281 Seitenlayouts 278 Vordefinierte Feldwerte 270 Zuweisen objektspezifischer Aktionen 278 R Recruiter (Personalbeschaffungsmitarbeiter), Profil 190 Regeln, Freigabe Siehe:Freigaberegeln 185 Regeln, Validierung Siehe:Validierungsregeln 90 Regeln, Workflow Siehe:Workflowregeln 288 Registerkarte "Startseite" Hinzufügen von Dashboards 382 Registerkarten Berichte 342, 347 Dashboard 373 Erstellen 53 Hinzufügen von Feldern auf Startseiten von Registerkarten 138 Hinzufügen zu Anpassungen der Benutzer 55 Informationen 52 Personalbeschaffungsanwendung 26 Profile 55 Standardeinstellung festlegen 347 Standardwerte anzeigen 192 Starten des Assistenten für benutzerdefinierte Registerkarten 51 Startseite 44, 368 Stil 53 Registerkartenleiste 41 Relationale Datenbanken 35 Ressourcen, Entwickler 423 Review, benutzerdefiniertes Objekt Erstellen 142 Rezensieren von Anwendungen 21 Rollen Zuweisen von Workflowaufgaben 297 Rollenhierarchien Ansichten 223 Definieren 223 im Vergleich zu Organigramm 219 Index Rollenhierarchien (Fortsetzung) Informationen 218 Personalbeschaffungsanwendung 218 Vergleich mit Profilen 219 Rollup-Zusammenfassungsfelder Erstellen 150 Informationen 150 S Salesforce Classic 20 salesforce.com Training & Certification 6 Salesforce1 20 Sandbox 5 Schaltfläche, Layout, Listenansicht 136 Schaltflächen Erstellen von benutzerdefinierten Listen 418 Für Genehmigung einreichen 335 Hinzufügen zu Seitenlayouts 420 Schemagenerator 122 Schlüssel Fremd 158 Primär und fremd 37 Schreibgeschützte Felder 105 Schreibschutz, Profil 187 Schulungsoptionen 424 Screenshots, Buch 5 Seiten Detail und Bearbeitung 57 Freigabeeinstellungen 216 Liste 43, 58 Seitenlayout-Editor 99 Vorschaltseiten 43 Seiteneditor, Visualforce 398 Seitenlayouts Abschnitte 101 Candidate Map (Bewerberkarte) 406 Editor 99 Eigenschaften von Themenlisten 153 Einschränken des Feldzugriffs 99 Erstellen 239 Genehmigung 323 Hinzufügen von benutzerdefinierten Listenschaltflächen 420 Hinzufügen von Visualforce-Seiten 406 Seitenlayouts (Fortsetzung) Layout bearbeiten, Link 128 Leerräume 104 Palette 101 Pflichtfelder 105 Schnellspeicherung 105 Schreibgeschützte Felder 105 Speichern 105 Vergleich mit Feldebenensicherheit 206 Zuweisen 240 Senden von Feedback zum Buch 6 Services, Web Siehe:Webservices 395 Setup-Bereich Detailseiten und Bearbeitungsseiten 57 Sicherheit Kriterienbasierte Freigabe 233 Sicherheit auf der Datensatzebene Informationen 213 Vergleich mit Objektebenensicherheit 195 Sicherheit und Freigabe Datensatztypen 236 Feldberechtigungen 185 Feldebenensicherheit 206 Festlegen der Objektebenenberechtigungen 194 Freigaberegeln 185, 227 Gestaltung für Ihre Organisation 184 Manuelle Freigabe 185, 233 Objektberechtigungen 184 Objektebenensicherheit 186 Personalbeschaffungsanwendung 27 Profile und Rollen 219 Rollenhierarchien 185, 218 Sicherheit auf der Datensatzebene 185, 213 Single Sign-On 254 Übersicht 184 Unternehmensweite Standardeinstellungen 185, 213 SOAP-API Siehe:API 19 Sortierte Listenansicht, Rollenhierarchie 223 Spezifikationen, Personalbeschaffungsanwendung 24 Standard Employee (Standardmitarbeiter), Profil 196 Standard-Auswahllistenfelder 72 461 Index Standardanwendung, Festlegen 192 Standardbenutzer, Profil 187 Standardeinstellungen, unternehmensweit 213 Standardfeldwerte 88 Standardmäßiger Workflowbenutzer 309 Standardobjekte Benutzer 121 Standardprofile Bearbeiten 188 Status Mass Update Status (Status-Massenaktualisierung), Info 410 Mass Update Status (Status-Massenaktualisierung), Seite 412 Steuerfelder, Visualforce 402 Steuernde Auswahllistenfelder 76 Stile, Registerkarte 53 Strukturansicht, Rollenhierarchie 223 Strukturierte Informationen 14 Suchen nach Datensätzen durch Nachschlagen 155 Suchlayouts Hinzufügen von Feldern 137 Suffix, __c 49, 63 Summen, Bericht 360 Symbole Nachschlagen 121 Registerkarte 53 Syntax, Prüfen der Formel 88 Systemadministrator, Profil Berechtigungen 247 T Tabellarische Berichte 344 Tabellen Dashboard 376, 379 Datenbank 33 Tags, Visualforce 396 Technologien, unterstützende 15 Testen Mass Update Status (Status-Massenaktualisierung), Funktion 422 Text-E-Mail-Vorlagen 312 Text, Datentypen 49 Textfelder 61 Themenliste "Zu genehmigende Elemente" 338 462 Themenlisten Eigenschaften 153 Genehmigungsverlauf 325, 336 Hinzufügen von Feldern 138 Hinzufügen von Feldern zu Objekten ohne Registerkarte 153 Zu genehmigende Elemente 338 TODAY(), Funktion 82 Training & Certification 6 U Über dieses Buch 3 Überlegungen, Personalbeschaffungsanwendung 24 Überwachen der Workflow-Warteschlange 310 Übungen, Buch 5 Universal Containers, Info 24 Unternehmensweite Standardeinstellungen Bestimmen 213 Einstellen 216 Master-Detail-Beziehung, Felder 217 V Validierungsregeln &&, Funktion 94 ||, Funktion 94 AND(), Funktion 94 Erstellen 91 Fehlerbedingungen 92 ISBLANK(), Funktion 93 ISPICKVAL(), Funktion 94 Mobil 97 OR(), Funktion 94 Testen 95 Verbundene Berichte 345 Verfolgen, Feldverlauf Aktivieren für benutzerdefinierte Objekte 51 Verketten 147 Verknüpfungsobjekte 157 Verlauf, Genehmigungsprozess 325 Verlaufsverfolgung, Feld Aktivieren für benutzerdefinierte Objekte 51 Vertragsmanager, Profil 187 Verwaltung Delegieren 247 Index Verwenden von Zugriff mithilfe von Hierarchien, Kontrollkästchen 218 Verzeichnis, AppExchange 21 Videos 425 Visualforce Aktivieren für mobile Anwendung 408 Attribute 402 Dashboard 376 Entwicklungsmodus 398 Erstellen von benutzerdefinierten Schaltflächen 418 Erstellen von Seiten 399 Hinzufügen zu Seitenlayouts 406 Informationen 396 JavaScript 405 Markup 396 Markup, Verwenden 401 Personalbeschaffungsanwendung 29 Seiten-Tag 402 Seiteneditor 398 Seiteneditor, Anzeigen 401 Steuerfelder 402 Visualforce-E-Mail-Vorlagen 312 Visualforce-Seiten Mass Update Status (Status-Massenaktualisierung), Seite 412 Vorlagen. E-Mail Siehe E-Mail-Vorlagen 311 Vorschaltseiten 43 Workflow-E-Mail-Benachrichtigungen Erstellen 316 Workflow-Warteschlange, zeitabhängig 310 Workflowaktionen Objekte 297 Zeitabhängig 296, 307 Zeitauslöser 308 Workflowaufgaben Erstellen 296 Testen 300 Zeitabhängig 308 Zuweisen zu Rollen 297 Workflowausgangsnachrichten 290 Workflowfeldaktualisierungen Erstellen 302, 305, 332 Workflowregeln Aktivieren 298 Aktivieren, zeitabhängig 309 Erstellen 292, 305, 316 Evaluationskriterien 293 Informationen 288 Objekte 292 Standardmäßiger Workflowbenutzer 309 Y Yahoo! 2, 17 Yahoo! Maps Integration 395, 399 W Z Währungsfelder 64 Warteschlangen Anzeigen 310 Benachrichtigen von Mitgliedern 303 Erstellen 302 Importieren 173 Informationen 302 Zeitabhängiger Workflow 310 Webservices Informationen 395 Werte, Daten 35 Workflow Informationen 287 Personalbeschaffungsanwendung 27 Zahlenwerte, Abkürzung für die Eingabe 329 Zeitabhängiger Workflow Aktivieren 309 Erstellen 307 Informationen 307 Standardmäßiger Workflowbenutzer 309 Warteschlange 310 Zeitauslöser 308 Zielgruppe, Buch 3 Zusammenfassungsberichte 344 Zusammenfassungsfelder, Bericht Benutzerdefiniertes Erstellen 361 Informationen 360 Zuweisen von Seitenlayouts 240 463