Berinteraksi dengan alur kerja SAP dari Google Chat

Dokumen ini menjelaskan arsitektur referensi untuk mem-build aplikasi Google Chat interaktif untuk SAP, dengan menggunakan ABAP SDK untuk Google Cloud edisi lokal atau cloud. Dengan aplikasi Chat interaktif, selain menerima notifikasi, pengguna dapat mengambil tindakan pada alur kerja SAP seperti menyetujui atau menolak permintaan, langsung di dalam Google Workspace mereka.

Audiens yang dituju untuk dokumen ini mencakup developer ABAP, arsitek solusi SAP, dan arsitek cloud. Dokumen ini mengasumsikan bahwa Anda sudah memahami aplikasi Chat yang tersedia di Google Workspace.

Arsitektur

Diagram berikut menunjukkan arsitektur referensi untuk menerapkan aplikasi Chat interaktif untuk SAP:

Aplikasi Chat interaktif untuk SAP

Arsitektur referensi ini mencakup komponen berikut:

# Komponen Detail
1 Proses atau transaksi SAP Setiap proses atau transaksi SAP yang perlu mengirim pesan kepada pengguna. Ini adalah titik awal untuk memicu komunikasi melalui Google Chat.
2 ABAP SDK untuk Google Cloud Berfungsi sebagai jembatan antara sistem SAP dan Google Cloud, yang memungkinkan komunikasi HTTPS aman dengan Google Chat API.
3 Project aplikasi Google Chat Project Google Cloud tempat Anda mengaktifkan Google Chat API dan mengonfigurasi aplikasi Chat.
4 ruang Chat

Ruang khusus dalam Google Chat tempat sistem SAP Anda dapat berkomunikasi dengan pengguna.

Aplikasi Chat berada di ruang ini, yang menyediakan streaming informasi secara real-time dari sistem SAP Anda melalui Google Chat API.

5 Project Apps Script

Project Apps Script tempat Anda menerapkan logika aplikasi Chat untuk menerima dan memproses pesan.

6 Pub/Sub

Project Apps Script memublikasikan tindakan pengguna, seperti persetujuan atau penolakan, sebagai pesan ke topik Pub/Sub.

ABAP SDK untuk Google Cloud menggunakan langganan Pub/Sub untuk mengambil pesan ini dari topik. Hal ini memungkinkan sistem SAP memproses tindakan tersebut dan memicu pembaruan yang diperlukan pada proses bisnis Anda.

Produk yang digunakan

Arsitektur referensi ini menggunakan produk Google berikut:

  • ABAP SDK untuk Google Cloud: Membantu Anda mengembangkan aplikasi ABAP yang menghubungkan sistem SAP Anda ke layanan Google Cloud, seperti Google Chat.
  • Google Chat: Membantu Anda membuat aplikasi Chat interaktif dan kolaboratif, sehingga meningkatkan komunikasi dan produktivitas.

  • Apps Script: Memungkinkan Anda berintegrasi dengan dan mengotomatiskan tugas di seluruh produk Google.

  • Pub/Sub: Memungkinkan Anda mengirim dan menerima pesan antar-aplikasi independen.

Kasus penggunaan

Aplikasi Chat interaktif memungkinkan Anda mengambil tindakan pada alur kerja SAP seperti menyetujui atau menolak permintaan. Diagram berikut mengilustrasikan pola chat interaktif untuk alur kerja persetujuan purchase order (PO) dan sales order (SO):

Persetujuan alur kerja aplikasi Chat interaktif

