Skip to main content

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

Comments

Popular posts from this blog

How to Create a REST API in SAP ABAP — Step-by-step Guide

How to Create a REST API in SAP ABAP — Step-by-step Guide Summary: This tutorial shows how to build a REST API in SAP ABAP by creating a handler class, configuring SICF service, registering endpoints with cl_rest_router , implementing endpoint logic (example GET method), and testing the API. Based on an internal implementation reference. Why expose REST APIs from SAP? REST APIs allow SAP systems to integrate with web, mobile, and external services using standard HTTP and JSON payloads. Implementing REST endpoints in ABAP provides secure, reusable, and maintainable integration points for modern applications. Prerequisites Access to an SAP system with authorization to create classes (SE24) and SICF services (SICF). Familiarity with ABAP object-oriented concepts and basic SAP transaction codes. ABAP classes CL_REST_RESOURCE , CL_REST_ROUTER and utilities like /UI2/CL_JSON . High-level overview (4 steps) Create an API handler class (e.g. ZCL_API_HANDLER ). R...

SAP ABAP - User Exit Set Batch Characteristic Value In MIGO Goods Receipt

Customer Exit  :  MBCFC004 ( EXIT_SAPMM07M_004) Set Up Customer Exit for Classification of User-Defined Characteristics You use SAP enhancement MBCFC004 EXIT_SAPMM07M_004, which contains function module exit EXIT_SAPMM07M_004 to classify user-defined characteristics automatically during goods movements in Inventory Management. This is only possible for characteristics which are not assigned values during quality inspection. Requirements 1. The class of the batch to be classified must be known.  This means that a class must be assigned either to the material or at least to one batch of this material. 2. The exit call must be activated for the respective movement type in activity Activate batch classification during goods movements in IM using indicator 'Extended classification' . Open tcode OMC...

IT Asset Management Dengan PHP MySQL

Pada postingan kali saya akan share sebuah aplikasi IT Asset management yang fungsinya untuk memonitoring semua Asset khusus IT, contohnya : Laptop/komputer , Printer, Router, Hardisk, dll. Dalam aplkasi ini kita bisa mengetahui Asset IT posisinya dimana dan digunakan oleh siapa. untuk data-data yang dibutuhkan antara lain : 1. data kategori asset dalam menu ini kita bisa meng-input jenis2 kategory asset : tambah kategori asset : 2. data department 3. data karyawan 4. data department per karyawan 5. data asset location  6. data satuan asset dan untuk transaksi yang ada dalam aplikasi ini adalah,  1. create asset, pada menu create asset ini kita akan mengalokasikan sebuah asset ke karyawan/personnel tampilannya seperti berikut: setelah klik tombol save akan muncul seperti dibawah : untuk melihat detail asset yang sudah dibuat tadi, kita bisa pilih...