Apa maksud sequence di odoo

Apa maksud sequence di odoo

Hello world. Today i am gonna share about little trick in Odoo, this is a how to make field name sequence. Actually its basic from Odoo, but i just know when i got task like that. Lol. So just follow my step by step.

1. Declaration code for sequence

For declaration sequence i create xml file like this. the code is test.dedy.yuristiawan, prefix DY, padding is 5, and it would be like this 'DY00001'. Prefix is for first char (DY) and padding is for long number (00001). You can call this sequence with test.dedy.yuristiawan. See this code


<?xml version="1.0" encoding="utf-8"?> <openerp> <data noupdate="1"> <record id="seq_test_dedy_yuristiawan" model="ir.sequence"> <field name="name">Test Dedy Yuristiawan</field> <field name="code">test.dedy.yuristiawan</field> <field name="prefix">DY</field> <field name="padding">5</field> <field eval="1" name="number_increment"/> </record> </data> </openerp> and then i put this code in test_dedy_yuristiawan.xml 2. Override Function set Field Name, before Create.

Yap, now i override create function like this. This code i set field name readonly=True (anybody can't change) and call  self.env['ir.sequence'].next_by_code('test.input.machine') that i create in xml file. If you don't know about override function i will create specially post for How to Override Function in Odoo in the next post.


name = fields.Char('Code Dedy', readonly=True) @api.model def create(self, vals): print "+++++++++++++++++++++++++++++++++++++++++++++++++" print "prepare inherit create function" print "change the name TI with sequence" vals['name'] = self.env['ir.sequence'].next_by_code('test.input.machine') print "Inherit complete" print "+++++++++++++++++++++++++++++++++++++++++++++++++" return super(test_input_machine, self).create(vals) 3. Declaration xml file into __openerp__.py Last step don't forget to declaration xml file to __openerp__.py 'data' : [ 'data/test_dedy_yuristiawan.xml',

That it, i hope this is can help you little bit, so if you still confuse about my code, you fill comment bellow and i will try to help you later. Thanks.

Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:

  • CRM
  • e-Commerce
  • Accounting
  • Inventory
  • PoS
  • Project management
  • MRP
Take the tour

Pada saat proses development berjalan, sering kali kita membuat object (tabel) baru sebagai bagian dari requirement yang ada. Sebenarnya masalah ini sangat simple dan juga sudah banyak contohnya pada addons default openerp, akan tetapi sering menjadi bahan pertanyaan yang diajukan kepada penulis.

Sebenarnya semua yang ada di OpenERP adalah data dari sebuah record, baik itu view, report, workflow, action, menu dan termasuk didalamnya sequence. Untuk tutorial kali ini, penulis akan mencoba membuat sebuah sequence dari object baru misalnya adalah ‘delivery.note’

Untuk membuat sequence, codenya cukup mudah seperti contoh dibawah ini :

<record id="seq_type_delivery_note_new" model="ir.sequence.type"> <field name="name">Delivery Note</field> <field name="code">delivery.note</field> </record> <record id="seq_delivery_note_new" model="ir.sequence"> <field name="name">Delivery Note</field> <field name="code">delivery.note</field> <field name="prefix">DN/%(y)s/%(month)s/</field> <field name="padding">5</field> </record>

Ketika kita membuat sebuah sequence OpenERP, maka hal yang dilakukan adalah membuat sequence code dan sequence itu sendiri. Cara membuatnya bisa dari code xml seperti diatas ataupun melalui menu Setting -> Sequences & Identifiers -> Sequences dan Setting -> Sequences & Identifiers -> Sequence Codes. Fungsi dari sequence code adalah penentuan sequence dari object terkait sedangkan sequence berfungsi untuk pendefinisan format yang diinginkan berdasarkan sequence code yang telah dibuat sebelumnya.

Sample code diatas terbagi menjadi dua bagian, yang pertama kita membuat sequence code terlebih dahulu lalu dilanjutkan dengan bagian kedua yaitu mendefiniskan sequence berdasarkan sequence code sebelumnya. Jika dikemudian hari terjadi perubahan format sequence maka kita bisa langsung merubahnya via form sequence (seperti menu diatas) tanpa merubah code xml pada modulnya.

Setelah kita berhasil membuat sequencenya, maka langkah selanjutnya adalah cara penggunaannya. Apakah sequence ini akan digunakan ketika user menekan tombol create (dijadikan nilai default) ataukah ketika user membuat record pada saat pertama kali baik menekan tombol save maupun confirm.

Jika kita menginginkan cara pertama maka cukup mendefinisikan field name pada keyword _defaults seperti contoh dibawah ini :

_defaults = { 'name' : lambda obj, cr, uid, context: obj.pool.get('ir.sequence').get(cr, uid, 'delivery.note'), }

Akan tetapi kelemahan dari cara pertama, jika user tidak jadi untuk menyimpan data yang telah diinput (misal sales order) dan membatalkannya, maka penomoran sequence akan terlongkap. Untuk menyelesaikan masalah diatas maka kita gunakan cara kedua seperti contoh dibawah ini :

_defaults = { 'name': '/', } # Override method create() def create(self, cr, uid, vals, context=None): # Replace '/' dengan sequence object sebenarnya vals['name'] = self.pool.get('ir.sequence').get(cr, uid, 'delivery.note') return super(delivery_note, self).create(cr, uid, vals, context=context)

Pada contoh code diatas kita hanya mendefinikan ‘/’ sebagai nilai default field name ketika user ingin membuat sebuah transaksi. Hasilnya, walaupun user tidak jadi untuk menyimpannya atau membatalkannya maka sequence tetap belum digunakan/terpakai. Dan ketika transaksi dilanjutkan untuk disimpan atau confirm, maka method create() akan terpanggil dan disinilah kita melakukan overiding terhadap method create()

Alhamdulillah tutorial yang simple kali ini telah penulis sampaikan, saran & kritik yang membangun sangat diharapkan. Semoga bermanfaat …

Alhamdulillah kita bisa melanjutkan kembali serial tutorial technical ini. Pada pertemuan kali ini, insyaAllah pembahasan kita adalah sequence, constraint, onchange dan schedule activity pada Odoo. A. SEQUENCE Salah satu fitur yang sering digunakan pada setiap model adalah sequence. Fungsi dari fitur ini adalah untuk memberikan nomor suatu dokumen. Sifatnya unik dan bisa kita configure dengan…

Pada saat proses development berjalan, sering kali kita membuat object (tabel) baru sebagai bagian dari requirement yang ada. Sebenarnya masalah ini sangat simple dan juga sudah banyak contohnya pada addons default openerp, akan tetapi sering menjadi bahan pertanyaan yang diajukan kepada penulis. Sebenarnya semua yang ada di OpenERP adalah data dari sebuah record, baik itu…

Alhamdulillah pada kesempatan kali ini penulis akan mengangkat pembahasan tentang Legend pada OpenERP. Legend sangat berkaitan erat dengan fitur Sequence suatu Object OpenERP. Fungsi legend adalah untuk membuat format penomoran transaksi sesuai dengan satuan waktu, baik tahun, bulan, week, hari, jam, menit, bahkan sampai hitungan detik. Walaupun sudah cukup lengkap, biasanya user masih membutuhkan legend…

Bismillah .. Pada pertemuan kali ini saya akan mengangkat issue yang berkaitan dengan cara mereset sequence (nomor urut) suatu object (misal: Purchase Order) secara berkala setiap bulan. Kasus ini berdasarkan topik yang berada pada group OpenERP Indonesia di aplikasi Telegram, untuk bergabung silahkan merujuk pada halaman ini. Seperti kita ketahui, OpenERP menyediakan fitur Sequence pada…