Dokumente verarbeiten

In dieser Kurzanleitung erfahren Sie, wie Sie Dokumente (Rechnungen) aus einem Quell-Bucket verarbeiten und das verarbeitete Dokument (JSON-Datei) in einem Ziel-Bucket speichern. Dazu verwenden Sie die Batchverarbeitungsfunktion der Document AI API.

Hinweis

Bevor Sie diese Kurzanleitung ausführen, müssen Sie oder Ihre Administratoren die folgenden Voraussetzungen erfüllt haben:

  • Die Authentifizierung für den Zugriff auf Google Cloud APIs ist eingerichtet. Authentifizierung einrichten

  • Achten Sie darauf, dass die Document AI API in Ihrem Google Cloud-Projekt aktiviert ist.

    Zur API-Bibliothek

  • Erstellen Sie in der Document AI Workbench einen Prozessor mit dem Typ INVOICE_PROCESSOR. Weitere Informationen finden Sie unter Prozessoren erstellen und verwalten.

  • Erstellen Sie in Cloud Storage einen Quell-Bucket, um die Rechnungen zur Verarbeitung zu speichern, und platzieren Sie die Rechnungen in diesem Bucket. Weitere Informationen finden Sie unter Buckets erstellen.

  • Erstellen Sie in Cloud Storage einen Ziel-Bucket zum Speichern der verarbeiteten Dateien.

Programm zur Dokumentverarbeitung erstellen

  1. Erstellen Sie im SAP-System ein ausführbares Programm in Ihrem benutzerdefinierten Namespace (z. B. Z oder Y) mit der Transaktion SE38.

    1. Geben Sie in der SAP-GUI den Transaktionscode SE38 ein.

    2. Geben Sie im Feld Programm einen Namen für Ihr Programm ein, z. B. ZDEMO_DOCUMENT_AI.

    3. Klicken Sie auf Erstellen.

    4. Geben Sie die Programmattribute an:

      1. Geben Sie im Feld Titel den Titel Ihres Programms ein, z. B. Process invoices.

      2. Wählen Sie im Feld Typ die Option Executable Program aus.

      3. Klicken Sie auf Speichern.

    5. Speichern Sie das Programm als lokales Objekt.

    6. Fügen Sie im ABAP-Editor folgenden Code ein:

      **********************************************************************
      *  Copyright 2023 Google LLC                                         *
      *                                                                    *
      *  Licensed under the Apache License, Version 2.0 (the "License");   *
      *  you may not use this file except in compliance with the License.  *
      *  You may obtain a copy of the License at                           *
      *      https://www.apache.org/licenses/LICENSE-2.0                   *
      *  Unless required by applicable law or agreed to in writing,        *
      *  software distributed under the License is distributed on an       *
      *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,      *
      *  either express or implied.                                        *
      *  See the License for the specific language governing permissions   *
      *  and limitations under the License.                                *
      **********************************************************************
      
      REPORT zr_qs_process_documents.
      
      * data declarations
      DATA:
        lv_p_projects_id   TYPE string,
        lv_p_locations_id  TYPE string,
        lv_p_processors_id TYPE string,
        ls_input           TYPE /goog/cl_documentai_v1=>ty_017.
      
      TRY.
      
      * open http connection
          DATA(lo_client) = NEW /goog/cl_documentai_v1( iv_key_name = 'DEMO_DOC_PROCESSING' ).
      
      * populate relevant parameters
          lv_p_projects_id  = 'PROJECT_ID'.
          lv_p_locations_id = 'LOCATION_ID'.
          lv_p_processors_id = 'PROCESSOR_ID'.
          ls_input-input_documents-gcs_prefix-gcs_uri_prefix = 'SOURCE_BUCKET_URI'.
          ls_input-document_output_config-gcs_output_config-gcs_uri = 'TARGET_BUCKET_URI'.
      
      * call api method
          CALL METHOD lo_client->batch_process_processors
            EXPORTING
              iv_p_projects_id   = lv_p_projects_id
              iv_p_locations_id  = lv_p_locations_id
              iv_p_processors_id = lv_p_processors_id
              is_input           = ls_input
            IMPORTING
              es_output          = DATA(ls_output)
              ev_ret_code        = DATA(lv_ret_code)
              ev_err_text        = DATA(lv_err_text)
              es_err_resp        = DATA(ls_err_resp).
      
          IF lo_client->is_success( lv_ret_code ).
            MESSAGE 'Success' TYPE 'S'.
          ELSE.
            MESSAGE lv_err_text TYPE 'E'.
          ENDIF.
      
      * close http connection
          lo_client->close( ).
      
        CATCH /goog/cx_sdk INTO DATA(lo_exception).
          MESSAGE lo_exception->get_text( ) TYPE 'E'.
      ENDTRY.
      

      Dabei gilt:

      • DEMO_DOC_PROCESSING: Name des Clientschlüssels.
      • PROJECT_ID: ID des Google Cloud-Projekts.
      • LOCATION_ID: Standort des Prozessors.
      • PROCESSOR_ID: ID des Prozessors.
      • SOURCE_BUCKET_URI: URI des Cloud Storage-Bucket-Ordners, in dem Quelldokumente für die Verarbeitung gespeichert werden.
      • TARGET_BUCKET_URI: URI des Cloud Storage-Buckets, in dem das verarbeitete Dokument (JSON-Datei) gespeichert werden soll.
  2. Führen Sie die Anwendung in SE38 aus.

  3. So prüfen Sie die Ergebnisse:

    1. Wechseln Sie in der Cloud Console zur Seite Cloud Storage-Buckets.

    2. Öffnen Sie den Ziel-Bucket. Das verarbeitete Dokument wird in Form einer JSON-Datei gespeichert.

Nächste Schritte