Perguntas frequentes KB0401952
E-mail
OpenAPI: obtendo o código do documento da solução alternativa da API de relatórios analíticos para anexos da API de aprovação externa
Este artigo da base de conhecimentos foi traduzido automaticamente para sua conveniência. A SAP não fornece qualquer garantia em relação à exatidão ou completude da tradução automática. Você pode encontrar o conteúdo original alternando para inglês, usando o seletor de idioma.
Sintoma

A tentativa de recuperar IDs de documento da API Obter detalhes da entidade (/{entity_type}/{entity_id}) não retorna o DocumentId do anexo.


Causa

A API de aprovação externa permite que o aplicativo de cliente solicite os detalhes de um documento identificado, usando o ponto de extremidade GET /{entity_type}/{entity_id} específico do tipo de documento de interesse. As tarefas (ou seja, a classe DocumentTask) são vinculadas diretamente a um tipo específico de dados que pode ser um documento (como ContractAgreement ou documento normal), pasta (classe WorkSpaceFolder) ou um espaço de trabalho (classe ContractWorkspace).

O design atual desta API só forneceria os detalhes dos dados diretamente vinculados à tarefa. Assim, se ele estiver diretamente vinculado a um documento, você obterá os detalhes do documento (como DocumentID) e, se ele estiver vinculado a um espaço de trabalho, você obteria os detalhes do espaço de trabalho (campos de cabeçalho). Os espaços de trabalho contêm documentos, mas como a tarefa está vinculada ao espaço de trabalho e não ao documento (devido ao aninhamento de objetos), você não receberá esse código do documento para tarefas vinculadas ao espaço de trabalho. A documentação está correta na medida em que a API suporta tarefas vinculadas a espaços de trabalho, mas só fornece campos de cabeçalho do espaço de trabalho e não todos os documentos aninhados em um espaço de trabalho.

De uma perspectiva de design, se você tiver vinculado a tarefa diretamente ao espaço de trabalho, isso significa que você não precisa que o usuário revise nenhum documento específico e só precisa que o usuário revise o contrato em uma perspectiva no nível do cabeçalho. Se você precisar que um usuário revise documentos específicos, pode criar tarefas vinculadas especificamente a esses documentos.


Resolução

A solução alternativa viável para recuperar as DocumentIds é usar um viewTemplate personalizado na API de relatórios analíticos por ProjectIds e, em seguida, usar o ponto de extremidade do documento da API de aprovação externa para recuperar o documento.

Obter o código do documento da API de relatórios analíticos:

  1. Na API de relatórios analíticos, crie um modelo personalizado para buscar InternalId por ProjectId, o tipo de documento é DocumentFact
    curl --location --request POST '{{runtime_url}}/viewTemplates/<template_name>?realm=<realm_name>' \
    --header 'apiKey: <your_api_key>' \
    --data-raw '{
    "status": "publicado",
    "documentType": "DocumentFact",
    "selectAttributes": [
    "LoadCreateTime",
    "LoadUpdateTime",
    "InternalId",
    "ProjectInfo",
    "Título",
    "Descrição",
    "DocumentType",
    "Status",
    "CreateDate",
    "LastModified",
    "AclId"
    ],
    "filterExpressions": [
    {
    "name": "ProjectId",
    "field": "ProjectInfo.ProjectId",
    "op": "=",
    "defaultValue": nulo
    }
    ]
    }'
  2. Assim que o modelo personalizado é criado, Analysis reportando API síncrono para chamar os dados
    curl --location --request GET '{{runtime_url}}/views/<template_name>?realm=<realm_name>&Filters={"ProjectId":"<Project_Id>"}' \
  3. O campo InternalId é o ID do documento. Salve-o

Obtenha os dados do documento da API de aprovação externa:

  1. Usando o ponto de acesso Obter /Documento, especifique o ID do documento
    https://openapi.ariba.com/api/sourcing-approval/v1/prod/Document/<InternalId>?realm=<realm_name>
  2. Você receberá um resultado JSON do documento com fileContent, extensão
  3. Decodificar fileContent da codificação Base64 e salvar o fluxo de acordo com o campo de ampliação (pdf, docx, xlsx, etc.)

Veja também


Aplicável a

Sourcing estratégico > Sourcing estratégico- API REST
Supplier Lifecycle & Performance > Supplier Lifecycle & Performance - API aberta

Termos de uso  |  Copyright  |  Divulgação de segurança  |  Privacidade