泛微Oa系统自定义接口的代码实现
之前实现遇到问题,欢迎交流。
package weaver.interfaces.formmode.action;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import weaver.general.BaseBean;
import weaver.general.Util;
import weaver.interfaces.workflow.action.Action;
import weaver.soa.workflow.request.Cell;
import weaver.soa.workflow.request.DetailTable;
import weaver.soa.workflow.request.Property;
import weaver.soa.workflow.request.RequestInfo;
import weaver.soa.workflow.request.Row;
public class ModeDemoAction extends BaseBean implements Action {
private Log log= LogFactory.getLog(ModeDemoAction.class.getName());
private String p1; // 自定义参数1
private String p2; // 自定义参数2
public String getP1() {
return p1;
}
public void setP1(String p1) {
this.p1 = p1;
}
public String getP2() {
return p2;
}
public void setP2(String p2) {
this.p2 = p2;
}
public Log getLog() {
return log;
}
public void setLog(Log log) {
this.log = log;
}
public String execute(RequestInfo
request) {
String id = request.getRequestid();//建模数据ID
String modeid = request.getWorkflowid();// 建模模块ID
StringCreatorid= request.getCreatorid();//创建人id
StringLastoperator= request.getLastoperator();//当前操作者id
log.info("id:"+id+" modeid:"+modeid);
System.out.println("id:"+id+" modeid:"+modeid);
//取主表数据
Property[] properties = request.getMainTableInfo().getProperty();// 获取表单主字段信息
for (int i = 0; i <
properties.length; i++) {
String name = properties[i].getName();// 主字段名称
String value = Util.null2String(properties[i].getValue());// 主字段对应的值
System.out.println(name + " " + value);
log.info(name + "
" + value);
}
// 取明细数据
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);
log.info(name + " " + value);
}
}
}
}
return Action.SUCCESS;
}
}