技术答疑.工作流.信息中心.左边分组树的个人信息汇总条数与右边列表数据行数不一致问题
【问题描述】
信息中心,偶尔会看到,左边分组树的某个类目下的个人信息汇总条数与右边列表数据行数不一致问题。
【原因分析】
从系统实现上来说,左边的每个类目下的个人信息汇总数量查询,和右边的列表数据查询,不是使用的完全一致的过滤条件。以“普通消息”举例来说,左边查询的是当前登录用户的未读消息总数量,而右边列表查询,如果是使用默认方案,则会查询所有已读未读的消息,如果是使用的其他过滤方案,数量差异就更加大了。
【结论】
信息中心,左边分组树的个人信息汇总条数与右侧列表数据行数从实现层面就不满足一致性,也无法实现一致性。因此,用户无需纠结于此。
左边分组树的类目的汇总数量取数规则固定,更具体参考价值。如果您一定要明确数量差异的具体原因,可以通过下面提供的SQL进一步深入分析。
【左边分组树的类目的汇总数量的取数规则】
以某个用户ID等于100008的用户为例,相关取数的SQL脚本如下:
--待处理任务 SELECT COUNT(1) FROM ( SELECT TOP 1000 1 X FROM T_WF_ASSIGN T0 INNER JOIN T_WF_RECEIVER T1 ON T0.FASSIGNID = T1.FASSIGNID INNER JOIN T_WF_PROCINST T2 ON T0.FPROCINSTID = T2.FPROCINSTID INNER JOIN T_WF_ACTINST T3 ON T0.FACTINSTID = T3.FACTINSTID INNER JOIN T_WF_APPROVALASSIGN T4 ON T0.FASSIGNID = T4.FASSIGNID LEFT OUTER JOIN T_WF_APPROVALITEM T5 ON T4.FAPPROVALASSIGNID = T5.FAPPROVALASSIGNID AND T1.FRECEIVERID = T5.FRECEIVERID WHERE T0.FSTATUS = '0' AND T2.FSTATUS = '2' AND T3.FSTATUS = '2' AND T1.FRECEIVERID = 100008 AND ( T5.FAPPROVALITEMID IS NULL OR T5.FSTATUS = '0' ) ) TX --已处理任务 SELECT COUNT(1) FROM T_WF_APPROVALITEM t0 INNER JOIN T_WF_APPROVALASSIGN t1 ON t0.FAPPROVALASSIGNID = t1.FAPPROVALASSIGNID WHERE ( t0.FSTATUS = '1' AND ( t0.FACTIONRESULT <> 'Cancel' ) ) AND t0.FRECEIVERID = 100008 --我的转发 SELECT COUNT(1) FROM T_WF_ASSIGN INNER JOIN T_WF_RECEIVER ON T_WF_ASSIGN.FASSIGNID = T_WF_RECEIVER.FASSIGNID INNER JOIN T_WF_APPROVALASSIGN ON T_WF_ASSIGN.FASSIGNID = T_WF_APPROVALASSIGN.FASSIGNID INNER JOIN T_WF_APPROVALITEM ON ( T_WF_APPROVALASSIGN.FAPPROVALASSIGNID = T_WF_APPROVALITEM.FAPPROVALASSIGNID AND T_WF_APPROVALITEM.FRECEIVERID = T_WF_RECEIVER.FRECEIVERID ) LEFT OUTER JOIN T_WF_APPROVALASSIGN PREASSIGNRESULT ON T_WF_ASSIGN.FPREAPPROVALASSIGNID = PREASSIGNRESULT.FAPPROVALASSIGNID LEFT OUTER JOIN T_WF_APPROVALASSIGN forwardRecieverApprovalAssign ON forwardRecieverApprovalAssign.FASSIGNID = T_WF_ASSIGN.FASSIGNID LEFT OUTER JOIN T_WF_APPROVALITEM forwardRecieverApprovalItem ON ( forwardRecieverApprovalItem.FAPPROVALASSIGNID = forwardRecieverApprovalAssign.FAPPROVALASSIGNID AND forwardRecieverApprovalItem.FRECEIVERID = T_WF_APPROVALITEM.FFORWARDRECEIVERID ) WHERE ( ( ( T_WF_APPROVALITEM.FSTATUS = '3' AND ( ( T_WF_APPROVALASSIGN.FRESULT IS NULL ) OR ( T_WF_APPROVALASSIGN.FRESULT <> 'Cancel' ) ) ) AND ( T_WF_APPROVALITEM.FRECEIVERID <> T_WF_APPROVALITEM.FFORWARDRECEIVERID ) ) AND ( T_WF_APPROVALITEM.FISCANCELFORWARD <> 1 ) ) AND T_WF_RECEIVER.FRECEIVERID = 100008 AND T_WF_APPROVALITEM.FFORWARDRECEIVERID > 0 --我的加签 SELECT COUNT(1) FROM T_WF_ASSIGN INNER JOIN T_WF_RECEIVER ON T_WF_ASSIGN.FASSIGNID = T_WF_RECEIVER.FASSIGNID INNER JOIN T_WF_APPROVALASSIGN ON T_WF_ASSIGN.FASSIGNID = T_WF_APPROVALASSIGN.FASSIGNID INNER JOIN T_WF_APPROVALITEM ON ( T_WF_APPROVALASSIGN.FAPPROVALASSIGNID = T_WF_APPROVALITEM.FAPPROVALASSIGNID AND T_WF_APPROVALITEM.FRECEIVERID = T_WF_RECEIVER.FRECEIVERID ) LEFT OUTER JOIN T_WF_APPROVALASSIGN PREASSIGNRESULT ON T_WF_ASSIGN.FPREAPPROVALASSIGNID = PREASSIGNRESULT.FAPPROVALASSIGNID WHERE EXISTS ( SELECT 1 FROM T_WF_ADDSIGNASSIGN t_wf_addsignassign WHERE ( ( t_wf_addsignassign.FASSIGNID = T_WF_ASSIGN.FASSIGNID AND t_wf_addsignassign.FCREATORID = T_WF_RECEIVER.FRECEIVERID ) AND t_wf_addsignassign.FISORIGIN = 1 ) ) AND T_WF_RECEIVER.FRECEIVERID = 100008 --我的委托 SELECT COUNT(1) FROM T_WF_ASSIGN INNER JOIN T_WF_RECEIVER ON T_WF_ASSIGN.FASSIGNID = T_WF_RECEIVER.FASSIGNID INNER JOIN T_WF_APPROVALASSIGN ON T_WF_ASSIGN.FASSIGNID = T_WF_APPROVALASSIGN.FASSIGNID LEFT OUTER JOIN T_WF_APPROVALITEM ON ( T_WF_APPROVALASSIGN.FAPPROVALASSIGNID = T_WF_APPROVALITEM.FAPPROVALASSIGNID AND T_WF_APPROVALITEM.FRECEIVERID = T_WF_RECEIVER.FRECEIVERID ) INNER JOIN T_WF_ENTRUSTRECEIVER ON T_WF_RECEIVER.FID = T_WF_ENTRUSTRECEIVER.FID AND T_WF_ENTRUSTRECEIVER.FCONSIGNOR = 100008 AND T_WF_ENTRUSTRECEIVER.FCONSIGNSTATUS = 1 AND ( T_WF_APPROVALITEM.FSTATUS IS NULL OR T_WF_APPROVALITEM.FSTATUS <> '3' ) --监控消息 SELECT COUNT(1) FROM T_BAS_WARNMERGEMESSAGE WHERE FRECEIVERID = 100008 AND FSTATUS = '0' --执行计划消息 SELECT COUNT(1) FROM T_BAS_SCHEDULEMSG msg INNER JOIN T_BAS_SCHEDULEMSGCONFIG config ON msg.FSCHEDULETYPEID = config.FSCHEDULETYPEID WHERE config.FMSGRECEIVER = 100008 --普通消息 SELECT COUNT(1) FROM T_WF_MESSAGE WHERE FRECEIVERID = 100008 AND FTYPE = '1' AND FSTATUS = '0' --流程消息 SELECT COUNT(1) FROM T_WF_MESSAGE WHERE FRECEIVERID = 100008 AND FSTATUS = '0' AND ( FTYPE = '0' OR FTYPE = '2' ) --发件箱 SELECT COUNT(1) FROM T_WF_MESSAGESEND WHERE FSENDERID = 100008 AND FSTATUS = '0' --废件箱 SELECT COUNT(1) FROM T_WF_MESSAGEDEL WHERE ( FRECEIVERID = 100008 OR ( FMOVEFROM = '1' AND FSENDERID = 100008 ) ) AND FSTATUS = '0' --我的流程 SELECT COUNT(1) FROM T_WF_PROCINST WHERE FORIGINATORID = 100008 AND FSTATUS <> '1' AND FSTATUS <> '4'
【右边列表的取数规则】
信息中心右边列表的取数,既可仔细查看其使用的过滤方案来简单辨别,也可通过APM来抓取列表的取数SQL来精确定位问题。
---------------------------------------------------------------------------------------------------------
【金蝶云星空BOS二次开发案例演示】https://vip.kingdee.com/article/94751030918525696
技术答疑.工作流.信息中心.左边分组树的个人信息汇总条数与右边列表数据行数不一致问题
【问题描述】信息中心,偶尔会看到,左边分组树的某个类目下的个人信息汇总条数与右边列表数据行数不一致问题。【原因分析】从系统实现上来...
点击下载文档
本文2024-09-23 03:35:54发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-159880.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章