Spezifikation für externe benutzerdefinierte Validierungs-REST-API

Mit dieser API-Spezifikation können Sie einen REST-API-Endpunkt bereitstellen, mit dem Oracle Fusion Cloud Enterprise Data Management Anforderungselemente mit Logik und Daten in einem externen System validieren kann.

Cloud EDM ruft diese API auf, wenn Anforderungselemente mit einer externen benutzerdefinierten Validierung validiert werden. Das externe System validiert die Anforderungsdaten und gibt Validierungsmeldungen für alle Anforderungselemente oder Aktionen zurück, für die die Validierung nicht erfolgreich war. Die Antwort wird dann von Cloud EDM verwendet, um die Validierungsprobleme mit dem in der benutzerdefinierten Validierung angegebenen Schweregrad anzuzeigen.

REST-Ressource

So führen Sie externe benutzerdefinierte Validierungen aus:

HTTP-Methode: POST

Pfad: Configured external validation path as defined in the External Validation global connection

Pfadbeispiel: /api/rest/externalValidation

Note:

Anforderungstext und -antwort sind erforderlich, um externe benutzerdefinierte Validierungen auszuführen.

So testen Sie die globale Verbindung für die externe Validierung (siehe Globale Verbindungen erstellen):

HTTP-Methode: GET

Pfad: Configured external validation path as defined in the External Validation global connection

Pfadbeispiel: /api/rest/externalValidation

Note:

Für das Testen der globalen Verbindung sind kein Anforderungsbody und keine Antwort erforderlich.

Authentifizierung

HTTP-Anforderungen an das externe System müssen Zugangsdaten zur HTTP-Basisauthentifizierung über den Authorization-Header bereitstellen.

API-Anforderung

Unterstützte Medientypen: application/json

Die folgende Tabelle enthält eine Übersicht der Clientanforderung.

Table 20-6 Parameter

Name Beschreibung Erforderlich Standard
requestId Die EDM-Anforderungs-ID Ja Keine
applicationId Die EDM-Anwendungs-ID Ja Keine
validationId Die benutzerdefinierte EDM-Validierungs-ID Ja Keine
validationKey Name des externen Validierungsprogramms Ja Keine
data (siehe Table 20-7) Collection von Validierungsdaten nach Dimension gruppiert Ja Keine

Table 20-7 Parameter für data

Name Beschreibung Erforderlich Standard
dimensionId Die EDM-Dimensions-ID Ja Keine
dimensionName Der Name der externen Dimension aus der Anwendungsdimension Ja Keine
nodeTypeId Die EDM-Knotentyp-ID Ja Keine
dataSetKey Der Name des externen Datasets Ja Keine
nodes (siehe Table 20-8) Collection der zu validierenden Knoten Ja Keine

Table 20-8 Parameter für nodes

Name Beschreibung Erforderlich Standard
nodeName Der Name des EDM-Knotens Ja Keine
actions (siehe Table 20-9) Collection von Aktionen, die dem Knoten zugeordnet sind Ja Keine

Table 20-9 Parameter für actions

Name Beschreibung Erforderlich Standard
actionId Die EDM-Aktions-ID Ja Keine
actionType Der Aktionstyp, der validiert wird. Gültige Werte sind add, delete, insert, remove, move, reorder, rename und update. Ja Keine
parentName Der Name des übergeordneten Knotens. Erforderlich, wenn sich die Aktion in einer Hierarchieansicht befindet Keine
oldParentName Der Name des vorherigen übergeordneten Knotens für eine move-Aktion. Für move-Aktionen erforderlich Keine
previousSibling Der Name des vorherigen gleichgeordneten Knotens für eine reorder-Aktion. Verwenden Sie null, wenn der Knoten an die erste Position verschoben wird. Für reorder-Aktionen erforderlich Keine
newName Der neue Knotenname für eine rename-Aktion. Für rename-Aktionen erforderlich Keine
propertyName Der Eigenschaftsname für eine update-Aktion. Für update-Aktionen erforderlich Keine
propertyFromValue Der aktuelle Eigenschaftswert für eine update-Aktion. Für update-Aktionen erforderlich Keine
propertyToValue Der aktualisierte Eigenschaftswert für eine update-Aktion. Für update-Aktionen erforderlich Keine

Beispielanforderung

