监控消息列表打开报错“值不能为null”

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

监控消息列表打开报错“值不能为null”

【问题描述】

(说明提示、报错在做什么操作时出现的和报错截图)

星空产品使用【监控消息列表】提示“值不能为null。参数名:key”,如下图所示:


【业务场景】

业务场景介绍:

1、【消息通知列表】点击【监控消息】打开【监控消息列表】



【原因分析】

【监控消息】生成的对应【监控方案】设置的【监控明细显示设置】存在【脏数据】引起。

可以通过下面【分析sql语句】l检查是否存在异常:


--监控方设置监控明细显示存在脏数据查询sql语句

SELECT * FROM (

SELECT T0.FWARNID 方案Id,T1.FBILLNO 方案编码,COUNT(1) FCOUNT

FROM T_BAS_WARNDISPLAYMAIN T0

LEFT JOIN T_BAS_WARNSOLUTION T1 ON T0.FWARNID = T1.FID

GROUP BY T0.FWARNID,T1.FBILLNO

 ) T

 WHERE  T.FCOUNT > 1


【解决方案】

方案一、【分析sql语句】查询到监控方案编码,【监控方案列表】找到有问题的监控方案,复制一份新的监控方案并启用,【停用】存在数据异常的监控方案

方案二、使用下面的修复sql语句进行数据修复(注:执行脚本之前请先完成备份数据中心)

(注:执行脚本之前请做好数据备份,请从Sql Sever服务做好数据中心实体的备份)

/*

--修复数据

DELETE

FROM 

T_BAS_WARNDISPLAYMAIN 

WHERE FID IN(

SELECT FID

FROM 

T_BAS_WARNDISPLAYMAIN

WHERE FWARNID IN

(

SELECT T.FWARNID

FROM (

SELECT T0.FWARNID,T1.FBILLNO,COUNT(1) FCOUNT

FROM T_BAS_WARNDISPLAYMAIN T0

LEFT JOIN T_BAS_WARNSOLUTION T1 ON T0.FWARNID = T1.FID

GROUP BY T0.FWARNID,T1.FBILLNO

) T

WHERE  T.FCOUNT > 1

)

 )

 AND FID  NOT IN 

 (

SELECT 

MIN(FID) FMINFID

FROM 

T_BAS_WARNDISPLAYMAIN

WHERE FWARNID IN

(

SELECT T.FWARNID

FROM (

SELECT T0.FWARNID,T1.FBILLNO,COUNT(1) FCOUNT

FROM T_BAS_WARNDISPLAYMAIN T0

LEFT JOIN T_BAS_WARNSOLUTION T1 ON T0.FWARNID = T1.FID

GROUP BY T0.FWARNID,T1.FBILLNO

) T

WHERE  T.FCOUNT > 1

)

GROUP BY FWARNID

)

--*/

一、主要步骤

(先概括主要步骤,让用户大致了解整体流程) 

二、详细操作

方案一、

  1. 【分析sql语句】查询到监控方案编码


  2. 根据1获取到【监控方案编码】,从【监控方案列表】查询到【旧监控方案】,点击复制新增【新监控方案】



3. 停用【旧监控方案】



方案一:

优点:直接从星空系统界面操作可以完成,避免直接执行脚本出现的操作难问题

缺点:新监控方案生成的消息可以正常打开,历史监控消息还是无法打开,会提示数据存在报错


方案二、

优点:新生成的消息可以正常打开,历史监控消息也可以正常打开

缺点:直接执行脚本出现的操作有一定难度



【注意事项】

方案二、执行sql脚本前请及时做好数据中心备份)



监控消息列表打开报错“值不能为null”

【问题描述】(说明提示、报错在做什么操作时出现的和报错截图)星空产品使用【监控消息列表】提示“值不能为null。参数名:key”,如下图所...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息