1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關咨詢
      選擇下列產(chǎn)品馬上在線溝通
      服務時間:8:30-17:00
      你可能遇到了下面的問題
      關閉右側工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
      如何理解Activiti中的表單及應用

      本篇內(nèi)容主要講解“如何理解Activiti中的表單及應用”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“如何理解Activiti中的表單及應用”吧!

      成都創(chuàng)新互聯(lián)自成立以來,一直致力于為企業(yè)提供從網(wǎng)站策劃、網(wǎng)站設計、成都網(wǎng)站建設、網(wǎng)站建設、電子商務、網(wǎng)站推廣、網(wǎng)站優(yōu)化到為企業(yè)提供個性化軟件開發(fā)等基于互聯(lián)網(wǎng)的全面整合營銷服務。公司擁有豐富的網(wǎng)站建設和互聯(lián)網(wǎng)應用系統(tǒng)開發(fā)管理經(jīng)驗、成熟的應用系統(tǒng)解決方案、優(yōu)秀的網(wǎng)站開發(fā)工程師團隊及專業(yè)的網(wǎng)站設計師團隊。

      Activiti中的表單

      • Activiti提供了一種方便而且靈活的方式在業(yè)務流程中以手工方式添加表單

      • 對表單的支持有2種方式:

        • 通過表單屬性對內(nèi)置表單進行渲染

        • 通過表單屬性對外置表單進行渲染

      表單屬性

      • 業(yè)務流程相關聯(lián)的所有信息:

        • 包含自身的流程變量

        • 通過流程變量的引用

      • Activiti支持存儲復雜的Java對象作為流程變量:

        • 序列化對象

        • Jpa實體對象

        • 整個XML文檔作為字符串

      • 用戶是在啟動一個流程和完成用戶任務時,與流程進行交互

      • 表單需要某個UI技術渲染之后才能夠與用戶進行交互

      • 為了能夠使用不同UI技術變得容易,流程定義包含一個對流程變量中復雜的Java類型對象到一個propertiesMap類型的轉換邏輯

      • 使用Activiti API的方法查看公開的屬性信息.然后,任意UI技術都能夠在這些屬性上面構建一個表單.該屬性專門為流程變量提供了一個視圖.表單所需要顯示的屬性可以返回值FormData中獲取:

      StartFormData FormService.getStartFormData(String processDefinitionId)

      或者

      TaskFormdata FormService.getTaskFormData(String taskId)
      • 在默認情況下,內(nèi)置的表單引擎遇到這些變量就像對待流程變量一樣.如果任務表單屬性和流程變量是一對一的關系,那么任務表單屬性就不需要進行申明了:

      • 當執(zhí)行到開始事件時,所有的流程變量都是可用的,但是

      formService.getStartFormData(String processDefinitionId).getFormProperties()

      會是一個空值,因為沒有定義一個具體的映射

      • 表單中所有被提交的屬性都將會作為流程變量被存儲在Activiti使用的數(shù)據(jù)庫中.這意味著在一個表單中新添加一個簡單的input輸入字段,也會作為一個新的變量被存儲

      • 屬性來自于流程變量,但是不一定非要作為流程變量存儲:

        • 一個流程變量可能是JPA實體如類Address.在某種UI技術中使用的表單屬性StreetName可能會關聯(lián)到一個表達式 #{address.street}

      • 用戶提交的表單屬性應該作為流程變量進行存儲

      • 使用UEL值表達式將其作為流程變量的一個嵌套屬性進行存儲

      • 提交的表單屬性默認的行為是作為流程變量進行存儲,除非一個 formProperty 申明了其他的規(guī)則

      • 類型轉換也可以應用于表單數(shù)據(jù)和流程變量之間的處理:

      
        
          
          
          
          
        
      
      • 表單屬性room將會被映射為String類型流程變量room

      • 表單屬性duration將會被映射為java.lang.Long類型流程變量duration

      • 表單屬性speaker將會被映射為流程變量SpeakerName:

        • writable="false"只能夠在TaskFormData對象中使用.如果屬性speaker提交,將會拋出一個ActivitiException的異常

        • readable="false"該屬性就會在FormData進行排除,但是在提交后仍然會對其進行處理

      • 表單屬性street將會映射為Java Bean address的屬性street作為String類型的流程變量:

        • 當提交的表單屬性并沒有提供并且required="true"時,那么就會拋出一個異常

      • 表單數(shù)據(jù)也可以作為FormData的一部分提供類型元數(shù)據(jù).該FormData可以從以下方法的返回值中獲取:

      StartFormData FormService.getStartFormData(String processDefinitionId)
      TaskFormdata FormService.getTaskFormData(String taskId)
      • 表單屬性類型:

        • string:org.activiti.engine.impl.form.StringFormType

        • long:org.activiti.engine.impl.form.LongFormType

        • enum:org.activiti.engine.impl.form.EnumFormType

        • date:org.activiti.engine.impl.form.DateFormType

        • boolean:org.activiti.engine.impl.form.BooleanFormType

      • 對于聲明每一個表單屬性,FormProperty信息可以通過以下方式獲取:

      List formService.getStartFormData(String processDefinitionId).getFormProperties()

      或者

      List formService.getTaskFormData(String taskId).getFormProperties()


      public interface FormProperty {
        /**
      
        the key used to submit the property in {@link FormService#submitStartFormData(String, java.util.Map)}
         * or {@link FormService#submitTaskFormData(String, java.util.Map)} */
        String getId();
        /** the display label */
        String getName();
        /** one of the types defined in this interface like e.g. {@link #TYPE_STRING} */
        FormType getType();
        /** optional value that should be used to display in this property */
        String getValue();
        /** is this property read to be displayed in the form and made accessible with the methods
         * {@link FormService#getStartFormData(String)} and {@link FormService#getTaskFormData(String)}. */
        boolean isReadable();
        /** is this property expected when a user submits the form? */
        boolean isWritable();
        /** is this property a required input field */
        boolean isRequired();
      }
      • 示例:

      
        
          
      
          
      
          
            
            
            
            
          
      
        
      
      • 所有的表單屬性的信息都是可以通過API進行訪問的:

        • formProperty.getType().getName():獲取類型的名稱

        • formProperty.getType().getInformation("datePattern"):獲取日期的匹配方式

        • formProperty.getType().getInformation("values"):可以獲取到枚舉值

      • Activiti控制臺支持表單屬性并且可以根據(jù)表單定義對表單進行渲染:

      
        
          
          
          
        
      

      當使用Activiti控制臺時,會被渲染成流程的啟動表單

      外置表單的渲染

      • Activiti中的API允許執(zhí)行Activiti流程引擎之外的方式渲染任務表單,可以用自定義方式對任務表單進行渲染

      • 所有需要渲染的表單屬性進行裝配的服務方法有兩種:

        • StartFormData FormService.getStartFormData(String processDefinitionId)

        • TaskFormdata FormService.getTaskFormData(String taskId)

      • 表單屬性提交的兩種方式:

        • ProcessInstance FormService.submitStartFormData(String processDefinitionId, Map properties)

        • void FormService.submitStartFormData(String taskId, Map properties)

      • 可以將任何表單模版資源放進要部署的業(yè)務文檔之中(如果想要按照流程的版本進行存儲).將會在部署中作為一種可用的資源

      • 獲取部署表單模版的方式有兩種:

        • String ProcessDefinition.getDeploymentId()

        • InputStream RepositoryService.getResourceAsStream(String deploymentId, String resourceName)

        • 這樣就可以獲取表單模版定義文件,就可以在應用中渲染或者顯示表單

      • 也可以使用該功能獲取任務表單之外的其他的部署資源用于其他的目的

      • 屬性 暴露方式API:

        • String FormService.getStartFormData(String processDefinitionId).getFormKey()

        • String FormService.getTaskFormData(String taskId).getFormKey()

      • 可以使用這個存儲部署的模版中的全名(例如org/activiti/example/form/my-custom-form.xml)但是這并不是必須的:

        • 使用正常屏幕大小的web應用程序的表單

        • 移動手機小屏幕的表單

        • IM表單

        • email表單模版

        • 可以在表單屬性中存儲一個通用的key,然后運用一種算法或者換轉去得到你實際使用的模版

        • 當需要通過不同UI技術渲染不同的表單會更加方便:

      到此,相信大家對“如何理解Activiti中的表單及應用”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關內(nèi)容可以進入相關頻道進行查詢,關注我們,繼續(xù)學習!


      文章名稱:如何理解Activiti中的表單及應用
      網(wǎng)頁鏈接:http://www.ef60e0e.cn/article/jddspd.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
        1. <ul id="0c1fb"></ul>

          <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
          <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

          湟中县| 从江县| 九江市| 普格县| 巴塘县| 广宁县| 封开县| 东安县| 岢岚县| 忻城县| 九龙坡区| 沈阳市| 合肥市| 郸城县| 定州市| 平昌县| 黔江区| 乌审旗| 南澳县| 岱山县| 沙河市| 惠东县| 上杭县| 汉源县| 高雄县| 连山| 馆陶县| 汽车| 株洲市| 杭锦旗| 益阳市| 洛阳市| 万山特区| 呼和浩特市| 永年县| 斗六市| 芒康县| 平南县| 屯门区| 华容县| 湘潭市|