电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

从EAS向苍穹同步人员,苍穹中已有的分录信息(直接上级信息)被清空

来源:金蝶云社区作者:金蝶2024-09-2315

从EAS向苍穹同步人员,苍穹中已有的分录信息(直接上级信息)被清空

问题描述:

通过‘预置_人员信息(EAS-苍穹)’方案,用户从EAS向苍穹同步人员信息时,如果EAS中缺失部门分录中的直接上级,而在人员信息同步后于苍穹端手工维护了该信息,那么应该如何避免下次同步时手工维护的直接上级被清空?

解决方案:


找到对应的集成方案:预置_人员信息(EAS-苍穹)

特别说明:所有修改需要结合现场的需求来评估是否满足现场的业务需求,并且经过测试环境验证后更新正式环境。


修改


查看/编辑 转换脚本


处理逻辑

EAS推送数据到苍穹时,先查询苍穹是否存在该数据,存在的话,取出当前苍穹的直接上级字段,根据分录的候选键重新塞到目标数据分录中。

注意点:目标数据中可能不存在当前单据的id,需要重新查询id,由于标准产品已经存在查询用户类型的查询脚本,为保证性能,可以直接在该脚本加一个fid字段,如果目标对象存在id字段,则可以忽略该逻辑。


加入处理脚本其中红色部分为需要加入的部分


if(tar.number== null){return null;}

var sql = "SELECT top 1 fusertype as type,fid from t_SEC_User@basedata where fnumber = ?";

var list = query_list($tar, sql, [tar.number], [VARCHAR]);

// 如果存在该用户,且用户类型不为1,忽略

if(list &&  list[0].type != '1') {

   tar.#_IGNORE_TAG = true;

}

 

if(list && list[0].fid != null){

//eas同步苍穹,部门分录不覆盖直接上级字段,其中fsuperiorid为苍穹直接上级字段,fposition,fdptid为候选键字段,用来做确定需要更新的时那行数据

var entrySql = "SELECT fsuperiorid,fposition,fdptid as fdpt FROM T_SEC_USERPOSITION@SYS where fid=?";

  //查询目标分录结果

  var entrylist = query_list($tar,entrySql, [list[0].fid], [BIGINT]);

if(entrylist){

for(row:entrylist) {

            if(row.fsuperiorid != null){

                     for(var i = 0; i < tar.entryentity.length; i++) {

                                if(tar.entryentity[i].position.zh_CN == row.fposition && tar.entryentity[i].dpt == row.fdpt ){

                              tar.entryentity[i].superior = row.fsuperiorid;

                       }

                }

      }

   }

}

}

查看部门信息分录候选键


附:如需保留目标系统中额外新增的分录信息

在转换脚本中根据部门分录中的部门id作为候选键进行判断,当目标系统中的分录信息不包含该id时,则将该条分录重新添加到写入的分录信息中。


加入处理脚本其中红色部分为需要加入的部分


if(tar.number== null){return null;}

v

从EAS向苍穹同步人员,苍穹中已有的分录信息(直接上级信息)被清空

问题描述:通过‘预置_人员信息(EAS-苍穹)’方案,用户从EAS向苍穹同步人员信息时,如果EAS中缺失部门分录中的直接上级,而在人员信息同...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信