工作流集成及API接口文档---教程二

[ 活动/福利 ]

免费领取2160元云主机新购优惠 ,快去看看吧!

官方博客:http://www.cojz8.com/

官方博客:http://tpflow.cojz8.com/

工作流手册:https://www.kancloud.cn/guowenbin/tpflow  赞助支持我们,可购买看云完整文档


工作流集成及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_id
6、调用工作流状态:{: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)


逆天的蝈蝈博客
请先登录后发表评论
  • 最新评论
  • 总共0条评论