企业内部开发 服务端API OA 自建应用 审批流程引擎
审批流程引擎

目录

  • 概述
  • 1.创建自建应用审批模板
  • 2.自建应用发起审批
  • 3.自建应用审批状态变化通知回调
  • 4.查询自建应用审批单当前状态
  • 概述

    企业微信向开发者提供审批流程引擎,此特性可将审批流程相关功能嵌入到自建应用中。
    开发者可在自建应用中直接调用接口发起审批申请,系统根据审批流程自动通知相关人员进行审批操作。
    提交申请后审批流程的每次状态变化,都会通知开发者,可按需进行拓展开发。

    此套接口在自建应用中闭环,与“企业微信审批应用”相关接口无关。

    自建应用审批流程引擎示意图

    1.创建自建应用审批模板

    开发者可在“管理后台-自建应用-审批接口”中,创建审批模板。

    功能说明:

    参数说明
    模板ID用于审批申请类型区分。在后续发起审批申请时,将申请和审批流程进行关联。
    审批流程审批流程相关配置。后续以此模板ID发起的审批申请,都将按照设置的流程进行通知和流转。

     

    2.自建应用发起审批

    通过JS-SDK,可在自建应用中发起审批。查看JS-SDK调用详细说明
    具体步骤:
    1.通过config接口注入权限验证配置。查看
    2.通过agentConfig注入应用的权限。查看
    3.调用审批流程引擎JS-API(如下文请求示例)。

    注:企业微信客户端2.5.0及以上版本支持。

    请求示例:

    wx.invoke('thirdPartyOpenPage', {
        "oaType": "10001",// String
        "templateId": "46af67a118a6ebf000002",// String
        "thirdNo": "thirdNo",// String
        "extData": {
            'fieldList': [{
                'title': '采购类型',
                'type': 'text',
                'value': '市场活动',
            },
            {
                'title': '订单链接',
                'type': 'link',
                'value': 'https://work.weixin.qq.com',
            }],
        }
    },
    function(res) {
        // 输出接口的回调信息
        console.log(res);
    });

    参数说明:

    参数必须说明
    oaType操作类型,目前支持:10001-发起审批;10002-查看审批详情。
    templateId发起审批的模板ID,在自建应用-审批接口中创建模板可获取。
    thirdNo审批单号,由开发者自行定义,不可重复。
    extData详情数据,Json格式,用于审批详情页信息展示。

    extData数据说明:
    extData在发起时由开发者传入,其中数据将全部展示在审批申请中:
    1.开发者可利用此特性,在发起审批时,传入需要申请人、审批人、抄送人看到的信息;
    2.若需用户填写数据,可在自行使用表单收集,并传入extData中,用于展示。

    {  
        "extData": {
            'fieldList': [
                {
                    'title': '采购类型',
                    'type': 'text',
                    'value': '市场活动',
                },
                {
                    'title': '采购说明',
                    'type': 'text',
                    'value': '购买个人办公电脑',
                },
                {
                    'title': '采购金额',
                    'type': 'text',
                    'value': '4839.00元',
                },
                {
                    'title': '申请时间',
                    'type': 'text',
                    'value': '2018/06/20',
                },
                {
                    'title': '订单链接',
                    'type': 'link',		// link类型,用于在审批详情页展示第三方订单跳转地址
                    'value': 'https://www.qq.com',
                },
            ],
    
        },
    }

    参数说明:

    参数必须说明
    title字段标题,将会在审批详情页中展示。
    type字段类型,目前支持:text-文本;link:链接。link仅展示在审批详情页。
    value字段值,将会在审批详情页中展示。

    错误说明:

    错误提示说明
    已存在相同的审批编号oaType为10001时,传入的thirdNo已经被其他审批单占用。
    审批申请不存在oaType为10002时,在历史记录中,传入的thirdNo对应的审批单不存在。
    审批模板ID不正确调用接口时传入了错误的templateId
    应用ID不正确使用了错误的 agentId

     

    3.自建应用审批状态变化通知回调

    企业可以在管理后台-自建应用-设置API接收中,设置并开启审批状态通知事件。
    开启后,自建应用每一个审批申请的审批状态变化,都会通知给开发者。查看事件回调详细说明

     

    回调通知示例:

    <xml>
     <ToUserName>wwd08c8e7c775abaaa</ToUserName>  
      <FromUserName>sys</FromUserName>  
      <CreateTime>1527838022</CreateTime>  
      <MsgType>event</MsgType>  
      <Event>open_approval_change</Event>
      <AgentID>1</AgentID>
      <ApprovalInfo> 
        <ThirdNo>thirdNoxxx</ThirdNo>  
        <OpenSpName>付款</OpenSpName>  
        <OpenTemplateId>1234567111</OpenTemplateId> 
        <OpenSpStatus>1</OpenSpStatus>  
        <ApplyTime>1527837645</ApplyTime>  
        <ApplyUserName>jackiejjwu</ApplyUserName>  
        <ApplyUserId>WuJunJie</ApplyUserId>  
        <ApplyUserParty>产品部</ApplyUserParty>  
        <ApplyUserImage>http://www.qq.com/xxx.png</ApplyUserImage>  
        <ApprovalNodes> 
          <ApprovalNode> 
            <NodeStatus>1</NodeStatus>  
            <NodeAttr>1</NodeAttr> 
            <NodeType>1</NodeType>  
            <Items> 
              <Item> 
                <ItemName>chauvetxiao</ItemName>  
                <ItemUserid>XiaoWen</ItemUserid> 
                <ItemParty>产品部</ItemParty>  
                <ItemImage>http://www.qq.com/xxx.png</ItemImage>  
                <ItemStatus>1</ItemStatus>  
                <ItemSpeech></ItemSpeech>  
                <ItemOpTime>0</ItemOpTime> 
              </Item> 
            </Items> 
          </ApprovalNode> 
        </ApprovalNodes>  
        <NotifyNodes> 
          <NotifyNode> 
            <ItemName>jinhuiguo</ItemName>  
            <ItemUserid>GuoJinHui</ItemUserid> 
            <ItemParty>行政部</ItemParty>  
            <ItemImage>http://www.qq.com/xxx.png</ItemImage>  
          </NotifyNode> 
        </NotifyNodes> 
        <ApproverStep >0</ApproverStep >  
      </ApprovalInfo> 
    </xml>
    

    参数说明:

    参数说明
    ToUserName接收方企业Corpid
    FromUserName发送方:企业微信
    CreateTime消息发送时间
    MsgType消息类型
    Event事件名称:审批状态变化
    AgentID企业应用的id,整型。可在应用的设置页面查看
    ApprovalInfo审批信息
    ThirdNo审批单编号,由开发者在发起申请时自定义
    OpenSpName审批模板名称
    OpenTemplateId审批模板id
    OpenSpStatus申请单当前审批状态:1-审批中;2-已通过;3-已驳回;4-已撤销
    ApplyTime提交申请时间
    ApplyUserName提交者姓名
    ApplyUserId提交者userid
    ApplyUserParty提交者所在部门
    ApplyUserImage提交者头像
    ApprovalNodes审批流程信息
    ApprovalNode审批流程信息,可以有多个审批节点
    NodeStatus节点审批操作状态:1-审批中;2-已同意;3-已驳回;4-已转审
    NodeAttr审批节点属性:1-或签;2-会签
    NodeType审批节点类型:1-固定成员;2-标签;3-上级
    Items审批节点信息,当节点为标签或上级时,一个节点可能有多个分支
    Item审批节点分支,当节点为标签或上级时,一个节点可能有多个分支
    ItemName分支审批人姓名
    ItemUserid分支审批人userid
    ItemParty分支审批人所在部门
    ItemImage分支审批人头像
    ItemStatus分支审批审批操作状态:1-审批中;2-已同意;3-已驳回;4-已转审
    ItemSpeech分支审批人审批意见
    ItemOpTime分支审批人操作时间
    NotifyNodes抄送信息,可能有多个抄送人
    NotifyNode抄送人信息
    ItemName抄送人姓名
    ItemUserid抄送人userid
    ItemParty抄送人所在部门
    ItemImage抄送人头像
    ApproverStep当前审批节点:0-第一个审批节点;1-第二个审批节点…以此类推

     

    4.查询自建应用审批单当前状态

    开发者也可主动查询审批单的当前审批状态。

    请求方式: POST(HTTPS
    请求地址: https://qyapi.weixin.qq.com/cgi-bin/corp/getopenapprovaldata?access_token=ACCESS_TOKEN

    请求示例:

    {
    	"thirdNo": "thirdNoxxx"
    }

    参数说明:

    参数必须说明
    access_token调用接口凭证
    thirdNo开发者发起申请时定义的审批单号

    返回结果:

    {
        "errcode": 0,
        "errmsg": "ok",
        "data": {
            "ThirdNo": "thirdNoxxx",
            "OpenTemplateId": "1234567111",
            "OpenSpName": "付款",
            "OpenSpstatus": 1,
            "ApplyTime": 1527837645,
            "ApplyUsername": "jackiejjwu",
            "ApplyUserParty": "产品部",
            "ApplyUserImage": "http://www.qq.com/xxx.png",
            "ApplyUserId": "WuJunJie",
            "ApprovalNodes": {
                "ApprovalNode": [
                    {
                        "NodeStatus": 1,
                        "NodeAttr": 1,
                        "NodeType": 1,
                        "Items": {
                            "Item": [
                                {
                                    "ItemName": "chauvetxiao",
                                    "ItemParty": "产品部",
                                    "ItemImage": "http://www.qq.com/xxx.png",
                                    "ItemUserId": "XiaoWen",
                                    "ItemStatus": 1,
                                    "ItemSpeech": "",
                                    "ItemOpTime": 0
                                }
                            ]
                        }
                    }
                ]
            },
            "NotifyNodes": {
                "NotifyNode": [
                    {
                        "ItemName": "jinhuiguo",
                        "ItemParty": "行政部",
                        "ItemImage": "http://www.qq.com/xxx.png",
                        "ItemUserId": "GuoJinHui"
                    }
                ]
            },
            "ApproverStep": 0
        }
    }

    参数说明:

    参数说明
    ToUserName接收方企业Corpid
    FromUserName发送方:企业微信
    CreateTime消息发送时间
    MsgType消息类型
    Event事件名称:审批状态变化
    ApprovalInfo审批信息
    ThirdNo审批单编号,由开发者在发起申请时自定义
    OpenSpName审批模板名称
    OpenTemplateId审批模板id
    OpenSpStatus申请单当前审批状态:1-审批中;2-已通过;3-已驳回;4-已撤销
    ApplyTime提交申请时间
    ApplyUserName提交者姓名
    ApplyUserId提交者userid
    ApplyUserParty提交者所在部门
    ApplyUserImage提交者头像
    ApprovalNodes审批流程信息
    ApprovalNode审批流程信息,可以有多个审批节点
    NodeStatus节点审批操作状态:1-审批中;2-已同意;3-已驳回;4-已转审
    NodeAttr审批节点属性:1-或签;2-会签
    NodeType审批节点类型:1-固定成员;2-标签;3-上级
    Items审批节点信息,当节点为标签或上级时,一个节点可能有多个分支
    Item审批节点分支,当节点为标签或上级时,一个节点可能有多个分支
    ItemName分支审批人姓名
    ItemUserid分支审批人userid
    ItemParty分支审批人所在部门
    ItemImage分支审批人头像
    ItemStatus分支审批审批操作状态:1-审批中;2-已同意;3-已驳回;4-已转审
    ItemSpeech分支审批人审批意见
    ItemOpTime分支审批人操作时间
    NotifyNodes抄送信息,可能有多个抄送人
    NotifyNode抄送人信息
    ItemName抄送人姓名
    ItemUserid抄送人userid
    ItemParty抄送人所在部门
    ItemImage抄送人头像
    ApproverStep当前审批节点:0-第一个审批节点;1-第二个审批节点…以此类推
    上一篇
    获取汇报统计数据
    下一篇
    概述