[ 活动/福利 ]
工作流集成及API接口文档
Tpflow 工作流引擎,历时两年多的积累开发,包括N家企业的实际应用,我们一直再改进工作流的各种文档性能,截至(2020.2)我们仍是码云唯一开源的PHP工作流引擎,感谢各位大神的一路支持。Tpflow一直都是精简集成,本文简要描述Tpflow的集成与新增的Api文档第一步:了解下核心文件
\extend\workflow 为插件目录├─workflow 扩展类库目录
│ ├─class 流引擎目录
│ ├─config 配置项目录
│ ├─db 数据操作目录
│ ├─msg 消息处理目录
│─workflow.php 工作流入口文件当然你必须完整将整个workflow 目录安装到你的项目中去\application\index\controller\Wf.php Demo中的相关调用方式\application\index\view\Wf Demo中的样式及可视化设计文件\public\static\work Demo中的资源文件这些文件是Demo文件,你需要根据你的项目进行调整第二步:ThinkPhp 项目如何快速集成如果你是Thinkphp小白,烦请先了解下TP官方手册
Demo项目基于5.1版本开发,本描述也基于5.1进行说明1、复制tpflow\extend\workflow 到你的项目目录2、修改 \extend\workflow\config 里面的config.php 里面的配置信息3、导入tpflow3.1.sql数据库,建议直接复制表结构出来就好了;4、复制Demo文件,\application\index\controller 里面的wf.php 以及 对应的视图文件;5、 修改 wf.php 文件initialize 中的 $this->uid $this->role_id6、调用工作流状态:{:action('wf/status',['status'=>$k.status])}7、调用工作流按钮: {:action('wf/btn',['wf_fid'=>$k.id,'wf_type'=>'news','status'=>$k.status])}$k.id 单据的编号
$wf_type 单据的数据表
$status 单据的状态值8、调用工作流日志:{:action('wf/wflogs',['id'=>$k.id,'wf_type'=>'news'])}$k.id 单据的编号
$wf_type 单据的数据表注意点:1、你的数据表必须符合SQL设计规范(默认读取含注释的字段及数据表)2、业务表必须包含 status 、uptime 两个字段,工作流会根据审批结果进行业务表的更新第三步:非Thinkphp的集成开发严格意义来说,只要继承了TP的ORM也就是DB数据库驱动,就可以直接使用工作流引擎,因为所有的数据读写全部用了Db::name() 的写法。
API接口文档
提供的API接口处理方式
3.0跟1.0 2.0 最大的变化就是提供了丰富的API设计接口,已经重新布局的三分架构。我们通过超级强大的API 对接功能,flowApiProcessApiSuperApi 等接口可以快速的进行工作流设计、步骤的管理、流程的监控等等。同时还新增了同步模式等等。flowApi 可支持工作流设计开发管理
ProcessApi 步骤管理API,可以对步骤进行管理、读取
SuperApi超级管理接口,对流程进行终止,代审FlowApi接口--工作流设计接口
接口示例,以Thinkphp为例<?php
namespace app\index\Controller;use app\common\controller\admin;use workflow\workflow;class Flowdesign extends Admin {
public function initialize()
{
parent::initialize();
$this->work = new workflow();
}
/**
* 流程设计首页
*/
public function lists($map = []){
$this->assign('list',$this->work->FlowApi('List'));
$this->assign('type', ['news'=>'新闻信息','cnt'=>'合同信息','paper'=>'证件信息']);
return $this->fetch();
}FlowApi 用法很简单,主要是对Flow工作流的数据封装
详细可以阅读以下API调用方法及示例参数名称参数变量示例/说明List~~~$work->FlowApi('List'); //直接获取到工作流列表数据
AddFlow$work->FlowApi('AddFlow',$data)$data //POST数据
EditFlow$work->FlowApi('EditFlow',$data);$data //POST数据
GetFlowInfo$work->FlowApi('GetFlowInfo',input('id'))$id 为Flow组件ProcessApi用法很简单,主要是对工作流的步骤进行封装
详细可以阅读以下API调用方法及示例参数名称参数变量示例/说明All$flow_id 流程主键$this->work->ProcessApi('All',$flow_id); //获取对应流程所有步骤信息,返回JSON json_encode(['total'=>$process_total,'list'=>$process_data]
ProcessDel$this->work->ProcessApi('ProcessDel',$flow_id,$process_id)$process_id $flow_id 返回Array
ProcessDelAll$this->work->ProcessApi('ProcessDelAll',$flow_id);$flow_id 清空所有步骤
ProcessLink$this->work->ProcessApi('ProcessLink',$flow_id,$process_info)保存设计
ProcessAttView$this->work->ProcessApi('ProcessAttView',input('id'))查看步骤设置
ProcessAttSave$this->work->ProcessApi('ProcessAttSave',$data['process_id'],$data)保存步骤信息SuperApi 是精简后的一些超级接口参数名称参数变量示例/说明WfEnd$key工作流主键$taskService->doSupEnd($key,$data)
本文为逆天的蝈蝈的文章,转载无需和我联系,但请注明cojz8.com