BOS审批流如何查询出下一级待审核人信息
--根据名称查询出采购订单的类型ID,为1071
SELECT FID,* FROM ICClassType WHERE FName_chs Like '%采购订单_BOS%'
--审批流对应的审核状态表的组合规则为:ICClassMCStatus+单据类型ID,审核记录表组合规则为:ICClassMCRecord+单据类型ID
--那么采购订单对应的审核状态表为ICClassMCStatus1071,审核记录表则为ICClassMCRecord1071
--表ICClassMCStatus1071记录着采购订单下一级待审核的节点信息(FNextLevelTagIndex)
--例如查询某张采购订单(单据内码为1000)的下一级待审核节点FNextLevelTagIndex的值为:2000
SELECT FNextLevelTagIndex,* FROM ICClassMCStatus1071 WHERE FBillID=1000
AND FID IN(SELECT MAX(FID) FROM ICClassMCStatus1071 WHERE FBillID=1000)
--根据采购订单类型ID(1071),可查询到采购订单对应的审批流程ID,例如查出来为:40
SELECT FID,* FROM ICClassMCTemplate WHERE FClassTypeID=1071
--ICClassMCTableInfo记录着审批流的所有流程节点、会签节点及流转连线,以及各种控制选项信息
--根据查出来的FNextLevelTagIndex值(2000)和查出来的审批流程模板ID(40),在表ICClassMCTableInfo查到下一级待审核节点哪些人可以审核
--FCheckRight为该节点拥有审核权限的用户ID,可以根据用户ID在t_user里查询到对应的用户名(FUnCheckRight则记录着拥有反审核权限的用户)
SELECT FCheckRight,* FROM ICClassMCTableInfo WHERE FTemplateID=40 AND FTagIndex=2000
--表ICClassMCRecord1071记录着采购订单的审核线路信息
--另外如果在上一级进行审核或者驳回有指定审核人的话,就需要在表ICClassMCRecord1071查询到指定的审核人信息FAppointCheckerInfo
--例如查询某张采购订单(单据内码为1000)的在上一级次审核或者驳回时,是否有指定审核人信息
--此时FAppointCheckerInfo便记录着下一级待审核人
SELECT FAppointCheckerInfo,* FROM ICClassMCRecord1071 WHERE FBillID=1000
AND FID =(SELECT MAX(FID) FROM ICClassMCRecord1071 WHERE FBillID=1000)
要深刻理解这些表之间的逻辑关系,请拿一张实际运行审批流的采购订单实例做对照!