TMS & Transport Management System

Target: ABAP Developer (Lanjutan)
Prasyarat: Modul 1: ABAP Dasar (Arsitektur Sistem)
Lingkungan: SAP NetWeaver, SAP S/4HANA, SAP BTP ABAP Environment


Gambaran Umum

Dalam dunia enterprise mission-critical (seperti perbankan, manufaktur pesawat, atau rantai pasok global), pengembang DILARANG KERAS menulis atau mengubah kode program secara langsung di server produksi tempat pengguna aktif bekerja. Kesalahan satu baris kode dapat melumpuhkan transaksi finansial bernilai miliaran rupiah.

Untuk menjamin stabilitas sistem, SAP menerapkan pemisahan lingkungan kerja yang ketat melalui Change and Transport System (CTS) dan Transport Management System (TMS). Seluruh artefak kode, tabel database, class, dan konfigurasi dikemas ke dalam sebuah wadah resmi bernama Transport Request (TR) untuk kemudian diuji secara berjenjang sebelum diizinkan masuk ke server produksi.


Daftar Isi

🟒 Fundamental

  1. Mengapa Transport Diperlukan dalam Lingkungan Enterprise
  2. Arsitektur Lanskap 3-Sistem SAP: DEV ──> QAS ──> PRD
  3. Anatomi Transport Request (TR) & Transport Task
  4. Workbench Request vs Customizing Request

🟑 Lanjutan

  1. Siklus Hidup Rilis Kode Menggunakan T-Code SE09 & SE10
  2. Alur Import Antrean Sistem Target: Pengenalan T-Code STMS
  3. Interpretasi Kode Hasil Eksekusi Import (Return Codes 0, 4, 6, 8, 12)
  4. Menangani Masalah Umum: Ketergantungan Objek & Object Locks
  5. Evolusi Modern: Git-enabled CTS (gCTS) & SAP Cloud Transport Management

πŸ› οΈ Praktik & Rujukan

  1. Praktik: Membuat, Mengorganisasi, & Merilis Transport Request
  2. Ringkasan & Cheat Code TMS
  3. Referensi Resmi

1. 🟒 Mengapa Transport Diperlukan dalam Lingkungan Enterprise

Tiga tujuan utama mekanisme transport:

  1. Integritas Sistem Produksi: Server Production (PRD) berada dalam mode Non-Modifiable (terkunci dari pengeditan langsung).
  2. Jaminan Kualitas Bertingkat: Kode wajib diuji oleh tim QA dan konsultan fungsional di server testing (QAS) dengan data tiruan sebelum disetujui untuk rilis.
  3. Audit Trail & Versioning: Setiap perubahan dicatat secara permanen: siapa pembuatnya, objek apa saja yang diubah, nomor tiket persetujuan (Change Request), dan kapan objek tersebut tiba di server produksi.

2. 🟒 Arsitektur Lanskap 3-Sistem SAP: DEV ──> QAS ──> PRD

Lanskap standar enterprise SAP umumnya terdiri atas minimal 3 server fisik/virtual terpisah:

Alur Rilis Kode Berjenjang:
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”      Rilis TR      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”      Import TR      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Development     β”‚ ─────────────────> β”‚ Quality Assur.  β”‚ ──────────────────> β”‚ Production      β”‚
β”‚ System (DEV)    β”‚                    β”‚ System (QAS)    β”‚                     β”‚ System (PRD)    β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€                    β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€                     β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ β€’ Tempat nulis  β”‚                    β”‚ β€’ Tempat uji    β”‚                     β”‚ β€’ Tempat user   β”‚
β”‚   kode baru     β”‚                    β”‚   skenario bisnisβ”‚                    β”‚   bekerja nyata β”‚
β”‚ β€’ Bebas modif   β”‚                    β”‚ β€’ Data mirip PRD β”‚                    β”‚ β€’ Terkunci 100% β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
  • Transport Route: Jalur pipa konfigurasi yang menentukan ke mana paket data berpindah setelah dirilis dari sistem asal.