{
  "requestId": "edm_request_id",
  "applicationId": "edm_application_id",
  "validationId": "edm_custom_validation_id",
  "validationKey": "external_program_name",
  "data": [
    {
      "dimensionId": "edm_dimension_id",
      "dimensionName": "dimension_name",
      "nodeTypeId": "edm_node_type_id",
      "dataSetKey": "external_data_set_name",
      "nodes": [
        {
          "nodeName": "edm_node_name",
          "actions": [
            {
              "actionId": "edm_action_id",
              "actionType": "add",
              "parentName": "edm_parent_node_name"
            },
            {
              "actionId": "edm_action_id",
              "actionType": "delete",
              "parentName": "edm_parent_node_name"
            },
            {
              "actionId": "edm_action_id",
              "actionType": "insert",
              "parentName": "edm_parent_node_name"
            },
            {
              "actionId": "edm_action_id",
              "actionType": "remove",
              "parentName": "edm_parent_node_name"
            },
            {
              "actionId": "edm_action_id",
              "actionType": "move",
              "parentName": "edm_parent_name",
              "oldParentName": "edm_old_parent_name"
            },
            {
              "actionId": "edm_action_id",
              "actionType": "reorder",
              "parentName": "edm_parent_node_name",
              "previousSibling": "edm_previous_sibling"
            },
            {
              "actionId": "edm_action_id",
              "actionType": "rename",
              "parentName": "edm_parent_node_name",
              "newName": "edm_new_name"
            },
            {
              "actionId": "edm_action_id",
              "actionType": "update",
              "propertyName": "edm_property_name",
              "propertyFromValue": "edm_property_from_value",
              "propertyToValue": "edm_property_to_value",
              "parentName": "edm_parent_node_name"
            }
          ]
        }
      ]
    }
  ]
}

API-Antwort

Unterstützter Medientyp: application/json

Table 20-10 Parameter

Name Beschreibung Erforderlich Standard
requestId Die EDM-Anforderungs-ID Ja Keine
applicationId Die EDM-Anwendungs-ID Ja Keine
validationId Die benutzerdefinierte EDM-Validierungs-ID Ja Keine
validationKey Name des externen Validierungsprogramms Ja Keine
data (siehe Table 20-11) Collection von Validierungsergebnissen nach Dimension gruppiert Ja Keine

Table 20-11 Parameter für data

Name Beschreibung Erforderlich Standard
dimensionId Die EDM-Dimensions-ID Ja Keine
nodeTypeId Die EDM-Knotentyp-ID Ja Keine
dataSetKey Der Name des externen Datasets Ja Keine
nodes (siehe Table 20-12) Collection von Knoten mit Validierungsergebnissen Ja Keine

Table 20-12 Parameter für nodes

Name Beschreibung Erforderlich Standard
nodeName Der Name des EDM-Knotens Ja Keine
message Eine Validierungsmeldung auf Knotenebene, die vom externen System zurückgegeben wird Nein Keine
severity Der Schweregrad der Validierungsmeldung auf Knotenebene Nein Keine
validationMessages (siehe Table 20-13) Collection von Validierungsmeldungen auf Aktionsebene Ja Keine

Table 20-13 Parameter für validationMessages

Name Beschreibung Erforderlich Standard
actionID Die EDM-Aktions-ID Ja Keine
actionType Der Aktionstyp, für den die Validierung nicht erfolgreich war Ja Keine
message Die vom externen System zurückgegebene Validierungsmeldung Ja Keine
severity Der Schweregrad der Validierungsmeldung auf Aktionsebene Nein Error

Beispielantwort

{
  "requestId": "edm_request_id",
  "applicationId": "edm_application_id",
  "validationId": "edm_custom_validation_id",
  "validationKey": "external_program_name",
  "data": [
    {
      "dimensionId": "edm_dimension_id",
      "nodeTypeId": "edm_node_type_id",
      "dataSetKey": "external_data_set_name",
      "nodes": [
        {
          "nodeName": "edm_node_name",
          "message": "external_validation_message",
          "severity": "warning",
          "validationMessages": [
            {
              "actionId": "edm_action_id",
              "actionType": "delete",
              "message": "external_validation_message",
              "severity": "error"
            }
          ]
        }
      ]
    }
  ]
}

Beispiel

Das folgende Beispiel zeigt, wie Sie eine externe Validierung ausführen, indem Sie eine POST-Anforderung für die REST-Ressource mit cURL weiterleiten.

cURL-Befehl

curl --user external_user -X POST -H "Content-Type: application/json" -d @example_request_payload.json https://externalhostname.example.com/api/rest/externalValidation