Copyright ©
Mindbreeze GmbH, A-4020 Linz, .
Alle Rechte vorbehalten. Alle verwendeten Hard- und Softwarenamen sind Handelsnamen und/oder Marken der jeweiligen Hersteller.
Diese Unterlagen sind streng vertraulich. Durch die Übermittlung und Präsentation dieser Unterlagen alleine werden keine Rechte an unserer Software, an unseren Dienstleistungen und Dienstleistungsresultaten oder sonstigen geschützten Rechten begründet. Die Weitergabe, Veröffentlichung oder Vervielfältigung ist nicht gestattet.
Aus Gründen der einfacheren Lesbarkeit wird auf die geschlechtsspezifische Differenzierung, z.B. Benutzer/-innen, verzichtet. Entsprechende Begriffe gelten im Sinne der Gleichbehandlung grundsätzlich für beide Geschlechter.
Mithilfe des Salesforce Konnektors können Ihre Daten aus Salesforce indiziert werden.
Zur Installation des Plugins, öffnen Sie das Mindbreeze Management Center. Wählen Sie aus dem linken Menü den Punkt „Configuration“ aus. Anschließend navigieren Sie auf den Reiter „Plugins“. Im Abschnitt „Plugin Management“ wählen Sie die entsprechende Zip-Datei aus und laden sie durch Auswahl der Schaltfläche „Upload“ hoch. Damit wird der Konnektor automatisch installiert oder gegebenenfalls aktualisiert. In diesem Zuge werden die Mindbreeze Dienste neugestartet.
Um Salesforce indizieren zu können, muss ein Crawling-Benutzer mit einem zugehörigen „Mindbreeze Crawling“-Profil angelegt werden.
Ein Crawling-Profil wird benötigt, um festzulegen, auf welche Objekte und Daten ein Benutzer zugreifen kann und welche Berechtigungen dieser innerhalb der Anwendung hat.
Öffnen Sie „Setup“ – „Administration“ – „Users“ – „Profiles“ und klicken Sie auf „New“
Im nächsten Schritt klonen Sie ein neues Profil vom existierenden System Administrator Profil.
Wenn dies abgeschlossen ist, editieren Sie nun das Profil damit es die gewünschten Berechtigungen besitzt.
Es wird empfohlen, dem Profil so viele Berechtigungen wie möglich zu geben, da es ansonsten zu Problemen beim Auflösen von ACLs oder Principals im „Salesforce Principal Resolution Service“ kommen kann.
Die Berechtigung „View All Data“ muss vergeben werden, da ansonsten die Auflösung nicht richtig funktioniert.
Nachden das Crawling-Profil erfolgreich erstellt wurde, kann nun ein Crawling-Benutzer erstellt werden.
Öffnen Sie „Setup“ – „Administration“ – „Users“ – Users“ und klicken Sie auf „New User“.
Beim Anlegen des neuen Benutzers muss darauf geachtet werden, dass das zuvor erstellte Crawling-Profil ausgewählt wird. Weiters darf kein spezifischer Benutzer-Typ (z.B. „Offline User“) angegeben werden.
Benutzer, die kein Profil besitzen (beispielsweise Benutzer, die automatisiert angelegt wurden), stellen ein Problem dar, da wichtige Berechtigungsinformationen aus dem Profil nicht abgerufen werden können.
Dies ist insbesondere dann der Fall, wenn im Principal Resolution Service versucht wird, die Berechtigung des Benutzers für verschiedene Objekte zu ermitteln. Wenn dies der Fall ist, wird im Log eine folgende Fehlermeldung erscheinen:
No such relation 'Profile' on entity 'User'.
Sollte dies der Fall sein, kann die Salesforce Developer Konsole verwendet werden, um nach Usern ohne Profil zu filtern und ihnen ein Profil zuzuordnen. Ein Administrator-Benutzer kann diese Konsole verwenden.
In der Developer Konsole können Sie mit folgendem Befehl alle aktiven Benutzer und die zugehörigen Profile ermittelt werden:
SELECT Username, ProfileId, Profile.Name FROM User WHERE IsActive=true
Benutzer, denen kein Profil zugeordnet ist, können über den Wert „null Profile“ identifiziert werden.
Klicken Sie auf den Reiter “Indices” und dann auf das Symbol “Add index” rechts oben, um einen neuen Index zu erstellen.
Geben sie den Indexpfad (“Index Path”) ein. Falls nötig, passen Sie den Anzeigenamen („Display Name“) vom Index Service und dem zugehörigen Filter Service an.
Im Reiter „Data Sources“ wählen Sie die Category „Salesforce“ und gegebenenfalls einen Caching Principal Resolution Service aus. Mit dem Button „Add Data Source“ können weitere Instanzen hinzugefügt und konfiguriert werden.
Login Endpoint | Die Salesforce Instanz, die indexiert werden soll.
| ||||||||
Custom Endpoint URL | Die URL der Salesforce Instanz, die indiziert werden soll. | ||||||||
TLS Version | Die TLS Protokollversion, die verwendet werden soll. Auto wird empfohlen. | ||||||||
Username | Der Benutzername einers Benutzers, der volle Leseberechtigung besitzt. | ||||||||
Password | Das Passwort für den gewählten Benutzer, welches sich aus Passwort und einem Sicherheitstoken besteht. |
Um die Suchresultate zu autorisieren wird entweder ein Caching Principal Resolution Service oder der Authorization Provider benötigt. Im Falle eines Caching Principal Resolution Services, können folgende Einstellungen übersprungen werden.
Der Authorization Provider im Reiter „User Email Resolution“ benötigt die Benutzer Principals oder „ObjectType Permissions“. Diese sind in Salesforce im ObjectPermission Objekt für jeden Benutzer zu enthalten. Um diese aufzulösen wird die Emailadresse des Benutzers benötigt.
Disable User Email Resolution | Deaktiviert die Auflösung des Benutzernamens mittels LDAP. |
Username | Die E-Mail des suchenden Users. |
Domain | Die Domäne, über die der Username aufgelöst werden soll. |
Password | Das Passwort für die Registrierung in der Domäne. |
Falls es bei eine Suche nach der Authentisierung im ClientService der Benuztername nicht die Emailadresse des Benutzers entspricht, dann ist eine Auflösung der Emailadresse im Active Directory notwendig. Die benötigte Credentials um eine LDAP Abfrage dafür zu durchführen können entweder direkt im „Username“, „Domain“ und „Password“ Felder angegeben werden oder Kerberos benutzt werden. Für Kerberos wird nur das „Domain“ Feld benötigt.
Falls „Domain“ Feld leer ist, wird das erste konfigurierte Domäne in Network Settings benutzt. Falls der Benutzername eine Emailadresse entspricht oder ist durch eine Identity Transformation zu einer Emailadresse transformiert dann soll die Option „Disable User Email Resolution“ ausgewählt werden.
Um die ObjectPermissions für eine Benutzer aufzulösen braucht der Benutzer (siehe Connection Settings) „View Setup and Configuration“ Berechtigung.
Alle Dokumente, deren Typ in der Liste “Default Object Types” vorhanden ist, werden vollständing indiziert. Um weitere Dokumententypen mit beliebige Metadaten zu indizieren, sollen die Metadatanamen aber in der SOQL Abfrage vorhanden sein. Die Spalten Primärschlüssel, Anzeigedatum und Title müssen immer angefordert werden.
z.B. mit der folgenden SOQL Abfrage werden die Dokumente des Typs Idea mit dem Body Metadatum indiziert.
SOQL: SELECT Id, SystemModstamp, Title, Body FROM Idea
Durch das Anpassen des der Deskriptoren kann man individuelle Eigenschaften der Tabellen auswählen. Der Connector ermittelt die Felder, indem er über die describeSObject Metadaten in der Salesforce API iteriert.
Zusätzlich kann zu den voreingestellten „Default Object Types“ der Parameter „FeedItem“ angegeben werden, um die Chatter Posts zu indizieren. Diese Möglichkeit setzt jedoch eine Konfiguration eines „Salesforce Caching Principal Resolution Service“ vorraus.
Bei allen Objektetypen außer „Document“ und „ContentDocument“, die ein HTML-Feld haben, wird dieses Feld als Dokumentinhalt gecrawlt. Wenn mehrere HTML-Felder gibt kann das Feld welches als Dokumentinhalt gecrawlt werdem soll mit „HTML Content Metadata“ Property konfiguriert werden, wobei „Object Type“ und „HTML Content Field Name“ konfiguriert werden muss. Für „Document“ wird der Inhalt des Body-Felds und für „ContentDocument“ der Inhalt des letzten „ContentVersion“ Objekts als Dokumentinhalt gecrawlt.
Die Konfiguration eines Index für benutzerdefinierte Objekte wird anhand des folgenden Beispiels erläutert.
In Salesforce wurden zwei benutzerdefinierte Objekte erstellt. Diese benutzerdefinierten Objekte sind:
Das benutzerdefinierte Objekt „Node“ verfügt über ein „Lookup“-Feld für die Objekte „Node“ (Selbstreferenz) und für das zweite benutzerdefinierte Objekt „Task“.
Die Struktur der beiden benutzerdefinierten Objekte ist, wie in der folgenden Abbildung dargestellt, aufgebaut:
Um Standardobjekte zu indizieren, ist es nicht notwendig, „Custom Sources“ im Abschnitt „Sources“ in der „Configuration“ hinzuzufügen. Um alle Sektoren mit dem übergeordneten Sektor abzurufen, können die beiden benutzerdefinierten Objekte zur Einstellung „Default Object Types“ hinzugefügt werden.
Die Einstellung „Custom Sources“ kann verwendet werden, um bestimmte Metadaten auszuwählen, die indiziert werden sollen.
Wenn ein referenziertes Objekt einbezogen werden soll, muss es unabhängig indiziert werden. Dies ist durch das Hinzufügen zu „Default Object Types“ oder zu „Custom Sources“ möglich. Je nachdem, wie das Objekt indiziert wurde, zeigt die Abfrage, die sich auf das referenzierte Objekt bezieht, alle (Default Object Types) oder benutzerdefinierten (Custom Sources) Metadaten an.
Das referenzierte Objekt ist in einer Abfrage wie dieser enthalten:
SELECT Id, Name, mindbreeze__Parent__c, mindbreeze__Task__c
FROM mindbreeze__Node__c
Es ist nicht möglich, mit Abfragen, wie der folgenden, auf bestimmte Metadaten aus dem referenzierten Objekt zu verweisen:
SELECT Id, Name, mindbreeze__Parent__r.Id, mindbreeze__Parent__r.Name
FROM mindbreeze__Node__c
Um referenzierte Metadaten abzurufen, fügen Sie die Definition der synthetisierten Metadaten im Abschnitt „Synthesized Metadata“ hinzu:
Schlussendlich sind durch die Indexierung mit den angegebenen Einstellungen die folgenden Dokumente das Ergebnis:
Wählen Sie im neuen oder bestehenden Service in der Einstellung „Service“ die Option Salesforce Principal Resolution Service aus. Für mehr Informationen über das Erstellen und das grundlegende Konfigurieren eines Cache für einen Principal Resolution Service, siehe Installation & Konfiguration - Caching Principal Resolution Service.
Die Einstellungen für die Verbindung zu Salesforce im Principal Resolution Service sind identisch mit denen im Crawler die hier angeführt sind.
Falls eine Auflösung des Benutzernamens gewünscht ist, kann diese über einen „Parent Service“ umgesetzt werden.
Für mehr Informationen über den Abschnitt Parent Service, siehe Installation & Konfiguration - Caching Principal Resolution Service - Parent Cache Settings. Für ein praktisches Anwendungsbeispiel zu Parent Cache Settings, siehe https:Installation & Konfiguration - Caching Principal Resolution Service - Spezielle Anwendungsfälle.