国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

activiti需要用戶信息嗎?

feng409 / 2845人閱讀

摘要:但是在后面的使用過程中發(fā)現(xiàn)完全可以在沒有用戶信息的情況下運(yùn)行,我們可以指派表中根本不存在的用戶或組給一個(gè),然后使用查詢這個(gè)。經(jīng)過觀察后發(fā)現(xiàn),的,,信息只是以字符串形式保存在和表中,更進(jìn)一步證實(shí)了我的想法。

在剛接觸流程引擎Activiti的時(shí)候誤以為必須得使用它所提供的用戶管理,而一般來說在業(yè)務(wù)系統(tǒng)里本身就自帶了一套用戶管理,于是就去尋找同步用戶數(shù)據(jù)到Activiti的ACT_ID_*表中方法,找到了這篇文章。

但是在后面的使用過程中發(fā)現(xiàn)Activiti完全可以在沒有用戶信息的情況下運(yùn)行,我們可以指派ACT_ID_*表中根本不存在的用戶或組給一個(gè)Task,然后使用TaskService查詢這個(gè)Task。可以看Activiti論壇的這個(gè)回答。

經(jīng)過觀察后發(fā)現(xiàn),Task的Assignee,Candidate Users,Candidate Groups信息只是以字符串形式保存在act_ru_takACT_RU_IDENTITYLINK表中,更進(jìn)一步證實(shí)了我的想法。

不過事情有一些例外,Activiti實(shí)際上在查詢Task的時(shí)候,在某些情況下還是使用了ACT_ID_*表中的數(shù)據(jù),下面總結(jié)了出來。

taskCandidateOrAssigned
taskService.createTaskQuery().taskCandidateOrAssigned(userId);

當(dāng)使用taskCandidateOrAssigned做查詢條件時(shí),Activiti會(huì)按照以下規(guī)則查找Task:

Assignee匹配

或者*.bpmn中定義的Candidate Users 匹配

或者Candidate Group 匹配(用戶所屬用戶組的信息從Activiti的ACT_ID_*表獲?。?/p>

可以從以下SQL看出它查找的邏輯:

select distinct RES.* from ACT_RU_TASK RES
left join ACT_RU_IDENTITYLINK I on I.TASK_ID_ = RES.ID_
WHERE (
  RES.ASSIGNEE_ = ?
  or (
    RES.ASSIGNEE_ is null
    and (
      I.USER_ID_ = ?
      or
      I.GROUP_ID_ IN (
        select g.GROUP_ID_ from ACT_ID_MEMBERSHIP g where g.USER_ID_ = ?
      )
    )
  )
)
taskAssignee
taskService.createTaskQuery().taskAssignee(userId);

當(dāng)使用taskAssignee做查詢條件時(shí),Activiti會(huì)按照以下規(guī)則查找Task:

Assignee匹配??梢詮囊韵耂QL看出它查找的邏輯:

select distinct RES.* from ACT_RU_TASK RES WHERE RES.ASSIGNEE_ = ?

taskCandidateGroup
taskService.createTaskQuery().taskCandidateGroup(userId);

當(dāng)使用taskCandidateGroup做查詢條件時(shí),Activiti會(huì)按照以下規(guī)則查找Task:

*.bpmn中定義的Candidate Groups匹配??梢詮囊韵耂QL看出它查找的邏輯:

select distinct RES.* from ACT_RU_TASK RES
inner join ACT_RU_IDENTITYLINK I on I.TASK_ID_ = RES.ID_
WHERE RES.ASSIGNEE_ is null
and I.TYPE_ = "candidate"
and ( I.GROUP_ID_ IN ( ? ) )

taskCandidateUser
taskService.createTaskQuery().taskCandidateUser(userId);

當(dāng)使用taskCandidateUser做查詢條件時(shí),Activiti會(huì)按照以下規(guī)則查找Task:

先查找用戶所屬的組(用戶所屬用戶組的信息從Activiti的ACT_ID_*表獲?。?/p>

select g.* from ACT_ID_GROUP g, ACT_ID_MEMBERSHIP membership
where g.ID_ = membership.GROUP_ID_
and membership.USER_ID_ = ?

如果找到了用戶組信息,那么

*.bpmn中定義的Candidate Users 匹配

或者Candidate Group 匹配(用戶所屬用戶組的信息從Activiti的ACT_ID_*表獲?。?/p>

select distinct RES.* from ACT_RU_TASK RES
inner join ACT_RU_IDENTITYLINK I on I.TASK_ID_ = RES.ID_
WHERE RES.ASSIGNEE_ is null
and I.TYPE_ = "candidate"
and ( I.USER_ID_ = ? or I.GROUP_ID_ IN ( ? , ? ) )

如果找不到用戶所屬的組,那么和*.bpmn中定義的Candidate Users 匹配

select distinct RES.* from ACT_RU_TASK RES
inner join ACT_RU_IDENTITYLINK I on I.TASK_ID_ = RES.ID_
WHERE RES.ASSIGNEE_ is null
and I.TYPE_ = "candidate"
and ( I.USER_ID_ = ? )

taskCandidateGroupIn
taskService.createTaskQuery().taskCandidateGroupIn(groups);

當(dāng)使用taskOwner做查詢條件時(shí),Activiti會(huì)按照以下規(guī)則查找Task:

*.bpmn中定義的Candidate Groups匹配(匹配一個(gè)就行)。可以從以下SQL看出它查找的邏輯:

select distinct RES.* from ACT_RU_TASK RES
inner join ACT_RU_IDENTITYLINK I on I.TASK_ID_ = RES.ID_
WHERE RES.ASSIGNEE_ is null
and I.TYPE_ = "candidate"
and ( I.GROUP_ID_ IN ( ? , ? ) )

taskOwner
taskService.createTaskQuery().taskOwner(userId);

當(dāng)使用taskOwner做查詢條件時(shí),Activiti會(huì)按照以下規(guī)則查找Task:

*.bpmn中定義的owner匹配??梢詮囊韵耂QL看出它查找的邏輯:

select distinct RES.* from ACT_RU_TASK RES
WHERE RES.OWNER_ = ?

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/64918.html

相關(guān)文章

  • 01.Android之基礎(chǔ)組件問題

    摘要:此時(shí)再次旋轉(zhuǎn)屏幕時(shí),該不會(huì)被系統(tǒng)殺死和重建,只會(huì)調(diào)用。因此可通過和來判斷是否被重建,并取出數(shù)據(jù)進(jìn)行恢復(fù)。但需要注意的是,在取出數(shù)據(jù)時(shí)一定要先判斷是否為空。只有在進(jìn)程不被掉,正常情況下才會(huì)執(zhí)行方法。 目錄介紹 1.0.0.1 說下Activity的生命周期?屏幕旋轉(zhuǎn)時(shí)生命周期?異常條件會(huì)調(diào)用什么方法? 1.0.0.2 后臺(tái)的Activity被系統(tǒng)回收怎么辦?說一下onSaveInsta...

    iamyoung001 評(píng)論0 收藏0
  • Android Q 開發(fā)者最常見問題

    摘要:安裝與測(cè)試的流程也是用了的機(jī)制而不會(huì)受到影響。其他提供自定義類加載器的公有,是不是意味著對(duì)于熱修復(fù)或者插件化將有官方的支持我們按照開發(fā)者的反饋,將部分合理的常用非接口以新的取代。而熱修復(fù)或者插件化皆違反政策,是不容許的。showImg(https://user-gold-cdn.xitu.io/2019/5/17/16ac450a4b6e13b5); Device ID Q: 預(yù)裝應(yīng)用可以獲...

    FuisonDesign 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

feng409

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<