Preguntas más frecuentes KB0401952
Correo electrónico
OpenAPI: Obteniendo el ID de documento de la solución alternativa de la API de informes analíticos para anexos de la API de aprobación externa
Este artículo de la base de conocimientos ha sido traducido automáticamente para su comodidad. SAP no ofrece ninguna garantía con respecto a la exactitud o integridad de la traducción automática. Puede acceder al contenido original si cambia al inglés mediante el selector de idiomas.
Síntoma

El intento de recuperar IDs de documento de la llamada Obtener API de detalles de entidad (/{entity_type}/{entity_id}) no devuelve el DocumentId del adjunto.


Causa

La API de aprobación externa permite que la aplicación de cliente solicite los detalles de un documento identificado mediante el extremo GET /{entity_type}/{entity_id} específico del tipo de interés del documento. Las tareas (es decir, la clase DocumentTask) están vinculadas directamente a un tipo de datos específico que puede ser un documento (como ContractAgreement o un documento normal), una carpeta (clase WorkSpaceFolder) o un área de trabajo (clase ContractWorkspace).

El diseño actual de esta API solo le daría los detalles de los datos que están directamente vinculados a la tarea. Por lo tanto, si está directamente vinculado a un documento, obtendrá los detalles del documento (como DocumentID) y, si está vinculado a un área de trabajo, obtendrá los detalles del área de trabajo (campos de cabecera). Las áreas de trabajo contienen documentos, pero como la tarea está vinculada al área de trabajo y no al documento (debido al anidamiento de objetos), no obtendrá ese ID de documento para las tareas vinculadas al espacio de trabajo. La documentación es correcta porque la API admite tareas vinculadas a áreas de trabajo, pero solo proporciona campos de cabecera del área de trabajo y no todos los documentos anidados dentro de un área de trabajo.

Desde una perspectiva de diseño, si ha vinculado la tarea directamente al área de trabajo, significa que no necesita que el usuario revise ningún documento específico y que solo necesita que el usuario revise el contrato en una perspectiva a nivel de cabecera. Si necesita que un usuario revise documentos específicos, puede crear tareas vinculadas específicamente a esos documentos.


Resolución

La solución alternativa viable para recuperar los DocumentIds es utilizar una plantilla de vista personalizada en la API de informes analíticos por ProjectIds y, a continuación, utilizar el punto final del documento de la API de aprobación externa para recuperar el documento.

Obtener el ID de documento de la API de informes analíticos:

  1. En la API de informes analíticos, cree una plantilla personalizada para obtener InternalId por ProjectId, el tipo de documento es DocumentFact
    curl --location --request POST '{{runtime_url}}/viewTemplates/<template_name>?territorio=<nombre_dominio>' \
    --header 'apiKey: <su_api_key>' \
    --data-raw '{
    "estado": "publicado",
    "documentType": "DocumentFact",
    "selectAttributes": [
    "LoadCreateTime",
    "LoadUpdateTime",
    "InternalId",
    "ProjectInfo",
    "Título",
    "Descripción",
    "DocumentType",
    "Estado",
    "CreateDate",
    "LastModified",
    "AclId"
    ],
    "filterExpressions": [
    {
    "name": "ProjectId",
    "field": "ProjectInfo.ProjectId",
    "op": "=",
    "defaultValue": nulo
    }
    ]
    }'
  2. Una vez creada la plantilla personalizada, Analysis reporting Synchronous API para obtener los datos
    curl --location --request GET '{{runtime_url}}/views/<template_name>?realm=<nombre_territorio>&filter={"IDProyecto":"<ID_Proyecto>"}' \
  3. El campo InternalId es el ID de documento. Guárdalo

Obtener los datos de documento de la API de aprobación externa:

  1. Mediante el extremo Obtener /Document, especifique el ID de documento
    https://openapi.ariba.com/api/sourcing-approval/v1/prod/Document/<InternalId>?territorio=<nombre_dominio>
  2. Recibirá un resultado JSON del documento con fileContent, extensión
  3. Decodificar fileContent de Base64 Encoding y guardar el flujo según el campo de ampliación (pdf, docx, xlsx, etc.)

Ver también


Se aplica a

Ciclo de vida y rendimiento de proveedor > Ciclo de vida y rendimiento de proveedor - API abierta
Sourcing estratégico > Sourcing estratégico - API REST

Condiciones de uso  |  Copyright  |  Declaración de seguridad  |  Privacidad