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 获取文档标识符:
- 在分析报告 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
}
]
}'
- 创建自定义模板后,分析报告用于获取数据的同步 API
curl --location --request GET '{{runtime_url}}/views/<template_name>?realm=<realm_name>&filters={"ProjectId":"<Project_Id>"}' \
- InternalId 字段是文档标识符。保存它
从外部审批 API 中获取凭证数据:
- 使用获取 /文档端点指定文档标识
https://openapi.ariba.com/api/sourcing-approval/v1/prod/Document/<InternalId>?realm=<realm_name> - 您将收到具有 fileContent、扩展名的文档的 JSON 结果
- 从 Base64 编码解码 fileContent 并根据扩展字段(pdf、docx、xlsx 等)保存流
Supplier Lifecycle & Performance > Supplier Lifecycle & Performance - 开放 API
战略寻源 > 战略寻源 - REST API