平台默认在BIZ层的组织机构函数中提供了根据角色ID和角色Code获取相关组织的函数如下:
findOrgUnitsHasRole(String roldID, Object inOrg, Boolean isPersonMember) 获取拥有某个角色的组织单元 findOrgUnitsHasRole('角色ID', '', true) findOrgUnitsHasRole('角色ID', currentOgnID(), false) 参数:String roldID 角色ID Object inOrg 组织单元所在的组织, 允许三种情况: 空值, 表示不限制范围; 单个组织单元ID或FID(String类型); 多个组织单元ID或FID(String类型)形成的List; Boolean isPersonMember 是否取到人员成员 返回:List<OrgUnit>
findOrgUnitsHasRoleByCode(String roldCode, Object inOrg, Boolean isPersonMember) 获取拥有某个角色的组织单元 findOrgUnitsHasRoleByCode('角色code', '', true) findOrgUnitsHasRoleByCode('角色code', currentOgnID(), false 参数:String roldCode 角色的code Object inOrg 组织单元所在的组织, 允许三种情况: 空值, 表示不限制范围; 单个组织单元ID或FID(String类型); 多个组织单元ID或FID(String类型)形成的List; Boolean isPersonMember> 是否取到人员成员 返回:List<OrgUnit>
这两个函数的实现分别调用的是的OrgUtils.findOrgUnitsHasRoleByCode(roleCode, inOrg, isPersonMember);
和OrgUtils.findOrgUnitsHasRole(roleID, inOrg, isPersonMember);实现的,因此如果需要在action中根据角色获取组织的时候可以直接调用这两个API
如下是通过角色code获取拥有该角色的人员名称
action定义的java代码
public static void findPersonByRole(String roleCode){ List<OrgUnit> orgUtils = OrgUtils.findOrgUnitsHasRoleByCode(roleCode, null, true); for (OrgUnit person : orgUtils) { String fid = person.getFID();//获取人员成员sFID的值 String fname = person.getFName();//获取人员成功sFName的值 OrgUtils.getPersonNameByFName(fid, fname);//通过sFID和sFName或者人员名称sName } }
js中调用action,并传入roleCode
Model.prototype.button8Click = function(event) { var roleCodes = this.getContext().getAllRoleCodes();// 获取操作者的所有角色的编码 var params = new biz.Request.ActionParam(); params.setString("roleCode", roleCodes[0]);// 给调用的action中的参数赋值 biz.Request.sendBizRequest({ context : this.getContext(), dataType : "json", action : "findPersonByRoleAction", parameters : params, callback : function(result) { if (result.state) { alert("调用成功"); } else { throw new Error("调用失败!|" + result.response.message); } } }); };
评一波