且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

SAP Cloud for Customer客户主数据的重复检查-Levenshtein算法

更新时间:2022-09-14 22:40:04

AP C4C的客户主数据创建时的重复检查,基于底层HANA数据库的模糊查找功能,根据扫描数据库中已有的数据检测出当前正在创建的客户主数据是否和数据库中记录有重复。


在系统里开启重复检查的配置:






在此处配置主数据模型上每个字段对重复性检查结果共享的权值:




要理解权值的作用,就必须先理解C4C客户主数据重复性检查的算法Levenshtein algorithm。这个算法以开发者Vladimir Levenshtein命名,通过计算Levenshtein(莱文斯坦)距离来衡量两个字符串的相似度。


看个具体例子。


假设数据库里有一条主数据记录:


Name = Carl,


Email = jerry@sap.com


然后在C4C UI创建一个新的客户主数据:


Name = Corl,


Email = jerry@sap.com


其中Name字段的相似度为 1 - 1/4 = 75%,而Email字段相似度为100%。


然后在C4C里这两个字段的权值配置如下:


Name = 30


E-mail = 70


按照Levenshtein algorithm的公式计算重复度:




SIM = SQRT( (30² * 0.75² + 70² * 1²) / (30² + 70²) ) = 0.97 = 97%


到底重复度多少的待创建客户主数据被认为是真正的重复数据呢?可以在Business Configuration里配置:




‘Strong – Duplicate Check for Business Partners’:85%


‘Medium – Duplicate Check for Business Partners’: 80%


‘Weak – Duplicate Check for Business Partners’: 70%