Skip to Content
Menu
This question has been flagged

I'm creating an Automated Action with several Actions that need to be run sequentially. This is what I'm doing at the moment:

<odoo>
<data noupdate="0">
<record id="donation_customer_invoice" model="ir.filters">
<field name="name">Donation Customer Invoice</field>
<field name="model_id">account.invoice</field>
<field name="domain">[('type','=','out_invoice'),('x_invoice_sub_type','=','donation'),('state','=','draft')]</field>
<field name="user_id" ref="base.user_root"/>
</record>
<record id="create_donation_supplier_invoice" model="ir.actions.server">
<field name="name">Create Donation Supplier Invoice</field>
<field name="model_id">175</field>
<field name="sequence">1</field>
<field name="type">ir.actions.server</field>
<field name="state">code</field>
<field name="code">env['autoaction.supplier'].create_donation_supplier_invoice(object)</field>
</record>
<record id="create_cf_commission_supplier_invoice" model="ir.actions.server">
<field name="name">Create CF Commission Supplier Invoice</field>
<field name="model_id">175</field>
<field name="sequence">2</field>
<field name="type">ir.actions.server</field>
<field name="state">code</field>
<field name="code">env['autoaction.supplier'].create_cf_commission_supplier_invoice(object)</field>
</record>
<record id="donation_customer_invoice_action" model="base.action.rule">
<field name="name">Donation Supplier Invoices Action</field>
<field name="model_id">175</field>
<field name="sequence">1</field>
<field name="active">1</field>
<field name="kind">on_write</field>
<field name="server_action_ids" eval="[(6,0,[ref('create_donation_supplier_invoice')])]"/>
</record>
</data>
</odoo>

As you can see I have 2 ir.actions.server in this case, which I want to pass to base.action.rule at the bottom. I can pass 1 of them by doing:

<field name="server_action_ids" eval="[(6,0,[ref('donation_customer_server_action')])]"/>

but I'm not sure how to add more than 1, I've tried:

 <field name="server_action_ids" eval="[(6,0,[ref('create_donation_supplier_invoice'), ref('create_cf_commission_supplier_invoice')])]"/>

which gave me a parse error, I've also tried few other variants such as:

 <field name="server_action_ids" eval="[(6,0,[ref('create_donation_supplier_invoice')]),(6,0,[ref('create_cf_commission_supplier_invoice')])]"/>

which works but instead of adding both actions, it adds the last one and only the last one.

How can I pass more than 1 action to server_action_ids?

Also, in regards to model_id, I'm harding the id in but can you reference it automatically? The model in question would acount.invoice



Avatar
Discard
Author

I've tried

<field name="server_action_ids" eval="[(6,0,[ref('create_donation_supplier_invoice'), ref('create_cf_commission_supplier_invoice')])]"/>

again, since I saw this syntax being used elsewhere and now it works!

Related Posts Replies Views Activity
2
Oct 23
4745
2
Nov 22
5155
2
Jan 22
990
0
Sep 21
1770
0
Jun 21
1985