我在Odoo中创建了一个自动操作,当采购订单从state = draft
更新为state = sent
时触发。此自动操作只调用运行以下代码的服务器操作:
record.button_confirm()
我的想法是,在RFQ发送给供应商后,我正在尝试自动确认采购订单。
发送RFQ后,PO按预期确认。但是,PO上的供应商也会从系统收到与创建的拣配相关的通知。它会说:
"此转移是从:PO00007"
创建的如果我禁用自动操作,而是通过点击"确认订单"手动确认采购订单。 PO表单上的按钮,订单已获批准,创建了拣配,并且未发送此通知。
我希望自动批准模仿手动批准。这意味着,我不希望发送此通知。
搜索源代码后,我能够通过在服务器操作中传递这样的上下文密钥来完成我想要的工作:
record.with_context(message_create_from_mail_mail=True).button_confirm()
我在源代码中遇到了这个解决方案:
但是,我不明白为什么这是必要的,或者甚至是解决这个问题的正确方法。老实说,我甚至不知道这意味着什么。我知道它有效。我没有看到手册" button_confirm"方法在任何地方传递此上下文键。
当我只是从服务器操作运行button_confirm()
而不是通过UI中的按钮手动触发时,任何人都可以提供有关为什么发送此通知电子邮件的任何指导吗?此外,我的解决方案是正确的还是它有一些我不知道的副作用?