Skip to main content

Posts

Showing posts with the label SAP ABAP

Belajar ABAP Part 16: Security Best Practices & Authorization in ABAP/CDS

Belajar ABAP Part 16: Security Best Practices & Authorization in ABAP/CDS Belajar ABAP Part 16: Security Best Practices & Authorization in ABAP/CDS Security adalah aspek kritikal dalam pengembangan ABAP. Tanpa kontrol otorisasi yang baik, data sensitif bisa terekspos ke user yang tidak berhak. Di part ini kita akan membahas bagaimana Authorization bekerja di ABAP dan CDS, serta best practices untuk menulis kode yang aman. 1. Authorization Object Authorization Object adalah komponen di SAP yang mendefinisikan izin akses berdasarkan field-field tertentu (misalnya Company Code, Activity). Authorization Object digunakan dalam role (via PFCG). Contoh Authorization Object standar: M_BEST_BSA (untuk Purchase Requisition by Document Type). 2. Authority-Check di ABAP Dalam ABAP, validasi otorisasi dilakukan dengan statement AUTHORITY-CHECK . Contoh sederhana: AUTHORITY-CHECK OBJECT 'Z_SALES_AUTH' ID 'VKORG' FIELD lv_vkorg ID ...

Belajar ABAP Part 15: Performance Tuning — Teknik, Tools & Contoh Kasus

Belajar ABAP Part 15: Performance Tuning — Teknik, Tools & Contoh Kasus Z_SALES Belajar ABAP Part 15: Performance Tuning — Teknik, Tools & Contoh Kasus Z_SALES Ringkasan: Ini panduan praktis untuk optimasi performa program ABAP. Fokus: ukur dulu (profiling), kemudian optimasi DB access, loop, dan memory; gunakan CDS/AMDP untuk pushdown; pakai tools seperti ST05, SAT, ST12, PlanViz . Termasuk contoh real case mempercepat report Z_SALES (before/after) beserta checklist tuning. 1. Prinsip Utama Measure first: gunakan trace/profiler — jangan tebak-tebak. Push logic ke DB: gunakan CDS/AMDP bila operasi data besar & agregasi. Avoid row-by-row: hindari SELECT di dalam loop (N+1 problem). Reduce network round-trips: ambil data bulk (INTO TABLE) dan proses di memori. Keep it testable: benchmark sebelum & sesudah perubahan. 2. Tools Diagnosis (kapan & ba...

Belajar ABAP Part 14: Performance Tuning & HANA Optimization

Belajar ABAP Part 14: Performance Tuning & HANA Optimization — Tips, Tools, dan Contoh Belajar ABAP Part 14: Performance Tuning & HANA Optimization Ringkasan: Fokus part ini: teknik tuning ABAP + HANA untuk aplikasi S/4HANA. Intinya: push logic ke DB (code pushdown) bila relevan, hindari loop di ABAP untuk operasi data besar, gunakan CDS/AMDP dengan bijak, dan pakai alat profiling (PlanViz, ST05, SAT) untuk menemukan bottleneck. Disertai contoh before/after dan checklist tuning. 1. Prinsip Utama Tuning Measure first: jangan guesstimate — profil untuk lihat hotspot. Pushdown where possible: gunakan CDS/AMDP agar DB melakukan kerja berat. Avoid row-by-row: minimalisasi nested loops yang baca DB di tiap iterasi. Right data, right place: pilih column-store, partitioning, atau caching sesuai pola akses. 2. Tools untuk Diagnosis Tool Fungsi Kapan pa...

Belajar ABAP Part 13: CDS Consumption View (UI Annotation) & Unit Testing AMDP

Belajar ABAP Part 13: CDS Consumption View (UI Annotation) & Unit Testing AMDP Belajar ABAP Part 13: CDS Consumption View (UI Annotation) & Unit Testing AMDP Ringkasan: Di Part 13 ini lo bakal belajar dua hal krusial untuk ABAP modern: CDS Consumption Views + UI Annotation — bagaimana membuat CDS yang siap dipakai Fiori/OData dengan @UI.hints agar kolom muncul rapi di apps. Unit Testing AMDP — pattern dan contoh ABAP Unit untuk menguji AMDP (SQLScript) secara repeatable di development/CI pipeline. Target: membuat data model yang consumable & procedure DB yang dapat diuji otomatis. Bagian A — CDS Consumption View + UI Annotation 1) Tujuan dan kapan pakai Consumption View Consumption View adalah layer CDS yang dioptimalkan untuk konsumsi (UI, OData, analytical). Pakai ini ketika lo ingin: Expose data ke Fiori/Smart Template apps ...

Belajar ABAP Part 12: CDS View & AMDP

Belajar ABAP Part 12: CDS View & AMDP — Core Data Services dan ABAP Managed DB Procedures Belajar ABAP Part 12: CDS View & AMDP — Core Data Services dan ABAP Managed DB Procedures Ringkasan: CDS View dan AMDP adalah komponen kunci ABAP modern (S/4HANA) untuk menerapkan code pushdown . - CDS digunakan untuk modelling data di DB (view, associations, annotation, expose OData). - AMDP (ABAP Managed Database Procedures) memungkinkan menulis prosedur SQLScript yang dieksekusi langsung di HANA. Gunakan CDS untuk data modelling & exposure, dan AMDP saat diperlukan logic DB-procedural/berat. 1. Mengapa CDS & AMDP penting? S/4HANA mendorong code pushdown — memindahkan pemrosesan berat dari ABAP stack ke database (HANA). Ini meningkatkan performa (in-memory processing, parallelization). CDS menyediakan cara semantik memodel data; AMDP mengeksekusi logic procedural di DB. ...

