Skip to main content

SAP ABAP - Add Custom Screen In MIGO Header

 1. Create BAdI MB_MIGO_BADI Implementation from tcode SE19


2. Enter Implementation Name



3. Create Enhancement Implementation





4. Open Implementing Class



5. Create variable declaration on class attribute



6. Append custom structure to GOHEAD structure from SE11








save & activate structure.

7. Create custom table to store custom field data


8. Create custom ABAP program in SE38



9. create 2 sub screen for input and display


 


All source code custom ABAP program

*&---------------------------------------------------------------------*
*& Report ZMIGO_CUSTOMFIELD
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT zmigo_customfield.
TABLES gohead.

DATA cs_goitem TYPE goitem.
*&---------------------------------------------------------------------*
*& Module STATUS_8000 OUTPUT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
MODULE status_8000 OUTPUT.
* SET PF-STATUS 'xxxxxxxx'.
* SET TITLEBAR 'xxx'.
ENDMODULE.
*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_8000  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE user_command_8000 INPUT.
*  CASE sy-ucomm.
*    WHEN 'OK_GO'.
*    WHEN 'OK_POST1'.
*    WHEN OTHERS.
*  ENDCASE.
ENDMODULE.
*&---------------------------------------------------------------------*
*& Module STATUS_8001 OUTPUT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
MODULE status_8001 OUTPUT.
  IMPORT cs_goitem TO cs_goitem FROM MEMORY ID 'MIGO_CUSTOMFIELD'.
  SELECT SINGLE zcustomfield FROM ztt_cstomfield
    INTO gohead-zcustomfield WHERE mblnr cs_goitem-mblnr AND mjahr cs_goitem-mjahr.
ENDMODULE.


All BAdI Method source code :

  METHOD if_ex_mb_migo_badi~init.
    APPEND class_id TO ct_init.
  ENDMETHOD.

  METHOD if_ex_mb_migo_badi~mode_set.
    IF i_refdoc 'R01' AND i_action 'A01'.
      CLEAR display_mode.
    ELSEIF i_action 'A04' OR i_action 'A03'.
      display_mode 'X'.
    ELSE.
      display_mode 'Z'.
    ENDIF.
  ENDMETHOD.

  METHOD if_ex_mb_migo_badi~pbo_header.
    CHECK i_class_id class_id.
    IF display_mode ''.
      e_cprog   'ZMIGO_CUSTOMFIELD'.
      e_dynnr   '8000'.                     "External fields: Input
      e_heading 'MIGO Custom Field'.
    ELSEIF display_mode 'X'.
      e_cprog   'ZMIGO_CUSTOMFIELD'.
      e_dynnr   '8001'.                     "External fields: Display
      e_heading 'MIGO Custom Field'.
    ENDIF.
  ENDMETHOD.

  method IF_EX_MB_MIGO_BADI~PAI_HEADER.
    ls_gohead is_gohead.
  endmethod.

  METHOD if_ex_mb_migo_badi~post_document.
    DATA :
          ls_ztt_cstomfield TYPE ztt_cstomfield.

    IF display_mode IS INITIAL.
      CLEAR ls_ztt_cstomfield.
      ls_ztt_cstomfield-mblnr is_mkpf-mblnr.
      ls_ztt_cstomfield-mjahr is_mkpf-mjahr.
      ls_ztt_cstomfield-zcustomfield ls_gohead-zcustomfield.

      MODIFY ztt_cstomfield FROM ls_ztt_cstomfield.
    ENDIF.
  ENDMETHOD.


10. Activate Badi Implementation from SE18




11. Open MIGO transaction GR Other and here the custom screen result :D




:D :D :D

Comments

  1. Data not inserted in Z table. Its always takes previous value.

    ReplyDelete

Post a Comment

Popular posts from this blog

PHP MySql CRUD Dengan Konsep MVC

Pada postingan kali ini saya akan sharing cara membuat CRUD dengan php menggunakan konsep MVC, ok langsung saja buka code editor (saya menggunakan sublime text) dan buat folder baru dengan nama phpmvc didalam folder htdocs kalian dan tambah folder seperti berikut :  Setelah itu kita siapkan database di mysql, buat database dengan nama phpmvc dan tablenya seperti gambar berikut : tambahkan file config.php didalam folder app/config : <?php define('BASEURL', 'http://localhost:8181/phpmvc/public'); define('DB_HOST', 'localhost'); define('DB_USER', 'root'); define('DB_PASS', ''); define('DB_NAME', 'phpmvc'); kemudian tambahkan 3 file controller didalam folder app/controllers, yaitu Home, About, dan Mahasiswa : Home.php <?php class Home extends Controller { public function index() { $data['nama'] = $this->model('User_model')->getUser()...

Cara Sederhana Multi Insert Data Dengan PHP - MySQL

Pada postingan kali ini saya akan share cara melakukan insert lebih dari satu data dengan menggunaka PHP- Jquery dan MySQL. Pertama buat database di MySQL dan table, disini saya membuat database dengan nama db_latihan dan table dengan nama t_barang dengan struktur table seperti berikut : Setelah membuat database dan table selanjutnya membuat project PHP, project PHP nya saya buat dengan nama multi-insert, lalu didalam folder ini saya membuat dua file yaitu index.php dan insert.php . Source code index.php seperti berikut : <! doctype   html > < html   lang = "en" >    < head >      <!-- Required meta tags -->      < meta   charset = "utf-8" >      < meta   name = "viewport"   content = "width=device-width, initial-scale=1" >      <!-- Bootstrap CSS -->      < link ...

IT Asset Management Dengan PHP MySQL

Pada postingan kali saya akan share sebuah aplikasi IT Asset management yang fungsinya untuk memonitoring semua Asset khusus IT, contohnya : Laptop/komputer , Printer, Router, Hardisk, dll. Dalam aplkasi ini kita bisa mengetahui Asset IT posisinya dimana dan digunakan oleh siapa. untuk data-data yang dibutuhkan antara lain : 1. data kategori asset dalam menu ini kita bisa meng-input jenis2 kategory asset : tambah kategori asset : 2. data department 3. data karyawan 4. data department per karyawan 5. data asset location  6. data satuan asset dan untuk transaksi yang ada dalam aplikasi ini adalah,  1. create asset, pada menu create asset ini kita akan mengalokasikan sebuah asset ke karyawan/personnel tampilannya seperti berikut: setelah klik tombol save akan muncul seperti dibawah : untuk melihat detail asset yang sudah dibuat tadi, kita bisa pilih...