Elabora i documenti

Questa guida rapida mostra come elaborare i documenti (fatture) da un bucket di origine e archiviare il documento elaborato (file JSON) in un bucket di destinazione utilizzando la funzionalità di elaborazione batch dell'API Document AI.

Prima di iniziare

Prima di eseguire questa guida rapida, assicurati che tu o i tuoi amministratori abbiate completato i seguenti prerequisiti:

  • Assicurati che l'API Document AI sia abilitata nel tuo progetto Google Cloud.

    Vai alla libreria API

  • In Document AI Workbench, crea un processore di tipo INVOICE_PROCESSOR. Per saperne di più, vedi Creazione e gestione dei processori.

  • In Cloud Storage, crea un bucket di origine per archiviare le fatture da elaborare e inserirle in questo bucket. Per saperne di più, consulta la sezione Creare bucket.

  • In Cloud Storage, crea un bucket di destinazione per archiviare i file elaborati.

Crea un programma per elaborare documenti

  1. Nel sistema SAP, crea un programma eseguibile nel tuo spazio dei nomi personalizzato (ad esempio Z o Y) utilizzando la transazione SE38.

    1. Nella GUI di SAP, inserisci il codice transazione SE38.

    2. Nel campo Programma, inserisci il nome del programma, ad esempio ZDEMO_DOCUMENT_AI.

    3. Fai clic su Crea.

    4. Specifica gli attributi del programma:

      1. Nel campo Titolo, inserisci un titolo per il programma, ad esempio Process invoices.

      2. Nel campo Tipo, scegli Executable Program.

      3. Fai clic su Salva.

    5. Salva il programma come oggetto locale.

    6. Nell'Editor ABAP, aggiungi il seguente codice:

      **********************************************************************
      *  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.
      

      Sostituisci quanto segue:

      • DEMO_DOC_PROCESSING: nome della chiave client.
      • PROJECT_ID: l'ID del progetto Google Cloud.
      • LOCATION_ID: la località del processore.
      • PROCESSOR_ID: l'ID del responsabile.
      • SOURCE_BUCKET_URI: l'URI della cartella dei bucket Cloud Storage in cui vengono conservati per l'elaborazione i documenti di origine.
      • TARGET_BUCKET_URI: l'URI del bucket Cloud Storage in cui verrà archiviato il documento elaborato (file JSON).
  2. Esegui l'applicazione in SE38.

  3. Per convalidare i risultati:

    1. Nella console Google Cloud, vai alla pagina Bucket di Cloud Storage.

    2. Apri il bucket di destinazione. Il documento elaborato viene archiviato sotto forma di file JSON.

Passaggi successivi