gpt4 book ai didi

node.js - 如何检查 xero 中联系人的帐号字段是否重复?

转载 作者:太空宇宙 更新时间:2023-11-04 01:25:07 25 4
gpt4 key购买 nike

我想使用 xero-api 将 MOD10V05 有效的 Bpay CRN(使用 https://github.com/JedWatson/node-bpay 生成)分配给 xero 帐户中的联系人。我能够获取联系人并使用生成的 Bpay CRN 更新它们。但我想在更新帐号之前执行检查,以便不存在重复的帐号。

我尝试获取联系人并向他们应用 map ,以将没有帐号的联系人 ID 存储到数组中(noAccountNumContacts)。然后映射该数组以更新与 Bpay CRN 的联系人。但我无法应用重复检查。

这是代码:

const XeroClient = require("xero-node").AccountingAPIClient;
const bpay = require("bpay");

(async function() {
let xero = new XeroClient(config);
let noAccountNumContacts = [];

const result = await xero.contacts.get();
const contacts = result.Contacts;

// push contact with no account no. to array
contacts.map(contact => {
const { ContactID, Name, AccountNumber } = contact;
console.log("Contact ID: ", ContactID);
console.log("Name: ", Name);
if (AccountNumber === undefined) {
noAccountNumContacts.push(ContactID);
} else {
console.log("Account no: ", AccountNumber);
}
});

console.log("Contacts to be updated ", noAccountNumContacts);

// update account number
if (noAccountNumContacts.length !== 0) {
noAccountNumContacts.map(async contact => {
const crn = bpay.generateBpayCRN(7);
await xero.contacts.update({
ContactID: contact,
AccountNumber: crn
});
});
}
noAccountNumContacts = [];
})();

我想生成一个新的 Bpay CRN 并检查联系人中是否已存在。如果存在,则再次生成,否则将其更新为帐号字段中值为空的联系人。

最佳答案

我认为做到这一点的方法是尝试匹配帐号并查看是否有。你能做类似的事情

const result = await xero.contacts.get({
AccountNumber: crn
});

然后只查看返回的联系人数量?如果为零,您可以继续,否则会有重复项,您将获得它的 ID。

(我不熟悉node.js,所以我的语法可能有点不对劲)。

当然,另一种方法是查看从 update() 调用中获得的响应,并查看是否因重复帐号而引发错误,在这种情况下,您可以重新生成帐号并重试。我个人不喜欢这种方法,但如果您可以轻松访问响应,它可能会起作用。再说一次,我不使用 node.js,所以我不确定这是如何完成的。

关于node.js - 如何检查 xero 中联系人的帐号字段是否重复?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57849595/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com