Skip navigation


Sumber : https://belajarabap.wordpress.com/

Pada project tahun ini, saya baru berkenalan lebih dekat dengan SAP Workflow. agak sedikit bikin pusing awalnya, tapi lama-lama sudah mulai terbiasa dan paham akan SAP Workflow ini.

Kalau mau belajar lebih detail mengenai SAP Workflow, bisa dimulai dengan melakukan tutorial di Saptechnical, very helping!

Berikut ini adalah TCODE yang sering saya gunakan dalam mendevelop workflow :

  1. SWDD. Penting sangat. Ini TCODE yang harus digunakan dalam membuat workflow.
  2. PFTG. Digunakan untuk memantain task dalam workflow.
  3. SWO1. Adalah Business Object Builder yang dapat dipanggil oleh suatu task untuk menjalankan custom syntax didalamnya. Pada BO ini juga di-define event yang dapat di-link-kan ke suatu workflow.
  4. SWETYPV. Digunakan untuk memaintain suatu event yang nge-link ke workflow.
  5. RE_RHMOVE30. Penting digunakan untuk mentransport task yang di dalamnya terdapat agent assignment yang active agar tidak perlu lagi dimaintain per client. Karena agent assignment pada suatu task adalah client-dependent sehingga harus dimaintain ke tiap client. Cara penggunaannya bisa dilihat di Saptechnical.
  6. SWI2_FREQ. Digunakan untuk monitoring workflow & task.

Untuk saat ini, baru ini saja TCODE yang sering saya gunakan. Hope it helps.

FM Text_Split

Untuk kebutuhan mengubah text panjang yang diinput user dan mengubahnya ke beberapa baris dengan panjang karakter yang sudah didefinisikan, silahkan gunakan function module ‘TEXT_SPLIT’. Dengan menggunakan FM ini, secara otomatis text panjang akan menjadi beberapa baris sesuai dengan standard text.

Berikut ini adalah contoh penggunaannya dalam program.

REPORT  ysplittext.

DATA: i_freetext   TYPE t8j_modif-code OCCURS 0,
      wa_freetext  TYPE t8j_modif-code.

DATA: v_text TYPE string.

DATA: v_line(100), v_rest(1000).

CALL FUNCTION 'CATSXT_SIMPLE_TEXT_EDITOR'
  EXPORTING
    im_title        = 'Free Text'
    im_start_column = 20
    im_start_row    = 20
  CHANGING
    ch_text         = i_freetext.

LOOP AT i_freetext INTO wa_freetext.
  IF v_text IS INITIAL.
    v_text = wa_freetext.
  ELSE.
    CONCATENATE v_text wa_freetext INTO v_text SEPARATED BY space.
  ENDIF.
ENDLOOP.

v_rest = v_text.

DO.
  IF v_rest IS INITIAL.
    EXIT.
  ENDIF.

  CALL FUNCTION 'TEXT_SPLIT'
    EXPORTING
      length = 100
      text   = v_rest
    IMPORTING
      line   = v_line
      rest   = v_rest.

  write v_line.

ENDDO.

http://alionzo.blogspot.com/search/label/ABAP 

Membuat ABAP Dialog Progam sederhana

Melalui contoh ini diperkenalkan:
1. cara membuat text field
2. cara membuat button
3. mengatur alur program

 

Step 1.
Masuk tcode SE38, buat program baru.

Step 2.
Deklarasikan data.
Program ini akan menampilkan text field di screen.
DATA: d_nama(40) TYPE c.

Step 3.
Tulis code berikut:
CALL SCREEN 100.
Code tersebut akan memanggil screen 100. Double click di screen 100 untuk masuk ke screen tsb.

Step 5.
Tambahkan element / object di layout editor.
Masuk ke layout editor, tambahkan object text di screen. Text field bisa ditambahkan dengan dua:
– cara pertama: drag & drop text object ke dalam screen dari list object. Namai sesuai nama variable di program (yaitu d_nama), lalu ubah attribute text dengan cara double click, akan muncul window atrribute, ubah lebar field sesuai dengan yang sudah dideklarasikan sebelum-nya.
– cara kedua: klik Goto -> Secondary window -> Dict/program fields. Tulis nama variable yang ingin di-insert ke layout (yaitu d_nama) , lalu klik “Get from program”.

Tambahkan tombol dengan cara drag & drop dari list object.
Tiap tombol musti mempunyai attribute FctCode ( Function code). Saat tombol ditekan, nilai sy-ucomm akan berubah berdasarkan attribute FctCode dari tombol tersebut. Dalam contoh ini kita akan beri nilai FctCode = ‘NEXT’.

Step 6.
Di flow logic screen 100.
Di event PBO, kita tidak melakukan apa2.
Di event PAI, kita ingin menangkap action (tombol ditekan) di screen tersebut, maka kita perlu buat buat untuk menangkap-nya. Buat satu module, misal-nya nama module-nya USER_COMMAND_0100. Double-click di nama module tersebut untuk membuat isi module. Di module tersebut, bila tombol yang ditekan adalah tombol dengan FctCode = ‘NEXT’, kita ingin keluar dari screen 100. Perintah-nya bisa dituliskan sebagai berikut.

