Procesa documentos

En esta guía de inicio rápido, se muestra cómo procesar documentos (facturas) desde un bucket de Cloud Storage 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 Document API de IA a través de la edición SAP BTP del SDK de ABAP para Google Cloud.

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:

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

Crea una clase ABAP para procesar documentos

  1. Crea un paquete:

    1. En ADT, ve al Explorador de proyectos.
    2. Haz clic con el botón derecho en el paquete ZLOCAL y selecciona Nuevo > Paquete de ABAP.
    3. Ingresa los siguientes detalles para tu paquete:

      • Nombre: Ingresa ZABAPSDK_TEST.
      • Descripción: ingresa ABAP SDK Test Package.
    4. Haz clic en Siguiente.

    5. En el cuadro de diálogo Seleccionar una solicitud de transporte, selecciona la casilla de verificación Crear una solicitud nueva.

    6. Ingresa una descripción para la solicitud de transporte.

    7. Haz clic en Finalizar.

  2. Crea una clase ABAP para llamar a la API de Document AI:

    1. Haz clic con el botón derecho en tu paquete ABAP y selecciona Nueva > Clase ABAP.
    2. Ingresa los siguientes detalles para tu clase ABAP:

      • Nombre: Ingresa ZGOOG_CL_QS_DOCUMENT_AI.
      • Descripción: ingresa Quick start for Document AI API.
    3. Haz clic en Siguiente.

    4. Selecciona una solicitud de transporte y haz clic en Finalizar.

  3. En el editor de código, reemplace el código predeterminado por el siguiente fragmento de código:

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

    Reemplaza lo siguiente:

    • DEMO_DOC_PROCESSING: el nombre de la clave del cliente.
    • PROJECT_ID: El ID del proyecto de Google Cloud que tiene habilitada la API de Document AI.
    • 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).
  4. Guarda y activa los cambios.

  5. Ejecuta tu aplicación:

    1. Selecciona la clase de ABAP ZGOOG_CL_QS_DOCUMENT_AI.
    2. Haz clic en Run > Run As > ABAP Application (Console). También puedes presionar F9.
  6. Para validar los resultados, sigue estos pasos:

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

      Ir a Buckets

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

¿Qué sigue?