【分配:TOP3】基础资料分配的时候提示已分配,又无法取消分配怎么办?

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:4

【分配:TOP3】基础资料分配的时候提示已分配,又无法取消分配怎么办?

分配的时候提示:编码为XXX的基础资料已经配到组织“XXX”中”,如需重新分配清先操作“取消分配”。

image.webp

但是取消分配操作的时候提示:目标组织的记录删除步成功导致取消分配失败:内码为XXX的基础资料不存在,可能已经被删除。

image.webp

出现这种现象是因为在分配关系表T_ORG_BASEDATAALLOCATEENTRY 中已经记录这个分配关系,但是对应的基础资料表里面却没有目标组织下的该基础资料数据,所以分配过去没有数据,分配数据查不到。


导致这种数据产生的原因很多:

可能是服务器异常中断或重启导致分配过程中断;

可能是二开基础资料没有继承受组织控制的基础资料模板,导致删除操作上缺少了BaseDataDeletePlugIn插件,导致在删除基础资料的时候不会清理分配关系表;

也可能是旧版本使用WebApi删除的基础资料的时候没有清理掉分配关系表

image.webp

解决办法:


方法一:可以通过下载星空卫士通过智能分析修复


方法二:脚本修复数据

删除分配关系表T_ORG_BASEDATAALLOCATEENTRY表中存在,但是在基础资料表中不存在的数据,sql如下:


DELETE T_ORG_BASEDATAALLOCATEENTRY  WHERE FENTRYID in 

(

select a.FENTRYID from T_ORG_BASEDATAALLOCATEENTRY a left join 基础资料表 b on a.FDESTID=b.基础资料表主键ID

where a.FTABLENAME='基础资料表' and b.基础资料表主键ID is null

);


基础资料表可以通过BOS设计器查找表名,以物料为例,表名为T_BD_MATERIAL,主键可以通过数据库查找,为FMATERIALID ,所以物料的脏数据删除语句就是:

DELETE T_ORG_BASEDATAALLOCATEENTRY  WHERE FENTRYID in 

(

select a.FENTRYID from T_ORG_BASEDATAALLOCATEENTRY a left join T_BD_MATERIAL b on a.FDESTID=b.FMATERIALID

where a.FTABLENAME='T_BD_MATERIAL' and b.FMATERIALID is null

);

image.webp



【分配:TOP3】基础资料分配的时候提示已分配,又无法取消分配怎么办?

分配的时候提示:编码为XXX的基础资料已经配到组织“XXX”中”,如需重新分配清先操作“取消分配”。但是取消分配操作的时候提示:目标组织...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息