3. 🟒 Anatomi Transport Request (TR) & Transport Task

Di dalam sistem SAP, sebuah Transport Request memiliki struktur bertingkat (Parent-Child Relationship):

Struktur Hierarki Transport Request:
TR Header: DEVK900125 ("Fitur Validasi Diskon Penjualan")
β”œβ”€β”€ Transport Task 1: DEVK900126 (Developer A: Alimur)
β”‚   β”œβ”€β”€ Program: ZREP_SALES_INVOICE (LIMU - REPS)
β”‚   └── Class: ZCL_SALES_ENGINE (LIMU - CLAS)
β”‚
└── Transport Task 2: DEVK900127 (Developer B: Budi)
    β”œβ”€β”€ Table: ZTSALES_ORDER (R3TR - TABL)
    └── Data Element: ZDE_DISCOUNT (R3TR - DTEL)
  • TR Header (Request Utama): Wadah induk berformat <SID>K<Nomor> (misal DEVK900125, di mana DEV adalah System ID). TR ini yang nantinya dipindahkan ke antrean sistem target.
  • Transport Task (Sub-tugas): Wadah milik masing-masing developer yang bekerja di bawah proyek tersebut.
  • Object Locks: Saat sebuah program ditambahkan ke dalam sebuah Task, objek tersebut otomatis terkunci. Developer lain di sistem DEV tidak dapat mengedit program tersebut sampai TR dirilis, mencegah tabrakan pengeditan (concurrency overwrite).

4. 🟒 Workbench Request vs Customizing Request

Penting untuk membedakan dua kategori utama Transport Request:

Kategori RequestTarget ObjekKarakteristik KlienContoh Objek
Workbench RequestObjek repositori teknis ABAP & Data Dictionary.Cross-Client (Perubahan berlaku di seluruh klien dalam server tersebut).Program ABAP, Class, CDS View, Tabel DDIC, Package.
Customizing RequestPengaturan parameter konfigurasi bisnis (SPRO).Client-Dependent (Perubahan hanya berlaku pada nomor klien tertentu, misal Klien 100).Pemetaan bagan akun FI, penetapan nomor pabrik MM, skema harga SD.

5. 🟑 Siklus Hidup Rilis Kode Menggunakan T-Code SE09 & SE10

T-Code SE09 (Workbench Organizer) dan SE10 (Transport Organizer) adalah pusat komando developer:

Status Siklus Hidup TR:
[ Modifiable (Dapat Dimodifikasi) ]
  β”œβ”€β”€ Buka Task individual ──> Klik tombol 'Release' (Truk)
  β”‚     (Object Lock terlepas, task berubah menjadi Released)
  β”‚
  └── Buka TR Header induk ──> Klik tombol 'Release' (Truk)
        β”‚
        β–Ό
[ Released (Terkunci & Siap Ditransfer) ]
Sistem otomatis mengekspor file data & cofile ke direktori /usr/sap/trans/
TR masuk ke antrean import sistem target (QAS).

IMPORTANT

Aturan Wajib Urutan Rilis: Anda tidak dapat merilis TR Header induk jika masih ada Transport Task di bawahnya yang berstatus Modifiable. Seluruh Task anak wajib dirilis terlebih dahulu dari bawah ke atas!


6. 🟑 Alur Import Antrean Sistem Target: Pengenalan T-Code STMS

Setelah TR dirilis dari DEV, paket data fisik (berupa Data File dan Co-file) tersimpan di direktori operating system /usr/sap/trans/.

Di sistem target (QAS atau PRD):

  1. Administrator Basis membuka T-Code STMS (SAP Transport Management System).
  2. Membuka Import Queue untuk sistem target.
  3. TR yang baru dirilis akan muncul di daftar antrean.
  4. Menjalankan proses import (baik perorangan maupun massal terjadwal).

