SAP Tabel Internal ABAP: Buat, Baca, Isi, Salin & Hapus

Apa itu Tabel Internal?

TABEL INTERNAL digunakan untuk memperoleh data dari struktur tetap untuk penggunaan dinamis di ABAP. Setiap baris dalam tabel internal memiliki struktur bidang yang sama. Kegunaan utama tabel internal adalah untuk menyimpan dan memformat data dari tabel database dalam suatu program.

Apa itu Wilayah Kerja?

Area kerja adalah satu baris data. Tabel tersebut harus memiliki format yang sama dengan tabel internal mana pun. Ini digunakan untuk memproses data dalam tabel internal satu baris dalam satu waktu.

Perbedaan Antara Tabel Internal dan Area Kerja?

Sebuah gambar mengungkapkan ribuan kata

Perbedaan Antara Tabel Internal dan Area Kerja

Jenis Tabel Internal

Ada dua jenis tabel internal.

  1. Tabel internal dengan baris HEADER
  2. Tabel internal tanpa baris HEADER.

Tabel Internal dengan Garis Header

  • Di sini sistem secara otomatis membuat area kerja.
  • Area kerja memiliki tipe data yang sama dengan tabel internal.
  • Area kerja ini disebut garis HEADER.
  • Di sinilah semua perubahan atau tindakan apa pun pada isi tabel dilakukan. Hasilnya, record dapat langsung dimasukkan ke dalam tabel atau diakses langsung dari tabel internal.

Tabel Internal tanpa Garis Header :

  • Di sini tidak ada area kerja yang berhubungan dengan tabel.
  • Area kerja harus ditentukan secara eksplisit ketika kita perlu mengakses tabel tersebut.
  • Oleh karena itu tabel ini tidak dapat diakses secara langsung.

Membuat Tabel Internal

Ada banyak cara untuk membuat Tabel Internal. Mari kita lihat satu per satu-

1.Dengan Menggunakan Pernyataan Tipe

Sekarang mari kita membuat tabel internal itab menggunakan pernyataan JENIS.

Sintaksnya adalah –

Types : begin of line,

column1 type I,

column2 type I,

end of line.

Contoh:

TYPES : begin of line,

empno		type I,

empname(20)   	type c	,

end of line.

Pernyataan TYPES membuat garis struktur seperti yang didefinisikan.

Untuk benar-benar membuat Tabel Internal itab gunakan perintah berikut-

Data itab type line occurs 10.

Itab tabel internal dibuat dengan struktur garis. Selain mendeklarasikan struktur tabel internal, klausa OCCURS juga menentukan berapa banyak entri tabel yang disimpan di penyimpanan utama (dalam hal ini 10). Catatan tambahan ditulis ke area paging dan dapat mempengaruhi kinerja

2.Dengan mengacu pada Tabel lain

Anda dapat membuat tabel internal dengan mengacu pada tabel yang sudah ada. Tabel yang ada bisa jadi standar SAP tabel, tabel Z atau tabel internal lainnya.

Sintaksis-

Data <f> <type> [with header line].

Contoh-

DATA itab TYPE line OCCURS 10 with header line.

Di sini tabel internal itab dibuat dari tipe baris dengan baris header. Harap dicatat "dengan baris header" adalah opsional.

3.Dengan mengacu pada Struktur yang ada

Sintaksis-

Data	<f> LIKE <struct> occurs n [with header line].

Contoh-

DATA itab LIKE sline OCCURS 10.

Di sini tabel itab dibuat dengan struktur yang sama dengan garis sline

4.Dengan membuat Struktur baru

Sekarang mari kita membuat tabel internal dengan struktur kita sendiri. Di sini tabel dibuat dengan garis Header, secara default.

Sintaks –

Data : Begin of <f> occurs <n>,

<component declaration>,

.................................,

End of <f>.

Contoh -

Data : Begin of itab occurs 10,

column1       type I,

column2(4)  type C,

column3      like  mara-ernam,

End of itab.

Tabel internal itab dibuat

Mengisi Tabel Internal

Sekarang kita telah berhasil membuat beberapa tabel internal, mari kita lihat bagaimana kita mengisinya dengan beberapa catatan. Ada berbagai metode yang tersedia untuk mengisi tabel

1.Tambahkan Data baris demi baris

Metode pertama yang tersedia adalah penggunaan pernyataan APPEND.

Dengan menggunakan pernyataan APPEND kita bisa menambahkan satu baris dari area kerja lain ke tabel internal atau kita bisa menambahkan satu baris awal ke tabel internal.

Sintaks –

APPEND [<wa> TO / INITIAL LINE TO] <itable>.

Di sini area kerja atau Baris Awal ditambahkan ke tabel internal .

Variabel sistem SY-TABIX berisi indeks dari baris yang ditambahkan.

Contoh:

