FAQ KB0401952
전자우편
OpenAPI: 외부 승인 API 첨부파일에 대한 분석 보고 API 해결 방법에서 문서 ID 가져오기
이 지식 기반 문서는 사용자의 편의를 위해 기계 번역되었습니다. SAP에서는 기계 번역의 정확성 또는 완전성을 보증하지 않습니다. 언어 선택 도구를 통해 영어로 전환하여 원래 콘텐츠를 찾을 수 있습니다.
증명서

Get Entity Details API(/{entity_type}/{entity_id}) 호출에서 문서 ID를 검색하려고 하면 첨부파일의 DocumentId가 반환되지 않습니다.


구성원

외부 승인 API를 사용하면 클라이언트 어플리케이션에서 관심 문서 유형에 고유한 GET /{entity_type}/{entity_id} 엔드포인트를 사용하여 식별된 문서의 세부사항을 요청할 수 있습니다. 작업(DocumentTask 클래스)은 문서(예: ContractAgreement 또는 일반 문서), 폴더(WorkSpaceFolder 클래스) 또는 작업 영역(ContractWorkspace 클래스)이 될 수 있는 하나의 특정 데이터 유형에 직접 연결됩니다.

이 API의 현재 디자인은 태스크에 직접 연결된 데이터의 세부사항만 제공합니다. 따라서 문서가 문서에 직접 연결되어 있으면 문서 세부사항(예: DocumentID)을 가져오고 작업 공간에 연결되어 있으면 작업 공간 세부사항(헤더 필드)이 표시됩니다. 작업 영역에는 문서가 있지만 작업이 작업 영역에 연결되고 (개체 중첩으로 인해) 문서가 없으므로 작업 공간이 연결된 작업에 대해 해당 문서 ID를 가져올 수 없습니다. API는 작업 공간에 연결된 태스크를 지원한다는 점에서 설명서가 맞지만, 작업 공간 헤더 필드만 제공하며 작업 공간 내의 모든 중첩 문서를 제공하지는 않습니다.

디자인 관점에서 작업을 작업 영역에 직접 연결한 경우 사용자가 특정 문서를 검토할 필요가 없으며 헤더 레벨 관점에서 계약을 검토하는 것만 있으면 된다는 의미입니다. 특정 문서를 검토하기 위해 사용자가 필요한 경우 해당 문서에 연결된 작업을 생성할 수 있습니다.


해답

DocumentId를 검색하는 해결 방법은 ProjectIds의 Analytical Reporting API에서 사용자 정의 viewTemplate을 사용한 다음 외부 승인 API 문서 엔드포인트를 사용하여 문서를 검색하는 것입니다.

분석 리포팅 API에서 문서 ID를 가져옵니다.

  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. 사용자 정의 템플릿이 생성되면 Analysis 보고서 작성 동기 API로 데이터를 가져옵니다.
    curl --location --request GET '{{runtime_url}}/views/<template_name>?realm=<realm_name>&filters={"ProjectId":"<Project_Id>"}' \
  3. InternalId 필드는 문서 ID입니다. 저장하세요

외부 승인 API에서 문서 데이터를 가져옵니다.

  1. Get /Document 엔드포인트를 사용하여 문서 ID 지정
    https://openapi.ariba.com/api/sourcing-approval/v1/prod/Document/<InternalId>?realm=<realm_name>
  2. fileContent, 확장자가 인 문서의 JSON 결과를 받게 됩니다.
  3. Base64 인코딩에서 fileContent를 디코딩하고 확장 필드(pdf, docx, xlsx 등)에 따라 스트림을 저장합니다.

또한 다음을 참조하십시오.


적용 대상

공급자 수명 주기 및 실적 > 공급자 수명 주기 및 실적 - 오픈 API
전략적 소싱 > 전략적 소싱 - REST API

사용 약관  |  저작권  |  보안 관련 정보  |  개인 정보 보호