springboot2.0+activiti 7 整合(四)--遇到的那些坑(一)

1、認(rèn)證問題

問題描述:

當(dāng)springboot2.0集成activiti7時(shí),activiti使用了身份認(rèn)證,集成后直接訪問報(bào)錯(cuò)如下:

{
    "timestamp": "2019-12-13T02:54:05.254+0000",
    "status": 401,
    "error": "Unauthorized",
    "message": "Unauthorized",
    "path": "/"
}

解決辦法:

啟動(dòng)類添加(排除認(rèn)證的自動(dòng)裝配):

@SpringBootApplication(exclude ={SecurityAutoConfiguration.class, ManagementWebSecurityAutoConfiguration.class})

2、json結(jié)果集不返回NULL問題

問題描述:

集成后,springMVC返回的json結(jié)果集排除了null字段,比如定義返回結(jié)果集{id,name},如果name==null,返回結(jié)果集如下:

{
    "id": 1,
}

去掉了name字段

解決辦法

在yml中添加(jackson可以控制json返回結(jié)果集是否顯示null字段):

  jackson:
    default-property-inclusion: always

3、流程發(fā)起人initiator賦值問題

問題描述

我想保存流程的發(fā)起人,網(wǎng)上的解決辦法是添加activiti:initiator的屬性賦值,實(shí)際就是插入'act_hi_procinst'中START_USER_ID_字段,但是activiti7中沒有identityService接口,所以額,identityService.setAuthenticatedUserId(``"zx"``);沒用,initiator沒法賦值。

解決辦法

1、新建表關(guān)聯(lián)流程(在用)

新建一張流程關(guān)聯(lián)的表,可以把流程中的自己業(yè)務(wù)流程所需的資源都帶上,比較靈活,降低與activiti的耦合,推薦。

2、直接手動(dòng)插入START_USER_ID_(理論)

理論上來講既然知道具體是那個(gè)表的字段了,可以根據(jù)processInstanceId手動(dòng)插入發(fā)起人。

3、其他

activiti7應(yīng)該有其他的解決方案,但是7的api一直沒找到,源碼看著頭疼,而且第一種個(gè)人認(rèn)為更適用于項(xiàng)目,整合之后就是分離獨(dú)立。

4、流程變量問題

問題描述

請(qǐng)假流程圖

如上圖請(qǐng)假流程圖,在網(wǎng)關(guān)位置有分支,變量為audit,測(cè)試流程如下:
不走分支流程(正常運(yùn)行):
開始->請(qǐng)假申請(qǐng)->領(lǐng)導(dǎo)審批->審核通過(賦值audit==1)->結(jié)束
走分支流程(循環(huán)運(yùn)行):
開始->請(qǐng)假申請(qǐng)->領(lǐng)導(dǎo)審批->審核不通過(賦值audit==0)->請(qǐng)假申請(qǐng)->領(lǐng)導(dǎo)審批->審核通過(賦值audit==1)->請(qǐng)假申請(qǐng)->...
當(dāng)?shù)谝淮钨x值audit之后,后面繼續(xù)使用taskService.complete(taskId,variables);賦值無法改變audit的值。

解決辦法

在調(diào)用complete前,通過setVariable進(jìn)行賦值

taskService.setVariable(taskId,"audit",audit);

原因在于act_ru_variable表,第一次在流程中賦值audit后,activiti認(rèn)為這是這個(gè)流程中的變量,會(huì)保存在act_ru_variable表中,因?yàn)閿?shù)據(jù)庫已經(jīng)存在相應(yīng)的字段,后面再使用taskService.complete(taskId,variables);無法改變值,只能setVariable

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容