Traiter des documents

Ce guide de démarrage rapide explique comment traiter des documents (factures) à partir d'un bucket Cloud Storage source et stocker le document traité (fichier JSON) dans un bucket cible à l'aide de la fonctionnalité de traitement par lot de l'API Document AI via l'édition SAP BTP du SDK ABAP pour Google Cloud.

Avant de commencer

Avant d'exécuter ce guide de démarrage rapide, assurez-vous que vous ou vos administrateurs avez rempli les conditions préalables suivantes :

  • Assurez-vous que l'API Document AI est activée dans votre projet Google Cloud.

    Accéder à la bibliothèque d'API

  • Dans Document AI Workbench, créez un outil de traitement de type INVOICE_PROCESSOR. Pour en savoir plus, consultez la page Créer et gérer des outils de traitement.

  • Dans Cloud Storage, créez un bucket source pour stocker les factures à traiter et placez les factures dans ce bucket. Pour en savoir plus, consultez la page Créer des buckets.

  • Dans Cloud Storage, créez un bucket cible pour stocker les fichiers traités.

Créer une classe ABAP pour traiter des documents

  1. Créer un package :

    1. Dans ADT, accédez à l'explorateur de projets.
    2. Effectuez un clic droit sur le package ZLOCAL, puis sélectionnez Nouveau > Package ABAP.
    3. Saisissez les informations suivantes pour votre package :

      • Nom : saisissez ZABAPSDK_TEST.
      • Description : saisissez ABAP SDK Test Package.
    4. Cliquez sur Suivant.

    5. Dans la boîte de dialogue Sélectionner une requête de transport, cochez la case Créer une requête.

    6. Saisissez une description pour la requête de transport.

    7. Cliquez sur Terminer.

  2. Créez une classe ABAP pour appeler l'API Document AI:

    1. Effectuez un clic droit sur votre package ABAP, puis sélectionnez Nouveau > Classe ABAP.
    2. Saisissez les informations suivantes pour votre classe ABAP :

      • Nom : saisissez ZGOOG_CL_QS_DOCUMENT_AI.
      • Description : saisissez Quick start for Document AI API.
    3. Cliquez sur Suivant.

    4. Sélectionnez une demande de transport, puis cliquez sur Terminer.

  3. Dans l'éditeur de code, remplacez le code par défaut par l'extrait de code suivant:

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

    Remplacez les éléments suivants :

    • DEMO_DOC_PROCESSING : nom de la clé client.
    • PROJECT_ID: ID du projet Google Cloud dans lequel l'API Document AI est activée.
    • LOCATION_ID : emplacement de l'outil de traitement.
    • PROCESSOR_ID : ID de l'outil de traitement.
    • SOURCE_BUCKET_URI : URI du dossier du bucket Cloud Storage dans lequel les documents sources sont conservés afin d'être traités.
    • TARGET_BUCKET_URI : URI du bucket Cloud Storage dans lequel le document traité (fichier JSON) sera stocké.
  4. Enregistrez et activez les modifications.

  5. Exécuter votre application :

    1. Sélectionnez la classe ABAP ZGOOG_CL_QS_DOCUMENT_AI.
    2. Cliquez sur Exécuter > Exécuter en tant que > Application ABAP (console). Vous pouvez également appuyer sur F9.
  6. Pour valider les résultats, procédez comme suit :

    1. Dans la console Google Cloud, accédez à la page Buckets Cloud Storage.

      Accéder à la page "Buckets"

    2. Ouvrez le bucket cible. Le document traité est stocké sous la forme d'un fichier JSON.

Étapes suivantes