處理文件

本快速入門說明如何使用 Document AI API 的批次處理功能,從來源值區處理文件 (發票),並將已處理的文件 (JSON 檔案) 儲存在目標值區。

事前準備

執行本快速入門前,請確認您或管理員已完成下列先決條件:

  • 已設定驗證方法,以便存取 Google Cloud API。瞭解如何設定驗證

  • 請確認 Google Cloud 專案已啟用 Document AI API。

    前往 API 程式庫

  • 在 Document AI Workbench 中,建立類型為 INVOICE_PROCESSOR 的處理器。詳情請參閱「建立及管理處理器」。

  • 在 Cloud Storage 中建立來源值區,用來儲存要處理的月結單,並將月結單放入這個值區。詳情請參閱「建立值區」。

  • 在 Cloud Storage 中建立目標值區,用於儲存已處理的檔案。

建立用於處理文件的程式

  1. 在 SAP 系統中,使用交易 SE38 在自訂命名空間 (例如 Z 或 Y) 中建立可執行的程式。

    1. 在 SAP GUI 中輸入交易代碼 SE38

    2. 在「Program」欄位中輸入計畫名稱,例如 ZDEMO_DOCUMENT_AI

    3. 按一下 [建立]。

    4. 指定節目屬性:

      1. 在「Title」欄位中,輸入節目名稱,例如 Process invoices

      2. 在「Type」欄位中,選擇「Executable Program」。

      3. 按一下 [儲存]

    5. 將程式儲存為本機物件

    6. ABAP 編輯器中,新增下列程式碼:

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

      更改下列內容:

      • DEMO_DOC_PROCESSING:用戶端鍵名稱。
      • PROJECT_ID: Google Cloud 專案的 ID。
      • LOCATION_ID:處理器的位置。
      • PROCESSOR_ID:處理器的 ID。
      • SOURCE_BUCKET_URI:Cloud Storage 值區資料夾的 URI,其中儲存了用於處理的來源文件。
      • TARGET_BUCKET_URI:Cloud Storage 值區的 URI,用於儲存已處理的文件 (JSON 檔案)。
  2. SE38 中執行應用程式。

  3. 如要驗證結果,請按照下列步驟操作:

    1. 在 Google Cloud 控制台,前往「Cloud Storage Buckets」頁面。

    2. 開啟目標值區。處理過的文件會以 JSON 檔案的形式儲存。

後續步驟