SAP ABAP - Membuat Tabel Internal
Pernyataan DATA digunakan untuk mendeklarasikan tabel internal. Program harus diberi tahu di mana tabel dimulai dan diakhiri. Jadi gunakan pernyataan BEGIN OF dan kemudian nyatakan nama tabelnya. Setelah ini, penambahan OCCURS digunakan, diikuti dengan angka, di sini 0. OCCURS memberi tahu SAP bahwa tabel internal sedang dibuat, dan 0 menyatakan bahwa itu tidak akan berisi record apa pun pada awalnya. Ini kemudian akan berkembang karena diisi dengan data.
Berikut ini adalah sintaksnya -
DATA: BEGIN OF <internal_tab> Occurs 0,
Mari buat bidang di baris baru. Misalnya, buat 'nama' yang dideklarasikan sebagai LIKE ZCUSTOMERS1-name. Buat bidang lain bernama 'dob', SEPERTI ZCUSTOMERS1-dob. Pada awalnya berguna untuk memberi nama bidang di tabel internal nama yang sama seperti bidang lain yang telah dibuat di tempat lain. Terakhir, nyatakan akhir dari tabel internal dengan “END OF <internal_tab>.” seperti yang ditunjukkan pada kode berikut -
DATA: BEGIN OF itab01 Occurs 0,
name LIKE ZCUSTOMERS1-name,
dob LIKE ZCUSTOMERS1-dob,
END OF itab01.
Di sini 'itab01' adalah singkatan yang umum digunakan saat membuat tabel sementara di SAP. Klausa OCCURS digunakan untuk menentukan isi tabel internal dengan mendeklarasikan bidang untuk tabel. Saat klausa OCCURS digunakan, Anda dapat menentukan konstanta numerik 'n' untuk menentukan memori default tambahan jika diperlukan. Ukuran default memori yang digunakan oleh klausa OCCUR 0 adalah 8 KB. Struktur tabel internal sekarang dibuat, dan kodenya dapat ditulis untuk mengisinya dengan catatan.
Tabel internal dapat dibuat dengan atau tanpa menggunakan baris header. Untuk membuat tabel internal dengan baris header, gunakan klausa BEGIN OF sebelum klausa OCCURS atau klausa WITH HEADER LINE setelah klausa OCCURS dalam definisi tabel internal. Untuk membuat tabel internal tanpa baris header, gunakan klausa OCCURS tanpa klausa BEGIN OF.
Anda juga dapat membuat tabel internal sebagai tipe data lokal (tipe data yang digunakan hanya dalam konteks program saat ini) dengan menggunakan pernyataan TYPES. Pernyataan ini menggunakan klausa TYPE atau LIKE untuk merujuk ke tabel yang sudah ada.
Sintaks untuk membuat tabel internal sebagai tipe data lokal adalah -
TYPES <internal_tab> TYPE|LIKE <internal_tab_type> OF
<line_type_itab> WITH <key> INITIAL SIZE <size_number>.
Di sini <internal_tab_type> menentukan tipe tabel untuk tabel internal <internal_tab> dan <line_type_itab> menentukan tipe untuk baris tabel internal. Dalam pernyataan TYPES, Anda dapat menggunakan klausa TYPE untuk menentukan tipe garis dari tabel internal sebagai tipe data dan klausa LIKE untuk menentukan tipe garis sebagai objek data. Menentukan kunci untuk tabel internal adalah opsional dan jika pengguna tidak menentukan kunci, sistem SAP akan menentukan tipe tabel dengan kunci arbitrer.
UKURAN AWAL <size_number> membuat objek tabel internal dengan mengalokasikan jumlah awal memori untuk itu. Dalam sintaks sebelumnya, klausa INITIAL SIZE mencadangkan ruang memori untuk baris tabel size_number. Setiap kali objek tabel internal dideklarasikan, ukuran tabel bukan milik tipe data tabel.
Note - Jauh lebih sedikit memori yang dikonsumsi saat tabel internal diisi untuk pertama kalinya.
Contoh
Step 1- Buka Editor ABAP dengan menjalankan kode transaksi SE38. Layar awal Editor ABAP muncul.
Step 2 - Di layar awal, masukkan nama program, pilih radio button Source code dan klik tombol Create untuk membuat program baru.
Step 3- Di kotak dialog 'ABAP: Program Attributes', masukkan deskripsi singkat untuk program di bidang Judul, pilih opsi 'Program yang dapat dijalankan' dari menu tarik-turun Jenis di kotak grup Atribut. Klik tombol Simpan.
Step 4 - Tulis kode berikut di editor ABAP.
REPORT ZINTERNAL_DEMO.
TYPES: BEGIN OF CustomerLine,
Cust_ID TYPE C,
Cust_Name(20) TYPE C,
END OF CustomerLine.
TYPES mytable TYPE SORTED TABLE OF CustomerLine
WITH UNIQUE KEY Cust_ID.
WRITE:/'The mytable is an Internal Table'.
Step 5 - Simpan, aktifkan dan jalankan program seperti biasa.
Dalam contoh ini, mytable adalah tabel internal dan kunci unik ditentukan di bidang Cust_ID.
Kode di atas menghasilkan keluaran sebagai berikut -
The mytable is an Internal Table.