在泛微 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 方法为归档添加备注,以便后续查看和审计。
[Ecology E9 Java] 流程强制归档方法 by https://oneszhang.com/archives/124.html
/api/workflow/monitor/archiving 这个接口吗
我看文档是/api/workflow/paService/doForceOver这个呀
这两个接口作用一致,但是存在内外部接口的区别,系统内部直接使用/monitor/archiving,而paService/doForceOver则为对外接口,用户认证与用户对象的获取方式及在后端处理方式有所不同
内部接口的文档有吗 求一份
木有,内部接口我一般在F12看@(泪)