官方提供的案例:
在此基础上,根据实际需要做个性化拓展。
应用1:定时生成周日报待办,排除假期、排除已提前提交人员
需求:
- 工作日的周一到周四:17:15生成日报待办
- 工作日的周五:16:30生成日报待办,17:00生成周报待办
设计要点:
既然有多个不同的触发时间情况,把日报、周报的触发时间放在同一个 time 表单里,pro使用 根据表单日期时间定时触发。
排除非工作日,可以理解为 查验触发时间是否为工作日,如果是,就执行生成待办;如果是休息日,就不执行待办。
工作日查验可以用插件节点,用【工作日计算】插件,一般选择 双休,如果会有自定义的休息日,也可以一并设置。
根据工作日计算结果,下面就可以跟着用分支条件,按条件执行日报待办、 周报待办节点。
在周日报的规则配置表里,用一个辅助字段标记提交周日报状态,默认为1,如果提前提交了就会被修改为0.
因此,在执行分支里,查询周日报规则的多条数据,符合标记为1的数据(其他条件可一并设置)。
在执行生成待办节点后,再把规则的标记值修改为默认值1.
在pro流程的最后,用计算字段算出第二天的触发时间,再修改 time触发表的数据,实现自动更新、周期性的触发。
应用2:自动更新生日日期
场景:有一个表单记录着每个成员的生日信息:姓名、生日类型(阳历、农历)、出生日期、生日时间。需要自动更新生日时间,以便于提醒行政人员发送生日祝福。
难点:农历生日类型的,需要通过农历日期查询/转换为对应的公历日期。
设计要点:
官方上线的插件【天聚数行】,提供金额转大写、农历公历互转、中文繁简体互转、物流地址解析等API接口。
在这里使用农历公历互转函数。要注意的是,传入的必须是日期类型值,而且如果是农历日期,必须去掉日期的前导零。
(日期格式的前导零:2024-05-19,2024-05-05,例如这两个日期的月、日里面有前置0)
由于简道云的日期时间类型值,默认是有前导零的。因此,在公历农历互转插件之前,还要用插件格式化日期,去掉前导零。
去掉前导零的插件,经过问AI 和 查询经验文章,最后自建了一个插件。(待优化之处,还请大佬不吝赐教 😊)
from datetime import datetime
# 获取请求参数
birthDate = triggerConf.get("birth_date")
str_date = str(birthDate)
# 格式化
dateParse = datetime.strptime(str_date, "%Y-%m-%dT%H:%M:%S.%fZ")
# 将日期时间转换为字符串并去掉前导零
newBirthDate = dateParse.strftime("%Y-%-m-%-d")
# 返回处理后的日期值
return {"new_birth_date": newBirthDate}
去掉前导零之后,再继续用农历公历转换函数,得到对应的公历日期。
对于阳历生日类型,直接用计算节点算出第二年的生日日期,修改到提醒表。
对于农历生日类型,经过用插件转换到第二年的生日公历日期,修改到提醒表。
这样,第二年就会按照新的生日时间,推送消息提醒成员,并且定时执行该pro继续更新。
以上,是我的应用案例简介。欢迎和道友们讨论、学习。
谢谢阅读。 |