常见问题 KB0401952
电子邮件
OpenAPI:从外部审批 API 附件的分析报告 API 解决方案中获取文档标识
为您方便起见,此知识库文章由机器进行翻译。SAP Ariba 不会对有关机器翻译的准确性或完整性提供任何保证。您可以通过使用语言选择器切换到英语来查找原始内容。
症状

尝试从获取实体详细信息 API (/{entity_type}/{entity_id}) 调用中检索文档标识不会返回附件的文档标识


原因

外部审批 API 允许客户端应用程序使用特定于感兴趣的文档类型的 GET /{entity_type}/{entity_id} 端点请求已识别文档的详细信息。任务(即 DocumentTask 类)直接链接到一种特定类型的数据,可以是文档(如 ContractAgreement 或常规文档)、文件夹(WorkSpaceFolder 类)或工作区(ContractWorkspace 类)。

此 API 的当前设计只会为您提供直接链接到任务的数据的详细信息。因此,如果直接链接到文档,您将获得文档详细信息(如 DocumentID),如果链接到工作区,您将获得工作区详细信息(抬头字段)。工作区包含文档,但由于任务已链接到工作区,而不是文档(由于对象的嵌套),因此您将无法获得工作区链接任务的文档标识符。文档正确,因为 API 支持链接到工作区的任务,但它仅提供工作区标题字段,而不是工作区中的所有嵌套文档。

从设计角度来看,如果您将任务直接链接到工作区,则意味着您不需要用户审阅任何特定文档,只需用户在抬头级别角度审阅合同。如果需要用户审阅特定文档,则可以创建专门链接到这些文档的任务。


解决方案

检索 DocumentId 的可行解决方案是使用自定义视图项目标识在分析报告 API 上的模板,然后使用外部审批 API 文档端点检索文档。

分析报告 API 获取文档标识符:

  1. 在分析报告 API 上,创建自定义模板以 ProjectId 获取 InternalId,文档类型为 DocumentFact
    curl --location --request POST '{{runtime_url}}/viewTemplates/<template_name>?realm=<realm_name>' \
    --header 'apiKey: <your_api_key>' \
    --data-raw '{
    “状态”:“已发布”,
    “documentType”:“DocumentFact”,
    "selectAttributes": [
    "LoadCreateTime"、
    "LoadUpdateTime"、
    "InternalId"、
    "ProjectInfo"、
    “标题”、
    “描述”、
    "DocumentType"、
    “状态”、
    "CreateDate"、
    "LastModified"、
    “AclId”
    ],
    "filterExpressions": [
    {
    "name": "ProjectId",
    "field": "ProjectInfo.ProjectId",
    "op": "=",
    “defaultValue”:null
    }
    ]
    }'
  2. 创建自定义模板后,分析报告用于获取数据的同步 API
    curl --location --request GET '{{runtime_url}}/views/<template_name>?realm=<realm_name>&filters={"ProjectId":"<Project_Id>"}' \
  3. InternalId 字段是文档标识符。保存它

从外部审批 API 中获取凭证数据:

  1. 使用获取 /文档端点指定文档标识
    https://openapi.ariba.com/api/sourcing-approval/v1/prod/Document/<InternalId>?realm=<realm_name>
  2. 您将收到具有 fileContent、扩展名的文档的 JSON 结果
  3. 从 Base64 编码解码 fileContent 并根据扩展字段(pdf、docx、xlsx 等)保存流

另请参照


适用产品

Supplier Lifecycle & Performance > Supplier Lifecycle & Performance - 开放 API
战略寻源 > 战略寻源 - REST API

使用条款  |  版权所有  |  安全披露  |  隐私