Daftar berikut menampilkan beberapa kasus penggunaan aplikasi Chat interaktif untuk SAP:

  • Pengelolaan peristiwa alur kerja: Anda dapat berinteraksi dengan aplikasi Chat untuk mengelola alur kerja. Misalnya, jika perintah pembelian memerlukan perhatian Anda, Anda dapat melakukan hal berikut melalui aplikasi Chat:

    • Menyetujui pesanan
    • Menolak pesanan
    • Meminta detail selengkapnya
  • Notifikasi sistem: Anda dapat mengirim notifikasi ke ruang Chat yang ditujukan untuk admin sistem guna memberi tahu mereka tentang berbagai nilai minimum sistem yang tercapai. Misalnya, penggunaan ruang disk, operasi yang berjalan lama, kunci cache, atau masa berlaku lisensi.

  • Pembaruan status tugas: Anda dapat mengirim pembaruan untuk tugas kustom yang berjalan lama ke sekumpulan pengguna yang menunggu tugas tersebut selesai dan melakukan operasi pascapemrosesan.

Pertimbangan desain

Saat Anda mendesain aplikasi Chat untuk kasus penggunaan, ada beberapa faktor yang dapat memengaruhi keputusan desain Anda. Bagian ini memberikan panduan untuk membantu Anda menggunakan arsitektur referensi ini untuk mengembangkan arsitektur yang membantu Anda memenuhi persyaratan khusus untuk keamanan, privasi, kepatuhan, dan biaya.

Konfigurasi aplikasi Google Chat

  • Nama aplikasi Chat: Berikan nama yang jelas dan bermakna untuk aplikasi Chat Anda. Untuk pengalaman pengguna yang lancar, pastikan nama aplikasi Chat Anda secara akurat mencerminkan fungsinya atau layanan yang terintegrasi dengannya.

  • Zona waktu: Ruang Chat dapat dibagikan oleh anggota yang berada di berbagai zona waktu. Oleh karena itu, konfigurasi aplikasi Chat untuk mengirimkan pesan pada waktu yang nyaman bagi semua pengguna ruang sangatlah penting. Atau, untuk pemberitahuan atau notifikasi penting, Anda dapat menetapkan anggota ke ruang Chat dengan zona waktu bersama dan membuat logika untuk menentukan ruang mana yang dapat menerima pesan dari aplikasi Chat.

Keamanan, privasi, dan kepatuhan:

Untuk menjaga kerahasiaan, sangat penting untuk menerapkan kontrol ketat terhadap pembagian informasi sensitif, seperti detail kontak pelanggan, IBAN, atau data penting lainnya dalam ruang Chat. Selain itu, saat pengguna baru ditambahkan ke ruang Chat, tempat aplikasi Chat ditambahkan, Anda harus menetapkan peraturan yang jelas untuk memastikan pengelolaan aktivitas ini sesuai.

Anda juga dapat mempertimbangkan untuk menggunakan Cloud Data Loss Prevention (DLP) API untuk menghilangkan sensitivitas konten pesan. Untuk informasi tentang cara melindungi data perusahaan sensitif di SAP menggunakan DLP API, lihat Perlindungan data di SAP dengan DLP API.

Untuk keamanan, pastikan admin Google Workspace mengikuti praktik terbaik yang direkomendasikan Google.

Kuota dan batas

Google Chat API adalah layanan bersama sehingga kuota dan batasan berlaku. Jika melebihi kuota, Anda akan menerima respons kode status HTTP 429: Too many requests. Untuk mengetahui informasi selengkapnya tentang kuota dan batas, lihat Batas penggunaan.

Google Chat API itu sendiri tidak memiliki biaya penggunaan, tetapi Google Chat adalah produk Google Workspace. Google Workspace, serangkaian alat produktivitas yang dipaketkan, mencakup Gmail, Dokumen, Spreadsheet, Slide, aplikasi Google Chat, dan lainnya. Struktur harganya bersifat holistik, yang berarti Anda tidak dapat memilih dan membeli setiap komponen. Untuk mengetahui informasi selengkapnya tentang harga, lihat Harga Google Workspace.

Opsi setelan koneksi

Untuk menangani interaksi dalam Google Chat, arsitektur referensi ini menggunakan Apps Script sebagai backend. Kode yang dihosting dalam project Apps Script harus ditulis dalam JavaScript.

