# 工作流服务器

## 开发环境
Git克隆源代码到本地

```
git clone http://www.leanwo.com:3000/ShangHaiLeanwo/WorkflowServer.git
```

源代码导入到eclipse中。注意事项如下：
1. 工作空间的编码格式设置成UTF-8。(Preferences-General-Workspace-Text file encoding-Other(UTF-8))
2. 使用外部的maven（maven设置了国内镜像)
    a.  (Preferences-General-Workspace-Text file encoding-Other(UTF-8))

## 工作流管理平台
打开网址

```
http://127.0.0.1:82/workflow-app/
```

* 用户名:admin
* 密码:adminadmin

## activiti-rest服务
```
http://127.0.0.1:82/activiti/api
```
* 用户名:admin
* 密码:adminadmin


## 默认配置
* 修改端口号，打开resources/Application.yml，修改属性server.port可以修改启动的端口号。

```
server:
  port: 82
```

* 修改Eureka服务器的地址，尽量不要修改该属性，该属性来源于服务管理器(ServerManagement)中的eureka.serviceUrl.defaultZone属性

```
#Eureka Server服务器地址.
eureka:
  client:
    fetch-registry: true
    register-with-eureka: true
    serviceUrl:
      defaultZone: http://localhost:88/eureka/
```

* 修改数据库的链接字符串，按照下面的提示，编辑resources/applicationContext.xml文件。

```
如果连接的是SQL SERVER数据库，那么注释下面的第2行。如果连接的是MySql数据，那么注释下面的第4行。
<!--加载MySql数据库的配置文件-->
<context:property-placeholder location="classpath:jdbc_mysql.properties"/>
<!--加载SQLServer数据库的配置文件-->
<context:property-placeholder location="classpath:jdbc_mssql.properties"/>
```

```
如果连接的是SQL SERVER数据，编辑文件resources/jdbc_mssql.properties文件。
如果连接的是MySql数据库，那么编辑文件resources/jdbc_mysql.properties文件。
修改数据库的链接字符串，用户名和密码。
jdbc.url=jdbc:sqlserver://127.0.0.1:1433;DatabaseName=ProdogAppAsset2020
jdbc.username=sa
jdbc.password=Sitp123123
hibernate.dialect=com.leanwo.activiti.db.LeanwoSqlServerDialect
```


## 初始化数据库
* 清空现有数据库的数据，执行resources/drop/*.sql的脚本，如果发生错误，多执行几次。
* 自动重建数据库的数据表，打开resources/Application.yml，修改属性spring.jpa.hibernate.ddl-auto: update
* 数据表新建完成以后，，打开resources/Application.yml，修改属性spring.jpa.hibernate.ddl-auto: none


## 程序打包
* Activiti 6 中不能直接更新任务执行人，执行lib中的install.bat，安装修改以后的activiti jar包，修复BUG。
* 在WorkflowServer下运行mvn clean，然后再运行 mvn package。
* 打包的程序在 ./workflow-boot/target/6.0.0下面，拷贝出来，放到服务器上，双击run.bat即可运行。
* 如果程序启动的时候遇到Lock... 之类的日志，且程序不能正常启动，可能是启动过程中，程序被异常关闭，造成数据库脚本升级锁未被释放，需要在数据库执行下面的脚本解锁。
```
DELETE FROM [dbo].[ACT_FO_DATABASECHANGELOGLOCK]
```