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

Posted on October 5, 2023 • 1 min read • 128 words
Share via

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

我們今天把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

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

Follow me

I work on everything coding and tweet developer memes