MODULE USER_COMMAND_0100 INPUT.
IF sy-ucomm = ‘NEXT’.
SET SCREEN 0.
LEAVE SCREEN.
ENDIF.
ENDMODULE. ” USER_COMMAND_0100 INPUT

Perintah SET SCREEN 0 adalah perintah untuk keluar dari screen.
Perintah LEAVE SCREEN adalah perintah untuk keluar dari event PAI.
Bila perintah hanya SET SCREEN 0 saja tanpa LEAVE SCREEN, maka module2 di PAI akan di-execute seluruh-nya sampai selesai, baru setelah itu keluar dari screen tersebut.

Step 7.
Keluar dari Screen Editor, kembali ke program biasa.
Tekan tombol back dari screen untuk kembali ke ABAP editor biasa (transaction SE38).

Step 8.
Tulis data.

Berikut adalah program lengkap-nya:

REPORT ZAALGAL0009 .
*http://abap-gallery.blogspot.com
*Screen Painter: my first dialog program
DATA: d_nama(40) TYPE c.

start-of-selection.
* Buat screen 100
* Tambahkan element textbox dengan nama “d_nama”.
* Tambahkan button dengan FctCode = ‘NEXT’
* Buat Flow logic untuk screen 100
* PROCESS BEFORE OUTPUT.
* PROCESS AFTER INPUT.
* MODULE USER_COMMAND_0100.

call screen 100.
WRITE :/ ‘Nama=’, d_nama.

*&———————————————————————*
*& Module USER_COMMAND_0100 INPUT
*&———————————————————————*
* text
*———————————————————————-*
MODULE USER_COMMAND_0100 INPUT.

IF sy-ucomm = ‘NEXT’.
SET SCREEN 0.
LEAVE SCREEN.
ENDIF.

ENDMODULE. ” USER_COMMAND_0100 INPUT

--------------------------------------
http://alionzo.blogspot.com/2007/08/dialog-programming-mengenal-screen.html
------------------------------------
Screen painter adalah editor untuk membuat ABAP screen (dialog program). Screen painter diakses melalui TCode SE51. Berbeda dengan ABAP list report yang berfungsi untuk menampilkan data, dialog program biasanya digunakan untuk entry data.Arsitektur Screen painter terdiri dari:

1. Screen Attributes.
Mengubah nama screen, menentukan type screen (normal, subscreen).
2. Flow logic
Flow logic berfungsi mengatur alur program.
Contoh sederhana dari flow logic adalah sbb:
PROCESS BEFORE OUTPUT. MODULE PBO_module1.
MODULE PBO_module2.
PROCESS AFTER INPUT. MODULE PAI_module1.
MODULE PAI_module2.
Structure flow logic disusun berdasarkan event, untuk contoh di atas ada dua event yg digunakan, yaitu “process before output” (PBO) dan “process after input” (PAI).
Event PBO dieksekusi sebelum screen ditampilkan. Gunanya antara lain adalah menentukan toolbar apa saja yang muncul, judul windows, mengubah attribute dari object2 secara dinamis.
Event PAI dieksekusi sesudah user melakukan suatu action (menekan tombol, melakukan double klik, dll) pada screen. PAI digunakan untuk mengeksekusi command berdasarkan action.
Flow logic hanya berfungsi untuk mengatur alur program, sedangkan program-nya sendiri berada di tempat lain, module di-eksekusi berdasarkan urutannya secara sekuensial. Untuk membuat isi module double-click di nama module.

3. Layout Editor
Layout editor berfungsi untuk menyusun letak object2 pada screen. Ada 2 pilihan setting untuk layout editor, graphic & list. Yang lebih mudah digunakan adalah yg graphic, untuk mengubah setting, di SE51, pilih Utilities -> Setting, di tab screen painter centang checkbox “Graphical layout editor”.Layout Editor
Screen layout memiliki elemen sbb:
i. Daftar element / object : di kiri layout terlihat daftar object2 (lable, textbox, checkbox, dll), drag & drop ke screen untuk memasukan element (object) ke screen.
ii. Name & text
Di atas screen daftar elemen terlihat “Name” & “Text”, ini berfungsi untuk memberi nama dan default value pada object.
iii. Attribute window
Di sebelah kiri tanda help (?) terlihat kotak kecil berwarna kuning dengan alt = “Attributes window” atau bisa diakses melalui menu Goto->Secondari Window->Attributes. Ini berfungsi untuk mengubah setting object, misal-nya mengubah text field menjadi read only.
iv. Dictionary / program field.
Di sebelah kiri tanda help (?) terlihat kotak kecil berwarna kuning dengan alt = “Dictionary / program fields”, berfungsi membuat object type text dengan attributes refer ke field di data dictionary atau field yg sudah dideklarasikan di program.4. Element list
Element list berisi element2/object yang ada di sceen. Bisa digunakan untuk mengubah attributes suatu object. Element list jarang digunakan karena attributes object lebih mudah dimaintain di Layout Editor.

 ===============================================================================
 
Advertisements

Leave Your Text

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: