Especificación de API de REST de validaciones personalizadas externas

Utilice esta especificación de API para proporcionar un punto final de API de REST que permita a Oracle Fusion Cloud Enterprise Data Management validar elementos de solicitud mediante la lógica y los datos que residen en un sistema externo.

Cloud EDM llama a esta API cuando los elementos de solicitud se validan mediante una validación personalizada externa. El sistema externo valida los datos de la solicitud y devuelve mensajes de validación para cualquier elemento de solicitud o acción que falle la validación. A continuación, Cloud EDM utiliza la respuesta para mostrar las incidencias de validación con la gravedad especificada en la validación personalizada.

Recurso REST

Para ejecutar validaciones personalizadas externas:

Método HTTP: POST

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

Ejemplo de ruta: /api/rest/externalValidation

Note:

El cuerpo de la solicitud y la respuesta son necesarios para ejecutar validaciones personalizadas externas.

Para probar la conexión global de validación externa: (consulte Creación de conexiones globales)

Método HTTP: GET

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

Ejemplo de ruta: /api/rest/externalValidation

Note:

El cuerpo de la solicitud y la respuesta no son necesarios para probar la conexión global.

Autentificación

Las solicitudes HTTP al sistema externo deben proporcionar las credenciales de autenticación HTTP básica a través de la cabecera Authorization.

Solicitud de API

Tipos de medio admitidos: application/json

En la siguiente tabla se resume la solicitud del cliente.

Table 20-6 Parámetros

Nombre Descripción Necesario Predeterminado
requestId Identificador de solicitud de EDM Sí Ninguno
applicationId Identificador de aplicación de EDM Sí Ninguno
validationId Identificador de validación personalizada de EDM. Sí Ninguno
validationKey Nombre del programa de validación externa Sí Ninguno
data (consulte Table 20-7) Recopilación de datos de validación agrupados por dimensión Sí Ninguno

Table 20-7 Parámetros para data

Nombre Descripción Necesario Predeterminado
dimensionId Identificador de dimensión de EDM Sí Ninguno
dimensionName Nombre de dimensión externa de la dimensión de aplicación. Sí Ninguno
nodeTypeId Identificador de tipo de nodo de EDM. Sí Ninguno
dataSetKey Nombre del conjunto de datos externo Sí Ninguno
nodes (consulte Table 20-8) Recopilación de nodos que se van a validar Sí Ninguno

Table 20-8 Parámetros para nodes

Nombre Descripción Necesario Predeterminado
nodeName Nombre del nodo de EDM Sí Ninguno
actions (consulte Table 20-9) Recopilación de acciones asociadas al nodo. Sí Ninguno

Table 20-9 Parámetros para actions

Nombre Descripción Necesario Predeterminado
actionId Identificador de acción de EDM Sí Ninguno
actionType Tipo de acción que se va a validar. Los valores válidos son add, delete, insert, remove, move, reorder, rename y update. Sí Ninguno
parentName Nombre del nodo padre. Necesario cuando la acción está en una vista de jerarquía. Ninguno
oldParentName Nombre del nodo padre anterior para una acción move. Necesario para las acciones move. Ninguno
previousSibling Nombre del nodo hermano anterior para una acción reorder. Utilice null si el nodo se va a mover a la primera posición. Necesario para las acciones reorder. Ninguno
newName Nuevo nombre de nodo para una acción rename. Necesario para las acciones rename. Ninguno
propertyName Nombre de propiedad para una acción update. Necesario para las acciones update. Ninguno
propertyFromValue Valor de propiedad actual para una acción update. Necesario para las acciones update. Ninguno
propertyToValue Valor de propiedad actualizado para una acción update. Necesario para las acciones update. Ninguno

Solicitud de ejemplo

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

Respuesta de API

Tipo de medio soportado: application/json

Table 20-10 Parámetros

Nombre Descripción Necesario Predeterminado
requestId Identificador de solicitud de EDM Sí Ninguno
applicationId Identificador de aplicación de EDM Sí Ninguno
validationId Identificador de validación personalizada de EDM. Sí Ninguno
validationKey Nombre del programa de validación externa Sí Ninguno
data (consulte Table 20-11) Recopilación de resultados de validación agrupados por dimensión Sí Ninguno

Table 20-11 Parámetros para data

Nombre Descripción Necesario Predeterminado
dimensionId Identificador de dimensión de EDM Sí Ninguno
nodeTypeId Identificador de tipo de nodo de EDM. Sí Ninguno
dataSetKey Nombre del conjunto de datos externo Sí Ninguno
nodes (consulte Table 20-12) Recopilación de nodos con resultados de validación Sí Ninguno

Table 20-12 Parámetros para nodes

Nombre Descripción Necesario Predeterminado
nodeName Nombre del nodo de EDM Sí Ninguno
message Mensaje de validación de nivel de nodo devuelto por el sistema externo. No Ninguno
severity Gravedad del mensaje de validación de nivel de nodo. No Ninguno
validationMessages (consulte Table 20-13) Recopilación de mensajes de validación de nivel de acción. Sí Ninguno

Table 20-13 Parámetros para validationMessages

Nombre Descripción Necesario Predeterminado
actionID Identificador de acción de EDM Sí Ninguno
actionType Tipo de acción que ha fallado la validación. Sí Ninguno
message Mensaje de validación devuelto por el sistema externo. Sí Ninguno
severity Gravedad del mensaje de validación de nivel de acción. No Error

Ejemplo de respuesta

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

Ejemplo

En el siguiente ejemplo, se muestra cómo ejecutar una validación externa mediante el envío de una solicitud POST en el recurso de REST mediante cURL.

Comando cURL

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