Procesa documentos

En esta guía de inicio rápido, se muestra cómo procesar documentos (facturas) desde un bucket de origen y almacenar el documento procesado (archivo JSON) en un bucket de destino mediante el uso de la capacidad de procesamiento por lotes de la API de Document AI.

Antes de comenzar

Antes de ejecutar esta guía de inicio rápido, asegúrate de que tú o tus administradores hayan completado los siguientes requisitos previos:

  • Se configuró la autenticación para acceder a las APIs de Google Cloud. Consulta cómo configurar la autenticación.

  • Asegúrate de que la API de Document AI esté habilitada en tu proyecto de Google Cloud.

    Ir a la biblioteca de API

  • En Document AI Workbench, crea un procesador con el tipo INVOICE_PROCESSOR. Para obtener más información, consulta Crea y administra procesadores.

  • En Cloud Storage, crea un bucket de origen para almacenar las facturas por procesamiento y coloca las facturas en este bucket. Para obtener más información, consulta Crea buckets.

  • En Cloud Storage, crea un bucket de destino para almacenar los archivos procesados.

Crear un programa para procesar documentos

  1. En el sistema SAP, crea un programa ejecutable en tu espacio de nombres personalizado (por ejemplo, Z o Y) mediante la transacción SE38.

    1. En la GUI de SAP, ingresa el código de transacción SE38.

    2. En el campo Programa, ingresa un nombre de tu programa, por ejemplo, ZDEMO_DOCUMENT_AI.

    3. Haz clic en Crear.

    4. Especifica los atributos del programa:

      1. En el campo Título, ingresa un título para el programa, por ejemplo, Process invoices.

      2. En el campo Tipo, selecciona Executable Program.

      3. Haz clic en Guardar.

    5. Guarda el programa como un objeto local.

    6. En el Editor de ABAP, agrega el siguiente código:

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

      Reemplaza lo siguiente:

      • DEMO_DOC_PROCESSING: el nombre de la clave del cliente.
      • PROJECT_ID: el ID del proyecto de Google Cloud.
      • LOCATION_ID: la ubicación del procesador.
      • PROCESSOR_ID: Es el ID del procesador.
      • SOURCE_BUCKET_URI: El URI de la carpeta del bucket de Cloud Storage en la que se conservan los documentos de origen para su procesamiento.
      • TARGET_BUCKET_URI: El URI del bucket de Cloud Storage en el que se almacenará el documento procesado (archivo JSON).
  2. Ejecuta tu aplicación en SE38.

  3. Para validar los resultados, sigue estos pasos:

    1. En la consola de Google Cloud, ve a la página Buckets de Cloud Storage.

    2. Abre el bucket de destino. El documento procesado se almacena en forma de un archivo JSON.

¿Qué sigue?