Memproses dokumen

Panduan memulai ini menunjukkan cara memproses dokumen (invoice) dari bucket sumber dan menyimpan dokumen yang diproses (file JSON) dalam bucket target menggunakan kemampuan batch processing Document AI API.

Sebelum memulai

Sebelum menjalankan panduan memulai ini, pastikan Anda atau administrator Anda telah memenuhi prasyarat berikut:

  • Pastikan Document AI API diaktifkan di project Google Cloud Anda.

    Buka library API

  • Di Document AI Workbench, buat pemroses dengan jenis INVOICE_PROCESSOR. Untuk mengetahui informasi selengkapnya, lihat Membuat dan mengelola pemroses.

  • Di Cloud Storage, buat bucket sumber untuk menyimpan invoice yang akan diproses dan menempatkan invoice di dalam bucket ini. Untuk mengetahui informasi selengkapnya, lihat Membuat bucket.

  • Di Cloud Storage, buat bucket target untuk menyimpan file yang diproses.

Membuat program untuk memproses dokumen

  1. Dalam sistem SAP, buat program yang dapat dieksekusi di namespace kustom Anda (misalnya, Z atau Y) menggunakan transaksi SE38.

    1. Di SAP GUI, masukkan kode transaksi SE38.

    2. Di kolom Program, masukkan nama program, misalnya, ZDEMO_DOCUMENT_AI.

    3. Klik Create.

    4. Tentukan atribut program:

      1. Di kolom Title, masukkan judul program Anda, misalnya, Process invoices.

      2. Di kolom Type, pilih Executable Program.

      3. Klik Save.

    5. Simpan program sebagai Local Object.

    6. Di ABAP Editor, tambahkan kode berikut:

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

      Ganti kode berikut:

      • DEMO_DOC_PROCESSING: nama kunci klien.
      • PROJECT_ID: ID project Google Cloud.
      • LOCATION_ID: lokasi pemroses.
      • PROCESSOR_ID: ID pemroses.
      • SOURCE_BUCKET_URI: URI folder bucket Cloud Storage tempat dokumen sumber disimpan untuk diproses.
      • TARGET_BUCKET_URI: URI bucket Cloud Storage tempat menyimpan dokumen yang diproses (file JSON).
  2. Jalankan aplikasi Anda di SE38.

  3. Untuk memvalidasi hasilnya, ikuti langkah-langkah berikut:

    1. Di konsol Google Cloud, buka halaman Bucket Cloud Storage.

    2. Buka bucket target. Dokumen yang diproses disimpan dalam bentuk file JSON.

Langkah selanjutnya