1. 程式人生 > >關於專案管理系統 activiti工作流開發

關於專案管理系統 activiti工作流開發

最近開發專案管理系統,專案最近開發完畢,分享一些系統用到的東西,也算一個總結,系統用到了管理系統的常用的審批流程  並且在審批流程中自己控制流程走向。該專案管理系統基於Spring+spring mvc+mybatis .

spring-activiti.xml spring整合acitiviti

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:context="http://www.springframework.org/schema/context"
xmlns:p="http://www.springframework.org/schema/p" 
xsi:schemaLocation="http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<description>activiti工作流配置檔案</description>

<!-- 自動掃描且只掃描@Controller -->
<context:component-scan base-package="org.activiti.rest.editor,org.activiti.rest.diagram">
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller" />
</context:component-scan>

<!-- 自動掃描且只掃描@Controller-->
<context:component-scan base-package="org.activiti.rest">
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller" />
</context:component-scan> 
 

<!-- 整合REST服務需要的bean -->
    <bean id="restResponseFactory" class="org.activiti.rest.service.api.RestResponseFactory" />
    <bean id="contentTypeResolver" class="org.activiti.rest.common.application.DefaultContentTypeResolver" />


<!-- 單例json物件 -->
    <bean id="objectMapper" class="com.fasterxml.jackson.databind.ObjectMapper"/>


    <!-- 引擎內部提供的UUID生成器,依賴fastxml的java-uuid-generator模組 -->
    <bean id="uuidGenerator" class="org.activiti.engine.impl.persistence.StrongUuidGenerator" />


<!-- <context:property-placeholder location="classpath*:/config/config.properties" />
--> 
<!-- 建立一個流程引擎的配置物件 -->
<bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration">
   <property name="dataSource" ref="dataSource" />
   <property name="transactionManager" ref="transactionManager" />
   <!-- 設定資料庫schema的更新方式 -->
   <property name="databaseSchemaUpdate" value="true" />
   <!-- <property name="databaseSchema" value="ACT"/> -->
   <!-- 是否啟動jobExecutor -->
   <property name="jobExecutorActivate" value="false" />
   
   <!-- 從5.12版本開始支援設定字型名稱,把字改為本地的中文字型即可 -->
   <!-- 生成流程圖的字型 -->
       <!--  <property name="activityFontName" value="${diagram.activityFontName}"/>
        <property name="labelFontName" value="${diagram.labelFontName}"/> -->
        <property name="activityFontName" value="宋體"/>
<property name="labelFontName" value="宋體"/>
   <!-- 自動資源部署 -->
   <property name="deploymentResources" value="classpath*:/diagrams/my/leave.bpmn" />
   <!-- 取消系統自帶的使用者系統  -->
   <property name="dbIdentityUsed" value="false"/>  
   <!-- 開啟全域性事件日誌功能  -->
  <!--  <property name="enableDatabaseEventLogging" value="true"/>   -->
   
 </bean>
 
<!-- 建立一個流程引擎bean -->
<bean id="processEngine" class="org.activiti.spring.ProcessEngineFactoryBean">
   <property name="processEngineConfiguration" ref="processEngineConfiguration" />
</bean>

<!-- 建立activiti提供的各種服務 -->
  <!-- 工作流倉儲服務 -->
  <bean id="repositoryService" factory-bean="processEngine" factory-method="getRepositoryService" />
  <!-- 工作流執行服務 -->
  <bean id="runtimeService" factory-bean="processEngine" factory-method="getRuntimeService" />
  <!--  工作流任務服務-->
  <bean id="taskService" factory-bean="processEngine" factory-method="getTaskService" />
  <!--  工作流歷史資料服務-->
  <bean id="historyService" factory-bean="processEngine" factory-method="getHistoryService" />
  
  <!--  工作流管理服務-->
  <bean id="managementService" factory-bean="processEngine" factory-method="getManagementService" />
  <!-- 工作流唯一服務 -->
  <bean id="identityService" factory-bean="processEngine" factory-method="getIdentityService" />
   <!-- 表單服務 -->
  <bean id="formService" factory-bean="processEngine" factory-method="getFormService" />



</beans>

