本文摘要
泛微 E9 二次开发中可通过专门类手动触发流程强制归档,先设置签字意见,再传入请求 ID 列表和当前用户执行归档并返回结果。适合需用 Java 代码归档以便调试或扩展功能的场景,示例还涉及当前用户与请求参数的校验,注意参数缺失时的处理。
在泛微 E9 系统中,流程强制归档是用于强制将待办任务归档的操作。通常,这个过程通过调用 /api/workflow/monitor/archiving 接口并传输 multiRequestIds 参数来实现。然而,在实际开发中,我们有时需要通过 Java 代码手动触发归档过程,便于调试和自定义功能。
WfForceOver 类
WfForceOver 类是一个专门用于实现流程强制归档的类,它提供了两个关键方法:
- setRemark(String remark) :用于设置强制归档时的签字意见(备注)。
- doForceOver(List requestIds, User user) :用于执行强制归档操作,传入多个请求 ID 和当前用户。
1. setRemark 方法
该方法用于设置归档时的签字意见。如果未设置,默认会使用空字符串。
public void setRemark(String remark) { this.remark = remark; // 设置归档的签字意见}2. doForceOver 方法
该方法执行强制归档操作,接受一组请求 ID 和当前用户对象。它会通过传入的请求 ID 列表来归档相关流程。
public void doForceOver(ArrayList requestids, User user) { doForceOver(requestids, null, null, user);}还有一个doForceOver重载:
public void doForceOver( ArrayList requestids, HttpServletRequest request, HttpServletResponse response) { doForceOver(requestids, request, response, null);}示例代码
下面是一个简化版的代码示例,展示了如何使用 WfForceOver 类来进行流程强制归档操作:
// 获取当前用户User user = HrmUserVarify.getUser(request, response);if (user == null) { response.sendRedirect("/login/Login.jsp"); return;}
// 获取请求参数String requestIds = request.getParameter("requestIds");if (requestIds == null || requestIds.trim().isEmpty()) { response.setStatus(HttpServletResponse.SC_BAD_REQUEST); out.print("{\"status\":\"0\", \"message\":\"Missing requestIds parameter\"}"); return;}
// 获取签字意见(如果有)String remark = request.getParameter("remark") == null ? "" : request.getParameter("remark");
// 创建 WfForceOver 对象并设置签字意见WfForceOver wfOver = new WfForceOver();wfOver.setRemark(remark);
// 创建 requestIds 列表并调用 doForceOver 方法List<String> requestIdsList = Arrays.asList(requestIds.split(","));wfOver.doForceOver(requestIdsList, user);
// 返回操作结果out.print("{\"status\":\"1\", \"result\":\"Archiving process triggered successfully.\"}");总结
通过 WfForceOver 类的 setRemark 和 doForceOver 方法,我们可以轻松实现流程的强制归档操作。在实际应用中,您只需要传入请求 ID 列表和用户对象,即可完成归档。此外,可以通过 setRemark 方法为归档添加备注,以便后续查看和审计。