Jadual Dalaman SAP ABAP: Buat, Baca, Isi, Salin & Padam

Isi kandungan:

Anonim

Apakah Jadual Dalaman?

INTERNAL TABLE digunakan untuk mendapatkan data dari struktur tetap untuk penggunaan dinamik dalam ABAP. Setiap baris dalam jadual dalaman mempunyai struktur medan yang sama. Penggunaan utama untuk jadual dalaman adalah untuk menyimpan dan memformat data dari jadual pangkalan data dalam program.

Dalam tutorial ini anda akan belajar:

  • Apakah Jadual Dalaman?
  • Apa itu Kawasan Kerja?
  • Perbezaan Antara Meja Dalaman dan Kawasan Kerja?
  • Jenis Jadual Dalaman
  • Membuat Jadual Dalaman
  • Mengisi Jadual Dalaman
  • Menyalin Jadual Dalaman
  • Membaca Dalaman
  • Memadamkan Jadual Dalaman

Apa itu Kawasan Kerja?

Kawasan kerja adalah satu baris data. Mereka harus mempunyai format yang sama dengan mana-mana jadual dalaman. Ini digunakan untuk memproses data dalam tabel internal satu baris pada satu waktu.

Perbezaan Antara Meja Dalaman dan Kawasan Kerja?

Sekeping gambar menyebut seribu perkataan :-)

Jenis Jadual Dalaman

Terdapat dua jenis jadual dalaman.

  1. Jadual dalaman dengan barisan HEADER
  2. Jadual dalaman tanpa garis HEADER.

Jadual Dalaman dengan Baris Header

  • Di sini sistem membuat kawasan kerja secara automatik.
  • Kawasan kerja mempunyai jenis data yang sama dengan jadual dalaman.
  • Kawasan kerja ini dipanggil garis HEADER.
  • Di sinilah semua perubahan atau tindakan apa pun pada kandungan jadual dilakukan. Akibatnya, rekod boleh dimasukkan terus ke dalam jadual atau diakses dari meja dalaman secara langsung.

Jadual Dalaman tanpa Baris Header :

  • Di sini tidak ada kawasan kerja yang berkaitan dengan jadual.
  • Kawasan kerja harus dinyatakan secara eksplisit ketika kita perlu mengakses jadual tersebut.
  • Oleh itu jadual ini tidak dapat diakses secara langsung.

Membuat Jadual Dalaman

Terdapat banyak cara untuk membuat Jadual Dalaman. Mari kita lihat satu persatu -
1. Dengan Menggunakan Jenis Pernyataan
Mari kita buat jadual dalaman itab menggunakan penyataan JENIS.
Sintaksnya adalah -

Jenis: permulaan baris,lajur1 jenis I,lajur2 jenis I,hujung talian.

Contoh:

JENIS: permulaan baris,empno jenis I,empname (20) jenis c,hujung talian.

Pernyataan JENIS mencipta garis struktur seperti yang ditentukan.
Untuk benar-benar membuat Jadual Dalaman itab gunakan arahan berikut-

Garis jenis itab data berlaku 10.

Itab jadual dalaman dibuat dengan struktur garis. Selain menyatakan struktur jadual dalaman, klausa OCCURS juga menentukan berapa banyak entri jadual yang dikekalkan dalam simpanan utama (dalam kes ini 10). Rekod tambahan ditulis ke kawasan halaman dan boleh mempengaruhi prestasi
2. Dengan merujuk Jadual lain
Anda boleh membuat jadual dalaman dengan merujuk jadual yang ada. Jadual yang ada boleh menjadi jadual SAP standard, jadual Z atau jadual dalaman yang lain.
Sintaks-

Data   [dengan baris tajuk].

Contoh-

DATA itab JENIS baris OCCURS 10 dengan garis kepala.

Di sini itab jadual dalaman dibuat dari garis jenis dengan garis tajuk. Sila ambil perhatian bahawa "dengan baris tajuk" adalah pilihan
3. Dengan merujuk kepada
Sintaks Struktur yang ada-

Data  LIKE  berlaku n [dengan baris tajuk].

Contoh-

DATA itab SEPERTI garis bawah 10.

Di sini jadual itab dibuat dengan struktur yang sama seperti garis
4. Dengan membuat Struktur baru
Mari kita buat jadual dalaman dengan struktur kita sendiri. Di sini jadual dibuat dengan baris Header, secara lalai .
Sintaks -

Data: Permulaan  berlaku ,,…,Akhir .

Contoh -

Data: Permulaan itab berlaku 10,lajur1 jenis I,lajur2 (4) jenis C,lajur3 seperti mara-ernam,Akhir itab.

Jadual dalaman itab dibuat

Mengisi Jadual Dalaman

