美文网首页
API钉钉接入---审批流程

API钉钉接入---审批流程

作者: 少年丶要淡定 | 来源:发表于2019-08-26 16:25 被阅读0次

        前一段时间由于业务的需求,需要在项目中接入钉钉中的审批功能,于是哼哧哼哧的看了一波,难免会有磕磕碰碰,这里对自己的学习和使用过程做一个记录。

        先说一下,我们这里是企业内部使用。下边提供一下常用的一些资源(其实自己多点点都能找到,记录一下这不是方便嘛!):

        钉钉快速接入的介绍页面:钉钉quickstart

        回调管理:回调管理的API

        内外网穿透工具:内外网穿透工具

        钉钉也提供了demo:在这里

        下边就开始吧,直接上代码。先从参数开始:

参数

        至于这些参数去哪找,来这里--->钉钉quickstart

        下边就正儿八经的开始接入了,就是我开发的时候的一些心得,可能有的地方考虑的不是那么周全。

        首先去发起一个审批流程,这里我封装了一下,看一看:

发起审批流程

        这里解释一下,这个审批流程中所有需要的东西,都被封装到OapiProcessinstanceCreateRequest这个对象里去了:

OapiProcessinstanceCreateRequese

        这里有必要说一下都是什么东西了:

        agentId:是微应用的ID

        processCode:钉钉审批模板的ID(你需要钉钉的企业管理员的权限,去创建一个模板,创建好以后去地址栏中找)

        formComponentValues:这个就是审批的表单(这里后台中控件的Name属性要和你创建表单时的控件名称要一致)

        originatorUserId:发起流程的用户(这里看看你们项目中的用户和钉钉的用户是怎么关联的,一般应该是电话吧)

        deptId:发起人所在部门的ID

        我这里是通过手机号管理的用户,封装了一个查询用户的方法,拿到这个用户的详情,上边的俩个参数就都解决了

获取用户详情

        至于表单,你来这里看看吧 --- >钉钉审批表单

        到这里钉钉审批就发起了,可以从返回值中获取到这个审批实例的id,要记录哦,这个还是比较重要的。

        调试回调的时候应该是我在集成钉钉的时候遇到麻烦最多的地方。先去看看怎么注册回调,这里如果你有多个审批模板,反正我是分开写的,一个模板,一个回调,好管理嘛,哈哈哈!

        先去封装一个回调所需url的方法:

回调所需url

        下边是注册回调:

注册回调

        上边的注册回调是基于demo,在正式环境中,不能保留删除回调那一部分代码,如果保留的话,会造成回调部分失效。发起A流程之后,回调地址是A的回调地址,之后再发起B流程,回调地址是B流程的,如果在发起B流程的时候删除所有回调,那么A流程回调就会失效,大家要注意。大家也可以在接口注册回调之后进行记录,再一次发起该流程时进行判断是否已经注册,避免重复注册(或者保留所有的注册接口,即删除删除回调部分的代码)。

        上边看到的参数都是常规的参数,新出现的bpms_instance_change和bpms_task_change这俩东西后边说一下。

        注册回调用到的工具在这里:内外网穿透工具

        你从github中把项目搞到本地之后(我是windows):

        1、打开DOS命令窗口,进入ding.exe所在的目录

回调工具

        然后一个回车下去,如果出来下边这样的,就说明你成功了。

成功了

        成功之后别关了哈,关了可就不行了。

        启动完客户端后,你访问http://liyu.vaiwan.com/xxxxx都会映射到 http://127.0.0.1:8080/xxxxx。别写错!

        我说说我在调试的时候遇到的问题。注册回调的方法和控制层中回调函数的业务这俩个地方不要同时打断点;控制层中想要打断点一定要在我们手机上收到审批后再打断点。

        我控制层中的回调是这么处理的

控制层

        这里说一下bpms_instance_change和bpms_task_change,这俩个参数代表的是回调事件的类型。官网看了半天糊里糊涂的,下边是我调试过程中发现的: 

        bpms_task_change:如果你发起的审批通过和拒绝,返回的事件类型是这个。

        bpms_instance_change:如果你发起的审批撤销了,返回的事件类型是这个。

        再说一下,我们如果有多个审批人,只要通过一个,他都会进回调,我们这里只关心结果,所以前边不管通过了几个,都不能去操作数据库,更改审批的状态。可是它这个接口我找了半天,返回值中没法去判断是不是最终的审批用户,怎么办呢?先去通过钉钉实例的id获取这个实例的详情,详情里边有状态,通过详情中的状态才能判断这个流程有没有结束,再去操作数据库。

        唠叨了半天,这里就是我接入钉钉时的一些想法。不足的地方还有很多,大家多多交流吧!

相关文章

  • API钉钉接入---审批流程

    前一段时间由于业务的需求,需要在项目中接入钉钉中的审批功能,于是哼哧哼哧的看了一波,难免会有磕磕碰碰,这里...

  • PHP版-接入钉钉审批

    示例框架 laravel 5.x + 官方sdk + 钉钉小程序 如果不使用官方SDK包 可通过composer安...

  • 基于钉钉的企业多应用统一审批方案

    钉钉是国内领先的企业协同办公平台,本方案以钉钉为审批终端,提供了一套接入灵活、成本可控的审批集成方案。对于用户,既...

  • 钉钉审批人和办理人

    通俗的讲一期钉钉oa审批里的审批人和办理人 审批人:流程给不给过的人,用于审核单据内容; 办理人:流程过程中办事的...

  • Jianwoo中的设计模式(7) — 责任链模式

    前言 想必大家都有走过流程,流程或大或小,比如有些公司用钉钉走请假流程,你请假,需要填审批人,首先是你的项目组长,...

  • 接入钉钉API发送企业消息

    工作中有个需求,是要把录入的销售机会由系统自动分配给销售,然后对接钉钉给销售人员发送企业消息,通知他进行跟单。 参...

  • 审批-钉钉应用

    审批是钉钉的原生产品,可以直接调用钉钉后台的组织机构,不需要手动同步。 审批功能比较少,除了子表单的单项求和以外,...

  • 一招教你打印钉钉审批流程

    1.在电脑端,进入钉钉主界面,点击工作按钮。 2.在工作界面,点击审批按钮。 3.选择要打印的审批流程。 4.点击...

  • 工作流-钉钉审批创建流程

    钉钉官方工作流 基础设置Screen Shot 2020-04-11 at 11.54.52 AM.png 表单设...

  • 如何用好钉钉oa审批的角色?

    钉钉oa审批中尽量用角色 如果你在oa审批的设置中遇到以下问题: 1、 人员变更,需要一个一个去改流程; 2、 人...

网友评论

      本文标题:API钉钉接入---审批流程

      本文链接:https://www.haomeiwen.com/subject/tyzrectx.html