Antwortkonfiguration für Datenaktionen
Sie können benutzerdefinierte Aktionen für die Integrationen von Datenaktionen erstellen. Eine benutzerdefinierte Aktion enthält eine Anfrage und eine Antwort in ihrer Konfiguration. Weitere Informationen finden Sie unter Erstellen einer benutzerdefinierten Aktion.
In diesem Artikel werden die Bestandteile der Antwort erläutert. Informationen zu Anfragen finden Sie unter Anfragekonfiguration.
Benutzerdefinierte Aktionen verwenden Übersetzungszuordnungen und Erfolgsvorlagen, um Rohantworten von Remote-Webservices oder Ihrer AWS Lambda-Funktion in aufgelöste Antworten umzuwandeln, die den definierten Erfolgsschemata entsprechen. Diese Erfolgsvorlagen unterstützen die Verwendung von Makros. Weitere Informationen finden Sie unter Velocity macros for data actions.
Keine Antworten
Wenn eine Aktion für die Integration von Datenaktionen ausgeführt wird, wird die gesamte Antwort als Rohantwort bezeichnet. Die Rohantworten entsprechen jedoch nicht unbedingt dem im Erfolgsschema für eine Aktion definierten Format. Wenn die Rohdaten nicht übereinstimmen, können Sie die Daten mit Hilfe von Translation Maps und Erfolgsvorlagen neu formatieren.
Übersetzung Karten
Übersetzungsmaps enthalten Schlüssel-Wert-Paare, die Eigenschaftsnamen den zurückgegebenen Werten (oder Objekten) aus der Auswertung von JSONPath-Ausdrücken zuordnen.
Standardwerte der Übersetzungskarte
Standardwerte für Übersetzungspläne enthalten Schlüssel-Wert-Paare, die die Schlüssel der Übersetzungspläne auf einen Standardwert setzen. Der Standardwert wird verwendet, wenn der in der Translation Map konfigurierte JSONPath-Ausdruck keinen Wert auflösen kann. Nullwerte werden nicht auf die Standardwerte zurückgesetzt.
Erfolgsvorlagen
Erfolgsvorlagen verwenden die Variablennotation der Velocity Template Language. Erfolgsvorlagen verwenden den Eigenschaftsnamen aus Übersetzungsmaps, um Daten einzufügen, die von den JSONPath-Ausdrücken zurückgegeben werden. Im Allgemeinen werden alle Daten in Erfolgsvorlagen in der Ausgabe als Literale behandelt. Elemente innerhalb von ${} sind Verweise auf Werte aus der Translation Map Weitere Informationen finden Sie in der Dokumentation The Apache Velocity Project
Gelöste Antworten
Erfolgsvorlagen erstellen aufgelöste Antworten, die mit den Erfolgsschemata übereinstimmen müssen. Andernfalls kommt es zu Fehlern.
Erfolgsschemata
Erfolgsschemata definieren das erforderliche Format der Antwort auf eine Aktion.
Use Case.
In den folgenden Situationen möchten Sie häufig eine Übersetzungskarte und eine Erfolgsvorlage verwenden, um Rohantworten zu konvertieren:
- Ihre Rohantwort enthält mehrere Objekte. Mehrere Objekte müssen als Mitglieder eines anderen Objekts zurückgegeben werden, damit die aufgelöste Ausgabe dem Erfolgsschema entspricht.
- Ihre Rohantwort enthält Werte oder Konvertierungstypen, wie z. B. Arrays, die Sie in diskrete Werte umwandeln möchten.
- Sie möchten nur eine bestimmte Teilmenge von Daten zurückgeben.
- Sie wollen die Reihenfolge der zurückgegebenen Attribute garantieren.
Wenn die Antwort des Drittanbieters mit dem Erfolgsschema übereinstimmt, möchten Sie die Rohantwort ohne jegliche Manipulation zurückgeben. Verwenden Sie in diesem Fall die Standard-Anforderungsvorlage. Wenn kein anderer Wert angegeben wird, verwendet die Standard-Anforderungsvorlage den eingebauten rawResult Kontextwert Die Erfolgsvorlage übergibt dann das gesamte Ergebnis, ohne dass eine Übersetzungskarte zur Extraktion von Werten verwendet wird.
${rawResult}
Beispiel Salesforce GetContactByPhoneNumber Aktion
Neue Antwort
Im Folgenden finden Sie ein Beispiel für eine Rohantwort von Salesforce, wenn die Salesforce-Aktion GetContactByPhoneNumber ausgeführt wird.
{
"searchRecords": [
{
"attributes": {
"type": "Contact",
"url": "/services/data/v37.0/sobjects/Contact/003G000001LrjlTIAR"
},
"Email": null,
"FirstName": "Jack",
"HomePhone": null,
"Phone": "(317) 555-0123",
"Id": "003G000001LrjlTIAR",
"LastName": "Teller",
"MobilePhone": null,
"OtherPhone": null,
"MailingStreet": null,
"MailingCity": null,
"MailingState": null,
"MailingCountry": null,
"MailingPostalCode": null
}
]
}
Die Rohantwort enthält einen Wurzelknoten (searchRecords). Das searchRecords-Objekt stellt die von Salesforce zurückgegebenen Kontaktinformationen dar.
Übersetzung Karte
Die Übersetzungskarte zieht Segmente von Daten aus der Rohantwort. In diesem Fall wollen wir den gesamten Knoten searchRecords ziehen.
- Eigenschaftsnamen in der Übersetzungsübersicht müssen mit einem Buchstaben (a-z, A-Z) beginnen und dürfen nur Buchstaben, Zahlen (0-9), Bindestriche (-) oder Unterstriche (_) enthalten.
- Wenn der Name Ihres Wertes ein Leerzeichen enthält, fügen Sie Klammern und einfache Anführungszeichen um den Namen hinzu, zum Beispiel "contact": "$.['Search Records']".
"translationMap": {
"contact": "$.searchRecords"
}
Der JSONPath-Ausdruck $.searchRecords extrahiert das searchRecords-Objekt aus der Rohantwort und weist ihm den Alias "contact"zu Die Erfolgsvorlage verwendet den Alias.
Erfolgsvorlage
Die Erfolgsvorlage verweist auf den Alias "contact" , der in der Übersetzungsübersicht erstellt wurde Der Alias verweist auf ein Objekt in der Rohantwort, das alle Werte enthält, die für die Übereinstimmung mit dem Erfolgsschema erforderlich sind.
${contact}
Gelöste Antwort
Die Erfolgsvorlage erstellt eine aufgelöste Antwort für die Aktion. Die aufgelöste Antwort ist die Antwort, die die Aktion zurückgibt.
[
{
"attributes": {
"type": "Contact",
"url": "/services/data/v37.0/sobjects/Contact/003G000001LrjlTIAR"
},
"Email": null,
"FirstName": "Jack",
"HomePhone": null,
"Phone": "(317) 555-0123",
"Id": "003G000001LrjlTIAR",
"LastName": "Teller",
"MobilePhone": null,
"OtherPhone": null,
"MailingStreet": null,
"MailingCity": null,
"MailingState": null,
"MailingCountry": null,
"MailingPostalCode": null
}
]
Beispielaktion zur Verwendung mit einem Zahlungsanbieter
Neue Antwort
Es folgt ein Beispiel für eine rohe Antwort mit einer Aktion, wenn wir eine Kreditkarte belasten.
{
"id": "ch_1AS7Iv2eZvKYlo2CmgEX0bHw",
"object": "charge",
"amount": 999,
"amount_refunded": 0,
"application": null,
"application_fee": null,
"balance_transaction": "txn_1AS7Iv2eZvKYlo2CjrARHR6C",
"captured": true,
"created": 1496854005,
"currency": "usd",
"customer": "cus_AFEwvtMn3H17af",
"description": null,
"destination": null,
"dispute": null,
"failure_code": null,
"failure_message": null,
"fraud_details": {
},
"invoice": "in_1AS6Mf2eZvKYlo2C9QEibbxz",
"livemode": false,
"metadata": {
},
"on_behalf_of": null,
"order": null,
"outcome": {
"network_status": "approved_by_network",
"reason": null,
"risk_level": "normal",
"seller_message": "Payment complete.",
"type": "authorized"
},
"paid": true,
"receipt_email": null,
"receipt_number": null,
"refunded": false,
"refunds": {
"object": "list",
"data": [
],
"has_more": false,
"total_count": 0,
"url": "/v1/charges/ch_1AS7Iv2eZvKYlo2CmgEX0bHw/refunds"
},
"review": null,
"shipping": null,
"source": {
"id": "card_19ukSY2eZvKYlo2CHlYUs1DM",
"object": "card",
"address_city": null,
"address_country": null,
"address_line1": null,
"address_line1_check": null,
"address_line2": null,
"address_state": null,
"address_zip": "94301",
"address_zip_check": "pass",
"brand": "Visa",
"country": "US",
"customer": "cus_AFEwvtMn3H17af",
"cvc_check": null,
"dynamic_last4": null,
"exp_month": 12,
"exp_year": 2018,
"fingerprint": "Xt5EWLLDS7FJjR1c",
"funding": "credit",
"last4": "4242",
"metadata": {
},
"name": null,
"tokenization_method": null
},
"source_transfer": null,
"statement_descriptor": null,
"status": "succeeded",
"transfer_group": null
}
Übersetzung Karte
Die Übersetzungskarte zieht Segmente von Daten aus der Rohantwort. In diesem Fall wollen wir vier Felder aus der Rohantwort ziehen.
"translationMap": {
"idValue": "$.id",
"paidValue": "$.paid",
"outcomeValue": "$.outcome",
"sourceValue": "$.source"
}
Die JSONPath-Ausdrücke $.id, $.paid, $.outcomeund $.source extrahieren die Werte aus der Rohantwort und weisen sie den Aliases idValue, paidValue, outcomeValueund sourceValuezu Die Voreinstellungen der Translation Map setzen den Standardwert für sourceValue. Die Erfolgsvorlage verwendet alle diese Aliasnamen.
Standardwerte der Übersetzungskarte
Die Standardwerte der Übersetzungskarte setzen die Schlüssel in der Übersetzungskarte auf Standardwerte. In diesem Fall enthielt die Antwort keine Quelleigenschaft, so dass wir sourceValue auf den Standardwert "UNKNOWN"setzen
"translationMapDefaults": {
"sourceValue": "\"UNKNOWN\""
}
Antworten von Zahlungsanbietern können die Quelleigenschaft in der Übersetzungskarte enthalten oder nicht. Um sicherzustellen, dass wir die Quelleigenschaft verwenden, wenn die Antwort sie enthält, und keinen Fehler auslösen, wenn die Antwort sie nicht enthält, setzen Sie sourceValue in der Übersetzungszuordnung standardmäßig auf "UNKNOWN"
Wenn die Antworten keine anderen Felder in der Übersetzungsübersicht enthalten, schlägt die Aktion fehl.
Erfolgsvorlage
Die Erfolgsvorlage erstellt eine gültige JSON-Antwort, die auf die Aliase idValue, paidValue, und outcomeValue verweist, die in der Übersetzungsübersicht erstellt wurden Die Aliase verweisen auf Werte in der Rohantwort, die für die Übereinstimmung mit dem Erfolgsschema erforderlich sind.
{
"id": ${idValue},
"outcome": ${outcomeValue},
"paid": ${paidValue},
"source": ${sourceValue}
}
Gelöste Antwort
Die Erfolgsvorlage erstellt eine aufgelöste Antwort für die Aktion. Die aufgelöste Antwort ist die Antwort, die die Aktion zurückgibt.
{
"id": "ch_1AS7Iv2eZvKYlo2CmgEX0bHw",
"outcome": {
"network_status": "approved_by_network",
"reason": null,
"risk_level": "normal",
"seller_message": "Payment complete.",
"type": "authorized"
},
"paid": true,
"source": "UNKNOWN"
}
Informationen zur Konfiguration in benutzerdefinierten Aktionen finden Sie unter Konfiguration hinzufügen und Konfiguration ändern
Weitere Informationen finden Sie unter Über benutzerdefinierte Aktionen für Integrationen.
Weitere Informationen zu den Integrationen finden Sie unter Über die Integrationen von Datenaktionen.