Atau, Anda dapat mem-build aplikasi Chat interaktif menggunakan fungsi Cloud Run atau App Engine dengan endpoint HTTP. Untuk informasi tentang cara menggunakan fungsi Cloud Run untuk Google Chat, lihat Mem-build aplikasi Google Chat HTTP. Untuk mem-build logika aplikasi Chat di fungsi Cloud Run, Anda dapat menggunakan library Cloud dan memilih dari beberapa bahasa seperti Node.js, Java, atau Python. Setelah Anda men-deploy fungsi Cloud Run, di konfigurasi aplikasi Chat pada bagian Connection settings, pilih HTTP endpoint URL, dan berikan URL untuk pemicu fungsi Cloud Run.

Sebelum memulai

Sebelum menerapkan solusi berdasarkan arsitektur referensi ini, pastikan Anda telah menyelesaikan prasyarat berikut:

Menyiapkan project Apps Script

Untuk menerima dan memproses pesan, Anda menerapkan logika aplikasi Chat dalam project Apps Script. Apps Script menyediakan logika dan otomatisasi backend. Dengan ini, Anda dapat menulis kode untuk menangani peristiwa seperti mengekstrak pesan pengguna, memproses klik tombol, dan memicu tindakan downstream.

Untuk menyiapkan project Apps Script, lakukan langkah-langkah berikut:

  1. Buka Apps Script.
  2. Buat skrip untuk menangani logika aplikasi Chat Anda untuk menerima dan memproses pesan. Untuk informasi tentang cara membuat skrip, lihat Panduan memulai Google Apps Script.

    Misalnya, Anda perlu menulis kode JavaScript untuk menangani berbagai jenis fungsi. Kode contoh berikut mengilustrasikan cara menangani peristiwa OnCardClicked:

    function onCardClick(event) {
    console.info(event);
    let message = 'Button Clicked';
    // Get the function name from parameter
    var functionToCall = event.action.parameters[0].value;
    // Get the action name from parameter
    var actionTaken = event.action.parameters[1].value;
    // Call the function dynamically
    if (this[functionToCall]) {
      this[functionToCall](actionTaken);
    } else {
      // Handle invalid function name
      console.log('Function not found:', functionToCall);
    }
    return { "text": message };
    }
    

    Kode contoh ini menjalankan fungsi berikut:

    • Membaca klik tombol: Fungsi ini menentukan tombol yang diklik dan tindakan yang diinginkan pengguna.
    • Menemukan kode yang tepat untuk dijalankan: Fungsi ini menggunakan informasi dari klik tombol untuk menemukan potongan kode yang cocok dalam aplikasi Chat Anda.
    • Menjalankan kode: Menjalankan kode yang cocok untuk melakukan tindakan yang diminta pengguna.
    • Menangani error: Jika tidak dapat menemukan kode yang cocok, kode tersebut akan menampilkan pesan error.
  3. Tautkan project Google Cloud Anda ke project Apps Script. Untuk informasi tentang cara menautkan project, lihat Menautkan project Google Cloud.

  4. Buat deployment untuk skrip Anda. Untuk informasi tentang cara men-deploy skrip, lihat Membuat dan mengelola deployment.

  5. Catat ID deployment. Untuk mengetahui informasi tentang cara menemukan ID deployment, lihat Menemukan ID deployment.

Untuk informasi selengkapnya tentang cara menyiapkan project Apps Script, lihat Panduan memulai aplikasi Chat Google Apps Script.

Mengonfigurasi aplikasi Google Chat

