Spécification d'API REST de validation personnalisée externe

Utilisez cette spécification d'API pour fournir une adresse d'API REST qui permet à Oracle Fusion Cloud Enterprise Data Management de valider des éléments de demande à l'aide d'une logique et de données résidant dans un système externe.

Cloud EDM appelle cette API lorsque des éléments de demande sont validés à l'aide d'une validation personnalisée externe. Le système externe valide les données de la demande et renvoie des messages de validation pour tout élément ou toute action de demande dont la validation échoue. La réponse est ensuite utilisée par Cloud EDM pour afficher les problèmes de validation avec la gravité indiquée dans la validation personnalisée.

Ressource REST

Pour exécuter des validations personnalisées externes :

Méthode HTTP : POST

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

Exemple de chemin : /api/rest/externalValidation

Note:

Le corps de la demande et la réponse sont requis pour exécuter des validations personnalisées externes.

Pour tester la connexion globale de validation externe (reportez-vous à la section Création de connexions globales) :

Méthode HTTP : GET

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

Exemple de chemin : /api/rest/externalValidation

Note:

Le corps de la demande et la réponse ne sont pas requis pour tester la connexion globale.

Authentification

Les demandes HTTP adressées au système externe doivent fournir les informations d'identification d'authentification de base HTTP via l'en-tête Authorization.

Demande d'API

Types de support pris en charge : application/json

Le tableau suivant récapitule la demande client.

Table 20-6 Paramètres

Nom Description Requis Valeur par défaut
requestId Identificateur de la demande EDM. Oui Aucun
applicationId Identificateur de l'application EDM. Oui Aucun
validationId Identificateur de la validation personnalisée EDM. Oui Aucun
validationKey Nom du programme de validation externe. Oui Aucun
data (reportez-vous au Table 20-7) Ensemble de données de validation regroupées par dimension. Oui Aucun

Table 20-7 Paramètres pour data

Nom Description Requis Valeur par défaut
dimensionId Identificateur de la dimension EDM. Oui Aucun
dimensionName Nom de la dimension externe provenant de la dimension d'application. Oui Aucun
nodeTypeId Identificateur du type de noeud EDM. Oui Aucun
dataSetKey Nom de l'ensemble de données externe. Oui Aucun
nodes (reportez-vous au Table 20-8) Ensemble de noeuds en cours de validation. Oui Aucun

Table 20-8 Paramètres pour nodes

Nom Description Requis Valeur par défaut
nodeName Nom du noeud EDM. Oui Aucun
actions (reportez-vous au Table 20-9) Ensemble d'actions associées au noeud. Oui Aucun

Table 20-9 Paramètres pour actions

Nom Description Requis Valeur par défaut
actionId Identificateur de l'action EDM. Oui Aucun
actionType Type d'action en cours de validation. Les valeurs valides sont add, delete, insert, remove, move, reorder, rename et update. Oui Aucun
parentName Nom du noeud parent. Requis lorsque l'action se trouve dans une vue de hiérarchie. Aucun
oldParentName Nom du noeud parent précédent pour une action move. Requis pour les actions move. Aucun
previousSibling Nom du noeud semblable précédent pour une action reorder. Utilisez null si le noeud est en cours de déplacement vers la première position. Requis pour les actions reorder. Aucun
newName Nouveau nom de noeud pour une action rename. Requis pour les actions rename. Aucun
propertyName Nom de propriété pour une action update. Requis pour les actions update. Aucun
propertyFromValue Valeur de propriété en cours pour une action update. Requis pour les actions update. Aucun
propertyToValue Valeur de propriété mise à jour pour une action update. Requis pour les actions update. Aucun

Exemples de demande

{
  "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"
            }
          ]
        }
      ]
    }
  ]
}

Réponse d'API

Type de support pris en charge : application/json

Table 20-10 Paramètres

Nom Description Requis Valeur par défaut
requestId Identificateur de la demande EDM. Oui Aucun
applicationId Identificateur de l'application EDM. Oui Aucun
validationId Identificateur de la validation personnalisée EDM. Oui Aucun
validationKey Nom du programme de validation externe. Oui Aucun
data (reportez-vous au Table 20-11) Ensemble de résultats de validation regroupés par dimension. Oui Aucun

Table 20-11 Paramètres pour data

Nom Description Requis Valeur par défaut
dimensionId Identificateur de la dimension EDM. Oui Aucun
nodeTypeId Identificateur du type de noeud EDM. Oui Aucun
dataSetKey Nom de l'ensemble de données externe. Oui Aucun
nodes (reportez-vous au Table 20-12) Ensemble de noeuds avec des résultats de validation. Oui Aucun

Table 20-12 Paramètres pour nodes

Nom Description Requis Valeur par défaut
nodeName Nom du noeud EDM. Oui Aucun
message Message de validation au niveau du noeud renvoyé par le système externe. Non Aucun
severity Gravité du message de validation au niveau du noeud. Non Aucun
validationMessages (reportez-vous au Table 20-13) Ensemble de messages de validation au niveau de l'action. Oui Aucun

Table 20-13 Paramètres pour validationMessages

Nom Description Requis Valeur par défaut
actionID Identificateur de l'action EDM. Oui Aucun
actionType Type d'action dont la validation a échoué. Oui Aucun
message Message de validation renvoyé par le système externe. Oui Aucun
severity Gravité du message de validation au niveau de l'action. Non Error

Exemple de réponse

{
  "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"
            }
          ]
        }
      ]
    }
  ]
}

Exemple

L'exemple suivant montre comment exécuter une validation externe en soumettant une requête POST sur la ressource REST à l'aide de cURL.

Commande cURL

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