Data: Begin of itab occurs 10,

col1 type C,

col2 type I,

end of itab.

Append initial line to itab.

Hasil : ' ' '0'

Baris awal menambahkan baris yang diinisialisasi dengan nilai yang benar untuk tipenya ke tabel. Di sini, col1 adalah karakter dan col2 adalah bilangan bulat. Kemudian tambahkan baris awal, tambahkan baris yang diinisialisasi sehubungan dengan tipe data kolom, yaitu spasi untuk col1 dan 0 untuk col2.

2.Menggunakan pernyataan COLLECT

COLLECT adalah bentuk pernyataan lain yang digunakan untuk mengisi tabel internal. Umumnya COLLECT digunakan saat memasukkan baris ke dalam tabel internal dengan kunci standar unik.

Sintaksis-

COLLECT [<wa> INTO] <itable>.

Jika tabel memiliki garis Header, opsi INTO dihilangkan. Misalkan sudah ada entri yang memiliki kunci yang sama dengan yang Anda coba tambahkan, maka baris baru tidak ditambahkan ke tabel, tetapi bidang numerik dari kedua entri tersebut ditambahkan dan hanya ada satu entri yang sesuai dengan kunci tersebut. . Nilai SY-TABIX diubah ke baris entri asli. Lain COLLECT bertindak mirip dengan APPEND dan SY-TABIX berisi indeks dari baris yang diproses.

3.Menggunakan pernyataan INSERT

Pernyataan INSERT menambahkan garis/area kerja ke tabel internal. Anda dapat menentukan posisi di mana baris baru akan ditambahkan dengan menggunakan klausa INDEX dengan pernyataan INSERT.

Sintaksis

INSERT [<wa> INTO / INITIAL LINE INTO] <itable> [index <idx>].

Di sini, area kerja atau GARIS AWAL dimasukkan ke dalam tabel internal di indeks .

Menyalin Tabel Internal

Isi dari satu tabel internal dapat disalin ke tabel lain dengan menggunakan pernyataan APPEND LINES atau INSERT LINES. Cara yang lebih sederhana adalah dengan menggunakan salah satu sintaks berikut.

MOVE  <itab1> To <itab2>.

OR

<itab1> = <itab2>.

Ini menyalin isi ITAB1 ke ITAB2. Dalam kasus tabel internal dengan baris header kita harus menggunakan [] untuk membedakannya dari area kerja. Jadi, untuk menyalin isi tabel internal dengan baris header, sintaksnya menjadi,

itab1[] = itab2[].

Baca Tabel Internal

Kita sekarang sudah familiar dengan pembuatan tabel internal dan mengisinya dengan data. Sekarang kita akan melihat bagaimana sebenarnya kita menggunakan data atau mengambil data dari tabel internal.

1. Menggunakan Loop -Endloop

Salah satu cara mengakses atau membaca tabel internal adalah dengan menggunakan LOOP-ENDLOOP.

Sintaksis

LOOP AT <itable> [INTO <wa>]

...................................

ENDLOOP.

Di sini ketika Anda mengatakan LOOP AT ITABLE, maka tabel internal ITABLE dibaca baris demi baris. Anda dapat mengakses nilai kolom untuk baris tersebut di bagian mana pun dari struktur LOOP-ENDLOOP. Nilai SY-SUBRC diatur ke 0, meskipun hanya satu catatan yang dibaca.

2. Menggunakan BACA

Metode lain untuk membaca tabel internal adalah dengan menggunakan pernyataan READ.

Sintaksis-

READ TABLE <itable> [INTO <wa>] INDEX <idx>.

Pernyataan ini membaca baris saat ini atau baris seperti yang ditentukan oleh indeks . Nilai SY-TABIX adalah indeks dari baris yang dibaca. Jika entri dengan indeks yang ditentukan ditemukan, maka SY-SUBRC diatur ke 0. Jika indeks yang ditentukan kurang dari 0, maka terjadi kesalahan run-time. Jika indeks yang ditentukan melebihi ukuran tabel maka SY-SUBRC diatur ke 4.

Menghapus Tabel Internal

Ada banyak cara untuk menghapus baris dari tabel internal.

1.Menghapus garis dalam satu lingkaran.

Ini adalah cara paling sederhana untuk menghapus garis.

Sintaksis

DELETE <ITABLE>.

Pernyataan ini hanya berfungsi dalam satu lingkaran. Ini menghapus baris saat ini. Anda dapat menghapus garis-garis dalam satu lingkaran secara kondisional dengan menambahkan klausa WHERE.

2.Menghapus baris menggunakan indeks.

Ini digunakan untuk menghapus baris dari tabel internal di indeks mana pun.

Sintaksis

DELETE <ITABLE> INDEX <IDX>.

Garis dengan indeks dihapus. Indeks baris berikutnya dikurangi 1.