7. 🟑 Interpretasi Kode Hasil Eksekusi Import (Return Codes 0, 4, 6, 8, 12)

Setelah proses import di sistem target selesai dijalankan melalui STMS atau program transport (tp), sistem memberikan laporan status dengan nilai kode kembalian (Return Code / RC):

Return CodeKlasifikasi StatusMakna Teknis Operasional
RC = 0🟒 Success (Berhasil)Seluruh objek dalam transport berhasil diimport dan diaktifkan tanpa catatan atau peringatan.
RC = 4🟑 Warning (Peringatan)Import berhasil dengan catatan minor (misal: warning aktivasi tabel atau peringatan generasi program). Objek aktif dan aman digunakan.
RC = 6🟑 Post-processing RequiredObjek utama berhasil diimport, namun metode pasca-import (post-import methods / XPRA) menghasilkan peringatan atau memerlukan langkah penanganan tambahan.
RC = 8πŸ”΄ Error (Gagal)Objek tidak dapat diaktifkan secara lengkap. Umumnya disebabkan oleh syntax error atau ketergantungan objek belum terangkut (Missing Prerequisites). Objek lama di target tidak digantikan.
RC = 12+πŸ”΄ Terminated / Severe ErrorProses import dibatalkan paksa di tengah jalan oleh program transport (misal: server database mati, media storage penuh, atau program pembaca transport crash).
RC = 16πŸ”΄ System ErrorKesalahan sistem komunikasi internal TMS atau kegagalan fatal pada utilitas transport (tp / R3trans).

IMPORTANT

Catatan Interpretasi Return Code: Arti detail return code dapat bergantung pada jenis transport/import process dan tool yang digunakan (seperti program tp, R3trans, atau langkah spesifik pada fase import). Tabel di atas merupakan interpretasi umum yang berlaku luas dan bukan pengganti verifikasi log transport resmi di SAP. Pengembang dan administrator wajib selalu memeriksa detail Transport Log di STMS untuk menganalisis penyebab teknis secara akurat.


8. 🟑 Menangani Masalah Umum: Ketergantungan Objek & Object Locks

1. Masalah Ketergantungan Objek (Missing Dependent Objects)

  • Kasus: Developer membuat program baru ZREP_SALES yang memanggil Data Element baru ZDE_STATUS. Namun saat membuat TR, developer lupa memasukkan ZDE_STATUS ke dalam TR.
  • Dampak: Di sistem DEV program berjalan lancar. Saat TR tiba di QAS, import menghasilkan RC=8 (Syntax Error: Type ZDE_STATUS does not exist)!
  • Pencegahan: Selalu jalankan pemeriksaan objek dependen sebelum rilis atau periksa melalui ATC.

2. Tabrakan Object Lock

Jika rekan kerja Anda ingin mengedit program yang sedang Anda kunci di dalam TR Anda:

  • Jangan merilis TR prematur jika pekerjaan belum selesai.
  • Anda dapat memindahkan kepemilikan Task ke rekan kerja tersebut atau menggabungkan pekerjaan di bawah satu TR Header yang sama.

9. 🟑 Evolusi Modern: Git-enabled CTS (gCTS) & SAP Cloud Transport Management

Mekanisme rilis kode berevolusi seiring adopsi paradigma cloud dan praktik DevOps:

KarakteristikClassic CTS / STMSGit-enabled CTS (gCTS)SAP Cloud Transport Management (cTMS)
Basis TeknologiFile fisik OS (/usr/sap/trans/)Git Repository (GitHub / GitLab)Cloud Native Service (SAP BTP)
KetersediaanNetWeaver & S/4HANA On-PremiseS/4HANA 1909+ On-Premise & Private CloudSAP BTP & Multi-Cloud Landscape
Branching / MergingTidak didukungDidukung penuh (fitur cabang Git)Dikelola via pipeline BTP
Interaksi DeveloperT-Code SE09 / SE10Eclipse ADT / UI gCTSBTP Cockpit & REST API

