问题描述
我正在尝试返回可以匹配多个“PHONE”值的联系人列表。现在我可以得到一个匹配一个电话值而不是一组电话值的列表。这是我所拥有的:
let contactList = await bitrix.call('crm.contact.list',{
"filter": {
"PHONE": phoneArray,//example ["1112223344","5556651234"]
},"select": ["*","EMAIL","PHONE"]
});
我基于他们的 API 文档来说明如何匹配一个电话值 here
还有 another article 我发现在过滤器中使用 "LOGIC":"OR" 的提及可能有效。它是用 PHP 编写的,所以我不确定它是如何转换为 javascript 的。
解决方法
您可以使用 crm.duplicate.findbycomm
(https://training.bitrix24.com/rest_help/crm/auxiliary/duplicates/crm.duplicate.findbycomm.php):
BX24.callMethod(
"crm.duplicate.findbycomm",{
entity_type: "CONTACT",type: "PHONE",values: [ "8976543","11223355" ],},function(result)
{
if(result.error())
console.error(result.error());
else
{
console.dir(result.data());
}
}
);
但有限制:
最多包含 20 个电子邮件或电话号码的数组
也许它会使用批处理 (https://training.bitrix24.com/rest_help/js_library/rest/callBatch.php)
遗憾的是,crm.contact.list
无法匹配多个“PHONE”值