如何根据身份证号码获取年龄,并且每年自动更新
1.场景描述
给新员工录入身份证号,如何用公式计算出年龄(不考虑出生月份及日期,只按周岁进行计算),并且实现每年自动给年龄+1
2.解决思路
先用公式去拿到身份证中的出生年份,然后跟当前时间的年份做减法拿到提交数据时的年龄,再做一个日期字段拿到身份证的出生月日,用出生月日拼接下一年的年份,在明年的生日当天触发流程外QR添加数据到辅助应用,辅助应用更新当前应用的年龄以及下次触发时间字段
3.表单设计
3.1原应用
首先需要在员工信息这个应用中录入身份证号码、对应工号(保证唯一性)


【当前年龄】字段用公式的计算逻辑是:如果身份证号为空,则返回一个空值,身份证号不为空时用提交数据时的年份减去身份证号中获取到的出生年份,得到周岁

【出生日期】该字段用于辅助计算,可隐藏,计算逻辑是:用函数分别取出身份证中出生的年、月、日所对应的数字拼接成日期格式

【下一年触发日期】该字段用于触发流程外QR添加数据在每年生日的当天触发数据更新,公式的计算逻辑是:如果录入数据的时候本年生日还没过,则触发时间为本年的生日,反之触发时间为明年的生日
注意:数据有可能是Excel导入不能保证计算的准确性,需要在申请人节点把这三个计算出来的字段按顺序设置好提交重计算,如下截图

流程外QRobot在拓展设置中创建,创建规则如下图:



3.2辅助应用
这个应用需要有作为后续定位到唯一数据的工号字段,原年龄,增加1岁之后的年龄,原来触发时间以及更新后下一年需要继续触发更新的时间,对应的公式如下:


为了保证上面两个公式计算生效,需要在申请人节点设置提交重计算如下:

然后在流程中设置QR更新规则如下:

4.实现效果
提前在员工信息中录入7-25生日的数据,会在7-25当天自动更新