Belajar ABAP Part 10: OOP Concepts in ABAP (Class, Inheritance, Polymorphism, Exception, Design Pattern)

Belajar ABAP Part 10: OOP Concepts in ABAP (Class, Inheritance, Polymorphism, Exception, Design Pattern) Belajar ABAP Part 10: OOP Concepts in ABAP Ringkasan: Pada bagian ini kita belajar Object-Oriented Programming (OOP) di ABAP: mulai dari class & object , visibility (PUBLIC, PROTECTED, PRIVATE), constructor , inheritance , polymorphism , hingga exception class . Disertai pula contoh design pattern populer seperti Factory dan Strategy yang sering dipakai dalam development SAP ABAP modern. 1. Pengenalan OOP di ABAP ABAP mendukung OOP sejak SAP Basis 4.6C. Dengan paradigma ini, developer dapat membuat kode yang lebih terstruktur, reusable, dan maintainable. Konsep utama OOP di ABAP meliputi encapsulation, inheritance, polymorphism, dan abstraction . 2. Class & Object Class adalah blueprint, sedangkan object adalah instance dari class tersebut. Public method dapat...

Belajar ABAP Part 9: ALV (ABAP List Viewer) — Tutorial dan Contoh Lengkap

Belajar ABAP Part 9: ALV (ABAP List Viewer) — Tutorial & Contoh Lengkap Belajar ABAP Part 9: ALV (ABAP List Viewer) ALV (ABAP List Viewer) adalah toolkit standar SAP untuk menampilkan data tabel secara rapi dan interaktif — lengkap dengan fitur sorting, filtering, layout, export, dan event handling. Di artikel ini kita bahas tipe ALV yang sering dipakai, contoh kode, cara menambahkan tombol custom, field catalog manual, dan demo embed-ready. Field Catalog di ALV Field catalog berfungsi sebagai “peta” kolom ALV: menentukan label, panjang kolom, alignment, apakah kolom bisa disortir, dll. Field catalog ini wajib di REUSE_ALV_GRID_DISPLAY dan CL_GUI_ALV_GRID , sedangkan CL_SALV_TABLE otomatis membangun dari struktur. Contoh Lengkap Field Catalog Manual REPORT z_alv_fieldcat. TABLES: mara. DATA: gt_fieldcat TYPE lvc_t_fcat, gs_fieldcat TYPE lvc_s_fcat, gt_data TYPE TABLE OF m...

Belajar ABAP Part 8: Enhancement & BADI

Belajar ABAP Part 8: Enhancement & BADI — Customisasi Tanpa Modify SAP Belajar ABAP Part 8: Enhancement & BADI — Customisasi Tanpa Modify SAP Enhancement & BADI adalah cara menambahkan logic/custom behavior tanpa mengubah source code SAP standar. Hal ini sangat penting agar sistem tetap upgrade safe . Apa itu Enhancement? Enhancement memungkinkan menancapkan kode tambahan pada titik tertentu di program SAP. User Exit — function modules siap pakai. Customer Exit — menambah field/logic via CMOD. Implicit Enhancement — otomatis tersedia di awal/akhir program. Explicit Enhancement — titik yang ditentukan oleh SAP developer. Apa itu BADI? BADI adalah framework enhancement berbasis OOP. Bisa multiple implementation, scalable, cocok di S/4HANA. Contoh Implicit Enhancement ENHANCEMENT 1 ZENH_MIGO_LOG. WRITE: / 'MIGO Posting date update...

Belajar ABAP: Data Dictionary (DDIC) untuk Pemula

Belajar ABAP: Data Dictionary (DDIC) untuk Pemula Belajar ABAP: Data Dictionary (DDIC) untuk Pemula Sebelum melanjutkan ke level advance, penting bagi pemula memahami Data Dictionary (DDIC) di SAP ABAP. Data Dictionary adalah tempat di mana semua definisi struktur data disimpan dan dikelola, sehingga developer tidak perlu mendefinisikan ulang data secara manual di program. Apa itu Data Dictionary? Data Dictionary di ABAP berfungsi untuk mendefinisikan, mengelola, dan memelihara objek data di SAP. Semua tabel database, field, data element, domain, view, dan search help dikelola di sini. Fungsi Utama Data Dictionary Definisi tabel database (transparent, cluster, pooled). Mendefinisikan domain (tipe data dan nilai valid). Mendefinisikan data element (field dengan semantic meaning). Membuat view untuk kombinasi tabel. ...

Belajar ABAP Part 7: ALV Report (ABAP List Viewer)

Belajar ABAP Part 7: ALV Report (ABAP List Viewer) Belajar ABAP Part 7: ALV Report (ABAP List Viewer) Setelah mempelajari Part 6: Open SQL , sekarang kita masuk ke tahap yang lebih keren: menampilkan data dengan ALV Report . ALV (ABAP List Viewer) adalah fitur standar SAP untuk menampilkan tabel data dengan tampilan grid yang interaktif, lengkap dengan sorting, filter, dan export Excel. Mengapa ALV? Standar tampilan SAP → konsisten di semua modul. Sudah built-in fitur filter, sort, dan export. Menghemat waktu developer → tidak perlu coding manual untuk UI list. Cara Membuat ALV Report Ada 2 cara populer untuk membuat ALV: Menggunakan function module REUSE_ALV_GRID_DISPLAY (cara klasik). Menggunakan class CL_SALV_TABLE (cara modern, OOP style). Contoh ALV dengan REUSE_ALV_GRID_DISPLAY REPORT zalv_classic. TABLES: mara. ...

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...