NOTE

Konteks Deployment: Penggunaan TMS klasik vs gCTS vs cTMS bergantung pada arsitektur produk dan model deployment yang digunakan perusahaan. Di sistem on-premise yang sudah matang, CTS klasik via SE09/STMS masih menjadi metode rilis harian utama bagi jutaan pengembang di seluruh dunia.


10. πŸ› οΈ Praktik: Membuat, Mengorganisasi, & Merilis Transport Request

Langkah 1: Membuat Transport Request Baru di Eclipse ADT atau SE09

  1. Di SAP GUI, jalankan T-Code SE09.
  2. Klik tombol Create (ikon kertas putih / F6).
  3. Pilih Workbench Request Klik centang hijau.
  4. Masukkan Deskripsi Singkat: [FITUR] Validasi Batas Diskon Penjualan SO-909.
  5. Sistem menghasilkan nomor TR Header baru: misal DEVK900999, lengkap dengan satu Task anak di bawah nama user Anda.

Langkah 2: Menyimpan Objek ke Dalam TR

  1. Saat membuat atau mengedit objek di SE38, SE24, atau Eclipse ADT, sistem akan memunculkan pop-up jendela Prompt for Transport Request.
  2. Pilih nomor TR DEVK900999 yang telah Anda buat sebelumnya.
  3. Objek kini resmi terlindungi di bawah nomor TR tersebut.

Langkah 3: Melepas Kunci & Merilis TR untuk Rilis Testing

  1. Buka kembali SE09 Perluas pohon TR DEVK900999.
  2. Letakkan kursor pada Task Anak (misal DEVK901000) Klik tombol Release Directly (ikon truk).
    • Sistem memeriksa sintaks objek di dalam task.
    • Ikon berubah dari centang kuning menjadi tanda centang biru (Released).
  3. Letakkan kursor pada TR Header Induk (DEVK900999) Klik tombol Release Directly (ikon truk).
  4. Di bagian bawah layar muncul notifikasi status:
    Request DEVK900999 was successfully released and exported.
  5. Paket kode kini resmi masuk ke antrean import server QAS!

11. πŸ“š Ringkasan & Cheat Code TMS

Peta Konsep

Change & Transport System (CTS)
β”œβ”€β”€ 1. Lanskap 3-Sistem
β”‚   └── DEV (Tempat modifikasi) ──> QAS (Pengujian mutu) ──> PRD (Live transaksi)
β”œβ”€β”€ 2. Kategori Request
β”‚   β”œβ”€β”€ Workbench Request (Objek repositori ABAP - Cross Client)
β”‚   └── Customizing Request (Konfigurasi tabel SPRO - Client Dependent)
β”œβ”€β”€ 3. Alur Kerja Rilis (SE09 / SE10)
β”‚   β”œβ”€β”€ Modifiable: Objek terkunci di dalam Task
β”‚   β”œβ”€β”€ Rilis Task anak terlebih dahulu (Bottom-Up)
β”‚   └── Rilis TR Header induk (Objek diekspor ke antrean STMS)
└── 4. Kunci Nilai Return Codes
    β”œβ”€β”€ RC = 0: Sukses sempurna
    β”œβ”€β”€ RC = 4: Warning aman
    β”œβ”€β”€ RC = 6: Post-processing required
    β”œβ”€β”€ RC = 8: Error fatal (Periksa missing objects / syntax dump)
    └── RC = 12+: Terminasi paksa / severe error

Cheat Code T-Code 10 Detik

SE09  β†’ Workbench Organizer (Khusus pengembang ABAP)
SE10  β†’ Transport Organizer (Workbench & Customizing)
STMS  β†’ Transport Management System (Basis Administrator & Import Queue)
SE03  β†’ Transport Organizer Tools (Mencari objek di TR, unlock objek darurat)

12. πŸ”— Referensi Resmi