Salesforce Connector

Sie haben wahrscheinlich bereits von unserem Salesforce-Konnektor gehört, den wir vor einigen Monaten herausgebracht haben. Mit diesem Konnektor können Sie Content, der im Nuxeo Repository gespeichert ist, direkt in Salesforce anzeigen.

Wir möchten, dass Sie noch einen Schritt weitergehen: Erstellen Sie eine Drop-down-Liste auf der Nuxeo Content Services Platform, mit der Sie Content von Salesforce in Echtzeit abrufen können. Im Grunde genommen ist dieser Anwendungsfall das Gegenteil eines früheren Anwendungsfalls. Beispielsweise haben wir ein Verzeichnis aus Unternehmen erstellt, die in Salesforce gespeichert sind (in das Konto-Objekt).

Das Ergebnis ist für den Endnutzer transparent, da die gesamte Konfiguration im Hintergrund abläuft und es keinen Unterschied macht, ob wir ein Verzeichnis von Werten abbilden, das auf der Nuxeo Platform gespeichert ist, oder ob wir diese in Echtzeit von Salesforce abfragen!

Vorgänge im Hintergrund

Das Plug-in basiert auf einem Nuxeo Add-On mit dem Namen Nuxeo-Directory-Connector, das alles Notwendige erstellt, um einen Webservice zu aktivieren, um ein Verzeichnis an Werten innerhalb eines Vokabulars abzurufen (auch als Directory bekannt).

Thibaud hat in einem früheren Blog beschrieben, wie der Nuxeo-Directory-Connector verwendet werden kann.

In diesem Blog werde ich mich auf die entsprechenden Schritte für Salesforce konzentrieren. Der von mir verwendete Web Service basiert auf der Force.com REST API.

OAuth2 Konfiguration

Die Authentifizierung auf Salesforce’s API wird über OAuth2 vorgenommen. Alles was für die Konfiguration eines OAuth2 Anbieters benötigt wird, ist bereits auf der Nuxeo Platform vorhanden.

Dies geschieht im Menü Admin > Cloud Services > Service Providers.

OAuth2 Service Provider

Hier definieren wir die Daten für den Salesforce Oauth2. Um die Client ID und das Client Secret abzurufen, müssen Sie eine “Connected App” in der Nuxeo Platform erstellen. Gehen Sie dazu zu Salesforce > Setup > Build > Create > Apps und erstellen dort eine neue App unter dem Tab “Connected Apps”.

Hier sehen Sie ein Beispiel für die Konfiguration einer Connected App. Beachten Sie diese beiden wichtigen Hinweise:

Bitte beachten Sie, dass Ihre Nuxeo Platform unter https laufen sollte (es sei denn, sie testen unter localhost).

  • ausgewählte Aufgabenbereiche von OAuth: - Verwaltung und Zugriff auf Ihre Daten (api) - Zugang zu Ihren Daten über das Web bereitstellen(web) - jederzeit Anfragen in Ihrem Namen durchführen (refresh_token, offline_access)

In unserem Beispiel verwenden wir der Einfachheit halber den uneingeschränkten Zugang (full), dies kann aber je nach Anwendungsfall angepasst werden.

Salesforce Quick Start

Sobald Sie Ihre Konfiguration speichern, erhalten Sie Ihren Consumer Key und Ihr Consumer Secret, die Sie kopieren und in Ihre Nuxeo Platform einfügen müssen.

Nuxeo App

Authentifizierung

Sobald wir den Oauth2-Anbieter festgelegt haben, müssen wir die Authentifizierung auf Salesforce über die Nuxeo Platform durchführen.

Gehen Sie dazu auf Home > Cloud Services und klicken sie auf Connect to Salesforce. Sobald Sie verbunden sind und der Offline-Zugriff erteilt wurde, sind Sie startklar.

Cloud Services Accounts

Zur Vereinfachung haben wir das Administratorenkonto auf der Nuxeo Platform verwendet.

Erweiterungspunkt

<extension target="org.nuxeo.directory.connector.ConnectorBasedDirectoryFactory" point="directories"><directory name="Salesforce_Organization" class="org.nuxeo.directory.connector.json.salesforce.SalesforceInMemoryConnector"><idfield>Id</idfield> <schema>vocabulary</schema> <parameters><parameter name="url">/services/data/v20.0/query/?q=SELECT+Id,Name+from+Account</parameter> <parameter name="label">Name</parameter> <parameter name="id">Id</parameter> <parameter name="autoRefresh">true</parameter></parameters> <mapping><map field="label">Name</map> <map field="id">Id</map></mapping></directory></extension>

Hier befindet sich der Erweiterungspunkt, in dem die Konfiguration vorgenommen wird.

Salesforce_Organization ist beispielsweise der Name des Verzeichnisses (oder Vokabulars) das Sie verwenden werden, wenn Sie es für ein bestimmtes Vorschlags-Widget verwenden. (Im nächsten Absatz werde ich darauf näher eingehen).

Es wird eine bestimmte Anzahl an Parametern verwendet, um Content aus Salesforce abzurufen und einem Nuxeo-Vokabular zuzuordnen.

Die Salesforce-Abfrage, die Sie in die URL eingeben (SELECT+Id,Name+from+Account) ist vollständig konfigurierbar. Sie können dabei Listen von Ansprechpartnern oder sogar Informationen über ein angepasstes Objekt erhalten.

Bitte beachten Sie, dass in einem Nuxeo Vokabular eine ID und ein Label vorhanden ist. Sie müssen das Ergebnis Ihrer Abfrage zuordnen, um festzulegen, welches Salesforce-Objektfeld als ID und welches als Label verwendet wird.

Es gibt außerdem die Option, das Ergebnis immer in Echtzeit abzurufen (autoRefresh). Wenn autoRefresh auf False eingestellt ist, wird die Anfrage an Salesforce einmal gestellt und das Ergebnis wird im Speicher der Nuxeo Platform gespeichert. Wenn es also um Daten geht, die sich nicht regelmäßig ändern, kann diese Option verwendet werden.

Vorschlags-Widget

Um das zuvor festgelegte Verzeichnis Salesforce_Organization zu nutzen, müssen Sie Ihrem Erstellungs-, Lese- und Bearbeitungslayout lediglich ein Vorschlags-Widget hinzufügen, mit Textfeld-Metadaten verknüpfen und die Eigenschaft directoryName unter der Custom Properties Configuration festlegen.

Custom Properties Configuration

Das war’s dann schon!

Das Plug-in finden Sie hier. Probieren Sie es aus und sagen Sie uns, was Sie davon halten!