如何得到jBPM4.4中所有用户的信息
成長中的丫頭
2012-07-04
当然通过identityService的findUsers()可以得到用户的,通过user可以得到所在的组,但是我目前的问题是:如何得到membership表中的name字段,也就是 createMembership(String userId, String groupId, String role); 该语句执行时输入的role字段的值? identityService中好像只有user跟group类,没有Membership。怎么获得Membership呢? PS:现在系统只简单应用,所以直接使用了jbpm的用户表,只是想查到这个值,不想重新设计用户表。 |
|
guofengcn
2012-07-04
api里是没有提供Membership的,但是在pvm内部是有MembershipImpl这个类的,如果你想找出role这个属性,那需要你去扩展一个cmd了。
|
|
成長中的丫頭
2012-07-04
guofengcn 写道 api里是没有提供Membership的,但是在pvm内部是有MembershipImpl这个类的,如果你想找出role这个属性,那需要你去扩展一个cmd了。
刚开始弄,想问下是不是下面这样,模仿internal里面实现啊? public class IdentityServiceExtend extends IdentityServiceImpl{ public List<MembershipImpl> findMemberships() { System.out.println("IdentityServiceExtend"+commandService); return commandService.execute(new FindMembershipsCmd()); } } public class IdentitySessionExtend { protected Session session; public List<MembershipImpl> findMemberships() { List<?> memberships = session.createCriteria(MembershipImpl.class).list(); return CollectionUtil.checkList(memberships, MembershipImpl.class); } } public class FindMembershipsCmd implements Command<List<MembershipImpl>> { @Override public List<MembershipImpl> execute(Environment environment) throws Exception { // TODO Auto-generated method stub IdentitySessionExtend identitySession = environment.get(IdentitySessionExtend.class); System.out.println("FindMembershipsCmd.execute()"+identitySession.toString()); return identitySession.findMemberships(); } } commandService为null呢,这个应该怎么取,还是我完全理解错了? |
|
成長中的丫頭
2012-07-04
http://www.oecp.cn/hi/yangtaoorange/blog/4216
参考了这个,给后来人做参考吧,已经搞定了,我弄复杂了,谢谢guofengcn 提供思路 |
|
guofengcn
2012-07-05
一般情况下原生的API难免不够用,项目中都会扩展一个CustomService,执行的都是各种扩展是CMD,例如回退,会签,代理等等都需要自己去实现。
|
|
chenchuan
2012-07-06
个人建议,最好还是不要用jbpm自己提供的组织机构 ,提供相关服务接口给jbpm就好了
|