什么是工作流内置用户组,如何实现?
发布日期:2010-4-10 信息来源:http://www.chysoft.net

一、实现描述
也称之为“动态角色”,内置用户组一般和当前用户的身份或数据的状态有关,如:部门负责人,返回的是当前用户的负责人;任务发送者,返回的是上一个发送任务的用户。
内置用户组的添加需要通过代码开发实现扩展,基本步骤如下:
1、开发实现net.sysplat.common. I_NativeGroup接口的java类
2、手工在数据表nativegroupdefine_sys中添加一条记录
 GroupId:为负数,-1到-9为系统保留
 Name:内置用户组的名称
 ClassName:1中开发的Java类的全名
 Status:状态,1为启用
3、在工作流任务中许可使用
 
二、代码示例
package net.sysplat.common.imp;

import java.sql.Connection;
import java.util.ArrayList;
import net.sysplat.admin.eo.User;
import net.sysplat.admin.manager.UserGroupManager;
import net.sysplat.common.I_NativeGroup;
import net.sysplat.common.Operator;
import net.sysplat.common.Util;

/**
 * 动态角色,选择部门负责人
 */
public class OrganizePrincipal implements I_NativeGroup
{
 /**
  * 参数或条件,设置最高的级数
  */
 private String parameter = null;
 private Connection conn = null;
 /**
返回的是一个ArrayList,其中包含的是net.sysplat.admin.eo.User的实例
 **/
 public ArrayList getGroupMembers(int gId, String insId, Operator operator) throws Exception
 {
  //使用承元的资源管理接口读取部门负责人
  int level = 1;
  if(parameter != null && Util.isInteger(parameter)) level = Integer.parseInt(parameter);
  UserGroupManager ugm = UserGroupManager.getInstance();
  ugm.setConnection(conn);
  User user = ugm.getOrganizePrincipal(operator.getOrganizeId(), level);
  //可以考虑使用参数进行控制,限制层数
  if(user != null)
  {
ArrayList list = new ArrayList();
list.add(user); 
return list;
  }
  
  return null;
 }

 public void setParameter(String parameter)
 {
  this.parameter = parameter;
 }

 public void setConnection(Connection conn)
 {
  this.conn = conn;
 }
}

粤ICP备11095012号-1
Copyright 2005-2017 深圳市承元软件技术有限公司