Hello,
How can I create planned activities via external API?
Odoo version 11
Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:
- CRM
- e-Commerce
- Accounting
- Inventory
- PoS
- Project
- MRP
This question has been flagged
Hi Geraldo,
You can do this through XML-RPC by setting the correct values for the creation. I've made a proof of concept that shows the whole process to do it. You just have to get the right activity types and ids, which I didn't do in my example as I do not know where you want to link to:
import xmlrpclib username = 'admin' # The Odoo user pwd = 'admin' # The password of the Odoo user dbname = 'v11' # The Odoo database # OpenERP Common login Service proxy object sock_common = xmlrpclib.ServerProxy ('http://localhost:8069/xmlrpc/common') uid = sock_common.login(dbname, username, pwd) # replace localhost with the address of the server if it is not on the same server # OpenERP Object manipulation service sock = xmlrpclib.ServerProxy('http://localhost:8069/xmlrpc/object') activity_record = { 'activity_type_id': 1, 'res_id': 1, 'res_model_id': 1, 'date_deadline': '2018-08-30', 'user_id': 1, 'note': 'The activity message' } # Calling the remote ORM create method to create a record result = sock.execute(dbname, uid, pwd,'mail.activity', 'create', activity_record) print('Inserted new activity! Id: ' + str(result))
Regards,
Yenthe
Thanks a lot Yenthe! This helped me create an automated action that creates an activity :)
I'm trying to adapt this to an automatic action, but I'm having this error:
ValueError: <class 'KeyError'>: "mail_activity" while evaluating"activity_record = {\n'activity_type_id': 4,\n'res_id': record.id,\n'res_model_id': model.id,\n'date_deadline': record.date_due,\n'user_id': 1,\n'note': 'Pagar a Fatura',\n'summary': 'PAGAR FATURA'\n}\n\nenv['mail_activity'].create(activity_record)"activity_record = {Can you help me, please?
'activity_type_id': 4,
'res_id': record.id,
'res_model_id': model.id,
'date_deadline': record.date_due,
'user_id': 1,
'note': 'Pagar a Fatura',
'summary': 'PAGAR FATURA'
}
env['mail_activity'].create(activity_record)
Thank you Yenthe, I would like to link to CRM
For the person working in automated actions, you may need to do something like this in order to set the res_model_id because it isn't always easily accessible from the other models (ex - mail.message):
env.cr.execute("SELECT id FROM ir_model WHERE model = '" + record.model + "';")
fetch = env.cr.fetchall()
env['mail.activity'].create({
'activity_type_id': 1, #Email Activity
'res_model_id': str(fetch)[2:-3],
'res_id': record.res_id,
'user_id': record.create_uid.id,
'note': record.body,
})
Enjoying the discussion? Don't just read, join in!
Create an account today to enjoy exclusive features and engage with our awesome community!
Sign upRelated Posts | Replies | Views | Activity | |
---|---|---|---|---|
|
0
Sep 18
|
4220 | ||
|
1
Jun 18
|
3222 | ||
|
0
Mar 23
|
1156 | ||
|
2
Jan 23
|
3504 | ||
|
1
Nov 22
|
2552 |
Thank you Yenthe, I would like to link to CRM
XML-RPC: http://learnopenerp.blogspot.com/2019/10/connecting-to-odoo-using-xml-rpc.html