Elaborare documenti

Questa guida introduttiva 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 collettiva 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:

  • L'autenticazione per accedere alle API Google Cloud è configurata. Scopri come configurare l'autenticazione.

  • 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 scoprire di più, consulta la pagina Creare e gestire i processori.

  • In Cloud Storage, crea un bucket di origine per archiviare le fatture da elaborare e inseriscile al suo interno. Per ulteriori informazioni, vedi Creare bucket.

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

Creare un programma per l'elaborazione dei documenti

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

    1. In SAP GUI, inserisci il codice transazione SE38.

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

    3. Fai clic su Crea.

    4. Specifica gli attributi del programma:

      1. Nel campo Title (Titolo), inserisci il titolo del 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: il nome della chiave client.
      • PROJECT_ID: l'ID del progetto Google Cloud.
      • LOCATION_ID: la posizione del processore.
      • PROCESSOR_ID: l'ID del processore.
      • SOURCE_BUCKET_URI: l'URI della cartella del bucket Cloud Storage in cui vengono conservati i documenti di origine per l'elaborazione.
      • 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 in Cloud Storage.

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

Passaggi successivi