本帖最后由 Jarod 于 2014-7-15 17:42 编辑
function createUser(name, loginno, loginpwd, email, status, telephone, deptname, rolename, levels,DIMISSION) {
var domainid = getDomainid(); //域id
// DIMISSION = '1'; //用户的在离职状态。“1”为在职。“0”为离职
var deptvo = new Packages.cn.myapps.core.department.ejb.DepartmentProcessBean; //实例化部门业务操作类
var dept = deptvo.getDepartmentByName(deptname, domainid); //返回部门对象集合
var rnt = "";
var find = 0;
for (var it = dept.iterator(); dept != null && it.hasNext();) { //遍历部门对象集合,用户获取部门id
var dep = it.next();
rnt = dep.getId(); //获取部门id
var jb = dep.getLevel();
if (jb == levels) {
find = 1;
break;
}
}
var u = new Packages.cn.myapps.core.user.ejb.UserVO; //实例化一个用户对象
u.setName(name); //设置用户名称
u.setLoginno(loginno); //设置用户登录账号
u.setLoginpwd(loginpwd); //设置密码
u.setEmail(email);
u.setStatus(status);
u.setDomainid(domainid);
u.setTelephone(telephone);
u.setDefaultDepartment(rnt);
u.setDimission(DIMISSION);
var uprocess = getUserProcess(); //实例化一个用户操作类
uprocess.createUser(u); //创建一个用户
var user =getUserByLoginno(loginno,getDomainid()); //获取用户对象
// var rolename = "机构销售经理"; //角色名称
var roleid = getRoleIdByName(rolename); //获取角色id
var users = new Array(); //实例化一个数组,用来存放用户id
users[0] = user.getId(); //将用户id存进数组
uprocess.addUserToDept(users, rnt); //为用户添加部门
uprocess.addUserToRole(users, roleid); //为用户赋角色
}
用上面的方法添加用户出现以下错误:
org.mozilla.javascript.EcmaError: TypeError: Cannot call method "setDimission" of null (toolLib#54)
at org.mozilla.javascript.ScriptRuntime.constructError(Unknown Source)
at org.mozilla.javascript.ScriptRuntime.constructError(Unknown Source)
at org.mozilla.javascript.ScriptRuntime.typeError(Unknown Source)
at org.mozilla.javascript.ScriptRuntime.typeError2(Unknown Source)
at org.mozilla.javascript.ScriptRuntime.undefCallError(Unknown Source)
at org.mozilla.javascript.ScriptRuntime.getPropFunctionAndThis(Unknown Source)
因为操作了dimission这个字段才能正常登陆,可是现在提示setDimission这个方法用不了,更新不了这个字段的话,创建的用户就无法正常登陆,求解 |