Community mailing list archives

Re: Sale and purchase workflow

Camptocamp SA, Guewen Baconnier - Software Developer, Camptocamp
- 09/16/2015 06:18:29
On Wed, Sep 16, 2015 at 11:17 AM, Fabien Pinckaers <> 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)?