action 接口主要用作于流程节点前,节点后的附加操作
他需要实现 weaver.interfaces.workflow.action.Action 接口
整个流程操作顺序为 :保存表单数据 -> 节点后操作 -> 生成编号 ->出口附加规则 -> 节点前操作 -> 插入操作者 和签字意见
附上鄙人 3年 总结的 action 常用的方法
//获取⼯作流id
String workflowId = info.getWorkflowid();
//获取流程id
String requestid = info.getRequestid();
//获取RequestManager对象
RequestManager RequestManager = info.getRequestManager();
//获取当前节点id
int currentnodeid = RequestManager.getNodeid();
//下⼀个节点id
int nextnodeid = RequestManager.getNextNodeid();
//获取流程表单id
int formid = RequestManager.getFormid();
//是否为单据
int isbill = RequestManager.getIsbill();
//获取数据库主表名
String tableName = RequestManager.getBillTableName();
String requestid = requestinfo.getRequestid();//请求ID
String requestlevel = requestinfo.getRequestlevel();//请求紧急程度
//当前操作类型 submit:提交/reject:退回
String src = requestinfo.getRequestManager().getSrc();
String workflowid = requestinfo.getWorkflowid();//流程ID
String tablename = requestinfo.getRequestManager().getBillTableName();//表单名称
int billid = requestinfo.getRequestManager().getBillid();//表单数据ID
User usr = requestinfo.getRequestManager().getUser();//获取当前操作用户对象
String requestname = requestinfo.getRequestManager().getRequestname();//请求标题
String remark = requestinfo.getRequestManager().getRemark();//当前用户提交时的签字意见
int nextnodeid =RequestManager.getNextNodeid();//获取下个节点id
int formid = requestinfo.getRequestManager().getFormid();//表单ID
int isbill = requestinfo.getRequestManager().getIsbill();//是否是自定义表单
//取主表数据
Map<String, String> mainTableDataMap = new HashMap<String, String>();
Property[] props = request.getMainTableInfo().getProperty();
for (int i = 0; i < props.length; i++) {
String fieldname = props[i].getName().toLowerCase();// 字段名转换为小写
String fieldval = Util.null2String(props[i].getValue());
mainTableDataMap.put(fieldname, fieldval);
}
//取明细数据
DetailTable[] detailtable = request.getDetailTableInfo().getDetailTable();// 获取所有明细表
if (detailtable.length > 0) {
for (int i = 0; i < detailtable.length; i++) {
DetailTable dt = detailtable[i];// 指定明细表
Row[] s = dt.getRow();// 当前明细表的所有数据,按行存储
for (int j = 0; j < s.length; j++) {
Row r = s[j];// 指定行
Cell c[] = r.getCell();// 每行数据再按列存储
for (int k = 0; k < c.length; k++) {
Cell c1 = c[k];// 指定列
String name = c1.getName();// 明细字段名称
String value = c1.getValue();// 明细字段的值
System.out.println(name + " " + value);
}
}
}
}
有问题交流 请加qq 1255605448