Untuk mengonfigurasi aplikasi Google Chat, lakukan langkah-langkah berikut:

  1. Di konsol Google Cloud, telusuri "Google Chat API" dan klik Google Chat API, lalu klik Manage.

    Buka Chat API

  2. Klik Konfigurasi dan siapkan aplikasi Google Chat:

    1. Di App name, masukkan Quickstart SAP App.
    2. Di Avatar URL, masukkan https://developers.google.com/chat/images/quickstart-app-avatar.png.
    3. Di Deskripsi, masukkan Quickstart app for SAP.
  3. Di bagian Connection settings, pilih Apps Script.

  4. Masukkan ID deployment skrip yang telah Anda buat di bagian Menyiapkan project Apps Script.

  5. Klik Simpan.

Menyiapkan autentikasi untuk aplikasi Google Chat

Anda dapat mengautentikasi ke aplikasi Google Chat dengan dua cara: sebagai aplikasi itu sendiri atau sebagai pengguna.

Jika aplikasi Anda perlu melakukan tugas otomatis, seperti mengirim notifikasi sistem tanpa interaksi langsung pengguna, aplikasi akan menggunakan akun layanan. Jika Anda ingin aplikasi bertindak atas nama pengguna, seperti mengirim pesan sebagai orang tertentu tersebut, Anda memerlukan autentikasi pengguna. Pendekatan autentikasi ganda ini menawarkan fleksibilitas dan kontrol atas cara aplikasi Anda berinteraksi dengan Google Chat.

ABAP SDK untuk Google Cloud memungkinkan Anda menyiapkan kedua jenis autentikasi. Untuk mengetahui informasi tentang cara menyiapkan autentikasi untuk aplikasi Google Chat, lihat:

Untuk mengetahui informasi tentang metode Google Chat API dan cakupan otorisasi yang didukungnya, lihat Mengautentikasi serta mengizinkan aplikasi Chat dan permintaan API Google Chat.

Arsitektur referensi yang dijelaskan dalam dokumen ini menggunakan autentikasi sebagai aplikasi Chat dan menggunakan token akses untuk autentikasi.

Untuk menyiapkan autentikasi sebagai aplikasi Chat, lakukan langkah-langkah berikut:

  1. Di konsol Google Cloud, konfigurasi layar izin OAuth dan pilih cakupan.
  2. Di konsol Google Cloud, buat akun layanan.
  3. Opsional: Tetapkan peran IAM ke akun layanan Anda untuk memberikan akses ke resource project Google Cloud Anda. Untuk mengetahui informasi selengkapnya, lihat Mengelola akses ke akun layanan.
  4. Dalam sistem SAP, konfigurasikan kunci klien dengan detail berikut:

    Kolom Deskripsi
    Nama Kunci Google Cloud Tentukan nama untuk konfigurasi kunci klien. Misalnya, ABAP_SDK_CHAT.
    Nama Akun Layanan Google Cloud

    Tentukan nama akun layanan yang telah Anda beri izin untuk mengakses Google Chat API. Misalnya sap-example-svc-acct@example-project-123456..

    Cakupan Google Cloud Tentukan cakupan akses API: https://www.googleapis.com/auth/chat.bot.
    ID Project Google Cloud Tentukan ID project Google Cloud yang berisi Google Chat API yang diaktifkan.
    Nama perintah Kosongkan kolom ini.
    Class Otorisasi

    Tentukan class otorisasi, sebagaimana mestinya:

    • Untuk autentikasi menggunakan token akses: /GOOG/CL_AUTH_GOOGLE
    • Untuk autentikasi menggunakan JWT: /GOOG/CL_AUTH_JWT
    Penyimpanan Token ke Cache

    Tanda yang menentukan apakah token akses yang diambil dari Google Cloud disimpan ke cache atau tidak.

    Sebaiknya aktifkan penyimpanan token ke dalam cache setelah Anda selesai mengonfigurasi dan menguji koneksi Anda ke Google Cloud. Untuk mengetahui informasi selengkapnya tentang penyimpanan token ke dalam cache, lihat Mengaktifkan penyimpanan token ke dalam cache.

    Detik Pembaruan Token Lama waktu, dalam detik, sebelum masa berlaku token akses berakhir dan harus dimuat ulang. Nilai defaultnya adalah 3500.
    Parameter Otorisasi 1 Kosongkan kolom ini.
    Authorization Parameter 2 Kosongkan kolom ini.

