欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

在外部应用中使用接口方式调用Odoo函数

程序员文章站 2023-12-27 18:16:03
...

首先,在应用中定义insert2odoo()函数。

函数中声明了调用odoo所需的url/db/password等参数,uid=2表示是admin帐户。

try语句中,是真正的“使用接口方式”。可以看到包含了odoo中的model名称,被调用函数等。

随后在main()中调用了insert2odoo()函数,并赋予了参数。

import traceback
from xmlrpc import client as xmlrpclib

def insert2odoo(message):
    url = 'http://localhost:8012'
    db = 'odoo12'
    #user = 'admin'
    pass_word = 'admin'
#    common = xmlrpclib.ServerProxy('{}/xmlrpc/2/common'.format(url))
#    uid = common.authenticate(db,user,pass_word,{})
    uid = 2
    if uid:

        try:
            models=xmlrpclib.ServerProxy('{}/xmlrpc/2/object'.format(url))
            res = models.execute_kw(db,uid,pass_word,'packtopo.blcode','create_blcode',[['data','=',message]],)
            #logging.info('send xmlrpc data '+ res)
            #print(res)
            return res
        except Exception as e:
            traceback.print_exc()
            #logging.info('fail to send xmlrpc data ')
            return 0

def main():
    json_data=[]
    data = {
            'name': "BLA123P009",
            'uacode':"UAA123P009",
            'send_date':"2021-05-14 14:24:22"
            }
    json_data.append(data)
    insert2odoo(json_data)

            
if __name__ =='__main__':
    main()

接下来,在odoo中创建一个自定义函数create_blcode。

它调用了默认model中的create函数。


    @api.model
    def create_blcode(self, vals):
        logging.info('-------------------start create_blcode------------')
        json_data = vals[2]
        for data in json_data:
            name = data.get('name')
            uacode = data.get('uacode')
            send_date = data.get('send_date')
            value = {
                'name': name,
                'uacode': uacode,
                'send_date': send_date
            }
            self.create(value)
        logging.info('-------------------end create_blcode success------------')
        return ("ok")

 

扩展阅读:

https://blog.csdn.net/weixin_35737303/article/details/72423572

https://blog.csdn.net/qq_38894046/article/details/104661171

 

 

 

相关标签: odoo 后端

上一篇:

下一篇: