npm 包 nodered-odoo-commands 使用教程

前言

Odoo 是一款开源的企业管理软件,它提供了包括 CRM、销售、采购、库存管理、会计、人力资源等在内的全面的管理功能。nodered-odoo-commands 是一款基于 Node-RED 的 npm 包,可以帮助开发者更方便地使用 Node-RED 与 Odoo 进行交互,并实现 Odoo 的相关操作,本文将对其使用进行详细介绍。

安装

你可以使用 npm 来安装 nodered-odoo-commands,使用以下命令进行安装:

npm install --save node-red-contrib-odoo-commands

使用

创建 Odoo API 实例

在使用 nodered-odoo-commands 前,我们需要先创建 Odoo API 实例。在 Node-RED 中,我们可以通过建立一个 HTTP 请求节点,来创建 API 实例。以下是创建 API 实例的代码:

const apiUrl = "http://localhost:8069";
const dbName = "test";
const username = "admin";
const password = "admin";

const options = {
  url: apiUrl + "/api/authenticate",
  method: "POST",
  json: {
    db: dbName,
    login: username,
    password,
  },
};
msg.payload = options;
return msg;

其中,apiUrl 是 Odoo 服务器的 URL,dbName 是数据库的名称,username 和 password 分别是管理员的账号和密码。

操作数据

使用 nodered-odoo-commands,我们可以方便地对 Odoo 的数据进行增删改查等操作。以下是对数据进行相应操作的代码:

查询

const odoo = require("odoo-xmlrpc");

const apiUrl = "http://localhost:8069";
const dbName = "test";
const username = "admin";
const password = "admin";

const command = {
  method: "search_read",
  model: "res.partner",
  args: [[["is_company", "=", false]], ["name", "email"]],
  kwargs: {},
};

const odooClient = new odoo(apiUrl, dbName, username, password);

return new Promise((resolve, reject) => {
  odooClient.connect((err) => {
    if (err) {
      reject(err);
      return;
    }
    odooClient.execute_kw(command.model, command.method, command.args, command.kwargs, (err, value) => {
      if (err) {
        reject(err);
        return;
      }
      resolve(value);
    });
  });
});

创建

const odoo = require("odoo-xmlrpc");

const apiUrl = "http://localhost:8069";
const dbName = "test";
const username = "admin";
const password = "admin";

const command = {
  method: "create",
  model: "res.partner",
  args: [
    {
      name: "张三",
      email: "zhangsan@odoo.com",
      is_company: false,
    },
  ],
  kwargs: {},
};

const odooClient = new odoo(apiUrl, dbName, username, password);

return new Promise((resolve, reject) => {
  odooClient.connect((err) => {
    if (err) {
      reject(err);
      return;
    }
    odooClient.execute_kw(command.model, command.method, command.args, command.kwargs, (err, value) => {
      if (err) {
        reject(err);
        return;
      }
      resolve(value);
    });
  });
});

修改

const odoo = require("odoo-xmlrpc");

const apiUrl = "http://localhost:8069";
const dbName = "test";
const username = "admin";
const password = "admin";

const command = {
  method: "write",
  model: "res.partner",
  args: [[1], { name: "李四" }],
  kwargs: {},
};

const odooClient = new odoo(apiUrl, dbName, username, password);

return new Promise((resolve, reject) => {
  odooClient.connect((err) => {
    if (err) {
      reject(err);
      return;
    }
    odooClient.execute_kw(command.model, command.method, command.args, command.kwargs, (err, value) => {
      if (err) {
        reject(err);
        return;
      }
      resolve(value);
    });
  });
});

删除

const odoo = require("odoo-xmlrpc");

const apiUrl = "http://localhost:8069";
const dbName = "test";
const username = "admin";
const password = "admin";

const command = {
  method: "unlink",
  model: "res.partner",
  args: [[1]],
  kwargs: {},
};

const odooClient = new odoo(apiUrl, dbName, username, password);

return new Promise((resolve, reject) => {
  odooClient.connect((err) => {
    if (err) {
      reject(err);
      return;
    }
    odooClient.execute_kw(command.model, command.method, command.args, command.kwargs, (err, value) => {
      if (err) {
        reject(err);
        return;
      }
      resolve(value);
    });
  });
});

结语

nodered-odoo-commands 包可以帮助开发者使用 Node-RED 与 Odoo 进行交互,方便进行 Odoo 的数据增删改查操作。本文介绍了创建 API 实例和对数据进行相应操作的使用方法,并提供了相应的代码示例,希望可以帮助到开发者。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/60067382890c4f7277584331


纠错
反馈