定时开始,可基于配置的时间自动在指定时间触发流程。
流程一旦发布后,就会按定时的时间开始执行。
如果手动执行,仅会额外执行一次。
提示:若您在工作流中编排了PY脚本节点,且PY脚本调用了先胜云其他组件的服务,一些服务是需要鉴权的,在定时调用时,很可能因为cookie/token失效而导致鉴权失败、执行失败(报错UNAUTHORIZED),若需要PY脚本能被成功执行,可以在PY脚本中添加绕过鉴权的代码,参考代码如下:from deepfos.options import OPTION
from deepfos.lib.eureka import Eureka
OPTION.server.app = Eureka.sync_get_url('APP-SERVER')
OPTION.server.space = Eureka.sync_get_url('SPACE-SERVER')
OPTION.server.system = Eureka.sync_get_url('SYSTEM-SERVER')
OPTION.general.use_eureka = True
选择定时策略,目前支持三种:仅一次、指定间隔、Cron表达式
仅一次:选择后需要指定激活时间,即设置定时开始的首次执行时间,设定方式支持发布时间
和静态值
发布时间:会在发布之后立刻执行一次,并且以发布时间作为首次的执行时间来计算后续的执行时机
静态值:选择一个固定时间作为首次执行时间
选择的静态值需要在当前时间之后
配置的静态值可能在某个时间点之后,小于当前时间,所以会在打开流程时报错;但是此报错只会影响设计中版本的保存校验,不会影响已经发布流程的执行
指定间隔:选择后需要指定首次激活时间(设定方式同指定激活时间
),还需配置重复间隔和最多重复的保险机制
Cron表达式:可以直接输入或使用插入工具帮助输入Cron表达式,并提供预览功能,以当前时间为基准预览最近10次的执行时间,但实际执行时会以发布时间为基准重新计算
流程发起人:可配置定时启动流程的发起人
流程启动参数:由于自动启动的流程,无法从外部获取启动参数,因此,理论上定时启动的流程不需要配置启动参数;此处若配置了启动参数,只允许配置置空。
业务需求:根据资产维护的到期日期,在到期前7天发送邮件提醒
需求拆解:
定时流程:例如每天早上8点
启动流程(用定时开始
节点实现)
检查资产是否到期:启动流程后,首先依据今天的日期检查,7天后是否存在到期资产(用全局变量
+DeepQL语句
实现)
发送通知:如果存在到期资产,则发送邮件给目标收件人,提醒有哪些资产将在7天后到期(用通知
节点实现)
样例数据: -
简要效果: -
配置前提
资产用对象管理,这样才能通过DeepQL查询出到期资产
配置好邮件模板
整体配置 -
配置要点1:流程全局变量
变量名 |
类型 |
初始值(代码段的展示效果不好,请内部成员至语雀文档查看) |
作用 |
---|---|---|---|
due_days |
integer |
7 |
定义需要查找多少天后到期的资产,后期如需修改天数阈值,直接修改此变量的初始值即可 |
budget_list |
object[] |
|
查询出即将到期的资产对象,会有多条数据,因此需要定义为对象数组类型 |
budget_code_list |
string[] |
|
从 |
count_budget_code |
integer |
|
计算到期资产的数量,由于排他网关判断,如果存在到期资产,才通知,否则,结束本流程 |
today |
string |
|
从 |
end_date |
string |
|
从 |
配置要点2:定时开始,实现每天早上8点自动发起 -
配置要点3:通知节点,通知内容结合全局变量,以展示出业务信息
邮件标题:
wfv$due_days.toString() + "天后到期提醒"
邮件内容:
"今天是" + wfv$today + "," +
wfv$due_days.toString() + "天后(" + wfv$end_date + ")到期的资产,有:" +
wfv$budget_code_list.join("、")
回到顶部
咨询热线