Processar documentos

Neste guia de início rápido, mostramos como processar documentos (faturas) de um bucket de origem e armazenar o documento processado (arquivo JSON) em um bucket de destino usando a capacidade de processamento em lote da API Document AI.

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 um programa para processar documentos

  1. No sistema SAP, crie um programa executável no namespace personalizado (por exemplo, Z ou Y) usando a transação SE38.

    1. Na GUI do SAP, insira o código da transação SE38.

    2. No campo Programa, insira um nome, por exemplo, ZDEMO_DOCUMENT_AI.

    3. Clique em Criar.

    4. Especifique os atributos do programa:

      1. No campo Título, insira um título do programa, por exemplo, Process invoices.

      2. No campo Tipo, escolha Executable Program.

      3. Clique em Save.

    5. Salve o programa como um Objeto local.

    6. No Editor ABAP, adicione o seguinte 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.
      

      Substitua:

      • DEMO_DOC_PROCESSING: o nome da chave do cliente.
      • PROJECT_ID: o ID do projeto do Google Cloud.
      • 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.
  2. Execute o aplicativo em SE38.

  3. Para validar os resultados, siga estas etapas:

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

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

A seguir