專案審批流程圖  流程圖需要自己在編輯器中整合activiti外掛


其中  會籤環節中會有多人會籤,多人同步會籤,一人不通過退回至審批發起人相關配置

<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:activiti="http://activiti.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://www.activiti.org/test">
  <process id="checkProjectProcess" name="My process" isExecutable="true">
    <startEvent id="startevent1" name="Start"></startEvent>
    <userTask id="usertask1" name="提交申請">
      <extensionElements>
        <activiti:taskListener event="create" delegateExpression="${managerTaskHandler}"></activiti:taskListener>
      </extensionElements>
    </userTask>
    <userTask id="usertask2" name="部門領導審批" activiti:assignee="${checkUser}"></userTask>
    <sequenceFlow id="flow1" sourceRef="startevent1" targetRef="usertask1"></sequenceFlow>
    <sequenceFlow id="flow2" sourceRef="usertask1" targetRef="usertask2"></sequenceFlow>
    <exclusiveGateway id="exclusivegateway1" name="Exclusive Gateway"></exclusiveGateway>
    <sequenceFlow id="flow3" sourceRef="usertask2" targetRef="exclusivegateway1"></sequenceFlow>
    <userTask id="usertask3" name="會籤" activiti:assignee="${assignee}">
      <multiInstanceLoopCharacteristics isSequential="false" activiti:collection="counterList" activiti:elementVariable="assignee">
        <completionCondition>${signCompleteService.isComplete(execution)}</completionCondition>
      </multiInstanceLoopCharacteristics>
    </userTask>
    <userTask id="usertask4" name="行領導審批" activiti:assignee="${bankleader}"></userTask>
    <userTask id="usertask5" name="實施部門審批" activiti:assignee="${implementation}"></userTask>
    <exclusiveGateway id="exclusivegateway2" name="Exclusive Gateway"></exclusiveGateway>
    <sequenceFlow id="flow4" name="部門領導審批不通過" sourceRef="exclusivegateway1" targetRef="usertask1">
      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${pass==0}]]></conditionExpression>
    </sequenceFlow>
    <sequenceFlow id="flow5" name="部門領導審批通過並且需要會籤" sourceRef="exclusivegateway1" targetRef="usertask3">
      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${(pass==1&&counterSign==1&&bankCheck==2)||(pass==1&&counterSign==1&&bankCheck==1)}]]></conditionExpression>
    </sequenceFlow>
    <sequenceFlow id="flow6" sourceRef="usertask3" targetRef="exclusivegateway2"></sequenceFlow>
    <sequenceFlow id="flow7" name="部門領導審批通過不需要會籤需要行領導審批" sourceRef="exclusivegateway1" targetRef="usertask4">
      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${pass==1&&bankCheck==1&&counterSign==2}]]></conditionExpression>
    </sequenceFlow>
    <sequenceFlow id="flow8" name="會籤審批通過並且需要行領導審批" sourceRef="exclusivegateway2" targetRef="usertask4">
      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${signPass==1&&bankCheck==1}]]></conditionExpression>
    </sequenceFlow>
    <exclusiveGateway id="exclusivegateway3" name="Exclusive Gateway"></exclusiveGateway>
    <sequenceFlow id="flow9" sourceRef="usertask4" targetRef="exclusivegateway3"></sequenceFlow>
    <sequenceFlow id="flow10" name="會籤審批不通過" sourceRef="exclusivegateway2" targetRef="usertask1">
      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${signPass==0}]]></conditionExpression>
    </sequenceFlow>
    <sequenceFlow id="flow11" name="行領導審批不通過" sourceRef="exclusivegateway3" targetRef="usertask1">
      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${pass==0}]]></conditionExpression>
    </sequenceFlow>
    <sequenceFlow id="flow12" name="行領導審批通過" sourceRef="exclusivegateway3" targetRef="usertask5">
      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${pass==1}]]></conditionExpression>
    </sequenceFlow>
    <sequenceFlow id="flow13" name="會籤審批通過並且不需要行領導審批" sourceRef="exclusivegateway2" targetRef="usertask5">
      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${signPass==1&&bankCheck==2}]]></conditionExpression>
    </sequenceFlow>
    <endEvent id="endevent1" name="End"></endEvent>
    <sequenceFlow id="flow15" name="部門領導審批通過不需要會籤和行領導領導審批" sourceRef="exclusivegateway1" targetRef="usertask5">
      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${pass==1&&bankCheck==2&&counterSign==2}]]></conditionExpression>
    </sequenceFlow>
    <exclusiveGateway id="exclusivegateway4" name="Exclusive Gateway"></exclusiveGateway>
    <sequenceFlow id="flow16" sourceRef="usertask5" targetRef="exclusivegateway4"></sequenceFlow>
    <sequenceFlow id="flow17" name="實施部門審批不通過" sourceRef="exclusivegateway4" targetRef="usertask1">
      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${pass==0}]]></conditionExpression>
    </sequenceFlow>
    <sequenceFlow id="flow18" name="實施部門審批通過" sourceRef="exclusivegateway4" targetRef="endevent1">
      <conditionExpression xsi:type="tFormalExpression"><![CDATA[${pass==1}]]></conditionExpression>
    </sequenceFlow>
  </process>
  <bpmndi:BPMNDiagram id="BPMNDiagram_checkProjectProcess">
    <bpmndi:BPMNPlane bpmnElement="checkProjectProcess" id="BPMNPlane_checkProjectProcess">
      <bpmndi:BPMNShape bpmnElement="startevent1" id="BPMNShape_startevent1">
        <omgdc:Bounds height="35.0" width="35.0" x="10.0" y="120.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="usertask1" id="BPMNShape_usertask1">
        <omgdc:Bounds height="55.0" width="105.0" x="120.0" y="110.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="usertask2" id="BPMNShape_usertask2">
        <omgdc:Bounds height="55.0" width="105.0" x="320.0" y="110.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="exclusivegateway1" id="BPMNShape_exclusivegateway1">
        <omgdc:Bounds height="40.0" width="40.0" x="520.0" y="117.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="usertask3" id="BPMNShape_usertask3">
        <omgdc:Bounds height="55.0" width="105.0" x="700.0" y="110.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="usertask4" id="BPMNShape_usertask4">
        <omgdc:Bounds height="55.0" width="105.0" x="487.0" y="240.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="usertask5" id="BPMNShape_usertask5">
        <omgdc:Bounds height="55.0" width="105.0" x="308.0" y="400.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="exclusivegateway2" id="BPMNShape_exclusivegateway2">
        <omgdc:Bounds height="40.0" width="40.0" x="940.0" y="117.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="exclusivegateway3" id="BPMNShape_exclusivegateway3">
        <omgdc:Bounds height="40.0" width="40.0" x="340.0" y="247.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="endevent1" id="BPMNShape_endevent1">
        <omgdc:Bounds height="35.0" width="35.0" x="10.0" y="410.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="exclusivegateway4" id="BPMNShape_exclusivegateway4">
        <omgdc:Bounds height="40.0" width="40.0" x="152.0" y="407.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNEdge bpmnElement="flow1" id="BPMNEdge_flow1">
        <omgdi:waypoint x="45.0" y="137.0"></omgdi:waypoint>
        <omgdi:waypoint x="120.0" y="137.0"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="flow2" id="BPMNEdge_flow2">
        <omgdi:waypoint x="225.0" y="137.0"></omgdi:waypoint>
        <omgdi:waypoint x="320.0" y="137.0"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="flow3" id="BPMNEdge_flow3">
        <omgdi:waypoint x="425.0" y="137.0"></omgdi:waypoint>
        <omgdi:waypoint x="520.0" y="137.0"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="flow4" id="BPMNEdge_flow4">
        <omgdi:waypoint x="540.0" y="117.0"></omgdi:waypoint>
        <omgdi:waypoint x="539.0" y="85.0"></omgdi:waypoint>
        <omgdi:waypoint x="222.0" y="85.0"></omgdi:waypoint>
        <omgdi:waypoint x="173.0" y="85.0"></omgdi:waypoint>
        <omgdi:waypoint x="172.0" y="110.0"></omgdi:waypoint>
        <bpmndi:BPMNLabel>
          <omgdc:Bounds height="42.0" width="100.0" x="351.0" y="61.0"></omgdc:Bounds>
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="flow5" id="BPMNEdge_flow5">
        <omgdi:waypoint x="560.0" y="137.0"></omgdi:waypoint>
        <omgdi:waypoint x="700.0" y="137.0"></omgdi:waypoint>
        <bpmndi:BPMNLabel>
          <omgdc:Bounds height="42.0" width="100.0" x="579.0" y="138.0"></omgdc:Bounds>
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="flow6" id="BPMNEdge_flow6">
        <omgdi:waypoint x="805.0" y="137.0"></omgdi:waypoint>
        <omgdi:waypoint x="940.0" y="137.0"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="flow7" id="BPMNEdge_flow7">
        <omgdi:waypoint x="540.0" y="157.0"></omgdi:waypoint>
        <omgdi:waypoint x="539.0" y="240.0"></omgdi:waypoint>
        <bpmndi:BPMNLabel>
          <omgdc:Bounds height="56.0" width="100.0" x="541.0" y="184.0"></omgdc:Bounds>
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="flow8" id="BPMNEdge_flow8">
        <omgdi:waypoint x="960.0" y="157.0"></omgdi:waypoint>
        <omgdi:waypoint x="959.0" y="267.0"></omgdi:waypoint>
        <omgdi:waypoint x="592.0" y="267.0"></omgdi:waypoint>
        <bpmndi:BPMNLabel>
          <omgdc:Bounds height="42.0" width="100.0" x="801.0" y="239.0"></omgdc:Bounds>
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="flow9" id="BPMNEdge_flow9">
        <omgdi:waypoint x="487.0" y="267.0"></omgdi:waypoint>
        <omgdi:waypoint x="380.0" y="267.0"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="flow10" id="BPMNEdge_flow10">
        <omgdi:waypoint x="960.0" y="117.0"></omgdi:waypoint>
        <omgdi:waypoint x="959.0" y="34.0"></omgdi:waypoint>
        <omgdi:waypoint x="579.0" y="34.0"></omgdi:waypoint>
        <omgdi:waypoint x="172.0" y="34.0"></omgdi:waypoint>
        <omgdi:waypoint x="172.0" y="110.0"></omgdi:waypoint>
        <bpmndi:BPMNLabel>
          <omgdc:Bounds height="14.0" width="84.0" x="602.0" y="21.0"></omgdc:Bounds>
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="flow11" id="BPMNEdge_flow11">
        <omgdi:waypoint x="340.0" y="267.0"></omgdi:waypoint>
        <omgdi:waypoint x="172.0" y="266.0"></omgdi:waypoint>
        <omgdi:waypoint x="172.0" y="165.0"></omgdi:waypoint>
        <bpmndi:BPMNLabel>
          <omgdc:Bounds height="14.0" width="96.0" x="208.0" y="248.0"></omgdc:Bounds>
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="flow12" id="BPMNEdge_flow12">
        <omgdi:waypoint x="360.0" y="287.0"></omgdi:waypoint>
        <omgdi:waypoint x="360.0" y="400.0"></omgdi:waypoint>
        <bpmndi:BPMNLabel>
          <omgdc:Bounds height="14.0" width="84.0" x="258.0" y="329.0"></omgdc:Bounds>
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="flow13" id="BPMNEdge_flow13">
        <omgdi:waypoint x="980.0" y="137.0"></omgdi:waypoint>
        <omgdi:waypoint x="1016.0" y="137.0"></omgdi:waypoint>
        <omgdi:waypoint x="1016.0" y="427.0"></omgdi:waypoint>
        <omgdi:waypoint x="413.0" y="427.0"></omgdi:waypoint>
        <bpmndi:BPMNLabel>
          <omgdc:Bounds height="42.0" width="100.0" x="669.0" y="400.0"></omgdc:Bounds>
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="flow15" id="BPMNEdge_flow15">
        <omgdi:waypoint x="540.0" y="157.0"></omgdi:waypoint>
        <omgdi:waypoint x="520.0" y="187.0"></omgdi:waypoint>
        <omgdi:waypoint x="520.0" y="187.0"></omgdi:waypoint>
        <omgdi:waypoint x="422.0" y="187.0"></omgdi:waypoint>
        <omgdi:waypoint x="360.0" y="400.0"></omgdi:waypoint>
        <bpmndi:BPMNLabel>
          <omgdc:Bounds height="56.0" width="100.0" x="432.0" y="192.0"></omgdc:Bounds>
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="flow16" id="BPMNEdge_flow16">
        <omgdi:waypoint x="308.0" y="427.0"></omgdi:waypoint>
        <omgdi:waypoint x="192.0" y="427.0"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="flow17" id="BPMNEdge_flow17">
        <omgdi:waypoint x="172.0" y="407.0"></omgdi:waypoint>
        <omgdi:waypoint x="172.0" y="165.0"></omgdi:waypoint>
        <bpmndi:BPMNLabel>
          <omgdc:Bounds height="42.0" width="100.0" x="70.0" y="282.0"></omgdc:Bounds>
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="flow18" id="BPMNEdge_flow18">
        <omgdi:waypoint x="152.0" y="427.0"></omgdi:waypoint>
        <omgdi:waypoint x="45.0" y="427.0"></omgdi:waypoint>
        <bpmndi:BPMNLabel>
          <omgdc:Bounds height="14.0" width="96.0" x="47.0" y="430.0"></omgdc:Bounds>
        </bpmndi:BPMNLabel>
      </bpmndi:BPMNEdge>
    </bpmndi:BPMNPlane>
  </bpmndi:BPMNDiagram>