Untuk mengetahui informasi tentang langkah-langkah mendetail untuk menyiapkan autentikasi, lihat Mengautentikasi menggunakan token akses atau Mengautentikasi menggunakan Token Web JSON.

Menambahkan aplikasi Google Chat ke ruang

  1. Buka aplikasi Google Chat atau Gmail.
  2. Tambahkan aplikasi Chat ke ruang Chat. Untuk mengetahui informasi tentang cara menambahkan aplikasi ke ruang Chat, lihat Menambahkan aplikasi ke percakapan atau ruang.

Mendesain kartu interaktif untuk tindakan pengguna

Kartu memberikan cara yang menarik secara visual dan interaktif untuk menyajikan informasi, sehingga meningkatkan pengalaman pengguna secara keseluruhan. Elemen ini dapat mencakup elemen seperti judul, gambar, tombol, dan lainnya, yang memungkinkan pengguna berinteraksi dengan konten langsung dalam antarmuka Chat. Misalnya, kartu alur kerja pesanan pembelian dapat menyertakan informasi berikut:

  • Nomor pesanan pembelian
  • Tanggal dokumen
  • Jenis dokumen
  • Pemasok
  • Jenis pengiriman
  • Link untuk membuka tampilan pesanan pembelian di aplikasi SAP Fiori dan tombol untuk menyetujui pesanan pembelian

Untuk mendesain kartu interaktif menggunakan ABAP SDK untuk Google Cloud, gunakan antarmuka kustom ZGOOG_IF_CHAT_CARDS_V2 dari repositori GitHub. Antarmuka kustom ini berisi Jenis ABAP yang diperlukan untuk membuat kartu. Anda dapat membuat kartu seperti kartu contoh alur kerja pesanan berikut:

Kartu aplikasi Chat

Untuk mengetahui informasi selengkapnya tentang cara mendesain pesan kartu, lihat Mem-build kartu untuk aplikasi Google Chat.

Untuk mengirim pesan dari sistem SAP ke ruang Chat menggunakan ABAP SDK untuk Google Cloud, Anda menggunakan metode CREATE_MESSAGES dari class /GOOG/CL_CHAT_V1.

Contoh kode berikut mengilustrasikan cara mengirim pesan kartu dari sistem SAP ke ruang Chat:


REPORT zsend_interactive_card.

DATA lv_client_key TYPE /goog/keyname.
DATA ls_input      TYPE /goog/cl_chat_v1=>ty_072.
DATA lv_space_id   TYPE string.
DATA ls_widget     TYPE zgoog_if_chat_cards_v2=>ty_widget.
DATA ls_section    TYPE zgoog_if_chat_cards_v2=>ty_sections.
DATA ls_card_v2    TYPE zgoog_if_chat_cards_v2=>ty_cards_v2.
DATA ls_card       TYPE /goog/cl_chat_v1=>ty_012.
DATA ls_rb         TYPE zgoog_if_chat_cards_v2=>ty_selection_item.
DATA ls_button     TYPE zgoog_if_chat_cards_v2=>ty_button.
DATA ls_param      TYPE zgoog_if_chat_cards_v2=>ty_action_parameters.

lv_client_key = 'CLIENT_KEY'.
lv_space_id   = 'SPACE_ID'.

TRY.

    DATA(lo_chat) = NEW /goog/cl_chat_v1( iv_key_name = lv_client_key ).
  CATCH /goog/cx_sdk INTO DATA(lo_excp).
    " Handle exception here
ENDTRY.

" Building the Cards Structure
ls_card_v2-header = VALUE zgoog_if_chat_cards_v2=>ty_header(
                              title     = 'Purchase Order Workflow - Level 2 Approval Alert!'
                              subtitle  = 'PO Number: 8700000035'
                              image_url = 'https://developers.google.com/chat/images/quickstart-app-avatar.png' ).
