Dokumente verarbeiten

In dieser Kurzanleitung erfahren Sie, wie Sie Dokumente (Rechnungen) aus einem Cloud Storage-Quell-Bucket verarbeiten und das verarbeitete Dokument (JSON-Datei) in einem Ziel-Bucket speichern. Dazu verwenden Sie die Batchverarbeitungsfunktion von Document AI API über die SAP BTP-Version des ABAP SDK for Google Cloud.

Hinweise

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

  • 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 für die Verarbeitung zu speichern, und legen Sie die Rechnungen in diesem Bucket ab. Weitere Informationen finden Sie unter Buckets erstellen.

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

ABAP-Klasse zum Verarbeiten von Dokumenten erstellen

  1. Paket erstellen:

    1. Rufen Sie in ADT den Project Explorer auf.
    2. Klicken Sie mit der rechten Maustaste auf das Paket ZLOCAL und wählen Sie Neu > ABAP-Paket aus.
    3. Geben Sie die folgenden Details für das Paket ein:

      • Name: Geben Sie ZABAPSDK_TEST ein.
      • Beschreibung: Geben Sie ABAP SDK Test Package ein.
    4. Klicken Sie auf Weiter.

    5. Klicken Sie im Dialogfeld Transportanfrage auswählen das Kästchen Neue Anfrage erstellen an.

    6. Geben Sie eine Beschreibung für die Transportanfrage ein.

    7. Klicken Sie auf Beenden.

  2. Erstellen Sie eine ABAP-Klasse, um die Document AI API aufzurufen:

    1. Klicken Sie mit der rechten Maustaste auf Ihr ABAP-Paket und wählen Sie Neu > ABAP-Klasse aus.
    2. Geben Sie die folgenden Details für Ihre ABAP-Klasse ein:

      • Name: Geben Sie ZGOOG_CL_QS_DOCUMENT_AI ein.
      • Beschreibung: Geben Sie Quick start for Document AI API ein.
    3. Klicken Sie auf Weiter.

    4. Wählen Sie eine Transportanfrage aus und klicken Sie auf Fertigstellen.

  3. Ersetzen Sie im Code-Editor den Standardcode durch das folgende Code-Snippet:

    " --------------------------------------------------------------------
    "  Copyright 2024 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.                                -
    " --------------------------------------------------------------------
    CLASS zcl_qs_process_documents DEFINITION
      PUBLIC FINAL
      CREATE PUBLIC.
    
      PUBLIC SECTION.
        INTERFACES if_oo_adt_classrun.
    ENDCLASS.
    
    
    CLASS zcl_qs_process_documents IMPLEMENTATION.
      METHOD if_oo_adt_classrun~main.
        DATA lv_p_projects_id   TYPE string.
        DATA lv_p_locations_id  TYPE string.
        DATA lv_p_processors_id TYPE string.
        DATA ls_input           TYPE /goog/cl_documentai_v1=>ty_017.
        DATA lo_docai           TYPE REF TO /goog/cl_documentai_v1.
    
        TRY.
    
            " Open HTTP connection
            lo_docai = NEW #( iv_key_name = 'DEMO_DOC_PROCESSING' ).
    
            " Populate relevant parameters to be passed to API
            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
            lo_docai->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_docai->is_success( lv_ret_code ) = abap_true.
              out->write( |API call successful| ).
            ELSE.
              out->write( |Error occurred during API call| ).
              out->write( lv_err_text ).
            ENDIF.
    
            " Close HTTP connection
            lo_docai->close( ).
    
          CATCH /goog/cx_sdk INTO DATA(lo_exception). " TODO: variable is assigned but never used (ABAP cleaner)
            " Handle exception here
        ENDTRY.
      ENDMETHOD.
    ENDCLASS.
    

    Ersetzen Sie Folgendes:

    • DEMO_DOC_PROCESSING: Name des Clientschlüssels.
    • PROJECT_ID ist die ID des Google Cloud-Projekts, für das die Document AI API aktiviert ist.
    • 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.
  4. Speichern und aktivieren Sie die Änderungen.

  5. Führen Sie Ihre Anwendung aus:

    1. Wählen Sie die ABAP-Klasse ZGOOG_CL_QS_DOCUMENT_AI aus.
    2. Klicken Sie auf Ausführen > Ausführen als > ABAP-Anwendung (Console). Alternativ können Sie F9 drücken.
  6. So prüfen Sie die Ergebnisse:

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

      Buckets aufrufen

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

Nächste Schritte