Community mailing list archives
Re: Sale and purchase workflowby
Camptocamp SA, Guewen Baconnier - Software Developer, Camptocamp
On Wed, Sep 16, 2015 at 11:17 AM, Fabien Pinckaers <email@example.com> wrote: >> > Overwriting a function to trigger actions if not more complex than >> > overwriting a workflow. And overwriting a computed fields "like To >> > Invoice >> > or To Deliver" is way easier than revamping a workflow to adapt to all >> > possible transitions on all states. >> >> Could you maybe hint which method we'd have to overwrite when there is >> no more workflow activities but only function fields? Function fields >> mean no more trigger we can hook on, or do I miss a new feature to >> handle that? > > > The way that most looks like workflows is to use "Automated Actions" as it > does not even requires development. (e.g. when invoice status goes from "Not > Invoiced" to "Fully Invoiced") That's pretty much the same behaviour than > workflow as it does not requires to develop a module, it's just > customizations. (but IMHO, more powerful than workflow as you can do > anything without having to worry about the global state of the document) > > Example: doing "send an email to France customers, 3 months after the > invoice creation if it's not paid" --> That's a pain with workflows and easy > with Automated Actions. So basically what you propose is to add something that will do a SELECT with a domain before and after every write to see what changed between, whereas before v9 we could simply hook into "action_xxx" methods, that is not something I would call efficient. > > If you develop as a module, you can also connect on the action (generate > invoice, validate delivery order, ...), instead of connecting on the status > change. (invoiced, delivered) You still have some methods for what we could call the 'beginning' of the actions (create an invoice, create a delivery order), but we no longer have triggers for their lifetime actions (sales order is shipped, invoice has been canceled, ... all the "action_xxx" methods we had, called by workflows). Simple example: we used to have action_done on sales orders that we could overwrite when an order was fully delivered and invoiced, now how could we trigger on that event programmatically (not using inefficient automated actions)?