Dokumen ini menjelaskan cara menginstal dan mengonfigurasi Business Eventing Toolkit untuk SAP.
Menginstal Business Eventing Toolkit untuk SAP
Saat Anda menginstal ABAP SDK untuk Google Cloud edisi cloud atau versi terbaru versi lokal, Business Eventing Toolkit untuk SAP akan diinstal untuk Anda. Untuk informasi tentang langkah-langkah penginstalan, lihat Menginstal dan mengonfigurasi ABAP SDK untuk Google Cloud edisi cloud atau on-premise.
Jika Anda menggunakan ABAP SDK untuk Google Cloud versi 1.9 atau yang lebih lama di lokal atau edisi cloud, update SDK ke versi terbaru untuk mendapatkan Business Eventing Toolkit untuk SAP. Untuk informasi selengkapnya, lihat Mengupdate ABAP SDK untuk Google Cloud.
Mengaktifkan API Google Cloud target
Sebelum menggunakan layanan Google Cloud target, pastikan Google Cloud API yang sesuai diaktifkan di project Anda. Misalnya, jika Anda berencana memublikasikan peristiwa ke Pub/Sub, aktifkan Pub/Sub API.
Untuk mengetahui informasi tentang cara mengaktifkan Google Cloud API, lihat Mengaktifkan API.
Menyiapkan autentikasi
Setelah Anda menyiapkan autentikasi untuk mengakses Google Cloud API di ABAP SDK untuk Google Cloud edisi cloud atau lokal, Business Eventing Toolkit untuk SAP akan menggunakan metode autentikasi yang sama untuk memublikasikan peristiwa SAP ke Google Cloud API. Untuk mengetahui informasi tentang cara menyiapkan autentikasi di ABAP SDK untuk Google Cloud edisi cloud atau lokal, lihat Ringkasan autentikasi.
Pastikan akun layanan yang dikonfigurasi dalam konfigurasi kunci klien ABAP SDK untuk Google Cloud memiliki peran IAM yang diperlukan khusus untuk layananGoogle Cloud target.
Catat kunci klien yang telah Anda buat sebagai bagian dari penyiapan autentikasi. Anda menggunakan kunci klien ini saat mengonfigurasi Business Eventing Toolkit untuk SAP di sistem SAP Anda.
Mengonfigurasi atribut CloudEvent
Anda dapat mempertahankan nilai default untuk atribut CloudEvent. Nilai ini
disimpan dalam tabel /GOOG/CE_DEFAULT
.
Ini adalah konfigurasi opsional. Anda dapat meneruskan atribut CloudEvent atau mengganti atribut default secara langsung dalam kode Anda.
Untuk mengonfigurasi atribut CloudEvent, lakukan hal berikut:
Di SAP GUI, jalankan kode transaksi
/GOOG/SDK_IMG
.Atau, jalankan kode transaksi
SPRO
, lalu klik IMG Referensi SAP.Klik ABAP SDK for Google Cloud > Basic Settings > Business Eventing: Configure Context Attributes for Cloud events.
Klik New Entries.
Masukkan nilai untuk kolom berikut:
Kolom Jenis data Deskripsi Kunci Atribut Default Peristiwa Cloud String Tentukan nama untuk konfigurasi atribut CloudEvent default. Misalnya: CLOUD_EVENT_ATTRIBUTE_KEY. Sumber String Berikan referensi URI yang mengidentifikasi konteks tempat peristiwa terjadi. ID String ID unik untuk peristiwa. Produsen harus memastikan bahwa Sumber + ID bersifat unik untuk setiap peristiwa yang berbeda. Versi spesifikasi String Versi spesifikasi CloudEvents yang digunakan peristiwa. Jika Anda mengosongkan kolom ini, sistem akan menggunakan 1.0. Jenis String Menjelaskan jenis peristiwa yang terjadi. Sering digunakan untuk pemilihan rute, visibilitas, dan penerapan kebijakan. Jenis konten data String Jenis konten nilai data. Memungkinkan data membawa jenis konten apa pun. Skema data String URI yang mengidentifikasi skema yang diikuti data. Subjek String Menjelaskan subjek peristiwa dalam konteks produsen peristiwa. Untuk mengetahui informasi tentang kolom ini, lihat atribut konteks CloudEvents.
Simpan entri baru.
Mengonfigurasi layanan Google Cloud target
Anda dapat menggunakan setelan ini untuk mempertahankan layanan Google Cloud target untuk peristiwa Anda.
Setelan ini digunakan saat memublikasikan peristiwa dari SAP ke layanan Google Cloud menggunakan Business Eventing Toolkit untuk SAP.
Untuk mengonfigurasi layanan Google Cloud target, lakukan hal berikut:
Di SAP GUI, jalankan kode transaksi
/GOOG/SDK_IMG
.Atau, jalankan kode transaksi
SPRO
, lalu klik IMG Referensi SAP.Klik ABAP SDK for Google Cloud > Basic Settings > Business Eventing: Configure Google Cloud Targets for an Event.
Klik New Entries.
Masukkan nilai untuk kolom berikut:
Kolom Jenis data Deskripsi Kunci Peristiwa String Tentukan nama konfigurasi peristiwa penayang. Misalnya, EVENT_KEY. Class Pemroses Peristiwa String Tentukan class prosesor untuk peristiwa. Pilih salah satu opsi berikut bergantung pada layanan Google Cloud target Anda:
-
/GOOG/CL_PUBLISHER_PUBSUB
: Untuk memublikasikan peristiwa ke Pub/Sub. -
/GOOG/CL_PUBLISHER_CLOUDFUNC
: Untuk memublikasikan peristiwa ke fungsi Cloud Run. -
/GOOG/CL_PUBLISHER_FCM
: Untuk memublikasikan peristiwa ke Firebase Cloud Messaging (FCM). -
/GOOG/CL_PUBLISHER_CONNECTORS
: Untuk memublikasikan peristiwa ke Integration Connectors API.
Nama Kunci Google Cloud String Kunci klien yang telah Anda konfigurasikan untuk autentikasi ke Google Cloud selama penyiapan autentikasi. Parameter Peristiwa 1 String Tentukan atribut tambahan yang diperlukan untuk layanan Google Cloud target yang ingin Anda gunakan. Parameter Peristiwa 2 String Tentukan atribut tambahan yang diperlukan untuk layanan Google Cloud target yang ingin Anda gunakan. Parameter Peristiwa 3 String Tentukan atribut tambahan yang diperlukan untuk layanan Google Cloud target yang ingin Anda gunakan. Kunci Atribut Default Peristiwa Cloud String Untuk mengirim peristiwa sebagai CloudEvent, berikan nilai kunci atribut default yang sesuai yang telah Anda konfigurasi di bagian Mengonfigurasi atribut CloudEvent. Cloud Event: Encoding String Pilih mode yang sesuai untuk mengenkode CloudEvents Anda:
- Terstruktur: Atribut CloudEvent diteruskan dalam isi permintaan.
- Biner: Atribut CloudEvent diteruskan ke header permintaan.
Untuk skenario saat Anda perlu mengirim data peristiwa mentah langsung ke layanan Google Cloud , dengan mengabaikan spesifikasi CloudEvents, Anda dapat mengosongkan kolom ini.
-
Simpan entri baru.
Memperluas modul penayang
Untuk berintegrasi dengan layanan Google Cloud atau target kustom lainnya selain target bawaan, Anda dapat memperluas modul Penayang dengan membuat implementasi Anda sendiri.
Untuk membuat implementasi kustom, lakukan hal berikut:
- Dalam transaksi SAP
SE24
, buat class baru yang mewarisi dari/GOOG/CL_PUBLISHER_BASE
. Implementasikan metode
PUBLISH_EVENT
danVALIDATE_PARAMS
.PUBLISH_EVENT
: Berisi logika kustom Anda untuk mengirim data peristiwa ke target. Petakan parameter input, transmisikan data, dan isi struktur output dengan respons target.VALIDATE_PARAMS
: Memungkinkan Anda memverifikasi bahwa semua parameter yang diperlukan telah dikonfigurasi di tabel/GOOG/CE_ROUTER
. Jika nilai yang diperlukan tidak ada, munculkan pengecualian jenis/GOOG/CX_SDK
.
Saat kode ABAP berjalan, class Penayang membaca konfigurasi dari tabel ini untuk memandu proses publikasi peristiwa.
Mengonfigurasi pemroses untuk peristiwa bisnis
Untuk merekam peristiwa yang dipicu karena perubahan pada objek bisnis, Anda perlu mengonfigurasi pemroses peristiwa bisnis untuk setiap objek bisnis.
Untuk mengonfigurasi pemroses peristiwa bisnis, lakukan hal berikut:
Di SAP GUI, jalankan kode transaksi
SWETYPV
.Klik New Entries.
Tentukan kategori objek bisnis dan jenis objek bisnis yang sesuai.
Tentukan peristiwa yang ingin Anda dengarkan dan teruskan peristiwa tersebut menggunakan Business Eventing Toolkit untuk SAP.
Di kolom Receiver Type, masukkan
Google_Cloud
atauGoogle
.Di bagian Linkage Setting (Receiver), berikan hal berikut:
- Panggilan Penerima: Pilih Metode dari menu drop-down.
- Nama Kelas: Masukkan
/GOOG/CL_BO_EVENT_FORWARD
.
Centang kotak Linkage Activated.
Simpan konfigurasi.
Memetakan pemroses peristiwa ke kunci peristiwa
Untuk memetakan pemroses peristiwa ke kunci peristiwa, lakukan langkah berikut:
Di SAP GUI, jalankan kode transaksi
/GOOG/SDK_IMG
.Atau, jalankan kode transaksi
SPRO
, lalu klik IMG Referensi SAP.Klik ABAP SDK for Google Cloud > Basic Settings > Business Eventing: Configure Event Listeners for Business Objects.
Klik New Entries.
Masukkan nilai untuk kolom berikut:
Kolom Jenis data Deskripsi Jenis Objek CHAR Nama objek bisnis yang telah Anda konfigurasikan dalam transaksi SWETYPV
.Acara CHAR Nama peristiwa yang ditautkan ke objek bisnis. Nama Penerima CHAR Nama penerima yang dikonfigurasi dalam transaksi SWETYPV
terhadap kombinasi Jenis Objek dan Peristiwa.Kunci Peristiwa CHAR Nama konfigurasi peristiwa penayang yang dikelola di bagian Konfigurasikan layanan Google Cloud target. Class Prosesor CHAR Opsional. Nama class pemroses tempat Anda menulis logika tambahan untuk mengisi isi peristiwa atau memperluas atribut ekstensi Class ini harus mengimplementasikan antarmuka
/GOOG/IF_BOR_EVNT_DATA_HANDLER
.Untuk informasi tentang cara membuat class pemroses, lihat Memperluas class pemroses.
Simpan konfigurasi.
Atribut ekstensi peristiwa cloud dan isi default
Secara default, pemroses peristiwa meneruskan atribut berikut, yang merupakan bagian dari penampung peristiwa ke target seperti yang ditentukan berdasarkan Kunci Peristiwa:
{
"EVENT_OBJECT": "BUS2012",
"EVENT_OBJECT_KEY": "450000011",
"EVENT_NAME": "CHANGED",
"EVENT_CREATOR": "USER-ID",
"EVENT_CREATION_DATE": "20250321",
"EVENT_CREATION_TIME": "135050",
"EVENT_CREATION_TIMESTAMP": "20250321135050",
"EVENT_CREATION_LANGUAGE": "EN"
}
Jika atribut peristiwa cloud dikonfigurasi, struktur payload-nya adalah sebagai berikut:
{
"eventObjectType": "BUS2012", - Picked from Event Container
"eventObjectKey": "450000011", - Picked from Event Container
"eventName": "RELEASED", - Picked from Event Container
"eventCreator": "USER", - Picked from Event Container
"eventCreationDate": "20250321", -Picked from Event Container
"eventCreationTime": "135850", - Picked from Event Container
"eventCreationTimestamp": "20250321135850", - Picked from Event Container
"id": "D5D1CB352A321FD081FFF6EEA9566190", - Auto Populated
"source": "sap-s4hana-doc", - Picked from CE Defaults
"type": "pochanged", - Picked from CE Defaults
"specversion": "1.0", - Picked from CE Defaults
"time": "2025-04-09T16:16:38Z", - Auto Populated
"subject": "test-subject-A" - Picked from CE Defaults Table
}
Jika Anda membuat dan mengonfigurasi class pemroses di pemroses peristiwa, payload yang dihasilkan akan mencerminkan struktur payload kustom Anda.
Memperluas class pemroses
Toolkit peristiwa bisnis memungkinkan Anda menetapkan data dan menambahkan atribut ekstensi tambahan ke peristiwa cloud.
Untuk melakukannya, terapkan class yang mewarisi antarmuka /GOOG/IF_BOR_EVNT_DATA_HANDLER
dan mengimplementasikan metode antarmuka FILL_EVENT_DATA
.
Metode ini memiliki parameter impor dan perubahan berikut:
Nama | Jenis | Jenis terkait | Deskripsi |
---|---|---|---|
SENDER |
Mengimpor | SIBFLPORB |
Referensi objek persisten lokal: kompatibel dengan BOR |
EVENT |
Mengimpor | SIBFEVENT |
Acara |
EVENT_CONTAINER |
Mengimpor | Type Ref To IF_SWF_IFS_PARAMETER_CONTAINER | Penampung untuk transfer parameter |
RECTYPE |
Mengimpor | SWFERECTYP |
Nama jenis penerima |
HANDLER |
Mengimpor | SIBFLPORB |
Referensi objek persisten lokal: kompatibel dengan BOR |
CT_DATA |
Mengubah | /GOOG/CL_PUBLISHER_BASE=>TT_MESSAGES |
Tabel pesan |
CT_CE_EXTN_ATTRIBUTES |
Mengubah | /GOOG/T_CE_ATTR_VALUE |
Cloud Event: nama atribut, tabel pasangan nilai |
Contoh implementasi untuk objek bisnis BUS2012
(Pemesanan) untuk menyertakan informasi header PO sebagai isi peristiwa cloud:
TYPES: BEGIN OF ty_event_attributes,
ekgrp TYPE ekgrp,
werks TYPE werks_d,
stlnr TYPE stnum,
stlal TYPE mast-stlal,
stlty TYPE stko-stlty,
END OF ty_event_attributes.
DATA: ls_po_header TYPE bapimepoheader.
DATA: ls_event_attributes TYPE ty_event_attributes,
lv_json TYPE string.
DATA ls_data TYPE /goog/cl_publisher_base=>ty_message.
CALL FUNCTION 'BAPI_PO_GETDETAIL1'
EXPORTING
purchaseorder = '4500000007'
IMPORTING
poheader = ls_po_header.
/ui2/cl_json=>serialize(
EXPORTING
data = ls_po_header
RECEIVING
r_json = lv_json
).
ls_data-data = lv_json.
APPEND ls_data TO ct_data.
Mengonfigurasi pemroses untuk peristiwa RAP
Untuk setiap peristiwa RAP yang ingin dikirim ke Google Cloud, Anda perlu membuat class pengendali peristiwa. Class pengendali peristiwa ini bertindak sebagai pemroses peristiwa untuk peristiwa RAP tersebut.
Untuk membuat class pengendali peristiwa secara terprogram, Anda dapat menggunakan resource komunitas yang tersedia di GitHub. Anda harus memberikan detail entity RAP dan membuat class pengendali peristiwa. Untuk informasi tentang objek peristiwa, lihat dokumentasi SAP SAP Business Accelerator Hub.
Untuk membuat class pengendali peristiwa secara manual, lakukan hal berikut:
Buat class ABAP untuk peristiwa RAP:
- Klik kanan paket ABAP, lalu pilih New > ABAP Class.
Masukkan detail berikut untuk class ABAP Anda:
- Name: Nama untuk class Anda, misalnya,
ZCL_PRODUCT_EXT
. - Deskripsi: Deskripsi untuk class Anda, misalnya,
Event handler for RAP events
.
- Name: Nama untuk class Anda, misalnya,
Klik Selesai.
Perbarui definisi class sebagai berikut:
class CLASS_NAME definition public abstract final for events of RAP_ENTITY_NAME . public section. protected section. private section. ENDCLASS. CLASS CLASS_NAME IMPLEMENTATION. ENDCLASS.
Ganti kode berikut:
CLASS_NAME
: Nama class, misalnya, ZCL_PRODUCT_EXT.RAP_ENTITY_NAME
: Nama entity RAP, misalnya, R_PRODUCT.
Buka tab Local Types dan buat implementasi lokal:
CLASS lcl_event_extension DEFINITION INHERITING FROM cl_abap_behavior_event_handler. PRIVATE SECTION. METHODS on_EVENT_NAME FOR ENTITY EVENT created FOR RAP_ENTITY_NAME~EVENT_NAME. ENDCLASS. CLASS lcl_event_extension IMPLEMENTATION. METHOD on_EVENT_NAME. TRY. /goog/cl_event_publisher=>publish_event( EXPORTING iv_event_key = 'EVENT_KEY' it_data = VALUE #( FOR <ls_created> IN created ( data = /goog/cl_json=>serialize( data = <ls_created> ) ) ) IMPORTING et_output = DATA(lt_output) ). CATCH /goog/cx_sdk INTO DATA(lo_exp). "Error handling logic here ENDTRY. ENDMETHOD. ENDCLASS.
Ganti kode berikut:
EVENT_NAME
: Nama peristiwa, misalnya, CREATED.RAP_ENTITY_NAME
: Nama entity RAP, misalnya, ZCL_PRODUCT_EXT.EVENT_KEY
: Kunci peristiwa yang memiliki konfigurasi target.
Mendapatkan dukungan
Jika Anda memerlukan bantuan untuk menyelesaikan masalah terkait ABAP SDK untuk Google Cloud, lakukan hal berikut:
Lihat panduan pemecahan masalah ABAP SDK untuk Google Cloud.
Ajukan pertanyaan dan diskusikan ABAP SDK untuk Google Cloud dengan komunitas di Cloud Forum.
Kumpulkan semua informasi diagnostik yang tersedia dan hubungi Cloud Customer Care. Untuk mengetahui informasi tentang cara menghubungi Layanan Pelanggan, lihat Mendapatkan dukungan untuk SAP di Google Cloud.