</definitions>

其中isSequential=false  代表會籤同步操作  counterList 為流程變數傳入的會籤人員列表 

大概配置項如此   其他諸如activiti 相關流程例項的查詢可百度

相關推薦

關於專案管理系統 activiti工作開發

最近開發專案管理系統,專案最近開發完畢,分享一些系統用到的東西,也算一個總結,系統用到了管理系統的常用的審批流程  並且在審批流程中自己控制流程走向。該專案管理系統基於Spring+spring mvc+mybatis . spring-activiti.xml sprin

IDEA建立Activiti工作開發第一篇(Maven專案

首先建立一個新的Maven專案,建立完成後我們要安裝Activiti的外掛,首先開啟FIle的setting功能,搜尋Plugins: 輸入actiBPM,然後點選搜尋: 如圖點選安裝,它就會下載安裝 安裝好後點擊應用: 然後重啟IDEA,點選File檔案中的

Activiti工作開發學習筆記(一)

第一章 Activiti介紹 1.1 工作流介紹 工作流(Workflow)是對工作流程及其各操作步驟之間業務規則的抽象、概括和描述。 工作流解決的主要問題是:為實現某個業務目標,在多個參與者之間

Activiti工作開發準備(一)

業務流程 bpmn 內容 進行 .com .org 圖片 技術 png 一:開發工作流需要配合所畫流程圖以及根據流程圖所生成的.bpmn文件進行開發,Activiti提供了eclipse插件,開發人員可以通過插件直接繪畫出業務流程圖。 二:eclipse插件安裝   1.打

Activiti工作開發——Activiti相關概念

Activiti對流程的描述是基於資料庫表的,Activiti有23張表,分別用來儲存工作流各個階段的資料,各個表的資料欄位和作用請參考blog Activiti資料表結構說明 Activiti工作流的核心是一個叫ProcessEngine的介面,這個介面控制著整個工作流

16.activiti工作-Activiti5.4整合SSH專案開發

一、建立web工程 (1)建立web工程之前,要先配置tomcat的目錄 (2)建立web工程之後,改變編譯後的class檔案和資原始檔的存放位置 (3)建立web工程的編碼格式,指定UTF-8 二、匯入相應的jar包 (1)匯入ssh需要

使用Thinkphp3.2開發會員管理系統-準備工作

arc inno pri incr thinkphp mage 技術分享 pre 會員管理 1,本地服務器環境(個人使用的wampsever,下載地址:http://sw.bos.baidu.com/sw-search-sp/software/9ffb1f800d39c/w

耗時兩年,終於--我的新一代敏捷專案管理系統終於開發出來了!!歡迎下載使用

經過了近兩年的努力,我用Flex開發的敏捷專案管理系統Myteam終於初步完成了,這個系統包含了我個人對專案管理的部分理解和信念,也是我期望系統的樣子。當然還有一些不夠完善的地方,我還會繼續努力完善。這是我個人在許多個日夜奮力編碼、除錯、測試、修改,研究再開發、再除錯的結晶

Activiti 工作表單設計及開發

一、前言         Activiti 5對錶單的支援目前還是比較弱的,表現在對錶單的開發還需要寫Freemark模板,並且它的模板還需要跟class檔案一起打包釋出。這使得流程的表單設計必須由開發人員來開發處理。因而,開發一套易用性強的流程表單功能就顯得很有必要。

Activiti工作】3.準備Activiti開發環境

一、準備環境 1.activiti軟體環境 1)JDK1.6或者更高版本 2)支援的資料庫有:h2, mysql, oracle, postgres, mysql, db2等。 3)支援activiti5執行的jar包 4)開發環境為Eclipse3.7或者以上版本,mye

