OpenERP Module

Tutorial kali ini, saya akan membahas tentang pembuatan suatu modul OpenERP yang berisi tentang pembuatan menu & form. Hal pertama yang kita lakukan adalah pembuatan folder yang judulnya bersangkutan tentang object atau fungsi dari modul tersebut, pada contoh ini saya namakan dengan stg_diary, setelah kita membuat folder, maka jika folder tersebut ingin dikenali oleh OpenERP sebagai modul, maka jangan lupa untuk membuat 2 file didalamnya, yaitu __init__.py & __openerp__.py -karna 2 file inilah yang akan pertama kali dieksekusi oleh OpenERP-

File __init__.py kita isi dengan nama file python yang ada di modul tersebut, untuk contoh ini saya beri nama diary.py, sehingga file __init__.py berisi code:

import diary

Setelah itu kita harus membuat file python diary.py tersebut, dan kita isi file python tersebut -diary.py- dengan pembuatan sebuah object/tabel baru pada database OpenERP dengan ‘dibungkus’ sebuah class, seperti dibawah ini :

from osv import fields, osv

class diary(osv.osv):
    _name = "diary"
    _description = "Simple Diary"
    _columns = {
        'judul' : fields.char('Judul', size=30, required=True),
        'catatan' : fields.text('Catatan'),
        'tanggal' : fields.date('Tanggal'),
    }

diary()

Penjelasannya sebagai berikut :

Baris ==> from osv import fields, osv
# Berfungsi untuk mengimport library yang dibutuhkan dalam pembuatan object, yaitu osv

Baris ==> class diary(osv.osv)
# Kita membuat sebuah class dengan menginherit sebuah class/library osv

Baris ==> _name = “diary”
# Syntax ini akan menghasilkan sebuah tabel pada database dengan nama diary

Baris ==> _description = “Simple Diary”
# Berfungsi untuk memberikan informasi dari tabel yang bersangkutan, hal ini akan terlihat pada salah satu menu di OpenERP

Baris ==> _columns = {}
# Berfungsi untuk membuat kolom pada tabel yang bersangkutan

Baris ==> ‘judul’ : fields.char(string=’Judul’, size=30, required=True),
# ‘judul’ akan menjadi nama asli pada tabel database, kolom ini bertipe ‘char’ dengan beberapa parameter sesuai masing-masing tipe field/kolomnya (char, text, date, dll).

# Parameter fields.char diatas memiliki parameter pertama berupa string dengan value ‘Judul’, string ini nantinya akan menjadi judul pada kolom di tampilan OpenERP. Parameter selanjutnya adalah ‘size’, yang berfungsi untuk membatasi digit karakter value dari field tersebut. Terakhir adalah required, berfungsi untuk membuat fields yang bersangkutan menjadi mandatory -wajib diisi-. Parameter required adalah parameter global, ada banyak parameter yang menjadi parameter global pada semua tipe fields, seperti required, readonly, select, dll

Baris ==> ‘catatan’ : fields.text(‘Catatan’),
# Membuat kolom/fields ‘catatan’ dengan tipe ‘text’, tipe ini biasanya digunakan untuk membuat kolom yang berisi banyak kata seperti sebuah paragrah, sangat cocok digunakan seperti kolom komentar.

Baris ==> ‘tanggal’ : fields.date(‘Tanggal’),
# Kolom terakhir yang kita buat adalah ‘tanggal’, tipe ‘fields.date’ ini berfungsi untuk menampung value dengan format tanggal.

# Pada OpenERP, ada banyak tipe-tipe field/kolom yang tersedia, ada char, text, date, datetime, integer, float, dan masih banyak lagi -silahkan liat di dokumentasinya-.

Baris ==> diary()
# Baris terakhir adalah diary(). Setiap class yang kita buat harus kita jalankan/eksekusi dengan perintah diatas -nama_class()-

Setelah kita berhasil membuat tabel/object pada database OpenERP, maka langkah selanjutnya adalah pembuatan form atau interface dari object yang bersangkutan. Hal pertama yang kita buat adalah dengan membuat file __openerp__.py dan menyisipkan file diary.xml pada baris :

"init_xml":["diary.xml"], 

Setelah itu kita harus membuat file xml diary.xml tersebut, dan kita isi file tersebut -diary.xml- dengan pembuatan sebuah tampilan baru pada database OpenERP dengan object yang bersangkutan, seperti dibawah ini :

        <record model='ir.ui.view' id="diary_tree">
            <field name="name">diary.tree</field>
            <field name="model">diary</field>
            <field name="type">tree</field>
            <field name="arch" type="xml">
                <tree string="Diary">
                    <field name="judul"/>
                    <field name="catatan"/>
                    <field name="tanggal"/>
                </tree>
            </field>
        </record>

# Code diatas digunakan untuk pengaturan pembuatan tampilan list/tree pada object diary

        <record model='ir.ui.view' id="diary_form">
            <field name="name">diary.form</field>
            <field name="model">diary</field>
            <field name="type">form</field>
            <field name="arch" type="xml">
                <form string="Diary">
                    <field name="judul"/>
                    <field name="catatan"/>
                    <field name="tanggal"/>
                </form>
            </field>
        </record>
       
# Code diatas digunakan untuk pengaturan pembuatan tampilan form pada object diary

        <record model="ir.actions.act_window" id="action_diary_form">
            <field name="name">Diary</field>
            <field name="res_model">diary</field>
        </record>
     
# Berfungsi untuk membuat action/event untuk membuka interface object diary

        <menuitem name="Diary" icon="terp-project" id="diary_menu"/>

# Berfungsi untuk permbuatan Menu Utama pada OpenERP, sejajar dengan menu Sales, Purchase, dll

        <menuitem name="Catatan" parent="diary_menu" id="diary_folder_catatan"/>

# Berfungsi untuk permbuatan Sub Menu Utama  berbentuk folder pada OpenERP, sejajar dengan menu Product, Invoicing, dll

        <menuitem name="Catatan" parent="diary_folder_catatan" id="diary_submenu_catatan" action="action_diary_form"/>

# Berfungsi untuk permbuatan inti dari Sub Menu yaitu Catatan  berbentuk 'shorcut/window action' pada OpenERP.

Sekian tutorial kali ini, silahkan mencoba dan mempraktekannya, sehingga dapat dibayangkan prose flow kerja dari sebuah modul OpenERP.

Advertisements

Leave a Reply

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