OpenERP 5.016, 6.0.3, 6.0.4 & 6.1 Technical Tutorial : Mendapatkan id resource Berdasarkan xml_id dan model Dengan Method _get_id

Semua resource OpenERP yang dibuat dengan menggunakan xml pada sebuah modul akan disimpan di dalam object ir.model.data (tabel ir_model_data). Untuk mencari id dari resource tersebut tentu saja kita bisa menggunakan method search milik orm ataupun method execute milik cursor.

Sebagai alternatif pencarian id, object ir.model.data mempunyai method _get_id untuk mencari id sebuah resource dengan menggunakan xml_id dan nama modul.

Sebagai contoh coba liat data untuk object account.account.type pada modul akuntansi di bawah ini:

<record id="account_type_ekuitas" model="account.account.type">
    <field name="name">Ekuitas</field>
    <field name="code">ekuitas</field>
    <field name="close_method">balance</field>
</record>

<record id="account_type_pendapatan" model="account.account.type">
    <field name="name">Pendapatan</field>
    <field name="code">pendapatan</field>
    <field name="close_method">unreconciled</field>
</record

Apabila kita lihat tabel ir_model_data pada postgres, maka kedua resource tersebut akan disimpan seperti ini :

 

name module model res_id
ekuitas akuntansi account.account.type 7
pendapatan akuntansi account.account.type 18

 

Untuk mencari id dari kedua resource tersebut tentu saja kita bisa menggunakan method search milik orm ataupun method execute milik cursor. Sebagai alternatif pencarian id, object ir.model.data mempunyai method _get_id untuk mencari id sebuat resource dengan menggunakan xml_id dan nama modul

SYNTAX

_get_id(self, cr, uid, module, xml_id)

PARAMETER

module
string. Nama modul tempat dimana xml di deklarasikan

xml_id
string. xml_id milik resource

CONTOH

Dengan menggunakan contoh data di atas, kita akan coba mencari id dari resource dengan menggunakan method _get_id

obj_data = self.pool.get('ir.model.data')

# Mencari id dari data pertama
res_id1 = obj_data._get_id(cr, uid, 'akuntansi', 'ekuitas')

# Mencari id dari data kedua
res_id2 = obj_data._get_id(cr, uid, 'akuntansi', 'pendapatan')
No comments yet.

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