附录
附录A:操作实现类列表
启动流程
| 操作标识 | 操作名称 | 实现类全路径 |
|---|---|---|
| Startflow | 启动流程 | com.horizon.wf.action.ActionSubmitFirst |
提交操作
| 操作标识 | 操作名称 | 实现类全路径 |
|---|---|---|
| Submit | 提交 | com.horizon.wf.action.ActionSubmit |
| SecondSubmit | 协办提交 | com.horizon.wf.action.ActionSubmitNotLeave |
| innerSubmit | 内部提交 | com.horizon.wf.action.ActionSubmitForProgressively |
| freeSubmit | 自由提交 | com.horizon.wf.action.ActionSubmitForFree |
| RejectSubmit | 退回提交 | com.horizon.wf.action.ActionSubmitForReject |
| HuiqianSubmit | 会签提交 | com.horizon.wf.action.ActionSubmitHuiqian |
退回操作
| 操作标识 | 操作名称 | 实现类全路径 |
|---|---|---|
| Reject | 退回 | com.horizon.wf.action.ActionReject |
| AnyReject | 任意退回 | com.horizon.wf.action.ActionAnyReject |
| InnerReject | 内部退回 | com.horizon.wf.action.ActionInnerReject |
加签操作
| 操作标识 | 操作名称 | 实现类全路径 |
|---|---|---|
| Huiqian | 会签 | com.horizon.wf.action.ActionHuiQian |
| PreSign | 前加签 | com.horizon.wf.action.ActionPreSign |
| Sign | 加签 | com.horizon.wf.action.ActionSign |
| ReduceSign | 减签 | com.horizon.wf.action.ActionReduceSign |
其他操作
| 操作标识 | 操作名称 | 实现类全路径 |
|---|---|---|
| addSecondauthor | 增加协办 | com.horizon.wf.action.ActionAddSecondAuthor |
| Supplement | 补发 | com.horizon.wf.action.ActionSupplement |
| BranchSupplement | 分支补发 | com.horizon.wf.action.ActionBranchSupplement |
| TakeBack | 拿回 | com.horizon.wf.action.ActionTakeBack |
| Save | 暂存 | com.horizon.wf.action.ActionSave |
| Jump | 跳转 | com.horizon.wf.action.ActionJump |
| Transfer | 转办 | com.horizon.wf.action.ActionTransfer |
| Withdraw | 撤办 | com.horizon.wf.action.ActionWithdraw |
| Pause | 暂停 | com.horizon.wf.action.ActionPause |
| ReplaceOperator | 替换办理人 | com.horizon.wf.action.ActionReplaceOperator |
| Terminate | 终止 | com.horizon.wf.action.ActionTerminate |
| Read | 阅知 | com.horizon.wf.action.ActionRead |
| ReadDone | 已阅 | com.horizon.wf.action.ActionReadDone |
| Urge | 催办 | com.horizon.wf.action.ActionUrge |
| StartSubFlow | 启动子流程 | com.horizon.wf.action.ActionStartSubFlow |
附录B:流程变量操作说明
设置流程变量
java
WorkParaBean inparam = new WorkParaBean();
Map<String, String> flowVarMap = new HashMap<String, String>();
flowVarMap.put("varName", "varValue");
inparam.setFlowVarMap(flowVarMap);获取流程变量
java
IWorkResult result = opr.open(inparam);
Map<String, String> flowVarMap = result.getFlowVarMap();
String varValue = flowVarMap.get("varName");流程变量命名规范
| 变量类型 | 命名规则 | 示例 |
|---|---|---|
| 字符串 | 以STR_开头 | STR_APPROVE_COMMENT |
| 数字 | 以NUM_开头 | NUM_APPROVE_LEVEL |
| 日期 | 以DATE_开头 | DATE_SUBMIT_TIME |
| 布尔值 | 以BOOL_开头 | BOOL_IS_URGENT |
附录C:流程实例状态码
实例状态
| 状态码 | 状态名称 | 说明 |
|---|---|---|
| 0 | 运行中 | 实例正在正常流转 |
| 1 | 已结束 | 实例正常结束 |
| 2 | 已终止 | 实例被强制终止 |
| 3 | 已暂停 | 实例被暂停 |
| 4 | 已删除 | 实例被删除 |
路径状态
| 状态码 | 状态名称 | 说明 |
|---|---|---|
| 0 | 活动 | 路径处于活动状态 |
| 1 | 已完成 | 路径已完成 |
| 2 | 已挂起 | 路径被挂起 |
| 3 | 已终止 | 路径被终止 |
附录D:数据源配置说明
数据源类型
| 类型 | 标识前缀 | 说明 |
|---|---|---|
| 流程数据源 | flow_ | 存储流程引擎核心数据 |
| 业务数据源 | data_ | 存储业务相关数据 |
配置示例
properties
# 流程数据源
flow.datasource.url=jdbc:mysql://localhost:3306/workflow
flow.datasource.username=admin
flow.datasource.password=password
# 业务数据源
data.datasource.url=jdbc:mysql://localhost:3306/business
data.datasource.username=admin
data.datasource.password=password附录E:常用工具类
DateUtils
| 方法名 | 功能描述 | 参数 | 返回值 |
|---|---|---|---|
format(Date, String) | 格式化日期 | Date, pattern | String |
parse(String, String) | 解析日期字符串 | dateStr, pattern | Date |
getCurrentTime() | 获取当前时间戳 | 无 | long |
StringUtils
| 方法名 | 功能描述 | 参数 | 返回值 |
|---|---|---|---|
isEmpty(String) | 判断字符串是否为空 | str | boolean |
isNotEmpty(String) | 判断字符串是否非空 | str | boolean |
trim(String) | 去除首尾空格 | str | String |
join(List, String) | 拼接列表元素 | list, separator | String |
SecurityUtils
| 方法名 | 功能描述 | 参数 | 返回值 |
|---|---|---|---|
getCurrentUserId() | 获取当前用户ID | 无 | String |
getCurrentTenantCode() | 获取当前租户代码 | 无 | String |
getCurrentDataSource() | 获取当前数据源标识 | 无 | String |
附录F:错误处理建议
异常类型
| 异常类型 | 处理建议 |
|---|---|
WorkflowException | 工作流引擎异常,检查参数配置 |
DataSourceException | 数据源异常,检查数据库连接配置 |
PermissionException | 权限异常,检查用户权限配置 |
TimeoutException | 超时异常,优化流程配置或增加超时时间 |
日志记录建议
java
try {
IWorkResult result = opr.operator(inparam);
if (result.getResult() != 0) {
logger.warn("Workflow operation failed: {}", result.getBackMsg());
}
} catch (Exception e) {
logger.error("Workflow operation error", e);
throw new RuntimeException("流程操作失败", e);
}