iT邦幫忙

2023 iThome 鐵人賽

DAY 21
0
IT管理

Camunda征服「流程管理」,解放時間系列 第 21

「DAY21」表單簽核模組設計與實作(三)

  • 分享至 

  • xImage
  •  

我們今天把camunda啟動起來,並且將程式搭建起來。

表單製作

我們在「填寫表單」這邊要新增一個表單。

https://ithelp.ithome.com.tw/upload/images/20231005/20163254XgNVLcwvTC.png

我們先新增camunda 7的Form

https://ithelp.ithome.com.tw/upload/images/20231005/20163254m8dxiiNnB2.png

取名為「fillForm」。

https://ithelp.ithome.com.tw/upload/images/20231005/20163254Fi3OyqKLxG.png

我們要達成的目標如下:

https://ithelp.ithome.com.tw/upload/images/20231005/20163254boExH5Z1dA.png

從左邊拖曳text field到表單中。

https://ithelp.ithome.com.tw/upload/images/20231005/20163254VLUyDmrXdy.png

在「Genetal」中填入以下參數

https://ithelp.ithome.com.tw/upload/images/20231005/20163254OHnWTkSOB2.png

在「Validation」中填入以下參數

https://ithelp.ithome.com.tw/upload/images/20231005/201632544byzGfaolQ.png

從左邊在拖曳一個text field到表單中。

https://ithelp.ithome.com.tw/upload/images/20231005/20163254LPnx4jsnSM.png

在「Genetal」中填入以下參數

https://ithelp.ithome.com.tw/upload/images/20231005/20163254p5r9I0Y3A0.png

接著我們點擊空白處

https://ithelp.ithome.com.tw/upload/images/20231005/20163254bCrtNjjgXh.png

我們將「form」的ID設定為「Form_itcamp」。

https://ithelp.ithome.com.tw/upload/images/20231005/20163254JxRtjSo9yk.png

回到「main.bpmn」,並點選「填寫表單」。

https://ithelp.ithome.com.tw/upload/images/20231005/201632541SYR86kMOc.png

在配置相中,填入以下參數。

https://ithelp.ithome.com.tw/upload/images/20231005/2016325429POcNoLW8.png

編寫程式

我們打開IDEA my-project

https://ithelp.ithome.com.tw/upload/images/20231005/201632542YoBzulNZO.png

新增一個package [com.example.form_IntegrityCheck]

https://ithelp.ithome.com.tw/upload/images/20231005/20163254Z1zns6zttE.png

在package [com.example.form_IntegrityCheck]底下新增一個class [Form_IntegrityCheck]

https://ithelp.ithome.com.tw/upload/images/20231005/20163254CJPbIdRepw.png

將底下這段程式碼複製貼上

package com.example.form_IntegrityCheck;

import org.camunda.bpm.engine.delegate.DelegateExecution;
import org.camunda.bpm.engine.delegate.JavaDelegate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import java.util.logging.Logger;

@Component("Form_IntegrityCheck")
public class Form_IntegrityCheck implements JavaDelegate{
    private final Logger LOGGER = Logger.getLogger(Form_IntegrityCheck.class.getName());
    @Override
    public void execute(DelegateExecution execution)throws Exception{
        LOGGER.info("checking form....... ");

        boolean isFormComplete = checkRequestIntegrity(execution);
        System.out.println(isFormComplete);
        LOGGER.info("Is Complete?"+isFormComplete);

        execution.setVariable("isFormComplete", isFormComplete);

        if (!isFormComplete){
            execution.setVariable("declineMessage", "Form isn't Complet ,Plesase check again~");
        }
    }

    private boolean checkRequestIntegrity(DelegateExecution execution) {
        String id = (String) execution.getVariable("id");
        String name = (String) execution.getVariable("name");
        LOGGER.fine(id + ": " + name);
        return id != null && !id.isEmpty() && name != null && !name.isEmpty();
    }

}

我們回到BPMN,點選「檢查申請完整性」。

https://ithelp.ithome.com.tw/upload/images/20231005/20163254LK18lCQWVQ.png

將以下配置填入。

https://ithelp.ithome.com.tw/upload/images/20231005/20163254bD2Rvr7Cv5.png

接著,我們將「main.bpmn」放在「src/main/resources」,「fillForm.form」放在「src/main/resources/forms」。

https://ithelp.ithome.com.tw/upload/images/20231005/20163254718nsSth51.png

接著啟動

https://ithelp.ithome.com.tw/upload/images/20231005/20163254pJ8MYfdMun.png

進入網頁

請打開瀏覽器輸入

localhost:8090

帳號密碼皆為demo/demo

我們到「tasklist」起一個流程。

https://ithelp.ithome.com.tw/upload/images/20231005/20163254nKwGmApMed.png

直接按「start」

https://ithelp.ithome.com.tw/upload/images/20231005/20163254mKRc9YNpN1.png

就可以看到流程出來囉

https://ithelp.ithome.com.tw/upload/images/20231005/201632545VAxtMTrOC.png

我們明天來驗證這個流程是不是有問題,要怎麼修正。

如果有任何問題,歡迎在下方留言!! 筆者頭一回寫技術文,如果內容有誤,或者內容的呈現上有所缺陷,如果您願意,歡迎在下方留言給我呦~~

anything.best

這是我的部落格,歡迎點擊閱覽喔~~會不定期更新文章


上一篇
「DAY20」表單簽核模組設計與實作(二)
下一篇
「DAY22」Camunda流程測試
系列文
Camunda征服「流程管理」,解放時間30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言