fix(bpm): 部署未绘制流程图的模型时,错误提示误导为「流程模型不存在」
走查「新增流程模型」全流程时发现:创建模型后未绘制流程图直接点部署,
接口返回“流程模型不存在”(MODEL_NOT_EXISTS),但模型实际存在,
只是 bpmnXml 为空导致解析不出 BpmnModel。
这会让用户误以为模型被删了,去反复重建模型,实际只需要先画流程图。
修正:validateBpmnXml 中 bpmnModel 为 null 时,改用新增的
MODEL_DEPLOY_FAIL_BPMN_NOT_EXISTS(1_009_002_009),提示
“部署流程失败,原因:流程图还没有绘制,请点击【流程设计】按钮先设计流程图”。
其他校验分支(开始事件缺失、任务名为空等)本身提示正确,未改动。
| | |
| | | ErrorCode MODEL_DEPLOY_FAIL_BPMN_USER_TASK_NAME_NOT_EXISTS = new ErrorCode(1_009_002_006, "部署流程失败,原因:BPMN 流程图中,用户任务({})的名字不存在"); |
| | | ErrorCode MODEL_UPDATE_FAIL_NOT_MANAGER = new ErrorCode(1_009_002_007, "操作流程失败,原因:你不是该流程({})的管理员"); |
| | | ErrorCode MODEL_DEPLOY_FAIL_FIRST_USER_TASK_CANDIDATE_STRATEGY_ERROR = new ErrorCode(1_009_002_008, "部署流程失败,原因:首个任务({})的审批人不能是【审批人自选】"); |
| | | ErrorCode MODEL_DEPLOY_FAIL_BPMN_NOT_EXISTS = new ErrorCode(1_009_002_009, "部署流程失败,原因:流程图还没有绘制,请点击【流程设计】按钮先设计流程图"); |
| | | |
| | | // ========== 流程定义 1-009-003-000 ========== |
| | | ErrorCode PROCESS_DEFINITION_KEY_NOT_MATCH = new ErrorCode(1_009_003_000, "流程定义的标识期望是({}),当前是({}),请修改 BPMN 流程图"); |
| | |
| | | private void validateBpmnXml(byte[] bpmnBytes, Integer type) { |
| | | BpmnModel bpmnModel = BpmnModelUtils.getBpmnModel(bpmnBytes); |
| | | if (bpmnModel == null) { |
| | | throw exception(MODEL_NOT_EXISTS); |
| | | // 此处是流程图未绘制(bpmnXml 为空或无法解析),不是模型不存在, |
| | | // 用 MODEL_NOT_EXISTS 会误导用户以为模型被删了 |
| | | throw exception(MODEL_DEPLOY_FAIL_BPMN_NOT_EXISTS); |
| | | } |
| | | // 1. 没有 StartEvent |
| | | StartEvent startEvent = BpmnModelUtils.getStartEvent(bpmnModel); |