استفاده از json RPC در odoo
Odoo معمولاً از طریق ماژول ها به صورت داخلی گسترش می یابد، اما بسیاری از ویژگی های آن و تمام داده های آن نیز از بیرون برای تجزیه و تحلیل خارجی یا ادغام با ابزارهای مختلف در دسترس هستند. بخشی از API Model ها به راحتی از طریق JSON-RPC در دسترس هستند و از زبان های مختلف قابل دسترسی اند.
پیکربندی
اگر قبلاً یک سرور Odoo نصب کرده اید، می توانید فقط از پارامترهای آن استفاده کنید.
مثلا برای استفاده از odoo نسخه ویراوب 123 از پارامترهای زیر استفاده می کنیم.
url = “https://viraweb123.ir/”
db = “insert database name”
username =“insert username”
password = “insert password”
چه کارهایی را میشه با JSON RPC انجام داد؟
احراز هویت
لیست کردن رکوردها
شمارش رکوردها
خواندن رکوردها
فیلدهای رکورد را فهرست کنید
جستجو کردن و خواندن رکوردها
ایجاد رکورد
به روز کردن رکورد
حذف رکوردها
در ادامه برخی از کارها را به طور کامل بررسی میکنیم.
احراز هویت در Odoo با JSON RPC
آدرسی که درخواست را ارسال می کنیم url}}/jsonrpc}} است.
محتوای درخواست ارسالی :
جستجو کردن و خواندن رکوردها
آدرسی که درخواست را ارسال می کنیم url}}/jsonrpc}} است.
محتوای درخواست ارسالی :
با دستور زیر میتوانیم در جدول 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}
دستور JSon RPC به صورت زیر میباشد
ساختن رکورد جدید
آدرسی که درخواست را ارسال می کنیم url}}/jsonrpc}} است.
محتوای درخواست ارسالی :
با دستور زیر میتوانیم یک رکورد جدید در جدول res.partner بسازیم که مقدار فیلد name آن New Partner باشد
models.execute_kw(db, uid, password, 'res.partner', 'create', [{'name': "New Partner"}])
دستور JSON RPC آن به صورت زیر است
برای مشاهده اطلاعات بیشتر میتوانید از داکیومنت odoo به نشانی https://www.odoo.com/documentation/16.0/developer/reference/external_api.html#search-and-read
استفاده کنید.
https://www.marlonfalcon.com/posts/odoo-json-rpc
این دستورات با استفاده از دستور execute_kw ساخته شده است . میتوانید با لینک زیر با استفاده از دستور execute درخواست های خودتون را ارسال کنید
json RPC در odoo