外观
工单状态与流程规则
概述
工单的“状态”由多个字段共同表达:业务状态、业务流程状态、当前节点和节点执行记录不是同一个概念。排障或报表取数时,应先确认要回答的是“工单处于什么业务状态”,还是“流程走到哪个节点”。
状态字段分工
| 维度 | 字段 | 维护方式 | 适用问题 |
|---|---|---|---|
| 业务状态 | cases_state | 可由应用节点或流程后动作变更 | 工单当前业务状态是什么? |
| 状态日志 | cases_state_log | 系统自动回填 | 工单状态如何流转? |
| 当前节点 | field_workflowProgressName__c | 系统自动回填 | 当前流程节点名称是什么? |
| 节点启动时间 | field_currentTaskStartTime__c | 系统自动回填 | 当前节点从何时开始? |
| 业务流程状态 | field_workflowStatus__c | 系统自动变更 | 流程进行中、已完成还是已终止? |
| 外部流程节点 | field_workflowPartnerProgressName__c | 按配置回填 | 外部服务商流程走到哪里? |
| 外部流程状态 | field_workflowPartnerStatus__c | 按配置回填 | 外部流程是否完成或终止? |
| 打卡执行状态 | 打卡记录 status | 打卡/SOP 执行时写入 | 某次现场打卡是否完成? |
流程规则
工单状态
cases_state 的选项和节点对应关系由企业流程配置决定。流程节点可以通过节点动作或流程后动作变更工单状态,因此不能把某个固定状态集合当作所有企业的通用规则。
业务流程状态
field_workflowStatus__c 由系统自动维护,源文档定义的状态含义为:
- 进行中:业务流程仍在执行。
- 已完成:业务流程已完成。
- 已终止:流程被终止。
流程状态为“已完成”不代表 cases_state 一定为某个固定值;最终业务状态取决于企业配置的流程后动作。
当前节点和处理人
field_workflowProgressName__c记录当前业务流程节点名称。field_currentTaskStartTime__c记录当前节点启动时间,可用于节点耗时分析。field_downstreamDealedUser__c记录当前企业外部流程处理人。- 派单、服务组、服务商等节点还会回填相应派单字段,字段关系见派单相关字段。
现场作业与状态核对
现场打卡记录有自己的 status(已完成、进行中、未完成、其他)和 action(签到、签退、仅签到等)。它表示一次打卡或工序执行状态,不等同于工单业务状态或业务流程状态。
排查“工程师已到场但工单未完成”时,建议按以下顺序核对:
- 工单的
field_workflowStatus__c和field_workflowProgressName__c。 - 当前节点是否配置了完成条件或流程后动作。
- 工单打卡记录是否存在,
status和action是否符合现场动作。 cases_state是否由流程动作更新,以及cases_state_log是否有对应记录。
使用限制
- 工单状态和流程状态可能由不同规则维护,不能互相替代。
- 当前节点名称、完成动作、状态取值及自动完成条件都可能由企业配置。
- 外部服务商流程状态只在启用对应外部流程时有意义。
- 打卡记录的完成不自动推断为工单流程完成,除非企业在流程中配置了相应联动。