在集成Activiti的的过程中账户组数据同步是一难题,有很多人提供了几个方案,目前最最省力的方案我认为是创建视图覆盖同名的 ACT_ID_ 系列表,这样直接对接到自己的系统,而不用单独维护Acitivi账户组数据。
如下面是自身的业务表,
|
|
|
删除表act_id_*
DROP
TABLE
`act_id_membership`;
DROP
TABLE
`act_id_group`;
DROP
TABLE
`act_id_user`;
创建视图
-- 用户视图
CREATE OR REPLACE VIEW act_id_user
AS
SELECT u.username AS ID_,0 AS REV_,u.username AS FIRST_,'' AS LAST_,u.email AS EMAIL_,u.`password` AS PWD_,'' as PICTURE_ID_
FROM sys_user u;
-- 角色实体
CREATE OR REPLACE VIEW act_id_group
AS
SELECT r.role_name AS ID_,NULL AS REV_,r.role_name AS NAME_,'assignment' AS TYPE_
FROM sys_role r;
-- 用户-角色对应视图
CREATE OR REPLACE VIEW act_id_membership
AS
SELECT u.username AS USER_ID_, r.role_name AS GROUP_ID_
FROM sys_user_role ur
LEFT JOIN sys_user u ON u.id=ur.user_id
LEFT JOIN sys_role r on r.id=ur.role_id;
最后,我们要在配置中修改一下,
a.springboot
|
b. springmvc
<bean class="org.activiti.spring.SpringProcessEngineConfiguration" id="processEngineConfiguration">
<property ref="false" name="isDbIdentityUsed"></property>
</bean>