vue2.0從頭開發專案管理系統

1、自己的github建一個專案。 2、本地vue2.0專案初始化。 安裝node.js,檢查node版(node -v)。 安裝webpack(npm install webpack -g),檢查webpack版本。(webpage -v)。 安裝vue-cli腳手架(npm install vue-cl

activiti工作系列-activitirume

例如 參與者 span fin 動態 完全 def ini gin 1、什麽是工作流? 工作流就是讓多個參與者之間按照某種預定義的規則傳遞文檔、信息或任務的過程,工作流由實體(Entity)、參與者(Participant)、流程定義(Flow Definition)、工作

微商代理商授權後臺管理系統功能定制開發

微商代理商授權系統 微商代理商授權後臺管理系統功能定制開發(微電:136-4026-5286),企業越做越大,代理商越來越多,在管理上難免會遇到各種各樣的問題。如今越來越多的傳統企業加入到微商的大軍中,據報道,目前在中國有2000~3000萬微商,但他們的日子也沒有想象中來得“滋潤”,痛點明顯

js學習總結----crm客戶管理系統之前端頁面開發及數據渲染

bmi length element || useradd attribute xxx tle exe 具體代碼如下: index.html <!DOCTYPE html> <html lang="en"> <head> <

Activiti工作引擎數據庫表結構

activit let repr 通過 運行時 工作流 用例 pro ext Activiti工作流引擎數據庫表結構 一、數據庫表的命名   Acitiviti數據庫中表的命名都是以ACT_開頭的。第二部分是一個兩個字符用例表的標識。此用例大體與服務API是匹配的。 l

Java Activiti 工作引擎 springmvc SSM 流程審批 後臺框架源碼

Activiti6.0工作流模塊----------------------------------------------------------------------------------------------------------1.模型管理 :web在線流程設計器、預覽流程xml、導出x

activiti工作EL表達式出現亂碼導致comment亂碼

com 重啟 down true 情況 工作流 原因 表達式 AC EL表達式出現亂碼的原因有很多,我記錄一下自己的情況。 在response和頁面都已設置utf-8編碼時仍然出現亂碼。 我修改了tomcat conf目錄下的server.xml文件 在原始配置上添加了u

Java Activiti 工作引擎 流程審批 後臺框架源碼 springmvc SSM

物流查詢接口 主表 快速 font sql www. 物流 sock hit 博文來源:http://www.fhadmin.org/webnewsdetail1.html工作流模塊----------------------------------------------

oa辦公系統工作系統到底有什麽作用?

信息 概念 錯位 ges 任務 辦公系統 統計報表 一定的 企業管理 作為當前應用最為廣泛的企業管理軟件,oa辦公系統自有其“過人之處”,工作流就是其中之一。 一、工作流是個什麽東西? 工作流概念起源於生產組織和辦公自動化領域,是針對日常工作中具有固定程序活動而提出的一個

一種業務系統工作系統資料交換的方式

一種業務系統與工作流系統資料交換的方式 工作流系統作為業務系統的業務流程驅動支撐,提供必要的工作流基本功能,如任務提交,撤回,掛起,終止,獲取待辦事項,路由計算等等。除此之外,還提供流程圖設計,參與人指定等流程定義功能。以上工作不可避免地用到業務系統的資料,比如根據業務資料(借款單)的資料進行路由判斷,計算