我正在尝试使用通用查询来搜索联系人表中的电话号码。然而,完全匹配很简单,因为数据库中的电话号码可以是任何格式,例如,“001-1234-567”可以是“001 1234 567”或“0011234567”,或“001-1234-567 ext 123“,所以如果我想通过匹配”0011234567“获得上述任何电话号码的所有记录,我认为GI中没有任何方法可以做到这一点。
有人知道是否有办法解决这个问题?
顺便说一句,我正在开展一个项目,我们需要通过Web服务API自动将客户信息从我们的电子商务传递到Acumatica,其中一项任务是尝试确定客户是否已经在Acumatica。
感谢。
答案 0 :(得分:1)
默认情况下,Acumatica具有电话掩码,这意味着系统中的所有电话都应根据指定的掩码进行存储,这样可以简化搜索。 基本上,从我的角度来看,你不应该在不符合手机屏蔽标准的系统电话中使用。此外,我建议首先更新系统中的所有手机数据并转换关于手机屏幕。
答案 1 :(得分:0)
我见过的一种方法用于保存“本地”数据库,您可以在其中存储原始信息的副本,但使用不带空格/“ - ”/其他特殊字符的电话号码。 您可以查询该数据库,并且您需要一个作业来保持该数据库的更新。 这有点取决于你的需要。
答案 2 :(得分:0)
这很麻烦,但它会起作用......(同意掩码和一致的数据是最好的)
在您的通用查询的关系中,作为联系表(Phone1所在位置)的数据字段链接中的附加联接,添加"和"在新行之前,在父字段中输入嵌套的替换公式,然后在等于,然后使用搜索字符串参数在子字段中输入另一个替换公式。
家长领域:
=Replace(Replace(Replace([Contact.Phone1],' ',''),'-',''),'ext','')
儿童场:
=Replace(Replace(Replace([Parameter1],' ',''),'-',''),'ext','')
您可以在其中嵌套更多替换,以替换数据中的括号或星号或其他任何内容。
这将要求搜索字符串包含分机号码,如果您只想在"分机号码前查看号码,请尝试使用
Left([Contact.Phone1],InStr([Contact.Phone1],'ex')-1)
简单地在父字段中输入[Contact.Phone1]
,那么您就不需要替换字符串' ext' ...