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

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

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

        钉钉快速接入的介绍页面:钉钉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获取这个实例的详情,详情里边有状态,通过详情中的状态才能判断这个流程有没有结束,再去操作数据库。

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容

  • 点击查看原文 Web SDK 开发手册 SDK 概述 网易云信 SDK 为 Web 应用提供一个完善的 IM 系统...
    layjoy阅读 13,652评论 0 15
  • iOS网络架构讨论梳理整理中。。。 其实如果没有APIManager这一层是没法使用delegate的,毕竟多个单...
    yhtang阅读 5,160评论 1 23
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,082评论 1 32
  • ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。 O...
    我想起个好名字阅读 5,149评论 0 9
  • 一、背景介绍 作为一名Android开发,从最初的跌跌撞撞到现在小有所悟,这其中经历过的辛酸苦辣也是一种痛并快乐着...
    freecats08阅读 4,814评论 7 54