ls_section-header = 'Purchase Order Details'.

ls_widget-decorated_text = VALUE zgoog_if_chat_cards_v2=>ty_decorated_text(
                                     icon = VALUE zgoog_if_chat_cards_v2=>ty_icon( known_icon = 'INVITE' )
                                     text = 'Document Date: 2024-10-23' ).
ls_section-widgets = VALUE #( ( ls_widget ) ).
CLEAR ls_widget.

ls_widget-decorated_text = VALUE zgoog_if_chat_cards_v2=>ty_decorated_text(
    icon = VALUE zgoog_if_chat_cards_v2=>ty_icon(
                     material_icon = VALUE zgoog_if_chat_cards_v2=>ty_material_icon( name = 'category' ) )
    text = 'Document Type: Standard PO'  ).

ls_section-widgets = VALUE #( BASE ls_section-widgets
                              ( ls_widget ) ).
CLEAR ls_widget.

ls_widget-decorated_text = VALUE zgoog_if_chat_cards_v2=>ty_decorated_text(
    icon = VALUE zgoog_if_chat_cards_v2=>ty_icon(
                     material_icon = VALUE zgoog_if_chat_cards_v2=>ty_material_icon( name = 'conveyor_belt' ) )
    text = 'Supplier: 5300000061 - Cymbal Industries'  ).

ls_section-widgets = VALUE #( BASE ls_section-widgets
                              ( ls_widget ) ).
CLEAR ls_widget.

ls_widget-decorated_text = VALUE zgoog_if_chat_cards_v2=>ty_decorated_text(
                                     icon = VALUE zgoog_if_chat_cards_v2=>ty_icon( known_icon = 'TRAIN' )
                                     text = 'Shipping Type: RAIL' ).
ls_section-widgets = VALUE #( BASE ls_section-widgets
                              ( ls_widget ) ).
CLEAR ls_widget.

ls_button = VALUE #( text  = 'Display Purchase Order'
                     color = VALUE zgoog_if_chat_cards_v2=>ty_color( alpha = '1'
                                                                     blue  = '1'
                                                                     green = '0'
                                                                     red   = '1' ) ).

" Replace this with URL for Fiori Application
ls_button-on_click-open_link-url = 'https://developers.google.com/workspace/chat'.
ls_widget-button_list-buttons = VALUE #(  BASE ls_widget-button_list-buttons
                                         ( ls_button ) ).
CLEAR ls_button.

ls_button = VALUE #( text                     = 'Approve Purchase Order'
                     on_click-action-function = 'onCardClick'
                     color                    = VALUE zgoog_if_chat_cards_v2=>ty_color( alpha = '1'
                                                                                        blue  = '0.2'
                                                                                        green = '0.4'
                                                                                        red   = '0' ) ).
ls_param-key   = 'functionToCall'.
ls_param-value = 'sendToPubSub'.  " Replace this with function name on AppsScript
ls_button-on_click-action-parameters = VALUE #( BASE ls_button-on_click-action-parameters
                                                ( ls_param ) ).
CLEAR ls_param.

ls_param-key   = 'action'.
ls_param-value = 'approved'.    " Indicate approval action has taken place
ls_button-on_click-action-parameters = VALUE #( BASE ls_button-on_click-action-parameters
                                                ( ls_param ) ).
CLEAR ls_param.

ls_widget-button_list-buttons = VALUE #(  BASE ls_widget-button_list-buttons
                                         ( ls_button ) ).
CLEAR ls_button.

ls_button = VALUE #( text                     = 'Reject Purchase Order'
                     on_click-action-function = 'onCardClick'
                     color                    = VALUE zgoog_if_chat_cards_v2=>ty_color( alpha = '1'
                                                                                        blue  = '0'
                                                                                        green = '0'
                                                                                        red   = '0.7' ) ).

