Jumat, 29 Juni 2012

Read .txt file to ITAB


Kali ini saya akan mencoba sharing bagaimana cara membaca file .txt untuk bisa dimasukkan ke dalam internal tabel. Mungkin ini bisa dikembangkan untuk dijadikan program upload data dari file .txt. OK, berikut source code untuk program read file .txt.


*&---------------------------------------------------------------------*
*& Report  ZREAD_TXT
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  zread_txt.
DATA: BEGIN OF itab OCCURS 0,
      matnr TYPE matnr,
      matkl TYPE matkl,
      meins TYPE meins,
      maktx TYPE maktx,
  END OF itab.

SELECTION-SCREEN BEGIN OF BLOCK g1 WITH FRAME TITLE text_101.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(18) text_102 FOR FIELD p_file.
PARAMETERS : p_file LIKE rlgrap-filename OBLIGATORY.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK g1.

AT SELECTION-SCREEN OUTPUT.
  text_101 = 'Selection parameter'.
  text_102 = 'Chose .*txt file'.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
  PERFORM f_get_filename CHANGING p_file.

START-OF-SELECTION.
  PERFORM fm_read_data.
  PERFORM fm_display_data.


Kamis, 28 Juni 2012

Contoh Pop Up Message Menggunakan "REUSE_ALV_POPUP_TO_SELECT"

*&---------------------------------------------------------------------*
*& Report  ZALV_POPUP
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  zalv_popup.
TYPE-POOLS : icon, slis.
DATA BEGIN OF t_log OCCURS 0,
icon(4),
msgtyp TYPE bdc_mart,
descr(132),
END OF t_log,
gt_fieldcatlog TYPE slis_fieldcat_alv OCCURS WITH HEADER LINE.

START-OF-SELECTION.
  PERFORM fm_insert_log.
  PERFORM fm_insert_field.
  PERFORM fm_show_log.

Contoh Parameter Menggunakan List Box

Berikut contoh program sederhana untuk membuat List Box .

*&---------------------------------------------------------------------*
*& Report ZLIST_BOX
*&
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*

REPORT zlist_box.

TYPE-POOLS: vrm.
DATA : t_itab TYPE STANDARD TABLE OF sairport WITH HEADER LINE,
t_data LIKE TABLE OF t_itab WITH HEADER LINE.
DATA : w_value
TYPE vrm_value,
t_values
TYPE vrm_values,
n_value TYPE vrm_id.

PARAMETERS : p_list(10) AS LISTBOX VISIBLE LENGTH 15.

AT SELECTION-SCREEN OUTPUT.
  PERFORM : fm_create_list_box.

START-OF-SELECTION.
  PERFORM : fm_collect_data,
                        fm_display_data.

BADI For TM01 ( FTR_TR_GENERIC )

Kali ini kita akan membuat implementasi menggunakan BADI "FTR_TR_GENERIC". Contoh kasus pada t-code TM01 kita harus mengisikan External Reference. Jika tidak diisi maka akan muncul pesan Error. Ok langsung saja berikut step - stepnya :

1. Buka t-code SE18 lalu isi Badi Name dengan "FTR_TR_GENERIC".
2. Klik menu Enhancement Implementation lalu Create seperti pada gambar berikut : ccsa

Selasa, 10 Januari 2012

subtract & Write Unit


1. Bagaimanakah cara untuk mengubah nilai plus menjadi minus.
    Dengan mengkalikan -1 maka nilai akan menjadi minus, di abap sendiri ada cara lain untuk menugbah nilai menjadi minus. contoh:

subtract ls_join-erfmg from lv_erfmg.  ( ls_join-erfmg = 1000 lv_erfmg menjadi 1000- )

2. Quantity dalam tabel SAP otomatis akan menyimpan tiga angka dibelkang koma (,). 
     Dan ternyata di abap sendiri juga ada fungsi untuk mengubah format quantity. contoh :
write lv_stockakhir unit lv_meins to gv_stockakhir.
( lv_stockakhir = 9,000 lv_meins = EA menjadi gv_stockakhir = 9 ).

3. Curency untuk IDR biasanya yang tersimpan dalam tabel di bagi 100. Untuk menampilkannya kembali kita juga harus mengalikan 100. Fungsi Abap untuk otomatis mengalikan nilai sesuai dengan curency adalah:
write gv_v currency lv_curr to gv_v3.
gv_v = 100,00 lv_curr = IDR hasil gv_v3 = 10000,00
Cara ini hanya bisa digunakan untuk tipe data Karakter. Cara lain supaya bisa digunakan ditipe data currency adalah dengan memanggil function modul. Berikut cara pemanggilannya :

CALL FUNCTION 'CURRENCY_AMOUNT_SAP_TO_DISPLAY'
     EXPORTING
          currency        = p_cur
          amount_internal = p_val
    IMPORTING
         AMOUNT_DISPLAY   = gv_val
    EXCEPTIONS
         INTERNAL_ERROR   = 1
         OTHERS           2.