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
- Kế toán
- Tồn kho
- PoS
- Project
- MRP
Câu hỏi này đã bị gắn cờ
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,
})
Bạn có hứng thú với cuộc thảo luận không? Đừng chỉ đọc, hãy tham gia nhé!
Tạo tài khoản ngay hôm nay để tận hưởng các tính năng độc đáo và tham gia cộng đồng tuyệt vời của chúng tôi!
Đăng kýBài viết liên quan | Trả lời | Lượt xem | Hoạt động | |
---|---|---|---|---|
|
0
thg 9 18
|
4616 | ||
|
1
thg 6 18
|
3568 | ||
|
0
thg 3 23
|
1476 | ||
|
2
thg 1 23
|
4287 | ||
|
1
thg 11 22
|
2942 |
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