ls_param-key   = 'functionToCall'.
ls_param-value = 'sendToPubSub'.  " Function name on AppsScript
ls_button-on_click-action-parameters = VALUE #( BASE ls_button-on_click-action-parameters
                                                ( ls_param ) ).
CLEAR ls_param.

ls_param-key   = 'action'.
ls_param-value = 'rejected'.    " Indicate reject action has taken place
ls_button-on_click-action-parameters = VALUE #( BASE ls_button-on_click-action-parameters
                                                ( ls_param ) ).
CLEAR ls_param.

ls_widget-button_list-buttons = VALUE #(  BASE ls_widget-button_list-buttons
                                         ( ls_button ) ).
CLEAR ls_button.

ls_section-widgets = VALUE #( BASE ls_section-widgets
                              ( ls_widget ) ).

ls_card_v2-sections = VALUE #( ( ls_section ) ).

ls_card-card = REF #( ls_card_v2 ).
ls_input-cards_v2 = VALUE #( (  ls_card ) ).

TRY.
    lo_chat->create_messages( EXPORTING iv_p_spaces_id = lv_space_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) ).
  CATCH /goog/cx_sdk INTO lo_excp.
    " Handle exception here
ENDTRY.

IF lo_chat->is_error( lv_ret_code ).
  " Handle error here
ELSE.
  " Handle success here
ENDIF.

Ganti kode berikut:

  • CLIENT_KEY: Kunci klien yang dikonfigurasi untuk autentikasi.
  • SPACE_ID: ID ID unik ruang Chat. Untuk menemukan ID ruang Chat, buka ruang Google Chat di browser web Anda. Anda dapat menemukan ID di URL, seperti yang diilustrasikan dalam screenshot berikut:

    ID ruang aplikasi Chat

Alternatif desain

Untuk sistem SAP S/4 HANA atau ECC yang dihosting di Google Cloud, Anda dapat mempertimbangkan arsitektur referensi alternatif berikut untuk mendesain aplikasi Chat interaktif:

Opsi desain alternatif untuk aplikasi Chat Interaktif untuk SAP

Arsitektur referensi ini didasarkan pada pertimbangan berikut:

  1. Proses atau transaksi SAP asal yang bertanggung jawab untuk mengirim pesan kepada pengguna.
  2. ABAP SDK untuk Google Cloud mengirim pesan dengan memanggil metode Google Chat API: spaces.messages.create.
  3. Google Chat API mengirimkan pesan ke ruang Chat yang sesuai.
  4. Pengguna ruang menerima notifikasi, lalu merespons untuk mengambil tindakan, seperti mengklik tombol.
  5. Tindakan pengguna memanggil project Apps Script untuk menangani peristiwa yang sesuai.
  6. Project Apps Script memanggil Pub/Sub API untuk memublikasikan pesan.
  7. Fungsi Cloud Run memproses pesan dan memublikasikan peristiwa menggunakan pemicu Eventarc.
  8. Fungsi Cloud Run memanggil node SICF melalui konektor VPC serverless.
  9. Sistem SAP memproses peristiwa dan memicu tindakan downstream berdasarkan logika bisnis yang ditentukan.

Arsitektur referensi ini memerlukan logika penerapan dalam tiga lapisan:

  • Lapisan ABAP untuk membuat pesan chat, menangani peristiwa, dan proses bisnis berikutnya.
  • Lapisan Apps Script untuk menangani peristiwa di ruang Chat dan memublikasikan pesan ke topik Pub/Sub.
  • Cloud Run berfungsi untuk menerima pesan dari langganan Pub/Sub. Secara opsional, Anda dapat memformat pesan dan memanggil layanan SICF yang dihosting di sistem SAP melalui konektor VPC.

Langkah selanjutnya

Kontributor

Penulis: Satish Inamdar | SAP Application Engineer

Kontributor lainnya: Vikash Kumar | Technical Writer