廊坊建设部网站,如何使用qq空间做推广网站,自己怎么制作企业网站,北京师大互联网公司排名在业务操作中#xff0c;经常会遇到需要生成全局唯一序列号数据的情况#xff0c;比如订单号、报价单号等。为了确保数据的唯一性和准确性#xff0c;通常我们会使用Redis或其他分布式锁机制来实现。然而#xff0c;很多人可能不知道#xff0c;odoo框架本身提供了一个原生…在业务操作中经常会遇到需要生成全局唯一序列号数据的情况比如订单号、报价单号等。为了确保数据的唯一性和准确性通常我们会使用Redis或其他分布式锁机制来实现。然而很多人可能不知道odoo框架本身提供了一个原生的model可以实现生成自定义的唯一序列号即基于odoo原生的ir.sequence实现。 一、实施步骤 首先需要定义一个model 并新建字段序列号字段student_no 方法一页面新增唯一序列号配置 使用admin账户登录系统激活开发者模式打开设置找到:技术——菜单栏 点击序号进入唯一序列号配置页 点击创建进入序号表单页填写名称、执行序列代码、以及填写序号的前缀、后缀等等 方法二通过后端代码实现odoo唯一序列号 首先新建data目录并新增ir_sequence_data.xml文件 filed部分字段说明配置属性字段有很多示例只展示常用设置属性 name: 序号名称code: 获取序号的code需要全局唯一prefix: 前缀可以是固定的常量 也可以是包含固定格式的变量以及组合参数等等padding 序号流水数的长度也就是定义序号可以变化的长度number_increment: 序号的每次递增的大小number_next下一个序列号的数字active 序号生成状态true 开启 false 关闭 然后需要新建对应model以及在该model内部重写create的方法并将序列号code获取的值赋值给序号字段 最后在mainfest文件中加入xml文件的引入路径使其正常生效 启动项目并升级该模块然后去设置-技术-序列和标识符-序号列表找到刚刚创建的序号生成规则记录 点击任务可以进入序号表单页可以进行编辑序号规则属性以及调整下一个序号值 以上就是odoo实现序号规则的2种通用方式。最终的数据效果如下图 对于开发来说通常使用第二种方式执行比较灵活和方便。 无论采用哪种方式实现自定义序号规则最终都会在ir_sequence表中生成序号记录数据只有生成了序号记录才代表创建序号规则成功。 二、总结 综上所述odoo的唯一序号规则具有以下优势 唯一性每个序号都是唯一的可以确保在系统中不会出现重复的序列号方便对不同的单据或文件进行识别和管理。自动化使用内部唯一序号生成器可以自动生成序列号减少了手动编号的工作量也避免了因手动编号出现的错误。可扩展性内部唯一序号生成器可以随着企业的发展而扩展可以适应不同规模的企业需求。方便性生成的序列号可以在不同的单据或文件中重复使用不需要重新编号方便了单据或文件的管理和跟踪。可读性内部唯一序号生成器生成的序列号通常具有一定的规律性和可读性方便人员识别和理解。可视化界面友好odoo序号生成提供了可视化的界面用户可以通过简单的操作来创建、编辑、删除序号规则方便易用。 三、其他问题解答 Odoo原生的自定义唯一序号生成规则使用起来特别方便和简单在高并发下也能很好满足数据的唯一性能够快速生成业务系统的数据编号但是初步使用者总会遇到很多问题下面就简单分享2个自己遇到的业务难题让大家在工作学习中提前掌握。 问题一设置定时自动重新计数的编号 如果我们想要生成每天或者每个月自动重新计数的编号按照上面的序号规则是无法满足的但是我们可以通过odoo定时任务去每天或者每个月更新一次序号规则中的属性字段number_next_actual下一个序号编号这样每天都会从1开始计数可以满足业务需要。 问题二设置定制化的业务编号 如果我们业务中的业务编号比较复杂不仅仅是要年月日去合成编号还需要结合业务字段去生成更加定制化的业务编号这种情况下就需要通过代码去生成更加复杂的前缀或者后缀去拼接序号并通过代码创建序号规则代码如下 上面的代码实现了根据不同性别的学生分别进行编号并获取不同前缀的学生编号字段。 作者陈润平|高级后端开发工程师
本次分享就到这里啦更多odoo小知识欢迎关注“神州数码云基地”公众号回复“odoo”进入社群交流
版权声明文章由神州数码武汉云基地团队实践整理输出转载请注明出处。