zoukankan      html  css  js  c++  java
  • openerp学习笔记 调用工作流

    获取工作流服务:wf_service = netsvc.LocalService("workflow")
    删除对象对应记录的工作流:
    wf_service.trg_delete(uid, 'kl.qingjd', id, cr) #传入对象名称,对象ID
    创建对象对应记录的工作流:
    wf_service.trg_create(uid, 'kl.qingjd', id, cr) #传入对象名称,对象ID
    手动触发对象对应记录的工作流(信号):
    wf_sale_order.trg_validate(uid, 'sale.order', ids[0], 'order_confirm', cr) #传入对象名称,对象ID,信号名称

    示例代码:

        #设置为草稿状态,需要重新初始化工作流
        def set_to_draft(self, cr, uid, ids, context=None):
            for rec in self.browse(cr, uid, ids, context=context):
                #当请假单不是自己创建的时,不能设置为草稿
                if  rec.create_uid.id != uid:
                    raise osv.except_osv(_(u'警告!'),_(u'您不能设置他人创建的单据为草稿状态.'))
               
            self.write(cr, uid, ids, {
                'state': 'draft',
                'manager_id': False,
                'refuse_notes':False
            })
            #重新初始化工作流
            wf_service = netsvc.LocalService("workflow")
            for id in ids:
                wf_service.trg_delete(uid, 'kl.qingjd', id, cr) #传入对象名称
                wf_service.trg_create(uid, 'kl.qingjd', id, cr)
            return True

        def sale_confirm_invoice(self, cr, uid, ids, context=None):
            #自动确认订单,将自动生成发货单
            #action_button_confirm
            assert len(ids) == 1, 'This option should only be used for a single id at a time.'
            wf_sale_order = netsvc.LocalService('workflow')
            wf_sale_order.trg_validate(uid, 'sale.order', ids[0], 'order_confirm', cr)

  • 相关阅读:
    PHP javascript cookie
    angular.js初探
    熟悉陌生框架或代码, 产品设计小结
    question2answer论坛框架分析及web开发思考
    一个很好用的系统管理的命令lsof(转载)
    Linux nc命令用法收集
    Linux IO实时监控iostat命令详解(转载)
    AIX中查找端口号和进程
    bash之局部变量与子shell(转载)
    Linux下产生随机密码10方法
  • 原文地址:https://www.cnblogs.com/cnshen/p/3164783.html
Copyright © 2011-2022 走看看