Häufig gestellte Fragen und Antworten (FAQ) KB0401952
E-Mail
OpenAPI: Behelfslösung zum Abrufen der Dokument-ID aus der API für analytische Berichterstellung für Anlagen der API für externe Genehmigungen
Dieser Wissensdatenbankartikel wurde maschinell übersetzt. SAP übernimmt keine Gewährleistung für die Richtigkeit oder Vollständigkeit der Maschinenübersetzung. Sie können den Originalinhalt anzeigen, indem Sie über die Sprachauswahl zu "Englisch" wechseln.
Symptom

Wenn Sie versuchen, Dokument-IDs aus dem Aufruf des API zum Abrufen der Entitätsdetails (/{entity_type}/{entity_id}) abzurufen, wird die DocumentId der Anlage nicht zurückgegeben.


Ursache

Mit der API für externe Genehmigungen kann die Clientanwendung die Details eines identifizierten Dokuments über den für die relevante Dokumentart spezifischen Endpunkt GET /{entity_type}/{entity_id} anfordern. Aufgaben (d.h. die DocumentTask-Klasse) sind direkt mit einem bestimmten Datentyp verknüpft, bei dem es sich um ein Dokument (z.B. ContractAgreement oder reguläres Dokument), einen Ordner (Klasse WorkSpaceFolder) oder einen Arbeitsbereich (Klasse ContractWorkspace) handeln kann.

Das aktuelle Design für dieses API liefert Ihnen nur die Details der Daten, die direkt mit der Aufgabe verknüpft sind. Wenn es also direkt mit einem Dokument verknüpft ist, erhalten Sie die Dokumentdetails (z.B. DocumentID). Wenn es mit einem Arbeitsbereich verknüpft ist, erhalten Sie die Arbeitsbereichsdetails (Kopffelder). Arbeitsbereiche enthalten Dokumente, aber da die Aufgabe mit dem Arbeitsbereich und nicht mit dem Dokument (aufgrund der Verschachtelung von Objekten) verknüpft ist, erhalten Sie diese Dokument-ID für mit Arbeitsbereichen verknüpfte Aufgaben nicht. Die Dokumentation ist insofern korrekt, als die API Aufgaben unterstützt, die mit Arbeitsbereichen verknüpft sind, aber nur Arbeitsbereichskopffelder und nicht alle verschachtelten Dokumente innerhalb eines Arbeitsbereichs enthält.

Wenn Sie die Aufgabe aus Entwurfsperspektive direkt mit dem Arbeitsbereich verknüpft haben, bedeutet dies, dass der Benutzer kein bestimmtes Dokument prüfen muss und der Benutzer den Vertrag nur in einer Perspektive auf Kopfebene überprüfen muss. Wenn Sie einen Benutzer benötigen, um bestimmte Dokumente zu überprüfen, können Sie Aufgaben erstellen, die speziell mit diesen Dokumenten verknüpft sind.


Lösung

Die mögliche Behelfslösung zum Abrufen der Dokument-IDs besteht darin, eine benutzerspezifische Ansichtsvorlage in der API für analytische Berichterstellung nach Projekt-IDs zu verwenden und dann den Dokumentendpunkt der API für externe Genehmigungen zum Abrufen des Dokuments zu verwenden.

Dokument-ID aus API für analytische Berichterstellung abrufen:

  1. Erstellen Sie in der API für analytische Berichterstellung eine benutzerspezifische Vorlage zum Abrufen von InternalId by ProjectId, Dokumentart ist DocumentFact.
    curl --location --request POST '{{runtime_url}}/viewTemplates/<Vorlagenname>?realm=<Bereichsname>' \
    --header 'apiKey: <Ihr_API-Schlüssel>' \
    --data-raw '{
    "Status": "Veröffentlicht",
    documentType: DocumentFact,
    "selectAttributes": [
    "LoadCreateTime",
    "LoadUpdateTime",
    "InternalId",
    "ProjectInfo",
    "Titel",
    "Beschreibung",
    "DocumentType",
    "Status",
    "CreateDate",
    "LastModified",
    "AklId"
    ],
    "filterExpressions": [
    {
    "name": "ProjectId",
    "field": "ProjectInfo.ProjectId",
    "op": "=",
    "defaultValue": null
    }
    ]
    }'
  2. Nachdem die benutzerdefinierte Vorlage angelegt wurde, meldet Analysis die synchrone API zum Abrufen der Daten
    curl --location --request GET '{{runtime_url}}/views/<Vorlagenname>?realm=<realm_name>&filters={"ProjectId":"<Project_Id>"}' \
  3. Das Feld InternalId ist die Dokument-ID. Sichern Sie Ihre Eingaben.

Belegdaten aus API für externe Genehmigung abrufen:

  1. Geben Sie über den Endpunkt Get/Document die Dokument-ID an.
    https://openapi.ariba.com/api/sourcing-approval/v1/prod/Document/<InternalId>?realm=<Bereichsname>
  2. Sie erhalten ein JSON-Ergebnis des Dokuments mit fileContent, Erweiterung
  3. Entschlüsseln Sie fileContent aus der Base64-Kodierung, und sichern Sie den Stream gemäß dem kundenspezifischen Feld (pdf, docx, xlsx usw.).

Siehe auch


Gilt für

Lebenszyklus und Leistung von Lieferanten > Lebenszyklus und Leistung von Lieferanten - Open API
Strategische Beschaffung > Strategische Beschaffung - REST-API

Nutzungsbedingungen  |  Copyright  |  Sicherheitsrichtlinie  |  Vertraulichkeit