Loading
Externe Objekte in Integrationsverfahren

Externe Objekte in Integrationsverfahren

Integrationsverfahren unterstützen externe Salesforce-Objekte. Die externen Daten können aus einer beliebigen Quelle stammen, auf die über einen REST-Endpunkt zugegriffen werden kann. Die zurückgegebenen Daten können als JSON oder XML dargestellt werden.

So funktioniert's:

  • In Salesforce führen Sie einen Vorgang für das externe Objekt "Vlocity" aus, beispielsweise im Apex Code, in einem Bericht oder durch Ausstellen einer SOQL-Abfrage.

  • Der externe Vlocity-Objekt-Handler ruft das Integrationsverfahren auf, das das externe Objekt implementiert, und übergibt eine JSON-Nutzlast, die Details zur Anforderung enthält.

  • Basierend auf dem Inhalt der JSON-Nutzlast greift das Integrationsverfahren beispielsweise über REST-Endpunkte oder OmniStudio-Datenzuordnungsaufrufe auf die externen Daten zu und gibt JSON- oder XML-Ergebnisse zurück.

  • Das Integrationsverfahren gibt seine Ergebnisse im Zwischenformat an den externen Objekt-Handler Vlocity zurück.

  • Der Vlocity-Handler wandelt die Ergebnisse in eine JSON-Nutzlast um und gibt sie an den Aufrufer zurück.

Das folgende Diagramm veranschaulicht den Vorgang.

Abbildung wird im vorigen Text beschrieben.

Der Vorteil dieses Ansatzes für den Zugriff auf externe Daten besteht darin, dass er vollständig deklarativ ist und kein Code erforderlich ist. Beachten Sie, dass das externe Objekt zwar als einzelnes Objekt fungiert, Ihr Integrationsverfahren jedoch Daten aus mehreren Quellen rekrutieren kann.

Abfrageverarbeitungslogik im Integrationsverfahren

Um anzugeben, welcher Vorgangstyp für das Integrationsverfahren angefordert wird, legt der Vlocity-Handler in der Eingabe-JSON den Eintrag "Kontext" fest. Wenn Sie die Aktionen für die Verarbeitung der einzelnen Abfragetypen in Ihrem Integrationsverfahren definieren möchten, legen Sie das Feld "Ausführung bedingte Formel" der Aktionen fest (beispielsweise: Context = "QueryAll"). In der folgenden Liste werden die im Knoten "Kontext" für jeden Anforderungstyp übergebenen Werte mit SOQL-Beispielen und der entsprechenden an das Integrationsverfahren gesendeten JSON-Nutzlast beschrieben.

QueryAll: SELECT gibt alle Zeilen zurück (keine WHERE-Klausel)

Beispielabfrage: SELECT ExternalId FROM myExternalObject;

Entsprechende JSON-Eingabe: {"Context":"QueryAll"}

Abfrage: SELECT with WHERE-Klausel

Beispielabfrage: SELECT ExternalId FROM vlocity_dev__ContactsList__x WHERE ExternalId = '59f0f91a51280e0012c90584';

Entsprechende JSON-Eingabe: {"Input":[{"ExternalId":"59f0f91a51280e0012c90584"}],"Context":"Query"}

Aktualisieren und einfügen: Aktualisieren Sie eine Zeile (sofern ExternalId angegeben ist) oder erstellen Sie eine Zeile (sofern ExternalId ausgelassen wurde).

Beispielabfrage (UPDATE): INSERT INTO myExternalObject (Name, Mobile...) VALUES ("Davidov Spruth", "415-607-9865"...)

Entsprechende JSON-Eingabe: {"Input":[{"Name":"Davidov Spruth","Mobile":"415-607-9865","CreateDate":"2017-10-25T20:50:34.188Z","Work":"415-232-6365","ExternalId":"59f0f91a51280e0012c90584","Email":"davs@gmail.com"}],"Context":"Upsert"}

Löschen: Angegebene Zeilen löschen.

Beispielabfrage: DELETE FROM myExternalObject WHERE ExternalId = '"'59f0f91a51280e0012c90584'"';

Entsprechende JSON-Eingabe: {"Input":[{"ExternalId":"59f0f91a51280e0012c90584"}],"Context":"Query"}

Wenn Sie auf die externen Daten zugreifen möchten, um die Abfrage zu verarbeiten, definieren Sie HTTP-Aktionen, die die REST-Endpunkte aufrufen, die die erforderlichen Vorgänge ausführen. Wenn die vom Endpunkt zurückgegebenen Ergebnisse weiter verarbeitet werden müssen, erstellen und rufen Sie Datenzuordnungstransformationen auf, die die erforderlichen Transformationen ausführen.

Abfrageergebnisformat

Strukturieren Sie die Ausgabe-JSON wie folgt, um Ergebnisse aus dem Integrationsverfahren an die Abfrage zurückzugeben:

SELECT-Abfragen: Geben Sie ein Array von Knoten mit Namen zurück, die den für das externe Objekt definierten Tabellenspalten entsprechen. Beispiel:


[{
		"Work": "415-232-6365",
		"Mobile": "415-607-9865",
		"Email": "davs@gmail.com",
		"CreateDate": "2017-10-25T20:50:34.188Z",
		"Name": "Davidov Spruth",
		"ExternalId": "59f0f91a51280e0012c90584",
		"ExternalLookup": "59f0f91a51280e0012c90584",
		"AccountIndirectLookup": "123"
	},
	{
		"Email": "mw@gmail.com",
		"CreateDate": "2017-10-25T21:49:41.633Z",
		"Name": "Mike Wormwood",
		"ExternalId": "59f106f5e928870012f2b0a0",
		"ExternalLookup": "59f0f91a51280e0012c90584",
		"AccountIndirectLookup": "123"
	},
	{
		"Work": "33-555-1212",
		"Mobile": "33-879-0610",
		"CreateDate": "2017-10-25T20:59:18.657Z",
		"Name": "Tom Sor",
		"ExternalId": "59f0fb26e928870012f2b09e",
		"ExternalLookup": "59f0f91a51280e0012c90584",
		"AccountIndirectLookup": "123"
	}
]					
		

AKTUALISIEREN UND LÖSCHEN von Abfragen: Geben Sie die externe ID des betroffenen Objekts in einem Knoten mit dem Namen "ExternalID" zurück. Beispiel:


{
	"ExternalId": "59efa135ba8e960012a3e8a5"
}
	

Wenn die Abfrage nicht erfolgreich ist, geben Sie einen Knoten mit dem Namen "errorMessage" zurück, der Details zum aufgetretenen Problem enthält.

 
Laden
Salesforce Help | Article