Processar documentos

Neste guia de início rápido, mostramos como processar documentos (faturas) de um bucket de origem do Cloud Storage e armazenar o documento processado (arquivo JSON) em um bucket de destino usando o recurso de processamento em lote de Documento API de IA por meio da edição SAP BTP do ABAP SDK for Google Cloud.

Antes de começar

Antes de executar este guia de início rápido, verifique se você ou seus administradores concluíram os seguintes pré-requisitos:

  • Verifique se a API Document AI está ativada no seu projeto do Google Cloud.

    Acessar a biblioteca de APIs

  • No Document AI Workbench, crie um processador com o tipo INVOICE_PROCESSOR. Para mais informações, consulte Como criar e gerenciar processadores.

  • No Cloud Storage, crie um bucket de origem para armazenar as faturas para processamento e coloque-as nesse bucket. Para mais informações, consulte Criar buckets.

  • No Cloud Storage, crie um bucket de destino para armazenar os arquivos processados.

Criar uma classe ABAP para processar documentos

  1. Criar um pacote:

    1. No ADT, acesse o Project Explorer.
    2. Clique com o botão direito do mouse no pacote ZLOCAL e selecione New > ABAP Package.
    3. Insira os seguintes detalhes do pacote:

      • Nome: insira ZABAPSDK_TEST.
      • Descrição: insira ABAP SDK Test Package.
    4. Clique em Próxima.

    5. Na caixa de diálogo Selecione uma solicitação de transporte, marque a caixa de seleção Criar uma nova solicitação.

    6. Insira uma descrição para a solicitação de transporte.

    7. Clique em Finish.

  2. Crie uma classe ABAP para chamar a API Document AI:

    1. Clique com o botão direito do mouse no pacote ABAP e selecione Nova > Classe ABAP.
    2. Digite os seguintes detalhes da sua classe ABAP:

      • Nome: insira ZGOOG_CL_QS_DOCUMENT_AI.
      • Descrição: insira Quick start for Document AI API.
    3. Clique em Próxima.

    4. Selecione uma solicitação de transporte e clique em Concluir.

  3. No editor de código, substitua o código padrão pelo seguinte snippet 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.
    

    Substitua:

    • DEMO_DOC_PROCESSING: o nome da chave do cliente.
    • PROJECT_ID: o ID do projeto do Google Cloud que tem a API Document AI ativada.
    • LOCATION_ID: a localização do processador.
    • PROCESSOR_ID: o ID do processador.
    • SOURCE_BUCKET_URI: o URI da pasta do bucket do Cloud Storage em que os documentos de origem são mantidos para processamento.
    • TARGET_BUCKET_URI: o URI do bucket do Cloud Storage em que o documento processado (arquivo JSON) será armazenado.
  4. Salve e ative as alterações.

  5. Execute o aplicativo:

    1. Selecione a classe ABAP ZGOOG_CL_QS_DOCUMENT_AI.
    2. Clique em Run > Run As > ABAP Application (Console). Ou pressione F9.
  6. Para validar os resultados, siga estas etapas:

    1. No console do Google Cloud, acesse a página Buckets do Cloud Storage.

      Acessar buckets

    2. Abra o bucket de destino. O documento processado é armazenado na forma de um arquivo JSON.

A seguir