EAS供应商初始化到苍穹联系人信息重复

栏目:云苍穹知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

EAS供应商初始化到苍穹联系人信息重复

问题描述:

问题现象:集成过程中,执行日志报错:保存 “联系电话”、“邮箱” 的组合值重复,请至少修改一项。

提示:上述异常由“当前账套(self)”数据源抛出。若需要更详细的日志分析报错,请在连接配置“预置当前账套连接(PREINS_SELF)”所对应的系统中获取更多日志。



问题背景:EAS的供应商的联系人信息因为有组织隔离,所以存在很多相同的联系人数据,导致EAS供应商初始化到苍穹联系人信息重复。


原因分析: 该报错是由于源系统(EAS)中是组织隔离的,是目标系统(苍穹)供应商联系人分录信息同步时调用该业务单据标准保存操作的业务校验提示。根本原因是由于EAS和苍穹对于供应商联系人存在差异,EAS由于组织隔离在同一张表中T_BD_SUPPLIERLINKMAN存在相同姓名的联系人。


解决方案:

解决方案:目前供应链中台的业务老师提供两种解决建议思路:

方案1:只将根管理单元下的联系人数据同步;

方案2:联系人集成取EAS各组织的全部数据按苍穹的“联系电话+邮箱”去重,遇到重复的不做处理;


方案1解决方法:

选择对应供应商同步标准集成方案,点击“高级设置”页签,选择对应“供应商联系人视图信息”集成对象,点击F7进入详情




修改对应集成对象,视图SQL中的取数信息,并重新同步该集成对象:

select s.fid as supplierid, m.*,p.fpurchaseorgid from T_BD_SUPPLIERLINKMAN m left join T_BD_SUPPLIERPURCHASEINFO p on m.fsupplierpurchaseid = p.fid left join T_BD_SUPPLIER s on p.fsupplierid = s.fid



返回集成方案,在字段映射分录中添加取数字段:contactsInfo.fpurchaseorgid,将其取出



并在对应高级设置->来源数据处理脚本中,添加对应过滤脚本:

//过滤联系人分录在根组织下的数据

var list = src.contactsInfo;

var result = list.filter($.fpurchaseorgid == 'XXXX');

src.contactsInfo = result;

注意:XXXX根据根据实际场景查询出所需过滤的根组织ID。



方案2解决方法:

  • 按照联系人名称去重

现场需要查询T_BD_SUPPLIERLINKMAN中是否对于同一个人存在多条数据,再选择使用表1的脚本粘贴到集成方案的转换脚本位置解决问题,下图。

注意:

  1. 此脚本需要在标准方案上进行修改,修改前请备份方案,若现场是修改过的标准方案则脚本不再适用,请联系集成服务云部门。现场需要根据考虑是否根据contactperson去重,如果有其他需求,请修改脚本第二行contactperson为对应属性。

  2. 现场需要验证eas中联系人手机号存的字段是mobile与phone哪一个并在方案中调整正确。

  3. 所有修改需要测试通过后再更新正式。

图1 根据fname去重联系人

表1:供应商联系人去重脚本

var list   = tar.entry_linkman;

var   result = list.group(contactperson).entries()=>{

  "id":value[0].id,

     "contactperson":value[0].contactperson,

     "contactpersonpost":value[0].contactpersonpost,

   "phone":value[0].phone,

   "fax":value[0].fax,

   "email":value[0].email,

   "mobile":value[0].mobile,

     "postalcode":value[0].postalcode,

   "address":value[0].address,

   "$id":value[0].$id,

   "$pk":value[0].$pk,

   "seq":value[0].seq,

     "isdefault_linkman":value[0].isdefault_linkman

};

tar.entry_linkman   = result;


  • 方式二:细致按照联系人的邮箱 + 手机号码去重


请参考以下脚本:

var list = tar.entry_linkman;

var result = list.group(mobile, email).entries()=>{"contactperson":value[0].contactperson,"contactpersonpost":value[0].contactpersonpost,"phone":value[0].phone,"fax":value[0].fax,"email":value[0].email,"mobile":value[0].mobile,"postalcode":value[0].postalcode,"addressaddress":value[0].address,"seq":value[0].seq,"isdefault_linkman":value[0].isdefault_linkman,"$pk":value[0].$pk};

tar.entry_linkman = result;



集成服务云使用指南:https://club.kdcloud.com/article/45312

集成服务云新特性发布汇总:https://club.kdcloud.com/article/146134

EAS供应商初始化到苍穹联系人信息重复

问题描述:问题现象:集成过程中,执行日志报错:保存 “联系电话”、“邮箱” 的组合值重复,请至少修改一项。提示:上述异常由“当前账...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息