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

业务流程--上查--报出现重复的主键(FRouteId)数据:xxx

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

业务流程--上查--报出现重复的主键(FRouteId)数据:xxx

问题描述:


在上下查的时候报出现重复的主键(FRouteId)数据:xxxxx错误,如下图:

解决方案:

一、2020年之前的版本,需要检查一下是否取到多个相同FMasterId, 这可能由于归档发生了异常,只有某些表归档了,如果是此情况,则需要把FMasterId下的所有数据要么归档,要么不归档(包括t_bf_instance, t_bf_instanceEntry,t_bf_instanceAmount)。已知的表名@FTTableName ,内码,检查脚本:

--查询@FTTableId
Select FSEQ as @FTTableId from t_bf_tableDefine where FTableNumber=@FTTableName

--查询当前表
with tb001 as(select FEntryId from t_xxx_Entry(替换为实际的取内码的表))
SELECT TInst.FMasterId 
  FROM t_BF_Instance TInst 
 INNER JOIN t_BF_InstanceEntry TEntry ON (TInst.FInstanceId = TEntry.FInstanceId) 
 INNER JOIN tb001 TIds ON (TEntry.FTId = TIds.FID) 
 WHERE TEntry.FTTableName = @FTTableName 
--查询历史表
 SELECT TInst.FMasterId  
  FROM t_BF_InstanceHis TInst  
  INNER JOIN t_BF_InstanceEntryHis TEntry
  ON (TInst.FInstanceId = TEntry.FInstanceId)  
  INNER JOIN tb001 TIds ON (TEntry.FTId = TIds.FID) 
   WHERE TEntry.FTTableId = @FTTableId 
---查询归档表 
  SELECT TInst.FMasterId   
  FROM t_BF_InstBackUp TInst  
  INNER JOIN t_BF_InstEntryBackUp TEntry ON (TInst.FInstanceId = TEntry.FInstanceId) 
  INNER JOIN tb001 TIds ON (TEntry.FTId = TIds.FID) 
  WHERE TEntry.FTTableId = @FTTableId

二、如果是之后的版本或不是上面情况,则需要根据上面取到的FMaster集合,再查询具体的节点数据,相关脚本:


 --FMasterId来源当前表
 with tb002 as(select FInstanceId from t_bf_instance where FMasterId in(xx1,xx2,xx3)
 --FMasterId来源历史表
 with tb002 as(select FInstanceId from t_bf_instanceHis where FMasterId in(xx1,xx2,xx3)
 --FMasterId来源归档表
 with tb002 as(select FInstanceId from t_bf_instBackUp where FMasterId in(xx1,xx2,xx3)
--查询当前节点表
 SELECT t0.FRouteId, t0.FInstanceId, t0.FLineId, t0.FSTableName, 
 t0.FSId, t0.FTTableName, t0.FTId, t0.FFirstNode, t0.FCreateTime 
  FROM tb002  t3  
  INNER JOIN t_BF_InstanceEntry t0 ON t3.FInstanceId =t0.FInstanceId
--查询历史节点表
SELECT t0.FRouteId, t0.FInstanceId, t0.FLineId, ISNULL(t1.FTableNumber, ' ') 
AS FSTableName, t0.FSId, ISNULL(t2.FTableNumber, ' ') AS FTTableName,
t0.FTId, t0.FFirstNode, t0.FCreateTime 
  FROM tb002  t3    
 INNER JOIN t_BF_InstanceEntryHis t0 ON t3.FInstanceId =t0.FInstanceId 
 LEFT JOIN t_BF_TableDefine t1 ON (t0.FSTableId = t1.FSeq and t1.FSeq <> 0)

业务流程--上查--报出现重复的主键(FRouteId)数据:xxx

问题描述:在上下查的时候报出现重复的主键(FRouteId)数据:xxxxx错误,如下图:解决方案:一、2020年之前的版本,需要检查一下是否取到多个...
点击下载文档文档为doc格式

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

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