استفاده از XML RPC در odoo
Odoo معمولاً از طریق ماژول ها به صورت داخلی گسترش می یابد، اما بسیاری از ویژگی های آن و تمام داده های آن نیز از بیرون برای تجزیه و تحلیل خارجی یا ادغام با ابزارهای مختلف در دسترس هستند. بخشی از API Model ها به راحتی از طریق XML-RPC در دسترس هستند و از زبان های مختلف قابل دسترسی اند.
پیکربندی
اگر قبلاً یک سرور Odoo نصب کرده اید، می توانید فقط از پارامترهای آن استفاده کنید.
مثلا برای استفاده از odoo نسخه ویراوب 123 از پارامترهای زیر استفاده می کنیم.
url = “https://viraweb123.ir/”
db = “insert database name”
username =“insert username”
password = “insert password”
چه کارهایی را میشه با XML RPC انجام داد؟
به دست آوردن ورژن Odoo
احراز هویت
لیست کردن رکوردها
شمارش رکوردها
خواندن رکوردها
فیلدهای رکورد را فهرست کنید
جستجو کردن و خواندن رکوردها
ایجاد رکورد
به روز کردن رکورد
حذف رکوردها
در ادامه برخی از کارها را به طور کامل بررسی میکنیم.
به دست آوردن ورژن Odoo با XML RPC
آدرسی که باید به آن درخواست خودمون را ارسال کنیم :
{{url}}/xmlrpc/2/common
درخواست ارسالی :
با اجرای این دستور ورژن odoo ای که برای سایت ویراوب 123 استفاده شده است را مشاهده میکنید.
احراز هویت در Odoo با XML RPC
آدرسی که درخواست را ارسال می کنیم url}}/xmlrpc/2/common}} است.
محتوای درخواست ارسالی :
با اجرای این دستور با کمک XML RPC میتوانید uid کاربری که اطلاعات آن را وارد کردید بدست آورید.
جستجو کردن و خواندن رکوردها
آدرسی که درخواست را ارسال می کنیم url}}/xmlrpc/2/object}} است.
محتوای درخواست ارسالی :
با دستور زیر میتوانیم در جدول res.partner سرچ کنیم و رکوردهایی که مقدار فیلد is_company آنها برابر با True هستند را انتخاب کنیم. این دستور از رکوردهای به دست آمده تنها مقدار فیلدهای name و country_id و comment را نشان میدهد. و اگر چندین رکورد با این شرایط وجود داشته باشد فقط 5 عدد از آن ها را نشان میدهد.
models.execute_kw(db, uid, password, 'res.partner', 'search_read', [[['is_company', '=', True]]], {'fields': ['name', 'country_id', 'comment'], 'limit': 5})
با توجه به اینکه قسمت شرط گذاشتن دستور یک آرایه از آرایه ها است [[['is_company', '=', True]]]
و قسمت option دستور یک ساختار {key: value} است {'fields': ['name', 'country_id', 'comment'], 'limit': 5}
دستور XML RPC به صورت زیر میباشد
<?xml version="1.0" encoding="UTF-8"?>
ساختن رکورد جدید
آدرسی که درخواست را ارسال می کنیم url}}/xmlrpc/2/object}} است.
محتوای درخواست ارسالی :
با دستور زیر میتوانیم یک رکورد جدید در جدول res.partner بسازیم که مقدار فیلد name آن New Partner باشد
models.execute_kw(db, uid, password, 'res.partner', 'create', [{'name': "New Partner"}])
دستور XML RPC آن به صورت زیر است
برای مشاهده اطلاعات بیشتر میتوانید از داکیومنت odoo به نشانی
https://www.odoo.com/documentation/16.0/developer/reference/external_api.html#search-and-read
استفاده کنید.
XML RPC در odoo