Pages

Tuesday, 23 September 2014

How to Remove Leading Zero in ABAP

Problem :
Format numbering seperti material number atau cost element number terkadang memiliki 'kelebihan' angka '0' di depannya. Terkadang user ingin saat ditampilkan di laporan tanpa adanya leading zero. Seperti contoh di bawah ini, cost element masih memiliki leading zero '000'.


Solution.
Ada beberapa cara untuk menghilangkan leading zero (angka '0' di depan sebuah nomor ), namun yang paling umum digunakan adalah :

1. Call FM : CONVERSION_EXIT_ALPHA_OUTPUT
2. SHIFT n LEFT DELETING LEADING '0' 

Example :
1:  PROGRAM ztest18 NO STANDARD PAGE HEADING.  
2:    
3:  DATA : gv_kstar(10) VALUE '0007501101',  
4:      gv_result1(10),  
5:      gv_result2(10).  
6:    
7:  "convert using FM, store in gv_result1  
8:  CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'  
9:   EXPORTING  
10:    input = gv_kstar  
11:   IMPORTING  
12:    output = gv_result1.  
13:    
14:  "Using shift store in gv_result2  
15:  gv_result2 = gv_kstar.  
16:  SHIFT gv_result2 LEFT DELETING LEADING '0'.  
17:    
18:  "Display  
19:  WRITE : / 'Original number : ', gv_kstar.  
20:  WRITE : / 'Hasil menggunakan FM : ', gv_result1.  
21:  WRITE : / 'Hasil menggunakan SHIFT : ', gv_result2.  

Display hasil :












Good luck.

Thursday, 4 September 2014

Submit Program Standard Report, Return and Get Report Data Using Class CL_SALV_BS_RUNTIME_INFO

Catatan belajar ABAP.

Terkadang functional meminta ABAPer untuk membuat program berdasarkan data output keluaran dari report standard SAP. Jika membuat program dengan logika sendiri dari awal tentu sangat memakan waktu dan usaha yang banyak. Solusi yang paling cepat adalah dengan melakukan teknik pengambilan data dari report standard yang bersangkutan dan memindahkannya ke program kita. Apabila report standard tersebut berupa ALV, maka solusi yang bisa digunakan adalah menggunakan teknik SUBMIT PROGRAM and RETURN dan memanfaatkan class CL_SALV_BS_RUNTIME_INFO.

Mengenai Class CL_SALV_BS_RUNTIME_INFO.
Saat report ALV dijalankan, informasi ALV runtime (layout, fieldcat, keyfield, filter, dll ditambah tabel data) disimpan oleh metode kelas CL_SALV_BS_RUNTIME_INFO untuk digunakan di proses berikutnyaMelalui statement SUBMIT dan beberapa pemanggilan method, kita bisa melakukan akses langsung ke data table (itab data) dari report tersebut TANPA harus mengubah report aslinya. menarik bukan?