Especificação da API REST de Validação Personalizada Externa

Use esta especificação de API para fornecer um ponto final de API REST que permita que o Oracle Fusion Cloud Enterprise Data Management valide itens de solicitação usando lógica e dados que residem em um sistema externo.

O Cloud EDM chama essa API quando os itens de solicitação são validados usando uma validação personalizada Externa. O sistema externo valida os dados da solicitação e retorna mensagens de validação para quaisquer itens ou ações de solicitação que falhem na validação. Em seguida, a resposta é usada pelo Cloud EDM para exibir os problemas de validação com a severidade especificada na validação personalizada.

Recurso REST

Para executar validações personalizadas externas:

Método HTTP: POST

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

Exemplo de caminho: /api/rest/externalValidation

Note:

Corpo e Resposta da Solicitação são obrigatórios para executar validações personalizadas externas.

Para testar a conexão global de Validação Externa: (consulte Criação de Conexões Globais)

Método HTTP: POST

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

Exemplo de caminho: /api/rest/externalValidation

Note:

O Corpo e a Resposta da Solicitação não são necessários para testar a conexão global.

Autenticação

As solicitações HTTP para o sistema externo devem fornecer credenciais de Autenticação Básica HTTP por meio do cabeçalho Authorization.

Solicitação de API

Tipos de Mídia Suportados: application/json

A tabela a seguir resume a solicitação do cliente.

Table 20-6 Parâmetros

Nome Descrição Obrigatório Padrão
requestId O identificador da solicitação EDM Sim Nenhum
applicationId O identificador do aplicativo EDM Sim Nenhum
validationId O identificador de validação personalizado do EDM. Sim Nenhum
validationKey O nome do programa de validação externa Sim Nenhum
data (consulte Table 20-7) Coleta de dados de validação agrupados por dimensão Sim Nenhum

Table 20-7 Parâmetros para data

Nome Descrição Obrigatório Padrão
dimensionId O identificador da dimensão EDM Sim Nenhum
dimensionName O nome da dimensão externa da Dimensão do Aplicativo. Sim Nenhum
nodeTypeId O identificador do tipo de nó EDM. Sim Nenhum
dataSetKey O nome do conjunto de dados externo Sim Nenhum
nodes (consulte Table 20-8) Coleção de nós que estão sendo validados Sim Nenhum

Table 20-8 Parâmetros para data

Nome Descrição Obrigatório Padrão
nodeName O nome do nó EDM Sim Nenhum
actions (consulte Table 20-9) Conjunto de ações associadas ao nó. Sim Nenhum

Table 20-9 Parâmetros para data

Nome Descrição Obrigatório Padrão
actionId O identificador da ação EDM Sim Nenhum
actionType O tipo de ação que está sendo validado. Os valores válidos incluem add, delete, insert, remove, move, reorder, rename e update. Sim Nenhum
parentName O nome do nó pai. Obrigatório quando a ação estiver em uma exibição de hierarquia. Nenhum
oldParentName O nome do nó pai anterior para uma ação move. Obrigatório para ações move. Nenhum
previousSibling O nome do nó irmão anterior para uma ação reorder. Use null se o nó estiver sendo movido para a primeira posição. Obrigatório para ações reorder. Nenhum
newName O novo nome do nó para uma ação rename. Obrigatório para ações rename. Nenhum
propertyName O nome da propriedade para uma ação update. Obrigatório para ações update. Nenhum
propertyFromValue O valor da propriedade atual para uma ação update. Obrigatório para ações update. Nenhum
propertyToValue O valor da propriedade atualizado para uma ação update. Obrigatório para ações update. Nenhum

Solicitação de Exemplo

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

Resposta da API

Tipos de Mídia Suportados: application/json

Table 20-10 Parâmetros

Nome Descrição Obrigatório Padrão
requestId O identificador da solicitação EDM Sim Nenhum
applicationId O identificador do aplicativo EDM Sim Nenhum
validationId O identificador de validação personalizado do EDM. Sim Nenhum
validationKey O nome do programa de validação externa Sim Nenhum
data (consulte Table 20-11) Coleta de resultados de validação agrupados por dimensão Sim Nenhum

Table 20-11 Parâmetros para data

Nome Descrição Obrigatório Padrão
dimensionId O identificador da dimensão EDM Sim Nenhum
nodeTypeId O identificador do tipo de nó EDM. Sim Nenhum
dataSetKey O nome do conjunto de dados externo Sim Nenhum
nodes (consulte Table 20-12) Coleta de nós com resultados de validação Sim Nenhum

Table 20-12 Parâmetros para data

Nome Descrição Obrigatório Padrão
nodeName O nome do nó EDM Sim Nenhum
message Uma mensagem de validação no nível do nó retornada pelo sistema externo. Não Nenhum
severity A severidade da mensagem de validação no nível do nó. Não Nenhum
validationMessages (consulte Table 20-13) Conjunto de mensagens de validação no nível da ação. Sim Nenhum

Table 20-13 Parâmetros para validationMessages

Nome Descrição Obrigatório Padrão
actionID O identificador da ação EDM Sim Nenhum
actionType O tipo de ação que falhou na validação. Sim Nenhum
message A mensagem de validação retornada pelo sistema externo. Sim Nenhum
severity A severidade da mensagem de validação no nível da ação. Não Error

Exemplo de Resposta

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

Exemplo

O exemplo a seguir mostra como executar uma validação externa enviando uma solicitação de postagem no recurso REST usando o 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