页面树结构

版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

...

背景介绍

基于DWF开发工具设计的流程模版,在实例化后能够在DWF中运行。流程执行进度往往需要及时通知办理人。这时我们考虑与市面上常见的应用集成,例如与常见办公工具钉钉集成,实现流程活动的及时通知及外链直达。典型场景是:在提交任务以后,发送钉钉消息通知。收到钉钉消息的办理人,直接点击消息链接即可一键跳转至任务表单进行操作。

...

技术路线

DWF为了解决这样实际的业务需求,工作流引擎在执行过程中,调用流程模版中的开始节点的起始脚本(发起工作流实例后调用)、人工节点的前处理脚本(人工任务被激活后调用)和后处理脚本(提交人工任务时调用)、结束节点的结束脚本(流程被终止或完成时调用),利用代码将工作流引擎进行扩展。操作中可以调用第三方应用(钉钉)Api,从而实现工作流引擎与钉钉的集成。

流程操作默认只支持后端脚本操作(从全局操作模块引用),操作的动作为implement类型。包括工作流相关的内置对象:wfTask(流程活动实例)、wfEngine(流程引擎实例)、wfProcess(流程实例)等。在流程操作中调用restful API实现解决方案里特定的任务。接下来介绍如何利用后端脚本操作实现从DWF向钉钉发送消息以及如果通过外链直达回到DWF。

...

(一)从DWF向钉钉发送消息

若想实现从DWF向钉钉钉发送消息,需要做好以下准备工作:

...

脚本内容可以利用DWF后端脚本关键字this.restTemplate调用钉钉服务端API,参考脚本开发任务快速指导手册钉钉开发文档

...

(二)外链直达回到DWF

上面讲解了如何通过DWF向钉钉发送消息。在工作流引擎中,办理人收到通知消息后,需要快速直达任务表单进行操作。DWF提供了外链直达功能,可是实现上述业务需求。

...

  • displayType:必填,表单打开的状态。包括create、edit和visit,这些参数和表单实例状态对应。
  • token:可选,用户令牌,用户单点登录的验证。当用户未填写token时,链接跳转登录页面获取有效token后跳转分享页面。
  • appName:可选,应用通道英文名。登录app后自动切换到的应用通道英文名,默认应用填default。
  • appId:可选,应用通道ID。登录app后自动切换到的应用通道ID。当appId和appName同时填写时,分享页面右上角会出现“返回应用”按钮,支持一键跳转至应用端。
  • indexOpr:可选,默认表单。登录app后的默认打开的表单,若应用modeler端已经定制了默认操作则按照modeler端定制打开默认操作。
    • 默认操作书写格式:一级模块英文名-模块操作英文名(“-”连接)
  • query:可选,表单过滤条件。按照过滤条件对多对象控件进行过滤。
    • 过滤条件书写格式:与过滤条件生成器输出的格式相同,例如and obj.assetName = '搅拌机'

...

举例

现在我们以工单创建时通知指定用户为例,介绍流程模版的设计及流程操作的脚本设置。

...