若依項目分模塊集成uflo2


關於若依分模塊創建項目可參考:https://www.cnblogs.com/conswin/p/9766186.html

了解uflo2,uflo2是一套由BSTEK自主研發的基於Java的工作流引擎,它以Spring為基礎框架,采用Hibernate作為持久層,可運行於所有主流程應用服務器及流數據庫之上的輕量級流程引擎。

其官方說明文檔可參看:http://wiki.bsdn.org/pages/viewpage.action?pageId=30441763

下面主要記錄一下若依項目中集成uflo2的具體步驟:

①、創建maven module項目取名為【ruoyi-uflo】,父項目選取若依的父項目,【ruoyi-uflo】的pom.xml中加入uflo依賴,如下所示,記得再將【ruoyi-uflo】依賴加入到【ruoyi-framework】中。

 

   <description>
        uflo2流程管理模塊
   </description>
   
   <properties>
        <uflo.version>2.1.4</uflo.version>
    </properties>

   <dependencies>
          <!-- uflo2依賴包-->
       <dependency>
            <groupId>com.bstek.uflo</groupId>
            <artifactId>uflo-console</artifactId>
            <version>${uflo.version}</version>
        </dependency>
       <!-- 通用工具-->
       <dependency>
           <groupId>com.ruoyi</groupId>
           <artifactId>ruoyi-common</artifactId>
           <version>${ruoyi.version}</version>
       </dependency>
   </dependencies>

 

②、按下圖所示,創建servletConfig、UfloConfig、TestEvnironmentProvide:

·      

       servletConfig具體代碼:

@Configuration
public class ServletConfig {
    @Bean
    public ServletRegistrationBean buildUfloServlet(){
        return new ServletRegistrationBean(new UfloServlet(),"/uflo/*");
    }
}

    UFloConfig具體代碼:

@Configuration
public class UfloConfig  {


    @Bean("localSessionFactoryBean")
    public LocalSessionFactoryBean localSessionFactoryBean(DataSource dataSource) throws
            PropertyVetoException, IOException {
        LocalSessionFactoryBean sessionFactoryBean = new LocalSessionFactoryBean();
        sessionFactoryBean.setDataSource(dataSource);
        sessionFactoryBean.setPackagesToScan("com.bstek.uflo.model*");
        Properties prop = new Properties();
        prop.put("hibernate.dialect","org.hibernate.dialect.MySQL5Dialect");
        prop.put("hibernate.show_sql",false);
        prop.put("hibernate.hbm2ddl.auto","update");
        prop.put("hibernate.jdbc.batch_size",100);
        sessionFactoryBean.setHibernateProperties(prop);

        return sessionFactoryBean;
    }


    @Bean("ufloTransactionManager")
    public HibernateTransactionManager ufloTransactionManager(SessionFactory sessionFactory){
        HibernateTransactionManager hi = new HibernateTransactionManager();
        hi.setSessionFactory(sessionFactory);
        return hi;
    }


}

   TestEvnironmentProvide具體代碼:

@Component
public class TestEnvironmentProvider implements EnvironmentProvider {
    @Autowired
    private SessionFactory sessionFactory;
    @Resource(name = "ufloTransactionManager")
    private PlatformTransactionManager platformTransactionManager;

    @Override
    public SessionFactory getSessionFactory() {
        return sessionFactory;
    }

    public void setSessionFactory(SessionFactory sessionFactory) {
        this.sessionFactory = sessionFactory;
    }

    @Override
    public PlatformTransactionManager getPlatformTransactionManager() {
        return platformTransactionManager;
    }

    public void setPlatformTransactionManager(PlatformTransactionManager platformTransactionManager) {
        this.platformTransactionManager = platformTransactionManager;
    }

    @Override
    public String getLoginUser() {
        return null;
    }

    @Override
    public String getCategoryId() {
        return "anonymous";
    }

}

③、打開ruoyi-admin的配置啟動類RuoYiApplication.java,導入uflo的配置文件,如下代碼:

@ImportResource("classpath:uflo-console-context.xml")

④、啟動若依,會自動在數據庫生成uflo相應的數據表,訪問:【待辦任務】http://localhost/uflo/todo 或者 【流程設計】http://localhost/uflo/designer來驗證是否集成成功。

 

⑤、部分問題解決策略

  a、通過流程設計頁面畫好流程圖進行發布部署時,會出現以下錯誤,導致部署失敗:

    

    解決辦法:在pom文件中添加5.0.12版本的hibernate依賴,記得先將倉庫里其他版本的刪除后再更新。或者將uflo版本改到2.0.2  就不需要管hibernate的版本了。

              我現在項目中用的是2.0.2版本,其他高的版本都會報以上錯誤,以上說的解決辦法嘗試了沒有用。

              在畫流程圖的時候,【會簽任務】在處理會簽任務完成規則時,如果選擇圖中設定,會導致發布失敗。

 

              解決辦法:打開對應流程模板的xml文件,比如你設定的是【完成指定任務數】為1,觀察xml中內容,你會發現xml中對應位置缺少了空格。

                               手動處理,加個空格即可。但這個修改后的xml不能在流程設計界面中發布,還是會報錯的。在流程中心界面,通過【上傳流程模板】按鈕選擇修改后的流程模板xml,進行發布即可。(滿滿的都是淚啊!!!)

  b、【待辦任務】頁面中【待領取任務】點擊后報錯,彈出系統錯誤問題:

              由於整個代碼中並沒有taskParticipators相關的代碼,導致報錯,目前無較好方法解決,可先屏蔽掉此功能。

參考文檔:https://blog.csdn.net/zh_yi/article/details/82423967#commentBox

感謝若依群里大牛【表面】、【難得糊塗】的技術支持。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM