Monday, 22 September 2025

Belajar ABAP Part 6: Open SQL (SELECT, INSERT, UPDATE, DELETE)

Belajar ABAP Part 6: Open SQL (SELECT, INSERT, UPDATE, DELETE)

Belajar ABAP Part 6: Open SQL (SELECT, INSERT, UPDATE, DELETE)

Setelah mempelajari Part 5: Internal Table, sekarang kita masuk ke salah satu inti dari ABAP: Open SQL. Dengan Open SQL kita bisa berinteraksi dengan database SAP, misalnya membaca data master (MARA, MARC, VBAK, dsb.) atau melakukan update.

Apa itu Open SQL?

Open SQL adalah subset SQL yang dipakai di SAP ABAP agar query bisa berjalan di semua jenis database yang digunakan SAP (Oracle, HANA, MSSQL, dll).

Perintah Dasar Open SQL

  • SELECT → membaca data dari database.
  • INSERT → menambahkan data baru.
  • UPDATE → memperbarui data.
  • DELETE → menghapus data.

Contoh SELECT


REPORT zsql_select.

DATA: lt_mara TYPE TABLE OF mara,
      ls_mara TYPE mara.

" Ambil data material terbatas 5 row
SELECT * FROM mara UP TO 5 ROWS INTO TABLE lt_mara.

" Loop hasil
LOOP AT lt_mara INTO ls_mara.
  WRITE: / ls_mara-matnr, ls_mara-mtart, ls_mara-mbrsh.
ENDLOOP.

Contoh SELECT dengan WHERE


REPORT zsql_select_where.

DATA: lt_mara TYPE TABLE OF mara,
      ls_mara TYPE mara.

SELECT * FROM mara
  INTO TABLE lt_mara
  WHERE mtart = 'FERT'.

LOOP AT lt_mara INTO ls_mara.
  WRITE: / ls_mara-matnr, ls_mara-mtart.
ENDLOOP.

Contoh INSERT

Biasanya untuk INSERT kita pakai custom table (Z-table). Contoh berikut insert ke tabel zstudent.


REPORT zsql_insert.

DATA: ls_stu TYPE zstudent.

ls_stu-id   = '001'.
ls_stu-name = 'Andi'.
INSERT zstudent FROM ls_stu.

IF sy-subrc = 0.
  WRITE: / 'Insert berhasil'.
ELSE.
  WRITE: / 'Insert gagal'.
ENDIF.

Contoh UPDATE


REPORT zsql_update.

DATA: ls_stu TYPE zstudent.

ls_stu-id   = '001'.
ls_stu-name = 'Budi'.

UPDATE zstudent SET name = ls_stu-name
  WHERE id = ls_stu-id.

IF sy-subrc = 0.
  WRITE: / 'Update berhasil'.
ELSE.
  WRITE: / 'Update gagal'.
ENDIF.

Contoh DELETE


REPORT zsql_delete.

DELETE FROM zstudent WHERE id = '001'.

IF sy-subrc = 0.
  WRITE: / 'Delete berhasil'.
ELSE.
  WRITE: / 'Delete gagal'.
ENDIF.

Contoh JOIN

Kita bisa menggabungkan 2 tabel database, misalnya MARA dan MARC.


REPORT zsql_join.

DATA: lt_data TYPE TABLE OF mara,
      ls_data TYPE mara.

SELECT a~matnr a~mtart b~werks
  FROM mara AS a
  INNER JOIN marc AS b
    ON a~matnr = b~matnr
  INTO TABLE @DATA(lt_result)
  UP TO 10 ROWS.

LOOP AT lt_result INTO DATA(ls_result).
  WRITE: / ls_result-matnr, ls_result-mtart, ls_result-werks.
ENDLOOP.

Kesimpulan

Dengan Open SQL, kita bisa berinteraksi langsung dengan database SAP tanpa peduli apa DBMS yang digunakan. Di level lanjut, Open SQL juga mendukung fitur-fitur modern seperti INLINE DATA, FILTER, dan GROUP BY.

👉 Lanjut ke: Belajar ABAP Part 7: ALV Report

No comments:

Post a Comment

Belajar SAP ABAP RAP

  Belajar SAP ABAP RAP: Pengenalan dan Konsep Dasar Restful ABAP Programming Model Kalau kamu seorang ABAPer yang mulai terjun ke dunia SAP...