系统存在同名客户,交易明细只有客户名称,智能收款自动生成收款单时如何带出正确客户信息
业务背景:系统存在相同名称的客户资料,编码不同,分别对应车款户和配件户。交易明细上只有对方单位,对应的是客户名称。智能收款自动生成收款单时通过DAP规则生成,系统目前无法匹配到正确的客户信息,会随机带出最新创建的客户信息。
解决思路:由于测试系统无法智能收款测试,接下来用应收单生成收款单进行测试验证。
1、必须要有编码+名称才能匹配到正确的客户,因此建议后续将客户的编码写在交易明细的【摘要】栏,例如SAC0001配件款。客户编码一般是7位或者10位,通过脚本判断取摘要的前7位或者前10位。本次测试将编码写在分录的【备注】,如下图所示
2、DAP规则取数:
2.1 新增公式变量-客户编码a,通过函数取到备注的前7位作为客户编码a;
2.2 新增公式变量-客户编码b,通过函数取到备注的前10位作为客户编码b;
2.3 新增公式变量-客户名称a,通过客户编码a取到客户名称a;
2.4判断客户名称a是否为空,不为空则取启用状态的客户编码a且客户名称=应收单分录的收款客户名称;如果客户名称a为空,则去启用状态的客户编码b且客户名称=应收单分录的收款客户名称。
脚本编辑如下所示:
客户编码a = left( 应收单.分录.备注 ,7 ) ;
客户编码b = left( 应收单.分录.备注,10 ) ;
客户名称a = __BOTgetObjectFromNumber("BF0C040E", 客户编码a ) ;
如果 ( 客户名称a 不等于 " " ) {公式结果 = #sql_val(" SELECT fid FROM T_BD_CUSTOMER where FUsedStatus = 1 and fnumber = '" + 客户编码a + "' and fname_l2 = ( select FRECASSTACTNAME_L2 from T_AR_OtherBillentry where fparentid='" + 应收单.ID + "')") ;} 如果 ( 客户名称a 等于 " ") { 公式结果 = #sql_val("select fid from t_bd_customer where fusedstatus =1 and fnumber='" + 客户编码b + "' and fname_l2=(select frecasstactname_l2 from t_ar_otherbillentry where fparentid ='" + 应收单.ID + "')"); }
3、测试验证。应收单生成收款单测试验证成功,7位编码的客户和10位编码的客户信息都能正常带出
系统存在同名客户,交易明细只有客户名称,智能收款自动生成收款单时如何带出正确客户信息
本文2024-09-16 22:24:41发表“eas cloud知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-eas-47951.html