Setelah berjaya membuat beberapa jadual dalaman, mari kita lihat bagaimana kita mengisi dengan beberapa rekod. Terdapat pelbagai kaedah yang tersedia untuk mengisi jadual 1. Tambah Data baris demi baris Kaedah pertama yang tersedia adalah penggunaan pernyataan LAMPIRAN.
Dengan menggunakan pernyataan LAMPIRAN kita boleh menambah satu baris dari kawasan kerja yang lain ke jadual dalaman atau kita dapat menambahkan satu baris awal ke jadual dalaman…
Sintaks -
LAMPIRAN [ KE / BARANG INITIAL KE] .
Di sini kawasan kerja atau Garis Permulaan dilampirkan ke jadual dalaman .
Pembolehubah sistem SY-TABIX mengandungi indeks garis tambahan.
Contoh:
Data: Permulaan itab berlaku 10,col1 jenis C,col2 jenis I,hujung itab.Tambahkan garis awal ke itab.

Hasil: '' ''
Garis awal menambah garis yang diinisialisasi dengan nilai yang betul untuk jenisnya ke jadual. Di sini, col1 adalah watak dan col2 adalah integer. Kemudian LAMPIRAN baris awal, tambahkan garis yang diinisialisasi berkenaan dengan jenis data lajur, iaitu ruang untuk col1 dan 0 untuk col2. 2. Menggunakan pernyataanCOLLECT COLLECT adalah bentuk pernyataan lain yang digunakan untuk mengisi jadual dalaman. Umumnya COLLECT digunakan semasa memasukkan baris ke dalam jadual dalaman dengan kunci standard yang unik.
Sintaks-
KUMPULKAN [ DALAM] .

Sekiranya terdapat jadual dengan baris Header, pilihan INTO dihilangkan. Andaikan sudah ada entri yang memiliki kunci yang sama seperti yang ingin anda tambahkan, maka baris baru tidak ditambahkan ke tabel, tetapi bidang angka kedua entri ditambahkan dan hanya satu entri yang sesuai dengan kunci yang ada . Nilai SY-TABIX diubah ke baris entri asal. Else COLLECT bertindak serupa dengan LAMPIRAN dan SY-TABIX mengandungi indeks garis yang diproses. 3 . Menggunakan pernyataan INSERT PernyataanINSERT menambah garis / kawasan kerja ke jadual dalaman. Anda boleh menentukan kedudukan di mana baris baru akan ditambah dengan menggunakan klausa INDEX dengan pernyataan INSERT.
Sintaks
INSERT [ INTO / INITIAL LINE INTO]  [index ].
Di sini, kawasan kerja atau INITIAL LINE dimasukkan ke dalam jadual dalaman pada indeks .

Menyalin Jadual Dalaman

Kandungan satu jadual dalaman boleh disalin ke jadual yang lain dengan menggunakan pernyataan LAMPIRAN LINK atau MASUKKAN. Cara yang lebih mudah adalah menggunakan banyak sintaks berikut.
GERAKAN  Ke .ATAU = .

Ini menyalin kandungan ITAB1 ke ITAB2. Sekiranya terdapat jadual dalaman dengan baris header, kita harus menggunakan [] untuk membezakan dari kawasan kerja. Jadi, untuk menyalin kandungan jadual dalaman dengan baris tajuk sintaks menjadi,
itab1 [] = itab2 [].

Baca Jadual Dalaman

Kami sekarang sudah biasa dengan pembuatan jadual dalaman dan mengisi dengan data. Kita sekarang akan melihat bagaimana kita benar-benar menggunakan data atau mengambil data dari jadual dalaman. 1. Menggunakan Loop -EndloopSalah satu cara mengakses atau membaca jadual dalaman adalah dengan menggunakan LOOP-ENDLOOP.
Sintaks
LOOP DI  [INTO ]… ENDLOOP.

Di sini apabila anda mengatakan LOOP AT ITABLE, maka jadual dalaman ITABLE dibaca baris demi baris. Anda boleh mengakses nilai lajur untuk garis itu semasa bahagian struktur LOOP-ENDLOOP. Nilai SY-SUBRC ditetapkan ke 0 , walaupun hanya satu rekod yang dibaca. 2. Menggunakan READKaedah lain untuk membaca jadual dalaman adalah dengan menggunakan penyataan READ.
Sintaks-
BACA JADUAL  [INTO ] INDEX .

Pernyataan ini membaca baris atau baris semasa seperti yang ditentukan oleh indeks . Nilai SY-TABIX adalah indeks garis yang dibaca. Sekiranya entri dengan indeks yang ditentukan dijumpai, maka SY-SUBRC ditetapkan ke 0. Jika indeks yang ditentukan kurang dari 0, maka ralat masa berjalan berlaku. Sekiranya indeks yang ditentukan melebihi ukuran jadual maka SY-SUBRC ditetapkan ke 4.

Memadamkan Jadual Dalaman

Terdapat banyak cara untuk menghapus baris dari jadual dalaman. 1. Menghapuskan garis dalam satu gelung.
Ini adalah kaedah paling mudah untuk menghapus baris.
Sytax
HAPUS .

Pernyataan ini hanya berfungsi dalam satu gelung. Ini memadamkan baris semasa. Anda boleh memadam baris dalam satu gelung dengan menambahkan klausa WHERE. 2. Memadamkan baris menggunakan indeks.
Ini digunakan untuk menghapus baris dari jadual dalaman di mana-mana indeks pengetahuan.
Sintaks
HAPUS  INDEX .
Garis dengan indeks dihapuskan. Indeks baris berikut dikurangkan oleh 1.