如何通过通用查询使用phone号码搜索联系人

How to search contact using phone number through generic inquiry

我正在尝试使用通用查询来搜索联系人 table 中的 phone 个号码。然而,要进行完全匹配很简单,因为数据库中的 phone 数字可以是任何格式,例如,“001-1234-567”可以是“001 1234 567”或“0011234567”,或“001- 1234-567 ext 123",所以如果我想通过匹配“0011234567”来获取上面任何 phone 数字的所有记录,我在 GI 中看不到任何方法可以做到这一点。

有人知道是否有办法解决这个问题吗?

顺便说一句,我正在做一个项目,我们需要通过网络服务自动将客户信息从我们的电子商务传递到 Acumatica API,其中一项任务是尝试识别客户是否已经在 Acumatica 中。

谢谢。

我见过的一种方法是将 "local" 数据库用于存储原始信息的副本,但使用不带空格/“-”/其他特殊字符的 phone 数字。 您可以查询该数据库,并且您需要一份工作来更新该数据库。 这在某种程度上取决于您的需求。

默认情况下,Acumatica 有 phone 掩码,这意味着系统中的所有 phone 都应根据指定的掩码存储,这将简化您的搜索。 基本上,从我的角度来看,你不应该在系统中 phones 不符合 phone 掩码标准。另外我建议首先更新系统中的所有 phones 数据并转换关于 phone 掩码。

这很乱,但它会起作用...(同意掩码和一致的数据是最好的)
在您的通用查询的关系中,作为联系人 Table(Phone1 所在的位置)上数据字段链接的附加连接,在新行前添加 "And" 并在父字段,然后等于,然后使用您的搜索字符串参数在子字段中使用另一个替换公式。
父字段:
=Replace(Replace(Replace([Contact.Phone1],' ',''),'-',''),'ext','')
子字段:
=Replace(Replace(Replace([Parameter1],' ',''),'-',''),'ext','')

您可以在其中嵌套更多替换项以替换数据中的括号或星号或任何其他内容。
这将要求搜索字符串包含分机号码,如果您只想查看 "ext" 之前的号码,请尝试使用
Left([Contact.Phone1],InStr([Contact.Phone1],'ex')-1)
在 Parent 字段中简单地替换 [Contact.Phone1],那么您不需要替换字符串 'ext'...